insilmaril@808
|
1 |
#include <QLineEdit>
|
insilmaril@808
|
2 |
#include <QVBoxLayout>
|
insilmaril@808
|
3 |
#include <QLabel>
|
insilmaril@808
|
4 |
|
insilmaril@825
|
5 |
#include <QComboBox>
|
insilmaril@825
|
6 |
#include <QPushButton>
|
insilmaril@825
|
7 |
#include <QGroupBox>
|
insilmaril@825
|
8 |
#include <QLabel>
|
insilmaril@825
|
9 |
|
insilmaril@825
|
10 |
|
insilmaril@808
|
11 |
#include "findwidget.h"
|
insilmaril@808
|
12 |
|
insilmaril@808
|
13 |
|
insilmaril@811
|
14 |
extern QString iconPath;
|
insilmaril@808
|
15 |
|
insilmaril@810
|
16 |
FindWidget::FindWidget(QWidget *)
|
insilmaril@808
|
17 |
{
|
insilmaril@808
|
18 |
QVBoxLayout* mainLayout = new QVBoxLayout;
|
insilmaril@808
|
19 |
QHBoxLayout *row2Layout = new QHBoxLayout;
|
insilmaril@808
|
20 |
|
insilmaril@808
|
21 |
// Create Buttons
|
insilmaril@808
|
22 |
cancelbutton = new QPushButton;
|
insilmaril@811
|
23 |
//cancelbutton->setText(tr("Cancel"));
|
insilmaril@811
|
24 |
cancelbutton->setIcon (QIcon (iconPath+"fileclose.png"));
|
insilmaril@808
|
25 |
cancelbutton->setShortcut (Qt::Key_Escape);
|
insilmaril@808
|
26 |
connect ( cancelbutton, SIGNAL( clicked() ), this, SLOT( cancelPressed() ) );
|
insilmaril@808
|
27 |
|
insilmaril@810
|
28 |
QLabel *label=new QLabel;
|
insilmaril@810
|
29 |
label->setText (tr("Find:","FindWidget"));
|
insilmaril@810
|
30 |
|
insilmaril@808
|
31 |
// Create LineEdit (here QComboBox)
|
insilmaril@808
|
32 |
findcombo = new QComboBox;
|
insilmaril@808
|
33 |
findcombo->setMinimumWidth(250);
|
insilmaril@808
|
34 |
findcombo->setEditable(true);
|
insilmaril@811
|
35 |
|
insilmaril@811
|
36 |
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
insilmaril@811
|
37 |
findcombo->setSizePolicy(sizePolicy);
|
insilmaril@808
|
38 |
connect ( findcombo, SIGNAL( highlighted(int) ),
|
insilmaril@808
|
39 |
this, SLOT( nextPressed() ) );
|
insilmaril@808
|
40 |
connect ( findcombo, SIGNAL( textChanged(const QString &) ),
|
insilmaril@808
|
41 |
this, SLOT( findTextChanged(const QString&) ) );
|
insilmaril@808
|
42 |
|
insilmaril@808
|
43 |
nextbutton = new QPushButton;
|
insilmaril@808
|
44 |
nextbutton->setText (tr("Next","Find widget"));
|
insilmaril@810
|
45 |
nextbutton->setDefault (true);
|
insilmaril@810
|
46 |
nextbutton->setShortcut (Qt::Key_Return);
|
insilmaril@810
|
47 |
//nextbutton->setShortcutContext (Qt::WidgetShortcut);
|
insilmaril@808
|
48 |
connect ( nextbutton, SIGNAL( clicked() ), this, SLOT( nextPressed() ) );
|
insilmaril@808
|
49 |
|
insilmaril@808
|
50 |
row2Layout->addWidget (cancelbutton);
|
insilmaril@810
|
51 |
row2Layout->addWidget (label);
|
insilmaril@808
|
52 |
row2Layout->addWidget(findcombo);
|
insilmaril@808
|
53 |
row2Layout->addWidget(nextbutton);
|
insilmaril@808
|
54 |
|
insilmaril@808
|
55 |
mainLayout->addLayout (row2Layout);
|
insilmaril@808
|
56 |
|
insilmaril@808
|
57 |
setLayout (mainLayout);
|
insilmaril@811
|
58 |
status=Undefined;
|
insilmaril@808
|
59 |
}
|
insilmaril@808
|
60 |
|
insilmaril@808
|
61 |
void FindWidget::popup()
|
insilmaril@808
|
62 |
{
|
insilmaril@808
|
63 |
show();
|
insilmaril@808
|
64 |
findcombo->lineEdit()->selectAll();
|
insilmaril@808
|
65 |
findcombo->setFocus();
|
insilmaril@811
|
66 |
setStatus (Undefined);
|
insilmaril@808
|
67 |
}
|
insilmaril@808
|
68 |
|
insilmaril@808
|
69 |
void FindWidget::cancelPressed()
|
insilmaril@808
|
70 |
{
|
insilmaril@808
|
71 |
hide();
|
insilmaril@812
|
72 |
emit (hideFindWidget() );
|
insilmaril@808
|
73 |
}
|
insilmaril@808
|
74 |
|
insilmaril@808
|
75 |
void FindWidget::nextPressed()
|
insilmaril@808
|
76 |
{
|
insilmaril@808
|
77 |
emit (nextButton(findcombo->currentText() ) );
|
insilmaril@808
|
78 |
}
|
insilmaril@808
|
79 |
|
insilmaril@808
|
80 |
void FindWidget::findTextChanged(const QString&)
|
insilmaril@808
|
81 |
{
|
insilmaril@811
|
82 |
setStatus (Undefined);
|
insilmaril@808
|
83 |
}
|
insilmaril@808
|
84 |
|
insilmaril@810
|
85 |
void FindWidget::setStatus (Status st)
|
insilmaril@810
|
86 |
{
|
insilmaril@811
|
87 |
if (st==status) return;
|
insilmaril@811
|
88 |
|
insilmaril@811
|
89 |
status=st;
|
insilmaril@810
|
90 |
QPalette p=palette();
|
insilmaril@810
|
91 |
QColor c;
|
insilmaril@810
|
92 |
switch (st)
|
insilmaril@810
|
93 |
{
|
insilmaril@811
|
94 |
case Success: c=QColor (120,255,120); break;
|
insilmaril@811
|
95 |
case Failed: c=QColor (255,120,120); break;
|
insilmaril@810
|
96 |
default: c=QColor (255,255,255);
|
insilmaril@810
|
97 |
}
|
insilmaril@810
|
98 |
p.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(9), c);
|
insilmaril@810
|
99 |
p.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(9), c);
|
insilmaril@810
|
100 |
findcombo->setPalette(p);
|
insilmaril@810
|
101 |
}
|
insilmaril@810
|
102 |
|