summaryrefslogtreecommitdiffabout
path: root/kaddressbook/viewmanager.cpp
Unidiff
Diffstat (limited to 'kaddressbook/viewmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/viewmanager.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index 0d91c12..33bef5a 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -1,718 +1,725 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31 31
32#ifndef KAB_EMBEDDED 32#ifndef KAB_EMBEDDED
33#include <libkdepim/kvcarddrag.h> 33#include <libkdepim/kvcarddrag.h>
34#include <kabc/vcardconverter.h> 34#include <kabc/vcardconverter.h>
35#include <kconfig.h> 35#include <kconfig.h>
36#include <kdeversion.h> 36#include <kdeversion.h>
37#include <kiconloader.h> 37#include <kiconloader.h>
38#include <klocale.h> 38#include <klocale.h>
39#include <kmessagebox.h> 39#include <kmessagebox.h>
40#include <kmultipledrag.h> 40#include <kmultipledrag.h>
41#include <ktrader.h> 41#include <ktrader.h>
42#include <kurldrag.h> 42#include <kurldrag.h>
43 43
44#include "addresseeutil.h" 44#include "addresseeutil.h"
45#else //KAB_EMBEDDED 45#else //KAB_EMBEDDED
46#include "views/kaddressbookiconview.h" 46#include "views/kaddressbookiconview.h"
47#include "views/kaddressbooktableview.h" 47#include "views/kaddressbooktableview.h"
48#include "views/kaddressbookcardview.h" 48#include "views/kaddressbookcardview.h"
49#include "kaddressbookview.h" 49#include "kaddressbookview.h"
50 50
51#include <qaction.h> 51#include <qaction.h>
52#include <qmessagebox.h> 52#include <qmessagebox.h>
53#include <qpopupmenu.h> 53#include <qpopupmenu.h>
54#include <kconfigbase.h> 54#include <kconfigbase.h>
55 55
56#endif //KAB_EMBEDDED 56#endif //KAB_EMBEDDED
57 57
58 58
59#include <kdebug.h> 59#include <kdebug.h>
60#include <kactionclasses.h> 60#include <kactionclasses.h>
61 61
62#include <qlayout.h> 62#include <qlayout.h>
63#include <qapplication.h>
63#include <qwidgetstack.h> 64#include <qwidgetstack.h>
64 65
65#include <kabc/addressbook.h> 66#include <kabc/addressbook.h>
66#include "filtereditdialog.h" 67#include "filtereditdialog.h"
67#include "addviewdialog.h" 68#include "addviewdialog.h"
68#include "kabcore.h" 69#include "kabcore.h"
69#include "kabprefs.h" 70#include "kabprefs.h"
70#include "viewmanager.h" 71#include "viewmanager.h"
71 72
72ViewManager::ViewManager( KABCore *core, QWidget *parent, const char *name ) 73ViewManager::ViewManager( KABCore *core, QWidget *parent, const char *name )
73 : QWidget( parent, name ), mCore( core ), mActiveView( 0 ) 74 : QWidget( parent, name ), mCore( core ), mActiveView( 0 )
74{ 75{
75 initGUI(); 76 initGUI();
76 initActions(); 77 initActions();
77 78
78 mViewDict.setAutoDelete( true ); 79 mViewDict.setAutoDelete( true );
79 80
80 createViewFactories(); 81 createViewFactories();
81} 82}
82 83
83ViewManager::~ViewManager() 84ViewManager::~ViewManager()
84{ 85{
85 unloadViews(); 86 unloadViews();
86 mViewFactoryDict.clear(); 87 mViewFactoryDict.clear();
87} 88}
88void ViewManager::scrollUP() 89void ViewManager::scrollUP()
89{ 90{
90 if ( mActiveView ) 91 if ( mActiveView )
91 mActiveView->scrollUP(); 92 mActiveView->scrollUP();
92} 93}
93void ViewManager::scrollDOWN() 94void ViewManager::scrollDOWN()
94{ 95{
95 if ( mActiveView ) 96 if ( mActiveView )
96 mActiveView->scrollDOWN(); 97 mActiveView->scrollDOWN();
97} 98}
98void ViewManager::restoreSettings() 99void ViewManager::restoreSettings()
99{ 100{
100 mViewNameList = KABPrefs::instance()->mViewNames; 101 mViewNameList = KABPrefs::instance()->mViewNames;
101 QString activeViewName = KABPrefs::instance()->mCurrentView; 102 QString activeViewName = KABPrefs::instance()->mCurrentView;
102 103
103 mActionSelectView->setItems( mViewNameList ); 104 mActionSelectView->setItems( mViewNameList );
104 105
105 // Filter 106 // Filter
106 mFilterList = Filter::restore( mCore->config(), "Filter" ); 107 mFilterList = Filter::restore( mCore->config(), "Filter" );
107 mActionSelectFilter->setItems( filterNames() ); 108 mActionSelectFilter->setItems( filterNames() );
108 mActionSelectFilter->setCurrentItem( KABPrefs::instance()->mCurrentFilter ); 109 mActionSelectFilter->setCurrentItem( KABPrefs::instance()->mCurrentFilter );
109 mActionSelectFilter->setComboWidth( 150 ); 110 int cw = 150;
111 if (QApplication::desktop()->width() == 480 )
112 cw = 0;
113 mActionSelectFilter->setComboWidth( cw );
110 // Tell the views to reread their config, since they may have 114 // Tell the views to reread their config, since they may have
111 // been modified by global settings 115 // been modified by global settings
112 QString _oldgroup = mCore->config()->group(); 116 QString _oldgroup = mCore->config()->group();
113 117
114 QDictIterator<KAddressBookView> it( mViewDict ); 118 QDictIterator<KAddressBookView> it( mViewDict );
115 for ( it.toFirst(); it.current(); ++it ) { 119 for ( it.toFirst(); it.current(); ++it ) {
116 KConfigGroupSaver saver( mCore->config(), it.currentKey() ); 120 KConfigGroupSaver saver( mCore->config(), it.currentKey() );
117 it.current()->readConfig( mCore->config() ); 121 it.current()->readConfig( mCore->config() );
118 } 122 }
119 setActiveView( activeViewName ); 123 setActiveView( activeViewName );
120 124
121 mActionDeleteView->setEnabled( mViewNameList.count() > 1 ); 125 mActionDeleteView->setEnabled( mViewNameList.count() > 1 );
122} 126}
123 127
124void ViewManager::saveSettings() 128void ViewManager::saveSettings()
125{ 129{
126 QString _oldgroup = mCore->config()->group(); 130 QString _oldgroup = mCore->config()->group();
127 131
128 QDictIterator<KAddressBookView> it( mViewDict ); 132 QDictIterator<KAddressBookView> it( mViewDict );
129 for ( it.toFirst(); it.current(); ++it ) { 133 for ( it.toFirst(); it.current(); ++it ) {
130 KConfigGroupSaver saver( mCore->config(), it.currentKey() ); 134 KConfigGroupSaver saver( mCore->config(), it.currentKey() );
131#ifdef DESKTOP_VERSION 135#ifdef DESKTOP_VERSION
132 (*it)->writeConfig( mCore->config() ); 136 (*it)->writeConfig( mCore->config() );
133#else 137#else
134 (*it).writeConfig( mCore->config() ); 138 (*it).writeConfig( mCore->config() );
135#endif 139#endif
136 } 140 }
137 141
138 Filter::save( mCore->config(), "Filter", mFilterList ); 142 Filter::save( mCore->config(), "Filter", mFilterList );
139 KABPrefs::instance()->mCurrentFilter = mActionSelectFilter->currentItem(); 143 KABPrefs::instance()->mCurrentFilter = mActionSelectFilter->currentItem();
140 144
141 // write the view name list 145 // write the view name list
142 KABPrefs::instance()->mViewNames = mViewNameList; 146 KABPrefs::instance()->mViewNames = mViewNameList;
143 KABPrefs::instance()->mCurrentView = mActiveView->caption(); 147 KABPrefs::instance()->mCurrentView = mActiveView->caption();
144 148
145} 149}
146 150
147QStringList ViewManager::selectedUids() const 151QStringList ViewManager::selectedUids() const
148{ 152{
149 if ( mActiveView ) 153 if ( mActiveView )
150 return mActiveView->selectedUids(); 154 return mActiveView->selectedUids();
151 else 155 else
152 return QStringList(); 156 return QStringList();
153} 157}
154 158
155QStringList ViewManager::selectedEmails() const 159QStringList ViewManager::selectedEmails() const
156{ 160{
157 if ( mActiveView ) 161 if ( mActiveView )
158 return mActiveView->selectedEmails(); 162 return mActiveView->selectedEmails();
159 else 163 else
160 return QStringList(); 164 return QStringList();
161} 165}
162 166
163KABC::Addressee::List ViewManager::selectedAddressees() const 167KABC::Addressee::List ViewManager::selectedAddressees() const
164{ 168{
165 KABC::Addressee::List list; 169 KABC::Addressee::List list;
166 if ( mActiveView ) { 170 if ( mActiveView ) {
167 QStringList uids = mActiveView->selectedUids(); 171 QStringList uids = mActiveView->selectedUids();
168 QStringList::Iterator it; 172 QStringList::Iterator it;
169 for ( it = uids.begin(); it != uids.end(); ++it ) { 173 for ( it = uids.begin(); it != uids.end(); ++it ) {
170 KABC::Addressee addr = mCore->addressBook()->findByUid( *it ); 174 KABC::Addressee addr = mCore->addressBook()->findByUid( *it );
171 if ( !addr.isEmpty() ) 175 if ( !addr.isEmpty() )
172 list.append( addr ); 176 list.append( addr );
173 } 177 }
174 } 178 }
175 179
176 return list; 180 return list;
177} 181}
178//US added another method with no parameter, since my moc compiler does not support default parameters. 182//US added another method with no parameter, since my moc compiler does not support default parameters.
179void ViewManager::setSelected() 183void ViewManager::setSelected()
180{ 184{
181 setSelected( QString::null, true ); 185 setSelected( QString::null, true );
182} 186}
183 187
184void ViewManager::setSelected( const QString &uid, bool selected ) 188void ViewManager::setSelected( const QString &uid, bool selected )
185{ 189{
186 if ( mActiveView ) 190 if ( mActiveView )
187 mActiveView->setSelected( uid, selected ); 191 mActiveView->setSelected( uid, selected );
188} 192}
189 193
190void ViewManager::setListSelected(QStringList list) 194void ViewManager::setListSelected(QStringList list)
191{ 195{
192 int i, count = list.count(); 196 int i, count = list.count();
193 for ( i = 0; i < count;++i ) 197 for ( i = 0; i < count;++i )
194 setSelected( list[i], true ); 198 setSelected( list[i], true );
195 199
196} 200}
197void ViewManager::unloadViews() 201void ViewManager::unloadViews()
198{ 202{
199 mViewDict.clear(); 203 mViewDict.clear();
200 mActiveView = 0; 204 mActiveView = 0;
201} 205}
202 206
203void ViewManager::setActiveView( const QString &name ) 207void ViewManager::setActiveView( const QString &name )
204{ 208{
205 KAddressBookView *view = 0; 209 KAddressBookView *view = 0;
206 210
207 // Check that this isn't the same as the current active view 211 // Check that this isn't the same as the current active view
208 if ( mActiveView && ( mActiveView->caption() == name ) ) 212 if ( mActiveView && ( mActiveView->caption() == name ) )
209 return; 213 return;
210 214
211 // At this point we know the view that should be active is not 215 // At this point we know the view that should be active is not
212 // currently active. We will try to find the new on in the list. If 216 // currently active. We will try to find the new on in the list. If
213 // we can't find it, it means it hasn't been instantiated, so we will 217 // we can't find it, it means it hasn't been instantiated, so we will
214 // create it on demand. 218 // create it on demand.
215 219
216 view = mViewDict.find( name ); 220 view = mViewDict.find( name );
217 221
218 // Check if we found the view. If we didn't, then we need to create it 222 // Check if we found the view. If we didn't, then we need to create it
219 if ( view == 0 ) { 223 if ( view == 0 ) {
220 KConfig *config = mCore->config(); 224 KConfig *config = mCore->config();
221 225
222 KConfigGroupSaver saver( config, name ); 226 KConfigGroupSaver saver( config, name );
223 227
224 QString type = config->readEntry( "Type", "Table" ); 228 QString type = config->readEntry( "Type", "Table" );
225 229
226 kdDebug(5720) << "ViewManager::setActiveView: creating view - " << name << endl; 230 kdDebug(5720) << "ViewManager::setActiveView: creating view - " << name << endl;
227 231
228 ViewFactory *factory = mViewFactoryDict.find( type ); 232 ViewFactory *factory = mViewFactoryDict.find( type );
229 if ( factory ) 233 if ( factory )
230 view = factory->view( mCore->addressBook(), mViewWidgetStack ); 234 view = factory->view( mCore->addressBook(), mViewWidgetStack );
231 235
232 if ( view ) { 236 if ( view ) {
233 view->setCaption( name ); 237 view->setCaption( name );
234 mViewDict.insert( name, view ); 238 mViewDict.insert( name, view );
235//US my version needs an int as second parameter to addWidget 239//US my version needs an int as second parameter to addWidget
236 mViewWidgetStack->addWidget( view, -1 ); 240 mViewWidgetStack->addWidget( view, -1 );
237 view->readConfig( config ); 241 view->readConfig( config );
238 242
239 // The manager just relays the signals 243 // The manager just relays the signals
240 connect( view, SIGNAL( selected( const QString& ) ), 244 connect( view, SIGNAL( selected( const QString& ) ),
241 SIGNAL( selected( const QString & ) ) ); 245 SIGNAL( selected( const QString & ) ) );
242 connect( view, SIGNAL( executed( const QString& ) ), 246 connect( view, SIGNAL( executed( const QString& ) ),
243 SIGNAL( executed( const QString& ) ) ); 247 SIGNAL( executed( const QString& ) ) );
244 248
245 connect( view, SIGNAL( deleteRequest( ) ), 249 connect( view, SIGNAL( deleteRequest( ) ),
246 SIGNAL( deleteRequest( ) ) ); 250 SIGNAL( deleteRequest( ) ) );
247 251
248 connect( view, SIGNAL( modified() ), SIGNAL( modified() ) ); 252 connect( view, SIGNAL( modified() ), SIGNAL( modified() ) );
249 connect( view, SIGNAL( dropped( QDropEvent* ) ), 253 connect( view, SIGNAL( dropped( QDropEvent* ) ),
250 SLOT( dropped( QDropEvent* ) ) ); 254 SLOT( dropped( QDropEvent* ) ) );
251 connect( view, SIGNAL( startDrag() ), SLOT( startDrag() ) ); 255 connect( view, SIGNAL( startDrag() ), SLOT( startDrag() ) );
252 } 256 }
253 } 257 }
254 258
255 // If we found or created the view, raise it and refresh it 259 // If we found or created the view, raise it and refresh it
256 if ( view ) { 260 if ( view ) {
257 mActiveView = view; 261 mActiveView = view;
258 mViewWidgetStack->raiseWidget( view ); 262 mViewWidgetStack->raiseWidget( view );
259 // Set the proper filter in the view. By setting the combo 263 // Set the proper filter in the view. By setting the combo
260 // box, the activated slot will be called, which will push 264 // box, the activated slot will be called, which will push
261 // the filter to the view and refresh it. 265 // the filter to the view and refresh it.
262 266
263 if ( view->defaultFilterType() == KAddressBookView::None ) { 267 if ( view->defaultFilterType() == KAddressBookView::None ) {
264 268
265 mActionSelectFilter->setCurrentItem( 0 ); 269 mActionSelectFilter->setCurrentItem( 0 );
266 setActiveFilter( 0 ); 270 setActiveFilter( 0 );
267 } else if ( view->defaultFilterType() == KAddressBookView::Active ) { 271 } else if ( view->defaultFilterType() == KAddressBookView::Active ) {
268 setActiveFilter( mActionSelectFilter->currentItem() ); 272 setActiveFilter( mActionSelectFilter->currentItem() );
269 } else { 273 } else {
270 uint pos = filterPosition( view->defaultFilterName() ); 274 uint pos = filterPosition( view->defaultFilterName() );
271 mActionSelectFilter->setCurrentItem( pos ); 275 mActionSelectFilter->setCurrentItem( pos );
272 setActiveFilter( pos ); 276 setActiveFilter( pos );
273 } 277 }
274//US qDebug("ViewManager::setActiveView 6" ); 278//US qDebug("ViewManager::setActiveView 6" );
275 279
276 // Update the inc search widget to show the fields in the new active 280 // Update the inc search widget to show the fields in the new active
277 // view. 281 // view.
278 mCore->setSearchFields( mActiveView->fields() ); 282 mCore->setSearchFields( mActiveView->fields() );
279 283
280//US performance optimization. setActiveFilter calls also mActiveView->refresh() 284//US performance optimization. setActiveFilter calls also mActiveView->refresh()
281//US mActiveView->refresh(); 285//US mActiveView->refresh();
282 286
283 } 287 }
284 else 288 else
285 { 289 {
286 qDebug("ViewManager::setActiveView: unable to find view" ); 290 qDebug("ViewManager::setActiveView: unable to find view" );
287 kdDebug(5720) << "ViewManager::setActiveView: unable to find view\n"; 291 kdDebug(5720) << "ViewManager::setActiveView: unable to find view\n";
288 } 292 }
289} 293}
290 294
291//US added another method with no parameter, since my moc compiler does not support default parameters. 295//US added another method with no parameter, since my moc compiler does not support default parameters.
292void ViewManager::refreshView() 296void ViewManager::refreshView()
293{ 297{
294 refreshView( QString::null ); 298 refreshView( QString::null );
295} 299}
296 300
297void ViewManager::refreshView( const QString &uid ) 301void ViewManager::refreshView( const QString &uid )
298{ 302{
299 if ( mActiveView ) 303 if ( mActiveView )
300 mActiveView->refresh( uid ); 304 mActiveView->refresh( uid );
301} 305}
302 306
303void ViewManager::setFocusAV() 307void ViewManager::setFocusAV()
304{ 308{
305 if ( mActiveView ) 309 if ( mActiveView )
306 mActiveView->setFocusAV(); 310 mActiveView->setFocusAV();
307} 311}
308void ViewManager::editView() 312void ViewManager::editView()
309{ 313{
310 if ( !mActiveView ) 314 if ( !mActiveView )
311 return; 315 return;
312 316
313 ViewFactory *factory = mViewFactoryDict.find( mActiveView->type() ); 317 ViewFactory *factory = mViewFactoryDict.find( mActiveView->type() );
314 ViewConfigureWidget *wdg = 0; 318 ViewConfigureWidget *wdg = 0;
315 ViewConfigureDialog* dlg = 0; 319 ViewConfigureDialog* dlg = 0;
316 if ( factory ) { 320 if ( factory ) {
317 // Save the filters so the dialog has the latest set 321 // Save the filters so the dialog has the latest set
318 Filter::save( mCore->config(), "Filter", mFilterList ); 322 Filter::save( mCore->config(), "Filter", mFilterList );
319 dlg = new ViewConfigureDialog( 0, mActiveView->caption(), this, "conf_dlg" ); 323 dlg = new ViewConfigureDialog( 0, mActiveView->caption(), this, "conf_dlg" );
320 wdg = factory->configureWidget( mCore->addressBook(), dlg,"conf_wid" ); 324 wdg = factory->configureWidget( mCore->addressBook(), dlg,"conf_wid" );
321 } else { 325 } else {
322 qDebug("ViewManager::editView()::cannot find viewfactory "); 326 qDebug("ViewManager::editView()::cannot find viewfactory ");
323 return; 327 return;
324 } 328 }
325 if ( wdg ) { 329 if ( wdg ) {
326 dlg->setWidget( wdg ); 330 dlg->setWidget( wdg );
327 331
328#ifndef DESKTOP_VERSION 332#ifndef DESKTOP_VERSION
329 //dlg.setMaximumSize( 640, 480 ); 333 //dlg.setMaximumSize( 640, 480 );
330 //dlg->setGeometry( 40,40, 400, 300); 334 //dlg->setGeometry( 40,40, 400, 300);
331 dlg->showMaximized(); 335 dlg->showMaximized();
332#endif 336#endif
333 337
334 KConfigGroupSaver saver( mCore->config(), mActiveView->caption() ); 338 KConfigGroupSaver saver( mCore->config(), mActiveView->caption() );
335 339
336 dlg->restoreSettings( mCore->config() ); 340 dlg->restoreSettings( mCore->config() );
337 341
338 if ( dlg->exec() ) { 342 if ( dlg->exec() ) {
339 dlg->saveSettings( mCore->config() ); 343 dlg->saveSettings( mCore->config() );
340 mActiveView->readConfig( mCore->config() ); 344 mActiveView->readConfig( mCore->config() );
341 345
342 // Set the proper filter in the view. By setting the combo 346 // Set the proper filter in the view. By setting the combo
343 // box, the activated slot will be called, which will push 347 // box, the activated slot will be called, which will push
344 // the filter to the view and refresh it. 348 // the filter to the view and refresh it.
345 if ( mActiveView->defaultFilterType() == KAddressBookView::None ) { 349 if ( mActiveView->defaultFilterType() == KAddressBookView::None ) {
346 mActionSelectFilter->setCurrentItem( 0 ); 350 mActionSelectFilter->setCurrentItem( 0 );
347 setActiveFilter( 0 ); 351 setActiveFilter( 0 );
348 } else if ( mActiveView->defaultFilterType() == KAddressBookView::Active ) { 352 } else if ( mActiveView->defaultFilterType() == KAddressBookView::Active ) {
349 setActiveFilter( mActionSelectFilter->currentItem() ); 353 setActiveFilter( mActionSelectFilter->currentItem() );
350 } else { 354 } else {
351 uint pos = filterPosition( mActiveView->defaultFilterName() ); 355 uint pos = filterPosition( mActiveView->defaultFilterName() );
352 mActionSelectFilter->setCurrentItem( pos ); 356 mActionSelectFilter->setCurrentItem( pos );
353 setActiveFilter( pos ); 357 setActiveFilter( pos );
354 } 358 }
355 mCore->setSearchFields( mActiveView->fields() ); 359 mCore->setSearchFields( mActiveView->fields() );
356//US performance optimization. setActiveFilter calls also mActiveView->refresh() 360//US performance optimization. setActiveFilter calls also mActiveView->refresh()
357//US mActiveView->refresh(); 361//US mActiveView->refresh();
358 362
359 363
360 //US this is a bugfix, that we get notified if we change a views configuration 364 //US this is a bugfix, that we get notified if we change a views configuration
361 emit modified(); 365 emit modified();
362 366
363 } 367 }
364 368
365 } 369 }
366 delete dlg; 370 delete dlg;
367} 371}
368 372
369void ViewManager::deleteView() 373void ViewManager::deleteView()
370{ 374{
371 QString text = i18n( "<qt>Are you sure that you want to delete the view <b>%1</b>?</qt>" ) 375 QString text = i18n( "<qt>Are you sure that you want to delete the view <b>%1</b>?</qt>" )
372 .arg( mActiveView->caption() ); 376 .arg( mActiveView->caption() );
373 QString caption = i18n( "Confirm Delete" ); 377 QString caption = i18n( "Confirm Delete" );
374 378
375 379
376 if (QMessageBox::information( this, caption, 380 if (QMessageBox::information( this, caption,
377 text, 381 text,
378 i18n("Yes!"), i18n("No"), 0, 0 ) == 0) 382 i18n("Yes!"), i18n("No"), 0, 0 ) == 0)
379 { 383 {
380 mViewNameList.remove( mActiveView->caption() ); 384 mViewNameList.remove( mActiveView->caption() );
381 385
382 // remove the view from the config file 386 // remove the view from the config file
383 KConfig *config = mCore->config(); 387 KConfig *config = mCore->config();
384 config->deleteGroup( mActiveView->caption() ); 388 config->deleteGroup( mActiveView->caption() );
385 389
386 mViewDict.remove( mActiveView->caption() ); 390 mViewDict.remove( mActiveView->caption() );
387 mActiveView = 0; 391 mActiveView = 0;
388 392
389 // we are in an invalid state now, but that should be fixed after 393 // we are in an invalid state now, but that should be fixed after
390 // we emit the signal 394 // we emit the signal
391 mActionSelectView->setItems( mViewNameList ); 395 mActionSelectView->setItems( mViewNameList );
392 if ( mViewNameList.count() > 0 ) { 396 if ( mViewNameList.count() > 0 ) {
393 mActionSelectView->setCurrentItem( 0 ); 397 mActionSelectView->setCurrentItem( 0 );
394 setActiveView( mViewNameList[ 0 ] ); 398 setActiveView( mViewNameList[ 0 ] );
395 } 399 }
396 mActionDeleteView->setEnabled( mViewNameList.count() > 1 ); 400 mActionDeleteView->setEnabled( mViewNameList.count() > 1 );
397 } 401 }
398} 402}
399 403
400void ViewManager::addView() 404void ViewManager::addView()
401{ 405{
402 AddViewDialog dialog( &mViewFactoryDict, this ); 406 AddViewDialog dialog( &mViewFactoryDict, this );
403 407
404 if ( dialog.exec() ) { 408 if ( dialog.exec() ) {
405 QString newName = dialog.viewName(); 409 QString newName = dialog.viewName();
406 QString type = dialog.viewType(); 410 QString type = dialog.viewType();
407 411
408 // Check for name conflicts 412 // Check for name conflicts
409 bool firstConflict = true; 413 bool firstConflict = true;
410 int numTries = 1; 414 int numTries = 1;
411 while ( mViewNameList.contains( newName ) > 0 ) { 415 while ( mViewNameList.contains( newName ) > 0 ) {
412 if ( !firstConflict ) { 416 if ( !firstConflict ) {
413 newName = newName.left( newName.length() - 4 ); 417 newName = newName.left( newName.length() - 4 );
414 firstConflict = false; 418 firstConflict = false;
415 } 419 }
416 420
417 newName = QString( "%1 <%2>" ).arg( newName ).arg( numTries ); 421 newName = QString( "%1 <%2>" ).arg( newName ).arg( numTries );
418 numTries++; 422 numTries++;
419 } 423 }
420 424
421 // Add the new one to the list 425 // Add the new one to the list
422 mViewNameList.append( newName ); 426 mViewNameList.append( newName );
423 427
424 // write the view to the config file, 428 // write the view to the config file,
425 KConfig *config = mCore->config(); 429 KConfig *config = mCore->config();
426 430
427 config->deleteGroup( newName ); 431 config->deleteGroup( newName );
428 432
429 KConfigGroupSaver saver( config, newName ); 433 KConfigGroupSaver saver( config, newName );
430 434
431 config->writeEntry( "Type", type ); 435 config->writeEntry( "Type", type );
432 436
433 // try to set the active view 437 // try to set the active view
434 mActionSelectView->setItems( mViewNameList ); 438 mActionSelectView->setItems( mViewNameList );
435 mActionSelectView->setCurrentItem( mViewNameList.findIndex( newName ) ); 439 mActionSelectView->setCurrentItem( mViewNameList.findIndex( newName ) );
436 setActiveView( newName ); 440 setActiveView( newName );
437 441
438 editView(); 442 editView();
439 443
440 mActionDeleteView->setEnabled( mViewNameList.count() > 1 ); 444 mActionDeleteView->setEnabled( mViewNameList.count() > 1 );
441 } 445 }
442} 446}
443 447
444void ViewManager::createViewFactories() 448void ViewManager::createViewFactories()
445{ 449{
446#ifndef KAB_EMBEDDED 450#ifndef KAB_EMBEDDED
447 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/View" ); 451 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/View" );
448 KTrader::OfferList::ConstIterator it; 452 KTrader::OfferList::ConstIterator it;
449 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 453 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
450 if ( !(*it)->hasServiceType( "KAddressBook/View" ) ) 454 if ( !(*it)->hasServiceType( "KAddressBook/View" ) )
451 continue; 455 continue;
452 456
453 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); 457 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
454 458
455 if ( !factory ) { 459 if ( !factory ) {
456 kdDebug(5720) << "ViewManager::createViewFactories(): Factory creation failed" << endl; 460 kdDebug(5720) << "ViewManager::createViewFactories(): Factory creation failed" << endl;
457 continue; 461 continue;
458 } 462 }
459 463
460 ViewFactory *viewFactory = static_cast<ViewFactory*>( factory ); 464 ViewFactory *viewFactory = static_cast<ViewFactory*>( factory );
461 465
462 if ( !viewFactory ) { 466 if ( !viewFactory ) {
463 kdDebug(5720) << "ViewManager::createViewFactories(): Cast failed" << endl; 467 kdDebug(5720) << "ViewManager::createViewFactories(): Cast failed" << endl;
464 continue; 468 continue;
465 } 469 }
466 470
467 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 471 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
468 } 472 }
469 473
470#else //KAB_EMBEDDED 474#else //KAB_EMBEDDED
471 ViewFactory* viewFactory = new IconViewFactory(); 475 ViewFactory* viewFactory = new IconViewFactory();
472 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 476 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
473// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 477// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
474 478
475 viewFactory = new TableViewFactory(); 479 viewFactory = new TableViewFactory();
476 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 480 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
477// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 481// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
478 482
479 viewFactory = new CardViewFactory(); 483 viewFactory = new CardViewFactory();
480 mViewFactoryDict.insert( viewFactory->type(), viewFactory ); 484 mViewFactoryDict.insert( viewFactory->type(), viewFactory );
481// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1()); 485// qDebug("ViewManager::createViewFactories() Loading factory: %s", viewFactory->type().latin1());
482 486
483#endif //KAB_EMBEDDED 487#endif //KAB_EMBEDDED
484 488
485} 489}
486 490
487void ViewManager::dropped( QDropEvent *e ) 491void ViewManager::dropped( QDropEvent *e )
488{ 492{
489 kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl; 493 kdDebug(5720) << "ViewManager::dropped: got a drop event" << endl;
490 494
491#ifndef KAB_EMBEDDED 495#ifndef KAB_EMBEDDED
492 496
493 QString clipText, vcards; 497 QString clipText, vcards;
494 KURL::List urls; 498 KURL::List urls;
495 499
496 if ( KURLDrag::decode( e, urls) ) { 500 if ( KURLDrag::decode( e, urls) ) {
497 KURL::List::Iterator it = urls.begin(); 501 KURL::List::Iterator it = urls.begin();
498 int c = urls.count(); 502 int c = urls.count();
499 if ( c > 1 ) { 503 if ( c > 1 ) {
500 QString questionString = i18n( "Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c ); 504 QString questionString = i18n( "Import one contact into your addressbook?", "Import %n contacts into your addressbook?", c );
501 if ( KMessageBox::questionYesNo( this, questionString, i18n( "Import Contacts?" ) ) == KMessageBox::Yes ) { 505 if ( KMessageBox::questionYesNo( this, questionString, i18n( "Import Contacts?" ) ) == KMessageBox::Yes ) {
502 for ( ; it != urls.end(); ++it ) 506 for ( ; it != urls.end(); ++it )
503 emit urlDropped( *it ); 507 emit urlDropped( *it );
504 } 508 }
505 } else if ( c == 1 ) 509 } else if ( c == 1 )
506 emit urlDropped( *it ); 510 emit urlDropped( *it );
507 } else if ( KVCardDrag::decode( e, vcards ) ) { 511 } else if ( KVCardDrag::decode( e, vcards ) ) {
508 KABC::Addressee addr; 512 KABC::Addressee addr;
509 KABC::VCardConverter converter; 513 KABC::VCardConverter converter;
510 QStringList list = QStringList::split( "\r\n\r\n", vcards ); 514 QStringList list = QStringList::split( "\r\n\r\n", vcards );
511 QStringList::Iterator it; 515 QStringList::Iterator it;
512 for ( it = list.begin(); it != list.end(); ++it ) { 516 for ( it = list.begin(); it != list.end(); ++it ) {
513 if ( converter.vCardToAddressee( (*it).stripWhiteSpace(), addr ) ) { 517 if ( converter.vCardToAddressee( (*it).stripWhiteSpace(), addr ) ) {
514 KABC::Addressee a = mCore->addressBook()->findByUid( addr.uid() ); 518 KABC::Addressee a = mCore->addressBook()->findByUid( addr.uid() );
515 if ( a.isEmpty() ) { 519 if ( a.isEmpty() ) {
516 mCore->addressBook()->insertAddressee( addr ); 520 mCore->addressBook()->insertAddressee( addr );
517 emit modified(); 521 emit modified();
518 } 522 }
519 } 523 }
520 } 524 }
521 525
522 mActiveView->refresh(); 526 mActiveView->refresh();
523 } 527 }
524#else //KAB_EMBEDDED 528#else //KAB_EMBEDDED
525qDebug("ViewManager::dropped() has to be changed!!" ); 529qDebug("ViewManager::dropped() has to be changed!!" );
526#endif //KAB_EMBEDDED 530#endif //KAB_EMBEDDED
527 531
528} 532}
529 533
530void ViewManager::startDrag() 534void ViewManager::startDrag()
531{ 535{
532 kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl; 536 kdDebug(5720) << "ViewManager::startDrag: starting to drag" << endl;
533 537
534#ifndef KAB_EMBEDDED 538#ifndef KAB_EMBEDDED
535 539
536 // Get the list of all the selected addressees 540 // Get the list of all the selected addressees
537 KABC::Addressee::List addrList; 541 KABC::Addressee::List addrList;
538 QStringList uidList = selectedUids(); 542 QStringList uidList = selectedUids();
539 QStringList::Iterator iter; 543 QStringList::Iterator iter;
540 for ( iter = uidList.begin(); iter != uidList.end(); ++iter ) 544 for ( iter = uidList.begin(); iter != uidList.end(); ++iter )
541 addrList.append( mCore->addressBook()->findByUid( *iter ) ); 545 addrList.append( mCore->addressBook()->findByUid( *iter ) );
542 546
543 KMultipleDrag *drag = new KMultipleDrag( this ); 547 KMultipleDrag *drag = new KMultipleDrag( this );
544 drag->addDragObject( new QTextDrag( AddresseeUtil::addresseesToClipboard(addrList), this ) ); 548 drag->addDragObject( new QTextDrag( AddresseeUtil::addresseesToClipboard(addrList), this ) );
545 KABC::Addressee::List::Iterator it; 549 KABC::Addressee::List::Iterator it;
546 QStringList vcards; 550 QStringList vcards;
547 for ( it = addrList.begin(); it != addrList.end(); ++it ) { 551 for ( it = addrList.begin(); it != addrList.end(); ++it ) {
548 QString vcard = QString::null; 552 QString vcard = QString::null;
549 KABC::VCardConverter converter; 553 KABC::VCardConverter converter;
550 if ( converter.addresseeToVCard( *it, vcard ) ) 554 if ( converter.addresseeToVCard( *it, vcard ) )
551 vcards.append( vcard ); 555 vcards.append( vcard );
552 } 556 }
553 drag->addDragObject( new KVCardDrag( vcards.join( "\r\n" ), this ) ); 557 drag->addDragObject( new KVCardDrag( vcards.join( "\r\n" ), this ) );
554 558
555 drag->setPixmap( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop ) ); 559 drag->setPixmap( KGlobal::iconLoader()->loadIcon( "vcard", KIcon::Desktop ) );
556 drag->dragCopy(); 560 drag->dragCopy();
557 561
558#else //KAB_EMBEDDED 562#else //KAB_EMBEDDED
559qDebug("ViewManager::startDrag() has to be changed!!" ); 563qDebug("ViewManager::startDrag() has to be changed!!" );
560#endif //KAB_EMBEDDED 564#endif //KAB_EMBEDDED
561 565
562} 566}
563void ViewManager::doSearch( const QString& s,KABC::Field *field ) 567void ViewManager::doSearch( const QString& s,KABC::Field *field )
564{ 568{
565 if ( mActiveView ) 569 if ( mActiveView )
566 mActiveView->doSearch( s, field ); 570 mActiveView->doSearch( s, field );
567 571
568} 572}
569void ViewManager::setActiveFilter( int index ) 573void ViewManager::setActiveFilter( int index )
570{ 574{
571 Filter currentFilter; 575 Filter currentFilter;
572 576
573 if ( ( index - 1 ) < 0 ) 577 if ( ( index - 1 ) < 0 )
574 currentFilter = Filter(); 578 currentFilter = Filter();
575 else 579 else
576 currentFilter = mFilterList[ index - 1 ]; 580 currentFilter = mFilterList[ index - 1 ];
577 581
578 // Check if we have a view. Since the filter combo is created before 582 // Check if we have a view. Since the filter combo is created before
579 // the view, this slot could be called before there is a valid view. 583 // the view, this slot could be called before there is a valid view.
580 if ( mActiveView ) { 584 if ( mActiveView ) {
581 mActiveView->setFilter( currentFilter ); 585 mActiveView->setFilter( currentFilter );
582 mActiveView->refresh(); 586 mActiveView->refresh();
583 emit selected( QString::null ); 587 emit selected( QString::null );
584 } 588 }
585} 589}
586 590
587void ViewManager::configureFilters() 591void ViewManager::configureFilters()
588{ 592{
589 FilterDialog dlg( this ); 593 FilterDialog dlg( this );
590 594
591 dlg.setFilters( mFilterList ); 595 dlg.setFilters( mFilterList );
592 596
593 if ( dlg.exec() ) 597 if ( dlg.exec() )
594 mFilterList = dlg.filters(); 598 mFilterList = dlg.filters();
595 599
596 uint pos = mActionSelectFilter->currentItem(); 600 uint pos = mActionSelectFilter->currentItem();
597 mActionSelectFilter->setItems( filterNames() ); 601 mActionSelectFilter->setItems( filterNames() );
598 mActionSelectFilter->setCurrentItem( pos ); 602 mActionSelectFilter->setCurrentItem( pos );
599 setActiveFilter( pos ); 603 setActiveFilter( pos );
600 mActionSelectFilter->setComboWidth( 150 ); 604 int cw = 150;
605 if (QApplication::desktop()->width() == 480 )
606 cw = 0;
607 mActionSelectFilter->setComboWidth( cw );
601} 608}
602 609
603QStringList ViewManager::filterNames() const 610QStringList ViewManager::filterNames() const
604{ 611{
605 QStringList names( i18n( "No Filter" ) ); 612 QStringList names( i18n( "No Filter" ) );
606 613
607 Filter::List::ConstIterator it; 614 Filter::List::ConstIterator it;
608 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it ) 615 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it )
609 names.append( (*it).name() ); 616 names.append( (*it).name() );
610 617
611 return names; 618 return names;
612} 619}
613 620
614int ViewManager::filterPosition( const QString &name ) const 621int ViewManager::filterPosition( const QString &name ) const
615{ 622{
616 int pos = 0; 623 int pos = 0;
617 624
618 Filter::List::ConstIterator it; 625 Filter::List::ConstIterator it;
619 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos ) 626 for ( it = mFilterList.begin(); it != mFilterList.end(); ++it, ++pos )
620 if ( name == (*it).name() ) 627 if ( name == (*it).name() )
621 return pos + 1; 628 return pos + 1;
622 629
623 return 0; 630 return 0;
624} 631}
625 632
626void ViewManager::initActions() 633void ViewManager::initActions()
627{ 634{
628//US <ActionList name="view_loadedviews"/> 635//US <ActionList name="view_loadedviews"/>
629//US <Separator/> 636//US <Separator/>
630 637
631#ifdef KAB_EMBEDDED 638#ifdef KAB_EMBEDDED
632 QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu(); 639 QPopupMenu *viewmenu = (QPopupMenu*)mCore->getViewMenu();
633 QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu(); 640 QPopupMenu *settingsmenu = (QPopupMenu*)mCore->getSettingsMenu();
634 QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu(); 641 QPopupMenu *filtermenu = (QPopupMenu*)mCore->getFilterMenu();
635#endif //KAB_EMBEDDED 642#endif //KAB_EMBEDDED
636 643
637 mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" ); 644 mActionSelectView = new KSelectAction( i18n( "Select View" ), 0, mCore->actionCollection(), "select_view" );
638#if KDE_VERSION >= 309 645#if KDE_VERSION >= 309
639 mActionSelectView->setMenuAccelsEnabled( false ); 646 mActionSelectView->setMenuAccelsEnabled( false );
640#endif 647#endif
641 connect( mActionSelectView, SIGNAL( activated( const QString& ) ), 648 connect( mActionSelectView, SIGNAL( activated( const QString& ) ),
642 SLOT( setActiveView( const QString& ) ) ); 649 SLOT( setActiveView( const QString& ) ) );
643 650
644 651
645#ifdef KAB_EMBEDDED 652#ifdef KAB_EMBEDDED
646 mActionSelectView->plug(viewmenu); 653 mActionSelectView->plug(viewmenu);
647 viewmenu->insertSeparator(); 654 viewmenu->insertSeparator();
648#endif //KAB_EMBEDDED 655#endif //KAB_EMBEDDED
649 656
650 KAction *action; 657 KAction *action;
651 658
652 action = new KAction( i18n( "Modify View..." ), "configure", 0, this, 659 action = new KAction( i18n( "Modify View..." ), "configure", 0, this,
653 SLOT( editView() ), mCore->actionCollection(), "view_modify" ); 660 SLOT( editView() ), mCore->actionCollection(), "view_modify" );
654#ifndef KAB_EMBEDDED 661#ifndef KAB_EMBEDDED
655 action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) ); 662 action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) );
656#else //KAB_EMBEDDED 663#else //KAB_EMBEDDED
657 action->plug(viewmenu); 664 action->plug(viewmenu);
658#endif //KAB_EMBEDDED 665#endif //KAB_EMBEDDED
659 666
660 action = new KAction( i18n( "Add View..." ), "window_new", 0, this, 667 action = new KAction( i18n( "Add View..." ), "window_new", 0, this,
661 SLOT( addView() ), mCore->actionCollection(), "view_add" ); 668 SLOT( addView() ), mCore->actionCollection(), "view_add" );
662#ifndef KAB_EMBEDDED 669#ifndef KAB_EMBEDDED
663 action->setWhatsThis( i18n( "You can add a new view by choosing one of the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) ); 670 action->setWhatsThis( i18n( "You can add a new view by choosing one of the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) );
664#else //KAB_EMBEDDED 671#else //KAB_EMBEDDED
665 action->plug(viewmenu); 672 action->plug(viewmenu);
666#endif //KAB_EMBEDDED 673#endif //KAB_EMBEDDED
667 674
668 mActionDeleteView = new KAction( i18n( "Delete View" ), "view_remove", 0, 675 mActionDeleteView = new KAction( i18n( "Delete View" ), "view_remove", 0,
669 this, SLOT( deleteView() ), 676 this, SLOT( deleteView() ),
670 mCore->actionCollection(), "view_delete" ); 677 mCore->actionCollection(), "view_delete" );
671#ifndef KAB_EMBEDDED 678#ifndef KAB_EMBEDDED
672 mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) ); 679 mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) );
673#else //KAB_EMBEDDED 680#else //KAB_EMBEDDED
674 mActionDeleteView->plug(viewmenu); 681 mActionDeleteView->plug(viewmenu);
675 viewmenu->insertSeparator(); 682 viewmenu->insertSeparator();
676#endif //KAB_EMBEDDED 683#endif //KAB_EMBEDDED
677 684
678#ifndef KAB_EMBEDDED 685#ifndef KAB_EMBEDDED
679 action = new KAction( i18n( "Refresh View" ), "reload", 0, this, 686 action = new KAction( i18n( "Refresh View" ), "reload", 0, this,
680 SLOT( refreshView(const QString &) ), mCore->actionCollection(), 687 SLOT( refreshView(const QString &) ), mCore->actionCollection(),
681 "view_refresh" ); 688 "view_refresh" );
682 action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) ); 689 action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) );
683#else //KAB_EMBEDDED 690#else //KAB_EMBEDDED
684 action = new KAction( i18n( "Refresh View" ), "reload", 0, this, 691 action = new KAction( i18n( "Refresh View" ), "reload", 0, this,
685 SLOT( refreshView()), mCore->actionCollection(), 692 SLOT( refreshView()), mCore->actionCollection(),
686 "view_refresh" ); 693 "view_refresh" );
687 action->plug(viewmenu); 694 action->plug(viewmenu);
688 viewmenu->insertSeparator(); 695 viewmenu->insertSeparator();
689#endif //KAB_EMBEDDED 696#endif //KAB_EMBEDDED
690 697
691 action = new KAction( i18n( "Edit &Filters..." ), "filter", 0, this, 698 action = new KAction( i18n( "Edit &Filters..." ), "filter", 0, this,
692 SLOT( configureFilters() ), mCore->actionCollection(), 699 SLOT( configureFilters() ), mCore->actionCollection(),
693 "options_edit_filters" ); 700 "options_edit_filters" );
694 701
695 mActionSelectFilter = new KSelectAction( i18n( "Select Filter" ), "filter", mCore->actionCollection(), "select_filter" ); 702 mActionSelectFilter = new KSelectAction( i18n( "Select Filter" ), "filter", mCore->actionCollection(), "select_filter" );
696#if KDE_VERSION >= 309 703#if KDE_VERSION >= 309
697 mActionSelectFilter->setMenuAccelsEnabled( false ); 704 mActionSelectFilter->setMenuAccelsEnabled( false );
698#endif 705#endif
699 connect( mActionSelectFilter, SIGNAL( activated( int ) ), 706 connect( mActionSelectFilter, SIGNAL( activated( int ) ),
700 SLOT( setActiveFilter( int ) ) ); 707 SLOT( setActiveFilter( int ) ) );
701 708
702#ifdef KAB_EMBEDDED 709#ifdef KAB_EMBEDDED
703 action->plug(settingsmenu); 710 action->plug(settingsmenu);
704 mActionSelectFilter->plug(viewmenu); 711 mActionSelectFilter->plug(viewmenu);
705#endif //KAB_EMBEDDED 712#endif //KAB_EMBEDDED
706 713
707} 714}
708 715
709void ViewManager::initGUI() 716void ViewManager::initGUI()
710{ 717{
711 QHBoxLayout *layout = new QHBoxLayout( this, 0, 0 ); 718 QHBoxLayout *layout = new QHBoxLayout( this, 0, 0 );
712 mViewWidgetStack = new QWidgetStack( this ); 719 mViewWidgetStack = new QWidgetStack( this );
713 layout->addWidget( mViewWidgetStack ); 720 layout->addWidget( mViewWidgetStack );
714} 721}
715 722
716#ifndef KAB_EMBEDDED 723#ifndef KAB_EMBEDDED
717#include "viewmanager.moc" 724#include "viewmanager.moc"
718#endif //KAB_EMBEDDED 725#endif //KAB_EMBEDDED