1/*
2 This file is part of the KDE Baloo Project
3 SPDX-FileCopyrightText: 2014 Vishesh Handa <vhanda@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.1-or-later
6*/
7
8#ifndef BALOO_INDEXERCONFIG_H
9#define BALOO_INDEXERCONFIG_H
10
11#include <QObject>
12#include "core_export.h"
13
14#include <memory>
15
16namespace Baloo {
17
18/*!
19 * \class Baloo::IndexerConfig
20 * \inheaderfile Baloo/IndexerConfig
21 * \inmodule Baloo
22 *
23 * \brief This class allows it to access the current config, to
24 * read and modify it.
25 *
26 * It is not meant as a means to infer the current state of
27 * the Indexer or the DB. The DB is updated asynchronously,
28 * and changes of the config will not be reflected immediately.
29 */
30class BALOO_CORE_EXPORT IndexerConfig
31{
32public:
33 /*!
34 *
35 */
36 IndexerConfig();
37 ~IndexerConfig();
38
39 IndexerConfig(const IndexerConfig &) = delete;
40 IndexerConfig &operator=(const IndexerConfig &) = delete;
41
42 /*!
43 *
44 */
45 bool fileIndexingEnabled() const;
46
47 /*!
48 *
49 */
50 void setFileIndexingEnabled(bool enabled) const;
51
52 /*!
53 * Check if the file or folder \a path should be indexed.
54 *
55 * If itself or its nearest explicitly included or excluded ancestor is
56 * excluded it is not indexed.
57 * Otherwise it is indexed according to the
58 * includeFolders and excludeFilters config.
59 *
60 * Returns \c true if the file or folder at \a path should
61 * be indexed according to the configuration.
62 *
63 * TODO KF6: deprecate, not of any concern for ouside
64 * users. Use \c Baloo::File to know if a file has
65 * been indexed.
66 * \sa Baloo::File
67 */
68 bool shouldBeIndexed(const QString& path) const;
69
70 /*!
71 * Check if \a folder can be searched.
72 *
73 * \a folder can be searched if itself or one of its descendants is indexed.
74 *
75 * Example:
76 * if ~/foo is not indexed and ~/foo/bar is indexed
77 * then ~/foo can be searched.
78 *
79 * Returns \c true if the \a folder can be searched.
80 */
81 bool canBeSearched(const QString& folder) const;
82
83 /*!
84 * Folders to search for files to index and analyze.
85 */
86 QStringList includeFolders() const;
87
88 /*!
89 * Folders that are excluded from indexing.
90 *
91 * (Descendant folders of an excluded folder can be added
92 * and they will be indexed.)
93 */
94 QStringList excludeFolders() const;
95
96 /*!
97 *
98 */
99 QStringList excludeFilters() const;
100
101 /*!
102 *
103 */
104 QStringList excludeMimetypes() const;
105
106 /*!
107 *
108 */
109 void setIncludeFolders(const QStringList& includeFolders);
110
111 /*!
112 *
113 */
114 void setExcludeFolders(const QStringList& excludeFolders);
115
116 /*!
117 *
118 */
119 void setExcludeFilters(const QStringList& excludeFilters);
120
121 /*!
122 *
123 */
124 void setExcludeMimetypes(const QStringList& excludeMimetypes);
125
126 /*!
127 *
128 */
129 bool indexHidden() const;
130
131 /*!
132 *
133 */
134 void setIndexHidden(bool value) const;
135
136 /*!
137 *
138 */
139 bool onlyBasicIndexing() const;
140
141 /*!
142 *
143 */
144 void setOnlyBasicIndexing(bool value);
145
146 /*!
147 *
148 */
149 void refresh() const;
150
151private:
152 class Private;
153 std::unique_ptr<Private> const d;
154};
155}
156
157#endif // BALOO_INDEXERCONFIG_H
158

source code of baloo/src/lib/indexerconfig.h