- Added PluginInterface and SearchPlugin
[qtrapids] / src / plugins / searchplugin / SearchPlugin.cpp
1 #include <QDebug>
2 #include <QtCore/qplugin.h>
3 #include <QVBoxLayout>
4 #include <QHBoxLayout>
5 #include <QComboBox>
6 #include <QLineEdit>
7 #include <QPushButton>
8 #include <QUrl>
9 #include <QWebView>
10
11
12 #include "SearchPlugin.h"
13
14 namespace qtrapids
15 {
16         SearchPlugin::SearchPlugin() : 
17                 comboBox_(NULL), searchLine_(NULL), searchButton_(NULL), host_(NULL)
18         {
19                 // TODO: Parse engine descriptions.
20                 // -Add engines to model
21                 // -Show model in comboBox
22         
23         }
24         
25         void SearchPlugin::initialize(PluginHostInterface* host)
26         {
27                 host_ = host;
28                 
29                 if (host_ != NULL) {
30                         
31                         QWidget *pluginWidget = new QWidget;
32                         QVBoxLayout *vbox = new QVBoxLayout;
33                         QHBoxLayout *hbox = new QHBoxLayout;
34                         comboBox_ = new QComboBox;
35                         searchLine_ = new QLineEdit;
36                         searchButton_ = new QPushButton("Search");
37                         
38                         hbox->addWidget(searchLine_);
39                         hbox->addWidget(searchButton_);
40                         vbox->addWidget(comboBox_);
41                         vbox->addLayout(hbox);
42                         pluginWidget->setLayout(vbox);
43         
44                         connect(searchButton_, SIGNAL(clicked()), this, SLOT(on_searchButton_clicked()));
45                         //connect(this, SIGNAL(searchResult(QWidget*)), this, SLOT(on_searchResult(QWidget*)));
46                         
47                         host_->setGui(pluginWidget);
48                 }
49         }
50         
51         QWidget* SearchPlugin::getGui()
52         {
53                 return NULL;
54         }
55         
56         void SearchPlugin::on_searchButton_clicked()
57         {
58                 QUrl searchUrl(QString("http://www.google.fi/search?q="
59                         + searchLine_->text()));
60                 qDebug() << searchUrl;
61                 QWebView *result = new QWebView;
62                 result->load(searchUrl);
63                 
64                 on_searchResult((QWidget*)result);
65         }
66         
67         void SearchPlugin::on_searchResult(QWidget* resultWidget)
68         {
69                 qDebug() << "on_searchResult()";
70                 if (host_) {
71                         host_->addPluginWidget(resultWidget);
72                 }
73         }
74
75 } // namespace qtrapids
76
77 Q_EXPORT_PLUGIN2(searchplugin, qtrapids::SearchPlugin)