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