1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-24 04:36:34 +01:00

Revert "Use KIO::OpenFileManagerWindowJob to open folder"

This reverts commit 37441945c4.
This commit is contained in:
Juraj Oravec 2024-11-07 19:10:45 +01:00
parent 2910d64d53
commit 9fc0ae636f
Signed by: SGOrava
GPG Key ID: 13660A3F1D9F093B
5 changed files with 20 additions and 42 deletions

View File

@ -107,9 +107,6 @@ if (EXISTS "${CMAKE_SOURCE_DIR}/po")
find_package(KF6I18n REQUIRED) find_package(KF6I18n REQUIRED)
endif() endif()
# Mandatory: KIO
find_package(KF6KIO ${KF_MIN_VERSION} REQUIRED)
# Optional: GnomeKeyring # Optional: GnomeKeyring
find_package(PkgConfig) find_package(PkgConfig)
if (PKG_CONFIG_FOUND) if (PKG_CONFIG_FOUND)
@ -119,9 +116,11 @@ if (PKG_CONFIG_FOUND)
endif() endif()
endif() endif()
# Optional: KWallet, KCrash, KCoreAddons # Optional: KWallet, KIO, KCrash, KCoreAddons
find_package(KF6Wallet ${KF_MIN_VERSION} CONFIG) find_package(KF6Wallet ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6Wallet PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) set_package_properties(KF6Wallet PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6KIO ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6KIO PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6Crash ${KF_MIN_VERSION} CONFIG) find_package(KF6Crash ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6Crash PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) set_package_properties(KF6Crash PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6CoreAddons ${KF_MIN_VERSION} CONFIG) find_package(KF6CoreAddons ${KF_MIN_VERSION} CONFIG)
@ -130,7 +129,7 @@ find_package(KF6Purpose ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6Purpose PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) set_package_properties(KF6Purpose PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6JobWidgets ${KF_MIN_VERSION} CONFIG) find_package(KF6JobWidgets ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6JobWidgets PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) set_package_properties(KF6JobWidgets PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
if (KF6Wallet_FOUND AND KF6Crash_FOUND AND KF6CoreAddons_FOUND AND KF6Purpose_FOUND AND KF6JobWidgets_FOUND) if (KF6Wallet_FOUND AND KF6KIO_FOUND AND KF6Crash_FOUND AND KF6CoreAddons_FOUND AND KF6Purpose_FOUND AND KF6JobWidgets_FOUND)
set(ENABLE_KDE_FRAMEWORKS_INTEGRATION_PLUGIN TRUE) set(ENABLE_KDE_FRAMEWORKS_INTEGRATION_PLUGIN TRUE)
endif() endif()

View File

@ -603,7 +603,6 @@ target_link_libraries(FalkonPrivate
Qt6::WebChannel Qt6::WebChannel
Qt6::Core5Compat Qt6::Core5Compat
KF6::Archive KF6::Archive
KF6::KIOGui
${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}
) )

View File

@ -39,6 +39,11 @@
#include <QWebEngineDownloadRequest> #include <QWebEngineDownloadRequest>
#include <QtWebEngineWidgetsVersion> #include <QtWebEngineWidgetsVersion>
#ifdef Q_OS_WIN
#include "Shlwapi.h"
#include "shellapi.h"
#endif
//#define DOWNMANAGER_DEBUG //#define DOWNMANAGER_DEBUG
DownloadItem::DownloadItem(QListWidgetItem *item, QWebEngineDownloadRequest* downloadItem, const QString &path, const QString &fileName, bool openFile, DownloadManager* manager) DownloadItem::DownloadItem(QListWidgetItem *item, QWebEngineDownloadRequest* downloadItem, const QString &path, const QString &fileName, bool openFile, DownloadManager* manager)
@ -349,12 +354,19 @@ void DownloadItem::openFile()
void DownloadItem::openFolder() void DownloadItem::openFolder()
{ {
QString fileName = m_fileName; #ifdef Q_OS_WIN
QString winFileName = QSL("%1/%2").arg(m_path, m_fileName);
if (m_downloading) { if (m_downloading) {
fileName.append(QSL(".download")); winFileName.append(QSL(".download"));
} }
QFileInfo info(m_path, fileName);
QzTools::openFolder({QUrl::fromLocalFile(info.absoluteFilePath())}); winFileName.replace(QLatin1Char('/'), QSL("\\"));
QString shExArg = QSL("/e,/select,\"") + winFileName + QSL("\"");
ShellExecute(NULL, NULL, TEXT("explorer.exe"), shExArg.toStdWString().c_str(), NULL, SW_SHOW);
#else
QDesktopServices::openUrl(QUrl::fromLocalFile(m_path));
#endif
} }
QUrl DownloadItem::url() const QUrl DownloadItem::url() const

View File

@ -45,8 +45,6 @@
#include <QUrlQuery> #include <QUrlQuery>
#include <QtGuiVersion> #include <QtGuiVersion>
#include <KIO/OpenFileManagerWindowJob>
#ifdef QZ_WS_X11 #ifdef QZ_WS_X11
#include <xcb/xcb.h> #include <xcb/xcb.h>
#endif #endif
@ -1039,31 +1037,3 @@ void QzTools::paintDropIndicator(QWidget *widget, const QRect &r)
p.drawLine(x + i, r.top(), x + i, r.bottom()); p.drawLine(x + i, r.top(), x + i, r.bottom());
} }
} }
void QzTools::openFolder(const QList<QUrl> &urls)
{
/* Filter the URL list for existing files, otherwise it will cause crash */
QList<QUrl> validUrls;
for (const QUrl &url : urls) {
if (QFileInfo::exists(url.toLocalFile())) {
validUrls.append(url);
}
else {
qWarning() << "OpenFolder Filtered:" << url;
}
}
if (validUrls.isEmpty()) {
return;
}
auto *job = new KIO::OpenFileManagerWindowJob();
job->setHighlightUrls(validUrls);
job->start();
QObject::connect(job, &KJob::result, job, [&](KJob *job) {
if (job->error() != 0) {
qWarning() << "OpenFileManagerWindowJob:" << job->errorString();
}
});
}

View File

@ -98,8 +98,6 @@ public:
} }
static void paintDropIndicator(QWidget *widget, const QRect &r); static void paintDropIndicator(QWidget *widget, const QRect &r);
static void openFolder(const QList<QUrl> &urls);
}; };
#endif // QZTOOLS_H #endif // QZTOOLS_H