-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 @@ -292,12 +292,12 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, mPopupMenu = eventPopup(); - mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Select all"),this, - SLOT(allSelection()),true); - mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Deselect all"),this, - SLOT(clearSelection()),true); - mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Delete all selected"),this, - SLOT(deleteAll()),true); + QPopupMenu* selPopup = new QPopupMenu ( this ); + mPopupMenu->insertSeparator(); + selPopup->insertItem(i18n("All"),this, + SLOT(allSelection())); + selPopup->insertItem(i18n("None"),this, + SLOT(clearSelection())); + selPopup->insertItem(i18n("Delete selected..."),this, + SLOT(deleteAll())); + mPopupMenu->insertItem(i18n("Selection"), selPopup ); mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), @@ -316,2 +316,8 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, + mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("Set categories")+"...",this, + SLOT(setCat()),true); + mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("Set alarm..."),this, + SLOT(setAlarm()),true); QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, @@ -321,3 +327,3 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, QPopupMenu * exportPO = new QPopupMenu ( this ); - mPopupMenu->insertItem( i18n("Export selected"), exportPO ); + mPopupMenu->insertItem( i18n("Export"), exportPO ); exportPO->insertItem( i18n("As iCal (ics) file..."),this, @@ -329,15 +335,6 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, // mPopupMenu->insertSeparator(); - mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Add Categ. to selected..."),this, - SLOT(addCat()),true); - mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Set Categ. for selected..."),this, - SLOT(setCat()),true); + // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), + // i18n("Add Categ. to selected..."),this, + // SLOT(addCat()),true); //mPopupMenu->insertSeparator(); - mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Set alarm for selected..."),this, - SLOT(setAlarm()),true); - - - #ifndef DESKTOP_VERSION @@ -345,3 +342,3 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), - i18n("Beam selected via IR"),this, + i18n("Beam via IR"),this, SLOT(beamSelected()),true); @@ -440,3 +437,3 @@ void KOListView::populateCalPopup() while ( kkf ) { - int index = mCalPopup->insertItem( kkf->mName, kkf->mCalNumber); + int index = mCalPopup->insertItem( kkf->mName+"...", kkf->mCalNumber); if ( kkf->mErrorOnLoad || kkf->isReadOnly ) @@ -456,9 +453,15 @@ void KOListView::clearList() } -void KOListView::addCat( ) -{ - setCategories( false ); -} + void KOListView::setCat() { - setCategories( true ); + + bool set = true; + int result = KMessageBox::warningYesNoCancel(this, + i18n("Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?"), + i18n("Set categories"), + i18n("Add"), + i18n("Reset")); + if (result == KMessageBox::Cancel) return; + if (result == KMessageBox::Yes) set = false; + setCategories( set ); } @@ -470,3 +473,2 @@ void KOListView::setAlarm() return; - QStringList itemList; QPtrList<KOListViewItem> sel ; @@ -545,41 +547,16 @@ void KOListView::setCategories( bool removeOld ) delete csd; - // if ( catList.count() == 0 ) - // return; - //catList.sort(); - QString categoriesStr = catList.join(","); - int i; - QStringList itemList; - QPtrList<KOListViewItem> sel ; - QListViewItem *qitem = mListView->firstChild (); - while ( qitem ) { - if ( qitem->isSelected() ) { - sel.append(((KOListViewItem *)qitem)); - } - qitem = qitem->nextSibling(); - } - KOListViewItem * item, *temp; - item = sel.first(); - if( item ) { - Incidence* inc = item->data() ; - bool setSub = false; - if( inc->typeID() == todoID && sel.count() == 1 && inc->relations().count() > 0 ) { - int result = KMessageBox::warningYesNoCancel(this, - i18n("The todo\n%1\nhas subtodos!\nDo you want to set\nthe categories for\nall subtodos as well?").arg( inc->summary().left ( 25 ) ), - i18n("Todo has subtodos"), - i18n("Yes"), - i18n("No")); - if (result == KMessageBox::Cancel) item = 0; - if (result == KMessageBox::Yes) setSub = true; - } - while ( item ) { - inc = item->data(); + QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed; + Incidence* inc = delSel.first(); + while ( inc ) { if ( removeOld ) { - inc->setCategories( catList, setSub ); + inc->setCategories( catList, false ); } else { - inc->addCategories( catList, setSub ); + inc->addCategories( catList, false ); } + KOListViewItem* item = getItemForEvent(inc); + if (item) { ListItemVisitor v(item, mStartDate ); inc->accept(v); - item = sel.next(); } + inc = delSel.next(); } @@ -591,41 +568,4 @@ void KOListView::beamSelected() QPtrList<Incidence> delSel = getSelectedIncidences() ; - int icount = delSel.count(); - if ( icount ) { + if ( delSel.count() ) emit beamIncidenceList( delSel ); - return; - QString fn ; - fn = QDir::homeDirPath()+"/kopitempbeamfile.vcs"; - QString mes; - bool createbup = true; - if ( createbup ) { - QString description = "\n"; - CalendarLocal* cal = new CalendarLocal(); - cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); - Incidence *incidence = delSel.first(); - while ( incidence ) { - Incidence *in = incidence->clone(); - description += in->summary() + "\n"; - cal->addIncidence( in ); - incidence = delSel.next(); - } - FileStorage storage( cal, fn, new VCalFormat ); - storage.save(); - delete cal; - mes = i18n("KO/Pi: Ready for beaming"); - topLevelWidget()->setCaption(mes); - -#ifndef DESKTOP_VERSION - Ir *ir = new Ir( this ); - connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); - ir->send( fn, description, "text/x-vCalendar" ); -#endif - } - } -} -void KOListView::beamDone( Ir *ir ) -{ -#ifndef DESKTOP_VERSION - delete ir; -#endif - topLevelWidget()->setCaption(i18n("KO/Pi:Beaming done")); } @@ -1108,5 +1048,4 @@ void KOListView::changeEventDisplay(Event *event, int action) if (item) { - mUidDict.remove( event->uid() ); - delete item; - addIncidence( event ); + ListItemVisitor v(item, mStartDate ); + ((Incidence*)event)->accept(v); } |