blob: f4ce066a484220f44391b3ef02818bc87b3810b4 [file] [log] [blame]
philippe groarke6db8e4f2014-12-18 13:49:02 -05001#include "mysearchbar.h"
2
3MySearchBar::MySearchBar(QWidget *parent) : QLineEdit(parent)
4{
philippe groarkebff3ad22014-12-18 17:18:19 -05005 QStringList wordList;
6 wordList << "alpha" << "omega" << "omicron" << "zeta";
7
8 QCompleter *completer = new QCompleter(wordList, this);
9 completer->setCaseSensitivity(Qt::CaseInsensitive);
10 setCompleter(completer);
11
philippe groarke6db8e4f2014-12-18 13:49:02 -050012 QObject::connect(this, SIGNAL(editingFinished()), this, SLOT(changePlaceholderColor()));
13 QObject::connect(this, SIGNAL(textChanged(QString)), this, SLOT(changePlaceholderColor()));
14 QObject::connect(this, SIGNAL(), this, SLOT(changePlaceholderColor()));
15}
16
17MySearchBar::~MySearchBar()
18{
19
20}
21
22void MySearchBar::focusInEvent(QFocusEvent* e)
23{
24 if (text().count() <= 0) {
philippe groarkebff3ad22014-12-18 17:18:19 -050025 setClearButtonEnabled(true);
philippe groarke6db8e4f2014-12-18 13:49:02 -050026 setAlignment(Qt::AlignLeft);
27 setStyleSheet("background-color: rgb(225, 225, 225);"
28 "border: 1px solid;"
29 "border-color: rgb(208, 208, 208);"
30 "border-radius: 4px;"
31 "color: rgb(160, 160, 160);");
32 QLineEdit::focusInEvent(e);
33 }
34}
35
36//// SLOTS ////
37
38// TODO: Animate Search placeholder.
39void MySearchBar::changePlaceholderColor()
40{
41 if (text().count() <= 0) { // placeholder
philippe groarkebff3ad22014-12-18 17:18:19 -050042 setClearButtonEnabled(false);
philippe groarke6db8e4f2014-12-18 13:49:02 -050043 setAlignment(Qt::AlignHCenter);
44 setStyleSheet("background-color: rgb(225, 225, 225);"
45 "border: 1px solid;"
46 "border-color: rgb(208, 208, 208);"
47 "border-radius: 4px;"
48 "color: rgb(160, 160, 160);");
49 } else { // usertext
philippe groarkebff3ad22014-12-18 17:18:19 -050050 setClearButtonEnabled(true);
philippe groarke6db8e4f2014-12-18 13:49:02 -050051 setAlignment(Qt::AlignLeft);
52 setStyleSheet("background-color: rgb(225, 225, 225);"
53 "border: 1px solid;"
54 "border-color: rgb(208, 208, 208);"
55 "border-radius: 4px;"
56 "color: rgb(45, 45, 45);");
57 }
58}
59