summaryrefslogtreecommitdiffabout
path: root/korganizer/koagendaview.cpp
Unidiff
Diffstat (limited to 'korganizer/koagendaview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp31
1 files changed, 1 insertions, 30 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index a42227c..5a63b35 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -1076,123 +1076,117 @@ void KOAgendaView::showDates( const QDate &start, const QDate &end )
1076 1076
1077 1077
1078void KOAgendaView::showEvents(QPtrList<Event>) 1078void KOAgendaView::showEvents(QPtrList<Event>)
1079{ 1079{
1080 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl; 1080 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl;
1081} 1081}
1082 1082
1083void KOAgendaView::changeEventDisplay(Event *, int) 1083void KOAgendaView::changeEventDisplay(Event *, int)
1084{ 1084{
1085 // qDebug("KOAgendaView::changeEventDisplay "); 1085 // qDebug("KOAgendaView::changeEventDisplay ");
1086 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl; 1086 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl;
1087 // this should be re-written to be MUCH smarter. Right now we 1087 // this should be re-written to be MUCH smarter. Right now we
1088 // are just playing dumb. 1088 // are just playing dumb.
1089 fillAgenda(); 1089 fillAgenda();
1090} 1090}
1091 1091
1092void KOAgendaView::fillAgenda(const QDate &) 1092void KOAgendaView::fillAgenda(const QDate &)
1093{ 1093{
1094 // qDebug("KOAgendaView::fillAgenda "); 1094 // qDebug("KOAgendaView::fillAgenda ");
1095 fillAgenda(); 1095 fillAgenda();
1096} 1096}
1097 1097
1098void KOAgendaView::fillAgenda() 1098void KOAgendaView::fillAgenda()
1099{ 1099{
1100 if ( globalFlagBlockStartup ) 1100 if ( globalFlagBlockStartup )
1101 return; 1101 return;
1102 if ( globalFlagBlockAgenda == 1 ) 1102 if ( globalFlagBlockAgenda == 1 )
1103 return; 1103 return;
1104 static bool onlyOne = false; 1104 static bool onlyOne = false;
1105 if ( onlyOne ) 1105 if ( onlyOne )
1106 return; 1106 return;
1107 onlyOne = true; 1107 onlyOne = true;
1108 //if ( globalFlagBlockAgenda == 2 ) 1108 //if ( globalFlagBlockAgenda == 2 )
1109 //globalFlagBlockAgenda = 0; 1109 //globalFlagBlockAgenda = 0;
1110 // globalFlagBlockPainting = false; 1110 // globalFlagBlockPainting = false;
1111 if ( globalFlagBlockAgenda == 0 ) 1111 if ( globalFlagBlockAgenda == 0 )
1112 globalFlagBlockAgenda = 1; 1112 globalFlagBlockAgenda = 1;
1113 // clearView(); 1113 // clearView();
1114 //qDebug("fillAgenda()++++ "); 1114 //qDebug("fillAgenda()++++ ");
1115 globalFlagBlockAgendaItemPaint = 1; 1115 globalFlagBlockAgendaItemPaint = 1;
1116 1116
1117 mAllDayAgenda->changeColumns(mSelectedDates.count()); 1117 mAllDayAgenda->changeColumns(mSelectedDates.count());
1118 mAgenda->changeColumns(mSelectedDates.count()); 1118 mAgenda->changeColumns(mSelectedDates.count());
1119 qApp->processEvents(); 1119 qApp->processEvents();
1120 mEventIndicatorTop->changeColumns(mSelectedDates.count()); 1120 mEventIndicatorTop->changeColumns(mSelectedDates.count());
1121 mEventIndicatorBottom->changeColumns(mSelectedDates.count()); 1121 mEventIndicatorBottom->changeColumns(mSelectedDates.count());
1122 setHolidayMasks(); 1122 setHolidayMasks();
1123 1123
1124 //mAgenda->hideUnused();
1125 //mAllDayAgenda->hideUnused();
1126
1127 // mAgenda->blockNextRepaint( false );
1128 // mAgenda->viewport()->repaint();
1129 // mAgenda->blockNextRepaint( true );
1130 mMinY.resize(mSelectedDates.count()); 1124 mMinY.resize(mSelectedDates.count());
1131 mMaxY.resize(mSelectedDates.count()); 1125 mMaxY.resize(mSelectedDates.count());
1132 1126
1133 QPtrList<Event> dayEvents; 1127 QPtrList<Event> dayEvents;
1134 1128
1135 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1129 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1136 // Therefore, gtodoset all of them. 1130 // Therefore, gtodoset all of them.
1137 QPtrList<Todo> todos = calendar()->todos(); 1131 QPtrList<Todo> todos = calendar()->todos();
1138 1132
1139 mAgenda->setDateList(mSelectedDates); 1133 mAgenda->setDateList(mSelectedDates);
1140 1134
1141 QDate today = QDate::currentDate(); 1135 QDate today = QDate::currentDate();
1142 1136
1143 DateList::ConstIterator dit; 1137 DateList::ConstIterator dit;
1144 int curCol = 0; 1138 int curCol = 0;
1145 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 1139 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
1146 QDate currentDate = *dit; 1140 QDate currentDate = *dit;
1147 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() 1141 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString()
1148 // << endl; 1142 // << endl;
1149 1143
1150 dayEvents = calendar()->events(currentDate,true); 1144 dayEvents = calendar()->events(currentDate,false);
1151 1145
1152 // Default values, which can never be reached 1146 // Default values, which can never be reached
1153 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; 1147 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1;
1154 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; 1148 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1;
1155 1149
1156 unsigned int numEvent; 1150 unsigned int numEvent;
1157 for(numEvent=0;numEvent<dayEvents.count();++numEvent) { 1151 for(numEvent=0;numEvent<dayEvents.count();++numEvent) {
1158 Event *event = dayEvents.at(numEvent); 1152 Event *event = dayEvents.at(numEvent);
1159 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) 1153 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1160 if ( event->uid().left(15) == QString("last-syncEvent-") ) 1154 if ( event->uid().left(15) == QString("last-syncEvent-") )
1161 continue; 1155 continue;
1162 // kdDebug() << " Event: " << event->summary() << endl; 1156 // kdDebug() << " Event: " << event->summary() << endl;
1163 1157
1164 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; 1158 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol;
1165 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; 1159 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol;
1166 1160
1167 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; 1161 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl;
1168 1162
1169 if (event->doesFloat()) { 1163 if (event->doesFloat()) {
1170 if (event->recurrence()->doesRecur()) { 1164 if (event->recurrence()->doesRecur()) {
1171 if (event->isMultiDay() ) { 1165 if (event->isMultiDay() ) {
1172 endX = endX - beginX;// endX is now number of days 1166 endX = endX - beginX;// endX is now number of days
1173 if ( event->recursOn( currentDate ) ) { 1167 if ( event->recursOn( currentDate ) ) {
1174 endX += curCol; 1168 endX += curCol;
1175 beginX = curCol; 1169 beginX = curCol;
1176 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1170 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1177 } else { 1171 } else {
1178 //qDebug("days %d %s",endX , currentDate.toString().latin1()); 1172 //qDebug("days %d %s",endX , currentDate.toString().latin1());
1179 QDate dateit = currentDate.addDays( -endX ); 1173 QDate dateit = currentDate.addDays( -endX );
1180 if ( event->recursOn( dateit ) ) { 1174 if ( event->recursOn( dateit ) ) {
1181 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() ); 1175 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() );
1182 if ( curCol-endX < 0 ) { 1176 if ( curCol-endX < 0 ) {
1183 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol); 1177 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol);
1184 } 1178 }
1185 } 1179 }
1186 } 1180 }
1187 } else { 1181 } else {
1188 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); 1182 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol);
1189 } 1183 }
1190 1184
1191 } else { 1185 } else {
1192 if (beginX <= 0 && curCol == 0) { 1186 if (beginX <= 0 && curCol == 0) {
1193 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1187 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1194 } else if (beginX == curCol) { 1188 } else if (beginX == curCol) {
1195 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1189 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1196 } 1190 }
1197 } 1191 }
1198 } else if (event->isMultiDay()) { 1192 } else if (event->isMultiDay()) {
@@ -1244,152 +1238,129 @@ void KOAgendaView::fillAgenda()
1244 // ---------- [display Todos -------------- 1238 // ---------- [display Todos --------------
1245 unsigned int numTodo; 1239 unsigned int numTodo;
1246 for (numTodo = 0; numTodo < todos.count(); ++numTodo) { 1240 for (numTodo = 0; numTodo < todos.count(); ++numTodo) {
1247 Todo *todo = todos.at(numTodo); 1241 Todo *todo = todos.at(numTodo);
1248 1242
1249 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date 1243 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date
1250 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda ) continue; 1244 if ( todo->hasCompletedDate() && !KOPrefs::instance()->mShowCompletedTodoInAgenda ) continue;
1251 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1245 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1252 // Already completed items can be displayed on their original due date 1246 // Already completed items can be displayed on their original due date
1253 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda 1247 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda
1254 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda; 1248 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda;
1255 bool fillIn = false; 1249 bool fillIn = false;
1256 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate ) 1250 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate )
1257 fillIn = true; 1251 fillIn = true;
1258 if ( ! fillIn && !todo->hasCompletedDate() ) 1252 if ( ! fillIn && !todo->hasCompletedDate() )
1259 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue); 1253 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue);
1260 if ( fillIn ) { 1254 if ( fillIn ) {
1261 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue 1255 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue
1262 if ( KOPrefs::instance()->mShowTodoInAgenda ) 1256 if ( KOPrefs::instance()->mShowTodoInAgenda )
1263 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol); 1257 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol);
1264 } 1258 }
1265 else { 1259 else {
1266 QDateTime dt; 1260 QDateTime dt;
1267 if ( todo->hasCompletedDate() ) 1261 if ( todo->hasCompletedDate() )
1268 dt = todo->completed(); 1262 dt = todo->completed();
1269 else 1263 else
1270 dt = todo->dtDue();; 1264 dt = todo->dtDue();;
1271 1265
1272 1266
1273 int endY = mAgenda->timeToY(dt.time()) - 1; 1267 int endY = mAgenda->timeToY(dt.time()) - 1;
1274 int hi = (18/KOPrefs::instance()->mHourSize); 1268 int hi = (18/KOPrefs::instance()->mHourSize);
1275 //qDebug("hei %d ",KOPrefs::instance()->mHourSize); 1269 //qDebug("hei %d ",KOPrefs::instance()->mHourSize);
1276 int startY = endY -hi; 1270 int startY = endY -hi;
1277 1271
1278 mAgenda->insertItem(todo,currentDate,curCol,startY,endY); 1272 mAgenda->insertItem(todo,currentDate,curCol,startY,endY);
1279 1273
1280 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1274 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1281 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1275 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1282 } 1276 }
1283 } 1277 }
1284 } 1278 }
1285 // ---------- display Todos] -------------- 1279 // ---------- display Todos] --------------
1286 1280
1287 ++curCol; 1281 ++curCol;
1288 } 1282 }
1289 mAgenda->hideUnused(); 1283 mAgenda->hideUnused();
1290 mAllDayAgenda->hideUnused(); 1284 mAllDayAgenda->hideUnused();
1291 mAgenda->checkScrollBoundaries(); 1285 mAgenda->checkScrollBoundaries();
1292
1293 deleteSelectedDateTime(); 1286 deleteSelectedDateTime();
1294
1295 createDayLabels(); 1287 createDayLabels();
1296 emit incidenceSelected( 0 ); 1288 emit incidenceSelected( 0 );
1297 1289
1298 if ( globalFlagBlockAgenda == 2 ) { 1290 if ( globalFlagBlockAgenda == 2 ) {
1299 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 1291 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
1300 setStartHour( KOPrefs::instance()->mDayBegins ); 1292 setStartHour( KOPrefs::instance()->mDayBegins );
1301 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 1293 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
1302 setStartHour( QTime::currentTime ().hour() ); 1294 setStartHour( QTime::currentTime ().hour() );
1303 // qApp->processEvents();
1304 } 1295 }
1305 qApp->processEvents(); 1296 qApp->processEvents();
1306 //qDebug("qApp->processEvents(); END ");
1307 globalFlagBlockAgenda = 0; 1297 globalFlagBlockAgenda = 0;
1308
1309 // mAgenda->hideUnused();
1310 //mAllDayAgenda->hideUnused();
1311 mAllDayAgenda->drawContentsToPainter(); 1298 mAllDayAgenda->drawContentsToPainter();
1312 mAgenda->drawContentsToPainter(); 1299 mAgenda->drawContentsToPainter();
1313 repaintAgenda(); 1300 repaintAgenda();
1314 onlyOne = false; 1301 onlyOne = false;
1315 // mAgenda->finishUpdate();
1316 //mAllDayAgenda->finishUpdate();
1317
1318 // repaintAgenda();
1319 //qApp->processEvents();
1320 // globalFlagBlockAgenda = 0;
1321} 1302}
1322void KOAgendaView::repaintAgenda() 1303void KOAgendaView::repaintAgenda()
1323{ 1304{
1324 // mAllDayAgenda->drawContentsToPainter();
1325// mAllDayAgenda->viewport()->repaint( false );
1326// mAgenda->drawContentsToPainter();
1327// mAgenda->viewport()->repaint( false );
1328// qApp->processEvents();
1329
1330 //qDebug("KOAgendaView::repaintAgenda() ");
1331 //qApp->processEvents();
1332 mAgenda->viewport()->repaint( false ); 1305 mAgenda->viewport()->repaint( false );
1333 mAllDayAgenda->viewport()->repaint( false ); 1306 mAllDayAgenda->viewport()->repaint( false );
1334 mAgenda->finishUpdate(); 1307 mAgenda->finishUpdate();
1335 mAllDayAgenda->finishUpdate(); 1308 mAllDayAgenda->finishUpdate();
1336} 1309}
1337 1310
1338 1311
1339void KOAgendaView::clearView() 1312void KOAgendaView::clearView()
1340{ 1313{
1341 // kdDebug() << "ClearView" << endl;
1342 mAllDayAgenda->clear(); 1314 mAllDayAgenda->clear();
1343 mAgenda->clear(); 1315 mAgenda->clear();
1344} 1316}
1345void KOAgendaView::clearList() 1317void KOAgendaView::clearList()
1346{ 1318{
1347 // kdDebug() << "ClearView" << endl;
1348 clearView(); 1319 clearView();
1349 mAllDayAgenda->hideUnused(); 1320 mAllDayAgenda->hideUnused();
1350 mAgenda->hideUnused(); 1321 mAgenda->hideUnused();
1351} 1322}
1352 1323
1353void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1324void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1354 const QDate &td) 1325 const QDate &td)
1355{ 1326{
1356#ifndef KORG_NOPRINTER 1327#ifndef KORG_NOPRINTER
1357 if (fd == td) 1328 if (fd == td)
1358 calPrinter->preview(CalPrinter::Day, fd, td); 1329 calPrinter->preview(CalPrinter::Day, fd, td);
1359 else 1330 else
1360 calPrinter->preview(CalPrinter::Week, fd, td); 1331 calPrinter->preview(CalPrinter::Week, fd, td);
1361#endif 1332#endif
1362} 1333}
1363 1334
1364// void KOAgendaView::updateMovedTodo() 1335// void KOAgendaView::updateMovedTodo()
1365// { 1336// {
1366// // updateConfig(); 1337// // updateConfig();
1367// // emit updateTodoViews(); 1338// // emit updateTodoViews();
1368// } 1339// }
1369 1340
1370void KOAgendaView::slotShowDateView( int mode , int d ) 1341void KOAgendaView::slotShowDateView( int mode , int d )
1371{ 1342{
1372 if ( d >= mSelectedDates.count() ) { 1343 if ( d >= mSelectedDates.count() ) {
1373 qDebug("KOAgendaView::slotShowDateView datecounterror %d d ", d, mSelectedDates.count() ); 1344 qDebug("KOAgendaView::slotShowDateView datecounterror %d d ", d, mSelectedDates.count() );
1374 1345
1375 } else { 1346 } else {
1376 QDate day = mSelectedDates[d]; 1347 QDate day = mSelectedDates[d];
1377 emit showDateView(mode , day ); 1348 emit showDateView(mode , day );
1378 } 1349 }
1379 1350
1380} 1351}
1381void KOAgendaView::newEvent(int gx, int gy) 1352void KOAgendaView::newEvent(int gx, int gy)
1382{ 1353{
1383 if (!mSelectedDates.count()) return; 1354 if (!mSelectedDates.count()) return;
1384 1355
1385 QDate day = mSelectedDates[gx]; 1356 QDate day = mSelectedDates[gx];
1386 1357
1387 QTime time = mAgenda->gyToTime(gy); 1358 QTime time = mAgenda->gyToTime(gy);
1388 QDateTime dt(day,time); 1359 QDateTime dt(day,time);
1389 // if ( dt < QDateTime::currentDateTime () ) 1360 // if ( dt < QDateTime::currentDateTime () )
1390 // dt = QDateTime::currentDateTime ().addSecs( 3600 ); 1361 // dt = QDateTime::currentDateTime ().addSecs( 3600 );
1391 emit newEventSignal(dt); 1362 emit newEventSignal(dt);
1392} 1363}
1393 1364
1394void KOAgendaView::newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd) 1365void KOAgendaView::newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd)
1395{ 1366{