author | zautrix <zautrix> | 2005-06-09 08:27:24 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-06-09 08:27:24 (UTC) |
commit | 12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262 (patch) (side-by-side diff) | |
tree | ac59de32cdf3ae5b8430b9039232f596a8a6a063 | |
parent | b0eb8251185b7c9d664af23da94480c7fcfcf8be (diff) | |
download | kdepimpi-12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262.zip kdepimpi-12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262.tar.gz kdepimpi-12b4828ddfa8ac2fabbaf7c8841b8d68d16a0262.tar.bz2 |
select lisz view fixes
-rw-r--r-- | korganizer/kolistview.cpp | 108 | ||||
-rw-r--r-- | korganizer/kolistview.h | 1 |
2 files changed, 51 insertions, 58 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 5797d1b..1f3b4c6 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp @@ -389,6 +389,7 @@ void KOListView::setCat() { setCategories( true ); } + void KOListView::setAlarm() { KOAlarmPrefs kap( this); @@ -514,17 +515,8 @@ void KOListView::setCategories( bool removeOld ) void KOListView::beamSelected() { - int icount = 0; - QPtrList<Incidence> delSel ; - QListViewItem *item = mListView->firstChild (); - while ( item ) { - if ( item->isSelected() ) { - delSel.append(((KOListViewItem *)item)->data()); - ++icount; - } - - item = item->nextSibling(); - } + QPtrList<Incidence> delSel = getSelectedIncidences() ; + int icount = delSel.count(); if ( icount ) { emit beamIncidenceList( delSel ); return; @@ -575,17 +567,8 @@ void KOListView::saveDescriptionToFile() if ( result != 0 ) { return; } - int icount = 0; - QPtrList<Incidence> delSel ; - QListViewItem *item = mListView->firstChild (); - while ( item ) { - if ( item->isSelected() ) { - delSel.append(((KOListViewItem *)item)->data()); - ++icount; - } - - item = item->nextSibling(); - } + QPtrList<Incidence> delSel = getSelectedIncidences() ; + int icount = delSel.count(); if ( icount ) { QString fn = KOPrefs::instance()->mLastSaveFile; fn = KFileDialog::getSaveFileName( fn, i18n("Save filename"), this ); @@ -659,37 +642,39 @@ void KOListView::saveToFile() { writeToFile( true ); } -void KOListView::writeToFile( bool iCal ) +QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents, bool includeTodos, bool includeJournals, bool onlyDueTodos ) { - - int icount = 0; QPtrList<Incidence> delSel ; - QListViewItem *item = mListView->firstChild (); - bool journal = iCal; // warn only for vCal bool addSubTodos = false; bool askSubTodos = true; + QListViewItem *item = mListView->firstChild (); while ( item ) { if ( item->isSelected() ) { - if ( !journal ) - if ( ((KOListViewItem *)item)->data()->typeID() == journalID ) - journal = true; Incidence* inc = ((KOListViewItem *)item)->data(); - if ( addSubTodos ) { - if ( delSel.findRef( inc ) == -1 ) - delSel.append( inc ); - } else - delSel.append(inc); + if ( ( addSubTodos && delSel.findRef( inc ) == -1) || !addSubTodos ) { + if ( (inc->typeID() == todoID && includeTodos) || + (inc->typeID() == eventID && includeEvents) || + (inc->typeID() == journalID && includeJournals) ) { + if ( inc->typeID() == todoID && onlyDueTodos ) { + if ( ((Todo*)inc)->hasDueDate() ) + delSel.append( inc ); + } else + delSel.append( inc ); + + } + } if ( inc->typeID() == todoID ) { Todo * todo = (Todo*) inc; if ( todo->relations().count() ) { if ( askSubTodos ) { int result = KMessageBox::warningYesNoCancel(this, - i18n("A selected todo has subtodos!\nDo you want to export\nall subtodos of all\nselected todos as well?"), + i18n("One (or more) selected\ntodo has subtodos!\nDo you want to select\nall subtodos of all\nselected todos as well?"), i18n("Todo has subtodos"), i18n("Yes"), i18n("No")); - if ( result == KMessageBox::Cancel ) { - return; + if ( result == KMessageBox::Cancel ) { + delSel.clear(); + return delSel; } if (result == KMessageBox::Yes) addSubTodos = true; @@ -700,18 +685,34 @@ void KOListView::writeToFile( bool iCal ) } } } - ++icount; } item = item->nextSibling(); } - if ( !iCal && journal ) { - int result = KMessageBox::warningContinueCancel(this, - i18n("The journal entries can not be\nexported to a vCalendar file."), - i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), - true); - if (result != KMessageBox::Continue) return; + return delSel; +} + +void KOListView::writeToFile( bool iCal ) +{ + QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed; + if ( !iCal ) { + bool journal = false; + Incidence *incidence = delSel.first(); + while ( incidence ) { + if ( incidence->typeID() == journalID ) { + journal = true; + break; + } + incidence = delSel.next(); + } + if ( journal ) { + int result = KMessageBox::warningContinueCancel(this, + i18n("The journal entries can not be\nexported to a vCalendar file."), + i18n("Data Loss Warning"),i18n("Proceed"),i18n("Cancel"), + true); + if (result != KMessageBox::Continue) return; + } } - if ( icount ) { + if ( delSel.count() ) { QString fn = KOPrefs::instance()->mLastSaveFile; QString extension; if ( iCal ) { @@ -786,18 +787,9 @@ void KOListView::printList() } void KOListView::deleteAll() { - int icount = 0; - QPtrList<Incidence> delSel ; - QListViewItem *item = mListView->firstChild (); - while ( item ) { - if ( item->isSelected() ) { - delSel.append(((KOListViewItem *)item)->data()); - ++icount; - } - - item = item->nextSibling(); - } - if ( icount ) { + QPtrList<Incidence> delSel = getSelectedIncidences(); // all inc allowed;; + if ( delSel.count() ) { + int icount = delSel.count(); Incidence *incidence = delSel.first(); Incidence *toDelete; KOPrefs *p = KOPrefs::instance(); diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h index c25592d..9da5497 100644 --- a/korganizer/kolistview.h +++ b/korganizer/kolistview.h @@ -262,6 +262,7 @@ class KOListView : public KOEventView void setStartDate(const QDate &start); int count(); QString getWhatsThisText(QPoint p); + QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents = true, bool includeTodos = true , bool includeJournals = true, bool onlyDueTodos = false ); signals: void signalNewEvent(); void beamIncidenceList(QPtrList<Incidence>); |