┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/places/placesitem.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-05-09 09:03:21 +0200
committerPeter Penz <[email protected]>2012-05-09 09:04:06 +0200
commit321f747ddf9cf71ed3c8fa4de287d131cd22c2d8 (patch)
tree0e75bf2126f335b38c0de4fe204654d2da8e5d6f /src/panels/places/placesitem.cpp
parent02b251372efb53344388a9e3da098b08289e7e3b (diff)
Create items for devices that have not been added as bookmarks yet
Diffstat (limited to 'src/panels/places/placesitem.cpp')
-rw-r--r--src/panels/places/placesitem.cpp63
1 files changed, 44 insertions, 19 deletions
diff --git a/src/panels/places/placesitem.cpp b/src/panels/places/placesitem.cpp
index 11a7462c4..33af8a820 100644
--- a/src/panels/places/placesitem.cpp
+++ b/src/panels/places/placesitem.cpp
@@ -32,41 +32,37 @@ PlacesItem::PlacesItem(PlacesItem* parent) :
{
}
-PlacesItem::PlacesItem(const KBookmark& bookmark, const QString& udi, PlacesItem* parent) :
+PlacesItem::PlacesItem(const KBookmark& bookmark, PlacesItem* parent) :
KStandardItem(parent),
- m_device(udi),
+ m_device(),
m_access(),
m_volume(),
m_disc()
{
setHidden(bookmark.metaDataItem("IsHidden") == QLatin1String("true"));
+ const QString udi = bookmark.metaDataItem("UDI");
if (udi.isEmpty()) {
setIcon(bookmark.icon());
setText(bookmark.text());
setUrl(bookmark.url());
setDataValue("address", bookmark.address());
setGroup(i18nc("@item", "Places"));
- } else if (m_device.isValid()) {
- m_access = m_device.as<Solid::StorageAccess>();
- m_volume = m_device.as<Solid::StorageVolume>();
- m_disc = m_device.as<Solid::OpticalDisc>();
-
- setText(m_device.description());
- setIcon(m_device.icon());
- setIconOverlays(m_device.emblems());
- setDataValue("udi", udi);
- setGroup(i18nc("@item", "Devices"));
-
- if (m_access) {
- setUrl(m_access->filePath());
- } else if (m_disc && (m_disc->availableContent() & Solid::OpticalDisc::Audio) != 0) {
- const QString device = m_device.as<Solid::Block>()->device();
- setUrl(QString("audiocd:/?device=%1").arg(device));
- }
+ } else {
+ initializeDevice(udi);
}
}
+PlacesItem::PlacesItem(const QString& udi, PlacesItem* parent) :
+ KStandardItem(parent),
+ m_device(),
+ m_access(),
+ m_volume(),
+ m_disc()
+{
+ initializeDevice(udi);
+}
+
PlacesItem::PlacesItem(const PlacesItem& item) :
KStandardItem(item),
m_device(),
@@ -100,4 +96,33 @@ bool PlacesItem::isHidden() const
return dataValue("isHidden").toBool();
}
+Solid::Device PlacesItem::device() const
+{
+ return m_device;
+}
+
+void PlacesItem::initializeDevice(const QString& udi)
+{
+ m_device = Solid::Device(udi);
+ if (!m_device.isValid()) {
+ return;
+ }
+
+ m_access = m_device.as<Solid::StorageAccess>();
+ m_volume = m_device.as<Solid::StorageVolume>();
+ m_disc = m_device.as<Solid::OpticalDisc>();
+
+ setText(m_device.description());
+ setIcon(m_device.icon());
+ setIconOverlays(m_device.emblems());
+ setDataValue("udi", udi);
+ setGroup(i18nc("@item", "Devices"));
+
+ if (m_access) {
+ setUrl(m_access->filePath());
+ } else if (m_disc && (m_disc->availableContent() & Solid::OpticalDisc::Audio) != 0) {
+ const QString device = m_device.as<Solid::Block>()->device();
+ setUrl(QString("audiocd:/?device=%1").arg(device));
+ }
+}