summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-04-09 17:18:57 (UTC)
committer zautrix <zautrix>2005-04-09 17:18:57 (UTC)
commit2c39ac46121e8796e780a5321ab777f08792e5ba (patch) (unidiff)
tree65625ab02b77ef197411935808aa1ee6ff9341f8 /korganizer
parentd1982b1423417eb59c275bb09d4e3012a67ca086 (diff)
downloadkdepimpi-2c39ac46121e8796e780a5321ab777f08792e5ba.zip
kdepimpi-2c39ac46121e8796e780a5321ab777f08792e5ba.tar.gz
kdepimpi-2c39ac46121e8796e780a5321ab777f08792e5ba.tar.bz2
nf
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index f53e5d5..17f791d 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -1074,196 +1074,196 @@ void KOAgendaView::showEvents(QPtrList<Event>)
1074 1074
1075void KOAgendaView::changeEventDisplay(Event *, int) 1075void KOAgendaView::changeEventDisplay(Event *, int)
1076{ 1076{
1077 // qDebug("KOAgendaView::changeEventDisplay "); 1077 // qDebug("KOAgendaView::changeEventDisplay ");
1078 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl; 1078 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl;
1079 // this should be re-written to be MUCH smarter. Right now we 1079 // this should be re-written to be MUCH smarter. Right now we
1080 // are just playing dumb. 1080 // are just playing dumb.
1081 fillAgenda(); 1081 fillAgenda();
1082} 1082}
1083 1083
1084void KOAgendaView::fillAgenda(const QDate &) 1084void KOAgendaView::fillAgenda(const QDate &)
1085{ 1085{
1086 // qDebug("KOAgendaView::fillAgenda "); 1086 // qDebug("KOAgendaView::fillAgenda ");
1087 fillAgenda(); 1087 fillAgenda();
1088} 1088}
1089 1089
1090void KOAgendaView::fillAgenda() 1090void KOAgendaView::fillAgenda()
1091{ 1091{
1092 if ( globalFlagBlockStartup ) 1092 if ( globalFlagBlockStartup )
1093 return; 1093 return;
1094 if ( globalFlagBlockAgenda == 1 ) 1094 if ( globalFlagBlockAgenda == 1 )
1095 return; 1095 return;
1096 static bool onlyOne = false; 1096 static bool onlyOne = false;
1097 if ( onlyOne ) 1097 if ( onlyOne )
1098 return; 1098 return;
1099 onlyOne = true; 1099 onlyOne = true;
1100 //if ( globalFlagBlockAgenda == 2 ) 1100 //if ( globalFlagBlockAgenda == 2 )
1101 //globalFlagBlockAgenda = 0; 1101 //globalFlagBlockAgenda = 0;
1102 // globalFlagBlockPainting = false; 1102 // globalFlagBlockPainting = false;
1103 if ( globalFlagBlockAgenda == 0 ) 1103 if ( globalFlagBlockAgenda == 0 )
1104 globalFlagBlockAgenda = 1; 1104 globalFlagBlockAgenda = 1;
1105 // clearView(); 1105 // clearView();
1106 //qDebug("fillAgenda()++++ "); 1106 //qDebug("fillAgenda()++++ ");
1107 globalFlagBlockAgendaItemPaint = 1; 1107 globalFlagBlockAgendaItemPaint = 1;
1108 1108
1109 mAllDayAgenda->changeColumns(mSelectedDates.count()); 1109 mAllDayAgenda->changeColumns(mSelectedDates.count());
1110 mAgenda->changeColumns(mSelectedDates.count()); 1110 mAgenda->changeColumns(mSelectedDates.count());
1111 qApp->processEvents(); 1111 qApp->processEvents();
1112 mEventIndicatorTop->changeColumns(mSelectedDates.count()); 1112 mEventIndicatorTop->changeColumns(mSelectedDates.count());
1113 mEventIndicatorBottom->changeColumns(mSelectedDates.count()); 1113 mEventIndicatorBottom->changeColumns(mSelectedDates.count());
1114 setHolidayMasks(); 1114 setHolidayMasks();
1115 1115
1116 //mAgenda->hideUnused(); 1116 //mAgenda->hideUnused();
1117 //mAllDayAgenda->hideUnused(); 1117 //mAllDayAgenda->hideUnused();
1118 1118
1119 // mAgenda->blockNextRepaint( false ); 1119 // mAgenda->blockNextRepaint( false );
1120 // mAgenda->viewport()->repaint(); 1120 // mAgenda->viewport()->repaint();
1121 // mAgenda->blockNextRepaint( true ); 1121 // mAgenda->blockNextRepaint( true );
1122 mMinY.resize(mSelectedDates.count()); 1122 mMinY.resize(mSelectedDates.count());
1123 mMaxY.resize(mSelectedDates.count()); 1123 mMaxY.resize(mSelectedDates.count());
1124 1124
1125 QPtrList<Event> dayEvents; 1125 QPtrList<Event> dayEvents;
1126 1126
1127 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1127 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1128 // Therefore, gtodoset all of them. 1128 // Therefore, gtodoset all of them.
1129 QPtrList<Todo> todos = calendar()->todos(); 1129 QPtrList<Todo> todos = calendar()->todos();
1130 1130
1131 mAgenda->setDateList(mSelectedDates); 1131 mAgenda->setDateList(mSelectedDates);
1132 1132
1133 QDate today = QDate::currentDate(); 1133 QDate today = QDate::currentDate();
1134 1134
1135 DateList::ConstIterator dit; 1135 DateList::ConstIterator dit;
1136 int curCol = 0; 1136 int curCol = 0;
1137 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 1137 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
1138 QDate currentDate = *dit; 1138 QDate currentDate = *dit;
1139 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() 1139 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString()
1140 // << endl; 1140 // << endl;
1141 1141
1142 dayEvents = calendar()->events(currentDate,true); 1142 dayEvents = calendar()->events(currentDate,true);
1143 1143
1144 // Default values, which can never be reached 1144 // Default values, which can never be reached
1145 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; 1145 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1;
1146 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; 1146 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1;
1147 1147
1148 unsigned int numEvent; 1148 unsigned int numEvent;
1149 for(numEvent=0;numEvent<dayEvents.count();++numEvent) { 1149 for(numEvent=0;numEvent<dayEvents.count();++numEvent) {
1150 Event *event = dayEvents.at(numEvent); 1150 Event *event = dayEvents.at(numEvent);
1151 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) 1151 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1152 if ( event->uid().left(15) == QString("last-syncEvent-") ) 1152 if ( event->uid().left(15) == QString("last-syncEvent-") )
1153 continue; 1153 continue;
1154 // kdDebug() << " Event: " << event->summary() << endl; 1154 // kdDebug() << " Event: " << event->summary() << endl;
1155 1155
1156 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; 1156 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol;
1157 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; 1157 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol;
1158 1158
1159 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; 1159 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl;
1160 1160
1161 if (event->doesFloat()) { 1161 if (event->doesFloat()) {
1162 if (event->recurrence()->doesRecur()) { 1162 if (event->recurrence()->doesRecur()) {
1163 if (event->isMultiDay() ) { 1163 if (event->isMultiDay() ) {
1164 endX = endX - beginX;// endX is now number of days 1164 endX = endX - beginX;// endX is now number of days
1165 if ( event->recursOn( currentDate ) ) { 1165 if ( event->recursOn( currentDate ) ) {
1166 endX += curCol; 1166 endX += curCol;
1167 beginX = curCol; 1167 beginX = curCol;
1168 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1168 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1169 } else { 1169 } else {
1170 //qDebug("days %d %s",endX , currentDate.toString().latin1()); 1170 qDebug("days %d %s",endX , currentDate.toString().latin1());
1171 QDate dateit = currentDate.addDays( -endX ); 1171 QDate dateit = currentDate.addDays( -endX );
1172 if ( event->recursOn( dateit ) ) { 1172 if ( event->recursOn( dateit ) ) {
1173 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() ); 1173 qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() );
1174 if ( curCol-endX < 0 ) { 1174 if ( curCol-endX < 0 ) {
1175 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol); 1175 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol);
1176 } 1176 }
1177 } 1177 }
1178 } 1178 }
1179 } else { 1179 } else {
1180 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); 1180 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol);
1181 } 1181 }
1182#if 0 1182#if 0
1183 if (beginX <= 0 && curCol == 0) { 1183 if (beginX <= 0 && curCol == 0) {
1184 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1184 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1185 } else if (beginX == curCol) { 1185 } else if (beginX == curCol) {
1186 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1186 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1187 } else { 1187 } else {
1188 qDebug("skipped %d %d %d ",beginX , endX, curCol); 1188 qDebug("skipped %d %d %d ",beginX , endX, curCol);
1189 } 1189 }
1190#endif 1190#endif
1191 //mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); 1191 //mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol);
1192 } else { 1192 } else {
1193 if (beginX <= 0 && curCol == 0) { 1193 if (beginX <= 0 && curCol == 0) {
1194 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1194 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1195 } else if (beginX == curCol) { 1195 } else if (beginX == curCol) {
1196 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1196 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1197 } 1197 }
1198 } 1198 }
1199 } else if (event->isMultiDay()) { 1199 } else if (event->isMultiDay()) {
1200 if ( event->doesRecur () ) { 1200 if ( event->doesRecur () ) {
1201 QDate dateit = currentDate; 1201 QDate dateit = currentDate;
1202 int count = 0; 1202 int count = 0;
1203 int max = event->dtStart().daysTo( event->dtEnd() ) +2; 1203 int max = event->dtStart().daysTo( event->dtEnd() ) +2;
1204 while (! event->recursOn( dateit ) && count <= max ) { 1204 while (! event->recursOn( dateit ) && count <= max ) {
1205 ++count; 1205 ++count;
1206 dateit = dateit.addDays( -1 ); 1206 dateit = dateit.addDays( -1 );
1207 } 1207 }
1208 bool ok; 1208 bool ok;
1209 QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok ); 1209 QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok );
1210 if ( ok ) 1210 if ( ok )
1211 { 1211 {
1212 int secs = event->dtStart().secsTo( event->dtEnd() ); 1212 int secs = event->dtStart().secsTo( event->dtEnd() );
1213 QDateTime nextOcend =nextOcstart.addSecs( secs ); ; 1213 QDateTime nextOcend =nextOcstart.addSecs( secs ); ;
1214 beginX = currentDate.daysTo(nextOcstart.date()) + curCol; 1214 beginX = currentDate.daysTo(nextOcstart.date()) + curCol;
1215 endX = currentDate.daysTo(nextOcend.date()) + curCol; 1215 endX = currentDate.daysTo(nextOcend.date()) + curCol;
1216 1216
1217 } 1217 }
1218 } 1218 }
1219 int startY = mAgenda->timeToY(event->dtStart().time()); 1219 int startY = mAgenda->timeToY(event->dtStart().time());
1220 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1; 1220 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1;
1221 //qDebug("insert %d %d %d %d %d ",beginX,endX,startY,endY , curCol ); 1221 //qDebug("insert %d %d %d %d %d ",beginX,endX,startY,endY , curCol );
1222 if ((beginX <= 0 && curCol == 0) || beginX == curCol) { 1222 if ((beginX <= 0 && curCol == 0) || beginX == curCol) {
1223 //qDebug("insert!!! "); 1223 //qDebug("insert!!! ");
1224 mAgenda->insertMultiItem(event,currentDate,beginX,endX,startY,endY); 1224 mAgenda->insertMultiItem(event,currentDate,beginX,endX,startY,endY);
1225 } 1225 }
1226 if (beginX == curCol) { 1226 if (beginX == curCol) {
1227 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59)); 1227 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59));
1228 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1228 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1229 } else if (endX == curCol) { 1229 } else if (endX == curCol) {
1230 mMinY[curCol] = mAgenda->timeToY(QTime(0,0)); 1230 mMinY[curCol] = mAgenda->timeToY(QTime(0,0));
1231 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1231 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1232 } else { 1232 } else {
1233 mMinY[curCol] = mAgenda->timeToY(QTime(0,0)); 1233 mMinY[curCol] = mAgenda->timeToY(QTime(0,0));
1234 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59)); 1234 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59));
1235 } 1235 }
1236 } else { 1236 } else {
1237 int startY = mAgenda->timeToY(event->dtStart().time()); 1237 int startY = mAgenda->timeToY(event->dtStart().time());
1238 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1; 1238 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1;
1239 if (endY < startY) endY = startY; 1239 if (endY < startY) endY = startY;
1240 mAgenda->insertItem(event,currentDate,curCol,startY,endY); 1240 mAgenda->insertItem(event,currentDate,curCol,startY,endY);
1241 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1241 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1242 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1242 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1243 } 1243 }
1244 } 1244 }
1245 // ---------- [display Todos -------------- 1245 // ---------- [display Todos --------------
1246 unsigned int numTodo; 1246 unsigned int numTodo;
1247 for (numTodo = 0; numTodo < todos.count(); ++numTodo) { 1247 for (numTodo = 0; numTodo < todos.count(); ++numTodo) {
1248 Todo *todo = todos.at(numTodo); 1248 Todo *todo = todos.at(numTodo);
1249 1249
1250 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date 1250 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date
1251 1251
1252 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1252 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1253 // Already completed items can be displayed on their original due date 1253 // Already completed items can be displayed on their original due date
1254 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda 1254 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda
1255 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda; 1255 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda;
1256 bool fillIn = false; 1256 bool fillIn = false;
1257 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate ) 1257 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate )
1258 fillIn = true; 1258 fillIn = true;
1259 if ( ! fillIn && !todo->hasCompletedDate() ) 1259 if ( ! fillIn && !todo->hasCompletedDate() )
1260 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue); 1260 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue);
1261 if ( fillIn ) { 1261 if ( fillIn ) {
1262 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue 1262 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue
1263 if ( KOPrefs::instance()->mShowTodoInAgenda ) 1263 if ( KOPrefs::instance()->mShowTodoInAgenda )
1264 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol); 1264 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol);
1265 } 1265 }
1266 else { 1266 else {
1267 QDateTime dt; 1267 QDateTime dt;
1268 if ( todo->hasCompletedDate() ) 1268 if ( todo->hasCompletedDate() )
1269 dt = todo->completed(); 1269 dt = todo->completed();