diff --git a/src/lib/indexerconfig.cpp b/src/lib/indexerconfig.cpp index b45f850f..ee26f846 100644 --- a/src/lib/indexerconfig.cpp +++ b/src/lib/indexerconfig.cpp @@ -1,189 +1,195 @@ /* * This file is part of the KDE Baloo Project * Copyright (C) 2014 Vishesh Handa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "indexerconfig.h" #include "../file/fileindexerconfig.h" #include "../file/fileexcludefilters.h" #include "../file/regexpcache.h" #include #include #include #include #include "maininterface.h" using namespace Baloo; class IndexerConfig::Private { public: FileIndexerConfig m_config; }; IndexerConfig::IndexerConfig() : d(new Private) { } IndexerConfig::~IndexerConfig() { delete d; } bool IndexerConfig::fileIndexingEnabled() const { return d->m_config.indexingEnabled(); } void IndexerConfig::setFileIndexingEnabled(bool enabled) const { KConfig config(QStringLiteral("baloofilerc")); KConfigGroup basicSettings = config.group("Basic Settings"); basicSettings.writeEntry("Indexing-Enabled", enabled); { Kdelibs4Migration kde4; KConfig config(kde4.locateLocal("config", QStringLiteral("baloofilerc"))); KConfigGroup basicSettings = config.group("Basic Settings"); basicSettings.writeEntry("Indexing-Enabled", enabled); } } bool IndexerConfig::shouldBeIndexed(const QString& path) const { return d->m_config.shouldBeIndexed(path); } + +bool IndexerConfig::canBeSearched(const QString& folder) const +{ + return d->m_config.canBeSearched(folder); +} + QStringList IndexerConfig::excludeFolders() const { return d->m_config.excludeFolders(); } QStringList IndexerConfig::includeFolders() const { return d->m_config.includeFolders(); } QStringList IndexerConfig::excludeFilters() const { return d->m_config.excludeFilters(); } QStringList IndexerConfig::excludeMimetypes() const { return d->m_config.excludeMimetypes(); } void IndexerConfig::setExcludeFolders(const QStringList& excludeFolders) { KConfig config(QStringLiteral("baloofilerc")); config.group("General").writePathEntry("exclude folders", excludeFolders); { Kdelibs4Migration kde4; KConfig config(kde4.locateLocal("config", QStringLiteral("baloofilerc"))); config.group("General").writePathEntry("exclude folders", excludeFolders); } } void IndexerConfig::setIncludeFolders(const QStringList& includeFolders) { KConfig config(QStringLiteral("baloofilerc")); config.group("General").writePathEntry("folders", includeFolders); { Kdelibs4Migration kde4; KConfig config(kde4.locateLocal("config", QStringLiteral("baloofilerc"))); config.group("General").writePathEntry("folders", includeFolders); } } void IndexerConfig::setExcludeFilters(const QStringList& excludeFilters) { KConfig config(QStringLiteral("baloofilerc")); config.group("General").writeEntry("exclude filters", excludeFilters); { Kdelibs4Migration kde4; KConfig config(kde4.locateLocal("config", QStringLiteral("baloofilerc"))); config.group("General").writeEntry("exclude filters", excludeFilters); } } void IndexerConfig::setExcludeMimetypes(const QStringList& excludeMimetypes) { KConfig config(QStringLiteral("baloofilerc")); config.group("General").writeEntry("exclude mimetypes", excludeMimetypes); { Kdelibs4Migration kde4; KConfig config(kde4.locateLocal("config", QStringLiteral("baloofilerc"))); config.group("General").writeEntry("exclude mimetypes", excludeMimetypes); } } bool IndexerConfig::firstRun() const { return d->m_config.isInitialRun(); } void IndexerConfig::setFirstRun(bool firstRun) const { d->m_config.setInitialRun(firstRun); { Kdelibs4Migration kde4; KConfig config(kde4.locateLocal("config", QStringLiteral("baloofilerc"))); config.group("General").writeEntry("first run", firstRun); } } bool IndexerConfig::indexHidden() const { KConfig config(QStringLiteral("baloofilerc")); return config.group("General").readEntry("index hidden folders", false); } void IndexerConfig::setIndexHidden(bool value) const { KConfig config(QStringLiteral("baloofilerc")); config.group("General").writeEntry("index hidden folders", value); } bool IndexerConfig::onlyBasicIndexing() const { KConfig config(QStringLiteral("baloofilerc")); return config.group("General").readEntry("only basic indexing", false); } void IndexerConfig::setOnlyBasicIndexing(bool value) { KConfig config(QStringLiteral("baloofilerc")); config.group("General").writeEntry("only basic indexing", value); } void IndexerConfig::refresh() const { org::kde::baloo::main mainInterface(QStringLiteral("org.kde.baloo"), QStringLiteral("/"), QDBusConnection::sessionBus()); mainInterface.updateConfig(); } diff --git a/src/lib/indexerconfig.h b/src/lib/indexerconfig.h index 54d4cab3..c4bfd940 100644 --- a/src/lib/indexerconfig.h +++ b/src/lib/indexerconfig.h @@ -1,71 +1,82 @@ /* * This file is part of the KDE Baloo Project * Copyright (C) 2014 Vishesh Handa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifndef BALOO_INDEXERCONFIG_H #define BALOO_INDEXERCONFIG_H #include #include "core_export.h" namespace Baloo { class BALOO_CORE_EXPORT IndexerConfig { public: IndexerConfig(); ~IndexerConfig(); bool fileIndexingEnabled() const; void setFileIndexingEnabled(bool enabled) const; bool shouldBeIndexed(const QString& path) const; + /** + * Check if \p folder can be searched. + * \p folder can be searched if itself or one of its descendants is indexed. + * + * Example: + * if ~/foo is not indexed and ~/foo/bar is indexed + * then ~/foo can be searched. + * + * \return \c true if the \p folder can be searched. + */ + bool canBeSearched(const QString& folder) const; QStringList includeFolders() const; QStringList excludeFolders() const; QStringList excludeFilters() const; QStringList excludeMimetypes() const; void setIncludeFolders(const QStringList& includeFolders); void setExcludeFolders(const QStringList& excludeFolders); void setExcludeFilters(const QStringList& excludeFilters); void setExcludeMimetypes(const QStringList& excludeMimetypes); /** * The first run indicates if the File Indexer has ever been run before * and made a successful pass over all the files. */ bool firstRun() const; void setFirstRun(bool firstRun) const; bool indexHidden() const; void setIndexHidden(bool value) const; bool onlyBasicIndexing() const; void setOnlyBasicIndexing(bool value); void refresh() const; private: class Private; Private* d; }; } #endif // BALOO_INDEXERCONFIG_H