void MenuDiskItem::update() { if (mDevice.isValid()) { const QIcon icon = XdgIcon::fromTheme(mDevice.icon(), QStringLiteral("drive-removable-media")); mDiskButton->setIcon(icon); mDiskButton->setText(mDevice.description()); setMountStatus(mDevice.as<Solid::StorageAccess>()->isAccessible() || !opticalParent().udi().isEmpty()); } }
void MenuDiskItem::updateMountStatus() { //Note: don't use the QStringLiteral here as it is causing a SEGFAULT in static finalization time //(the string is released upon our *.so removal, but the reference is still in held in libqtxdg...) static const QIcon icon = XdgIcon::fromTheme(mDevice.icon(), QLatin1String("drive-removable-media")); if (mDevice.isValid()) { mDiskButton->setIcon(icon); mDiskButton->setText(mDevice.description()); setMountStatus(mDevice.as<Solid::StorageAccess>()->isAccessible() || !opticalParent().udi().isEmpty()); } else emit invalid(mDevice.udi()); }
void MenuDiskItem::unmounted(Solid::ErrorType error, QVariant resultData, const QString &udi) { if (mEjectButtonClicked) { mEjectButtonClicked = false; if (Solid::NoError == error) { Solid::Device opt_parent = opticalParent(); if (!opt_parent.udi().isEmpty()) opt_parent.as<Solid::OpticalDrive>()->eject(); } else { LxQt::Notification::notify(tr("Removable media/devices manager") , tr("Unmounting of <strong><nobr>\"%1\"</nobr></strong> failed: %2").arg(mDevice.description()).arg(resultData.toString()), mDevice.icon()); qWarning() << "MenuDiskItem::unmounted" << udi << resultData.toString(); } } update(); }