Show the "Find File" and "Open Terminal" actions in the Tools for file URLs only.

BUG: 279283
FIXED-IN: 4.9.0
REVIEW: 105607
This commit is contained in:
Dawit Alemayehu 2012-07-17 22:47:10 -04:00
parent 95d655683c
commit 9a622c16d9
2 changed files with 20 additions and 10 deletions

View file

@ -56,6 +56,7 @@ K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin"))
DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args) DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args)
: KParts::ReadOnlyPart(parent) : KParts::ReadOnlyPart(parent)
,m_openTerminalAction(0)
{ {
Q_UNUSED(args) Q_UNUSED(args)
setComponentData(DolphinPartFactory::componentData(), false); setComponentData(DolphinPartFactory::componentData(), false);
@ -190,18 +191,18 @@ void DolphinPart::createActions()
goActionGroup); goActionGroup);
// Tools menu // Tools menu
KAction* findFile = actionCollection()->addAction("find_file"); m_findFileAction = actionCollection()->addAction("find_file");
findFile->setText(i18nc("@action:inmenu Tools", "Find File...")); m_findFileAction->setText(i18nc("@action:inmenu Tools", "Find File..."));
findFile->setShortcut(Qt::CTRL | Qt::Key_F); m_findFileAction->setShortcut(Qt::CTRL | Qt::Key_F);
findFile->setIcon(KIcon("edit-find")); m_findFileAction->setIcon(KIcon("edit-find"));
connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile())); connect(m_findFileAction, SIGNAL(triggered()), this, SLOT(slotFindFile()));
if (KAuthorized::authorizeKAction("shell_access")) { if (KAuthorized::authorizeKAction("shell_access")) {
KAction* action = actionCollection()->addAction("open_terminal"); m_openTerminalAction = actionCollection()->addAction("open_terminal");
action->setIcon(KIcon("utilities-terminal")); m_openTerminalAction->setIcon(KIcon("utilities-terminal"));
action->setText(i18nc("@action:inmenu Tools", "Open &Terminal")); m_openTerminalAction->setText(i18nc("@action:inmenu Tools", "Open &Terminal"));
connect(action, SIGNAL(triggered()), SLOT(slotOpenTerminal())); connect(m_openTerminalAction, SIGNAL(triggered()), SLOT(slotOpenTerminal()));
action->setShortcut(Qt::Key_F4); m_openTerminalAction->setShortcut(Qt::Key_F4);
} }
} }
@ -296,6 +297,13 @@ bool DolphinPart::openUrl(const KUrl& url)
emit aboutToOpenURL(); emit aboutToOpenURL();
if (reload) if (reload)
m_view->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; return true;
} }

View file

@ -238,6 +238,8 @@ private:
DolphinRemoteEncoding* m_remoteEncoding; DolphinRemoteEncoding* m_remoteEncoding;
DolphinPartBrowserExtension* m_extension; DolphinPartBrowserExtension* m_extension;
KNewFileMenu* m_newFileMenu; KNewFileMenu* m_newFileMenu;
KAction* m_findFileAction;
KAction* m_openTerminalAction;
QString m_nameFilter; QString m_nameFilter;
Q_DISABLE_COPY(DolphinPart) Q_DISABLE_COPY(DolphinPart)
}; };