findwindow.cpp
author insilmaril
Wed, 25 Nov 2009 10:58:21 +0000
changeset 807 f9f7922989d8
parent 403 7c3ee77f4449
permissions -rw-r--r--
Added demos/vym-contribute.vym, fixes for selecting items
insilmaril@370
     1
#include <QLineEdit>
insilmaril@370
     2
#include <QVBoxLayout>
insilmaril@364
     3
#include <QLabel>
insilmaril@0
     4
insilmaril@0
     5
#include "findwindow.h"
insilmaril@0
     6
insilmaril@0
     7
insilmaril@403
     8
extern QString vymName;
insilmaril@403
     9
insilmaril@370
    10
FindWindow::FindWindow(QWidget* parent)
insilmaril@807
    11
	//: QGroupBox( tr("Find"), parent )
insilmaril@0
    12
insilmaril@0
    13
{
insilmaril@807
    14
	//setWindowTitle(vymName + " - " +tr("Find Text"));
insilmaril@0
    15
insilmaril@370
    16
    QVBoxLayout* mainLayout = new QVBoxLayout;
insilmaril@370
    17
    
insilmaril@370
    18
    QHBoxLayout *row1Layout = new QHBoxLayout;
insilmaril@807
    19
	/*
insilmaril@370
    20
    // Create a Label
insilmaril@370
    21
    QLabel* label = new QLabel;
insilmaril@370
    22
    label->setText( tr("Text to find:"));
insilmaril@370
    23
    row1Layout->addWidget( label );
insilmaril@807
    24
	*/
insilmaril@0
    25
insilmaril@0
    26
	// Create LineEdit (here QComboBox)
insilmaril@370
    27
    QHBoxLayout *row2Layout = new QHBoxLayout;
insilmaril@370
    28
    findcombo = new QComboBox;
insilmaril@807
    29
	findcombo->setMinimumWidth(250);
insilmaril@370
    30
	findcombo->setEditable(true);
insilmaril@0
    31
	connect ( findcombo, SIGNAL( highlighted(int) ), 
insilmaril@0
    32
		this, SLOT( findPressed() ) );
insilmaril@0
    33
	connect ( findcombo, SIGNAL( textChanged(const QString &) ), 
insilmaril@0
    34
		this, SLOT( findTextChanged(const QString&) ) );
insilmaril@0
    35
insilmaril@370
    36
	row2Layout->addWidget(findcombo);
insilmaril@370
    37
insilmaril@0
    38
	// Create Buttons
insilmaril@807
    39
    //QHBoxLayout *row3Layout = new QHBoxLayout;
insilmaril@370
    40
	clearbutton = new QPushButton;
insilmaril@370
    41
	clearbutton->setText(tr("Clear"));
insilmaril@370
    42
	connect ( clearbutton, SIGNAL( clicked() ), this, SLOT( clearLineEdit() ) );
insilmaril@807
    43
	row2Layout->addWidget (clearbutton);
insilmaril@0
    44
	
insilmaril@370
    45
	cancelbutton = new QPushButton;
insilmaril@370
    46
	cancelbutton->setText(tr("Cancel"));
insilmaril@370
    47
	cancelbutton->setShortcut (Qt::Key_Escape);
insilmaril@370
    48
	connect ( cancelbutton, SIGNAL( clicked() ), this, SLOT( cancelPressed() ) );
insilmaril@807
    49
	row2Layout->addWidget (cancelbutton);
insilmaril@0
    50
	
insilmaril@370
    51
	findbutton = new QPushButton;
insilmaril@370
    52
	findbutton->setText (tr("Find"));
insilmaril@0
    53
	findbutton->setDefault (true);
insilmaril@370
    54
	findbutton->setShortcut (Qt::Key_Return);
insilmaril@370
    55
	connect ( findbutton, SIGNAL( clicked() ), this, SLOT( findPressed() ) );
insilmaril@370
    56
insilmaril@807
    57
	//row2Layout->addStretch(2);
insilmaril@807
    58
	row2Layout->addWidget(findbutton);
insilmaril@370
    59
insilmaril@370
    60
	mainLayout->addLayout (row1Layout);
insilmaril@370
    61
	mainLayout->addLayout (row2Layout);
insilmaril@807
    62
	//mainLayout->addLayout (row3Layout);
insilmaril@370
    63
	setLayout (mainLayout);
insilmaril@0
    64
}
insilmaril@0
    65
insilmaril@0
    66
void FindWindow::popup()
insilmaril@0
    67
{
insilmaril@370
    68
	show();
insilmaril@0
    69
	findcombo->lineEdit()->selectAll();
insilmaril@370
    70
	findcombo->setFocus();
insilmaril@0
    71
}
insilmaril@0
    72
insilmaril@0
    73
void FindWindow::cancelPressed()
insilmaril@0
    74
{
insilmaril@0
    75
	hide();
insilmaril@0
    76
}
insilmaril@0
    77
insilmaril@0
    78
void FindWindow::findPressed()
insilmaril@0
    79
{
insilmaril@0
    80
	emit (findButton(findcombo->currentText() ) );
insilmaril@0
    81
}
insilmaril@0
    82
insilmaril@0
    83
void FindWindow::findTextChanged(const QString&)
insilmaril@0
    84
{
insilmaril@0
    85
	emit (somethingChanged() );
insilmaril@0
    86
}
insilmaril@370
    87
insilmaril@370
    88
void FindWindow::clearLineEdit()
insilmaril@370
    89
{
insilmaril@370
    90
	findcombo->lineEdit()->clear();
insilmaril@370
    91
}