]>
cloud.milkyroute.net Git - dolphin.git/blob - src/panels/places/placesitem.h
2 * SPDX-FileCopyrightText: 2012 Peter Penz <peter.penz19@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
10 #include "kitemviews/kstandarditem.h"
13 #include <Solid/Device>
14 #include <Solid/OpticalDisc>
15 #include <Solid/PortableMediaPlayer>
16 #include <Solid/StorageAccess>
17 #include <Solid/StorageVolume>
24 class PlacesItemSignalHandler
;
27 * @brief Extends KStandardItem by places-specific properties.
29 class PlacesItem
: public KStandardItem
33 explicit PlacesItem(const KBookmark
& bookmark
, PlacesItem
* parent
= nullptr);
34 ~PlacesItem() override
;
36 void setUrl(const QUrl
& url
);
39 void setUdi(const QString
& udi
);
42 void setApplicationName(const QString
& applicationName
);
43 QString
applicationName() const;
45 void setHidden(bool hidden
);
46 bool isHidden() const;
48 void setGroupHidden(bool hidden
);
49 bool isGroupHidden() const;
51 void setSystemItem(bool isSystemItem
);
52 bool isSystemItem() const;
54 Solid::Device
device() const;
56 void setBookmark(const KBookmark
& bookmark
);
57 KBookmark
bookmark() const;
59 bool storageSetupNeeded() const;
61 bool isSearchOrTimelineUrl() const;
63 PlacesItemSignalHandler
* signalHandler() const;
66 void onDataValueChanged(const QByteArray
& role
,
67 const QVariant
& current
,
68 const QVariant
& previous
) override
;
70 void onDataChanged(const QHash
<QByteArray
, QVariant
>& current
,
71 const QHash
<QByteArray
, QVariant
>& previous
) override
;
74 PlacesItem(const PlacesItem
& item
);
76 void initializeDevice(const QString
& udi
);
79 * Is invoked if the accessibility of the storage access
80 * m_access has been changed and updates the emblem.
82 void onAccessibilityChanged();
85 * Applies the data-value from the role to m_bookmark.
87 void updateBookmarkForRole(const QByteArray
& role
);
89 static QString
generateNewId();
92 Solid::Device m_device
;
93 QPointer
<Solid::StorageAccess
> m_access
;
94 QPointer
<Solid::StorageVolume
> m_volume
;
95 QPointer
<Solid::OpticalDisc
> m_disc
;
96 QPointer
<Solid::PortableMediaPlayer
> m_player
;
97 QPointer
<PlacesItemSignalHandler
> m_signalHandler
;
100 friend class PlacesItemSignalHandler
; // Calls onAccessibilityChanged()