Diffstat (limited to 'core/pim/osearch/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/osearch/mainwindow.cpp | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/core/pim/osearch/mainwindow.cpp b/core/pim/osearch/mainwindow.cpp index c6934db..aa52061 100644 --- a/core/pim/osearch/mainwindow.cpp +++ b/core/pim/osearch/mainwindow.cpp | |||
@@ -18,12 +18,14 @@ | |||
18 | #include <qstring.h> | 18 | #include <qstring.h> |
19 | #include <qlabel.h> | 19 | #include <qlabel.h> |
20 | #include <qfile.h> | 20 | #include <qfile.h> |
21 | #include <qhbuttongroup.h> | 21 | #include <qhbuttongroup.h> |
22 | #include <qhbox.h> | ||
22 | #include <qpushbutton.h> | 23 | #include <qpushbutton.h> |
23 | #include <qintdict.h> | 24 | #include <qintdict.h> |
24 | #include <qlayout.h> | 25 | #include <qlayout.h> |
25 | #include <qlineedit.h> | 26 | #include <qlineedit.h> |
27 | #include <qsignalmapper.h> | ||
26 | #include <qtextbrowser.h> | 28 | #include <qtextbrowser.h> |
27 | #include <qregexp.h> | 29 | #include <qregexp.h> |
28 | #include <qwhatsthis.h> | 30 | #include <qwhatsthis.h> |
29 | #include <qpe/qpemenubar.h> | 31 | #include <qpe/qpemenubar.h> |
@@ -70,17 +72,16 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : | |||
70 | QWhatsThis::add( richEdit, tr("The details of the current result") ); | 72 | QWhatsThis::add( richEdit, tr("The details of the current result") ); |
71 | richEdit->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); | 73 | richEdit->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); |
72 | detailsLayout->addWidget( richEdit ); | 74 | detailsLayout->addWidget( richEdit ); |
73 | 75 | ||
74 | buttonGroupActions = new QHButtonGroup( this ); | 76 | buttonBox = new QHBox( mainFrame, "Button Box" ); |
75 | buttonGroupActions->hide(); | ||
76 | _buttonCount = 0; | ||
77 | 77 | ||
78 | buttonLayout = new QHBoxLayout( detailsFrame ); | 78 | _buttonCount = 0; |
79 | detailsLayout->addLayout( buttonLayout ); | ||
80 | 79 | ||
81 | mainLayout->addWidget( detailsFrame ); | 80 | mainLayout->addWidget( detailsFrame ); |
81 | mainLayout->addWidget( buttonBox ); | ||
82 | detailsFrame->hide(); | 82 | detailsFrame->hide(); |
83 | buttonBox->hide(); | ||
83 | 84 | ||
84 | searches.append( new AppLnkSearch( resultsList, tr("applications") ) ); | 85 | searches.append( new AppLnkSearch( resultsList, tr("applications") ) ); |
85 | searches.append( new DocLnkSearch( resultsList, tr("documents") ) ); | 86 | searches.append( new DocLnkSearch( resultsList, tr("documents") ) ); |
86 | searches.append( new TodoSearch( resultsList, tr("todo") ) ); | 87 | searches.append( new TodoSearch( resultsList, tr("todo") ) ); |
@@ -95,9 +96,12 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : | |||
95 | connect(popupTimer, SIGNAL(timeout()), SLOT(showPopup())); | 96 | connect(popupTimer, SIGNAL(timeout()), SLOT(showPopup())); |
96 | connect(searchTimer, SIGNAL(timeout()), SLOT(searchStringChanged())); | 97 | connect(searchTimer, SIGNAL(timeout()), SLOT(searchStringChanged())); |
97 | connect(resultsList, SIGNAL(pressed(QListViewItem*)), SLOT(setCurrent(QListViewItem*))); | 98 | connect(resultsList, SIGNAL(pressed(QListViewItem*)), SLOT(setCurrent(QListViewItem*))); |
98 | connect(resultsList, SIGNAL(clicked(QListViewItem*)), SLOT(stopTimer(QListViewItem*))); | 99 | connect(resultsList, SIGNAL(clicked(QListViewItem*)), SLOT(stopTimer(QListViewItem*))); |
99 | connect(buttonGroupActions, SIGNAL(clicked(int)), SLOT( slotAction(int) ) ); | 100 | |
101 | signalMapper = new QSignalMapper( this ); | ||
102 | |||
103 | connect(signalMapper, SIGNAL(mapped(int)), SLOT( slotAction(int) ) ); | ||
100 | 104 | ||
101 | makeMenu(); | 105 | makeMenu(); |
102 | 106 | ||
103 | Config cfg( "osearch", Config::User ); | 107 | Config cfg( "osearch", Config::User ); |
@@ -182,24 +186,31 @@ void MainWindow::setCurrent(QListViewItem *item) | |||
182 | richEdit->setText( res->toRichText() ); | 186 | richEdit->setText( res->toRichText() ); |
183 | QIntDict<QString> acts = res->actions(); | 187 | QIntDict<QString> acts = res->actions(); |
184 | QButton *button; | 188 | QButton *button; |
185 | for (uint i = 0; i < acts.count(); i++){ | 189 | for (uint i = 0; i < acts.count(); i++){ |
186 | button = buttonGroupActions->find( i ); | 190 | button = buttonMap[i]; |
187 | if (!button) { | 191 | if (!button) { |
188 | button = new QPushButton( detailsFrame ); | 192 | qWarning(" no button for %s", (*acts[i]).latin1() ); |
189 | buttonLayout->addWidget( button, 0 ); | 193 | button = new QPushButton( buttonBox ); |
190 | buttonGroupActions->insert( button, i); | 194 | buttonMap.insert( i, button ); |
195 | signalMapper->setMapping(button, i ); | ||
196 | connect(button, SIGNAL(clicked() ), signalMapper, SLOT(map() ) ); | ||
191 | } | 197 | } |
192 | button->setText( *acts[i] ); | 198 | button->setText( *acts[i] ); |
193 | button->show(); | 199 | button->show(); |
194 | } | 200 | } |
195 | for (uint i = acts.count(); i < _buttonCount; i++){ | 201 | for (uint i = acts.count(); i < _buttonCount; i++){ |
196 | button = buttonGroupActions->find( i ); | 202 | button = buttonMap[i]; |
197 | if (button) button->hide(); | 203 | if (button) button->hide(); |
198 | } | 204 | } |
199 | _buttonCount = acts.count(); | 205 | _buttonCount = acts.count(); |
200 | detailsFrame->show(); | 206 | detailsFrame->show(); |
201 | }else detailsFrame->hide(); | 207 | buttonBox->show(); |
208 | |||
209 | }else { | ||
210 | detailsFrame->hide(); | ||
211 | buttonBox->hide(); | ||
212 | } | ||
202 | popupTimer->start( 300, true ); | 213 | popupTimer->start( 300, true ); |
203 | } | 214 | } |
204 | 215 | ||
205 | void MainWindow::stopTimer(QListViewItem*) | 216 | void MainWindow::stopTimer(QListViewItem*) |
@@ -252,15 +263,15 @@ void MainWindow::searchAll() | |||
252 | } | 263 | } |
253 | 264 | ||
254 | void MainWindow::slotAction( int act ) | 265 | void MainWindow::slotAction( int act ) |
255 | { | 266 | { |
256 | if (_currentItem->rtti() == OListViewItem::Result){ | 267 | if ( _currentItem && _currentItem->rtti() == OListViewItem::Result){ |
257 | ResultItem *res = (ResultItem*)_currentItem; | 268 | ResultItem *res = (ResultItem*)_currentItem; |
258 | // ResultItem *res = dynamic_cast<ResultItem*>(item); | 269 | // ResultItem *res = dynamic_cast<ResultItem*>(item); |
259 | res->action(act); | 270 | res->action(act); |
260 | } | 271 | } |
261 | } | 272 | } |
262 | 273 | ||
263 | void MainWindow::optionChanged(int i) | 274 | void MainWindow::optionChanged(int ) |
264 | { | 275 | { |
265 | searchStringChanged(); | 276 | searchStringChanged(); |
266 | } | 277 | } |