X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/23fff35aeb4143b73666471d7f79f30d808e2cf2..f2c09faf00e5375bc698732953572841933bb74d:/src/panels/places/placesitem.h diff --git a/src/panels/places/placesitem.h b/src/panels/places/placesitem.h index 20289c95a..1eff7a380 100644 --- a/src/panels/places/placesitem.h +++ b/src/panels/places/placesitem.h @@ -20,15 +20,21 @@ #ifndef PLACESITEM_H #define PLACESITEM_H -#include -#include -#include +#include "kitemviews/kstandarditem.h" + +#include #include #include +#include #include #include -class KBookmark; +#include +#include + + +class KDirLister; +class PlacesItemSignalHandler; /** * @brief Extends KStandardItem by places-specific properties. @@ -37,24 +43,74 @@ class PlacesItem : public KStandardItem { public: - explicit PlacesItem(PlacesItem* parent = 0); - PlacesItem(const KBookmark& bookmark, - const QString& udi, - PlacesItem* parent = 0); - PlacesItem(const PlacesItem& item); - virtual ~PlacesItem(); + explicit PlacesItem(const KBookmark& bookmark, PlacesItem* parent = nullptr); + ~PlacesItem() override; + + void setUrl(const QUrl& url); + QUrl url() const; - void setUrl(const KUrl& url); - KUrl url() const; + void setUdi(const QString& udi); + QString udi() const; + + void setApplicationName(const QString& applicationName); + QString applicationName() const; void setHidden(bool hidden); bool isHidden() const; + void setGroupHidden(bool hidden); + bool isGroupHidden() const; + + void setSystemItem(bool isSystemItem); + bool isSystemItem() const; + + Solid::Device device() const; + + void setBookmark(const KBookmark& bookmark); + KBookmark bookmark() const; + + bool storageSetupNeeded() const; + + bool isSearchOrTimelineUrl() const; + + PlacesItemSignalHandler* signalHandler() const; + +protected: + void onDataValueChanged(const QByteArray& role, + const QVariant& current, + const QVariant& previous) override; + + void onDataChanged(const QHash& current, + const QHash& previous) override; + +private: + PlacesItem(const PlacesItem& item); + + void initializeDevice(const QString& udi); + + /** + * Is invoked if the accessibility of the storage access + * m_access has been changed and updates the emblem. + */ + void onAccessibilityChanged(); + + /** + * Applies the data-value from the role to m_bookmark. + */ + void updateBookmarkForRole(const QByteArray& role); + + static QString generateNewId(); + private: Solid::Device m_device; QPointer m_access; QPointer m_volume; QPointer m_disc; + QPointer m_player; + QPointer m_signalHandler; + KBookmark m_bookmark; + + friend class PlacesItemSignalHandler; // Calls onAccessibilityChanged() }; #endif