diff options
| author | Peter Penz <[email protected]> | 2012-05-09 09:03:21 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-05-09 09:04:06 +0200 |
| commit | 321f747ddf9cf71ed3c8fa4de287d131cd22c2d8 (patch) | |
| tree | 0e75bf2126f335b38c0de4fe204654d2da8e5d6f /src/panels/places/placesitem.cpp | |
| parent | 02b251372efb53344388a9e3da098b08289e7e3b (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.cpp | 63 |
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)); + } +} |
