-rw-r--r-- | korganizer/koagenda.cpp | 5 | ||||
-rw-r--r-- | korganizer/koagenda.h | 2 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 15 | ||||
-rw-r--r-- | korganizer/koagendaview.h | 1 | ||||
-rw-r--r-- | korganizer/komonthview.cpp | 7 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 103 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 5 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 4 |
8 files changed, 109 insertions, 33 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 1a24887..9720f43 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp | |||
@@ -231,25 +231,25 @@ void KOAgenda::init() | |||
231 | if ( QApplication::desktop()->width() < 480 ) | 231 | if ( QApplication::desktop()->width() < 480 ) |
232 | pathString += "icons16/"; | 232 | pathString += "icons16/"; |
233 | } else | 233 | } else |
234 | pathString += "iconsmini/"; | 234 | pathString += "iconsmini/"; |
235 | 235 | ||
236 | mNewItemPopup->insertItem ( SmallIcon( pathString +"newevent" ), i18n("New Event..."), 1 ); | 236 | mNewItemPopup->insertItem ( SmallIcon( pathString +"newevent" ), i18n("New Event..."), 1 ); |
237 | mNewItemPopup->insertItem ( SmallIcon( pathString +"newtodo" ), i18n("New Todo..."),2 ); | 237 | mNewItemPopup->insertItem ( SmallIcon( pathString +"newtodo" ), i18n("New Todo..."),2 ); |
238 | mNewItemPopup->insertSeparator ( ); | 238 | mNewItemPopup->insertSeparator ( ); |
239 | mNewItemPopup->insertItem ( SmallIcon( pathString +"day" ), i18n("Day view"),3 ); | 239 | mNewItemPopup->insertItem ( SmallIcon( pathString +"day" ), i18n("Day view"),3 ); |
240 | mNewItemPopup->insertItem ( SmallIcon( pathString +"xdays" ), i18n("Next days"),8 ); | 240 | mNewItemPopup->insertItem ( SmallIcon( pathString +"xdays" ), i18n("Next days"),8 ); |
241 | mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next week"),4 ); | 241 | mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next week"),4 ); |
242 | mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next two weeks"),5 ); | 242 | mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next two weeks"),5 ); |
243 | mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next month"),6 ); | 243 | mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("This month"),6 ); |
244 | mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 ); | 244 | mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 ); |
245 | #ifndef _WIN32_ | 245 | #ifndef _WIN32_ |
246 | int wflags = viewport()-> getWFlags() |WRepaintNoErase;//WResizeNoErase | 246 | int wflags = viewport()-> getWFlags() |WRepaintNoErase;//WResizeNoErase |
247 | viewport()->setWFlags ( wflags); | 247 | viewport()->setWFlags ( wflags); |
248 | #endif | 248 | #endif |
249 | mGridSpacingX = 80; | 249 | mGridSpacingX = 80; |
250 | mResizeBorderWidth = 8; | 250 | mResizeBorderWidth = 8; |
251 | mScrollBorderWidth = 8; | 251 | mScrollBorderWidth = 8; |
252 | mScrollDelay = 30; | 252 | mScrollDelay = 30; |
253 | mScrollOffset = 10; | 253 | mScrollOffset = 10; |
254 | mPaintPixmap.resize( 20,20); | 254 | mPaintPixmap.resize( 20,20); |
255 | //enableClipper(true); | 255 | //enableClipper(true); |
@@ -745,26 +745,25 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) | |||
745 | #endif | 745 | #endif |
746 | } | 746 | } |
747 | 747 | ||
748 | void KOAgenda::newItem( int item ) | 748 | void KOAgenda::newItem( int item ) |
749 | { | 749 | { |
750 | if ( item == 1 ) { //new event | 750 | if ( item == 1 ) { //new event |
751 | newEventSignal(mStartCellX ,mStartCellY ); | 751 | newEventSignal(mStartCellX ,mStartCellY ); |
752 | } else | 752 | } else |
753 | if ( item == 2 ) { //new event | 753 | if ( item == 2 ) { //new event |
754 | newTodoSignal(mStartCellX ,mStartCellY ); | 754 | newTodoSignal(mStartCellX ,mStartCellY ); |
755 | } else | 755 | } else |
756 | { | 756 | { |
757 | QDate day = mSelectedDates[mStartCellX]; | 757 | emit showDateView( item, mStartCellX ); |
758 | emit showDateView( item, day ); | ||
759 | // 3Day view | 758 | // 3Day view |
760 | // 4Week view | 759 | // 4Week view |
761 | // 5Month view | 760 | // 5Month view |
762 | // 6Journal view | 761 | // 6Journal view |
763 | } | 762 | } |
764 | } | 763 | } |
765 | void KOAgenda::startSelectAction(QPoint viewportPos) | 764 | void KOAgenda::startSelectAction(QPoint viewportPos) |
766 | { | 765 | { |
767 | //emit newStartSelectSignal(); | 766 | //emit newStartSelectSignal(); |
768 | 767 | ||
769 | mActionType = SELECT; | 768 | mActionType = SELECT; |
770 | 769 | ||
diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h index 3d33ae5..35c08b6 100644 --- a/korganizer/koagenda.h +++ b/korganizer/koagenda.h | |||
@@ -136,25 +136,25 @@ class KOAgenda : public QScrollView | |||
136 | 136 | ||
137 | void checkScrollBoundaries(int); | 137 | void checkScrollBoundaries(int); |
138 | 138 | ||
139 | /** Deselect selected items. This function does not emit any signals. */ | 139 | /** Deselect selected items. This function does not emit any signals. */ |
140 | void deselectItem(); | 140 | void deselectItem(); |
141 | /** Select item. If the argument is 0, the currently selected item gets | 141 | /** Select item. If the argument is 0, the currently selected item gets |
142 | deselected. This function emits the itemSelected(bool) signal to inform | 142 | deselected. This function emits the itemSelected(bool) signal to inform |
143 | about selection/deseelction of events. */ | 143 | about selection/deseelction of events. */ |
144 | void selectItem(KOAgendaItem *); | 144 | void selectItem(KOAgendaItem *); |
145 | void finishResize(); | 145 | void finishResize(); |
146 | 146 | ||
147 | signals: | 147 | signals: |
148 | void showDateView( int, QDate ); | 148 | void showDateView( int, int); |
149 | void newEventSignal(); | 149 | void newEventSignal(); |
150 | void newEventSignal(int gx,int gy); | 150 | void newEventSignal(int gx,int gy); |
151 | void newTodoSignal(int gx,int gy); | 151 | void newTodoSignal(int gx,int gy); |
152 | void newEventSignal(int gxStart, int gyStart, int gxEnd, int gyEnd); | 152 | void newEventSignal(int gxStart, int gyStart, int gxEnd, int gyEnd); |
153 | void newTimeSpanSignal(int gxStart, int gyStart, int gxEnd, int gyEnd); | 153 | void newTimeSpanSignal(int gxStart, int gyStart, int gxEnd, int gyEnd); |
154 | void newStartSelectSignal(); | 154 | void newStartSelectSignal(); |
155 | void showIncidenceSignal(Incidence *); | 155 | void showIncidenceSignal(Incidence *); |
156 | void editIncidenceSignal(Incidence *); | 156 | void editIncidenceSignal(Incidence *); |
157 | void deleteIncidenceSignal(Incidence *); | 157 | void deleteIncidenceSignal(Incidence *); |
158 | void showIncidencePopupSignal(Incidence *); | 158 | void showIncidencePopupSignal(Incidence *); |
159 | 159 | ||
160 | void itemModified(KOAgendaItem *item, int ); | 160 | void itemModified(KOAgendaItem *item, int ); |
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index b9909d6..2996acb 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp | |||
@@ -479,26 +479,26 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : | |||
479 | 479 | ||
480 | // these blank widgets make the All Day Event box line up with the agenda | 480 | // these blank widgets make the All Day Event box line up with the agenda |
481 | dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); | 481 | dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); |
482 | dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); | 482 | dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); |
483 | mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); | 483 | mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); |
484 | 484 | ||
485 | // Scrolling | 485 | // Scrolling |
486 | connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)), | 486 | connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)), |
487 | mTimeLabels, SLOT(positionChanged())); | 487 | mTimeLabels, SLOT(positionChanged())); |
488 | connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)), | 488 | connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)), |
489 | SLOT(setContentsPos(int))); | 489 | SLOT(setContentsPos(int))); |
490 | 490 | ||
491 | connect(mAgenda,SIGNAL(showDateView( int, QDate )),SIGNAL(showDateView( int, QDate ))); | 491 | connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int ))); |
492 | connect(mAllDayAgenda,SIGNAL(showDateView( int, QDate )),SIGNAL(showDateView( int, QDate ))); | 492 | connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) )); |
493 | 493 | ||
494 | // Create/Show/Edit/Delete Event | 494 | // Create/Show/Edit/Delete Event |
495 | connect(mAgenda,SIGNAL(newEventSignal(int,int)), | 495 | connect(mAgenda,SIGNAL(newEventSignal(int,int)), |
496 | SLOT(newEvent(int,int))); | 496 | SLOT(newEvent(int,int))); |
497 | connect(mAgenda,SIGNAL(newTodoSignal(int,int)), | 497 | connect(mAgenda,SIGNAL(newTodoSignal(int,int)), |
498 | SLOT(newTodo(int,int))); | 498 | SLOT(newTodo(int,int))); |
499 | connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)), | 499 | connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)), |
500 | SLOT(newEvent(int,int,int,int))); | 500 | SLOT(newEvent(int,int,int,int))); |
501 | connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)), | 501 | connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)), |
502 | SLOT(newEventAllDay(int,int))); | 502 | SLOT(newEventAllDay(int,int))); |
503 | connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)), | 503 | connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)), |
504 | SLOT(newTodoAllDay(int,int))); | 504 | SLOT(newTodoAllDay(int,int))); |
@@ -1301,24 +1301,35 @@ void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd, | |||
1301 | calPrinter->preview(CalPrinter::Day, fd, td); | 1301 | calPrinter->preview(CalPrinter::Day, fd, td); |
1302 | else | 1302 | else |
1303 | calPrinter->preview(CalPrinter::Week, fd, td); | 1303 | calPrinter->preview(CalPrinter::Week, fd, td); |
1304 | #endif | 1304 | #endif |
1305 | } | 1305 | } |
1306 | 1306 | ||
1307 | // void KOAgendaView::updateMovedTodo() | 1307 | // void KOAgendaView::updateMovedTodo() |
1308 | // { | 1308 | // { |
1309 | // // updateConfig(); | 1309 | // // updateConfig(); |
1310 | // // emit updateTodoViews(); | 1310 | // // emit updateTodoViews(); |
1311 | // } | 1311 | // } |
1312 | 1312 | ||
1313 | void KOAgendaView::slotShowDateView( int mode , int d ) | ||
1314 | { | ||
1315 | if ( d >= mSelectedDates.count() ) { | ||
1316 | qDebug("KOAgendaView::slotShowDateView datecounterror %d d ", d, mSelectedDates.count() ); | ||
1317 | |||
1318 | } else { | ||
1319 | QDate day = mSelectedDates[d]; | ||
1320 | emit showDateView(mode , day ); | ||
1321 | } | ||
1322 | |||
1323 | } | ||
1313 | void KOAgendaView::newEvent(int gx, int gy) | 1324 | void KOAgendaView::newEvent(int gx, int gy) |
1314 | { | 1325 | { |
1315 | if (!mSelectedDates.count()) return; | 1326 | if (!mSelectedDates.count()) return; |
1316 | 1327 | ||
1317 | QDate day = mSelectedDates[gx]; | 1328 | QDate day = mSelectedDates[gx]; |
1318 | 1329 | ||
1319 | QTime time = mAgenda->gyToTime(gy); | 1330 | QTime time = mAgenda->gyToTime(gy); |
1320 | QDateTime dt(day,time); | 1331 | QDateTime dt(day,time); |
1321 | // if ( dt < QDateTime::currentDateTime () ) | 1332 | // if ( dt < QDateTime::currentDateTime () ) |
1322 | // dt = QDateTime::currentDateTime ().addSecs( 3600 ); | 1333 | // dt = QDateTime::currentDateTime ().addSecs( 3600 ); |
1323 | emit newEventSignal(dt); | 1334 | emit newEventSignal(dt); |
1324 | } | 1335 | } |
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h index 57b4e46..6dc81c6 100644 --- a/korganizer/koagendaview.h +++ b/korganizer/koagendaview.h | |||
@@ -197,24 +197,25 @@ class KOAgendaView : public KOEventView { | |||
197 | 197 | ||
198 | void startDrag(Event *); | 198 | void startDrag(Event *); |
199 | 199 | ||
200 | void readSettings(); | 200 | void readSettings(); |
201 | void readSettings(KConfig *); | 201 | void readSettings(KConfig *); |
202 | void writeSettings(KConfig *); | 202 | void writeSettings(KConfig *); |
203 | 203 | ||
204 | void setContentsPos(int y); | 204 | void setContentsPos(int y); |
205 | 205 | ||
206 | void scrollOneHourUp(); | 206 | void scrollOneHourUp(); |
207 | void scrollOneHourDown(); | 207 | void scrollOneHourDown(); |
208 | void addToCalSlot(Incidence *, Incidence *); | 208 | void addToCalSlot(Incidence *, Incidence *); |
209 | void slotShowDateView( int, int ); | ||
209 | 210 | ||
210 | signals: | 211 | signals: |
211 | void showDateView( int, QDate ); | 212 | void showDateView( int, QDate ); |
212 | void newTodoSignal( QDateTime ,bool ); | 213 | void newTodoSignal( QDateTime ,bool ); |
213 | void toggleExpand(); | 214 | void toggleExpand(); |
214 | void selectWeekNum( int ); | 215 | void selectWeekNum( int ); |
215 | void todoMoved( Todo *, int ); | 216 | void todoMoved( Todo *, int ); |
216 | void incidenceChanged(Incidence * , int ); | 217 | void incidenceChanged(Incidence * , int ); |
217 | // void cloneIncidenceSignal(Incidence *); | 218 | // void cloneIncidenceSignal(Incidence *); |
218 | 219 | ||
219 | protected: | 220 | protected: |
220 | KOAgendaButton* getNewDaylabel(); | 221 | KOAgendaButton* getNewDaylabel(); |
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index b9ce4f4..ab9a4b6 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -928,25 +928,29 @@ void MonthViewCell::resizeEvent ( QResizeEvent * e ) | |||
928 | size = width() - mLabel->width() -lineWidth()-1; | 928 | size = width() - mLabel->width() -lineWidth()-1; |
929 | if ( size > 0 ) | 929 | if ( size > 0 ) |
930 | horizontalScrollBar()->setMaximumWidth( size ); | 930 | horizontalScrollBar()->setMaximumWidth( size ); |
931 | mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); | 931 | mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); |
932 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 932 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
933 | // mItemList->resize ( width(), height () ); | 933 | // mItemList->resize ( width(), height () ); |
934 | if ( e ) | 934 | if ( e ) |
935 | KNoScrollListBox::resizeEvent ( e ); | 935 | KNoScrollListBox::resizeEvent ( e ); |
936 | } | 936 | } |
937 | 937 | ||
938 | void MonthViewCell::defaultAction( QListBoxItem *item ) | 938 | void MonthViewCell::defaultAction( QListBoxItem *item ) |
939 | { | 939 | { |
940 | if ( !item ) return; | 940 | if ( !item ) { |
941 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); | ||
942 | emit newEventSignal( dt ); | ||
943 | return; | ||
944 | } | ||
941 | 945 | ||
942 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); | 946 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); |
943 | Incidence *incidence = eventItem->incidence(); | 947 | Incidence *incidence = eventItem->incidence(); |
944 | if ( incidence ) mMonthView->defaultAction( incidence ); | 948 | if ( incidence ) mMonthView->defaultAction( incidence ); |
945 | } | 949 | } |
946 | void MonthViewCell::showDay() | 950 | void MonthViewCell::showDay() |
947 | { | 951 | { |
948 | emit showDaySignal( date() ); | 952 | emit showDaySignal( date() ); |
949 | } | 953 | } |
950 | void MonthViewCell::newEvent() | 954 | void MonthViewCell::newEvent() |
951 | { | 955 | { |
952 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); | 956 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); |
@@ -1362,24 +1366,25 @@ void KOMonthView::showDates(const QDate &start, const QDate &) | |||
1362 | updateView(); | 1366 | updateView(); |
1363 | } | 1367 | } |
1364 | 1368 | ||
1365 | void KOMonthView::showEvents(QPtrList<Event>) | 1369 | void KOMonthView::showEvents(QPtrList<Event>) |
1366 | { | 1370 | { |
1367 | qDebug("KOMonthView::selectEvents is not implemented yet. "); | 1371 | qDebug("KOMonthView::selectEvents is not implemented yet. "); |
1368 | } | 1372 | } |
1369 | 1373 | ||
1370 | void KOMonthView::changeEventDisplay(Event *, int) | 1374 | void KOMonthView::changeEventDisplay(Event *, int) |
1371 | { | 1375 | { |
1372 | // this should be re-written to be much more efficient, but this | 1376 | // this should be re-written to be much more efficient, but this |
1373 | // quick-and-dirty-hack gets the job done for right now. | 1377 | // quick-and-dirty-hack gets the job done for right now. |
1378 | qDebug("KOMonthView::changeEventDisplay "); | ||
1374 | updateView(); | 1379 | updateView(); |
1375 | } | 1380 | } |
1376 | 1381 | ||
1377 | void KOMonthView::updateView() | 1382 | void KOMonthView::updateView() |
1378 | { | 1383 | { |
1379 | 1384 | ||
1380 | if ( !updatePossible ) | 1385 | if ( !updatePossible ) |
1381 | return; | 1386 | return; |
1382 | //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); | 1387 | //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); |
1383 | //QTime ti; | 1388 | //QTime ti; |
1384 | //ti.start(); | 1389 | //ti.start(); |
1385 | clearSelection(); | 1390 | clearSelection(); |
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index e008625..ccc4b01 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -255,50 +255,64 @@ void KOTodoListView::contentsMouseMoveEvent(QMouseEvent* e) | |||
255 | qDebug("Dnd: Internal move "); | 255 | qDebug("Dnd: Internal move "); |
256 | 256 | ||
257 | } else { | 257 | } else { |
258 | if ( !internalDrop ) { | 258 | if ( !internalDrop ) { |
259 | qDebug("Dnd: External Copy"); | 259 | qDebug("Dnd: External Copy"); |
260 | } else | 260 | } else |
261 | qDebug("DnD: Internal copy: Copy pending"); | 261 | qDebug("DnD: Internal copy: Copy pending"); |
262 | } | 262 | } |
263 | } | 263 | } |
264 | } | 264 | } |
265 | #endif | 265 | #endif |
266 | } | 266 | } |
267 | void KOTodoListView::keyReleaseEvent ( QKeyEvent *e ) | ||
268 | { | ||
269 | if ( !e->isAutoRepeat() ) { | ||
270 | mFlagKeyPressed = false; | ||
271 | } | ||
272 | } | ||
273 | |||
274 | |||
267 | void KOTodoListView::keyPressEvent ( QKeyEvent * e ) | 275 | void KOTodoListView::keyPressEvent ( QKeyEvent * e ) |
268 | { | 276 | { |
269 | 277 | qApp->processEvents(); | |
278 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | ||
279 | e->ignore(); | ||
280 | // qDebug(" ignore %d",e->isAutoRepeat() ); | ||
281 | return; | ||
282 | } | ||
283 | if (! e->isAutoRepeat() ) | ||
284 | mFlagKeyPressed = true; | ||
270 | QListViewItem* cn; | 285 | QListViewItem* cn; |
271 | if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) { | 286 | if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) { |
272 | cn = currentItem(); | 287 | cn = currentItem(); |
273 | if ( cn ) { | 288 | if ( cn ) { |
274 | KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); | 289 | KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); |
275 | if ( ci ){ | 290 | if ( ci ){ |
276 | if ( e->state() == ShiftButton ) | 291 | if ( e->state() == ShiftButton ) |
277 | ci->setOn( false ); | 292 | ci->setOn( false ); |
278 | else | 293 | else |
279 | ci->setOn( true ); | 294 | ci->setOn( true ); |
280 | cn = cn->itemBelow(); | 295 | cn = cn->itemBelow(); |
281 | if ( cn ) { | 296 | if ( cn ) { |
282 | setCurrentItem ( cn ); | 297 | setCurrentItem ( cn ); |
283 | ensureItemVisible ( cn ); | 298 | ensureItemVisible ( cn ); |
284 | } | 299 | } |
285 | 300 | ||
286 | } | 301 | } |
287 | } | 302 | } |
288 | 303 | ||
289 | return; | 304 | return; |
290 | } | 305 | } |
291 | 306 | ||
292 | // qDebug("KOTodoListView::keyPressEvent "); | ||
293 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) { | 307 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) { |
294 | switch ( e->key() ) { | 308 | switch ( e->key() ) { |
295 | case Qt::Key_Down: | 309 | case Qt::Key_Down: |
296 | case Qt::Key_Up: | 310 | case Qt::Key_Up: |
297 | QListView::keyPressEvent ( e ); | 311 | QListView::keyPressEvent ( e ); |
298 | break; | 312 | break; |
299 | case Qt::Key_Left: | 313 | case Qt::Key_Left: |
300 | case Qt::Key_Right: | 314 | case Qt::Key_Right: |
301 | QListView::keyPressEvent ( e ); | 315 | QListView::keyPressEvent ( e ); |
302 | e->accept(); | 316 | e->accept(); |
303 | return; | 317 | return; |
304 | break; | 318 | break; |
@@ -589,36 +603,35 @@ void KOTodoView::paintEvent(QPaintEvent * pevent) | |||
589 | } | 603 | } |
590 | 604 | ||
591 | void KOTodoView::updateView() | 605 | void KOTodoView::updateView() |
592 | { | 606 | { |
593 | pendingSubtodo = 0; | 607 | pendingSubtodo = 0; |
594 | if ( mBlockUpdate ) { | 608 | if ( mBlockUpdate ) { |
595 | return; | 609 | return; |
596 | } | 610 | } |
597 | if ( !isVisible() ) { | 611 | if ( !isVisible() ) { |
598 | mPendingUpdateBeforeRepaint = true; | 612 | mPendingUpdateBeforeRepaint = true; |
599 | return; | 613 | return; |
600 | } | 614 | } |
615 | storeCurrentItem(); | ||
601 | //qDebug("KOTodoView::updateView() %x", this); | 616 | //qDebug("KOTodoView::updateView() %x", this); |
602 | if ( isFlatDisplay ) { | 617 | if ( isFlatDisplay ) { |
603 | displayAllFlat(); | 618 | displayAllFlat(); |
619 | resetCurrentItem(); | ||
604 | return; | 620 | return; |
605 | } | 621 | } |
606 | //qDebug("update "); | 622 | //qDebug("update "); |
607 | // kdDebug() << "KOTodoView::updateView()" << endl; | 623 | // kdDebug() << "KOTodoView::updateView()" << endl; |
608 | QFont fo = KOPrefs::instance()->mTodoViewFont; | 624 | QFont fo = KOPrefs::instance()->mTodoViewFont; |
609 | Incidence* oldInc = 0; | 625 | |
610 | mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); | ||
611 | if (mActiveItem) | ||
612 | oldInc = mActiveItem->todo(); | ||
613 | 626 | ||
614 | mTodoListView->clear(); | 627 | mTodoListView->clear(); |
615 | if ( mName == "todolistsmall" ) { | 628 | if ( mName == "todolistsmall" ) { |
616 | if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { | 629 | if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { |
617 | int ps = fo.pointSize() -2; | 630 | int ps = fo.pointSize() -2; |
618 | if ( ps > 12 ) | 631 | if ( ps > 12 ) |
619 | ps -= 2; | 632 | ps -= 2; |
620 | fo.setPointSize( ps ); | 633 | fo.setPointSize( ps ); |
621 | } | 634 | } |
622 | } | 635 | } |
623 | 636 | ||
624 | mTodoListView->setFont( fo ); | 637 | mTodoListView->setFont( fo ); |
@@ -682,45 +695,84 @@ void KOTodoView::updateView() | |||
682 | //qDebug("for "); | 695 | //qDebug("for "); |
683 | for(todo = todoList.first(); todo; todo = todoList.next()) { | 696 | for(todo = todoList.first(); todo; todo = todoList.next()) { |
684 | if (!mTodoMap.contains(todo) && checkTodo( todo ) ) | 697 | if (!mTodoMap.contains(todo) && checkTodo( todo ) ) |
685 | { | 698 | { |
686 | insertTodoItem(todo); | 699 | insertTodoItem(todo); |
687 | } | 700 | } |
688 | } | 701 | } |
689 | //qDebug("for end "); | 702 | //qDebug("for end "); |
690 | // Restore opened/closed state | 703 | // Restore opened/closed state |
691 | mTodoListView->blockSignals( true ); | 704 | mTodoListView->blockSignals( true ); |
692 | if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); | 705 | if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); |
693 | mTodoListView->blockSignals( false ); | 706 | mTodoListView->blockSignals( false ); |
694 | mTodoListView->setFocus(); | 707 | resetCurrentItem(); |
695 | if ( mTodoListView->firstChild () ) { | ||
696 | if ( oldInc ) { | ||
697 | KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild (); | ||
698 | while ( item ) { | ||
699 | if ( item->todo() == oldInc ) { | ||
700 | mTodoListView->setCurrentItem( item ); | ||
701 | mTodoListView->ensureItemVisible( item ); | ||
702 | break; | ||
703 | } | ||
704 | item = (KOTodoViewItem*)item->itemBelow(); | ||
705 | } | ||
706 | if ( ! item ) | ||
707 | mTodoListView->setCurrentItem( mTodoListView->firstChild () ); | ||
708 | } else { | ||
709 | mTodoListView->setCurrentItem( mTodoListView->firstChild () ); | ||
710 | } | ||
711 | } | ||
712 | processSelectionChange(); | 708 | processSelectionChange(); |
713 | } | 709 | } |
714 | 710 | ||
711 | void KOTodoView::storeCurrentItem() | ||
712 | { | ||
713 | mCurItem = 0; | ||
714 | mCurItemRootParent = 0; | ||
715 | mCurItemAbove = 0; | ||
716 | mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); | ||
717 | if (mActiveItem) { | ||
718 | mCurItem = mActiveItem->todo(); | ||
719 | KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove (); | ||
720 | if ( activeItemAbove ) | ||
721 | mCurItemAbove = activeItemAbove->todo(); | ||
722 | while ( mActiveItem->parent() != 0 ) | ||
723 | mActiveItem = (KOTodoViewItem*)mActiveItem->parent(); | ||
724 | mCurItemRootParent = mActiveItem->todo(); | ||
725 | } | ||
726 | mActiveItem = 0; | ||
727 | } | ||
728 | |||
729 | void KOTodoView::resetCurrentItem() | ||
730 | { | ||
731 | mTodoListView->setFocus(); | ||
732 | KOTodoViewItem* foundItem = 0; | ||
733 | KOTodoViewItem* foundItemRoot = 0; | ||
734 | KOTodoViewItem* foundItemAbove = 0; | ||
735 | if ( mTodoListView->firstChild () ) { | ||
736 | if ( mCurItem ) { | ||
737 | KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild (); | ||
738 | while ( item ) { | ||
739 | if ( item->todo() == mCurItem ) { | ||
740 | foundItem = item; | ||
741 | break; | ||
742 | } else if ( item->todo() == mCurItemAbove ) { | ||
743 | foundItemAbove = item; | ||
744 | |||
745 | } else if ( item->todo() == mCurItemRootParent ) { | ||
746 | foundItemRoot = item; | ||
747 | } | ||
748 | item = (KOTodoViewItem*)item->itemBelow(); | ||
749 | } | ||
750 | if ( ! foundItem ) { | ||
751 | if ( foundItemAbove ) | ||
752 | foundItem = foundItemAbove; | ||
753 | else | ||
754 | foundItem = foundItemRoot; | ||
755 | } | ||
756 | } | ||
757 | if ( foundItem ) { | ||
758 | mTodoListView->setCurrentItem( foundItem ); | ||
759 | mTodoListView->ensureItemVisible( foundItem ); | ||
760 | } else { | ||
761 | mTodoListView->setCurrentItem( mTodoListView->firstChild () ); | ||
762 | } | ||
763 | } | ||
764 | mTodoListView->setFocus(); | ||
765 | } | ||
766 | //Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; | ||
715 | bool KOTodoView::checkTodo( Todo * todo ) | 767 | bool KOTodoView::checkTodo( Todo * todo ) |
716 | { | 768 | { |
717 | 769 | ||
718 | if ( !KOPrefs::instance()->mShowCompletedTodo && todo->isCompleted() ) | 770 | if ( !KOPrefs::instance()->mShowCompletedTodo && todo->isCompleted() ) |
719 | return false; | 771 | return false; |
720 | if ( !todo->isCompleted() ) { | 772 | if ( !todo->isCompleted() ) { |
721 | if ( todo->hasDueDate() && todo->dtDue().date() <= QDate::currentDate() ) | 773 | if ( todo->hasDueDate() && todo->dtDue().date() <= QDate::currentDate() ) |
722 | return true; | 774 | return true; |
723 | } | 775 | } |
724 | if ( KOPrefs::instance()->mHideNonStartedTodos && mNavigator ) { | 776 | if ( KOPrefs::instance()->mHideNonStartedTodos && mNavigator ) { |
725 | if ( todo->hasStartDate() ) | 777 | if ( todo->hasStartDate() ) |
726 | if ( mNavigator->selectedDates().last() < todo->dtStart().date() ) | 778 | if ( mNavigator->selectedDates().last() < todo->dtStart().date() ) |
@@ -1230,26 +1282,27 @@ void KOTodoView::addQuickTodo() | |||
1230 | if ( cf ) { | 1282 | if ( cf ) { |
1231 | if ( cf->isEnabled()&& cf->showCategories()) { | 1283 | if ( cf->isEnabled()&& cf->showCategories()) { |
1232 | todo->setCategories(cf->categoryList()); | 1284 | todo->setCategories(cf->categoryList()); |
1233 | } | 1285 | } |
1234 | if ( cf->isEnabled() ) | 1286 | if ( cf->isEnabled() ) |
1235 | todo->setSecrecy( cf->getSecrecy()); | 1287 | todo->setSecrecy( cf->getSecrecy()); |
1236 | } | 1288 | } |
1237 | mCalendar->addTodo(todo); | 1289 | mCalendar->addTodo(todo); |
1238 | mQuickAdd->setText(""); | 1290 | mQuickAdd->setText(""); |
1239 | todoModified (todo, KOGlobals::EVENTADDED ); | 1291 | todoModified (todo, KOGlobals::EVENTADDED ); |
1240 | updateView(); | 1292 | updateView(); |
1241 | } | 1293 | } |
1294 | |||
1242 | void KOTodoView::keyPressEvent ( QKeyEvent * e ) | 1295 | void KOTodoView::keyPressEvent ( QKeyEvent * e ) |
1243 | { | 1296 | { |
1244 | // e->ignore(); | 1297 | // e->ignore(); |
1245 | //return; | 1298 | //return; |
1246 | //qDebug("KOTodoView::keyPressEvent "); | 1299 | //qDebug("KOTodoView::keyPressEvent "); |
1247 | switch ( e->key() ) { | 1300 | switch ( e->key() ) { |
1248 | case Qt::Key_Down: | 1301 | case Qt::Key_Down: |
1249 | case Qt::Key_Up: | 1302 | case Qt::Key_Up: |
1250 | QWidget::keyPressEvent ( e ); | 1303 | QWidget::keyPressEvent ( e ); |
1251 | break; | 1304 | break; |
1252 | 1305 | ||
1253 | case Qt::Key_Q: | 1306 | case Qt::Key_Q: |
1254 | toggleQuickTodo(); | 1307 | toggleQuickTodo(); |
1255 | break; | 1308 | break; |
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index eab0754..e553d0e 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h | |||
@@ -77,25 +77,27 @@ class KOTodoListView : public KListView | |||
77 | void contentsMouseMoveEvent(QMouseEvent *); | 77 | void contentsMouseMoveEvent(QMouseEvent *); |
78 | void contentsMouseReleaseEvent(QMouseEvent *); | 78 | void contentsMouseReleaseEvent(QMouseEvent *); |
79 | void contentsMouseDoubleClickEvent(QMouseEvent *); | 79 | void contentsMouseDoubleClickEvent(QMouseEvent *); |
80 | 80 | ||
81 | private: | 81 | private: |
82 | void paintEvent(QPaintEvent * pevent); | 82 | void paintEvent(QPaintEvent * pevent); |
83 | bool internalDrop; | 83 | bool internalDrop; |
84 | QString mName; | 84 | QString mName; |
85 | Calendar *mCalendar; | 85 | Calendar *mCalendar; |
86 | QPoint mPressPos; | 86 | QPoint mPressPos; |
87 | bool mMousePressed; | 87 | bool mMousePressed; |
88 | QListViewItem *mOldCurrent; | 88 | QListViewItem *mOldCurrent; |
89 | bool mFlagKeyPressed; | ||
89 | void keyPressEvent ( QKeyEvent * ) ; | 90 | void keyPressEvent ( QKeyEvent * ) ; |
91 | void keyReleaseEvent ( QKeyEvent * ) ; | ||
90 | }; | 92 | }; |
91 | 93 | ||
92 | 94 | ||
93 | /** | 95 | /** |
94 | This is the line-edit on top of the todoview for fast addition of new todos | 96 | This is the line-edit on top of the todoview for fast addition of new todos |
95 | */ | 97 | */ |
96 | class KOQuickTodo : public QLineEdit | 98 | class KOQuickTodo : public QLineEdit |
97 | { | 99 | { |
98 | public: | 100 | public: |
99 | KOQuickTodo(QWidget *parent=0); | 101 | KOQuickTodo(QWidget *parent=0); |
100 | protected: | 102 | protected: |
101 | void focusInEvent(QFocusEvent *ev); | 103 | void focusInEvent(QFocusEvent *ev); |
@@ -243,15 +245,18 @@ class KOTodoView : public KOrg::BaseView | |||
243 | KOTodoViewItem *mActiveItem; | 245 | KOTodoViewItem *mActiveItem; |
244 | 246 | ||
245 | QMap<Todo *,KOTodoViewItem *> mTodoMap; | 247 | QMap<Todo *,KOTodoViewItem *> mTodoMap; |
246 | QString mName; | 248 | QString mName; |
247 | 249 | ||
248 | DocPrefs *mDocPrefs; | 250 | DocPrefs *mDocPrefs; |
249 | QString mCurrentDoc; | 251 | QString mCurrentDoc; |
250 | KOQuickTodo *mQuickAdd; | 252 | KOQuickTodo *mQuickAdd; |
251 | bool mBlockUpdate; | 253 | bool mBlockUpdate; |
252 | void keyPressEvent ( QKeyEvent * ) ; | 254 | void keyPressEvent ( QKeyEvent * ) ; |
253 | KOTodoViewItem * pendingSubtodo; | 255 | KOTodoViewItem * pendingSubtodo; |
254 | DateNavigator* mNavigator; | 256 | DateNavigator* mNavigator; |
257 | void storeCurrentItem(); | ||
258 | void resetCurrentItem(); | ||
259 | Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; | ||
255 | }; | 260 | }; |
256 | 261 | ||
257 | #endif | 262 | #endif |
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index f97aa98..c442d0b 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp | |||
@@ -129,25 +129,25 @@ void KOViewManager::showDateView( int view, QDate date) | |||
129 | lastCount = mMainView->dateNavigator()->selectedDates().count(); | 129 | lastCount = mMainView->dateNavigator()->selectedDates().count(); |
130 | lastNDMode = savemFlagShowNextxDays; | 130 | lastNDMode = savemFlagShowNextxDays; |
131 | mMainView->dateNavigator()->selectDate( date ); | 131 | mMainView->dateNavigator()->selectDate( date ); |
132 | lastMode = 1; | 132 | lastMode = 1; |
133 | mCurrentAgendaView = 1 ; | 133 | mCurrentAgendaView = 1 ; |
134 | } else if (view == 4 ) { | 134 | } else if (view == 4 ) { |
135 | mCurrentAgendaView = 7 ; | 135 | mCurrentAgendaView = 7 ; |
136 | mMainView->dateNavigator()->selectDates( date, 7 ); | 136 | mMainView->dateNavigator()->selectDates( date, 7 ); |
137 | } else if (view == 5 ) { | 137 | } else if (view == 5 ) { |
138 | mCurrentAgendaView = 14 ; | 138 | mCurrentAgendaView = 14 ; |
139 | mMainView->dateNavigator()->selectDates( date, 14); | 139 | mMainView->dateNavigator()->selectDates( date, 14); |
140 | } else if (view == 6 ) { | 140 | } else if (view == 6 ) { |
141 | //mMainView->dateNavigator()->selectDates( date, 7 ); | 141 | resetDateSilent( date,1); |
142 | showMonthView(); | 142 | showMonthView(); |
143 | } else if (view == 7 ) { | 143 | } else if (view == 7 ) { |
144 | mMainView->dateNavigator()->selectDate( date ); | 144 | mMainView->dateNavigator()->selectDate( date ); |
145 | showJournalView(); | 145 | showJournalView(); |
146 | } else if (view == 8 ) { | 146 | } else if (view == 8 ) { |
147 | globalFlagBlockAgenda = 1; | 147 | globalFlagBlockAgenda = 1; |
148 | if ( mCurrentAgendaView != 3 ) | 148 | if ( mCurrentAgendaView != 3 ) |
149 | mCurrentAgendaView = -1; | 149 | mCurrentAgendaView = -1; |
150 | showAgendaView(KOPrefs::instance()->mFullViewMonth); | 150 | showAgendaView(KOPrefs::instance()->mFullViewMonth); |
151 | globalFlagBlockAgenda = 2; | 151 | globalFlagBlockAgenda = 2; |
152 | mMainView->dateNavigator()->selectDates( date , | 152 | mMainView->dateNavigator()->selectDates( date , |
153 | KOPrefs::instance()->mNextXDays ); | 153 | KOPrefs::instance()->mNextXDays ); |
@@ -380,24 +380,26 @@ void KOViewManager::updateView(const QDate &start, const QDate &end) | |||
380 | // kdDebug() << "KOViewManager::updateView()" << endl; | 380 | // kdDebug() << "KOViewManager::updateView()" << endl; |
381 | 381 | ||
382 | if (mCurrentView) mCurrentView->showDates(start, end); | 382 | if (mCurrentView) mCurrentView->showDates(start, end); |
383 | 383 | ||
384 | if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView(); | 384 | if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView(); |
385 | } | 385 | } |
386 | 386 | ||
387 | 387 | ||
388 | void KOViewManager::updateWNview() | 388 | void KOViewManager::updateWNview() |
389 | { | 389 | { |
390 | if ( mCurrentView == mWhatsNextView && mWhatsNextView ) | 390 | if ( mCurrentView == mWhatsNextView && mWhatsNextView ) |
391 | mWhatsNextView->updateView(); | 391 | mWhatsNextView->updateView(); |
392 | if ( mCurrentView == mMonthView && mMonthView ) | ||
393 | mMonthView->updateView(); | ||
392 | 394 | ||
393 | } | 395 | } |
394 | void KOViewManager::showWhatsNextView() | 396 | void KOViewManager::showWhatsNextView() |
395 | { | 397 | { |
396 | if (!mWhatsNextView) { | 398 | if (!mWhatsNextView) { |
397 | mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(), | 399 | mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(), |
398 | "KOViewManager::WhatsNextView"); | 400 | "KOViewManager::WhatsNextView"); |
399 | mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog()); | 401 | mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog()); |
400 | connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig())); | 402 | connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig())); |
401 | addView(mWhatsNextView); | 403 | addView(mWhatsNextView); |
402 | connect(this, SIGNAL( printWNV() ), | 404 | connect(this, SIGNAL( printWNV() ), |
403 | mWhatsNextView, SLOT( printMe() ) ); | 405 | mWhatsNextView, SLOT( printMe() ) ); |