2 * SPDX-FileCopyrightText: 2018 Kai Uwe Broulik <kde@privat.broulik.de>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #ifndef DOLPHINPLACESMODELSINGLETON_H
8 #define DOLPHINPLACESMODELSINGLETON_H
10 #include <QScopedPointer>
13 #include <KFilePlacesModel>
16 * @brief Dolphin's special-cased KFilePlacesModel
18 * It returns the trash's icon based on whether
21 class DolphinPlacesModel
: public KFilePlacesModel
26 explicit DolphinPlacesModel(QObject
*parent
= nullptr);
27 ~DolphinPlacesModel() override
;
29 bool panelsLocked() const;
30 void setPanelsLocked(bool locked
);
32 QStringList
mimeTypes() const override
;
33 bool dropMimeData(const QMimeData
*data
, Qt::DropAction action
, int row
, int column
, const QModelIndex
&parent
) override
;
36 QVariant
data(const QModelIndex
&index
, int role
= Qt::DisplayRole
) const override
;
39 void slotTrashEmptinessChanged(bool isEmpty
);
42 bool isTrash(const QModelIndex
&index
) const;
44 bool m_isEmpty
= false;
45 bool m_panelsLocked
= true; // common-case, panels are locked
49 * @brief Provides a global KFilePlacesModel instance.
51 class DolphinPlacesModelSingleton
54 static DolphinPlacesModelSingleton
&instance();
56 DolphinPlacesModel
*placesModel() const;
58 DolphinPlacesModelSingleton(const DolphinPlacesModelSingleton
&) = delete;
59 DolphinPlacesModelSingleton
&operator=(const DolphinPlacesModelSingleton
&) = delete;
62 DolphinPlacesModelSingleton();
64 QScopedPointer
<DolphinPlacesModel
> m_placesModel
;
67 #endif // DOLPHINPLACESMODELSINGLETON_H