From e9d099f4c5efa41fafd16408f13400cb37616f18 Mon Sep 17 00:00:00 2001 From: lionelc Date: Thu, 12 Aug 2010 18:31:16 +0200 Subject: introduce a new SuggestionListItem introduce an opensearch engine --- src/search/opensearchengine.h | 93 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/search/opensearchengine.h (limited to 'src/search/opensearchengine.h') diff --git a/src/search/opensearchengine.h b/src/search/opensearchengine.h new file mode 100644 index 00000000..c981f443 --- /dev/null +++ b/src/search/opensearchengine.h @@ -0,0 +1,93 @@ +/* + * Copyright 2009 Jakub Wieczorek + * Copyright 2009 Christian Franke + * + * 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 OPENSEARCHENGINE_H +#define OPENSEARCHENGINE_H + +#include +#include + +#include + +class QNetworkAccessManager; +class QNetworkReply; +class QScriptEngine; + +class OpenSearchEngine +{ +public: + typedef QPair Parameter; + + OpenSearchEngine(QObject *parent = 0); + ~OpenSearchEngine(); + + QString name() const; + void setName(const QString &name); + + QString description() const; + void setDescription(const QString &description); + + QString searchUrlTemplate() const; + void setSearchUrlTemplate(const QString &searchUrl); + KUrl searchUrl(const QString &searchTerm) const; + + bool providesSuggestions() const; + + QString suggestionsUrlTemplate() const; + void setSuggestionsUrlTemplate(const QString &suggestionsUrl); + KUrl suggestionsUrl(const QString &searchTerm) const; + + QList searchParameters() const; + void setSearchParameters(const QList &searchParameters); + + QList suggestionsParameters() const; + void setSuggestionsParameters(const QList &suggestionsParameters); + + QString imageUrl() const; + void setImageUrl(const QString &url); + + QImage image() const; + void setImage(const QImage &image); + + bool isValid() const; + + bool operator==(const OpenSearchEngine &other) const; + bool operator<(const OpenSearchEngine &other) const; + + QStringList parseSuggestion(const QByteArray &response); + + static QString parseTemplate(const QString &searchTerm, const QString &searchTemplate); + +private: + QString m_name; + QString m_description; + + QString m_imageUrl; + QImage m_image; + + QString m_searchUrlTemplate; + QString m_suggestionsUrlTemplate; + QList m_searchParameters; + QList m_suggestionsParameters; + + QScriptEngine *m_scriptEngine; +}; + +#endif // OPENSEARCHENGINE_H -- cgit v1.2.1