Changeset View
Changeset View
Standalone View
Standalone View
dataengines/hotplug/hotplugengine.cpp
Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Line(s) | |||||
43 | //#define HOTPLUGENGINE_TIMING | 43 | //#define HOTPLUGENGINE_TIMING | ||
44 | 44 | | |||
45 | HotplugEngine::HotplugEngine(QObject* parent, const QVariantList& args) | 45 | HotplugEngine::HotplugEngine(QObject* parent, const QVariantList& args) | ||
46 | : Plasma::DataEngine(parent, args), | 46 | : Plasma::DataEngine(parent, args), | ||
47 | m_dirWatch(new KDirWatch(this)) | 47 | m_dirWatch(new KDirWatch(this)) | ||
48 | { | 48 | { | ||
49 | const QStringList folders = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("solid/actions"), QStandardPaths::LocateDirectory); | 49 | const QStringList folders = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("solid/actions"), QStandardPaths::LocateDirectory); | ||
50 | 50 | | |||
51 | foreach (const QString &folder, folders) { | 51 | for (const QString &folder : folders) { | ||
52 | m_dirWatch->addDir(folder, KDirWatch::WatchFiles); | 52 | m_dirWatch->addDir(folder, KDirWatch::WatchFiles); | ||
53 | } | 53 | } | ||
54 | connect(m_dirWatch, &KDirWatch::created, this, &HotplugEngine::updatePredicates); | 54 | connect(m_dirWatch, &KDirWatch::created, this, &HotplugEngine::updatePredicates); | ||
55 | connect(m_dirWatch, &KDirWatch::deleted, this, &HotplugEngine::updatePredicates); | 55 | connect(m_dirWatch, &KDirWatch::deleted, this, &HotplugEngine::updatePredicates); | ||
56 | connect(m_dirWatch, &KDirWatch::dirty, this, &HotplugEngine::updatePredicates); | 56 | connect(m_dirWatch, &KDirWatch::dirty, this, &HotplugEngine::updatePredicates); | ||
57 | init(); | 57 | init(); | ||
58 | } | 58 | } | ||
59 | 59 | | |||
60 | HotplugEngine::~HotplugEngine() | 60 | HotplugEngine::~HotplugEngine() | ||
61 | { | 61 | { | ||
62 | 62 | | |||
63 | } | 63 | } | ||
64 | 64 | | |||
65 | void HotplugEngine::init() | 65 | void HotplugEngine::init() | ||
66 | { | 66 | { | ||
67 | findPredicates(); | 67 | findPredicates(); | ||
68 | 68 | | |||
69 | Solid::Predicate p(Solid::DeviceInterface::StorageAccess); | 69 | Solid::Predicate p(Solid::DeviceInterface::StorageAccess); | ||
70 | p |= Solid::Predicate(Solid::DeviceInterface::StorageDrive); | 70 | p |= Solid::Predicate(Solid::DeviceInterface::StorageDrive); | ||
71 | p |= Solid::Predicate(Solid::DeviceInterface::StorageVolume); | 71 | p |= Solid::Predicate(Solid::DeviceInterface::StorageVolume); | ||
72 | p |= Solid::Predicate(Solid::DeviceInterface::OpticalDrive); | 72 | p |= Solid::Predicate(Solid::DeviceInterface::OpticalDrive); | ||
73 | p |= Solid::Predicate(Solid::DeviceInterface::OpticalDisc); | 73 | p |= Solid::Predicate(Solid::DeviceInterface::OpticalDisc); | ||
74 | p |= Solid::Predicate(Solid::DeviceInterface::PortableMediaPlayer); | 74 | p |= Solid::Predicate(Solid::DeviceInterface::PortableMediaPlayer); | ||
75 | p |= Solid::Predicate(Solid::DeviceInterface::Camera); | 75 | p |= Solid::Predicate(Solid::DeviceInterface::Camera); | ||
76 | QList<Solid::Device> devices = Solid::Device::listFromQuery(p); | 76 | const QList<Solid::Device> devices = Solid::Device::listFromQuery(p); | ||
77 | foreach (const Solid::Device &dev, devices) { | 77 | for (const Solid::Device &dev : devices) { | ||
78 | m_startList.insert(dev.udi(), dev); | 78 | m_startList.insert(dev.udi(), dev); | ||
79 | } | 79 | } | ||
80 | 80 | | |||
81 | connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceAdded(QString)), | 81 | connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceAdded(QString)), | ||
82 | this, SLOT(onDeviceAdded(QString))); | 82 | this, SLOT(onDeviceAdded(QString))); | ||
83 | connect(Solid::DeviceNotifier::instance(), &Solid::DeviceNotifier::deviceRemoved, | 83 | connect(Solid::DeviceNotifier::instance(), &Solid::DeviceNotifier::deviceRemoved, | ||
84 | this, &HotplugEngine::onDeviceRemoved); | 84 | this, &HotplugEngine::onDeviceRemoved); | ||
85 | 85 | | |||
Show All 23 Lines | 97 | { | |||
109 | } | 109 | } | ||
110 | } | 110 | } | ||
111 | 111 | | |||
112 | void HotplugEngine::findPredicates() | 112 | void HotplugEngine::findPredicates() | ||
113 | { | 113 | { | ||
114 | m_predicates.clear(); | 114 | m_predicates.clear(); | ||
115 | QStringList files; | 115 | QStringList files; | ||
116 | const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("solid/actions"), QStandardPaths::LocateDirectory); | 116 | const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("solid/actions"), QStandardPaths::LocateDirectory); | ||
117 | Q_FOREACH (const QString& dir, dirs) { | 117 | for (const QString& dir : dirs) { | ||
118 | QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop")); | 118 | QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop")); | ||
119 | while (it.hasNext()) { | 119 | while (it.hasNext()) { | ||
120 | files.prepend(it.next()); | 120 | files.prepend(it.next()); | ||
121 | } | 121 | } | ||
122 | } | 122 | } | ||
123 | //qDebug() << files; | 123 | //qDebug() << files; | ||
124 | foreach (const QString &path, files) { | 124 | for (const QString &path : qAsConst(files)) { | ||
125 | KDesktopFile cfg(path); | 125 | KDesktopFile cfg(path); | ||
126 | const QString string_predicate = cfg.desktopGroup().readEntry("X-KDE-Solid-Predicate"); | 126 | const QString string_predicate = cfg.desktopGroup().readEntry("X-KDE-Solid-Predicate"); | ||
127 | //qDebug() << path << string_predicate; | 127 | //qDebug() << path << string_predicate; | ||
128 | m_predicates.insert(QUrl(path).fileName(), Solid::Predicate::fromString(string_predicate)); | 128 | m_predicates.insert(QUrl(path).fileName(), Solid::Predicate::fromString(string_predicate)); | ||
129 | } | 129 | } | ||
130 | 130 | | |||
131 | if (m_predicates.isEmpty()) { | 131 | if (m_predicates.isEmpty()) { | ||
132 | m_predicates.insert(QString(), Solid::Predicate::fromString(QString())); | 132 | m_predicates.insert(QString(), Solid::Predicate::fromString(QString())); | ||
▲ Show 20 Lines • Show All 156 Lines • Show Last 20 Lines |