X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/954e8c47906c12edaaf6e6aebdd41516eceb0d44..e9bd295b:/src/dolphinplacesmodelsingleton.h 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 #include -class KFilePlacesModel; +#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(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 m_placesModel; + QScopedPointer m_placesModel; }; #endif // DOLPHINPLACESMODELSINGLETON_H