X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7cee23157f099837fffc22380b85ac33a2006a49..e9bd295b:/src/dolphinplacesmodelsingleton.h diff --git a/src/dolphinplacesmodelsingleton.h b/src/dolphinplacesmodelsingleton.h index 6bce25d16..996f9de78 100644 --- a/src/dolphinplacesmodelsingleton.h +++ b/src/dolphinplacesmodelsingleton.h @@ -1,21 +1,8 @@ -/*************************************************************************** - * 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 @@ -23,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. @@ -34,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(); @@ -45,7 +62,7 @@ public: private: DolphinPlacesModelSingleton(); - QScopedPointer m_placesModel; + QScopedPointer m_placesModel; }; #endif // DOLPHINPLACESMODELSINGLETON_H