findwidget.cpp
author insilmaril
Fri, 19 Feb 2010 13:47:03 +0000
changeset 823 0bba81dde1bc
parent 812 62d4137bfb90
child 825 1ad892c1a709
permissions -rw-r--r--
More fixes
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