┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/places/placesitemmodel.cpp
diff options
context:
space:
mode:
authorAlex Fiestas <[email protected]>2012-10-24 01:21:02 +0200
committerAlex Fiestas <[email protected]>2012-10-24 01:22:31 +0200
commit996fe25208f9db430daa7d1800c4476929eef0dd (patch)
tree19580971b8bfe9a0ece21892e61c0c1e801416bf /src/panels/places/placesitemmodel.cpp
parent04dabe84b22aa9db501c2d88b4e6ffa0749598ce (diff)
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)
Diffstat (limited to 'src/panels/places/placesitemmodel.cpp')
-rw-r--r--src/panels/places/placesitemmodel.cpp23
1 files changed, 17 insertions, 6 deletions
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 <KComponentData>
#include <KDebug>
#include <KIcon>
+#include <kprotocolinfo.h>
#include <KLocale>
#include <KStandardDirs>
#include <KUser>
@@ -554,11 +555,14 @@ void PlacesItemModel::onItemChanged(int index, const QSet<QByteArray>& 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();