diff --git a/filenamesearch/CMakeLists.txt b/filenamesearch/CMakeLists.txt --- a/filenamesearch/CMakeLists.txt +++ b/filenamesearch/CMakeLists.txt @@ -1,5 +1,5 @@ add_library(kio_filenamesearch MODULE kio_filenamesearch.cpp) -target_link_libraries(kio_filenamesearch KF5::KIOCore KF5::DBusAddons Qt5::Network) +target_link_libraries(kio_filenamesearch KF5::KIOCore KF5::DBusAddons Qt5::Network KF5::KIOCore KF5::I18n) set_target_properties(kio_filenamesearch PROPERTIES OUTPUT_NAME "filenamesearch") install(TARGETS kio_filenamesearch DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kio) diff --git a/filenamesearch/kio_filenamesearch.h b/filenamesearch/kio_filenamesearch.h --- a/filenamesearch/kio_filenamesearch.h +++ b/filenamesearch/kio_filenamesearch.h @@ -46,6 +46,7 @@ FileNameSearchProtocol(const QByteArray &pool, const QByteArray &app); ~FileNameSearchProtocol() override; + void stat(const QUrl& url) override; void listDir(const QUrl &url) override; private: diff --git a/filenamesearch/kio_filenamesearch.cpp b/filenamesearch/kio_filenamesearch.cpp --- a/filenamesearch/kio_filenamesearch.cpp +++ b/filenamesearch/kio_filenamesearch.cpp @@ -30,6 +30,7 @@ #include #include #include +#include Q_LOGGING_CATEGORY(KIO_FILENAMESEARCH, "kio_filenamesearch") @@ -44,6 +45,28 @@ { } +void FileNameSearchProtocol::stat(const QUrl& url) +{ + KIO::UDSEntry uds; + uds.reserve(9); + uds.fastInsert(KIO::UDSEntry::UDS_ACCESS, 0700); + uds.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); + uds.fastInsert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("inode/directory")); + uds.fastInsert(KIO::UDSEntry::UDS_ICON_OVERLAY_NAMES, QStringLiteral("baloo")); + uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_TYPE, i18n("Search Folder")); + uds.fastInsert(KIO::UDSEntry::UDS_URL, url.url()); + + QUrlQuery query(url); + QString title = query.queryItemValue(QStringLiteral("title"), QUrl::FullyDecoded); + if (!title.isEmpty()) { + uds.fastInsert(KIO::UDSEntry::UDS_NAME, title); + uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_NAME, title); + } + + statEntry(uds); + finished(); +} + void FileNameSearchProtocol::listDir(const QUrl &url) { const QUrlQuery urlQuery(url);