summaryrefslogtreecommitdiffabout
path: root/kaddressbook/viewmanager.cpp
Unidiff
Diffstat (limited to 'kaddressbook/viewmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/viewmanager.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index c738ad8..b5d9419 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -220,48 +220,51 @@ void ViewManager::setActiveView( const QString &name )
220 return; 220 return;
221 221
222 // At this point we know the view that should be active is not 222 // At this point we know the view that should be active is not
223 // currently active. We will try to find the new on in the list. If 223 // currently active. We will try to find the new on in the list. If
224 // we can't find it, it means it hasn't been instantiated, so we will 224 // we can't find it, it means it hasn't been instantiated, so we will
225 // create it on demand. 225 // create it on demand.
226 226
227 view = mViewDict.find( name ); 227 view = mViewDict.find( name );
228 228
229 // Check if we found the view. If we didn't, then we need to create it 229 // Check if we found the view. If we didn't, then we need to create it
230 if ( view == 0 ) { 230 if ( view == 0 ) {
231 KConfig *config = mCore->config(); 231 KConfig *config = mCore->config();
232 232
233 KConfigGroupSaver saver( config, name ); 233 KConfigGroupSaver saver( config, name );
234 234
235 QString type = config->readEntry( "Type", "Table" ); 235 QString type = config->readEntry( "Type", "Table" );
236 236
237 kdDebug(5720) << "ViewManager::setActiveView: creating view - " << name << endl; 237 kdDebug(5720) << "ViewManager::setActiveView: creating view - " << name << endl;
238 238
239 ViewFactory *factory = mViewFactoryDict.find( type ); 239 ViewFactory *factory = mViewFactoryDict.find( type );
240 if ( factory ) 240 if ( factory )
241 view = factory->view( mCore->addressBook(), mViewWidgetStack ); 241 view = factory->view( mCore->addressBook(), mViewWidgetStack );
242 242
243 if ( view ) { 243 if ( view ) {
244 if ( !mViewNameList.contains( name ) ) {
245 mViewNameList.append( name );
246 }
244 view->setCaption( name ); 247 view->setCaption( name );
245 mViewDict.insert( name, view ); 248 mViewDict.insert( name, view );
246//US my version needs an int as second parameter to addWidget 249//US my version needs an int as second parameter to addWidget
247 mViewWidgetStack->addWidget( view, -1 ); 250 mViewWidgetStack->addWidget( view, -1 );
248 view->readConfig( config ); 251 view->readConfig( config );
249 252
250 // The manager just relays the signals 253 // The manager just relays the signals
251 connect( view, SIGNAL( selected( const QString& ) ), 254 connect( view, SIGNAL( selected( const QString& ) ),
252 SIGNAL( selected( const QString & ) ) ); 255 SIGNAL( selected( const QString & ) ) );
253 connect( view, SIGNAL( executed( const QString& ) ), 256 connect( view, SIGNAL( executed( const QString& ) ),
254 SIGNAL( executed( const QString& ) ) ); 257 SIGNAL( executed( const QString& ) ) );
255 258
256 connect( view, SIGNAL( deleteRequest( ) ), 259 connect( view, SIGNAL( deleteRequest( ) ),
257 SIGNAL( deleteRequest( ) ) ); 260 SIGNAL( deleteRequest( ) ) );
258 261
259 connect( view, SIGNAL( modified() ), SIGNAL( modified() ) ); 262 connect( view, SIGNAL( modified() ), SIGNAL( modified() ) );
260 connect( view, SIGNAL( dropped( QDropEvent* ) ), 263 connect( view, SIGNAL( dropped( QDropEvent* ) ),
261 SLOT( dropped( QDropEvent* ) ) ); 264 SLOT( dropped( QDropEvent* ) ) );
262 connect( view, SIGNAL( startDrag() ), SLOT( startDrag() ) ); 265 connect( view, SIGNAL( startDrag() ), SLOT( startDrag() ) );
263 } 266 }
264 } 267 }
265 268
266 // If we found or created the view, raise it and refresh it 269 // If we found or created the view, raise it and refresh it
267 if ( view ) { 270 if ( view ) {
@@ -269,48 +272,52 @@ void ViewManager::setActiveView( const QString &name )
269 mViewWidgetStack->raiseWidget( view ); 272 mViewWidgetStack->raiseWidget( view );
270 // Set the proper filter in the view. By setting the combo 273 // Set the proper filter in the view. By setting the combo
271 // box, the activated slot will be called, which will push 274 // box, the activated slot will be called, which will push
272 // the filter to the view and refresh it. 275 // the filter to the view and refresh it.
273 276
274 if ( view->defaultFilterType() == KAddressBookView::None ) { 277 if ( view->defaultFilterType() == KAddressBookView::None ) {
275 278
276 mActionSelectFilter->setCurrentItem( 0 ); 279 mActionSelectFilter->setCurrentItem( 0 );
277 setActiveFilter( 0 ); 280 setActiveFilter( 0 );
278 } else if ( view->defaultFilterType() == KAddressBookView::Active ) { 281 } else if ( view->defaultFilterType() == KAddressBookView::Active ) {
279 setActiveFilter( mActionSelectFilter->currentItem() ); 282 setActiveFilter( mActionSelectFilter->currentItem() );
280 } else { 283 } else {
281 uint pos = filterPosition( view->defaultFilterName() ); 284 uint pos = filterPosition( view->defaultFilterName() );
282 mActionSelectFilter->setCurrentItem( pos ); 285 mActionSelectFilter->setCurrentItem( pos );
283 setActiveFilter( pos ); 286 setActiveFilter( pos );
284 } 287 }
285//US qDebug("ViewManager::setActiveView 6" ); 288//US qDebug("ViewManager::setActiveView 6" );
286 289
287 // Update the inc search widget to show the fields in the new active 290 // Update the inc search widget to show the fields in the new active
288 // view. 291 // view.
289 mCore->setSearchFields( mActiveView->fields() ); 292 mCore->setSearchFields( mActiveView->fields() );
290 293
291//US performance optimization. setActiveFilter calls also mActiveView->refresh() 294//US performance optimization. setActiveFilter calls also mActiveView->refresh()
292//US mActiveView->refresh(); 295//US mActiveView->refresh();
296
297 mActionSelectView->setItems( mViewNameList );
298 mActionSelectView->setCurrentItem( mViewNameList.findIndex( mActiveView->caption() ) );
299
293 } 300 }
294 else 301 else
295 { 302 {
296 qDebug("ViewManager::setActiveView: unable to find view" ); 303 qDebug("ViewManager::setActiveView: unable to find view" );
297 } 304 }
298} 305}
299 306
300//US added another method with no parameter, since my moc compiler does not support default parameters. 307//US added another method with no parameter, since my moc compiler does not support default parameters.
301void ViewManager::refreshView() 308void ViewManager::refreshView()
302{ 309{
303 refreshView( QString::null ); 310 refreshView( QString::null );
304} 311}
305 312
306void ViewManager::refreshView( const QString &uid ) 313void ViewManager::refreshView( const QString &uid )
307{ 314{
308 if ( mActiveView ) 315 if ( mActiveView )
309 mActiveView->refresh( uid ); 316 mActiveView->refresh( uid );
310} 317}
311 318
312void ViewManager::setFocusAV() 319void ViewManager::setFocusAV()
313{ 320{
314 if ( mActiveView ) 321 if ( mActiveView )
315 mActiveView->setFocusAV(); 322 mActiveView->setFocusAV();
316} 323}