summaryrefslogtreecommitdiffabout
path: root/korganizer/kolistview.cpp
authorzautrix <zautrix>2005-07-01 20:33:17 (UTC)
committer zautrix <zautrix>2005-07-01 20:33:17 (UTC)
commit541878bcf52030d8597d5e79afb6ae1185b2ac2c (patch) (unidiff)
treec6aeb2861062f1bfcc6ba10ec6e26b058205a1cd /korganizer/kolistview.cpp
parentc53efbe8f53f468d21d93f5e19b625d1a4beb242 (diff)
downloadkdepimpi-541878bcf52030d8597d5e79afb6ae1185b2ac2c.zip
kdepimpi-541878bcf52030d8597d5e79afb6ae1185b2ac2c.tar.gz
kdepimpi-541878bcf52030d8597d5e79afb6ae1185b2ac2c.tar.bz2
fixixixis
Diffstat (limited to 'korganizer/kolistview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kolistview.cpp155
1 files changed, 47 insertions, 108 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index e5e3704..4c815d8 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -290,16 +290,16 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent,
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); 295
296 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 296 selPopup->insertItem(i18n("All"),this,
297 i18n("Deselect all"),this, 297 SLOT(allSelection()));
298 SLOT(clearSelection()),true); 298 selPopup->insertItem(i18n("None"),this,
299 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 299 SLOT(clearSelection()));
300 i18n("Delete all selected"),this, 300 selPopup->insertItem(i18n("Delete selected..."),this,
301 SLOT(deleteAll()),true); 301 SLOT(deleteAll()));
302 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);
@@ -314,12 +314,18 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent,
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,
@@ -327,23 +333,14 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent,
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 /*
@@ -438,7 +435,7 @@ void KOListView::populateCalPopup()
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();
@@ -454,13 +451,19 @@ void KOListView::clearList()
454{ 451{
455 clear (); 452 clear ();
456} 453}
457void KOListView::addCat( ) 454
458{
459 setCategories( false );
460}
461void KOListView::setCat() 455void 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
466void KOListView::setAlarm() 469void KOListView::setAlarm()
@@ -468,7 +471,6 @@ void KOListView::setAlarm()
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 ) {
@@ -543,45 +545,20 @@ void KOListView::setCategories( bool removeOld )
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(","); 551 if ( removeOld ) {
550 int i; 552 inc->setCategories( catList, false );
551 QStringList itemList; 553 } else {
552 QPtrList<KOListViewItem> sel ; 554 inc->addCategories( catList, false );
553 QListViewItem *qitem = mListView->firstChild (); 555 }
554 while ( qitem ) { 556 KOListViewItem* item = getItemForEvent(inc);
555 if ( qitem->isSelected() ) { 557 if (item) {
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 ) {
577 inc->setCategories( catList, setSub );
578 } else {
579 inc->addCategories( catList, setSub );
580 }
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}
@@ -589,45 +566,8 @@ void KOListView::setCategories( bool removeOld )
589void KOListView::beamSelected() 566void 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}
625void 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
633void KOListView::saveDescriptionToFile() 573void KOListView::saveDescriptionToFile()
@@ -1106,9 +1046,8 @@ void KOListView::changeEventDisplay(Event *event, int action)
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: