Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / workspace / plasma / applets / kickoff / core / searchmodel.h
blobc0013d98829d3d471c0561c1df6d9ee19d8c1a7f
1 /*
2 Copyright 2007 Robert Knight <robertknight@gmail.com>
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
20 #ifndef SEARCHMODEL_H
21 #define SEARCHMODEL_H
23 // Qt
24 #include "core/kickoffmodel.h"
26 namespace Kickoff
29 class SearchResult
31 public:
32 QString url;
33 QString title;
34 QString subTitle;
36 typedef QList<SearchResult> ResultList;
38 class SearchModel : public KickoffModel
40 Q_OBJECT
42 public:
43 SearchModel(QObject *parent);
44 virtual ~SearchModel();
46 public Q_SLOTS:
47 void setQuery(const QString& query);
49 private Q_SLOTS:
50 void resultsAvailable(const QStringList& results);
51 void resultsAvailable(const ResultList& results);
53 private:
54 class Private;
55 Private * const d;
58 class SearchInterface : public QObject
60 Q_OBJECT
62 public:
63 SearchInterface(QObject *parent);
65 virtual QString name() const = 0;
66 virtual void setQuery(const QString& query) = 0;
69 Q_SIGNALS:
70 void resultsAvailable(const QStringList& results);
71 void resultsAvailable(const ResultList& results);
74 class ApplicationSearch : public SearchInterface
76 Q_OBJECT
78 public:
79 ApplicationSearch(QObject *parent);
81 virtual QString name() const;
82 virtual void setQuery(const QString& query);
84 private:
85 QString mimeNameForQuery(const QString& query) const;
88 class WebSearch : public SearchInterface
90 Q_OBJECT
92 public:
93 WebSearch(QObject *parent);
94 virtual QString name() const;
95 virtual void setQuery(const QString& query);
98 class IndexerSearch : public SearchInterface
100 Q_OBJECT
102 public:
103 IndexerSearch(QObject *parent);
104 virtual QString name() const;
105 virtual void setQuery(const QString& query);
110 #endif // SEARCHMODEL_H