X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8a0003bfbcc87068737ab1e2b94ae7b2ba73eca1..f0749ee42ccb2e0a7caee165b9934de8e61bfcbc:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 379a32053..39b820387 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -9,7 +9,6 @@ #include "dolphinmainwindow.h" #include "dolphinmainwindowadaptor.h" -#include "config-dolphin.h" #include "global.h" #include "dolphinbookmarkhandler.h" #include "dolphindockwidget.h" @@ -267,7 +266,7 @@ bool DolphinMainWindow::isFoldersPanelEnabled() const bool DolphinMainWindow::isInformationPanelEnabled() const { -#ifdef HAVE_BALOO +#if HAVE_BALOO return actionCollection()->action(QStringLiteral("show_information_panel"))->isChecked(); #else return false; @@ -286,6 +285,11 @@ void DolphinMainWindow::activateWindow() KWindowSystem::activateWindow(window()->effectiveWinId()); } +bool DolphinMainWindow::isActiveWindow() +{ + return window()->isActiveWindow(); +} + void DolphinMainWindow::showCommand(CommandType command) { DolphinStatusBar* statusBar = m_activeViewContainer->statusBar(); @@ -657,12 +661,20 @@ void DolphinMainWindow::readProperties(const KConfigGroup& group) void DolphinMainWindow::updateNewMenu() { m_newFileMenu->checkUpToDate(); +#if KIO_VERSION >= QT_VERSION_CHECK(5, 97, 0) + m_newFileMenu->setWorkingDirectory(activeViewContainer()->url()); +#else m_newFileMenu->setPopupFiles(QList() << activeViewContainer()->url()); +#endif } void DolphinMainWindow::createDirectory() { +#if KIO_VERSION >= QT_VERSION_CHECK(5, 97, 0) + m_newFileMenu->setWorkingDirectory(activeViewContainer()->url()); +#else m_newFileMenu->setPopupFiles(QList() << activeViewContainer()->url()); +#endif m_newFileMenu->createDirectory(); } @@ -1115,7 +1127,10 @@ void DolphinMainWindow::openTerminalHere() if (urls.count() > 5) { QString question = i18np("Are you sure you want to open 1 terminal window?", "Are you sure you want to open %1 terminal windows?", urls.count()); - const int answer = KMessageBox::warningYesNo(this, question); + const int answer = KMessageBox::warningYesNo(this, question, {}, + KGuiItem(i18ncp("@action:button", "Open %1 Terminal", "Open %1 Terminals", urls.count()), + QStringLiteral("utilities-terminal")), + KStandardGuiItem::cancel()); if (answer != KMessageBox::Yes) { return; } @@ -1770,7 +1785,7 @@ void DolphinMainWindow::setupActions() actionCollection()->setDefaultShortcut(openTerminalHere, Qt::SHIFT | Qt::ALT | Qt::Key_F4); connect(openTerminalHere, &QAction::triggered, this, &DolphinMainWindow::openTerminalHere); -#ifdef HAVE_TERMINAL +#if HAVE_TERMINAL QAction* focusTerminalPanel = actionCollection()->addAction(QStringLiteral("focus_terminal_panel")); focusTerminalPanel->setText(i18nc("@action:inmenu Tools", "Focus Terminal Panel")); focusTerminalPanel->setIcon(QIcon::fromTheme(QStringLiteral("swap-panels"))); @@ -1795,6 +1810,15 @@ void DolphinMainWindow::setupActions() "contain mostly the same commands and configuration options.")); connect(showMenuBar, &KToggleAction::triggered, // Fixes #286822 this, &DolphinMainWindow::toggleShowMenuBar, Qt::QueuedConnection); + + KToggleAction* showStatusBar = KStandardAction::showStatusbar(nullptr, nullptr, actionCollection()); + showStatusBar->setChecked(GeneralSettings::showStatusBar()); + connect(GeneralSettings::self(), &GeneralSettings::showStatusBarChanged, showStatusBar, &KToggleAction::setChecked); + connect(showStatusBar, &KToggleAction::triggered, this, [this](bool checked) { + GeneralSettings::setShowStatusBar(checked); + refreshViews(); + }); + KStandardAction::keyBindings(this, &DolphinMainWindow::slotKeyBindings, actionCollection()); KStandardAction::preferences(this, &DolphinMainWindow::editSettings, actionCollection()); @@ -1897,7 +1921,7 @@ void DolphinMainWindow::setupDockWidgets() infoDock->setObjectName(QStringLiteral("infoDock")); infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); -#ifdef HAVE_BALOO +#if HAVE_BALOO InformationPanel* infoPanel = new InformationPanel(infoDock); infoPanel->setCustomContextMenuActions({lockLayoutAction}); connect(infoPanel, &InformationPanel::urlActivated, this, &DolphinMainWindow::handleUrl); @@ -1921,7 +1945,7 @@ void DolphinMainWindow::setupDockWidgets() const QString panelWhatsThis = xi18nc("@info:whatsthis", "To show or " "hide panels like this go to Control|Panels " "or View|Panels."); -#ifdef HAVE_BALOO +#if HAVE_BALOO actionCollection()->action(QStringLiteral("show_information_panel")) ->setWhatsThis(xi18nc("@info:whatsthis", " This toggles the " "information panel at the right side of the " @@ -1973,7 +1997,7 @@ void DolphinMainWindow::setupDockWidgets() "This allows quick switching between any folders.") + panelWhatsThis); // Setup "Terminal" -#ifdef HAVE_TERMINAL +#if HAVE_TERMINAL if (KAuthorized::authorize(QStringLiteral("shell_access"))) { DolphinDockWidget* terminalDock = new DolphinDockWidget(i18nc("@title:window Shell terminal", "Terminal")); terminalDock->setLocked(lock); @@ -2098,7 +2122,7 @@ void DolphinMainWindow::setupDockWidgets() panelsMenu->setPopupMode(QToolButton::InstantPopup); const KActionCollection* ac = actionCollection(); panelsMenu->addAction(ac->action(QStringLiteral("show_places_panel"))); -#ifdef HAVE_BALOO +#if HAVE_BALOO panelsMenu->addAction(ac->action(QStringLiteral("show_information_panel"))); #endif panelsMenu->addAction(ac->action(QStringLiteral("show_folders_panel"))); @@ -2623,8 +2647,12 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job) } } -bool DolphinMainWindow::isUrlOpen(const QString& url) +bool DolphinMainWindow::isUrlOpen(const QString &url) { - return m_tabWidget->isUrlOpen(QUrl::fromUserInput((url))); + return m_tabWidget->isUrlOpen(QUrl::fromUserInput(url)); } +bool DolphinMainWindow::isUrlOrParentOpen(const QString &url) +{ + return m_tabWidget->isUrlOrParentOpen(QUrl::fromUserInput(url)); +}