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 45c7b55..c93d51a 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -85,192 +85,199 @@ ViewManager::~ViewManager()
85 unloadViews(); 85 unloadViews();
86 mViewFactoryDict.clear(); 86 mViewFactoryDict.clear();
87} 87}
88 88
89void ViewManager::restoreSettings() 89void ViewManager::restoreSettings()
90{ 90{
91 mViewNameList = KABPrefs::instance()->mViewNames; 91 mViewNameList = KABPrefs::instance()->mViewNames;
92 QString activeViewName = KABPrefs::instance()->mCurrentView; 92 QString activeViewName = KABPrefs::instance()->mCurrentView;
93 93
94 mActionSelectView->setItems( mViewNameList ); 94 mActionSelectView->setItems( mViewNameList );
95 95
96 // Filter 96 // Filter
97 mFilterList = Filter::restore( mCore->config(), "Filter" ); 97 mFilterList = Filter::restore( mCore->config(), "Filter" );
98 mActionSelectFilter->setItems( filterNames() ); 98 mActionSelectFilter->setItems( filterNames() );
99 mActionSelectFilter->setCurrentItem( KABPrefs::instance()->mCurrentFilter ); 99 mActionSelectFilter->setCurrentItem( KABPrefs::instance()->mCurrentFilter );
100 100
101 // Tell the views to reread their config, since they may have 101 // Tell the views to reread their config, since they may have
102 // been modified by global settings 102 // been modified by global settings
103 QString _oldgroup = mCore->config()->group(); 103 QString _oldgroup = mCore->config()->group();
104 104
105 QDictIterator<KAddressBookView> it( mViewDict ); 105 QDictIterator<KAddressBookView> it( mViewDict );
106 for ( it.toFirst(); it.current(); ++it ) { 106 for ( it.toFirst(); it.current(); ++it ) {
107 KConfigGroupSaver saver( mCore->config(), it.currentKey() ); 107 KConfigGroupSaver saver( mCore->config(), it.currentKey() );
108 it.current()->readConfig( mCore->config() ); 108 it.current()->readConfig( mCore->config() );
109 } 109 }
110 setActiveView( activeViewName ); 110 setActiveView( activeViewName );
111 111
112 mActionDeleteView->setEnabled( mViewNameList.count() > 1 ); 112 mActionDeleteView->setEnabled( mViewNameList.count() > 1 );
113} 113}
114 114
115void ViewManager::saveSettings() 115void ViewManager::saveSettings()
116{ 116{
117 QString _oldgroup = mCore->config()->group(); 117 QString _oldgroup = mCore->config()->group();
118 118
119 QDictIterator<KAddressBookView> it( mViewDict ); 119 QDictIterator<KAddressBookView> it( mViewDict );
120 for ( it.toFirst(); it.current(); ++it ) { 120 for ( it.toFirst(); it.current(); ++it ) {
121 KConfigGroupSaver saver( mCore->config(), it.currentKey() ); 121 KConfigGroupSaver saver( mCore->config(), it.currentKey() );
122#ifdef DESKTOP_VERSION 122#ifdef DESKTOP_VERSION
123 (*it)->writeConfig( mCore->config() ); 123 (*it)->writeConfig( mCore->config() );
124#else 124#else
125 (*it).writeConfig( mCore->config() ); 125 (*it).writeConfig( mCore->config() );
126#endif 126#endif
127 } 127 }
128 128
129 Filter::save( mCore->config(), "Filter", mFilterList ); 129 Filter::save( mCore->config(), "Filter", mFilterList );
130 KABPrefs::instance()->mCurrentFilter = mActionSelectFilter->currentItem(); 130 KABPrefs::instance()->mCurrentFilter = mActionSelectFilter->currentItem();
131 131
132 // write the view name list 132 // write the view name list
133 KABPrefs::instance()->mViewNames = mViewNameList; 133 KABPrefs::instance()->mViewNames = mViewNameList;
134 KABPrefs::instance()->mCurrentView = mActiveView->caption(); 134 KABPrefs::instance()->mCurrentView = mActiveView->caption();
135 135
136} 136}
137 137
138QStringList ViewManager::selectedUids() const 138QStringList ViewManager::selectedUids() const
139{ 139{
140 if ( mActiveView ) 140 if ( mActiveView )
141 return mActiveView->selectedUids(); 141 return mActiveView->selectedUids();
142 else 142 else
143 return QStringList(); 143 return QStringList();
144} 144}
145 145
146QStringList ViewManager::selectedEmails() const 146QStringList ViewManager::selectedEmails() const
147{ 147{
148 if ( mActiveView ) 148 if ( mActiveView )
149 return mActiveView->selectedEmails(); 149 return mActiveView->selectedEmails();
150 else 150 else
151 return QStringList(); 151 return QStringList();
152} 152}
153 153
154KABC::Addressee::List ViewManager::selectedAddressees() const 154KABC::Addressee::List ViewManager::selectedAddressees() const
155{ 155{
156 KABC::Addressee::List list; 156 KABC::Addressee::List list;
157 if ( mActiveView ) { 157 if ( mActiveView ) {
158 QStringList uids = mActiveView->selectedUids(); 158 QStringList uids = mActiveView->selectedUids();
159 QStringList::Iterator it; 159 QStringList::Iterator it;
160 for ( it = uids.begin(); it != uids.end(); ++it ) { 160 for ( it = uids.begin(); it != uids.end(); ++it ) {
161 KABC::Addressee addr = mCore->addressBook()->findByUid( *it ); 161 KABC::Addressee addr = mCore->addressBook()->findByUid( *it );
162 if ( !addr.isEmpty() ) 162 if ( !addr.isEmpty() )
163 list.append( addr ); 163 list.append( addr );
164 } 164 }
165 } 165 }
166 166
167 return list; 167 return list;
168} 168}
169//US added another method with no parameter, since my moc compiler does not support default parameters. 169//US added another method with no parameter, since my moc compiler does not support default parameters.
170void ViewManager::setSelected() 170void ViewManager::setSelected()
171{ 171{
172 setSelected( QString::null, true ); 172 setSelected( QString::null, true );
173} 173}
174 174
175void ViewManager::setSelected( const QString &uid, bool selected ) 175void ViewManager::setSelected( const QString &uid, bool selected )
176{ 176{
177 if ( mActiveView ) 177 if ( mActiveView )
178 mActiveView->setSelected( uid, selected ); 178 mActiveView->setSelected( uid, selected );
179} 179}
180 180
181void ViewManager::setListSelected(QStringList list)
182{
183 int i, count = list.count();
184 for ( i = 0; i < count;++i )
185 setSelected( list[i], true );
186
187}
181void ViewManager::unloadViews() 188void ViewManager::unloadViews()
182{ 189{
183 mViewDict.clear(); 190 mViewDict.clear();
184 mActiveView = 0; 191 mActiveView = 0;
185} 192}
186 193
187void ViewManager::setActiveView( const QString &name ) 194void ViewManager::setActiveView( const QString &name )
188{ 195{
189 KAddressBookView *view = 0; 196 KAddressBookView *view = 0;
190 197
191 // Check that this isn't the same as the current active view 198 // Check that this isn't the same as the current active view
192 if ( mActiveView && ( mActiveView->caption() == name ) ) 199 if ( mActiveView && ( mActiveView->caption() == name ) )
193 return; 200 return;
194 201
195 // At this point we know the view that should be active is not 202 // At this point we know the view that should be active is not
196 // currently active. We will try to find the new on in the list. If 203 // currently active. We will try to find the new on in the list. If
197 // we can't find it, it means it hasn't been instantiated, so we will 204 // we can't find it, it means it hasn't been instantiated, so we will
198 // create it on demand. 205 // create it on demand.
199 206
200 view = mViewDict.find( name ); 207 view = mViewDict.find( name );
201 208
202 // Check if we found the view. If we didn't, then we need to create it 209 // Check if we found the view. If we didn't, then we need to create it
203 if ( view == 0 ) { 210 if ( view == 0 ) {
204 KConfig *config = mCore->config(); 211 KConfig *config = mCore->config();
205 212
206 KConfigGroupSaver saver( config, name ); 213 KConfigGroupSaver saver( config, name );
207 214
208 QString type = config->readEntry( "Type", "Table" ); 215 QString type = config->readEntry( "Type", "Table" );
209 216
210 kdDebug(5720) << "ViewManager::setActiveView: creating view - " << name << endl; 217 kdDebug(5720) << "ViewManager::setActiveView: creating view - " << name << endl;
211 218
212 ViewFactory *factory = mViewFactoryDict.find( type ); 219 ViewFactory *factory = mViewFactoryDict.find( type );
213 if ( factory ) 220 if ( factory )
214 view = factory->view( mCore->addressBook(), mViewWidgetStack ); 221 view = factory->view( mCore->addressBook(), mViewWidgetStack );
215 222
216 if ( view ) { 223 if ( view ) {
217 view->setCaption( name ); 224 view->setCaption( name );
218 mViewDict.insert( name, view ); 225 mViewDict.insert( name, view );
219//US my version needs an int as second parameter to addWidget 226//US my version needs an int as second parameter to addWidget
220 mViewWidgetStack->addWidget( view, -1 ); 227 mViewWidgetStack->addWidget( view, -1 );
221 view->readConfig( config ); 228 view->readConfig( config );
222 229
223 // The manager just relays the signals 230 // The manager just relays the signals
224 connect( view, SIGNAL( selected( const QString& ) ), 231 connect( view, SIGNAL( selected( const QString& ) ),
225 SIGNAL( selected( const QString & ) ) ); 232 SIGNAL( selected( const QString & ) ) );
226 connect( view, SIGNAL( executed( const QString& ) ), 233 connect( view, SIGNAL( executed( const QString& ) ),
227 SIGNAL( executed( const QString& ) ) ); 234 SIGNAL( executed( const QString& ) ) );
228 235
229 connect( view, SIGNAL( deleteRequest( ) ), 236 connect( view, SIGNAL( deleteRequest( ) ),
230 SIGNAL( deleteRequest( ) ) ); 237 SIGNAL( deleteRequest( ) ) );
231 238
232 connect( view, SIGNAL( modified() ), SIGNAL( modified() ) ); 239 connect( view, SIGNAL( modified() ), SIGNAL( modified() ) );
233 connect( view, SIGNAL( dropped( QDropEvent* ) ), 240 connect( view, SIGNAL( dropped( QDropEvent* ) ),
234 SLOT( dropped( QDropEvent* ) ) ); 241 SLOT( dropped( QDropEvent* ) ) );
235 connect( view, SIGNAL( startDrag() ), SLOT( startDrag() ) ); 242 connect( view, SIGNAL( startDrag() ), SLOT( startDrag() ) );
236 } 243 }
237 } 244 }
238 245
239 // If we found or created the view, raise it and refresh it 246 // If we found or created the view, raise it and refresh it
240 if ( view ) { 247 if ( view ) {
241 mActiveView = view; 248 mActiveView = view;
242 mViewWidgetStack->raiseWidget( view ); 249 mViewWidgetStack->raiseWidget( view );
243 // Set the proper filter in the view. By setting the combo 250 // Set the proper filter in the view. By setting the combo
244 // box, the activated slot will be called, which will push 251 // box, the activated slot will be called, which will push
245 // the filter to the view and refresh it. 252 // the filter to the view and refresh it.
246 253
247 if ( view->defaultFilterType() == KAddressBookView::None ) { 254 if ( view->defaultFilterType() == KAddressBookView::None ) {
248 255
249 mActionSelectFilter->setCurrentItem( 0 ); 256 mActionSelectFilter->setCurrentItem( 0 );
250 setActiveFilter( 0 ); 257 setActiveFilter( 0 );
251 } else if ( view->defaultFilterType() == KAddressBookView::Active ) { 258 } else if ( view->defaultFilterType() == KAddressBookView::Active ) {
252 setActiveFilter( mActionSelectFilter->currentItem() ); 259 setActiveFilter( mActionSelectFilter->currentItem() );
253 } else { 260 } else {
254 uint pos = filterPosition( view->defaultFilterName() ); 261 uint pos = filterPosition( view->defaultFilterName() );
255 mActionSelectFilter->setCurrentItem( pos ); 262 mActionSelectFilter->setCurrentItem( pos );
256 setActiveFilter( pos ); 263 setActiveFilter( pos );
257 } 264 }
258//US qDebug("ViewManager::setActiveView 6" ); 265//US qDebug("ViewManager::setActiveView 6" );
259 266
260 // Update the inc search widget to show the fields in the new active 267 // Update the inc search widget to show the fields in the new active
261 // view. 268 // view.
262 mCore->setSearchFields( mActiveView->fields() ); 269 mCore->setSearchFields( mActiveView->fields() );
263 270
264//US performance optimization. setActiveFilter calls also mActiveView->refresh() 271//US performance optimization. setActiveFilter calls also mActiveView->refresh()
265//US mActiveView->refresh(); 272//US mActiveView->refresh();
266 273
267 } 274 }
268 else 275 else
269 { 276 {
270 qDebug("ViewManager::setActiveView: unable to find view" ); 277 qDebug("ViewManager::setActiveView: unable to find view" );
271 kdDebug(5720) << "ViewManager::setActiveView: unable to find view\n"; 278 kdDebug(5720) << "ViewManager::setActiveView: unable to find view\n";
272 } 279 }
273} 280}
274 281
275//US added another method with no parameter, since my moc compiler does not support default parameters. 282//US added another method with no parameter, since my moc compiler does not support default parameters.
276void ViewManager::refreshView() 283void ViewManager::refreshView()