|
|
@ -67,7 +67,6 @@ const Medium MountHelper::findMedium(const KURL &url)
|
|
|
|
MountHelper::MountHelper() : TDEApplication()
|
|
|
|
MountHelper::MountHelper() : TDEApplication()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
|
|
|
|
TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
|
|
|
|
|
|
|
|
|
|
|
|
m_errorStr = TQString::null;
|
|
|
|
m_errorStr = TQString::null;
|
|
|
|
|
|
|
|
|
|
|
|
KURL url(args->url(0));
|
|
|
|
KURL url(args->url(0));
|
|
|
@ -77,25 +76,28 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
if (m_errorStr.isEmpty()) {
|
|
|
|
if (m_errorStr.isEmpty()) {
|
|
|
|
m_errorStr+= i18n("%1 cannot be found.").arg(url.prettyURL());
|
|
|
|
m_errorStr+= i18n("%1 cannot be found.").arg(url.prettyURL());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TQString device = medium.deviceNode();
|
|
|
|
if (!medium.isMountable() && !medium.isEncrypted() && !args->isSet("e") && !args->isSet("s"))
|
|
|
|
if (!medium.isMountable() && !medium.isEncrypted() && !args->isSet("e") && !args->isSet("s"))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_errorStr = i18n("%1 is not a mountable or encrypted media.").arg(url.prettyURL());
|
|
|
|
m_errorStr = i18n("%1 is not a mountable or encrypted media.").arg(device);
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TQString device = medium.deviceNode();
|
|
|
|
|
|
|
|
TQString mount_point = medium.mountPoint();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_isCdrom = medium.mimeType().find("dvd") != -1 || medium.mimeType().find("cd") != -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (args->isSet("m"))
|
|
|
|
if (args->isSet("m"))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Mount drive
|
|
|
|
// Mount drive
|
|
|
|
|
|
|
|
if (!medium.isMountable()) {
|
|
|
|
|
|
|
|
m_errorStr = i18n("%1 is not a mountable media.").arg(device);
|
|
|
|
|
|
|
|
errorAndExit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (medium.isMounted()) {
|
|
|
|
|
|
|
|
m_errorStr = i18n("%1 is already mounted to %2.").arg(device).arg(medium.mountPoint());
|
|
|
|
|
|
|
|
errorAndExit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DCOPRef mediamanager("kded", "mediamanager");
|
|
|
|
DCOPRef mediamanager("kded", "mediamanager");
|
|
|
|
DCOPReply reply = mediamanager.call("mount", medium.id());
|
|
|
|
DCOPReply reply = mediamanager.call("mount", medium.id());
|
|
|
|
TQStringVariantMap mountResult;
|
|
|
|
TQStringVariantMap mountResult;
|
|
|
@ -107,12 +109,21 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
m_errorStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : i18n("Unknown mount error.");
|
|
|
|
m_errorStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : i18n("Unknown mount error.");
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (args->isSet("u"))
|
|
|
|
else if (args->isSet("u"))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Unmount drive
|
|
|
|
// Unmount drive
|
|
|
|
|
|
|
|
if (!medium.isMountable()) {
|
|
|
|
|
|
|
|
m_errorStr = i18n("%1 is not a mountable media.").arg(device);
|
|
|
|
|
|
|
|
errorAndExit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!medium.isMounted()) {
|
|
|
|
|
|
|
|
m_errorStr = i18n("%1 is already unmounted.").arg(device);
|
|
|
|
|
|
|
|
errorAndExit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DCOPRef mediamanager("kded", "mediamanager");
|
|
|
|
DCOPRef mediamanager("kded", "mediamanager");
|
|
|
|
DCOPReply reply = mediamanager.call("unmount", medium.id());
|
|
|
|
DCOPReply reply = mediamanager.call("unmount", medium.id());
|
|
|
|
TQStringVariantMap unmountResult;
|
|
|
|
TQStringVariantMap unmountResult;
|
|
|
@ -125,7 +136,7 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
m_errorStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : i18n("Unknown unmount error.");
|
|
|
|
m_errorStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : i18n("Unknown unmount error.");
|
|
|
|
kdDebug() << "medium unmount " << m_errorStr << endl;
|
|
|
|
kdDebug() << "medium unmount " << m_errorStr << endl;
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (args->isSet("k"))
|
|
|
|
else if (args->isSet("k"))
|
|
|
@ -133,15 +144,13 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
// Unlock drive
|
|
|
|
// Unlock drive
|
|
|
|
if (!medium.isEncrypted())
|
|
|
|
if (!medium.isEncrypted())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_errorStr = i18n("%1 is not an encrypted media.").arg(url.prettyURL());
|
|
|
|
m_errorStr = i18n("%1 is not an encrypted media.").arg(device);
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!medium.needUnlocking())
|
|
|
|
if (!medium.needUnlocking())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_errorStr = i18n("%1 is already unlocked.").arg(url.prettyURL());
|
|
|
|
m_errorStr = i18n("%1 is already unlocked.").arg(device);
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TQString iconName = medium.iconName();
|
|
|
|
TQString iconName = medium.iconName();
|
|
|
@ -160,6 +169,17 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
else if (args->isSet("l"))
|
|
|
|
else if (args->isSet("l"))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Lock drive
|
|
|
|
// Lock drive
|
|
|
|
|
|
|
|
if (!medium.isEncrypted())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
m_errorStr = i18n("%1 is not an encrypted media.").arg(device);
|
|
|
|
|
|
|
|
errorAndExit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (medium.needUnlocking())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
m_errorStr = i18n("%1 is already locked.").arg(device);
|
|
|
|
|
|
|
|
errorAndExit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DCOPRef mediamanager("kded", "mediamanager");
|
|
|
|
DCOPRef mediamanager("kded", "mediamanager");
|
|
|
|
DCOPReply reply = mediamanager.call("lock", medium.id());
|
|
|
|
DCOPReply reply = mediamanager.call("lock", medium.id());
|
|
|
|
TQStringVariantMap lockResult;
|
|
|
|
TQStringVariantMap lockResult;
|
|
|
@ -172,7 +192,7 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
m_errorStr = lockResult.contains("errStr") ? lockResult["errStr"].toString() : i18n("Unknown lock error.");
|
|
|
|
m_errorStr = lockResult.contains("errStr") ? lockResult["errStr"].toString() : i18n("Unknown lock error.");
|
|
|
|
kdDebug() << "medium lock " << m_errorStr << endl;
|
|
|
|
kdDebug() << "medium lock " << m_errorStr << endl;
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (args->isSet("e"))
|
|
|
|
else if (args->isSet("e"))
|
|
|
@ -223,7 +243,7 @@ MountHelper::MountHelper() : TDEApplication()
|
|
|
|
invokeEject(device, true);
|
|
|
|
invokeEject(device, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -267,13 +287,13 @@ void MountHelper::ejectFinished(TDEProcess *proc)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
if (!m_errorStr.isEmpty()) {
|
|
|
|
if (!m_errorStr.isEmpty()) {
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
::exit(0);
|
|
|
|
::exit(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MountHelper::error()
|
|
|
|
void MountHelper::errorAndExit()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
TQString prettyErrorString = m_errorStr;
|
|
|
|
TQString prettyErrorString = m_errorStr;
|
|
|
|
if (m_errorStr.contains("<") && m_errorStr.contains(">")) {
|
|
|
|
if (m_errorStr.contains("<") && m_errorStr.contains(">")) {
|
|
|
@ -301,7 +321,7 @@ void MountHelper::slotSendPassword()
|
|
|
|
m_errorStr = unlockResult.contains("errStr") ? unlockResult["errStr"].toString() : i18n("Unknown unlock error.");
|
|
|
|
m_errorStr = unlockResult.contains("errStr") ? unlockResult["errStr"].toString() : i18n("Unknown unlock error.");
|
|
|
|
kdDebug() << "medium unlock " << m_errorStr << endl;
|
|
|
|
kdDebug() << "medium unlock " << m_errorStr << endl;
|
|
|
|
emit signalPasswordError(m_errorStr);
|
|
|
|
emit signalPasswordError(m_errorStr);
|
|
|
|
TQTimer::singleShot(0, this, TQT_SLOT(error()));
|
|
|
|
errorAndExit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|