X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/11ada1515d7a2b5f09d25d2df1ce0f6d37887794..6d21deb6e48627922fb223a4281ade46d6d230ec:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index bcae015d0..f3ec70753 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -42,7 +42,12 @@ #include #include #include +#include +#if KIO_VERSION >= QT_VERSION_CHECK(5, 98, 0) +#include +#else #include +#endif #include #include #include @@ -65,6 +70,7 @@ #include #include +#include #include #include @@ -276,11 +282,17 @@ void DolphinMainWindow::openFiles(const QStringList& files, bool splitView) openFiles(QUrl::fromStringList(files), splitView); } -void DolphinMainWindow::activateWindow() +void DolphinMainWindow::activateWindow(const QString &activationToken) { window()->setAttribute(Qt::WA_NativeWindow, true); - KStartupInfo::setNewStartupId(window()->windowHandle(), KStartupInfo::startupId()); - KWindowSystem::activateWindow(window()->effectiveWinId()); + + if (KWindowSystem::isPlatformWayland()) { + KWindowSystem::setCurrentXdgActivationToken(activationToken); + } else { + KStartupInfo::setNewStartupId(window()->windowHandle(), activationToken.toUtf8()); + } + + KWindowSystem::activateWindow(window()->windowHandle()); } bool DolphinMainWindow::isActiveWindow() @@ -810,7 +822,6 @@ void DolphinMainWindow::slotAboutToShowBackPopupMenu() m_backAction->menu()->clear(); for (int i = urlNavigator->historyIndex() + 1; i < urlNavigator->historySize() && entries < MaxNumberOfNavigationentries; ++i, ++entries) { QAction *action = urlNavigatorHistoryAction(urlNavigator, i, m_backAction->menu()); - action->setData(i); m_backAction->menu()->addAction(action); } } @@ -839,7 +850,6 @@ void DolphinMainWindow::slotAboutToShowForwardPopupMenu() m_forwardAction->menu()->clear(); for (int i = urlNavigator->historyIndex() - 1; i >= 0 && entries < MaxNumberOfNavigationentries; --i, ++entries) { QAction *action = urlNavigatorHistoryAction(urlNavigator, i, m_forwardAction->menu()); - action->setData(i); m_forwardAction->menu()->addAction(action); } } @@ -1168,11 +1178,19 @@ 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()); +#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0) + const int answer = KMessageBox::warningTwoActions(this, question, {}, +#else const int answer = KMessageBox::warningYesNo(this, question, {}, +#endif KGuiItem(i18ncp("@action:button", "Open %1 Terminal", "Open %1 Terminals", urls.count()), QStringLiteral("utilities-terminal")), KStandardGuiItem::cancel()); +#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0) + if (answer != KMessageBox::PrimaryAction) { +#else if (answer != KMessageBox::Yes) { +#endif return; } } @@ -1243,7 +1261,11 @@ void DolphinMainWindow::handleUrl(const QUrl& url) activeViewContainer()->setUrl(url); } else { m_lastHandleUrlOpenJob = new KIO::OpenUrlJob(url); +#if KIO_VERSION >= QT_VERSION_CHECK(5, 98, 0) + m_lastHandleUrlOpenJob->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, this)); +#else m_lastHandleUrlOpenJob->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, this)); +#endif m_lastHandleUrlOpenJob->setShowOpenOrExecuteDialog(true); connect(m_lastHandleUrlOpenJob, &KIO::OpenUrlJob::mimeTypeFound, this, @@ -2673,7 +2695,7 @@ bool DolphinMainWindow::isUrlOpen(const QString &url) return m_tabWidget->isUrlOpen(QUrl::fromUserInput(url)); } -bool DolphinMainWindow::isUrlOrParentOpen(const QString &url) +bool DolphinMainWindow::isItemVisibleInAnyView(const QString &urlOfItem) { - return m_tabWidget->isUrlOrParentOpen(QUrl::fromUserInput(url)); + return m_tabWidget->isItemVisibleInAnyView(QUrl::fromUserInput(urlOfItem)); }