-rw-r--r-- | korganizer/calendarview.cpp | 9 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 2 | ||||
-rw-r--r-- | korganizer/kolistview.cpp | 68 | ||||
-rw-r--r-- | korganizer/kolistview.h | 5 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 4 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 | ||||
-rw-r--r-- | libkcal/calendar.h | 1 | ||||
-rw-r--r-- | libkcal/calendarlocal.cpp | 10 | ||||
-rw-r--r-- | libkcal/calendarlocal.h | 1 | ||||
-rw-r--r-- | libkcal/incidencebase.cpp | 2 |
10 files changed, 87 insertions, 16 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 377a66f..2012e92 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -1833,14 +1833,7 @@ bool CalendarView::importQtopia( const QString &categories, | |||
1833 | 1833 | ||
1834 | void CalendarView::setSyncEventsReadOnly() | 1834 | void CalendarView::setSyncEventsReadOnly() |
1835 | { | 1835 | { |
1836 | Event * ev; | 1836 | mCalendar->setSyncEventsReadOnly(); |
1837 | QPtrList<Event> eL = mCalendar->rawEvents(); | ||
1838 | ev = eL.first(); | ||
1839 | while ( ev ) { | ||
1840 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) | ||
1841 | ev->setReadOnly( true ); | ||
1842 | ev = eL.next(); | ||
1843 | } | ||
1844 | } | 1837 | } |
1845 | 1838 | ||
1846 | bool CalendarView::loadCalendars() | 1839 | bool CalendarView::loadCalendars() |
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index b2b136a..93ff55e 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp | |||
@@ -662,7 +662,7 @@ void KOAgendaView::createDayLabels() | |||
662 | // ### Before deleting and recreating we could check if mSelectedDates changed... | 662 | // ### Before deleting and recreating we could check if mSelectedDates changed... |
663 | // It would remove some flickering and gain speed (since this is called by | 663 | // It would remove some flickering and gain speed (since this is called by |
664 | // each updateView() call) | 664 | // each updateView() call) |
665 | 665 | ||
666 | int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2; | 666 | int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2; |
667 | mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); | 667 | mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); |
668 | if ( maxWid < 20 ) | 668 | if ( maxWid < 20 ) |
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 1f3b4c6..c705c73 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp | |||
@@ -67,9 +67,6 @@ | |||
67 | #include "kolistview.h" | 67 | #include "kolistview.h" |
68 | #include "koeventviewer.h" | 68 | #include "koeventviewer.h" |
69 | 69 | ||
70 | |||
71 | |||
72 | |||
73 | class KOListViewWhatsThis :public QWhatsThis | 70 | class KOListViewWhatsThis :public QWhatsThis |
74 | { | 71 | { |
75 | public: | 72 | public: |
@@ -140,6 +137,7 @@ bool ListItemVisitor::visit(Event *e) | |||
140 | mItem->setText(8,"---"); | 137 | mItem->setText(8,"---"); |
141 | mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); | 138 | mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No")); |
142 | mItem->setText(10,e->categoriesStr()); | 139 | mItem->setText(10,e->categoriesStr()); |
140 | mItem->setText(11, KOPrefs::instance()->calName( e->calID() )); | ||
143 | 141 | ||
144 | QString key; | 142 | QString key; |
145 | QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); | 143 | QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); |
@@ -189,6 +187,7 @@ bool ListItemVisitor::visit(Todo *t) | |||
189 | } | 187 | } |
190 | mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); | 188 | mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No")); |
191 | mItem->setText(10,t->categoriesStr()); | 189 | mItem->setText(10,t->categoriesStr()); |
190 | mItem->setText(11, KOPrefs::instance()->calName( t->calID() )); | ||
192 | 191 | ||
193 | QString key; | 192 | QString key; |
194 | QDate d; | 193 | QDate d; |
@@ -224,6 +223,7 @@ bool ListItemVisitor::visit(Journal * j) | |||
224 | mItem->setText(8,"---"); | 223 | mItem->setText(8,"---"); |
225 | mItem->setText(9,"---"); | 224 | mItem->setText(9,"---"); |
226 | mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); | 225 | mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); |
226 | mItem->setText(11, KOPrefs::instance()->calName( j->calID() )); | ||
227 | 227 | ||
228 | QString key; | 228 | QString key; |
229 | QDate d = j->dtStart().date(); | 229 | QDate d = j->dtStart().date(); |
@@ -251,6 +251,7 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, | |||
251 | mListView->addColumn(i18n("Due Time")); | 251 | mListView->addColumn(i18n("Due Time")); |
252 | mListView->addColumn(i18n("Cancelled")); | 252 | mListView->addColumn(i18n("Cancelled")); |
253 | mListView->addColumn(i18n("Categories")); | 253 | mListView->addColumn(i18n("Categories")); |
254 | mListView->addColumn(i18n("Calendar")); | ||
254 | 255 | ||
255 | mListView->setColumnAlignment(0,AlignLeft); | 256 | mListView->setColumnAlignment(0,AlignLeft); |
256 | mListView->setColumnAlignment(1,AlignLeft); | 257 | mListView->setColumnAlignment(1,AlignLeft); |
@@ -263,11 +264,11 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, | |||
263 | mListView->setColumnAlignment(8,AlignLeft); | 264 | mListView->setColumnAlignment(8,AlignLeft); |
264 | mListView->setColumnAlignment(9,AlignLeft); | 265 | mListView->setColumnAlignment(9,AlignLeft); |
265 | mListView->setColumnAlignment(10,AlignLeft); | 266 | mListView->setColumnAlignment(10,AlignLeft); |
266 | mListView->setColumnWidthMode(10, QListView::Manual); | 267 | mListView->setColumnAlignment(11,AlignLeft); |
267 | mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); | 268 | mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); |
268 | 269 | ||
269 | int iii = 0; | 270 | int iii = 0; |
270 | for ( iii = 0; iii< 10 ; ++iii ) | 271 | for ( iii = 0; iii< 12 ; ++iii ) |
271 | mListView->setColumnWidthMode( iii, QListView::Manual ); | 272 | mListView->setColumnWidthMode( iii, QListView::Manual ); |
272 | 273 | ||
273 | QBoxLayout *layoutTop = new QVBoxLayout(this); | 274 | QBoxLayout *layoutTop = new QVBoxLayout(this); |
@@ -295,6 +296,13 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, | |||
295 | SLOT(printList()),true); | 296 | SLOT(printList()),true); |
296 | mPopupMenu->insertSeparator(); | 297 | mPopupMenu->insertSeparator(); |
297 | #endif | 298 | #endif |
299 | mCalPopup = new QPopupMenu ( this ); | ||
300 | mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup ); | ||
301 | |||
302 | QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, | ||
303 | SLOT( populateCalPopup() )); | ||
304 | QObject::connect(mCalPopup,SIGNAL(activated( int )),this, | ||
305 | SLOT( setCalendar( int ) )); | ||
298 | QPopupMenu * exportPO = new QPopupMenu ( this ); | 306 | QPopupMenu * exportPO = new QPopupMenu ( this ); |
299 | mPopupMenu->insertItem( i18n("Export selected"), exportPO ); | 307 | mPopupMenu->insertItem( i18n("Export selected"), exportPO ); |
300 | exportPO->insertItem( i18n("As iCal (ics) file..."),this, | 308 | exportPO->insertItem( i18n("As iCal (ics) file..."),this, |
@@ -316,6 +324,7 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, | |||
316 | SLOT(setAlarm()),true); | 324 | SLOT(setAlarm()),true); |
317 | 325 | ||
318 | 326 | ||
327 | |||
319 | #ifndef DESKTOP_VERSION | 328 | #ifndef DESKTOP_VERSION |
320 | mPopupMenu->insertSeparator(); | 329 | mPopupMenu->insertSeparator(); |
321 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), | 330 | mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), |
@@ -371,6 +380,53 @@ QString KOListView::getWhatsThisText(QPoint p) | |||
371 | 380 | ||
372 | } | 381 | } |
373 | 382 | ||
383 | void KOListView::setCalendar( int c ) | ||
384 | { | ||
385 | int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"), | ||
386 | i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ), | ||
387 | i18n("Continue"), i18n("Cancel"), 0, | ||
388 | 0, 1 ); | ||
389 | if ( result != 0 ) { | ||
390 | return; | ||
391 | } | ||
392 | |||
393 | QPtrList<Incidence> delSel = getSelectedIncidences() ; | ||
394 | int icount = delSel.count(); | ||
395 | if ( icount ) { | ||
396 | Incidence *incidence = delSel.first(); | ||
397 | while ( incidence ) { | ||
398 | incidence->setCalID( c ); | ||
399 | KOListViewItem * item = getItemForEvent( incidence ); | ||
400 | if ( item ) { | ||
401 | ListItemVisitor v(item, mStartDate ); | ||
402 | incidence->accept(v); | ||
403 | } | ||
404 | incidence = delSel.next(); | ||
405 | } | ||
406 | } | ||
407 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | ||
408 | KopiCalendarFile * cal = calendars.first(); | ||
409 | while ( cal ) { | ||
410 | mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); | ||
411 | mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); | ||
412 | mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); | ||
413 | if ( cal->isStandard ) | ||
414 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | ||
415 | cal = calendars.next(); | ||
416 | } | ||
417 | mCalendar->setSyncEventsReadOnly(); | ||
418 | mCalendar->reInitAlarmSettings(); | ||
419 | |||
420 | } | ||
421 | void KOListView::populateCalPopup() | ||
422 | { | ||
423 | mCalPopup->clear(); | ||
424 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); | ||
425 | while ( kkf ) { | ||
426 | mCalPopup->insertItem( kkf->mName, kkf->mCalNumber); | ||
427 | kkf = KOPrefs::instance()->mCalendars.next(); | ||
428 | } | ||
429 | } | ||
374 | void KOListView::updateList() | 430 | void KOListView::updateList() |
375 | { | 431 | { |
376 | // qDebug(" KOListView::updateList() "); | 432 | // qDebug(" KOListView::updateList() "); |
@@ -1039,7 +1095,7 @@ void KOListView::changeEventDisplay(Event *event, int action) | |||
1039 | } | 1095 | } |
1040 | } | 1096 | } |
1041 | 1097 | ||
1042 | KOListViewItem *KOListView::getItemForEvent(Event *event) | 1098 | KOListViewItem *KOListView::getItemForEvent(Incidence *event) |
1043 | { | 1099 | { |
1044 | KOListViewItem *item = (KOListViewItem *)mListView->firstChild(); | 1100 | KOListViewItem *item = (KOListViewItem *)mListView->firstChild(); |
1045 | while (item) { | 1101 | while (item) { |
diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h index 9da5497..d384af0 100644 --- a/korganizer/kolistview.h +++ b/korganizer/kolistview.h | |||
@@ -295,6 +295,8 @@ class KOListView : public KOEventView | |||
295 | 295 | ||
296 | void defaultItemAction(QListViewItem *item); | 296 | void defaultItemAction(QListViewItem *item); |
297 | void popupMenu(QListViewItem *item,const QPoint &,int); | 297 | void popupMenu(QListViewItem *item,const QPoint &,int); |
298 | void setCalendar( int c ); | ||
299 | void populateCalPopup(); | ||
298 | 300 | ||
299 | protected slots: | 301 | protected slots: |
300 | void processSelectionChange(QListViewItem *); | 302 | void processSelectionChange(QListViewItem *); |
@@ -303,9 +305,10 @@ class KOListView : public KOEventView | |||
303 | void writeToFile( bool iCal ); | 305 | void writeToFile( bool iCal ); |
304 | void addEvents(QPtrList<Event> eventList); | 306 | void addEvents(QPtrList<Event> eventList); |
305 | void addIncidence(Incidence *); | 307 | void addIncidence(Incidence *); |
306 | KOListViewItem *getItemForEvent(Event *event); | 308 | KOListViewItem *getItemForEvent(Incidence *event); |
307 | 309 | ||
308 | private: | 310 | private: |
311 | QPopupMenu* mCalPopup; | ||
309 | KOListViewWhatsThis *mKOListViewWhatsThis; | 312 | KOListViewWhatsThis *mKOListViewWhatsThis; |
310 | KOListViewListView *mListView; | 313 | KOListViewListView *mListView; |
311 | KOEventPopupMenu *mPopupMenu; | 314 | KOEventPopupMenu *mPopupMenu; |
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 65f0342..a4ea3d3 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -495,6 +495,10 @@ void KOPrefs::deleteCalendar( int num ) | |||
495 | kkf = mCalendars.next(); | 495 | kkf = mCalendars.next(); |
496 | } | 496 | } |
497 | } | 497 | } |
498 | QString KOPrefs::calName( int calNum) const | ||
499 | { | ||
500 | return (mDefCalColors[calNum-1])->mName; | ||
501 | } | ||
498 | QColor KOPrefs::defaultColor( int calNum ) const | 502 | QColor KOPrefs::defaultColor( int calNum ) const |
499 | { | 503 | { |
500 | if ( calNum == 1 ) return mEventColor; | 504 | if ( calNum == 1 ) return mEventColor; |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 463fc33..5cc9bfa 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -99,6 +99,7 @@ class KOPrefs : public KPimPrefs | |||
99 | KopiCalendarFile * getCalendar( int ); | 99 | KopiCalendarFile * getCalendar( int ); |
100 | void deleteCalendar( int ); | 100 | void deleteCalendar( int ); |
101 | QColor defaultColor( int ) const; | 101 | QColor defaultColor( int ) const; |
102 | QString calName( int ) const; | ||
102 | protected: | 103 | protected: |
103 | void setTimeZoneIdDefault(); | 104 | void setTimeZoneIdDefault(); |
104 | 105 | ||
diff --git a/libkcal/calendar.h b/libkcal/calendar.h index 2243e28..3b7b183 100644 --- a/libkcal/calendar.h +++ b/libkcal/calendar.h | |||
@@ -76,6 +76,7 @@ public: | |||
76 | virtual void close() = 0; | 76 | virtual void close() = 0; |
77 | virtual void addCalendar( Calendar* ) = 0; | 77 | virtual void addCalendar( Calendar* ) = 0; |
78 | virtual bool addCalendarFile( QString name, int id ) = 0; | 78 | virtual bool addCalendarFile( QString name, int id ) = 0; |
79 | virtual void setSyncEventsReadOnly() = 0; | ||
79 | 80 | ||
80 | /** | 81 | /** |
81 | Sync changes in memory to persistant storage. | 82 | Sync changes in memory to persistant storage. |
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index 336c3e8..8c4dde1 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp | |||
@@ -78,6 +78,16 @@ bool CalendarLocal::addCalendarFile( QString name, int id ) | |||
78 | } | 78 | } |
79 | return false; | 79 | return false; |
80 | } | 80 | } |
81 | void CalendarLocal::setSyncEventsReadOnly() | ||
82 | { | ||
83 | Event * ev; | ||
84 | ev = mEventList.first(); | ||
85 | while ( ev ) { | ||
86 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) | ||
87 | ev->setReadOnly( true ); | ||
88 | ev = mEventList.next(); | ||
89 | } | ||
90 | } | ||
81 | void CalendarLocal::addCalendar( Calendar* cal ) | 91 | void CalendarLocal::addCalendar( Calendar* cal ) |
82 | { | 92 | { |
83 | cal->setDontDeleteIncidencesOnClose(); | 93 | cal->setDontDeleteIncidencesOnClose(); |
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h index 5bbe55f..0286b48 100644 --- a/libkcal/calendarlocal.h +++ b/libkcal/calendarlocal.h | |||
@@ -45,6 +45,7 @@ class CalendarLocal : public Calendar | |||
45 | ~CalendarLocal(); | 45 | ~CalendarLocal(); |
46 | void addCalendar( Calendar* ); | 46 | void addCalendar( Calendar* ); |
47 | bool addCalendarFile( QString name, int id ); | 47 | bool addCalendarFile( QString name, int id ); |
48 | void setSyncEventsReadOnly(); | ||
48 | /** | 49 | /** |
49 | Loads a calendar on disk in vCalendar or iCalendar format into the current | 50 | Loads a calendar on disk in vCalendar or iCalendar format into the current |
50 | calendar. Any information already present is lost. | 51 | calendar. Any information already present is lost. |
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp index 2ddbb01..96039df 100644 --- a/libkcal/incidencebase.cpp +++ b/libkcal/incidencebase.cpp | |||
@@ -141,6 +141,8 @@ QDateTime IncidenceBase::getEvenTime( QDateTime dt ) | |||
141 | 141 | ||
142 | void IncidenceBase::setCalID( int id ) | 142 | void IncidenceBase::setCalID( int id ) |
143 | { | 143 | { |
144 | if ( mCalID > 0 ) | ||
145 | updated(); | ||
144 | mCalID = id; | 146 | mCalID = id; |
145 | } | 147 | } |
146 | int IncidenceBase::calID() const | 148 | int IncidenceBase::calID() const |