]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Show the "Find File" and "Open Terminal" actions in the Tools for file URLs only.
authorDawit Alemayehu <adawit@kde.org>
Wed, 18 Jul 2012 02:47:10 +0000 (22:47 -0400)
committerDawit Alemayehu <adawit@kde.org>
Sun, 22 Jul 2012 21:30:18 +0000 (17:30 -0400)
BUG: 279283
FIXED-IN: 4.9.0
REVIEW: 105607
(cherry picked from commit 9a622c16d969a39571b610304db759f941b5d4f3)

src/dolphinpart.cpp
src/dolphinpart.h

index b3b7cd044e2f52edb8b777559a131ddf63cce88f..d1626e55d5da1c648208f83d668fb75753958dc9 100644 (file)
@@ -56,6 +56,7 @@ K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin"))
 
 DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args)
     : KParts::ReadOnlyPart(parent)
+      ,m_openTerminalAction(0)
 {
     Q_UNUSED(args)
     setComponentData(DolphinPartFactory::componentData(), false);
@@ -190,18 +191,18 @@ void DolphinPart::createActions()
                    goActionGroup);
 
     // Tools menu
-    KAction* findFile = actionCollection()->addAction("find_file");
-    findFile->setText(i18nc("@action:inmenu Tools", "Find File..."));
-    findFile->setShortcut(Qt::CTRL | Qt::Key_F);
-    findFile->setIcon(KIcon("edit-find"));
-    connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile()));
+    m_findFileAction = actionCollection()->addAction("find_file");
+    m_findFileAction->setText(i18nc("@action:inmenu Tools", "Find File..."));
+    m_findFileAction->setShortcut(Qt::CTRL | Qt::Key_F);
+    m_findFileAction->setIcon(KIcon("edit-find"));
+    connect(m_findFileAction, SIGNAL(triggered()), this, SLOT(slotFindFile()));
 
     if (KAuthorized::authorizeKAction("shell_access")) {
-        KAction* action = actionCollection()->addAction("open_terminal");
-        action->setIcon(KIcon("utilities-terminal"));
-        action->setText(i18nc("@action:inmenu Tools", "Open &Terminal"));
-        connect(action, SIGNAL(triggered()), SLOT(slotOpenTerminal()));
-        action->setShortcut(Qt::Key_F4);
+        m_openTerminalAction = actionCollection()->addAction("open_terminal");
+        m_openTerminalAction->setIcon(KIcon("utilities-terminal"));
+        m_openTerminalAction->setText(i18nc("@action:inmenu Tools", "Open &Terminal"));
+        connect(m_openTerminalAction, SIGNAL(triggered()), SLOT(slotOpenTerminal()));
+        m_openTerminalAction->setShortcut(Qt::Key_F4);
     }
 }
 
@@ -296,6 +297,13 @@ bool DolphinPart::openUrl(const KUrl& url)
     emit aboutToOpenURL();
     if (reload)
         m_view->reload();
+    // Disable "Find File" and "Open Terminal" actions for non-file URLs,
+    // e.g. ftp, smb, etc. #279283
+    const bool isLocalUrl = url.isLocalFile();
+    m_findFileAction->setEnabled(isLocalUrl);
+    if (m_openTerminalAction) {
+        m_openTerminalAction->setEnabled(isLocalUrl);
+    }
     return true;
 }
 
index 0a8ce07bd60f0188d2178561476edfc3127efcc2..e5693b363744a06937dc065a0d1165fafc30972b 100644 (file)
@@ -238,6 +238,8 @@ private:
     DolphinRemoteEncoding* m_remoteEncoding;
     DolphinPartBrowserExtension* m_extension;
     KNewFileMenu* m_newFileMenu;
+    KAction* m_findFileAction;
+    KAction* m_openTerminalAction;
     QString m_nameFilter;
     Q_DISABLE_COPY(DolphinPart)
 };