]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
Whitespace?
[dolphin.git] / src / dolphinmainwindow.cpp
index 1fadaf7fd81332b4c0b929d6f9ed86bad11f6ac3..afc9d04206c26f5deda1f8e29cc1709e39056e0e 100644 (file)
@@ -50,6 +50,7 @@
 #include <KActionMenu>
 #include <KAuthorized>
 #include <KConfig>
+#include <kconfigwidgets_version.h>
 #include <kdualaction.h>
 #include <KJobWidgets>
 #include <QLineEdit>
@@ -57,6 +58,7 @@
 #include <KIO/JobUiDelegate>
 #include <KLocalizedString>
 #include <KProtocolManager>
+#include <KProtocolInfo>
 #include <QMenu>
 #include <KMessageBox>
 #include <KFileItemListProperties>
@@ -83,7 +85,7 @@ namespace {
     // Used for GeneralSettings::version() to determine whether
     // an updated version of Dolphin is running.
     const int CurrentDolphinVersion = 200;
-};
+}
 
 DolphinMainWindow::DolphinMainWindow() :
     KXmlGuiWindow(0),
@@ -523,6 +525,13 @@ void DolphinMainWindow::toggleSplitView()
     updateViewActions();
 }
 
+void DolphinMainWindow::toggleSplitStash()
+{
+    DolphinTabPage* tabPage = m_tabWidget->currentTabPage();
+    tabPage->setSplitViewEnabled(false);
+    tabPage->setSplitViewEnabled(true, QUrl("stash:/"));
+}
+
 void DolphinMainWindow::reloadView()
 {
     clearStatusBar();
@@ -868,6 +877,10 @@ void DolphinMainWindow::updateControlMenu()
     helpMenu->addSeparator();
     helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::ReportBug)));
     helpMenu->addSeparator();
+#if KCONFIGWIDGETS_VERSION >= QT_VERSION_CHECK(5, 26, 0)
+    helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Donate)));
+    helpMenu->addSeparator();
+#endif
     helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::SwitchApplicationLanguage)));
     helpMenu->addSeparator();
     helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::AboutApp)));
@@ -1035,6 +1048,15 @@ void DolphinMainWindow::setupActions()
     actionCollection()->setDefaultShortcut(split, Qt::Key_F3);
     connect(split, &QAction::triggered, this, &DolphinMainWindow::toggleSplitView);
 
+    QAction* stashSplit = actionCollection()->addAction(QStringLiteral("split_stash"));
+    actionCollection()->setDefaultShortcut(stashSplit, Qt::CTRL | Qt::Key_S);
+    stashSplit->setText(i18nc("@action:intoolbar Stash", "Stash"));
+    stashSplit->setToolTip(i18nc("@info", "Opens the stash virtual directory in a split window"));
+    stashSplit->setIcon(QIcon::fromTheme(QStringLiteral("folder-visiting")));
+    stashSplit->setCheckable(false);
+    stashSplit->setVisible(KProtocolInfo::isKnownProtocol("stash"));
+    connect(stashSplit, &QAction::triggered, this, &DolphinMainWindow::toggleSplitStash);
+
     QAction* reload = actionCollection()->addAction(QStringLiteral("reload"));
     reload->setText(i18nc("@action:inmenu View", "Reload"));
     actionCollection()->setDefaultShortcut(reload, Qt::Key_F5);
@@ -1099,7 +1121,7 @@ void DolphinMainWindow::setupActions()
     compareFiles->setEnabled(false);
     connect(compareFiles, &QAction::triggered, this, &DolphinMainWindow::compareFiles);
 
-    if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+    if (KAuthorized::authorize(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")));
@@ -1208,7 +1230,7 @@ void DolphinMainWindow::setupDockWidgets()
 
     // Setup "Terminal"
 #ifndef Q_OS_WIN
-    if (KAuthorized::authorizeKAction(QStringLiteral("shell_access"))) {
+    if (KAuthorized::authorize(QStringLiteral("shell_access"))) {
         DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal"));
         terminalDock->setLocked(lock);
         terminalDock->setObjectName(QStringLiteral("terminalDock"));
@@ -1516,4 +1538,3 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job)
         KIO::FileUndoManager::UiInterface::jobError(job);
     }
 }
-