author | zautrix <zautrix> | 2005-07-01 20:33:17 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-07-01 20:33:17 (UTC) |
commit | 541878bcf52030d8597d5e79afb6ae1185b2ac2c (patch) (unidiff) | |
tree | c6aeb2861062f1bfcc6ba10ec6e26b058205a1cd /korganizer/kolistview.cpp | |
parent | c53efbe8f53f468d21d93f5e19b625d1a4beb242 (diff) | |
download | kdepimpi-541878bcf52030d8597d5e79afb6ae1185b2ac2c.zip kdepimpi-541878bcf52030d8597d5e79afb6ae1185b2ac2c.tar.gz kdepimpi-541878bcf52030d8597d5e79afb6ae1185b2ac2c.tar.bz2 |
fixixixis
-rw-r--r-- | korganizer/kolistview.cpp | 147 |
1 files changed, 43 insertions, 104 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index e5e3704..4c815d8 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp | |||
@@ -289,18 +289,18 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, | |||
289 | QBoxLayout *layoutTop = new QVBoxLayout(this); | 289 | QBoxLayout *layoutTop = new QVBoxLayout(this); |
290 | layoutTop->addWidget(mListView); | 290 | layoutTop->addWidget(mListView); |
291 | mListView->setFont ( KOPrefs::instance()->mListViewFont ); | 291 | mListView->setFont ( KOPrefs::instance()->mListViewFont ); |
292 | mPopupMenu = eventPopup(); | 292 | mPopupMenu = eventPopup(); |
293 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 293 | QPopupMenu* selPopup = new QPopupMenu ( this ); |
294 | i18n("Select all"),this, | 294 | mPopupMenu->insertSeparator(); |
295 | SLOT(allSelection()),true); | ||
296 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
297 | i18n("Deselect all"),this, | ||
298 | SLOT(clearSelection()),true); | ||
299 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
300 | i18n("Delete all selected"),this, | ||
301 | SLOT(deleteAll()),true); | ||
302 | 295 | ||
296 | selPopup->insertItem(i18n("All"),this, | ||
297 | SLOT(allSelection())); | ||
298 | selPopup->insertItem(i18n("None"),this, | ||
299 | SLOT(clearSelection())); | ||
300 | selPopup->insertItem(i18n("Delete selected..."),this, | ||
301 | SLOT(deleteAll())); | ||
302 | mPopupMenu->insertItem(i18n("Selection"), selPopup ); | ||
303 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 303 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
304 | i18n("Hide all selected"),this, | 304 | i18n("Hide all selected"),this, |
305 | SLOT(hideAll()),true); | 305 | SLOT(hideAll()),true); |
306 | 306 | ||
@@ -313,38 +313,35 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, | |||
313 | #endif | 313 | #endif |
314 | mCalPopup = new QPopupMenu ( this ); | 314 | mCalPopup = new QPopupMenu ( this ); |
315 | mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup ); | 315 | mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup ); |
316 | 316 | ||
317 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
318 | i18n("Set categories")+"...",this, | ||
319 | SLOT(setCat()),true); | ||
320 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
321 | i18n("Set alarm..."),this, | ||
322 | SLOT(setAlarm()),true); | ||
317 | QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, | 323 | QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, |
318 | SLOT( populateCalPopup() )); | 324 | SLOT( populateCalPopup() )); |
319 | QObject::connect(mCalPopup,SIGNAL(activated( int )),this, | 325 | QObject::connect(mCalPopup,SIGNAL(activated( int )),this, |
320 | SLOT( setCalendar( int ) )); | 326 | SLOT( setCalendar( int ) )); |
321 | QPopupMenu * exportPO = new QPopupMenu ( this ); | 327 | QPopupMenu * exportPO = new QPopupMenu ( this ); |
322 | mPopupMenu->insertItem( i18n("Export selected"), exportPO ); | 328 | mPopupMenu->insertItem( i18n("Export"), exportPO ); |
323 | exportPO->insertItem( i18n("As iCal (ics) file..."),this, | 329 | exportPO->insertItem( i18n("As iCal (ics) file..."),this, |
324 | SLOT(saveToFile())); | 330 | SLOT(saveToFile())); |
325 | exportPO->insertItem( i18n("As vCal (vcs) file..."),this, | 331 | exportPO->insertItem( i18n("As vCal (vcs) file..."),this, |
326 | SLOT(saveToFileVCS())); | 332 | SLOT(saveToFileVCS())); |
327 | exportPO->insertItem( i18n("Journal/Details..."),this, | 333 | exportPO->insertItem( i18n("Journal/Details..."),this, |
328 | SLOT(saveDescriptionToFile())); | 334 | SLOT(saveDescriptionToFile())); |
329 | // mPopupMenu->insertSeparator(); | 335 | // mPopupMenu->insertSeparator(); |
330 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 336 | // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
331 | i18n("Add Categ. to selected..."),this, | 337 | // i18n("Add Categ. to selected..."),this, |
332 | SLOT(addCat()),true); | 338 | // SLOT(addCat()),true); |
333 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
334 | i18n("Set Categ. for selected..."),this, | ||
335 | SLOT(setCat()),true); | ||
336 | //mPopupMenu->insertSeparator(); | 339 | //mPopupMenu->insertSeparator(); |
337 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | ||
338 | i18n("Set alarm for selected..."),this, | ||
339 | SLOT(setAlarm()),true); | ||
340 | |||
341 | |||
342 | |||
343 | #ifndef DESKTOP_VERSION | 340 | #ifndef DESKTOP_VERSION |
344 | mPopupMenu->insertSeparator(); | 341 | mPopupMenu->insertSeparator(); |
345 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 342 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
346 | i18n("Beam selected via IR"),this, | 343 | i18n("Beam via IR"),this, |
347 | SLOT(beamSelected()),true); | 344 | SLOT(beamSelected()),true); |
348 | #endif | 345 | #endif |
349 | /* | 346 | /* |
350 | mPopupMenu = new QPopupMenu; | 347 | mPopupMenu = new QPopupMenu; |
@@ -437,9 +434,9 @@ void KOListView::populateCalPopup() | |||
437 | { | 434 | { |
438 | mCalPopup->clear(); | 435 | mCalPopup->clear(); |
439 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); | 436 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); |
440 | while ( kkf ) { | 437 | while ( kkf ) { |
441 | int index = mCalPopup->insertItem( kkf->mName, kkf->mCalNumber); | 438 | int index = mCalPopup->insertItem( kkf->mName+"...", kkf->mCalNumber); |
442 | if ( kkf->mErrorOnLoad || kkf->isReadOnly ) | 439 | if ( kkf->mErrorOnLoad || kkf->isReadOnly ) |
443 | mCalPopup->setItemEnabled( index, false ); | 440 | mCalPopup->setItemEnabled( index, false ); |
444 | kkf = KOPrefs::instance()->mCalendars.next(); | 441 | kkf = KOPrefs::instance()->mCalendars.next(); |
445 | } | 442 | } |
@@ -453,23 +450,28 @@ void KOListView::updateList() | |||
453 | void KOListView::clearList() | 450 | void KOListView::clearList() |
454 | { | 451 | { |
455 | clear (); | 452 | clear (); |
456 | } | 453 | } |
457 | void KOListView::addCat( ) | 454 | |
458 | { | ||
459 | setCategories( false ); | ||
460 | } | ||
461 | void KOListView::setCat() | 455 | void KOListView::setCat() |
462 | { | 456 | { |
463 | setCategories( true ); | 457 | |
458 | bool set = true; | ||
459 | int result = KMessageBox::warningYesNoCancel(this, | ||
460 | i18n("Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?"), | ||
461 | i18n("Set categories"), | ||
462 | i18n("Add"), | ||
463 | i18n("Reset")); | ||
464 | if (result == KMessageBox::Cancel) return; | ||
465 | if (result == KMessageBox::Yes) set = false; | ||
466 | setCategories( set ); | ||
464 | } | 467 | } |
465 | 468 | ||
466 | void KOListView::setAlarm() | 469 | void KOListView::setAlarm() |
467 | { | 470 | { |
468 | KOAlarmPrefs kap( this); | 471 | KOAlarmPrefs kap( this); |
469 | if ( !kap.exec() ) | 472 | if ( !kap.exec() ) |
470 | return; | 473 | return; |
471 | QStringList itemList; | ||
472 | QPtrList<KOListViewItem> sel ; | 474 | QPtrList<KOListViewItem> sel ; |
473 | QListViewItem *qitem = mListView->firstChild (); | 475 | QListViewItem *qitem = mListView->firstChild (); |
474 | while ( qitem ) { | 476 | while ( qitem ) { |
475 | if ( qitem->isSelected() ) { | 477 | if ( qitem->isSelected() ) { |
@@ -542,93 +544,31 @@ void KOListView::setCategories( bool removeOld ) | |||
542 | return; | 544 | return; |
543 | } | 545 | } |
544 | QStringList catList = csd->selectedCategories(); | 546 | QStringList catList = csd->selectedCategories(); |
545 | delete csd; | 547 | delete csd; |
546 | // if ( catList.count() == 0 ) | 548 | QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed; |
547 | // return; | 549 | Incidence* inc = delSel.first(); |
548 | //catList.sort(); | 550 | while ( inc ) { |
549 | QString categoriesStr = catList.join(","); | ||
550 | int i; | ||
551 | QStringList itemList; | ||
552 | QPtrList<KOListViewItem> sel ; | ||
553 | QListViewItem *qitem = mListView->firstChild (); | ||
554 | while ( qitem ) { | ||
555 | if ( qitem->isSelected() ) { | ||
556 | sel.append(((KOListViewItem *)qitem)); | ||
557 | } | ||
558 | qitem = qitem->nextSibling(); | ||
559 | } | ||
560 | KOListViewItem * item, *temp; | ||
561 | item = sel.first(); | ||
562 | if( item ) { | ||
563 | Incidence* inc = item->data() ; | ||
564 | bool setSub = false; | ||
565 | if( inc->typeID() == todoID && sel.count() == 1 && inc->relations().count() > 0 ) { | ||
566 | int result = KMessageBox::warningYesNoCancel(this, | ||
567 | i18n("The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?").arg( inc->summary().left ( 25 ) ), | ||
568 | i18n("Todo has subtodos"), | ||
569 | i18n("Yes"), | ||
570 | i18n("No")); | ||
571 | if (result == KMessageBox::Cancel) item = 0; | ||
572 | if (result == KMessageBox::Yes) setSub = true; | ||
573 | } | ||
574 | while ( item ) { | ||
575 | inc = item->data(); | ||
576 | if ( removeOld ) { | 551 | if ( removeOld ) { |
577 | inc->setCategories( catList, setSub ); | 552 | inc->setCategories( catList, false ); |
578 | } else { | 553 | } else { |
579 | inc->addCategories( catList, setSub ); | 554 | inc->addCategories( catList, false ); |
580 | } | 555 | } |
556 | KOListViewItem* item = getItemForEvent(inc); | ||
557 | if (item) { | ||
581 | ListItemVisitor v(item, mStartDate ); | 558 | ListItemVisitor v(item, mStartDate ); |
582 | inc->accept(v); | 559 | inc->accept(v); |
583 | item = sel.next(); | ||
584 | } | 560 | } |
561 | inc = delSel.next(); | ||
585 | } | 562 | } |
586 | QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); | 563 | QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); |
587 | } | 564 | } |
588 | 565 | ||
589 | void KOListView::beamSelected() | 566 | void KOListView::beamSelected() |
590 | { | 567 | { |
591 | QPtrList<Incidence> delSel = getSelectedIncidences() ; | 568 | QPtrList<Incidence> delSel = getSelectedIncidences() ; |
592 | int icount = delSel.count(); | 569 | if ( delSel.count() ) |
593 | if ( icount ) { | ||
594 | emit beamIncidenceList( delSel ); | 570 | emit beamIncidenceList( delSel ); |
595 | return; | ||
596 | QString fn ; | ||
597 | fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs"; | ||
598 | QString mes; | ||
599 | bool createbup = true; | ||
600 | if ( createbup ) { | ||
601 | QString description = "\n"; | ||
602 | CalendarLocal* cal = new CalendarLocal(); | ||
603 | cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); | ||
604 | Incidence *incidence = delSel.first(); | ||
605 | while ( incidence ) { | ||
606 | Incidence *in = incidence->clone(); | ||
607 | description += in->summary() + "\n"; | ||
608 | cal->addIncidence( in ); | ||
609 | incidence = delSel.next(); | ||
610 | } | ||
611 | FileStorage storage( cal, fn, new VCalFormat ); | ||
612 | storage.save(); | ||
613 | delete cal; | ||
614 | mes = i18n("KO/Pi: Ready for beaming"); | ||
615 | topLevelWidget()->setCaption(mes); | ||
616 | |||
617 | #ifndef DESKTOP_VERSION | ||
618 | Ir *ir = new Ir( this ); | ||
619 | connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); | ||
620 | ir->send( fn, description, "text/x-vCalendar" ); | ||
621 | #endif | ||
622 | } | ||
623 | } | ||
624 | } | ||
625 | void KOListView::beamDone( Ir *ir ) | ||
626 | { | ||
627 | #ifndef DESKTOP_VERSION | ||
628 | delete ir; | ||
629 | #endif | ||
630 | topLevelWidget()->setCaption(i18n("KO/Pi:Beaming done")); | ||
631 | } | 571 | } |
632 | 572 | ||
633 | void KOListView::saveDescriptionToFile() | 573 | void KOListView::saveDescriptionToFile() |
634 | { | 574 | { |
@@ -1105,11 +1045,10 @@ void KOListView::changeEventDisplay(Event *event, int action) | |||
1105 | break; | 1045 | break; |
1106 | case KOGlobals::EVENTEDITED: | 1046 | case KOGlobals::EVENTEDITED: |
1107 | item = getItemForEvent(event); | 1047 | item = getItemForEvent(event); |
1108 | if (item) { | 1048 | if (item) { |
1109 | mUidDict.remove( event->uid() ); | 1049 | ListItemVisitor v(item, mStartDate ); |
1110 | delete item; | 1050 | ((Incidence*)event)->accept(v); |
1111 | addIncidence( event ); | ||
1112 | } | 1051 | } |
1113 | break; | 1052 | break; |
1114 | case KOGlobals::EVENTDELETED: | 1053 | case KOGlobals::EVENTDELETED: |
1115 | item = getItemForEvent(event); | 1054 | item = getItemForEvent(event); |