Diffstat (limited to 'core/pim/osearch/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/osearch/mainwindow.cpp | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/core/pim/osearch/mainwindow.cpp b/core/pim/osearch/mainwindow.cpp index b80c637..89ab690 100644 --- a/core/pim/osearch/mainwindow.cpp +++ b/core/pim/osearch/mainwindow.cpp @@ -18,8 +18,9 @@ #include <qpe/config.h> #include <qpe/qpetoolbar.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> +#include <qpe/global.h> #include <qaction.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qtoolbutton.h> @@ -83,9 +84,8 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : searches.append( new TodoSearch( resultsList, tr("todo") ) ); searches.append( new DatebookSearch( resultsList, tr("datebook") ) ); searches.append( new AdressSearch( resultsList, tr("adressbook") ) ); - makeMenu(); setCentralWidget( mainFrame ); popupTimer = new QTimer(); searchTimer = new QTimer(); @@ -95,13 +95,15 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : connect(resultsList, SIGNAL(pressed(QListViewItem*)), SLOT(setCurrent(QListViewItem*))); connect(resultsList, SIGNAL(clicked(QListViewItem*)), SLOT(stopTimer(QListViewItem*))); connect(buttonGroupActions, SIGNAL(clicked(int)), SLOT( slotAction(int) ) ); + makeMenu(); Config cfg( "osearch", Config::User ); cfg.setGroup( "search_settings" ); actionCaseSensitiv->setOn( cfg.readBoolEntry( "caseSensitiv", false ) ); actionWildcards->setOn( cfg.readBoolEntry( "wildcards", false ) ); +// actionWholeWordsOnly->setOn( cfg.readBoolEntry( "whole_words_only", false ) ); } void MainWindow::makeMenu() { @@ -116,19 +118,33 @@ void MainWindow::makeMenu() setToolBarsMovable( false ); toolBar->setHorizontalStretchable( true ); menuBar->insertItem( tr( "Search" ), searchMenu ); menuBar->insertItem( tr( "Settings" ), cfgMenu ); + + //SETTINGS MENU cfgMenu->insertItem( tr( "Search" ), searchOptions ); + QPopupMenu *pop; + for (SearchGroup *s = searches.first(); s != 0; s = searches.next() ){ + pop = s->popupMenu(); + if (pop){ + qDebug("inserting settings menu for %s",s->text(0).latin1()); + cfgMenu->insertItem( s->text(0), pop ); + //connect( pop, SIGNAL( activated(int) ), SLOT( optionChanged(int) ) ); + } + } //SEARCH SearchAllAction = new QAction( tr("Search all"),QString::null, 0, this, 0 ); SearchAllAction->setIconSet( Resource::loadIconSet( "find" ) ); connect( SearchAllAction, SIGNAL(activated()), this, SLOT(searchAll()) ); SearchAllAction->addTo( searchMenu ); searchMenu->insertItem( tr( "Options" ), searchOptions ); + //connect( searchOptions, SIGNAL( activated(int) ), SLOT( optionChanged(int) ) ); //SEARCH OPTIONS + //actionWholeWordsOnly = new QAction( tr("Whole words only"),QString::null, 0, this, 0, true ); + //actionWholeWordsOnly->addTo( searchOptions ); actionCaseSensitiv = new QAction( tr("Case sensitiv"),QString::null, 0, this, 0, true ); actionCaseSensitiv->addTo( searchOptions ); actionWildcards = new QAction( tr("Use wildcards"),QString::null, 0, this, 0, true ); actionWildcards->addTo( searchOptions ); @@ -150,8 +166,9 @@ MainWindow::~MainWindow() Config cfg( "osearch", Config::User ); cfg.setGroup( "search_settings" ); cfg.writeEntry( "caseSensitiv", actionCaseSensitiv->isOn() ); cfg.writeEntry( "wildcards", actionWildcards->isOn() ); + //cfg.writeEntry( "whole_words_only", actionWholeWordsOnly->isOn() ); } void MainWindow::setCurrent(QListViewItem *item) { @@ -181,16 +198,11 @@ void MainWindow::setCurrent(QListViewItem *item) button = buttonGroupActions->find( i ); if (button) button->hide(); } _buttonCount = acts.count(); -// buttonShow = new QPushButton( detailsFrame, "Show" ) ; -// buttonShow->setText( "test" ); -// buttonLayout->addWidget( buttonShow, 0 ); -// buttonGroupActions->insert(buttonShow); detailsFrame->show(); }else detailsFrame->hide(); - //_currentItem = (OListViewItem*)item; - popupTimer->start( 300 ); + popupTimer->start( 300, true ); } void MainWindow::stopTimer(QListViewItem*) { @@ -199,9 +211,12 @@ void MainWindow::stopTimer(QListViewItem*) void MainWindow::showPopup() { qDebug("showPopup"); + popupTimer->stop(); if (!_currentItem) return; + QPopupMenu *pop = _currentItem->popupMenu(); + if (pop) pop->popup( QCursor::pos() ); } void MainWindow::setSearch( const QString &key ) { @@ -212,9 +227,16 @@ void MainWindow::setSearch( const QString &key ) void MainWindow::searchStringChanged() { searchTimer->stop(); - QRegExp re( _searchString, actionCaseSensitiv->isOn(), actionWildcards->isOn() ); + QString ss = _searchString; + //ss = Global::stringQuote( _searchString ); +// if (actionWholeWordsOnly->isOn()) +// ss = "\\s"+_searchString+"\\s"; + qDebug(" set searchString >%s<",ss.latin1()); + QRegExp re( ss ); + re.setCaseSensitive( actionCaseSensitiv->isOn() ); + re.setWildcard( actionWildcards->isOn() ); for (SearchGroup *s = searches.first(); s != 0; s = searches.next() ) s->setSearch( re ); } @@ -234,4 +256,9 @@ void MainWindow::slotAction( int act) res->action(act); } } +void MainWindow::optionChanged(int i) +{ + qDebug("optionChanged(%i)",i); + searchStringChanged(); +} |