X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/546ff9a19e17c60209ab2cdc814ff9fb85a19342..35e92fdec56aab4113a065c393979b2bc6f14428:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 7224c8ea9..b57ed4fc4 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -23,6 +23,7 @@ #include "config-terminal.h" #include "global.h" +#include "dolphinbookmarkhandler.h" #include "dolphindockwidget.h" #include "dolphincontextmenu.h" #include "dolphinnewfilemenu.h" @@ -94,6 +95,7 @@ DolphinMainWindow::DolphinMainWindow() : m_actionHandler(nullptr), m_remoteEncoding(nullptr), m_settingsDialog(), + m_bookmarkHandler(nullptr), m_controlButton(nullptr), m_updateToolBarTimer(nullptr), m_lastHandleUrlStatJob(nullptr), @@ -111,7 +113,7 @@ DolphinMainWindow::DolphinMainWindow() : KIO::FileUndoManager* undoManager = KIO::FileUndoManager::self(); undoManager->setUiInterface(new UndoUiInterface()); - connect(undoManager, static_cast(&KIO::FileUndoManager::undoAvailable), + connect(undoManager, QOverload::of(&KIO::FileUndoManager::undoAvailable), this, &DolphinMainWindow::slotUndoAvailable); connect(undoManager, &KIO::FileUndoManager::undoTextChanged, this, &DolphinMainWindow::slotUndoTextChanged); @@ -183,6 +185,16 @@ DolphinMainWindow::~DolphinMainWindow() { } +QVector DolphinMainWindow::viewContainers() const +{ + QVector viewContainers; + viewContainers.reserve(m_tabWidget->count()); + for (int i = 0; i < m_tabWidget->count(); ++i) { + viewContainers << m_tabWidget->tabPageAt(i)->activeViewContainer(); + } + return viewContainers; +} + void DolphinMainWindow::openDirectories(const QList& dirs, bool splitView) { m_tabWidget->openDirectories(dirs, splitView); @@ -928,9 +940,13 @@ void DolphinMainWindow::updateControlMenu() menu->addSeparator(); + // Overwrite Find action to Search action + QAction *searchAction = ac->action(KStandardAction::name(KStandardAction::Find)); + searchAction->setText(i18n("Search...")); + // Add "Edit" actions bool added = addActionToMenu(ac->action(KStandardAction::name(KStandardAction::Undo)), menu) | - addActionToMenu(ac->action(KStandardAction::name(KStandardAction::Find)), menu) | + addActionToMenu(searchAction, menu) | addActionToMenu(ac->action(KStandardAction::name(KStandardAction::SelectAll)), menu) | addActionToMenu(ac->action(QStringLiteral("invert_selection")), menu); @@ -978,6 +994,9 @@ void DolphinMainWindow::updateControlMenu() goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Up))); goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Home))); goMenu->addAction(ac->action(QStringLiteral("closed_tabs"))); + KActionMenu *bookmarkMenu = new KActionMenu(i18nc("@title:menu", "&Bookmarks"), goMenu); + m_bookmarkHandler->fillControlMenu(bookmarkMenu->menu(), ac); + goMenu->addAction(bookmarkMenu); menu->addMenu(goMenu); // Add "Tool" menu @@ -1118,10 +1137,9 @@ void DolphinMainWindow::setupActions() newTab->setIcon(QIcon::fromTheme(QStringLiteral("tab-new"))); newTab->setText(i18nc("@action:inmenu File", "New Tab")); actionCollection()->setDefaultShortcuts(newTab, {Qt::CTRL + Qt::Key_T, Qt::CTRL + Qt::SHIFT + Qt::Key_N}); - connect(newTab, &QAction::triggered, this, static_cast(&DolphinMainWindow::openNewActivatedTab)); + connect(newTab, &QAction::triggered, this, &DolphinMainWindow::openNewActivatedTab); - QAction* closeTab = KStandardAction::close( - m_tabWidget, static_cast(&DolphinTabWidget::closeTab), actionCollection()); + QAction* closeTab = KStandardAction::close(m_tabWidget, QOverload<>::of(&DolphinTabWidget::closeTab), actionCollection()); closeTab->setText(i18nc("@action:inmenu File", "Close Tab")); KStandardAction::quit(this, &DolphinMainWindow::quit, actionCollection()); @@ -1140,7 +1158,8 @@ void DolphinMainWindow::setupActions() // due to the long text, the text "Paste" is used: paste->setIconText(i18nc("@action:inmenu Edit", "Paste")); - KStandardAction::find(this, &DolphinMainWindow::find, actionCollection()); + QAction *searchAction = KStandardAction::find(this, &DolphinMainWindow::find, actionCollection()); + searchAction->setText(i18n("Search...")); KStandardAction::selectAll(this, &DolphinMainWindow::selectAll, actionCollection()); @@ -1236,6 +1255,11 @@ void DolphinMainWindow::setupActions() } #endif + // setup 'Bookmarks' menu + KActionMenu *bookmarkMenu = new KActionMenu(i18nc("@title:menu", "&Bookmarks"), this); + m_bookmarkHandler = new DolphinBookmarkHandler(this, actionCollection(), bookmarkMenu->menu(), this); + actionCollection()->addAction(QStringLiteral("bookmarks"), bookmarkMenu); + // setup 'Settings' menu KToggleAction* showMenuBar = KStandardAction::showMenubar(nullptr, nullptr, actionCollection()); connect(showMenuBar, &KToggleAction::triggered, // Fixes #286822 @@ -1596,9 +1620,9 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) connect(view, &DolphinView::directoryLoadingCompleted, this, &DolphinMainWindow::slotDirectoryLoadingCompleted); connect(view, &DolphinView::goBackRequested, - this, static_cast(&DolphinMainWindow::goBack)); + this, &DolphinMainWindow::goBack); connect(view, &DolphinView::goForwardRequested, - this, static_cast(&DolphinMainWindow::goForward)); + this, &DolphinMainWindow::goForward); connect(view, &DolphinView::urlActivated, this, &DolphinMainWindow::handleUrl);