From 996fe25208f9db430daa7d1800c4476929eef0dd Mon Sep 17 00:00:00 2001 From: Alex Fiestas Date: Wed, 24 Oct 2012 01:21:02 +0200 Subject: Show MTP devices in case support for it is installed Basically adds a conditional that in case that mtp kioslave is installed devices with MTP are added to the predicated. REVIEW: 106651 (cherry picked from commit a09a23795050be4ad6e2c987614cb28096030cc8) --- src/panels/places/placesitemmodel.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/panels/places/placesitemmodel.cpp') diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp index 4770c6b10..1789f1806 100644 --- a/src/panels/places/placesitemmodel.cpp +++ b/src/panels/places/placesitemmodel.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -554,11 +555,14 @@ void PlacesItemModel::onItemChanged(int index, const QSet& changedRo void PlacesItemModel::slotDeviceAdded(const QString& udi) { const Solid::Device device(udi); - if (m_predicate.matches(device)) { - m_availableDevices << udi; - const KBookmark bookmark = PlacesItem::createDeviceBookmark(m_bookmarkManager, udi); - appendItem(new PlacesItem(bookmark)); + + if (!m_predicate.matches(device)) { + return; } + + m_availableDevices << udi; + const KBookmark bookmark = PlacesItem::createDeviceBookmark(m_bookmarkManager, udi); + appendItem(new PlacesItem(bookmark)); } void PlacesItemModel::slotDeviceRemoved(const QString& udi) @@ -949,14 +953,21 @@ void PlacesItemModel::createSystemBookmarks() void PlacesItemModel::initializeAvailableDevices() { - m_predicate = Solid::Predicate::fromString( - "[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]" + QString predicate("[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]" " OR " "[ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ]]" " OR " "OpticalDisc.availableContent & 'Audio' ]" " OR " "StorageAccess.ignored == false ]"); + + + if (KProtocolInfo::isKnownProtocol("mtp")) { + predicate.prepend("["); + predicate.append(" OR PortableMediaPlayer.supportedProtocols == 'mtp']"); + } + + m_predicate = Solid::Predicate::fromString(predicate); Q_ASSERT(m_predicate.isValid()); Solid::DeviceNotifier* notifier = Solid::DeviceNotifier::instance(); -- cgit v1.3.1