summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt2
-rw-r--r--korganizer/calendarview.cpp8
-rw-r--r--korganizer/calendarview.h1
-rw-r--r--korganizer/koagendaitem.cpp6
-rw-r--r--korganizer/kofilterview.cpp4
-rw-r--r--korganizer/kofilterview.h1
-rw-r--r--korganizer/komonthview.cpp4
-rw-r--r--korganizer/kotodoview.cpp52
-rw-r--r--korganizer/kotodoviewitem.cpp2
-rw-r--r--korganizer/kowhatsnextview.cpp4
-rw-r--r--libkcal/alarm.cpp2
-rw-r--r--libkcal/calendar.cpp54
-rw-r--r--libkcal/calendar.h1
-rw-r--r--libkcal/calendarlocal.cpp56
-rw-r--r--libkcal/calendarlocal.h1
15 files changed, 137 insertions, 61 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index acf17b2..8651a49 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1382,3 +1382,3 @@
{ "<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n","<p><b>R</b>: Zeige Resource Ansicht | <b>F</b>: Editiere Filter </p>\n" },
-{ "","" },
+{ "(disabled)","(abgeschaltet)" },
{ "","" },
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 07ec459..6e60c56 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -465,2 +465,5 @@ void CalendarView::init()
connect( mCalEditView, SIGNAL( setCalendarDefault(int) ),mCalendar, SLOT( setDefaultCalendar(int)) );
+ connect( mCalEditView, SIGNAL( removeCalendar(int) ),mCalendar, SLOT( setCalendarRemove(int)) );
+ connect( mCalEditView, SIGNAL( calendarAdded(int) ),this, SLOT( addCalendarId(int)) );
+ connect( mCalEditView, SIGNAL( needsUpdate() ),this, SLOT( updateView()) );
mTodoList->setNavigator( mNavigator );
@@ -1871,2 +1874,7 @@ bool CalendarView::restoreCalendarSettings()
}
+void CalendarView::addCalendarId( int id )
+{
+ KopiCalendarFile * cal = KOPrefs::instance()->getCalendar( id );
+ addCalendar( cal );
+}
bool CalendarView::addCalendar( KopiCalendarFile * cal )
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 0144ba4..ec5b7ab 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -229,2 +229,3 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
bool addCalendar( KopiCalendarFile * );
+ void addCalendarId( int id );
bool syncCalendar(QString filename,int mode = 0 );
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index 5a3c4d2..c7bc6eb 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -123,3 +123,3 @@ void KOAgendaItem::init ( Incidence *incidence, QDate qd )
else
- mBackgroundColor =KOPrefs::instance()->mEventColor;
+ mBackgroundColor =KOPrefs::instance()->defaultColor( incidence->calID() );
} else {
@@ -128,3 +128,3 @@ void KOAgendaItem::init ( Incidence *incidence, QDate qd )
if ( mBackgroundColor == KOPrefs::instance()->mEventColor )
- mBackgroundColor =KOPrefs::instance()->mTodoDoneColor;
+ mBackgroundColor = KOPrefs::instance()->mTodoDoneColor;
}
@@ -203,3 +203,3 @@ bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout)
}
- if (mIncidence->isAlarmEnabled()) {
+ if (mIncidence->isAlarmEnabled() && mIncidence->alarmEnabled()) {
p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, red );
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp
index 29a4393..2b16347 100644
--- a/korganizer/kofilterview.cpp
+++ b/korganizer/kofilterview.cpp
@@ -160,2 +160,3 @@ void KOCalEditView::selectCal(int id ,bool b)
emit calendarEnabled ( id, b );
+ emit needsUpdate();
@@ -201,2 +202,3 @@ void KOCalEditView::selectCalAlarm(int id ,bool b )
emit alarmEnabled ( id , b );
+ emit needsUpdate();
}
@@ -206,2 +208,3 @@ void KOCalEditView::selectReadOnly(int id ,bool b )
emit calendarReadonly ( id , b );
+ emit needsUpdate();
@@ -211,2 +214,3 @@ void KOCalEditView::setColor( const QColor& c, int id )
KOPrefs::instance()->getCalendar( id )->mDefaultColor = c;
+ emit needsUpdate();
}
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h
index aaf0eb6..4a0cd8a 100644
--- a/korganizer/kofilterview.h
+++ b/korganizer/kofilterview.h
@@ -140,2 +140,3 @@ class KOCalEditView : public QWidget
void calendarAdded( int );
+ void needsUpdate();
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index c868270..96f2502 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -750,3 +750,3 @@ int MonthViewCell::insertEvent(Event *event)
item->setRecur( event->recurrence()->doesRecur() );
- item->setAlarm( event->isAlarmEnabled() && multiday < 2 );
+ item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() );
item->setMoreInfo( event->description().length() > 0 );
@@ -831,3 +831,3 @@ void MonthViewCell::insertTodo(Todo *todo)
item->setRecur( todo->recurrence()->doesRecur() );
- item->setAlarm( todo->isAlarmEnabled() );
+ item->setAlarm( todo->isAlarmEnabled() && todo->alarmEnabled() );
item->setMoreInfo( todo->description().length() > 0 );
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 2602487..35c2a9f 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -703,6 +703,6 @@ void KOTodoView::updateView()
Incidence *incidence = todo->relatedTo();
- while ( incidence ) {
+ while ( incidence ) {
if ( incidence->typeID() == todoID ) {
//qDebug("related %s ",incidence->summary().latin1() );
- if ( !(todoList.contains ( ((Todo* )incidence ) ) )) {
+ if ( !(todoList.contains ( ((Todo* )incidence ) ) ) && incidence->calEnabled() ) {
//qDebug("related not found ");
@@ -838,30 +838,32 @@ void KOTodoView::restoreItemState( QListViewItem *item )
QMap<Todo *,KOTodoViewItem *>::ConstIterator
- KOTodoView::insertTodoItem(Todo *todo)
+KOTodoView::insertTodoItem(Todo *todo)
{
-// kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl;
- // TODO: Check, if dynmaic cast is necessary
+ // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl;
+ // TODO: Check, if dynmaic cast is necessary
pendingSubtodo = 0;
- Incidence *incidence = todo->relatedTo();
- if (incidence && incidence->typeID() == todoID ) {
- Todo *relatedTodo = static_cast<Todo *>(incidence);
-
-// kdDebug() << " has Related" << endl;
- QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator;
- itemIterator = mTodoMap.find(relatedTodo);
- if (itemIterator == mTodoMap.end()) {
-// kdDebug() << " related not yet in list" << endl;
- itemIterator = insertTodoItem (relatedTodo);
+ Incidence *incidence = todo->relatedTo();
+ while ( incidence && !incidence->calEnabled() )
+ incidence = incidence->relatedTo();
+ if (incidence && incidence->typeID() == todoID ) {
+ Todo *relatedTodo = static_cast<Todo *>(incidence);
+
+ // kdDebug() << " has Related" << endl;
+ QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator;
+ itemIterator = mTodoMap.find(relatedTodo);
+ if (itemIterator == mTodoMap.end()) {
+ // kdDebug() << " related not yet in list" << endl;
+ itemIterator = insertTodoItem (relatedTodo);
+ }
+ // isn't this pretty stupid? We give one Todo to the KOTodoViewItem
+ // and one into the map. Sure finding is more easy but why? -zecke
+ KOTodoViewItem *todoItem = new KOTodoViewItem(*itemIterator,todo,this);
+ return mTodoMap.insert(todo,todoItem);
+ } else {
+ // kdDebug() << " no Related" << endl;
+ // see above -zecke
+ KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
+ return mTodoMap.insert(todo,todoItem);
}
- // isn't this pretty stupid? We give one Todo to the KOTodoViewItem
- // and one into the map. Sure finding is more easy but why? -zecke
- KOTodoViewItem *todoItem = new KOTodoViewItem(*itemIterator,todo,this);
- return mTodoMap.insert(todo,todoItem);
- } else {
-// kdDebug() << " no Related" << endl;
- // see above -zecke
- KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
- return mTodoMap.insert(todo,todoItem);
- }
}
diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp
index 8cb6b83..f987b63 100644
--- a/korganizer/kotodoviewitem.cpp
+++ b/korganizer/kotodoviewitem.cpp
@@ -197,3 +197,3 @@ void KOTodoViewItem::setMyPixmap()
}
- if ( mTodo->isAlarmEnabled() ) {
+ if ( mTodo->isAlarmEnabled() && mTodo->alarmEnabled()) {
pixi.resize(size, pixSize+size);
diff --git a/korganizer/kowhatsnextview.cpp b/korganizer/kowhatsnextview.cpp
index e8574a0..221debc 100644
--- a/korganizer/kowhatsnextview.cpp
+++ b/korganizer/kowhatsnextview.cpp
@@ -597,3 +597,3 @@ bool KOWhatsNextView::appendEvent(Incidence *ev, bool reply, bool notRed, bool a
}
- if ( ev->isAlarmEnabled() ) {
+ if ( ev->isAlarmEnabled() && ev->alarmEnabled()) {
if ( !needClose)
@@ -671,3 +671,3 @@ bool KOWhatsNextView::appendTodo(Incidence *ev, QString ind , bool isSub )
}
- if ( ev->isAlarmEnabled() ) {
+ if ( ev->isAlarmEnabled() && ev->alarmEnabled() ) {
if ( !needClose)
diff --git a/libkcal/alarm.cpp b/libkcal/alarm.cpp
index 0afa0a7..79e0464 100644
--- a/libkcal/alarm.cpp
+++ b/libkcal/alarm.cpp
@@ -373,2 +373,4 @@ QString Alarm::offsetText()
message = i18n("%1min").arg( 0 );
+ if ( !mParent->alarmEnabled() )
+ return "!"+message + i18n("(disabled)");
return message;
diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp
index 5092d1a..a662eeb 100644
--- a/libkcal/calendar.cpp
+++ b/libkcal/calendar.cpp
@@ -432,29 +432,29 @@ void Calendar::removeRelations( Incidence *incidence )
// qDebug("Calendar::removeRelations ");
- QString uid = incidence->uid();
-
- QPtrList<Incidence> relations = incidence->relations();
- for( Incidence* i = relations.first(); i; i = relations.next() )
- if( !mOrphanUids.find( i->uid() ) ) {
- mOrphans.insert( uid, i );
- mOrphanUids.insert( i->uid(), i );
- i->setRelatedTo( 0 );
- i->setRelatedToUid( uid );
- }
-
- // If this incidence is related to something else, tell that about it
- if( incidence->relatedTo() )
- incidence->relatedTo()->removeRelation( incidence );
-
- // Remove this one from the orphans list
- if( mOrphanUids.remove( uid ) )
- // This incidence is located in the orphans list - it should be removed
- if( !( incidence->relatedTo() != 0 && mOrphans.remove( incidence->relatedTo()->uid() ) ) ) {
- // Removing wasn't that easy
- for( QDictIterator<Incidence> it( mOrphans ); it.current(); ++it ) {
- if( it.current()->uid() == uid ) {
- mOrphans.remove( it.currentKey() );
- break;
- }
- }
- }
+ QString uid = incidence->uid();
+
+ QPtrList<Incidence> relations = incidence->relations();
+ for( Incidence* i = relations.first(); i; i = relations.next() )
+ if( !mOrphanUids.find( i->uid() ) ) {
+ mOrphans.insert( uid, i );
+ mOrphanUids.insert( i->uid(), i );
+ i->setRelatedTo( 0 );
+ i->setRelatedToUid( uid );
+ }
+
+ // If this incidence is related to something else, tell that about it
+ if( incidence->relatedTo() )
+ incidence->relatedTo()->removeRelation( incidence );
+
+ // Remove this one from the orphans list
+ if( mOrphanUids.remove( uid ) )
+ // This incidence is located in the orphans list - it should be removed
+ if( !( incidence->relatedTo() != 0 && mOrphans.remove( incidence->relatedTo()->uid() ) ) ) {
+ // Removing wasn't that easy
+ for( QDictIterator<Incidence> it( mOrphans ); it.current(); ++it ) {
+ if( it.current()->uid() == uid ) {
+ mOrphans.remove( it.currentKey() );
+ break;
+ }
+ }
+ }
}
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index 73f82bb..2243e28 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -314,2 +314,3 @@ public:
virtual void setDefaultCalendarEnabledOnly() = 0;
+ virtual void setCalendarRemove( int id ) = 0;
signals:
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp
index e48122a..749d9f6 100644
--- a/libkcal/calendarlocal.cpp
+++ b/libkcal/calendarlocal.cpp
@@ -87,2 +87,4 @@ void CalendarLocal::addCalendar( Calendar* cal )
while ( ev ) {
+ ev->unRegisterObserver( cal );
+ ev->registerObserver( this );
mEventList.append( ev );
@@ -92,2 +94,3 @@ void CalendarLocal::addCalendar( Calendar* cal )
{
+
QPtrList<Todo> TodoList = cal->rawTodos();
@@ -95,3 +98,16 @@ void CalendarLocal::addCalendar( Calendar* cal )
while ( ev ) {
+ QString rel = ev->relatedToUid();
+ if ( !rel.isEmpty() ){
+ ev->setRelatedTo ( 0 );
+ ev->setRelatedToUid( rel );
+ }
+ ev = TodoList.next();
+ }
+ //TodoList = cal->rawTodos();
+ ev = TodoList.first();
+ while ( ev ) {
+ ev->unRegisterObserver( cal );
+ ev->registerObserver( this );
mTodoList.append( ev );
+ setupRelations( ev );
ev = TodoList.next();
@@ -103,2 +119,4 @@ void CalendarLocal::addCalendar( Calendar* cal )
while ( ev ) {
+ ev->unRegisterObserver( cal );
+ ev->registerObserver( this );
mJournalList.append( ev );
@@ -107,2 +125,3 @@ void CalendarLocal::addCalendar( Calendar* cal )
}
+ setModified( true );
}
@@ -783,2 +802,38 @@ QPtrList<Journal> CalendarLocal::journals()
}
+void CalendarLocal::setCalendarRemove( int id )
+{
+
+ {
+ QPtrList<Event> EventList = mEventList;
+ Event * ev = EventList.first();
+ while ( ev ) {
+ if ( ev->calID() == id )
+ deleteEvent( ev );
+ ev = EventList.next();
+ }
+ }
+ {
+
+ QPtrList<Todo> TodoList = mTodoList;
+ Todo * ev = TodoList.first();
+ while ( ev ) {
+ if ( ev->calID() == id )
+ deleteTodo( ev );
+ ev = TodoList.next();
+ }
+ }
+ {
+ QPtrList<Journal> JournalList = mJournalList;
+ Journal * ev = JournalList.first();
+ while ( ev ) {
+ if ( ev->calID() == id )
+ deleteJournal( ev );
+ ev = JournalList.next();
+ }
+ }
+
+ if ( mUndoIncidence ) delete mUndoIncidence;
+ mUndoIncidence = 0;
+
+}
@@ -820,2 +875,3 @@ void CalendarLocal::setAlarmEnabled( int id, bool enable )
if ( it->calID() == id ) it->setAlarmEnabled( enable );
+ reInitAlarmSettings();
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index 65f6aa7..5bbe55f 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -187,2 +187,3 @@ public slots:
void setDefaultCalendarEnabledOnly();
+ void setCalendarRemove( int id );