findwidget.cpp
author insilmaril
Thu, 26 Nov 2009 14:55:23 +0000
changeset 810 a9295db4dcbf
parent 808 b163492fda17
child 811 c79486b7cb4b
permissions -rw-r--r--
More fixes to new findwidget
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@808
     9
insilmaril@810
    10
FindWidget::FindWidget(QWidget *)
insilmaril@808
    11
{
insilmaril@808
    12
    QVBoxLayout* mainLayout = new QVBoxLayout;
insilmaril@808
    13
    QHBoxLayout *row2Layout = new QHBoxLayout;
insilmaril@808
    14
    
insilmaril@808
    15
	// Create Buttons
insilmaril@808
    16
	cancelbutton = new QPushButton;
insilmaril@808
    17
	cancelbutton->setText(tr("Cancel"));
insilmaril@808
    18
	cancelbutton->setShortcut (Qt::Key_Escape);
insilmaril@808
    19
	connect ( cancelbutton, SIGNAL( clicked() ), this, SLOT( cancelPressed() ) );
insilmaril@808
    20
	
insilmaril@810
    21
	QLabel *label=new QLabel;
insilmaril@810
    22
	label->setText (tr("Find:","FindWidget"));
insilmaril@810
    23
	
insilmaril@808
    24
	// Create LineEdit (here QComboBox)
insilmaril@808
    25
    findcombo = new QComboBox;
insilmaril@808
    26
	findcombo->setMinimumWidth(250);
insilmaril@808
    27
	findcombo->setEditable(true);
insilmaril@808
    28
	connect ( findcombo, SIGNAL( highlighted(int) ), 
insilmaril@808
    29
		this, SLOT( nextPressed() ) );
insilmaril@808
    30
	connect ( findcombo, SIGNAL( textChanged(const QString &) ), 
insilmaril@808
    31
		this, SLOT( findTextChanged(const QString&) ) );
insilmaril@808
    32
insilmaril@808
    33
	nextbutton = new QPushButton;
insilmaril@808
    34
	nextbutton->setText (tr("Next","Find widget"));
insilmaril@810
    35
	nextbutton->setDefault (true);
insilmaril@810
    36
	nextbutton->setShortcut (Qt::Key_Return);
insilmaril@810
    37
	//nextbutton->setShortcutContext (Qt::WidgetShortcut);
insilmaril@808
    38
	connect ( nextbutton, SIGNAL( clicked() ), this, SLOT( nextPressed() ) );
insilmaril@808
    39
insilmaril@808
    40
	row2Layout->addWidget (cancelbutton);
insilmaril@810
    41
	row2Layout->addWidget (label);
insilmaril@808
    42
	row2Layout->addWidget(findcombo);
insilmaril@808
    43
	row2Layout->addWidget(nextbutton);
insilmaril@808
    44
insilmaril@808
    45
	mainLayout->addLayout (row2Layout);
insilmaril@808
    46
insilmaril@808
    47
	setLayout (mainLayout);
insilmaril@810
    48
	setStatus (Undefined);
insilmaril@808
    49
}
insilmaril@808
    50
insilmaril@808
    51
void FindWidget::popup()
insilmaril@808
    52
{
insilmaril@808
    53
	show();
insilmaril@808
    54
	findcombo->lineEdit()->selectAll();
insilmaril@808
    55
	findcombo->setFocus();
insilmaril@808
    56
}
insilmaril@808
    57
insilmaril@808
    58
void FindWidget::cancelPressed()
insilmaril@808
    59
{
insilmaril@808
    60
	hide();
insilmaril@808
    61
}
insilmaril@808
    62
insilmaril@808
    63
void FindWidget::nextPressed()
insilmaril@808
    64
{
insilmaril@808
    65
	emit (nextButton(findcombo->currentText() ) );
insilmaril@808
    66
}
insilmaril@808
    67
insilmaril@808
    68
void FindWidget::findTextChanged(const QString&)
insilmaril@808
    69
{
insilmaril@808
    70
	emit (somethingChanged() );
insilmaril@808
    71
}
insilmaril@808
    72
insilmaril@810
    73
void FindWidget::setStatus (Status st)
insilmaril@810
    74
{
insilmaril@810
    75
	QPalette p=palette();
insilmaril@810
    76
	QColor c;
insilmaril@810
    77
	switch (st)
insilmaril@810
    78
	{
insilmaril@810
    79
		case Success: c=QColor (100,255,100); break;
insilmaril@810
    80
		case Failed:  c=QColor (255,100,100); break;
insilmaril@810
    81
		default:  c=QColor (255,255,255); 
insilmaril@810
    82
	}
insilmaril@810
    83
    p.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(9), c);
insilmaril@810
    84
    p.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(9), c);
insilmaril@810
    85
    findcombo->setPalette(p);
insilmaril@810
    86
}
insilmaril@810
    87