/usr/include/KF5/Baloo/baloo/query.h is in baloo-kf5-dev 5.18.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | /*
* This file is part of the KDE Baloo Project
* Copyright (C) 2013-2015 Vishesh Handa <vhanda@kde.org>
*
* 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) version 3, or any
* later version accepted by the membership of KDE e.V. (or its
* successor approved by the membership of KDE e.V.), which shall
* act as a proxy defined in Section 6 of version 3 of the license.
*
* 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef BALOO_QUERY_H
#define BALOO_QUERY_H
#include "core_export.h"
#include "resultiterator.h"
#include <QVariant>
namespace Baloo {
/**
* The Query class is the central class to query to search for files from the Index.
*
* This class has an inbuilt parser which recognizes words along with AND / OR and parenthesis
* and specific properties. This can be used with the setSearchString method
*
* @example -
* "Fire" -> Looks for all files which contain the word "Fire"
*
* @example -
* "Fire OR water" -> Looks for files which contain either "Fire" or "Water". The capitalization
* of the words doesn't matter as that will be ignored internally. However, OR and AND have to
* be in upper case.
*
* @example -
* "artist:Coldplay" -> Look for any files with the artist "Coldplay"
*
* @example -
* "artist:(Coldplay OR Maroon5) power" -> Look for files with the artist Coldplay or Maroon5 and
* the word "power"
*
* @example -
* "artist:'Noah and the Whale'" -> Look for files with the artist "Noah and the Whale"
*
* @example -
* "type:Audio title:Fix" -> Look for Audio files which contains the title "Fix" in its title.
*
* The Query Parser recognizes a large number of properties. These property names can be looked
* up in KFileMetaData::Property::Property. The type of the file can mentioned with the property
* 'type' or 'kind'.
*/
class BALOO_CORE_EXPORT Query
{
public:
Query();
Query(const Query& rhs);
~Query();
/**
* Add a type to the results of the query.
*
* Every file has a higher level type such as "Audio", "Video", "Image", "Document", etc.
*
* Please note that the types are ANDed together. So searching for "Image"
* and "Video" will probably never return any results. Have a look at
* KFileMetaData::TypeInfo for a list of type names.
*/
void addType(const QString& type);
void addTypes(const QStringList& typeList);
void setType(const QString& type);
void setTypes(const QStringList& types);
QStringList types() const;
/**
* Set some text which should be used to search for Items. This
* contain a single word or an entire sentence.
*/
void setSearchString(const QString& str);
QString searchString() const;
/**
* Only a maximum of \p limit results will be returned.
* By default the value is -1
*/
void setLimit(uint limit);
uint limit() const;
void setOffset(uint offset);
uint offset() const;
/**
* Filter the results in the specified date range.
*
* The year/month/day may be set to 0 in order to ignore it.
*/
void setDateFilter(int year, int month = 0, int day = 0);
int yearFilter() const;
int monthFilter() const;
int dayFilter() const;
enum SortingOption {
/**
* The results are returned in the most efficient order. They can
* be returned in any order.
*/
SortNone,
/**
* The results are returned in the order Baloo decides
* should be ideal. This criteria is based on the mtime of the
* file.
*
* This is the default sorting mechanism.
*/
SortAuto
};
void setSortingOption(SortingOption option);
SortingOption sortingOption() const;
/**
* Only files in this folder will be returned
*/
void setIncludeFolder(const QString& folder);
QString includeFolder() const;
ResultIterator exec();
QByteArray toJSON();
static Query fromJSON(const QByteArray& arr);
QUrl toSearchUrl(const QString& title = QString());
static Query fromSearchUrl(const QUrl& url);
static QString titleFromQueryUrl(const QUrl& url);
bool operator == (const Query& rhs) const;
bool operator != (const Query& rhs) const;
Query& operator=(const Query& rhs);
private:
class Private;
Private* d;
};
}
#endif // BALOO_QUERY_H
|