]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Don't allow opening the terminal if shell_access Kiosk mode is set
authorDavid Edmundson <kde@davidedmundson.co.uk>
Wed, 18 May 2016 01:06:49 +0000 (02:06 +0100)
committerDavid Edmundson <kde@davidedmundson.co.uk>
Wed, 18 May 2016 09:11:36 +0000 (10:11 +0100)
DolphinPart already did this. Dolphin itself didn't have this feature.

REVIEW: 127951

src/dolphinmainwindow.cpp
src/dolphinpart.cpp

index d4f2b06e75075b69ade4a40b59721d6ea818ffea..1fadaf7fd81332b4c0b929d6f9ed86bad11f6ac3 100644 (file)
@@ -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);
-
-    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"));
-
-    addDockWidget(Qt::BottomDockWidgetArea, terminalDock);
-    connect(this, &DolphinMainWindow::urlChanged,
-            terminalPanel, &TerminalPanel::setUrl);
+    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);
+
+        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);
+
+        if (GeneralSettings::version() < 200) {
+            terminalDock->hide();
+        }
+    }
 #endif
 
     if (GeneralSettings::version() < 200) {
         infoDock->hide();
         foldersDock->hide();
-#ifndef Q_OS_WIN
-        terminalDock->hide();
-#endif
     }
 
     // Setup "Places"
index 01fe207f30909f02d9abab8f94c80dd52273db1c..f62bc51390aa19686a6a534b57e093474913137c 100644 (file)
@@ -31,7 +31,7 @@
 #include <KPluginFactory>
 #include <KRun>
 #include <KToolInvocation>
-#include <kauthorized.h>
+#include <KAuthorized>
 #include <QMenu>
 #include <KSharedConfig>
 #include <KConfigGroup>