summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-07-06 11:17:00 (UTC)
committer zautrix <zautrix>2005-07-06 11:17:00 (UTC)
commit7e22293b1ec1ee190ca8db6c8ecd079bafdae520 (patch) (unidiff)
treeaed67fbbd844480e3dc0a7b5587edca766b51a5f /korganizer
parent3b77a857e17e04e47d22ba6017dd723ed922e3fc (diff)
downloadkdepimpi-7e22293b1ec1ee190ca8db6c8ecd079bafdae520.zip
kdepimpi-7e22293b1ec1ee190ca8db6c8ecd079bafdae520.tar.gz
kdepimpi-7e22293b1ec1ee190ca8db6c8ecd079bafdae520.tar.bz2
fixes
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp4
-rw-r--r--korganizer/koagenda.cpp1
-rw-r--r--korganizer/kotodoview.cpp3
-rw-r--r--korganizer/mainwindow.cpp8
4 files changed, 10 insertions, 6 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 7566c6f..4b3f806 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -3952,102 +3952,100 @@ bool CalendarView::exportVCalendar( QString filename )
3952 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this); 3952 //QString filename = KFileDialog::getSaveFileName("vcalout.vcs",i18n("*.vcs|VCalendars"),this);
3953 3953
3954 // Force correct extension 3954 // Force correct extension
3955 if (filename.right(4) != ".vcs") filename += ".vcs"; 3955 if (filename.right(4) != ".vcs") filename += ".vcs";
3956 3956
3957 FileStorage storage( mCalendar, filename, new VCalFormat ); 3957 FileStorage storage( mCalendar, filename, new VCalFormat );
3958 return storage.save(); 3958 return storage.save();
3959 3959
3960} 3960}
3961 3961
3962void CalendarView::eventUpdated(Incidence *) 3962void CalendarView::eventUpdated(Incidence *)
3963{ 3963{
3964 setModified(); 3964 setModified();
3965 // Don't call updateView here. The code, which has caused the update of the 3965 // Don't call updateView here. The code, which has caused the update of the
3966 // event is responsible for updating the view. 3966 // event is responsible for updating the view.
3967 // updateView(); 3967 // updateView();
3968} 3968}
3969 3969
3970void CalendarView::adaptNavigationUnits() 3970void CalendarView::adaptNavigationUnits()
3971{ 3971{
3972 if (mViewManager->currentView()->isEventView()) { 3972 if (mViewManager->currentView()->isEventView()) {
3973 int days = mViewManager->currentView()->currentDateCount(); 3973 int days = mViewManager->currentView()->currentDateCount();
3974 if (days == 1) { 3974 if (days == 1) {
3975 emit changeNavStringPrev(i18n("&Previous Day")); 3975 emit changeNavStringPrev(i18n("&Previous Day"));
3976 emit changeNavStringNext(i18n("&Next Day")); 3976 emit changeNavStringNext(i18n("&Next Day"));
3977 } else { 3977 } else {
3978 emit changeNavStringPrev(i18n("&Previous Week")); 3978 emit changeNavStringPrev(i18n("&Previous Week"));
3979 emit changeNavStringNext(i18n("&Next Week")); 3979 emit changeNavStringNext(i18n("&Next Week"));
3980 } 3980 }
3981 } 3981 }
3982} 3982}
3983 3983
3984void CalendarView::processMainViewSelection( Incidence *incidence ) 3984void CalendarView::processMainViewSelection( Incidence *incidence )
3985{ 3985{
3986 if ( incidence ) mTodoList->clearSelection(); 3986 if ( incidence ) mTodoList->clearSelection();
3987 processIncidenceSelection( incidence ); 3987 processIncidenceSelection( incidence );
3988} 3988}
3989 3989
3990void CalendarView::processTodoListSelection( Incidence *incidence ) 3990void CalendarView::processTodoListSelection( Incidence *incidence )
3991{ 3991{
3992 if ( incidence && mViewManager->currentView() ) { 3992 if ( incidence && mViewManager->currentView() ) {
3993 mViewManager->currentView()->clearSelection(); 3993 mViewManager->currentView()->clearSelection();
3994 } 3994 }
3995 processIncidenceSelection( incidence ); 3995 processIncidenceSelection( incidence );
3996} 3996}
3997 3997
3998void CalendarView::processIncidenceSelection( Incidence *incidence ) 3998void CalendarView::processIncidenceSelection( Incidence *incidence )
3999{ 3999{
4000 emit incidenceSelected( incidence );
4000 if ( incidence == mSelectedIncidence ) return; 4001 if ( incidence == mSelectedIncidence ) return;
4001
4002 mSelectedIncidence = incidence; 4002 mSelectedIncidence = incidence;
4003 4003
4004 emit incidenceSelected( mSelectedIncidence );
4005
4006 if ( incidence && incidence->typeID() == eventID ) { 4004 if ( incidence && incidence->typeID() == eventID ) {
4007 Event *event = static_cast<Event *>( incidence ); 4005 Event *event = static_cast<Event *>( incidence );
4008 if ( event->organizer() == KOPrefs::instance()->email() ) { 4006 if ( event->organizer() == KOPrefs::instance()->email() ) {
4009 emit organizerEventsSelected( true ); 4007 emit organizerEventsSelected( true );
4010 } else { 4008 } else {
4011 emit organizerEventsSelected(false); 4009 emit organizerEventsSelected(false);
4012 } 4010 }
4013 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, 4011 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails,
4014 KOPrefs::instance()->email() ) ) { 4012 KOPrefs::instance()->email() ) ) {
4015 emit groupEventsSelected( true ); 4013 emit groupEventsSelected( true );
4016 } else { 4014 } else {
4017 emit groupEventsSelected(false); 4015 emit groupEventsSelected(false);
4018 } 4016 }
4019 return; 4017 return;
4020 } else { 4018 } else {
4021 if ( incidence && incidence->typeID() == todoID ) { 4019 if ( incidence && incidence->typeID() == todoID ) {
4022 emit todoSelected( true ); 4020 emit todoSelected( true );
4023 Todo *event = static_cast<Todo *>( incidence ); 4021 Todo *event = static_cast<Todo *>( incidence );
4024 if ( event->organizer() == KOPrefs::instance()->email() ) { 4022 if ( event->organizer() == KOPrefs::instance()->email() ) {
4025 emit organizerEventsSelected( true ); 4023 emit organizerEventsSelected( true );
4026 } else { 4024 } else {
4027 emit organizerEventsSelected(false); 4025 emit organizerEventsSelected(false);
4028 } 4026 }
4029 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, 4027 if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails,
4030 KOPrefs::instance()->email() ) ) { 4028 KOPrefs::instance()->email() ) ) {
4031 emit groupEventsSelected( true ); 4029 emit groupEventsSelected( true );
4032 } else { 4030 } else {
4033 emit groupEventsSelected(false); 4031 emit groupEventsSelected(false);
4034 } 4032 }
4035 return; 4033 return;
4036 } else { 4034 } else {
4037 emit todoSelected( false ); 4035 emit todoSelected( false );
4038 emit organizerEventsSelected(false); 4036 emit organizerEventsSelected(false);
4039 emit groupEventsSelected(false); 4037 emit groupEventsSelected(false);
4040 } 4038 }
4041 return; 4039 return;
4042 } 4040 }
4043 4041
4044 /* if ( incidence && incidence->typeID() == todoID ) { 4042 /* if ( incidence && incidence->typeID() == todoID ) {
4045 emit todoSelected( true ); 4043 emit todoSelected( true );
4046 } else { 4044 } else {
4047 emit todoSelected( false ); 4045 emit todoSelected( false );
4048 }*/ 4046 }*/
4049} 4047}
4050 4048
4051 4049
4052void CalendarView::checkClipboard() 4050void CalendarView::checkClipboard()
4053{ 4051{
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 92c1cd6..acdf5a0 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -109,97 +109,96 @@ void MarcusBains::updateLoc()
109 updateLocation(); 109 updateLocation();
110} 110}
111void MarcusBains::updateLocation(bool recalculate) 111void MarcusBains::updateLocation(bool recalculate)
112{ 112{
113 113
114 QTime tim = QTime::currentTime(); 114 QTime tim = QTime::currentTime();
115 //qDebug(" MarcusBains::updateLocation %s ", tim.toString().latin1()); 115 //qDebug(" MarcusBains::updateLocation %s ", tim.toString().latin1());
116 if((tim.hour() == 0) && (oldTime.hour()==23)) 116 if((tim.hour() == 0) && (oldTime.hour()==23))
117 recalculate = true; 117 recalculate = true;
118 118
119 int mins = tim.hour()*60 + tim.minute(); 119 int mins = tim.hour()*60 + tim.minute();
120 int minutesPerCell = 24 * 60 / agenda->rows(); 120 int minutesPerCell = 24 * 60 / agenda->rows();
121 int y = mins*agenda->gridSpacingY()/minutesPerCell; 121 int y = mins*agenda->gridSpacingY()/minutesPerCell;
122 int today = recalculate ? todayColumn() : oldToday; 122 int today = recalculate ? todayColumn() : oldToday;
123 int x = agenda->gridSpacingX()*today; 123 int x = agenda->gridSpacingX()*today;
124 bool disabled = !(KOPrefs::instance()->mMarcusBainsEnabled); 124 bool disabled = !(KOPrefs::instance()->mMarcusBainsEnabled);
125 125
126 oldTime = tim; 126 oldTime = tim;
127 oldToday = today; 127 oldToday = today;
128 128
129 if(disabled || (today<0)) { 129 if(disabled || (today<0)) {
130 hide(); mTimeBox->hide(); 130 hide(); mTimeBox->hide();
131 return; 131 return;
132 } else { 132 } else {
133 show(); mTimeBox->show(); 133 show(); mTimeBox->show();
134 } 134 }
135 135
136 if(recalculate) 136 if(recalculate)
137 setFixedSize(agenda->gridSpacingX(),1); 137 setFixedSize(agenda->gridSpacingX(),1);
138 agenda->moveChild(this, x, y); 138 agenda->moveChild(this, x, y);
139 raise(); 139 raise();
140 140
141 if(recalculate) 141 if(recalculate)
142 //mTimeBox->setFont(QFont("helvetica",10)); 142 //mTimeBox->setFont(QFont("helvetica",10));
143 mTimeBox->setFont(KOPrefs::instance()->mMarcusBainsFont); 143 mTimeBox->setFont(KOPrefs::instance()->mMarcusBainsFont);
144 144
145 mTimeBox->setText(KGlobal::locale()->formatTime(tim, KOPrefs::instance()->mMarcusBainsShowSeconds)); 145 mTimeBox->setText(KGlobal::locale()->formatTime(tim, KOPrefs::instance()->mMarcusBainsShowSeconds));
146 mTimeBox->adjustSize(); 146 mTimeBox->adjustSize();
147 // the -2 below is there because there is a bug in this program 147 // the -2 below is there because there is a bug in this program
148 // somewhere, where the last column of this widget is a few pixels 148 // somewhere, where the last column of this widget is a few pixels
149 // narrower than the other columns. 149 // narrower than the other columns.
150 int offs = (today==agenda->columns()-1) ? -4 : 0; 150 int offs = (today==agenda->columns()-1) ? -4 : 0;
151 agenda->moveChild(mTimeBox, 151 agenda->moveChild(mTimeBox,
152 x+agenda->gridSpacingX()-mTimeBox->width()+offs-1, 152 x+agenda->gridSpacingX()-mTimeBox->width()+offs-1,
153 y-mTimeBox->height()); 153 y-mTimeBox->height());
154 mTimeBox->raise(); 154 mTimeBox->raise();
155 //mTimeBox->setAutoMask(true); 155 //mTimeBox->setAutoMask(true);
156 int secs = QTime::currentTime().second(); 156 int secs = QTime::currentTime().second();
157 qDebug("second %d ", secs );
158 minutes->start( (60 - secs +1)*1000 ,true); 157 minutes->start( (60 - secs +1)*1000 ,true);
159} 158}
160 159
161 160
162//////////////////////////////////////////////////////////////////////////// 161////////////////////////////////////////////////////////////////////////////
163 162
164 163
165/* 164/*
166 Create an agenda widget with rows rows and columns columns. 165 Create an agenda widget with rows rows and columns columns.
167*/ 166*/
168KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent, 167KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent,
169 const char *name,WFlags f) : 168 const char *name,WFlags f) :
170 QScrollView(parent,name,f) 169 QScrollView(parent,name,f)
171{ 170{
172 171
173 mAllAgendaPopup = 0; 172 mAllAgendaPopup = 0;
174 mColumns = columns; 173 mColumns = columns;
175 mRows = rows; 174 mRows = rows;
176 mGridSpacingY = rowSize; 175 mGridSpacingY = rowSize;
177 mAllDayMode = false; 176 mAllDayMode = false;
178#ifndef DESKTOP_VERSION 177#ifndef DESKTOP_VERSION
179 //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 178 //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
180#endif 179#endif
181 mHolidayMask = 0; 180 mHolidayMask = 0;
182 init(); 181 init();
183 connect ( this, SIGNAL (contentsMoving ( int , int ) ), this, SLOT ( slotContentMove(int,int)) ); 182 connect ( this, SIGNAL (contentsMoving ( int , int ) ), this, SLOT ( slotContentMove(int,int)) );
184} 183}
185 184
186/* 185/*
187 Create an agenda widget with columns columns and one row. This is used for 186 Create an agenda widget with columns columns and one row. This is used for
188 all-day events. 187 all-day events.
189*/ 188*/
190KOAgenda::KOAgenda(int columns,QWidget *parent,const char *name,WFlags f) : 189KOAgenda::KOAgenda(int columns,QWidget *parent,const char *name,WFlags f) :
191 QScrollView(parent,name,f) 190 QScrollView(parent,name,f)
192{ 191{
193 mAllAgendaPopup = 0; 192 mAllAgendaPopup = 0;
194 blockResize = false; 193 blockResize = false;
195 mColumns = columns; 194 mColumns = columns;
196 mRows = 1; 195 mRows = 1;
197 //qDebug("aaaaaaaaaaaaaaaaaaldays %d ", KOPrefs::instance()->mAllDaySize); 196 //qDebug("aaaaaaaaaaaaaaaaaaldays %d ", KOPrefs::instance()->mAllDaySize);
198 mGridSpacingY = KOPrefs::instance()->mAllDaySize; 197 mGridSpacingY = KOPrefs::instance()->mAllDaySize;
199 mAllDayMode = true; 198 mAllDayMode = true;
200#ifndef DESKTOP_VERSION 199#ifndef DESKTOP_VERSION
201 //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 200 //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
202#endif 201#endif
203 mHolidayMask = 0; 202 mHolidayMask = 0;
204 init(); 203 init();
205} 204}
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 86e1bd9..a87e6fc 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -1109,120 +1109,123 @@ void KOTodoView::editTodo()
1109void KOTodoView::cloneTodo() 1109void KOTodoView::cloneTodo()
1110{ 1110{
1111 if (mActiveItem) { 1111 if (mActiveItem) {
1112 emit cloneTodoSignal((Incidence*)mActiveItem->todo()); 1112 emit cloneTodoSignal((Incidence*)mActiveItem->todo());
1113 } 1113 }
1114} 1114}
1115void KOTodoView::cancelTodo() 1115void KOTodoView::cancelTodo()
1116{ 1116{
1117 if (mActiveItem) { 1117 if (mActiveItem) {
1118 emit cancelTodoSignal((Incidence*)mActiveItem->todo()); 1118 emit cancelTodoSignal((Incidence*)mActiveItem->todo());
1119 } 1119 }
1120} 1120}
1121void KOTodoView::moveTodo() 1121void KOTodoView::moveTodo()
1122{ 1122{
1123 if (mActiveItem) { 1123 if (mActiveItem) {
1124 emit moveTodoSignal((Incidence*)mActiveItem->todo()); 1124 emit moveTodoSignal((Incidence*)mActiveItem->todo());
1125 } 1125 }
1126} 1126}
1127void KOTodoView::beamTodo() 1127void KOTodoView::beamTodo()
1128{ 1128{
1129 if (mActiveItem) { 1129 if (mActiveItem) {
1130 emit beamTodoSignal((Incidence*)mActiveItem->todo()); 1130 emit beamTodoSignal((Incidence*)mActiveItem->todo());
1131 } 1131 }
1132} 1132}
1133 1133
1134 1134
1135void KOTodoView::showTodo() 1135void KOTodoView::showTodo()
1136{ 1136{
1137 if (mActiveItem) { 1137 if (mActiveItem) {
1138 emit showTodoSignal(mActiveItem->todo()); 1138 emit showTodoSignal(mActiveItem->todo());
1139 } 1139 }
1140} 1140}
1141 1141
1142void KOTodoView::deleteTodo() 1142void KOTodoView::deleteTodo()
1143{ 1143{
1144 if (mActiveItem) { 1144 if (mActiveItem) {
1145 emit deleteTodoSignal(mActiveItem->todo()); 1145 emit deleteTodoSignal(mActiveItem->todo());
1146 } 1146 }
1147} 1147}
1148 1148
1149void KOTodoView::setNewPriority(int index) 1149void KOTodoView::setNewPriority(int index)
1150{ 1150{
1151 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1151 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1152 mActiveItem->todo()->setPriority(mPriority[index]); 1152 mActiveItem->todo()->setPriority(mPriority[index]);
1153 mActiveItem->construct(); 1153 mActiveItem->construct();
1154 todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED); 1154 todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED);
1155 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1155 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1156 } 1156 }
1157 processSelectionChange();
1157} 1158}
1158 1159
1159void KOTodoView::setNewPercentage(int index) 1160void KOTodoView::setNewPercentage(int index)
1160{ 1161{
1161 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1162 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1162 1163
1163 if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) { 1164 if ( mPercentage[index] == 100 && !mActiveItem->isOn() ) {
1164 mActiveItem->setOn( true ); 1165 mActiveItem->setOn( true );
1166 processSelectionChange();
1165 return; 1167 return;
1166 } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) { 1168 } else if ( mPercentage[index] != 100 && mActiveItem->isOn() ) {
1167 KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent())); 1169 KOTodoViewItem* par = (static_cast<KOTodoViewItem*>(mActiveItem->parent()));
1168 if ( par && par->isOn() ) 1170 if ( par && par->isOn() )
1169 par->setOn( false ); 1171 par->setOn( false );
1170 } 1172 }
1171 if (mPercentage[index] == 100) { 1173 if (mPercentage[index] == 100) {
1172 mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); 1174 mActiveItem->todo()->setCompleted(QDateTime::currentDateTime());
1173 } else { 1175 } else {
1174 mActiveItem->todo()->setCompleted(false); 1176 mActiveItem->todo()->setCompleted(false);
1175 } 1177 }
1176 mActiveItem->todo()->setPercentComplete(mPercentage[index]); 1178 mActiveItem->todo()->setPercentComplete(mPercentage[index]);
1177 mActiveItem->construct(); 1179 mActiveItem->construct();
1178 todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); 1180 todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED);
1179 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1181 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1180 } 1182 }
1183 processSelectionChange();
1181} 1184}
1182 1185
1183void KOTodoView::fillCategories () 1186void KOTodoView::fillCategories ()
1184{ 1187{
1185 mCategoryPopupMenu->clear(); 1188 mCategoryPopupMenu->clear();
1186 if ( ! mActiveItem ) return; 1189 if ( ! mActiveItem ) return;
1187 QStringList checkedCategories = mActiveItem->todo()->categories (); 1190 QStringList checkedCategories = mActiveItem->todo()->categories ();
1188 for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); 1191 for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin ();
1189 it != KOPrefs::instance()->mCustomCategories.end (); 1192 it != KOPrefs::instance()->mCustomCategories.end ();
1190 ++it) { 1193 ++it) {
1191 int index = mCategoryPopupMenu->insertItem (*it); 1194 int index = mCategoryPopupMenu->insertItem (*it);
1192 mCategory[index] = *it; 1195 mCategory[index] = *it;
1193 if (checkedCategories.find (*it) != checkedCategories.end ()) mCategoryPopupMenu->setItemChecked (index, true); 1196 if (checkedCategories.find (*it) != checkedCategories.end ()) mCategoryPopupMenu->setItemChecked (index, true);
1194 } 1197 }
1195} 1198}
1196void KOTodoView::fillCal () 1199void KOTodoView::fillCal ()
1197{ 1200{
1198 mCalPopupMenu->clear(); 1201 mCalPopupMenu->clear();
1199 if (!mActiveItem) return; 1202 if (!mActiveItem) return;
1200 bool readO = mActiveItem->todo()->isReadOnly(); 1203 bool readO = mActiveItem->todo()->isReadOnly();
1201 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 1204 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
1202 while ( kkf ) { 1205 while ( kkf ) {
1203 int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber); 1206 int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber);
1204 if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO ) 1207 if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO )
1205 mCalPopupMenu->setItemEnabled( index, false ); 1208 mCalPopupMenu->setItemEnabled( index, false );
1206 mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID()); 1209 mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID());
1207 kkf = KOPrefs::instance()->mCalendars.next(); 1210 kkf = KOPrefs::instance()->mCalendars.next();
1208 } 1211 }
1209} 1212}
1210void KOTodoView::changedCal (int index ) 1213void KOTodoView::changedCal (int index )
1211{ 1214{
1212 if (!mActiveItem) return; 1215 if (!mActiveItem) return;
1213 mActiveItem->todo()->setCalID( index ); 1216 mActiveItem->todo()->setCalID( index );
1214 mActiveItem->construct(); 1217 mActiveItem->construct();
1215} 1218}
1216void KOTodoView::changedCategories(int index) 1219void KOTodoView::changedCategories(int index)
1217{ 1220{
1218 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1221 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1219 QStringList categories = mActiveItem->todo()->categories (); 1222 QStringList categories = mActiveItem->todo()->categories ();
1220 QString colcat = categories.first(); 1223 QString colcat = categories.first();
1221 if (categories.find (mCategory[index]) != categories.end ()) 1224 if (categories.find (mCategory[index]) != categories.end ())
1222 categories.remove (mCategory[index]); 1225 categories.remove (mCategory[index]);
1223 else 1226 else
1224 categories.insert (categories.end(), mCategory[index]); 1227 categories.insert (categories.end(), mCategory[index]);
1225 categories.sort (); 1228 categories.sort ();
1226 if ( !colcat.isEmpty() ) { 1229 if ( !colcat.isEmpty() ) {
1227 if ( categories.find ( colcat ) != categories.end () ) { 1230 if ( categories.find ( colcat ) != categories.end () ) {
1228 categories.remove( colcat ); 1231 categories.remove( colcat );
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 88dbd4f..cbf6096 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1637,98 +1637,102 @@ void MainWindow::updateWeek(QDate seda)
1637 mWeekPixmap.fill( mWeekBgColor ); 1637 mWeekPixmap.fill( mWeekBgColor );
1638 QPainter p ( &mWeekPixmap ); 1638 QPainter p ( &mWeekPixmap );
1639 p.setFont( mWeekFont ); 1639 p.setFont( mWeekFont );
1640 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); 1640 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) );
1641 p.end(); 1641 p.end();
1642 QIconSet icon3 ( mWeekPixmap ); 1642 QIconSet icon3 ( mWeekPixmap );
1643 mWeekAction->setIconSet ( icon3 ); 1643 mWeekAction->setIconSet ( icon3 );
1644 1644
1645} 1645}
1646void MainWindow::updateWeekNum(const DateList &selectedDates) 1646void MainWindow::updateWeekNum(const DateList &selectedDates)
1647{ 1647{
1648 updateWeek( selectedDates.first() ); 1648 updateWeek( selectedDates.first() );
1649} 1649}
1650void MainWindow::processIncidenceSelection( Incidence *incidence ) 1650void MainWindow::processIncidenceSelection( Incidence *incidence )
1651{ 1651{
1652 if ( !incidence ) { 1652 if ( !incidence ) {
1653 mShowAction->setMenuText( i18n("Show") ); 1653 mShowAction->setMenuText( i18n("Show") );
1654 enableIncidenceActions( false ); 1654 enableIncidenceActions( false );
1655 mNewSubTodoAction->setEnabled( false ); 1655 mNewSubTodoAction->setEnabled( false );
1656 setCaptionToDates(); 1656 setCaptionToDates();
1657 return; 1657 return;
1658 } 1658 }
1659 QString startString = ""; 1659 QString startString = "";
1660 if ( incidence->typeID() != todoID ) { 1660 if ( incidence->typeID() != todoID ) {
1661 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1661 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1662 if ( incidence->doesFloat() ) { 1662 if ( incidence->doesFloat() ) {
1663 startString += ": "+incidence->dtStartDateStr( true ); 1663 startString += ": "+incidence->dtStartDateStr( true );
1664 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1664 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1665 } else { 1665 } else {
1666 startString = ": "+incidence->dtStartStr(true); 1666 startString = ": "+incidence->dtStartStr(true);
1667 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1667 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1668 } 1668 }
1669 } else { 1669 } else {
1670 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1670 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1671 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1671 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1672 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1672 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1673 if ( incidence->isBirthday() || incidence->isAnniversary() ) { 1673 if ( incidence->isBirthday() || incidence->isAnniversary() ) {
1674 bool ok; 1674 bool ok;
1675 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); 1675 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok );
1676 if ( ok ) { 1676 if ( ok ) {
1677 int years = noc.date().year() - incidence->dtStart().date().year(); 1677 int years = noc.date().year() - incidence->dtStart().date().year();
1678 startString += i18n(" (%1 y.)"). arg( years ); 1678 startString += i18n(" (%1 y.)"). arg( years );
1679 } 1679 }
1680 } 1680 }
1681 else 1681 else
1682 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1682 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1683 } 1683 }
1684 } 1684 }
1685 else 1685 else {
1686 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1686 if ( (( KCal::Todo*)incidence)->percentComplete() == 100 )
1687 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+i18n("completed on %1").arg( (( KCal::Todo*)incidence)->completedStr(true) );
1688 else
1689 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1690 }
1687 if ( !incidence->location().isEmpty() ) 1691 if ( !incidence->location().isEmpty() )
1688 startString += " (" +incidence->location()+")"; 1692 startString += " (" +incidence->location()+")";
1689 setCaption( incidence->summary()+startString); 1693 setCaption( incidence->summary()+startString);
1690 enableIncidenceActions( true ); 1694 enableIncidenceActions( true );
1691 if ( incidence->typeID() == eventID ) { 1695 if ( incidence->typeID() == eventID ) {
1692 mShowAction->setMenuText( i18n("Show Event") ); 1696 mShowAction->setMenuText( i18n("Show Event") );
1693 mNewSubTodoAction->setEnabled( false ); 1697 mNewSubTodoAction->setEnabled( false );
1694 } else if ( incidence->typeID() == todoID ) { 1698 } else if ( incidence->typeID() == todoID ) {
1695 mShowAction->setMenuText( i18n("Show Todo") ); 1699 mShowAction->setMenuText( i18n("Show Todo") );
1696 mNewSubTodoAction->setEnabled( true ); 1700 mNewSubTodoAction->setEnabled( true );
1697 } else { 1701 } else {
1698 mShowAction->setMenuText( i18n("Show") ); 1702 mShowAction->setMenuText( i18n("Show") );
1699 mNewSubTodoAction->setEnabled( false ); 1703 mNewSubTodoAction->setEnabled( false );
1700 } 1704 }
1701} 1705}
1702 1706
1703void MainWindow::enableIncidenceActions( bool enabled ) 1707void MainWindow::enableIncidenceActions( bool enabled )
1704{ 1708{
1705 mShowAction->setEnabled( enabled ); 1709 mShowAction->setEnabled( enabled );
1706 mEditAction->setEnabled( enabled ); 1710 mEditAction->setEnabled( enabled );
1707 mDeleteAction->setEnabled( enabled ); 1711 mDeleteAction->setEnabled( enabled );
1708 1712
1709 mCloneAction->setEnabled( enabled ); 1713 mCloneAction->setEnabled( enabled );
1710 mMoveAction->setEnabled( enabled ); 1714 mMoveAction->setEnabled( enabled );
1711#ifndef DESKTOP_VERSION 1715#ifndef DESKTOP_VERSION
1712 mBeamAction->setEnabled( enabled ); 1716 mBeamAction->setEnabled( enabled );
1713#endif 1717#endif
1714 mCancelAction->setEnabled( enabled ); 1718 mCancelAction->setEnabled( enabled );
1715} 1719}
1716 1720
1717void MainWindow::importOL() 1721void MainWindow::importOL()
1718{ 1722{
1719#ifdef _OL_IMPORT_ 1723#ifdef _OL_IMPORT_
1720 mView->clearAllViews(); 1724 mView->clearAllViews();
1721 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1725 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1722 id->exec(); 1726 id->exec();
1723 delete id; 1727 delete id;
1724 mView->calendar()->checkAlarmForIncidence( 0, true ); 1728 mView->calendar()->checkAlarmForIncidence( 0, true );
1725 mView->updateView(); 1729 mView->updateView();
1726#endif 1730#endif
1727} 1731}
1728void MainWindow::importBday() 1732void MainWindow::importBday()
1729{ 1733{
1730 int result = QMessageBox::warning( this, i18n("KO/Pi import information!"), 1734 int result = QMessageBox::warning( this, i18n("KO/Pi import information!"),
1731 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1735 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1732 i18n("Import!"), i18n("Cancel"), 0, 1736 i18n("Import!"), i18n("Cancel"), 0,
1733 0, 1 ); 1737 0, 1 );
1734 if ( result == 0 ) { 1738 if ( result == 0 ) {