Search::Search(QTreeWidget *fieldList, QWidget *parent) : QDialog(parent, Qt::Tool), fieldArchive(NULL), fieldList(fieldList) { fieldID = -1; textID = from = groupID = methodID = opcodeID = 0; setWindowTitle(tr("Rechercher")); setWindowModality(Qt::NonModal); setSizeGripEnabled(true); tabWidget = new QTabWidget(this); tabWidget->addTab(textPageWidget(), tr("Textes")); tabWidget->addTab(scriptPageWidget(), tr("Scripts")); buttonNext = new QPushButton(tr("Chercher le suivant"), this); buttonPrev = new QPushButton(tr("Chercher le précédent"), this); buttonPrev->setAutoDefault(false); buttonNext->setAutoDefault(false); buttonNext->setEnabled(false); buttonPrev->setEnabled(false); buttonNext->setDefault(true); new QShortcut(QKeySequence::FindNext, this, SLOT(findNext()), 0, Qt::ApplicationShortcut); new QShortcut(QKeySequence::FindPrevious, this, SLOT(findPrev()), 0, Qt::ApplicationShortcut); // buttonNext.width == buttonPrev.width if(buttonPrev->sizeHint().width() > buttonNext->sizeHint().width()) buttonNext->setFixedSize(buttonPrev->sizeHint()); else buttonPrev->setFixedSize(buttonNext->sizeHint()); QGridLayout *layout = new QGridLayout(this); layout->addWidget(tabWidget, 0, 0, 1, 2); layout->addWidget(buttonPrev, 1, 0, Qt::AlignRight); layout->addWidget(buttonNext, 1, 1, Qt::AlignLeft); QMargins margins = layout->contentsMargins(); margins.setTop(0); margins.setLeft(0); margins.setRight(0); layout->setContentsMargins(margins); connect(buttonNext, SIGNAL(released()), SLOT(findNext())); connect(buttonPrev, SIGNAL(released()), SLOT(findPrev())); connect(tabWidget, SIGNAL(currentChanged(int)), SLOT(setFocus())); connect(searchTextField, SIGNAL(textEdited(QString)), searchScriptTextField, SLOT(setText(QString))); connect(searchScriptTextField, SIGNAL(textEdited(QString)), searchTextField, SLOT(setText(QString))); }