[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/solid/solid/backends/hal
From: Kevin Ottens <ervin () kde ! org>
Date: 2008-08-13 16:34:54
Message-ID: 1218645294.883115.22199.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 846530 by ervin:
Call eject only when HAL tells us we're supposed to (like for iPods for
instance).
Approved by [ade] our Minority Platforms Overlord.
BUG: 156284
M +24 -0 halstorageaccess.cpp
--- trunk/KDE/kdelibs/solid/solid/backends/hal/halstorageaccess.cpp #846529:846530
@@ -20,6 +20,7 @@
#include "halstorageaccess.h"
#include <QtCore/QDebug>
+#include <QtCore/QProcess>
#include <QtDBus/QDBusConnection>
#include <QtDBus/QDBusInterface>
#include <QtDBus/QDBusReply>
@@ -124,6 +125,29 @@
} else if (m_teardownInProgress) {
m_teardownInProgress = false;
emit teardownDone(Solid::NoError, QVariant(), m_device->udi());
+
+ HalDevice drive(m_device->property("block.storage_device").toString());
+ if (drive.property("storage.requires_eject").toBool()) {
+
+ QString devnode = m_device->property("block.device").toString();
+
+#if defined(Q_OS_OPENBSD)
+ QString program = "cdio";
+ QStringList args;
+ args << "-f" << devnode << "eject";
+#elif defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD)
+ devnode.replace("/dev/", "").replace("([0-9]).", "\\1");
+ QString program = "cdcontrol";
+ QStringList args;
+ args << "-f" << devnode << "eject";
+#else
+ QString program = "eject";
+ QStringList args;
+ args << devnode;
+#endif
+
+ QProcess::startDetached(program, args);
+ }
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic