Changeset View
Changeset View
Standalone View
Standalone View
dataengines/devicenotifications/ksolidnotify.cpp
Show First 20 Lines • Show All 52 Lines • ▼ Show 20 Line(s) | 43 | { | |||
---|---|---|---|---|---|
53 | connect(Solid::DeviceNotifier::instance(), &Solid::DeviceNotifier::deviceAdded, | 53 | connect(Solid::DeviceNotifier::instance(), &Solid::DeviceNotifier::deviceAdded, | ||
54 | this, &KSolidNotify::onDeviceAdded); | 54 | this, &KSolidNotify::onDeviceAdded); | ||
55 | connect(Solid::DeviceNotifier::instance(), &Solid::DeviceNotifier::deviceRemoved, | 55 | connect(Solid::DeviceNotifier::instance(), &Solid::DeviceNotifier::deviceRemoved, | ||
56 | this, &KSolidNotify::onDeviceRemoved); | 56 | this, &KSolidNotify::onDeviceRemoved); | ||
57 | } | 57 | } | ||
58 | 58 | | |||
59 | void KSolidNotify::onDeviceAdded(const QString &udi) | 59 | void KSolidNotify::onDeviceAdded(const QString &udi) | ||
60 | { | 60 | { | ||
61 | // Clear any stale message from a previous instance | ||||
62 | emit clearNotification(udi); | ||||
61 | Solid::Device device(udi); | 63 | Solid::Device device(udi); | ||
62 | m_devices.insert(udi, device); | 64 | m_devices.insert(udi, device); | ||
63 | connectSignals(&m_devices[udi]); | 65 | connectSignals(&m_devices[udi]); | ||
64 | } | 66 | } | ||
65 | 67 | | |||
66 | void KSolidNotify::onDeviceRemoved(const QString &udi) | 68 | void KSolidNotify::onDeviceRemoved(const QString &udi) | ||
67 | { | 69 | { | ||
68 | if (m_devices[udi].is<Solid::StorageVolume>()) { | 70 | if (m_devices[udi].is<Solid::StorageVolume>()) { | ||
69 | Solid::StorageAccess *access = m_devices[udi].as<Solid::StorageAccess>(); | 71 | Solid::StorageAccess *access = m_devices[udi].as<Solid::StorageAccess>(); | ||
70 | if (access) { | 72 | if (access) { | ||
71 | disconnect(access, nullptr, this, nullptr); | 73 | disconnect(access, nullptr, this, nullptr); | ||
72 | } | 74 | } | ||
73 | } | 75 | } | ||
74 | m_devices.remove(udi); | 76 | m_devices.remove(udi); | ||
75 | emit clearNotification(udi); | | |||
76 | } | 77 | } | ||
77 | 78 | | |||
78 | bool KSolidNotify::isSafelyRemovable(const QString &udi) const | 79 | bool KSolidNotify::isSafelyRemovable(const QString &udi) const | ||
79 | { | 80 | { | ||
80 | Solid::Device parent = m_devices[udi].parent(); | 81 | Solid::Device parent = m_devices[udi].parent(); | ||
81 | if (parent.is<Solid::StorageDrive>()) { | 82 | if (parent.is<Solid::StorageDrive>()) { | ||
82 | Solid::StorageDrive *drive = parent.as<Solid::StorageDrive>(); | 83 | Solid::StorageDrive *drive = parent.as<Solid::StorageDrive>(); | ||
83 | return (!drive->isInUse() && (drive->isHotpluggable() || drive->isRemovable())); | 84 | return (!drive->isInUse() && (drive->isHotpluggable() || drive->isRemovable())); | ||
▲ Show 20 Lines • Show All 166 Lines • Show Last 20 Lines |