SearchWindow::SearchWindow() : QWidget(0), d(new Private) { QVBoxLayout* layout = new QVBoxLayout; d->scrollArea = new QScrollArea(this); d->scrollArea->setWidgetResizable(true); d->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); d->searchView = new SearchView; d->searchView->setup(); d->bottomBar = new SearchViewBottomBar(d->searchView); d->searchView->setBottomBar(d->bottomBar); d->scrollArea->setWidget(d->searchView); d->scrollArea->setFrameStyle(QFrame::NoFrame); layout->addWidget(d->scrollArea); layout->addWidget(d->bottomBar); layout->setMargin(0); layout->setSpacing(0); setLayout(layout); setVisible(false); setWindowTitle(i18n("Advanced Search")); resize(800, 600); connect(d->searchView, SIGNAL(searchOk()), this, SLOT(searchOk())); connect(d->searchView, SIGNAL(searchCancel()), this, SLOT(searchCancel())); connect(d->searchView, SIGNAL(searchTryout()), this, SLOT(searchTryout())); }
void SearchWindow::keyPressEvent(QKeyEvent* e) { // Implement keys like in a dialog if (!e->modifiers() || ((e->modifiers() & Qt::KeypadModifier) && e->key() == Qt::Key_Enter)) { switch (e->key()) { case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Select: searchOk(); break; case Qt::Key_F4: case Qt::Key_Escape: case Qt::Key_Back: searchCancel(); break; default: break; } } }