Baloo
9 #include "storagedevices.h"
10 #include "baloodebug.h"
12 #include <Solid/DeviceNotifier>
13 #include <Solid/DeviceInterface>
14 #include <Solid/Block>
15 #include <Solid/StorageDrive>
16 #include <Solid/StorageVolume>
17 #include <Solid/StorageAccess>
18 #include <Solid/NetworkShare>
19 #include <Solid/OpticalDisc>
20 #include <Solid/Predicate>
22 using namespace Baloo;
24 StorageDevices::StorageDevices(
QObject* parent)
28 this, &StorageDevices::slotSolidDeviceAdded);
30 this, &StorageDevices::slotSolidDeviceRemoved);
35 StorageDevices::~StorageDevices()
39 void StorageDevices::initCacheEntries()
45 createCacheEntry(dev);
51 return m_metadataCache.
values();
54 StorageDevices::Entry* StorageDevices::createCacheEntry(
const Solid::Device& dev)
66 auto it = m_metadataCache.
insert(dev.
udi(), entry);
69 this, &StorageDevices::slotAccessibilityChanged);
75 bool StorageDevices::isEmpty()
const
77 return m_metadataCache.
isEmpty();
80 void StorageDevices::slotSolidDeviceAdded(
const QString& udi)
82 qCDebug(BALOO) << udi;
89 void StorageDevices::slotSolidDeviceRemoved(
const QString& udi)
92 if (it != m_metadataCache.
end()) {
93 qCDebug(BALOO) <<
"Found removable storage volume for Baloo undocking:" << udi;
95 m_metadataCache.
erase(it);
99 void StorageDevices::slotAccessibilityChanged(
bool accessible,
const QString& udi)
101 qCDebug(BALOO) << accessible << udi;
102 Q_UNUSED(accessible);
107 Entry* entry = &m_metadataCache[udi];
108 Q_ASSERT(entry !=
nullptr);
109 Q_EMIT deviceAccessibilityChanged(entry);
112 StorageDevices::Entry::Entry()
121 QString StorageDevices::Entry::mountPath()
const
124 return sa->filePath();
130 bool StorageDevices::Entry::isMounted()
const
133 return sa->isAccessible();
139 bool StorageDevices::Entry::isUsable()
const
141 if (mountPath().isEmpty()) {
150 if (parent->isRemovable() || parent->isHotpluggable()) {
155 if (
volume->isIgnored() ||
volume->usage() != Solid::StorageVolume::FileSystem) {
168 usable = sa->isAccessible();
175 #include "moc_storagedevices.cpp"
void deviceRemoved(const QString &udi)
const T value(const Key &key) const const
void deviceAdded(const QString &udi)
QHash::iterator erase(QHash::iterator pos)
QHash::iterator find(const Key &key)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QHash::iterator insert(const Key &key, const T &value)
Implements storage for docIds without any associated data Instantiated for:
bool isEmpty() const const
static QList< Device > listFromType(const DeviceInterface::Type &type, const QString &parentUdi=QString())
void accessibilityChanged(bool accessible, const QString &udi)
static QList< Device > listFromQuery(const Predicate &predicate, const QString &parentUdi=QString())
QList< T > values() const const
bool isEmpty() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Nov 29 2023 03:56:26 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.