diff options
Diffstat (limited to 'src/dolphinplacesmodelsingleton.h')
| -rw-r--r-- | src/dolphinplacesmodelsingleton.h | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/dolphinplacesmodelsingleton.h b/src/dolphinplacesmodelsingleton.h index 645947aaa..996f9de78 100644 --- a/src/dolphinplacesmodelsingleton.h +++ b/src/dolphinplacesmodelsingleton.h @@ -10,7 +10,37 @@ #include <QString> #include <QScopedPointer> -class KFilePlacesModel; +#include <KFilePlacesModel> + +/** + * @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(const QString &alternativeApplicationName, QObject *parent = nullptr); + ~DolphinPlacesModel() override; + + bool panelsLocked() const; + void setPanelsLocked(bool locked); + +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. @@ -21,7 +51,7 @@ class DolphinPlacesModelSingleton public: static DolphinPlacesModelSingleton& instance(); - KFilePlacesModel *placesModel() const; + DolphinPlacesModel *placesModel() const; /** A suffix to the application-name of the stored bookmarks is added, which is only read by PlacesItemModel. */ static QString applicationNameSuffix(); @@ -32,7 +62,7 @@ public: private: DolphinPlacesModelSingleton(); - QScopedPointer<KFilePlacesModel> m_placesModel; + QScopedPointer<DolphinPlacesModel> m_placesModel; }; #endif // DOLPHINPLACESMODELSINGLETON_H |
