X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7cee23157f099837fffc22380b85ac33a2006a49..832b7c4a1b820043fd0b0191d937050107694ed9:/src/dolphinplacesmodelsingleton.h diff --git a/src/dolphinplacesmodelsingleton.h b/src/dolphinplacesmodelsingleton.h index 6bce25d16..161a19cbc 100644 --- a/src/dolphinplacesmodelsingleton.h +++ b/src/dolphinplacesmodelsingleton.h @@ -1,51 +1,67 @@ -/*************************************************************************** - * Copyright (C) 2018 Kai Uwe Broulik * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2018 Kai Uwe Broulik + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef DOLPHINPLACESMODELSINGLETON_H #define DOLPHINPLACESMODELSINGLETON_H -#include #include +#include + +#include + +/** + * @brief Dolphin's special-cased KFilePlacesModel + * + * It returns the trash's icon based on whether + * it is full or not. + */ +class DolphinPlacesModel : public KFilePlacesModel +{ + Q_OBJECT + +public: + explicit DolphinPlacesModel(QObject *parent = nullptr); + ~DolphinPlacesModel() override; + + bool panelsLocked() const; + void setPanelsLocked(bool locked); + + QStringList mimeTypes() const override; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override; -class KFilePlacesModel; +protected: + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + +private Q_SLOTS: + void slotTrashEmptinessChanged(bool isEmpty); + +private: + bool isTrash(const QModelIndex &index) const; + + bool m_isEmpty = false; + bool m_panelsLocked = true; // common-case, panels are locked +}; /** * @brief Provides a global KFilePlacesModel instance. */ class DolphinPlacesModelSingleton { - public: - static DolphinPlacesModelSingleton& instance(); + static DolphinPlacesModelSingleton &instance(); - KFilePlacesModel *placesModel() const; - /** A suffix to the application-name of the stored bookmarks is - added, which is only read by PlacesItemModel. */ - static QString applicationNameSuffix(); + DolphinPlacesModel *placesModel() const; - DolphinPlacesModelSingleton(const DolphinPlacesModelSingleton&) = delete; - DolphinPlacesModelSingleton& operator=(const DolphinPlacesModelSingleton&) = delete; + DolphinPlacesModelSingleton(const DolphinPlacesModelSingleton &) = delete; + DolphinPlacesModelSingleton &operator=(const DolphinPlacesModelSingleton &) = delete; private: DolphinPlacesModelSingleton(); - QScopedPointer m_placesModel; + QScopedPointer m_placesModel; }; #endif // DOLPHINPLACESMODELSINGLETON_H