/***************************************************************************
- * Copyright (C) 2009 by Lassi Väätämöinen *
- * lassi.vaatamoinen@ixonos.com *
+ * Copyright (C) 2010 by Ixonos Plc *
* *
* 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. *
+ * the Free Software Foundation; version 2 of the License. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#ifndef SEARCHPLUGIN_H
#define SEARCHPLUGIN_H
-
+#include <vector>
#include <QObject>
#include "PluginInterface.h"
class QPushButton;
class QLineEdit;
class QWebView;
+class QNetworkReply;
class DownloadManager;
+class QDir;
namespace qtrapids
{
Q_OBJECT
Q_INTERFACES(qtrapids::PluginInterface)
-public:
- SearchPlugin();
- virtual void initialize(PluginHostInterface* host);
- virtual QWidget* getGui();
-
-signals:
- void searchResult(QWidget* resultwidget);
+ public:
+ SearchPlugin();
+
+ /// @brief Initializes the SearchPlugin
+ /// @param info info.directory is used to search for searchengine description files.
+ virtual void initialize(PluginHostInterface* host, Info info);
+ virtual QString identifier();
+ virtual QWidget* getGui();
-private slots:
- void on_searchButton_clicked();
- void on_searchResult(QWidget* resultWidget);
- void on_loadFinished(bool ok);
- void on_linkClicked(const QUrl& url);
- void on_downloadFinished(QString filepath);
-private:
- QComboBox *comboBox_;
- QLineEdit *searchLine_;
- QPushButton *searchButton_;
- QWebView *result_; // Do not delete, plugin host takes ownership
- DownloadManager *dlManager_;
- PluginHostInterface* host_;
+ signals:
+ void searchResult(QWidget* resultwidget);
+ private slots:
+ void on_searchButton_clicked();
+ void on_searchResult(QWidget* resultWidget);
+ void on_loadFinished(bool ok);
+ void on_networkReplyFinished(QNetworkReply* reply);
+ void on_linkClicked(const QUrl& url);
+ void on_downloadFinished(QString filepath);
+
+ private:
+ void ParseSearchEngineDescriptions(const QDir& dir);
+
+ private:
+ QComboBox *comboBox_; // Holds the search engine names. Combobox index maps to engineTemplates_ index
+ QLineEdit *searchLine_;
+ QPushButton *searchButton_;
+ QWebView *result_; // Do not delete, plugin host takes ownership
+ DownloadManager *dlManager_;
+ PluginHostInterface* host_;
+ std::vector<QString> engineTemplates_; // Holds the search URL templates
};
} // namespace qtrapids