X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/954e8c47906c12edaaf6e6aebdd41516eceb0d44..refs/heads/master:/src/dolphinplacesmodelsingleton.h diff --git a/src/dolphinplacesmodelsingleton.h b/src/dolphinplacesmodelsingleton.h index 645947aaa..161a19cbc 100644 --- a/src/dolphinplacesmodelsingleton.h +++ b/src/dolphinplacesmodelsingleton.h @@ -7,32 +7,61 @@ #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