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
|
/***************************************************************************
* Copyright (C) 2009 by Adam Kidder <[email protected]> *
* Copyright (C) 2009 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 SEARCHCRITERIONDESCRIPTION_H
#define SEARCHCRITERIONDESCRIPTION_H
#define DISABLE_NEPOMUK_LEGACY
#include <nepomuk/comparisonterm.h>
#include <QList>
#include <QString>
#include <QUrl>
class SearchCriterionValue;
class QWidget;
/**
* @brief Helper class for SearchCriterionSelector.
*
* Describes a search criterion including the used
* widget for editing.
*/
class SearchCriterionDescription
{
public:
struct Comparator
{
Comparator(const QString& n) :
name(n),
isActive(false),
value(Nepomuk::Query::ComparisonTerm::Smaller),
autoValueType()
{
}
Comparator(const QString& n, Nepomuk::Query::ComparisonTerm::Comparator c,
const QString& a = QString()) :
name(n),
isActive(true),
value(c),
autoValueType(a)
{
}
QString name; // user visible and translated name
bool isActive;
Nepomuk::Query::ComparisonTerm::Comparator value;
QString autoValueType; // type for an automatically calculated value of the value widget
};
SearchCriterionDescription(const QString& name,
const QUrl& identifier,
const QList<Comparator>& comparators,
SearchCriterionValue* valueWidget);
virtual ~SearchCriterionDescription();
QString name() const;
QUrl identifier() const;
const QList<Comparator>& comparators() const;
SearchCriterionValue* valueWidget() const;
private:
QString m_name; // user visible name that gets translated
QUrl m_identifier; // internal Nepomuk identifier URL
QList<Comparator> m_comparators;
SearchCriterionValue* m_valueWidget;
};
#endif // SEARCHCRITERIONDESCRIPTION_H
|