[freespacenotifier] impr: no notification for ro filesystems

wilder-5.24
Andrey Butirsky 4 years ago
parent ca4bff7255
commit 6af29669c2
  1. 14
      freespacenotifier/module.cpp

@ -31,12 +31,18 @@ FreeSpaceNotifierModule::FreeSpaceNotifierModule(QObject *parent, const QList<QV
const QString rootPath = QStringLiteral("/");
const QString homePath = QDir::homePath();
auto *homeNotifier = new FreeSpaceNotifier(homePath, ki18n("Your Home folder is running out of disk space, you have %1 MiB remaining (%2%)."), this);
connect(homeNotifier, &FreeSpaceNotifier::configureRequested, this, &FreeSpaceNotifierModule::showConfiguration);
const auto homeMountPoint = KMountPoint::currentMountPoints().findByPath(homePath);
if ( !homeMountPoint || !homeMountPoint->mountOptions().contains(QLatin1String("ro")) ) {
auto *homeNotifier = new FreeSpaceNotifier(homePath, ki18n("Your Home folder is running out of disk space, you have %1 MiB remaining (%2%)."), this);
connect(homeNotifier, &FreeSpaceNotifier::configureRequested, this, &FreeSpaceNotifierModule::showConfiguration);
}
// If Home is on a separate partition from Root, warn for it, too.
auto homeMountPoint = KMountPoint::currentMountPoints().findByPath(homePath);
if (!homeMountPoint || homeMountPoint->mountPoint() != rootPath) {
if (KMountPoint::Ptr rootMountPoint; !homeMountPoint ||
( homeMountPoint->mountPoint() != rootPath &&
( !(rootMountPoint = KMountPoint::currentMountPoints().findByPath(rootPath)) ||
!rootMountPoint->mountOptions().contains(QLatin1String("ro")) ) ) ) {
auto *rootNotifier = new FreeSpaceNotifier(rootPath, ki18n("Your Root partition is running out of disk space, you have %1 MiB remaining (%2%)."), this);
connect(rootNotifier, &FreeSpaceNotifier::configureRequested, this, &FreeSpaceNotifierModule::showConfiguration);
}

Loading…
Cancel
Save