┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2014-10-20 11:08:22 +0200
committerEmmanuel Pescosta <[email protected]>2014-10-20 11:10:13 +0200
commit3c74d908de8efc8e2578a69b528370c40bae7ca4 (patch)
treedc1356668f748b5ef9452a1c1d97e50e0447ed03 /src
parentbfdc5a44d2d8415c2f9fbe2e536de564eba6d2e4 (diff)
The filenamesearch ioslave has been moved to kio-extras, remove it from Dolphin.
See commit 05689c462745edbaeebcfc63d456877746805451 in kio-extras
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt12
-rw-r--r--src/search/filenamesearch.protocol17
-rw-r--r--src/search/filenamesearchprotocol.cpp192
-rw-r--r--src/search/filenamesearchprotocol.h59
4 files changed, 0 insertions, 280 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 523ee03a9..339c1e5f8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -310,17 +310,6 @@ install(TARGETS kcm_dolphinnavigation DESTINATION ${PLUGIN_INSTALL_DIR} )
install(TARGETS kcm_dolphinservices DESTINATION ${PLUGIN_INSTALL_DIR} )
install(TARGETS kcm_dolphingeneral DESTINATION ${PLUGIN_INSTALL_DIR} )
-#########################################
-
-set(kio_search_PART_SRCS
- search/filenamesearchprotocol.cpp)
-
-add_library(kio_filenamesearch MODULE ${kio_search_PART_SRCS})
-
-target_link_libraries(kio_filenamesearch KF5::KDELibs4Support)
-
-install(TARGETS kio_filenamesearch DESTINATION ${PLUGIN_INSTALL_DIR})
-
########### install files ###############
install( PROGRAMS org.kde.dolphin.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
@@ -333,7 +322,6 @@ install( FILES settings/dolphin_directoryviewpropertysettings.kcfg
DESTINATION ${KCFG_INSTALL_DIR} )
install( FILES dolphinui.rc DESTINATION ${CMAKE_INSTALL_KXMLGUI5DIR}/dolphin )
install( FILES dolphin.appdata.xml DESTINATION ${SHARE_INSTALL_PREFIX}/appdata )
-install( FILES search/filenamesearch.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
install( FILES settings/kcm/kcmdolphinviewmodes.desktop DESTINATION
${SERVICES_INSTALL_DIR} )
install( FILES settings/kcm/kcmdolphinnavigation.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
diff --git a/src/search/filenamesearch.protocol b/src/search/filenamesearch.protocol
deleted file mode 100644
index 06aec0e6b..000000000
--- a/src/search/filenamesearch.protocol
+++ /dev/null
@@ -1,17 +0,0 @@
-[Protocol]
-exec=kio_filenamesearch
-protocol=filenamesearch
-input=none
-output=filesystem
-reading=true
-writing=false
-deleting=true
-linking=false
-makedir=false
-moving=false
-listing=Name,Type,Size,Date,AccessDate,Access,Owner,Group,Link
-source=false
-Icon=edit-find
-Class=:local
-determineMimetypeFromExtension=false
-maxInstances=10
diff --git a/src/search/filenamesearchprotocol.cpp b/src/search/filenamesearchprotocol.cpp
deleted file mode 100644
index b56a99580..000000000
--- a/src/search/filenamesearchprotocol.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2010 by Peter Penz <[email protected]> *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "filenamesearchprotocol.h"
-
-#include <KComponentData>
-#include <KDirLister>
-#include <KFileItem>
-#include <KIO/NetAccess>
-#include <KIO/Job>
-#include <KUrl>
-#include <kdemacros.h>
-#include <ktemporaryfile.h>
-
-#include <QCoreApplication>
-#include <QEventLoop>
-#include <QRegExp>
-
-FileNameSearchProtocol::FileNameSearchProtocol( const QByteArray &pool, const QByteArray &app ) :
- SlaveBase("search", pool, app),
- m_checkContent(false),
- m_regExp(0),
- m_iteratedDirs()
-{
-}
-
-FileNameSearchProtocol::~FileNameSearchProtocol()
-{
- cleanup();
-}
-
-void FileNameSearchProtocol::listDir(const QUrl& url)
-{
- cleanup();
-
- const QString search = url.queryItemValue("search");
- if (!search.isEmpty()) {
- m_regExp = new QRegExp(search, Qt::CaseInsensitive, QRegExp::Wildcard);
- }
-
- m_checkContent = false;
- const QString checkContent = url.queryItemValue("checkContent");
- if (checkContent == QLatin1String("yes")) {
- m_checkContent = true;
- }
-
- const QString urlString = url.queryItemValue("url");
- searchDirectory(KUrl(urlString));
-
- cleanup();
- finished();
-}
-
-void FileNameSearchProtocol::searchDirectory(const KUrl& directory)
-{
- if (directory.path() == QLatin1String("/proc")) {
- // Don't try to iterate the /proc directory of Linux
- return;
- }
-
- // Get all items of the directory
- KDirLister *dirLister = new KDirLister();
- dirLister->setDelayedMimeTypes(false);
- dirLister->setAutoErrorHandlingEnabled(false, 0);
- dirLister->openUrl(directory);
-
- QEventLoop eventLoop;
- QObject::connect(dirLister, static_cast<void(KDirLister::*)()>(&KDirLister::canceled), &eventLoop, &QEventLoop::quit);
- QObject::connect(dirLister, static_cast<void(KDirLister::*)()>(&KDirLister::completed), &eventLoop, &QEventLoop::quit);
- eventLoop.exec();
-
- // Visualize all items that match the search pattern
- QList<KUrl> pendingDirs;
- const KFileItemList items = dirLister->items();
- foreach (const KFileItem& item, items) {
- bool addItem = false;
- if (!m_regExp || item.name().contains(*m_regExp)) {
- addItem = true;
- } else if (m_checkContent && item.determineMimeType().inherits(QLatin1String("text/plain"))) {
- addItem = contentContainsPattern(item.url());
- }
-
- if (addItem) {
- KIO::UDSEntry entry = item.entry();
- entry.insert(KIO::UDSEntry::UDS_URL, item.url().url() );
- listEntry(entry,false);
- }
-
- if (item.isDir()) {
- if (item.isLink()) {
- // Assure that no endless searching is done in directories that
- // have already been iterated.
- const KUrl linkDest(item.url(), item.linkDest());
- if (!m_iteratedDirs.contains(linkDest.path())) {
- pendingDirs.append(linkDest);
- }
- } else {
- pendingDirs.append(item.url());
- }
- }
- }
- listEntry(KIO::UDSEntry(), true);
-
- m_iteratedDirs.insert(directory.path());
-
- delete dirLister;
- dirLister = 0;
-
- // Recursively iterate all sub directories
- foreach (const KUrl& pendingDir, pendingDirs) {
- searchDirectory(pendingDir);
- }
-}
-
-bool FileNameSearchProtocol::contentContainsPattern(const KUrl& fileName) const
-{
- Q_ASSERT(m_regExp);
-
- QString path;
- KTemporaryFile tempFile;
-
- if (fileName.isLocalFile()) {
- path = fileName.path();
- } else if (tempFile.open()) {
- KIO::Job* getJob = KIO::file_copy(fileName,
- tempFile.fileName(),
- -1,
- KIO::Overwrite | KIO::HideProgressInfo);
- if (!KIO::NetAccess::synchronousRun(getJob, 0)) {
- // The non-local file could not be downloaded
- return false;
- }
- path = tempFile.fileName();
- } else {
- // No temporary file could be created for downloading non-local files
- return false;
- }
-
- QFile file(path);
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
- return false;
- }
-
- QTextStream in(&file);
- while (!in.atEnd()) {
- const QString line = in.readLine();
- if (line.contains(*m_regExp)) {
- return true;
- }
- }
-
- return false;
-}
-
-void FileNameSearchProtocol::cleanup()
-{
- delete m_regExp;
- m_regExp = 0;
- m_iteratedDirs.clear();
-}
-
-extern "C" int KDE_EXPORT kdemain( int argc, char **argv )
-{
- KComponentData instance("kio_search");
- QCoreApplication app(argc, argv);
-
- if (argc != 4) {
- fprintf(stderr, "Usage: kio_filenamesearch protocol domain-socket1 domain-socket2\n");
- exit(-1);
- }
-
- FileNameSearchProtocol slave(argv[2], argv[3]);
- slave.dispatchLoop();
-
- return 0;
-}
diff --git a/src/search/filenamesearchprotocol.h b/src/search/filenamesearchprotocol.h
deleted file mode 100644
index 732aef942..000000000
--- a/src/search/filenamesearchprotocol.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2010 by Peter Penz <[email protected]> *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef FILENAMESEARCHPROTOCOL_H
-#define FILENAMESEARCHPROTOCOL_H
-
-#include <kio/slavebase.h>
-
-class KUrl;
-class QRegExp;
-
-/**
- * @brief Lists files where the filename matches do a given query.
- *
- * The query is defined as part of the "search" query item of the URL.
- * The directory where the searching is started is defined in the "url" query
- * item. If the query item "checkContent" is set to "yes", all files with
- * a text MIME type will be checked for the content.
- */
-class FileNameSearchProtocol : public KIO::SlaveBase {
-public:
- FileNameSearchProtocol(const QByteArray& pool, const QByteArray& app);
- virtual ~FileNameSearchProtocol();
-
- virtual void listDir(const QUrl& url) Q_DECL_OVERRIDE;
-
-private:
- void searchDirectory(const KUrl& directory);
-
- /**
- * @return True, if the pattern m_searchPattern is part of
- * the file \a fileName.
- */
- bool contentContainsPattern(const KUrl& fileName) const;
-
- void cleanup();
-
- bool m_checkContent;
- QRegExp* m_regExp;
- QSet<QString> m_iteratedDirs;
-};
-
-#endif