summaryrefslogtreecommitdiffstats
path: root/konqueror/konq_mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'konqueror/konq_mainwindow.cpp')
-rw-r--r--konqueror/konq_mainwindow.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/konqueror/konq_mainwindow.cpp b/konqueror/konq_mainwindow.cpp
index 90dd451af..72a90d8ba 100644
--- a/konqueror/konq_mainwindow.cpp
+++ b/konqueror/konq_mainwindow.cpp
@@ -717,6 +717,27 @@ bool KonqMainWindow::openView( TQString serviceType, const KURL &_url, KonqView
return false; // execute, don't open
// Contract: the caller of this method should ensure the view is stopped first.
+ // If trying to navigate to an encrypted disk, unlock it if necessary and then navigate to system:/media
+ if (serviceType.contains("encrypted"))
+ {
+ if (serviceType.contains("encrypted_locked"))
+ {
+ TQString lockingService = TDEGlobal::dirs()->findResource("data", "konqueror/servicemenus/media_unlock.desktop");
+ if (!lockingService.isEmpty())
+ {
+ TQValueList<KDEDesktopMimeType::Service> serviceList = KDEDesktopMimeType::userDefinedServices(lockingService, _url.isLocalFile());
+ if (serviceList.count() == 1)
+ {
+ KURL::List m_lstURLs;
+ m_lstURLs.append(_url);
+ KDEDesktopMimeType::executeService(m_lstURLs, serviceList[0]);
+ }
+ }
+ }
+ slotGoMedia();
+ return true;
+ }
+
#ifndef NDEBUG
kdDebug(1202) << "KonqMainWindow::openView " << serviceType << " " << _url << " " << childView << " req:" << req.debug() << endl;
#endif