insilmaril@808: #include insilmaril@808: #include insilmaril@808: #include insilmaril@808: insilmaril@808: #include "findwidget.h" insilmaril@808: insilmaril@808: insilmaril@808: extern QString vymName; insilmaril@808: insilmaril@810: FindWidget::FindWidget(QWidget *) insilmaril@808: { insilmaril@808: QVBoxLayout* mainLayout = new QVBoxLayout; insilmaril@808: QHBoxLayout *row2Layout = new QHBoxLayout; insilmaril@808: insilmaril@808: // Create Buttons insilmaril@808: cancelbutton = new QPushButton; insilmaril@808: cancelbutton->setText(tr("Cancel")); insilmaril@808: cancelbutton->setShortcut (Qt::Key_Escape); insilmaril@808: connect ( cancelbutton, SIGNAL( clicked() ), this, SLOT( cancelPressed() ) ); insilmaril@808: insilmaril@810: QLabel *label=new QLabel; insilmaril@810: label->setText (tr("Find:","FindWidget")); insilmaril@810: insilmaril@808: // Create LineEdit (here QComboBox) insilmaril@808: findcombo = new QComboBox; insilmaril@808: findcombo->setMinimumWidth(250); insilmaril@808: findcombo->setEditable(true); insilmaril@808: connect ( findcombo, SIGNAL( highlighted(int) ), insilmaril@808: this, SLOT( nextPressed() ) ); insilmaril@808: connect ( findcombo, SIGNAL( textChanged(const QString &) ), insilmaril@808: this, SLOT( findTextChanged(const QString&) ) ); insilmaril@808: insilmaril@808: nextbutton = new QPushButton; insilmaril@808: nextbutton->setText (tr("Next","Find widget")); insilmaril@810: nextbutton->setDefault (true); insilmaril@810: nextbutton->setShortcut (Qt::Key_Return); insilmaril@810: //nextbutton->setShortcutContext (Qt::WidgetShortcut); insilmaril@808: connect ( nextbutton, SIGNAL( clicked() ), this, SLOT( nextPressed() ) ); insilmaril@808: insilmaril@808: row2Layout->addWidget (cancelbutton); insilmaril@810: row2Layout->addWidget (label); insilmaril@808: row2Layout->addWidget(findcombo); insilmaril@808: row2Layout->addWidget(nextbutton); insilmaril@808: insilmaril@808: mainLayout->addLayout (row2Layout); insilmaril@808: insilmaril@808: setLayout (mainLayout); insilmaril@810: setStatus (Undefined); insilmaril@808: } insilmaril@808: insilmaril@808: void FindWidget::popup() insilmaril@808: { insilmaril@808: show(); insilmaril@808: findcombo->lineEdit()->selectAll(); insilmaril@808: findcombo->setFocus(); insilmaril@808: } insilmaril@808: insilmaril@808: void FindWidget::cancelPressed() insilmaril@808: { insilmaril@808: hide(); insilmaril@808: } insilmaril@808: insilmaril@808: void FindWidget::nextPressed() insilmaril@808: { insilmaril@808: emit (nextButton(findcombo->currentText() ) ); insilmaril@808: } insilmaril@808: insilmaril@808: void FindWidget::findTextChanged(const QString&) insilmaril@808: { insilmaril@808: emit (somethingChanged() ); insilmaril@808: } insilmaril@808: insilmaril@810: void FindWidget::setStatus (Status st) insilmaril@810: { insilmaril@810: QPalette p=palette(); insilmaril@810: QColor c; insilmaril@810: switch (st) insilmaril@810: { insilmaril@810: case Success: c=QColor (100,255,100); break; insilmaril@810: case Failed: c=QColor (255,100,100); break; insilmaril@810: default: c=QColor (255,255,255); insilmaril@810: } insilmaril@810: p.setColor(QPalette::Active, static_cast(9), c); insilmaril@810: p.setColor(QPalette::Inactive, static_cast(9), c); insilmaril@810: findcombo->setPalette(p); insilmaril@810: } insilmaril@810: