]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/places/placesitem.h
Generalize Player protocol support
[dolphin.git] / src / panels / places / placesitem.h
index 81fbe5c609739eaf740a17aaa77fa08a7595e492..1eff7a380021dacceb25939f3eebb01d4bd896ce 100644 (file)
 #ifndef PLACESITEM_H
 #define PLACESITEM_H
 
+#include "kitemviews/kstandarditem.h"
+
 #include <KBookmark>
-#include <kitemviews/kstandarditem.h>
-#include <KUrl>
-#include <QPointer>
 #include <Solid/Device>
 #include <Solid/OpticalDisc>
+#include <Solid/PortableMediaPlayer>
 #include <Solid/StorageAccess>
 #include <Solid/StorageVolume>
 
-class PlacesItemStorageAccessListener;
+#include <QPointer>
+#include <QUrl>
+
+
+class KDirLister;
+class PlacesItemSignalHandler;
 
 /**
  * @brief Extends KStandardItem by places-specific properties.
@@ -38,27 +43,24 @@ class PlacesItem : public KStandardItem
 {
 
 public:
-    enum GroupType
-    {
-        PlacesType,
-        SearchForType,
-        RecentlyAccessedType,
-        DevicesType
-    };
+    explicit PlacesItem(const KBookmark& bookmark, PlacesItem* parent = nullptr);
+    ~PlacesItem() override;
 
-    explicit PlacesItem(const KBookmark& bookmark, PlacesItem* parent = 0);
-    explicit PlacesItem(const PlacesItem& item);
-    virtual ~PlacesItem();
-
-    void setUrl(const KUrl& url);
-    KUrl url() const;
+    void setUrl(const QUrl& url);
+    QUrl 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;
 
@@ -67,29 +69,28 @@ public:
     void setBookmark(const KBookmark& bookmark);
     KBookmark bookmark() const;
 
-    GroupType groupType() const;
+    bool storageSetupNeeded() const;
 
-    static KBookmark createBookmark(KBookmarkManager* manager,
-                                    const QString& text,
-                                    const KUrl& url,
-                                    const QString& iconName);
-    static KBookmark createDeviceBookmark(KBookmarkManager* manager,
-                                          const QString& udi);
+    bool isSearchOrTimelineUrl() const;
+
+    PlacesItemSignalHandler* signalHandler() const;
 
 protected:
-    virtual void onDataValueChanged(const QByteArray& role,
+    void onDataValueChanged(const QByteArray& role,
                                     const QVariant& current,
-                                    const QVariant& previous);
+                                    const QVariant& previous) override;
 
-    virtual void onDataChanged(const QHash<QByteArray, QVariant>& current,
-                               const QHash<QByteArray, QVariant>& previous);
+    void onDataChanged(const QHash<QByteArray, QVariant>& current,
+                               const QHash<QByteArray, QVariant>& previous) override;
 
 private:
+    PlacesItem(const PlacesItem& item);
+
     void initializeDevice(const QString& udi);
 
     /**
-     * Is invoked by m_accessListener if the accessibility
-     * of the storage access m_access has been changed.
+     * Is invoked if the accessibility of the storage access
+     * m_access has been changed and updates the emblem.
      */
     void onAccessibilityChanged();
 
@@ -105,10 +106,11 @@ private:
     QPointer<Solid::StorageAccess> m_access;
     QPointer<Solid::StorageVolume> m_volume;
     QPointer<Solid::OpticalDisc> m_disc;
-    QPointer<PlacesItemStorageAccessListener> m_accessListener;
+    QPointer<Solid::PortableMediaPlayer> m_player;
+    QPointer<PlacesItemSignalHandler> m_signalHandler;
     KBookmark m_bookmark;
 
-    friend class PlacesItemStorageAccessListener; // Calls onAccessibilityChanged()
+    friend class PlacesItemSignalHandler; // Calls onAccessibilityChanged()
 };
 
 #endif