mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
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:
parent
95d655683c
commit
9a622c16d9
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue