]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
Port test to qt5
[dolphin.git] / src / dolphinmainwindow.cpp
index 5e5eeb031a3b2c188f4e2403c58bdae12af3691c..e99788621396fa4af4a23d0b31287c9c8a1599c6 100644 (file)
 #include <KInputDialog>
 #include <KLocale>
 #include <KProtocolManager>
-#include <KMenu>
+#include <QMenu>
 #include <KMenuBar>
 #include <KMessageBox>
 #include <KFileItemListProperties>
 #include <KProtocolInfo>
 #include <KRun>
 #include <KShell>
-#include <KStandardDirs>
 #include <kstatusbar.h>
 #include <KStandardAction>
 #include <KToggleAction>
@@ -87,6 +86,7 @@
 #include <QToolButton>
 #include <QSplitter>
 #include <QTimer>
+#include <QStandardPaths>
 #include <QPushButton>
 
 namespace {
@@ -312,14 +312,14 @@ void DolphinMainWindow::openNewActivatedTab()
     m_tabWidget->openNewActivatedTab();
 }
 
-void DolphinMainWindow::openNewTab(const KUrl& primaryUrl, const KUrl& secondaryUrl)
+void DolphinMainWindow::openNewTab(const KUrl& url)
 {
-    m_tabWidget->openNewTab(primaryUrl, secondaryUrl);
+    m_tabWidget->openNewTab(url);
 }
 
-void DolphinMainWindow::openNewActivatedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl)
+void DolphinMainWindow::openNewActivatedTab(const KUrl& url)
 {
-    m_tabWidget->openNewActivatedTab(primaryUrl, secondaryUrl);
+    m_tabWidget->openNewActivatedTab(url);
 }
 
 void DolphinMainWindow::openInNewTab()
@@ -417,7 +417,7 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event)
     }
 
     GeneralSettings::setVersion(CurrentDolphinVersion);
-    GeneralSettings::self()->writeConfig();
+    GeneralSettings::self()->save();
 
     KXmlGuiWindow::closeEvent(event);
 }
@@ -797,10 +797,10 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos,
 
 void DolphinMainWindow::updateControlMenu()
 {
-    KMenu* menu = qobject_cast<KMenu*>(sender());
+    QMenu* menu = qobject_cast<QMenu*>(sender());
     Q_ASSERT(menu);
 
-    // All actions get cleared by KMenu::clear(). The sub-menus are deleted
+    // All actions get cleared by QMenu::clear(). The sub-menus are deleted
     // by connecting to the aboutToHide() signal from the parent-menu.
     menu->clear();
 
@@ -842,7 +842,7 @@ void DolphinMainWindow::updateControlMenu()
     }
 
     addActionToMenu(ac->action("panels"), menu);
-    KMenu* locationBarMenu = new KMenu(i18nc("@action:inmenu", "Location Bar"), menu);
+    QMenu* locationBarMenu = new QMenu(i18nc("@action:inmenu", "Location Bar"), menu);
     locationBarMenu->addAction(ac->action("editable_location"));
     locationBarMenu->addAction(ac->action("replace_location"));
     menu->addMenu(locationBarMenu);
@@ -850,8 +850,8 @@ void DolphinMainWindow::updateControlMenu()
     menu->addSeparator();
 
     // Add "Go" menu
-    KMenu* goMenu = new KMenu(i18nc("@action:inmenu", "Go"), menu);
-    connect(menu, &KMenu::aboutToHide, goMenu, &KMenu::deleteLater);
+    QMenu* goMenu = new QMenu(i18nc("@action:inmenu", "Go"), menu);
+    connect(menu, &QMenu::aboutToHide, goMenu, &QMenu::deleteLater);
     goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Back)));
     goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Forward)));
     goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Up)));
@@ -860,8 +860,8 @@ void DolphinMainWindow::updateControlMenu()
     menu->addMenu(goMenu);
 
     // Add "Tool" menu
-    KMenu* toolsMenu = new KMenu(i18nc("@action:inmenu", "Tools"), menu);
-    connect(menu, &KMenu::aboutToHide, toolsMenu, &KMenu::deleteLater);
+    QMenu* toolsMenu = new QMenu(i18nc("@action:inmenu", "Tools"), menu);
+    connect(menu, &QMenu::aboutToHide, toolsMenu, &QMenu::deleteLater);
     toolsMenu->addAction(ac->action("show_filter_bar"));
     toolsMenu->addAction(ac->action("compare_files"));
     toolsMenu->addAction(ac->action("open_terminal"));
@@ -874,8 +874,8 @@ void DolphinMainWindow::updateControlMenu()
     addActionToMenu(ac->action(KStandardAction::name(KStandardAction::Preferences)), menu);
 
     // Add "Help" menu
-    KMenu* helpMenu = new KMenu(i18nc("@action:inmenu", "Help"), menu);
-    connect(menu, &KMenu::aboutToHide, helpMenu, &KMenu::deleteLater);
+    QMenu* helpMenu = new QMenu(i18nc("@action:inmenu", "Help"), menu);
+    connect(menu, &QMenu::aboutToHide, helpMenu, &QMenu::deleteLater);
     helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::HelpContents)));
     helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::WhatsThis)));
     helpMenu->addSeparator();
@@ -994,19 +994,19 @@ void DolphinMainWindow::setupActions()
     QAction* newWindow = actionCollection()->addAction("new_window");
     newWindow->setIcon(QIcon::fromTheme("window-new"));
     newWindow->setText(i18nc("@action:inmenu File", "New &Window"));
-    newWindow->setShortcut(Qt::CTRL | Qt::Key_N);
+    actionCollection()->setDefaultShortcut(newWindow, Qt::CTRL | Qt::Key_N);
     connect(newWindow, &QAction::triggered, this, &DolphinMainWindow::openNewMainWindow);
 
     QAction* newTab = actionCollection()->addAction("new_tab");
     newTab->setIcon(QIcon::fromTheme("tab-new"));
     newTab->setText(i18nc("@action:inmenu File", "New Tab"));
-    newTab->setShortcuts(QList<QKeySequence>() << QKeySequence(Qt::CTRL | Qt::Key_T) << QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_N));
+    actionCollection()->setDefaultShortcuts(newTab, QList<QKeySequence>() << QKeySequence(Qt::CTRL | Qt::Key_T) << QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_N));
     connect(newTab, &QAction::triggered, this, static_cast<void(DolphinMainWindow::*)()>(&DolphinMainWindow::openNewActivatedTab));
 
     QAction* closeTab = actionCollection()->addAction("close_tab");
     closeTab->setIcon(QIcon::fromTheme("tab-close"));
     closeTab->setText(i18nc("@action:inmenu File", "Close Tab"));
-    closeTab->setShortcut(Qt::CTRL | Qt::Key_W);
+    actionCollection()->setDefaultShortcut(closeTab, Qt::CTRL | Qt::Key_W);
     closeTab->setEnabled(false);
     connect(closeTab, &QAction::triggered, m_tabWidget, static_cast<void(DolphinTabWidget::*)()>(&DolphinTabWidget::closeTab));
 
@@ -1022,7 +1022,7 @@ void DolphinMainWindow::setupActions()
     QAction* cut = KStandardAction::cut(this, SLOT(cut()), actionCollection());
     auto cutShortcuts = cut->shortcuts();
     cutShortcuts.removeAll(QKeySequence(Qt::SHIFT | Qt::Key_Delete));
-    cut->setShortcuts(cutShortcuts);
+    actionCollection()->setDefaultShortcuts(cut, cutShortcuts);
     KStandardAction::copy(this, SLOT(copy()), actionCollection());
     QAction* paste = KStandardAction::paste(this, SLOT(paste()), actionCollection());
     // The text of the paste-action is modified dynamically by Dolphin
@@ -1034,24 +1034,24 @@ void DolphinMainWindow::setupActions()
 
     QAction* selectAll = actionCollection()->addAction("select_all");
     selectAll->setText(i18nc("@action:inmenu Edit", "Select All"));
-    selectAll->setShortcut(Qt::CTRL | Qt::Key_A);
+    actionCollection()->setDefaultShortcut(selectAll, Qt::CTRL | Qt::Key_A);
     connect(selectAll, &QAction::triggered, this, &DolphinMainWindow::selectAll);
 
     QAction* invertSelection = actionCollection()->addAction("invert_selection");
     invertSelection->setText(i18nc("@action:inmenu Edit", "Invert Selection"));
-    invertSelection->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_A);
+    actionCollection()->setDefaultShortcut(invertSelection, Qt::CTRL | Qt::SHIFT | Qt::Key_A);
     connect(invertSelection, &QAction::triggered, this, &DolphinMainWindow::invertSelection);
 
     // setup 'View' menu
     // (note that most of it is set up in DolphinViewActionHandler)
 
     QAction* split = actionCollection()->addAction("split_view");
-    split->setShortcut(Qt::Key_F3);
+    actionCollection()->setDefaultShortcut(split, Qt::Key_F3);
     connect(split, &QAction::triggered, this, &DolphinMainWindow::toggleSplitView);
 
     QAction* reload = actionCollection()->addAction("reload");
     reload->setText(i18nc("@action:inmenu View", "Reload"));
-    reload->setShortcut(Qt::Key_F5);
+    actionCollection()->setDefaultShortcut(reload, Qt::Key_F5);
     reload->setIcon(QIcon::fromTheme("view-refresh"));
     connect(reload, &QAction::triggered, this, &DolphinMainWindow::reloadView);
 
@@ -1063,19 +1063,19 @@ void DolphinMainWindow::setupActions()
 
     KToggleAction* editableLocation = actionCollection()->add<KToggleAction>("editable_location");
     editableLocation->setText(i18nc("@action:inmenu Navigation Bar", "Editable Location"));
-    editableLocation->setShortcut(Qt::Key_F6);
+    actionCollection()->setDefaultShortcut(editableLocation, Qt::Key_F6);
     connect(editableLocation, &KToggleAction::triggered, this, &DolphinMainWindow::toggleEditLocation);
 
     QAction* replaceLocation = actionCollection()->addAction("replace_location");
     replaceLocation->setText(i18nc("@action:inmenu Navigation Bar", "Replace Location"));
-    replaceLocation->setShortcut(Qt::CTRL | Qt::Key_L);
+    actionCollection()->setDefaultShortcut(replaceLocation, Qt::CTRL | Qt::Key_L);
     connect(replaceLocation, &QAction::triggered, this, &DolphinMainWindow::replaceLocation);
 
     // setup 'Go' menu
     QAction* backAction = KStandardAction::back(this, SLOT(goBack()), actionCollection());
     auto backShortcuts = backAction->shortcuts();
     backShortcuts.append(QKeySequence(Qt::Key_Backspace));
-    backAction->setShortcuts(backShortcuts);
+    actionCollection()->setDefaultShortcuts(backAction, backShortcuts);
 
     DolphinRecentTabsMenu* recentTabsMenu = new DolphinRecentTabsMenu(this);
     actionCollection()->addAction("closed_tabs", recentTabsMenu);
@@ -1088,7 +1088,7 @@ void DolphinMainWindow::setupActions()
 
     QAction* undoCloseTab = actionCollection()->addAction("undo_close_tab");
     undoCloseTab->setText(i18nc("@action:inmenu File", "Undo close tab"));
-    undoCloseTab->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_T);
+    actionCollection()->setDefaultShortcut(undoCloseTab, Qt::CTRL | Qt::SHIFT | Qt::Key_T);
     undoCloseTab->setIcon(QIcon::fromTheme("edit-undo"));
     undoCloseTab->setEnabled(false);
     connect(undoCloseTab, SIGNAL(triggered()), recentTabsMenu, SLOT(undoCloseTab()));
@@ -1101,7 +1101,7 @@ void DolphinMainWindow::setupActions()
     QAction* showFilterBar = actionCollection()->addAction("show_filter_bar");
     showFilterBar->setText(i18nc("@action:inmenu Tools", "Show Filter Bar"));
     showFilterBar->setIcon(QIcon::fromTheme("view-filter"));
-    showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I);
+    actionCollection()->setDefaultShortcut(showFilterBar, Qt::CTRL | Qt::Key_I);
     connect(showFilterBar, &QAction::triggered, this, &DolphinMainWindow::showFilterBar);
 
     QAction* compareFiles = actionCollection()->addAction("compare_files");
@@ -1113,7 +1113,7 @@ void DolphinMainWindow::setupActions()
     QAction* openTerminal = actionCollection()->addAction("open_terminal");
     openTerminal->setText(i18nc("@action:inmenu Tools", "Open Terminal"));
     openTerminal->setIcon(QIcon::fromTheme("utilities-terminal"));
-    openTerminal->setShortcut(Qt::SHIFT | Qt::Key_F4);
+    actionCollection()->setDefaultShortcut(openTerminal, Qt::SHIFT | Qt::Key_F4);
     connect(openTerminal, &QAction::triggered, this, &DolphinMainWindow::openTerminal);
 
     // setup 'Settings' menu
@@ -1136,14 +1136,14 @@ void DolphinMainWindow::setupActions()
     activateNextTab->setText(i18nc("@action:inmenu", "Activate Next Tab"));
     activateNextTab->setEnabled(false);
     connect(activateNextTab, &QAction::triggered, m_tabWidget, &DolphinTabWidget::activateNextTab);
-    activateNextTab->setShortcuts(QApplication::isRightToLeft() ? prevTabKeys : nextTabKeys);
+    actionCollection()->setDefaultShortcuts(activateNextTab, QApplication::isRightToLeft() ? prevTabKeys : nextTabKeys);
 
     QAction* activatePrevTab = actionCollection()->addAction("activate_prev_tab");
     activatePrevTab->setIconText(i18nc("@action:inmenu", "Previous Tab"));
     activatePrevTab->setText(i18nc("@action:inmenu", "Activate Previous Tab"));
     activatePrevTab->setEnabled(false);
     connect(activatePrevTab, &QAction::triggered, m_tabWidget, &DolphinTabWidget::activatePrevTab);
-    activatePrevTab->setShortcuts(QApplication::isRightToLeft() ? nextTabKeys : prevTabKeys);
+    actionCollection()->setDefaultShortcuts(activatePrevTab, QApplication::isRightToLeft() ? nextTabKeys : prevTabKeys);
 
     // for context menu
     QAction* openInNewTab = actionCollection()->addAction("open_in_new_tab");
@@ -1212,8 +1212,8 @@ void DolphinMainWindow::setupDockWidgets()
             foldersPanel, &FoldersPanel::setUrl);
     connect(foldersPanel, &FoldersPanel::folderActivated,
             this, &DolphinMainWindow::changeUrl);
-    connect(foldersPanel, SIGNAL(folderMiddleClicked(KUrl)),
-            this, SLOT(openNewTab(KUrl)));
+    connect(foldersPanel, &FoldersPanel::folderMiddleClicked,
+            this, &DolphinMainWindow::openNewTab);
     connect(foldersPanel, &FoldersPanel::errorMessage,
             this, &DolphinMainWindow::slotPanelErrorMessage);
 
@@ -1352,8 +1352,8 @@ void DolphinMainWindow::createControlButton()
     m_controlButton->setPopupMode(QToolButton::InstantPopup);
     m_controlButton->setToolButtonStyle(toolBar()->toolButtonStyle());
 
-    KMenu* controlMenu = new KMenu(m_controlButton);
-    connect(controlMenu, &KMenu::aboutToShow, this, &DolphinMainWindow::updateControlMenu);
+    QMenu* controlMenu = new QMenu(m_controlButton);
+    connect(controlMenu, &QMenu::aboutToShow, this, &DolphinMainWindow::updateControlMenu);
 
     m_controlButton->setMenu(controlMenu);
 
@@ -1381,7 +1381,7 @@ void DolphinMainWindow::deleteControlButton()
     m_updateToolBarTimer = 0;
 }
 
-bool DolphinMainWindow::addActionToMenu(QAction* action, KMenu* menu)
+bool DolphinMainWindow::addActionToMenu(QAction* action, QMenu* menu)
 {
     Q_ASSERT(action);
     Q_ASSERT(menu);
@@ -1429,8 +1429,8 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container)
             this, &DolphinMainWindow::slotSelectionChanged);
     connect(view, &DolphinView::requestItemInfo,
             this, &DolphinMainWindow::slotRequestItemInfo);
-    connect(view, SIGNAL(tabRequested(KUrl)),
-            this, SLOT(openNewTab(KUrl)));
+    connect(view, &DolphinView::tabRequested,
+            this, &DolphinMainWindow::openNewTab);
     connect(view, &DolphinView::requestContextMenu,
             this, &DolphinMainWindow::openContextMenu);
     connect(view, &DolphinView::directoryLoadingStarted,
@@ -1449,8 +1449,8 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container)
             this, &DolphinMainWindow::updateHistory);
     connect(navigator, &KUrlNavigator::editableStateChanged,
             this, &DolphinMainWindow::slotEditableStateChanged);
-    connect(navigator, SIGNAL(tabRequested(KUrl)),
-            this, SLOT(openNewTab(KUrl)));
+    connect(navigator, &KUrlNavigator::tabRequested,
+            this, &DolphinMainWindow::openNewTab);
 }
 
 void DolphinMainWindow::updateSplitAction()
@@ -1481,7 +1481,7 @@ bool DolphinMainWindow::isKompareInstalled() const
     if (!initialized) {
         // TODO: maybe replace this approach later by using a menu
         // plugin like kdiff3plugin.cpp
-        installed = !KGlobal::dirs()->findExe("kompare").isEmpty();
+        installed = !QStandardPaths::findExecutable(QStringLiteral("kompare")).isEmpty();
         initialized = true;
     }
     return installed;
@@ -1497,7 +1497,7 @@ void DolphinMainWindow::createPanelAction(const QIcon& icon,
     panelAction->setChecked(dockAction->isChecked());
     panelAction->setText(dockAction->text());
     panelAction->setIcon(icon);
-    panelAction->setShortcut(shortcut);
+    actionCollection()->setDefaultShortcut(panelAction, shortcut);
 
     connect(panelAction, &QAction::triggered, dockAction, &QAction::trigger);
     connect(dockAction, &QAction::toggled, panelAction, &QAction::setChecked);