- SearchPlugin checks for Content-type -header, so now it is able to download
[qtrapids] / src / plugins / searchplugin / SearchPlugin.h
index f8320fc..eecabd3 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef SEARCHPLUGIN_H
 #define SEARCHPLUGIN_H
 
-
+#include <vector>
 #include <QObject>
 
 #include "PluginInterface.h"
@@ -29,33 +29,49 @@ class QWidget;
 class QComboBox;
 class QPushButton;
 class QLineEdit;
+class QWebView;
+class QNetworkReply;
+class DownloadManager;
+class QDir;
 
 namespace qtrapids
 {
 
 class SearchPlugin : public PluginInterface
 {
-    Q_OBJECT
-    Q_INTERFACES(qtrapids::PluginInterface)
-
-public:
-    SearchPlugin();
-    virtual void initialize(PluginHostInterface* host);
-    virtual QWidget* getGui();
-
-signals:
-    void searchResult(QWidget* resultwidget);
+       Q_OBJECT
+       Q_INTERFACES(qtrapids::PluginInterface)
 
-private slots:
-    void on_searchButton_clicked();
-    void on_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 QWidget* getGui();
 
-private:
-    QComboBox *comboBox_;
-    QLineEdit *searchLine_;
-    QPushButton *searchButton_;
-    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