diff options
| author | David Edmundson <[email protected]> | 2016-05-18 02:06:49 +0100 |
|---|---|---|
| committer | David Edmundson <[email protected]> | 2016-05-18 10:11:36 +0100 |
| commit | 3b95644fa1495785f617165f4e8035528ec714e8 (patch) | |
| tree | e9cfcdacb2179740edfd34a91d8ddc5b923643ce /src/dolphinmainwindow.cpp | |
| parent | d0777bc791564d4d5c029a12c0c9f389fbf0267d (diff) | |
Don't allow opening the terminal if shell_access Kiosk mode is set
DolphinPart already did this. Dolphin itself didn't have this feature.
REVIEW: 127951
Diffstat (limited to 'src/dolphinmainwindow.cpp')
| -rw-r--r-- | src/dolphinmainwindow.cpp | 54 |
1 files changed, 30 insertions, 24 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index d4f2b06e7..1fadaf7fd 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -48,6 +48,7 @@ #include <KActionCollection> #include <KActionMenu> +#include <KAuthorized> #include <KConfig> #include <kdualaction.h> #include <KJobWidgets> @@ -1098,11 +1099,13 @@ void DolphinMainWindow::setupActions() compareFiles->setEnabled(false); connect(compareFiles, &QAction::triggered, this, &DolphinMainWindow::compareFiles); - QAction* openTerminal = actionCollection()->addAction(QStringLiteral("open_terminal")); - openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal")); - openTerminal->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal"))); - actionCollection()->setDefaultShortcut(openTerminal, Qt::SHIFT | Qt::Key_F4); - connect(openTerminal, &QAction::triggered, this, &DolphinMainWindow::openTerminal); + if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) { + QAction* openTerminal = actionCollection()->addAction(QStringLiteral("open_terminal")); + openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal")); + openTerminal->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal"))); + actionCollection()->setDefaultShortcut(openTerminal, Qt::SHIFT | Qt::Key_F4); + connect(openTerminal, &QAction::triggered, this, &DolphinMainWindow::openTerminal); + } // setup 'Settings' menu KToggleAction* showMenuBar = KStandardAction::showMenubar(0, 0, actionCollection()); @@ -1205,33 +1208,36 @@ void DolphinMainWindow::setupDockWidgets() // Setup "Terminal" #ifndef Q_OS_WIN - DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal")); - terminalDock->setLocked(lock); - terminalDock->setObjectName(QStringLiteral("terminalDock")); - terminalDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); - TerminalPanel* terminalPanel = new TerminalPanel(terminalDock); - terminalPanel->setCustomContextMenuActions({lockLayoutAction}); - terminalDock->setWidget(terminalPanel); + if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) { + DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal")); + terminalDock->setLocked(lock); + terminalDock->setObjectName(QStringLiteral("terminalDock")); + terminalDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); + TerminalPanel* terminalPanel = new TerminalPanel(terminalDock); + terminalPanel->setCustomContextMenuActions({lockLayoutAction}); + terminalDock->setWidget(terminalPanel); - connect(terminalPanel, &TerminalPanel::hideTerminalPanel, terminalDock, &DolphinDockWidget::hide); - connect(terminalPanel, &TerminalPanel::changeUrl, this, &DolphinMainWindow::slotTerminalDirectoryChanged); - connect(terminalDock, &DolphinDockWidget::visibilityChanged, - terminalPanel, &TerminalPanel::dockVisibilityChanged); + connect(terminalPanel, &TerminalPanel::hideTerminalPanel, terminalDock, &DolphinDockWidget::hide); + connect(terminalPanel, &TerminalPanel::changeUrl, this, &DolphinMainWindow::slotTerminalDirectoryChanged); + connect(terminalDock, &DolphinDockWidget::visibilityChanged, + terminalPanel, &TerminalPanel::dockVisibilityChanged); - QAction* terminalAction = terminalDock->toggleViewAction(); - createPanelAction(QIcon::fromTheme(QStringLiteral("utilities-terminal")), Qt::Key_F4, terminalAction, QStringLiteral("show_terminal_panel")); + QAction* terminalAction = terminalDock->toggleViewAction(); + createPanelAction(QIcon::fromTheme(QStringLiteral("utilities-terminal")), Qt::Key_F4, terminalAction, QStringLiteral("show_terminal_panel")); - addDockWidget(Qt::BottomDockWidgetArea, terminalDock); - connect(this, &DolphinMainWindow::urlChanged, - terminalPanel, &TerminalPanel::setUrl); + addDockWidget(Qt::BottomDockWidgetArea, terminalDock); + connect(this, &DolphinMainWindow::urlChanged, + terminalPanel, &TerminalPanel::setUrl); + + if (GeneralSettings::version() < 200) { + terminalDock->hide(); + } + } #endif if (GeneralSettings::version() < 200) { infoDock->hide(); foldersDock->hide(); -#ifndef Q_OS_WIN - terminalDock->hide(); -#endif } // Setup "Places" |
