Added AppTableViewDelegate class for painting tableview (painting not yet done, just...
[meego-garage:garage-netbook-ui.git] / searchwidget.cpp
1 /* SearchWidget is a compound widget based on QWidget with a
2  * QLineEdit and QPushButton("Search").  It emits a single event when the
3  * search button is pressed with the search string.
4  */
5
6 #include "searchwidget.h"
7 #include <Qt/QtGui>
8
9 SearchWidget::SearchWidget(QWidget *parent) :
10     QWidget(parent)
11 {
12     //style sheets don't seem to work without the extra parentWidget (?)
13
14     //Create all objects, then add to layout
15     QWidget *parentWidget = new QWidget (this);
16     parentWidget->setObjectName("searchWidget");  //for stylesheet
17
18     m_searchEdit = new QLineEdit ("Type to search all applications", parentWidget);
19     m_searchEdit->setObjectName("searchEdit");
20
21     QPushButton *searchCancelBtn = new QPushButton (parentWidget);
22     searchCancelBtn->setObjectName("searchCancelBtn");
23     searchCancelBtn->setFocusPolicy(Qt::NoFocus);
24
25     QLabel *searchSeparator = new QLabel (parentWidget);
26     searchSeparator->setObjectName("searchSeparator");
27     searchSeparator->setFocusPolicy(Qt::NoFocus);
28
29     m_searchBtn = new QPushButton ("Search", parentWidget);
30     m_searchBtn->setObjectName("searchBtn");
31     m_searchBtn->setFocusPolicy(Qt::NoFocus);
32
33     QHBoxLayout *searchLayout = new QHBoxLayout ();
34     searchLayout->setContentsMargins(9, 2, 4, 2);
35     searchLayout->setSpacing(3);
36     searchLayout->addWidget(m_searchEdit, 1);
37     searchLayout->addWidget (searchCancelBtn);
38     searchLayout->addWidget(searchSeparator);
39     searchLayout->addWidget (m_searchBtn);
40
41     parentWidget->setLayout(searchLayout);
42
43     QHBoxLayout *hbox = new QHBoxLayout();
44     hbox->addWidget(parentWidget);
45     setLayout(hbox);
46
47     //connect (m_searchEdit, SIGNAL())
48     connect (m_searchBtn, SIGNAL(clicked()), this, SLOT(searchBtnClicked()));
49     connect (searchCancelBtn, SIGNAL(clicked()), this, SLOT(searchCancelBtnClicked()));
50     connect (m_searchEdit, SIGNAL(textChanged(QString)), this, SLOT(searchTextChanged(QString)));
51 }
52
53 void SearchWidget::searchBtnClicked()
54 {
55     emit search(m_searchEdit->text());
56 }
57
58 void SearchWidget::searchCancelBtnClicked()
59 {
60     m_searchEdit->setText("");
61 }
62
63 void SearchWidget::searchTextChanged(const QString &text)
64 {
65     m_searchBtn->setEnabled(!text.isEmpty());
66 }