summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koimportoldialog.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/korganizer/koimportoldialog.cpp b/korganizer/koimportoldialog.cpp
index cc13395..c4d5f06 100644
--- a/korganizer/koimportoldialog.cpp
+++ b/korganizer/koimportoldialog.cpp
@@ -159,194 +159,194 @@ void KOImportOLdialog::addFolder(OLEListViewItem* iParent, LPDISPATCH dispParent
159 hChild->setEnabled( false ); 159 hChild->setEnabled( false );
160 QString ts; 160 QString ts;
161 switch( iType ) { 161 switch( iType ) {
162 case 0: 162 case 0:
163 ts = i18n("Mail"); 163 ts = i18n("Mail");
164 break; 164 break;
165 case 1: 165 case 1:
166 ts = i18n("Calendar"); 166 ts = i18n("Calendar");
167 break; 167 break;
168 case 2: 168 case 2:
169 ts = i18n("Contacts"); 169 ts = i18n("Contacts");
170 break; 170 break;
171 case 3: 171 case 3:
172 ts = i18n("Todos"); 172 ts = i18n("Todos");
173 break; 173 break;
174 case 4: 174 case 4:
175 ts = i18n("Journals"); 175 ts = i18n("Journals");
176 break; 176 break;
177 case 5: 177 case 5:
178 ts = i18n("Notes"); 178 ts = i18n("Notes");
179 break; 179 break;
180 default: 180 default:
181 ts = i18n("Unknown"); 181 ts = i18n("Unknown");
182 } 182 }
183 hChild->setText( 1,ts); 183 hChild->setText( 1,ts);
184 hChild->setData( (DWORD) mfChild.m_lpDispatch ); 184 hChild->setData( (DWORD) mfChild.m_lpDispatch );
185 mfChild.m_lpDispatch->AddRef(); 185 mfChild.m_lpDispatch->AddRef();
186 addFolder(hChild, mfChild.m_lpDispatch); 186 addFolder(hChild, mfChild.m_lpDispatch);
187 } 187 }
188} 188}
189 189
190void KOImportOLdialog::slotApply() 190void KOImportOLdialog::slotApply()
191{ 191{
192 importedItems = 0; 192 importedItems = 0;
193 OLEListViewItem* child = (OLEListViewItem*) mListView->firstChild(); 193 OLEListViewItem* child = (OLEListViewItem*) mListView->firstChild();
194 while ( child ) { 194 while ( child ) {
195 if ( child->isOn()&& child->data() ) 195 if ( child->isOn()&& child->data() )
196 readCalendarData( child->data() ); 196 readCalendarData( child->data() );
197 child = (OLEListViewItem*) child->itemBelow(); 197 child = (OLEListViewItem*) child->itemBelow();
198 } 198 }
199 QString mes = i18n("Importing complete.\n\n%1 items imported.").arg( importedItems); 199 QString mes = i18n("Importing complete.\n\n%1 items imported.").arg( importedItems);
200 KMessageBox::information(this,mes); 200 KMessageBox::information(this,mes);
201} 201}
202void KOImportOLdialog::readCalendarData( DWORD folder ) 202void KOImportOLdialog::readCalendarData( DWORD folder )
203{ 203{
204 204
205 LPDISPATCH dispItem = (LPDISPATCH)folder; 205 LPDISPATCH dispItem = (LPDISPATCH)folder;
206 dispItem->AddRef(); 206 dispItem->AddRef();
207 MAPIFolder mf(dispItem); 207 MAPIFolder mf(dispItem);
208 mf.m_lpDispatch->AddRef(); 208 mf.m_lpDispatch->AddRef();
209 _Items folderItems; 209 _Items folderItems;
210 _variant_t indx((long)0); 210 _variant_t indx((long)0);
211 LPDISPATCH itm; 211 LPDISPATCH itm;
212 int i; 212 int i;
213 folderItems = mf.GetItems(); 213 folderItems = mf.GetItems();
214 QProgressBar bar( folderItems.GetCount(),0 ); 214 QProgressBar bar( folderItems.GetCount(),0 );
215 bar.setCaption (i18n("Importing - close to abort!") ); 215 bar.setCaption (i18n("Importing - close to abort!") );
216 int h = bar.sizeHint().height() ; 216 int h = bar.sizeHint().height() ;
217 int w = 300; 217 int w = 300;
218 int dw = QApplication::desktop()->width(); 218 int dw = QApplication::desktop()->width();
219 int dh = QApplication::desktop()->height(); 219 int dh = QApplication::desktop()->height();
220 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 220 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
221 bar.show(); 221 bar.show();
222 for(i=1; i <= folderItems.GetCount(); ++i) 222 for(i=1; i <= folderItems.GetCount(); ++i)
223 { 223 {
224 qApp->processEvents(); 224 qApp->processEvents();
225 if ( ! bar.isVisible() ) 225 if ( ! bar.isVisible() )
226 return ; 226 return ;
227 bar.setProgress( i ); 227 bar.setProgress( i );
228 indx = (long)i; 228 indx = (long)i;
229 itm = folderItems.Item(indx.Detach()); 229 itm = folderItems.Item(indx.Detach());
230 _AppointmentItem * pItem = (_AppointmentItem *)&itm; 230 _AppointmentItem * pItem = (_AppointmentItem *)&itm;
231 ol2kopiCalendar( pItem ); 231 ol2kopiCalendar( pItem );
232 itm->Release(); 232 itm->Release();
233 } 233 }
234} 234}
235void KOImportOLdialog::slotOk() 235void KOImportOLdialog::slotOk()
236{ 236{
237 QDialog::accept(); 237 QDialog::accept();
238} 238}
239 239
240void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRecurrence ) 240void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRecurrence )
241{ 241{
242 KCal::Event* event = new KCal::Event(); 242 KCal::Event* event = new KCal::Event();
243 if ( aItem->GetAllDayEvent() ){ 243 if ( aItem->GetAllDayEvent() ){
244 event->setDtStart( QDateTime( mDdate2Qdtr( aItem->GetStart()).date(),QTime(0,0,0 ) )); 244 event->setDtStart( QDateTime( mDdate2Qdtr( aItem->GetStart()).date(),QTime(0,0,0 ) ));
245 event->setDtEnd( QDateTime( mDdate2Qdtr( aItem->GetEnd()) .date(),QTime(0,0,0 )).addDays(-1)); 245 event->setDtEnd( QDateTime( mDdate2Qdtr( aItem->GetEnd()) .date(),QTime(0,0,0 )).addDays(-1));
246 event->setFloats( true ); 246 event->setFloats( true );
247 } else { 247 } else {
248 event->setDtStart( mDdate2Qdtr( aItem->GetStart()) ); 248 event->setDtStart( mDdate2Qdtr( aItem->GetStart()) );
249 event->setDtEnd( mDdate2Qdtr( aItem->GetEnd()) ); 249 event->setDtEnd( mDdate2Qdtr( aItem->GetEnd()) );
250 event->setFloats( false ); 250 event->setFloats( false );
251 } 251 }
252 event->setSummary( QString::fromUcs2( aItem->GetSubject().GetBuffer()) ); 252 event->setSummary( QString::fromUcs2( aItem->GetSubject().GetBuffer()) );
253 event->setLocation( QString::fromUcs2( aItem->GetLocation().GetBuffer()) ); 253 event->setLocation( QString::fromUcs2( aItem->GetLocation().GetBuffer()) );
254 event->setDescription( QString::fromUcs2( aItem->GetBody().GetBuffer()).replace( QRegExp("\\r"), "") ); 254 event->setDescription( QString::fromUcs2( aItem->GetBody().GetBuffer()).replace( QRegExp("\\r"), "") );
255 QString cat = QString::fromUcs2( aItem->GetCategories().GetBuffer()); 255 QString cat = QString::fromUcs2( aItem->GetCategories().GetBuffer()).replace( QRegExp("; "), ";");
256 event->setCategories( QStringList::split( ";", cat )); 256 event->setCategories( QStringList::split( ";", cat ) );
257 if ( aItem->GetReminderSet() ) { 257 if ( aItem->GetReminderSet() ) {
258 event->clearAlarms(); 258 event->clearAlarms();
259 Alarm* alarm = event->newAlarm(); 259 Alarm* alarm = event->newAlarm();
260 alarm->setStartOffset( -aItem->GetReminderMinutesBeforeStart()*60 ); 260 alarm->setStartOffset( -aItem->GetReminderMinutesBeforeStart()*60 );
261 alarm->setEnabled( true ); 261 alarm->setEnabled( true );
262 if ( aItem->GetReminderPlaySound() ) { 262 if ( aItem->GetReminderPlaySound() ) {
263 alarm->setType( Alarm::Audio ); 263 alarm->setType( Alarm::Audio );
264 alarm->setAudioFile( QString::fromUcs2( aItem->GetReminderSoundFile().GetBuffer())); 264 alarm->setAudioFile( QString::fromUcs2( aItem->GetReminderSoundFile().GetBuffer()));
265 } 265 }
266 else 266 else
267 alarm->setType( Alarm::Display ); 267 alarm->setType( Alarm::Display );
268 alarm->setRepeatCount( aItem->GetReplyTime() ); 268 alarm->setRepeatCount( aItem->GetReplyTime() );
269 } 269 }
270 // OL :pub 0 - pers 1 - priv 2 - conf 3 270 // OL :pub 0 - pers 1 - priv 2 - conf 3
271 // KO : pub 0 - priv 1 - conf 2 271 // KO : pub 0 - priv 1 - conf 2
272 int sec = aItem->GetSensitivity() ; 272 int sec = aItem->GetSensitivity() ;
273 if ( sec > 1 )// mapping pers -> private 273 if ( sec > 1 )// mapping pers -> private
274 --sec; 274 --sec;
275 event->setSecrecy( sec ); 275 event->setSecrecy( sec );
276 if ( aItem->GetBusyStatus() == 0 ) 276 if ( aItem->GetBusyStatus() == 0 )
277 event->setTransparency( Event::Transparent);// OL free 277 event->setTransparency( Event::Transparent);// OL free
278 else 278 else
279 event->setTransparency( Event::Opaque);//OL all other 279 event->setTransparency( Event::Opaque);//OL all other
280 280
281 if ( aItem->GetIsRecurring() && computeRecurrence ) { //recur 281 if ( aItem->GetIsRecurring() && computeRecurrence ) { //recur
282 282
283 RecurrencePattern recpat = aItem->GetRecurrencePattern(); 283 RecurrencePattern recpat = aItem->GetRecurrencePattern();
284 284
285 QDate startDate = mDdate2Qdtr(recpat.GetPatternStartDate()).date(); 285 QDate startDate = mDdate2Qdtr(recpat.GetPatternStartDate()).date();
286 int freq = recpat.GetInterval(); 286 int freq = recpat.GetInterval();
287 287
288 bool hasEndDate = !recpat.GetNoEndDate(); 288 bool hasEndDate = !recpat.GetNoEndDate();
289 QDate endDate = mDdate2Qdtr(recpat.GetPatternEndDate()).date(); 289 QDate endDate = mDdate2Qdtr(recpat.GetPatternEndDate()).date();
290 QBitArray weekDays( 7 ); 290 QBitArray weekDays( 7 );
291 weekDays.fill(false ); 291 weekDays.fill(false );
292 uint weekDaysNum = recpat.GetDayOfWeekMask(); 292 uint weekDaysNum = recpat.GetDayOfWeekMask();
293 int i; 293 int i;
294 int bb = 2; 294 int bb = 2;
295 for( i = 1; i <= 6; ++i ) { 295 for( i = 1; i <= 6; ++i ) {
296 weekDays.setBit( i - 1, ( bb & weekDaysNum )); 296 weekDays.setBit( i - 1, ( bb & weekDaysNum ));
297 bb = 4 << (i-1); 297 bb = 4 << (i-1);
298 //qDebug(" %d bit %d ",i-1,weekDays.at(i-1) ); 298 //qDebug(" %d bit %d ",i-1,weekDays.at(i-1) );
299 } 299 }
300 if ( 1 & weekDaysNum) 300 if ( 1 & weekDaysNum)
301 weekDays.setBit( 6 ); 301 weekDays.setBit( 6 );
302 // int pos = 1;// pending 302 // int pos = 1;// pending
303 303
304 Recurrence *r = event->recurrence(); 304 Recurrence *r = event->recurrence();
305 int rtype = recpat.GetRecurrenceType(); 305 int rtype = recpat.GetRecurrenceType();
306 //recurrence types are: 306 //recurrence types are:
307 /* 307 /*
308 olRecursDaily(0) 308 olRecursDaily(0)
309 olRecursWeekly(1) 309 olRecursWeekly(1)
310 olRecursMonthly(2) 310 olRecursMonthly(2)
311 olRecursMonthNth(3) 311 olRecursMonthNth(3)
312 olRecursYearly(5) 312 olRecursYearly(5)
313 olRecursYearNth(6) 313 olRecursYearNth(6)
314 */ 314 */
315 315
316 int duration = recpat.GetOccurrences(); 316 int duration = recpat.GetOccurrences();
317 if ( !hasEndDate ) 317 if ( !hasEndDate )
318 duration = -1; 318 duration = -1;
319 319
320 //LPDISPATCH RecurrencePattern::GetExceptions() 320 //LPDISPATCH RecurrencePattern::GetExceptions()
321 //long RecurrencePattern::GetMonthOfYear() 321 //long RecurrencePattern::GetMonthOfYear()
322 if ( rtype == 0 ) { 322 if ( rtype == 0 ) {
323 if ( hasEndDate ) r->setDaily( freq, endDate ); 323 if ( hasEndDate ) r->setDaily( freq, endDate );
324 else r->setDaily( freq, duration ); 324 else r->setDaily( freq, duration );
325 } else if ( rtype == 1 ) { 325 } else if ( rtype == 1 ) {
326 if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate ); 326 if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate );
327 else r->setWeekly( freq, weekDays, duration ); 327 else r->setWeekly( freq, weekDays, duration );
328 } else if ( rtype == 2 ) { 328 } else if ( rtype == 2 ) {
329 if ( hasEndDate ) 329 if ( hasEndDate )
330 r->setMonthly( Recurrence::rMonthlyDay, freq, endDate ); 330 r->setMonthly( Recurrence::rMonthlyDay, freq, endDate );
331 else 331 else
332 r->setMonthly( Recurrence::rMonthlyDay, freq, duration ); 332 r->setMonthly( Recurrence::rMonthlyDay, freq, duration );
333 //r->addMonthlyDay( startDate.day() ); 333 //r->addMonthlyDay( startDate.day() );
334 r->addMonthlyDay( recpat.GetDayOfMonth() ); 334 r->addMonthlyDay( recpat.GetDayOfMonth() );
335 } else if ( rtype == 3 ) { 335 } else if ( rtype == 3 ) {
336 if ( hasEndDate ) 336 if ( hasEndDate )
337 r->setMonthly( Recurrence::rMonthlyPos, freq, endDate ); 337 r->setMonthly( Recurrence::rMonthlyPos, freq, endDate );
338 else 338 else
339 r->setMonthly( Recurrence::rMonthlyPos, freq, duration ); 339 r->setMonthly( Recurrence::rMonthlyPos, freq, duration );
340 QBitArray days( 7 ); 340 QBitArray days( 7 );
341 days.fill( false ); 341 days.fill( false );
342 days.setBit( startDate.dayOfWeek() - 1 ); 342 days.setBit( startDate.dayOfWeek() - 1 );
343 int pos = (startDate.day()/7)+1; 343 int pos = (startDate.day()/7)+1;
344 r->addMonthlyPos( pos, days ); 344 r->addMonthlyPos( pos, days );
345 //QString mes = i18n("Importing monthlypos.\n\npos: %1 , day: %2").arg( pos).arg( startDate.dayOfWeek() - 1); 345 //QString mes = i18n("Importing monthlypos.\n\npos: %1 , day: %2").arg( pos).arg( startDate.dayOfWeek() - 1);
346 //KMessageBox::information(this,mes); 346 //KMessageBox::information(this,mes);
347 } else if ( rtype == 5 ) { 347 } else if ( rtype == 5 ) {
348 freq = 1; 348 freq = 1;
349 if ( hasEndDate ) 349 if ( hasEndDate )
350 r->setYearly( Recurrence::rYearlyMonth, freq, endDate ); 350 r->setYearly( Recurrence::rYearlyMonth, freq, endDate );
351 else 351 else
352 r->setYearly( Recurrence::rYearlyMonth, freq, duration ); 352 r->setYearly( Recurrence::rYearlyMonth, freq, duration );