author | zautrix <zautrix> | 2005-01-05 14:17:14 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-01-05 14:17:14 (UTC) |
commit | df0200487afbfa59b80a79e548d70b5203019003 (patch) (unidiff) | |
tree | 2240de4162736461316c8cb3cd00f87a8a9bf2bd /korganizer | |
parent | b8410daa179dbff2ebb833071ba50b9da36e6330 (diff) | |
download | kdepimpi-df0200487afbfa59b80a79e548d70b5203019003.zip kdepimpi-df0200487afbfa59b80a79e548d70b5203019003.tar.gz kdepimpi-df0200487afbfa59b80a79e548d70b5203019003.tar.bz2 |
todo enhancements/fixes
-rw-r--r-- | korganizer/calendarview.cpp | 4 | ||||
-rw-r--r-- | korganizer/koagendaitem.cpp | 2 | ||||
-rw-r--r-- | korganizer/kodialogmanager.cpp | 2 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 2 | ||||
-rw-r--r-- | korganizer/koprefs.h | 2 | ||||
-rw-r--r-- | korganizer/koprefsdialog.cpp | 13 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 78 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 7 | ||||
-rw-r--r-- | korganizer/kotodoviewitem.cpp | 33 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 1 |
10 files changed, 115 insertions, 29 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index a46cd87..7ddbe23 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -253,32 +253,33 @@ void CalendarView::init() | |||
253 | mNavigator = new DateNavigator( this, "datevav", mViewManager ); | 253 | mNavigator = new DateNavigator( this, "datevav", mViewManager ); |
254 | 254 | ||
255 | QBoxLayout *topLayout = (QBoxLayout*)layout(); | 255 | QBoxLayout *topLayout = (QBoxLayout*)layout(); |
256 | #ifndef KORG_NOSPLITTER | 256 | #ifndef KORG_NOSPLITTER |
257 | // create the main layout frames. | 257 | // create the main layout frames. |
258 | mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner"); | 258 | mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner"); |
259 | topLayout->addWidget(mPanner); | 259 | topLayout->addWidget(mPanner); |
260 | 260 | ||
261 | mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner, | 261 | mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner, |
262 | "CalendarView::LeftFrame"); | 262 | "CalendarView::LeftFrame"); |
263 | mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize); | 263 | mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize); |
264 | 264 | ||
265 | mDateNavigator = new KDateNavigator(mLeftSplitter, mCalendar, TRUE, | 265 | mDateNavigator = new KDateNavigator(mLeftSplitter, mCalendar, TRUE, |
266 | "CalendarView::DateNavigator", QDate::currentDate() ); | 266 | "CalendarView::DateNavigator", QDate::currentDate() ); |
267 | mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize); | 267 | mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize); |
268 | mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2"); | 268 | mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2"); |
269 | mTodoList->setNavigator( mNavigator ); | ||
269 | mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView"); | 270 | mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView"); |
270 | 271 | ||
271 | #ifdef KORG_NORESOURCEVIEW | 272 | #ifdef KORG_NORESOURCEVIEW |
272 | mResourceView = 0; | 273 | mResourceView = 0; |
273 | #else | 274 | #else |
274 | if ( mResourceManager ) { | 275 | if ( mResourceManager ) { |
275 | mResourceView = new ResourceView( mResourceManager, mLeftSplitter ); | 276 | mResourceView = new ResourceView( mResourceManager, mLeftSplitter ); |
276 | mResourceView->updateView(); | 277 | mResourceView->updateView(); |
277 | connect( mResourceView, SIGNAL( resourcesChanged() ), | 278 | connect( mResourceView, SIGNAL( resourcesChanged() ), |
278 | SLOT( updateView() ) ); | 279 | SLOT( updateView() ) ); |
279 | } else { | 280 | } else { |
280 | mResourceView = 0; | 281 | mResourceView = 0; |
281 | } | 282 | } |
282 | #endif | 283 | #endif |
283 | QWidget *rightBox = new QWidget( mPanner ); | 284 | QWidget *rightBox = new QWidget( mPanner ); |
284 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); | 285 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); |
@@ -298,32 +299,33 @@ void CalendarView::init() | |||
298 | QBoxLayout * leftFrameLayout; | 299 | QBoxLayout * leftFrameLayout; |
299 | if ( KOPrefs::instance()->mVerticalScreen ) { | 300 | if ( KOPrefs::instance()->mVerticalScreen ) { |
300 | mainBoxLayout = new QVBoxLayout(mainBox); | 301 | mainBoxLayout = new QVBoxLayout(mainBox); |
301 | leftFrameLayout = new QHBoxLayout(leftFrame ); | 302 | leftFrameLayout = new QHBoxLayout(leftFrame ); |
302 | } else { | 303 | } else { |
303 | mainBoxLayout = new QHBoxLayout(mainBox); | 304 | mainBoxLayout = new QHBoxLayout(mainBox); |
304 | leftFrameLayout = new QVBoxLayout(leftFrame ); | 305 | leftFrameLayout = new QVBoxLayout(leftFrame ); |
305 | } | 306 | } |
306 | topLayout->addWidget( mainBox ); | 307 | topLayout->addWidget( mainBox ); |
307 | mainBoxLayout->addWidget (leftFrame); | 308 | mainBoxLayout->addWidget (leftFrame); |
308 | mDateNavigator = new KDateNavigator(leftFrame, mCalendar, TRUE, | 309 | mDateNavigator = new KDateNavigator(leftFrame, mCalendar, TRUE, |
309 | "CalendarView::DateNavigator", QDate::currentDate()); | 310 | "CalendarView::DateNavigator", QDate::currentDate()); |
310 | // mDateNavigator->blockSignals( true ); | 311 | // mDateNavigator->blockSignals( true ); |
311 | leftFrameLayout->addWidget( mDateNavigator ); | 312 | leftFrameLayout->addWidget( mDateNavigator ); |
312 | mFilterView = new KOFilterView(&mFilters,leftFrame,"CalendarView::FilterView"); | 313 | mFilterView = new KOFilterView(&mFilters,leftFrame,"CalendarView::FilterView"); |
313 | mTodoList = new KOTodoView(mCalendar, leftFrame, "todolistsmall"); | 314 | mTodoList = new KOTodoView(mCalendar, leftFrame, "todolistsmall"); |
315 | mTodoList->setNavigator( mNavigator ); | ||
314 | 316 | ||
315 | if ( QApplication::desktop()->width() < 480 ) { | 317 | if ( QApplication::desktop()->width() < 480 ) { |
316 | leftFrameLayout->addWidget(mFilterView); | 318 | leftFrameLayout->addWidget(mFilterView); |
317 | leftFrameLayout->addWidget(mTodoList, 2 ); | 319 | leftFrameLayout->addWidget(mTodoList, 2 ); |
318 | 320 | ||
319 | } else { | 321 | } else { |
320 | leftFrameLayout->addWidget(mTodoList,2 ); | 322 | leftFrameLayout->addWidget(mTodoList,2 ); |
321 | leftFrameLayout->addWidget(mFilterView ); | 323 | leftFrameLayout->addWidget(mFilterView ); |
322 | } | 324 | } |
323 | mFilterView->hide(); | 325 | mFilterView->hide(); |
324 | QWidget *rightBox = new QWidget( mainBox ); | 326 | QWidget *rightBox = new QWidget( mainBox ); |
325 | mainBoxLayout->addWidget ( rightBox, 10 ); | 327 | mainBoxLayout->addWidget ( rightBox, 10 ); |
326 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); | 328 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); |
327 | mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" ); | 329 | mNavigatorBar = new NavigatorBar( QDate::currentDate(), rightBox, "useBigPixmaps" ); |
328 | mRightFrame = new QWidgetStack( rightBox ); | 330 | mRightFrame = new QWidgetStack( rightBox ); |
329 | rightLayout->addWidget( mNavigatorBar ); | 331 | rightLayout->addWidget( mNavigatorBar ); |
@@ -2131,32 +2133,34 @@ void CalendarView::updateTodoViews() | |||
2131 | } | 2133 | } |
2132 | 2134 | ||
2133 | 2135 | ||
2134 | void CalendarView::updateView(const QDate &start, const QDate &end) | 2136 | void CalendarView::updateView(const QDate &start, const QDate &end) |
2135 | { | 2137 | { |
2136 | mTodoList->updateView(); | 2138 | mTodoList->updateView(); |
2137 | mViewManager->updateView(start, end); | 2139 | mViewManager->updateView(start, end); |
2138 | //mDateNavigator->updateView(); | 2140 | //mDateNavigator->updateView(); |
2139 | } | 2141 | } |
2140 | 2142 | ||
2141 | void CalendarView::updateView() | 2143 | void CalendarView::updateView() |
2142 | { | 2144 | { |
2143 | DateList tmpList = mNavigator->selectedDates(); | 2145 | DateList tmpList = mNavigator->selectedDates(); |
2144 | 2146 | ||
2145 | // We assume that the navigator only selects consecutive days. | 2147 | // We assume that the navigator only selects consecutive days. |
2146 | updateView( tmpList.first(), tmpList.last() ); | 2148 | updateView( tmpList.first(), tmpList.last() ); |
2149 | if ( KOPrefs::instance()->mHideNonStartedTodos ) | ||
2150 | mTodoList->updateView(); | ||
2147 | } | 2151 | } |
2148 | 2152 | ||
2149 | void CalendarView::updateUnmanagedViews() | 2153 | void CalendarView::updateUnmanagedViews() |
2150 | { | 2154 | { |
2151 | mDateNavigator->updateDayMatrix(); | 2155 | mDateNavigator->updateDayMatrix(); |
2152 | } | 2156 | } |
2153 | 2157 | ||
2154 | int CalendarView::msgItemDelete() | 2158 | int CalendarView::msgItemDelete() |
2155 | { | 2159 | { |
2156 | return KMessageBox::warningContinueCancel(this, | 2160 | return KMessageBox::warningContinueCancel(this, |
2157 | i18n("This item will be\npermanently deleted."), | 2161 | i18n("This item will be\npermanently deleted."), |
2158 | i18n("KO/Pi Confirmation"),i18n("Delete")); | 2162 | i18n("KO/Pi Confirmation"),i18n("Delete")); |
2159 | } | 2163 | } |
2160 | 2164 | ||
2161 | 2165 | ||
2162 | void CalendarView::edit_cut() | 2166 | void CalendarView::edit_cut() |
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index 46184ac..6965ba7 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp | |||
@@ -485,33 +485,33 @@ void KOAgendaItem::paintEvent ( QPaintEvent *e ) | |||
485 | paintFrom = paintPix(); | 485 | paintFrom = paintPix(); |
486 | } | 486 | } |
487 | bitBlt (this, rx, ry, paintFrom, x()+rx ,yPaintCoord+ry, rw, rh ,CopyROP); | 487 | bitBlt (this, rx, ry, paintFrom, x()+rx ,yPaintCoord+ry, rw, rh ,CopyROP); |
488 | } | 488 | } |
489 | void KOAgendaItem::computeText() | 489 | void KOAgendaItem::computeText() |
490 | { | 490 | { |
491 | mDisplayedText = mIncidence->summary(); | 491 | mDisplayedText = mIncidence->summary(); |
492 | if ( (mIncidence->type() == "Todo") ) { | 492 | if ( (mIncidence->type() == "Todo") ) { |
493 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) | 493 | if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) |
494 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; | 494 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; |
495 | else if ( !(mIncidence->doesFloat())) | 495 | else if ( !(mIncidence->doesFloat())) |
496 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; | 496 | mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; |
497 | 497 | ||
498 | 498 | ||
499 | 499 | ||
500 | } else { | 500 | } else { |
501 | if ( !(mIncidence->doesFloat())) | 501 | if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) |
502 | mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + "-" + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; | 502 | mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + "-" + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; |
503 | 503 | ||
504 | if ( mAllDay ) { | 504 | if ( mAllDay ) { |
505 | if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { | 505 | if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { |
506 | mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; | 506 | mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; |
507 | } | 507 | } |
508 | } | 508 | } |
509 | 509 | ||
510 | } | 510 | } |
511 | 511 | ||
512 | if ( !mIncidence->location().isEmpty() ) { | 512 | if ( !mIncidence->location().isEmpty() ) { |
513 | if ( mAllDay ) | 513 | if ( mAllDay ) |
514 | mDisplayedText += " ("; | 514 | mDisplayedText += " ("; |
515 | else | 515 | else |
516 | mDisplayedText += "\n("; | 516 | mDisplayedText += "\n("; |
517 | mDisplayedText += mIncidence->location() +")"; | 517 | mDisplayedText += mIncidence->location() +")"; |
diff --git a/korganizer/kodialogmanager.cpp b/korganizer/kodialogmanager.cpp index db7c3f2..c99c0cb 100644 --- a/korganizer/kodialogmanager.cpp +++ b/korganizer/kodialogmanager.cpp | |||
@@ -178,33 +178,33 @@ void KODialogManager::showSearchDialog() | |||
178 | connect(lview, SIGNAL(deleteIncidenceSignal(Incidence *)), | 178 | connect(lview, SIGNAL(deleteIncidenceSignal(Incidence *)), |
179 | mMainView, SLOT(deleteIncidence(Incidence *))); | 179 | mMainView, SLOT(deleteIncidence(Incidence *))); |
180 | connect(lview, SIGNAL(cloneIncidenceSignal(Incidence *)), | 180 | connect(lview, SIGNAL(cloneIncidenceSignal(Incidence *)), |
181 | mMainView, SLOT(cloneIncidence(Incidence *))); | 181 | mMainView, SLOT(cloneIncidence(Incidence *))); |
182 | connect(lview, SIGNAL(beamIncidenceSignal(Incidence *)), | 182 | connect(lview, SIGNAL(beamIncidenceSignal(Incidence *)), |
183 | mMainView, SLOT(beamIncidence(Incidence *))); | 183 | mMainView, SLOT(beamIncidence(Incidence *))); |
184 | connect(lview, SIGNAL(moveIncidenceSignal(Incidence *)), | 184 | connect(lview, SIGNAL(moveIncidenceSignal(Incidence *)), |
185 | mMainView, SLOT(moveIncidence(Incidence *))); | 185 | mMainView, SLOT(moveIncidence(Incidence *))); |
186 | connect(lview, SIGNAL(beamIncidenceList(QPtrList<Incidence> )), | 186 | connect(lview, SIGNAL(beamIncidenceList(QPtrList<Incidence> )), |
187 | mMainView, SLOT(beamIncidenceList(QPtrList<Incidence> ))); | 187 | mMainView, SLOT(beamIncidenceList(QPtrList<Incidence> ))); |
188 | 188 | ||
189 | connect(mMainView, SIGNAL(configChanged()), mSearchDialog, SLOT(updateConfig())); | 189 | connect(mMainView, SIGNAL(configChanged()), mSearchDialog, SLOT(updateConfig())); |
190 | connect(mMainView, SIGNAL(updateSearchDialog()), mSearchDialog, SLOT(updateList())); | 190 | connect(mMainView, SIGNAL(updateSearchDialog()), mSearchDialog, SLOT(updateList())); |
191 | // connect( lview, SIGNAL( incidenceSelected( Incidence * ) ), | 191 | // connect( lview, SIGNAL( incidenceSelected( Incidence * ) ), |
192 | // mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); | 192 | // mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); |
193 | #ifndef DESKTOP_VERSION | 193 | #ifndef DESKTOP_VERSION |
194 | mSearchDialog->setMaximumSize( 640, 480 ); | 194 | mSearchDialog->setMaximumSize( QApplication::desktop()->size()); |
195 | //mSearchDialog->setGeometry( 40,40, 400, 300); | 195 | //mSearchDialog->setGeometry( 40,40, 400, 300); |
196 | mSearchDialog->showMaximized(); | 196 | mSearchDialog->showMaximized(); |
197 | #else | 197 | #else |
198 | KConfig *config = KOGlobals::config(); | 198 | KConfig *config = KOGlobals::config(); |
199 | config->setGroup("WidgetLayout"); | 199 | config->setGroup("WidgetLayout"); |
200 | QStringList list; | 200 | QStringList list; |
201 | list = config->readListEntry("SearchLayout"); | 201 | list = config->readListEntry("SearchLayout"); |
202 | int x,y,w,h; | 202 | int x,y,w,h; |
203 | if ( ! list.isEmpty() ) { | 203 | if ( ! list.isEmpty() ) { |
204 | x = list[0].toInt(); | 204 | x = list[0].toInt(); |
205 | y = list[1].toInt(); | 205 | y = list[1].toInt(); |
206 | w = list[2].toInt(); | 206 | w = list[2].toInt(); |
207 | h = list[3].toInt(); | 207 | h = list[3].toInt(); |
208 | mSearchDialog->setGeometry(x,y,w,h); | 208 | mSearchDialog->setGeometry(x,y,w,h); |
209 | 209 | ||
210 | } | 210 | } |
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 1cdb2fb..aae4692 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -97,32 +97,34 @@ KOPrefs::KOPrefs() : | |||
97 | addItemInt("LastLoadedLanguage",&mOldLanguage,0); | 97 | addItemInt("LastLoadedLanguage",&mOldLanguage,0); |
98 | 98 | ||
99 | addItemBool("AskForQuit",&mAskForQuit,false); | 99 | addItemBool("AskForQuit",&mAskForQuit,false); |
100 | 100 | ||
101 | #ifndef DESKTOP_VERSION | 101 | #ifndef DESKTOP_VERSION |
102 | addItemBool("ShowFullMenu",&mShowFullMenu,false); | 102 | addItemBool("ShowFullMenu",&mShowFullMenu,false); |
103 | #else | 103 | #else |
104 | addItemBool("ShowFullMenu",&mShowFullMenu,true); | 104 | addItemBool("ShowFullMenu",&mShowFullMenu,true); |
105 | #endif | 105 | #endif |
106 | addItemBool("ToolBarHor",&mToolBarHor, true ); | 106 | addItemBool("ToolBarHor",&mToolBarHor, true ); |
107 | addItemBool("ToolBarUp",&mToolBarUp, false ); | 107 | addItemBool("ToolBarUp",&mToolBarUp, false ); |
108 | addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); | 108 | addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); |
109 | addItemInt("Whats Next Days",&mWhatsNextDays,3); | 109 | addItemInt("Whats Next Days",&mWhatsNextDays,3); |
110 | addItemInt("Whats Next Prios",&mWhatsNextPrios,1); | 110 | addItemInt("Whats Next Prios",&mWhatsNextPrios,1); |
111 | 111 | ||
112 | addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); | 112 | addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); |
113 | addItemBool("ShowTimeInAgenda",&mShowTimeInAgenda,true); | ||
114 | addItemBool("HideNonStartedTodos",&mHideNonStartedTodos,false); | ||
113 | addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); | 115 | addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); |
114 | addItemInt("AllDay Size",&mAllDaySize,28); | 116 | addItemInt("AllDay Size",&mAllDaySize,28); |
115 | QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; | 117 | QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; |
116 | addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); | 118 | addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); |
117 | 119 | ||
118 | addItemStringList("LocationDefaults",&mLocationDefaults ); | 120 | addItemStringList("LocationDefaults",&mLocationDefaults ); |
119 | addItemStringList("EventSummary User",&mEventSummaryUser); | 121 | addItemStringList("EventSummary User",&mEventSummaryUser); |
120 | addItemStringList("TodoSummary User",&mTodoSummaryUser); | 122 | addItemStringList("TodoSummary User",&mTodoSummaryUser); |
121 | 123 | ||
122 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); | 124 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); |
123 | addItemBool("Enable Project View",&mEnableProjectView,false); | 125 | addItemBool("Enable Project View",&mEnableProjectView,false); |
124 | addItemBool("Auto Save",&mAutoSave,false); | 126 | addItemBool("Auto Save",&mAutoSave,false); |
125 | addItemInt("Auto Save Interval",&mAutoSaveInterval,3); | 127 | addItemInt("Auto Save Interval",&mAutoSaveInterval,3); |
126 | addItemBool("Confirm Deletes",&mConfirm,true); | 128 | addItemBool("Confirm Deletes",&mConfirm,true); |
127 | addItemString("Archive File",&mArchiveFile); | 129 | addItemString("Archive File",&mArchiveFile); |
128 | addItemString("Html Export File",&mHtmlExportFile, | 130 | addItemString("Html Export File",&mHtmlExportFile, |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index f2fe77a..69722a1 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -177,32 +177,34 @@ class KOPrefs : public KPimPrefs | |||
177 | bool mShowIconForwardFast; | 177 | bool mShowIconForwardFast; |
178 | bool mShowIconWhatsThis; | 178 | bool mShowIconWhatsThis; |
179 | bool mShowIconNextDays; | 179 | bool mShowIconNextDays; |
180 | bool mShowIconNext; | 180 | bool mShowIconNext; |
181 | bool mShowIconJournal; | 181 | bool mShowIconJournal; |
182 | 182 | ||
183 | bool mShowIconStretch; | 183 | bool mShowIconStretch; |
184 | 184 | ||
185 | bool mToolBarHor; | 185 | bool mToolBarHor; |
186 | bool mToolBarUp; | 186 | bool mToolBarUp; |
187 | bool mToolBarMiniIcons; | 187 | bool mToolBarMiniIcons; |
188 | 188 | ||
189 | bool mAskForQuit; | 189 | bool mAskForQuit; |
190 | bool mUsePassWd; | 190 | bool mUsePassWd; |
191 | bool mShowSyncEvents; | 191 | bool mShowSyncEvents; |
192 | bool mShowTodoInAgenda; | 192 | bool mShowTodoInAgenda; |
193 | bool mShowTimeInAgenda; | ||
194 | bool mHideNonStartedTodos; | ||
193 | 195 | ||
194 | int mLastSyncTime; | 196 | int mLastSyncTime; |
195 | void setCategoryColor(QString cat,const QColor & color); | 197 | void setCategoryColor(QString cat,const QColor & color); |
196 | QColor *categoryColor(QString cat); | 198 | QColor *categoryColor(QString cat); |
197 | 199 | ||
198 | QString mArchiveFile; | 200 | QString mArchiveFile; |
199 | QString mHtmlExportFile; | 201 | QString mHtmlExportFile; |
200 | bool mHtmlWithSave; | 202 | bool mHtmlWithSave; |
201 | 203 | ||
202 | QStringList mSelectedPlugins; | 204 | QStringList mSelectedPlugins; |
203 | 205 | ||
204 | QString mLastImportFile; | 206 | QString mLastImportFile; |
205 | QString mLastVcalFile; | 207 | QString mLastVcalFile; |
206 | QString mLastSaveFile; | 208 | QString mLastSaveFile; |
207 | QString mLastLoadFile; | 209 | QString mLastLoadFile; |
208 | 210 | ||
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp index 578c0e9..8aa24ee 100644 --- a/korganizer/koprefsdialog.cpp +++ b/korganizer/koprefsdialog.cpp | |||
@@ -80,32 +80,35 @@ KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : | |||
80 | KGlobal::locale()->insertCatalogue("timezones"); | 80 | KGlobal::locale()->insertCatalogue("timezones"); |
81 | 81 | ||
82 | setupGlobalTab(); | 82 | setupGlobalTab(); |
83 | setupMainTab(); | 83 | setupMainTab(); |
84 | // setupLocaleTab(); | 84 | // setupLocaleTab(); |
85 | //setupTimeZoneTab(); | 85 | //setupTimeZoneTab(); |
86 | setupTimeTab(); | 86 | setupTimeTab(); |
87 | //setupLocaleDateTab(); | 87 | //setupLocaleDateTab(); |
88 | setupFontsTab(); | 88 | setupFontsTab(); |
89 | setupColorsTab(); | 89 | setupColorsTab(); |
90 | setupViewsTab(); | 90 | setupViewsTab(); |
91 | //setupSyncTab(); | 91 | //setupSyncTab(); |
92 | //setupSyncAlgTab(); | 92 | //setupSyncAlgTab(); |
93 | //setupPrinterTab(); | 93 | //setupPrinterTab(); |
94 | //setupGroupSchedulingTab(); | 94 | //setupGroupSchedulingTab(); |
95 | //setupGroupAutomationTab(); | 95 | //setupGroupAutomationTab(); |
96 | |||
97 | if ( QApplication::desktop()->height() == 480 ) | ||
98 | hideButtons(); | ||
96 | } | 99 | } |
97 | 100 | ||
98 | 101 | ||
99 | KOPrefsDialog::~KOPrefsDialog() | 102 | KOPrefsDialog::~KOPrefsDialog() |
100 | { | 103 | { |
101 | } | 104 | } |
102 | void KOPrefsDialog::setupGlobalTab() | 105 | void KOPrefsDialog::setupGlobalTab() |
103 | { | 106 | { |
104 | QFrame *topFrame = addPage(i18n("Global"),0,0); | 107 | QFrame *topFrame = addPage(i18n("Global"),0,0); |
105 | kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); | 108 | kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); |
106 | QVBoxLayout *topLayout = new QVBoxLayout(topFrame); | 109 | QVBoxLayout *topLayout = new QVBoxLayout(topFrame); |
107 | topLayout->addWidget( kdelibcfg ); | 110 | topLayout->addWidget( kdelibcfg ); |
108 | 111 | ||
109 | 112 | ||
110 | } | 113 | } |
111 | void KOPrefsDialog::setupLocaleDateTab() | 114 | void KOPrefsDialog::setupLocaleDateTab() |
@@ -587,32 +590,37 @@ void KOPrefsDialog::setupViewsTab() | |||
587 | // dayBeginsLayout->addStretch(1); | 590 | // dayBeginsLayout->addStretch(1); |
588 | // dayBeginsLayout->addWidget(dayBegins->spinBox()); | 591 | // dayBeginsLayout->addWidget(dayBegins->spinBox()); |
589 | 592 | ||
590 | // QBoxLayout *nextDaysLayout = new QHBoxLayout; | 593 | // QBoxLayout *nextDaysLayout = new QHBoxLayout; |
591 | // topLayout->addLayout(nextDaysLayout,1,0); | 594 | // topLayout->addLayout(nextDaysLayout,1,0); |
592 | // nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); | 595 | // nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); |
593 | // mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); | 596 | // mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); |
594 | // nextDaysLayout->addStretch(1); | 597 | // nextDaysLayout->addStretch(1); |
595 | // nextDaysLayout->addWidget(mNextXDaysSpin); | 598 | // nextDaysLayout->addWidget(mNextXDaysSpin); |
596 | 599 | ||
597 | 600 | ||
598 | int ii = 0; | 601 | int ii = 0; |
599 | KPrefsDialogWidBool *dummy = | 602 | KPrefsDialogWidBool *dummy = |
600 | addWidBool(i18n("Edit item on doubleclick (if not, show)"), | 603 | addWidBool(i18n("Edit item on doubleclick (if not, show)"), |
601 | &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); | 604 | &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); |
602 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 605 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
606 | |||
607 | dummy = | ||
608 | addWidBool(i18n("Show time in agenda items"), | ||
609 | &(KOPrefs::instance()->mShowTimeInAgenda),topFrame); | ||
610 | topLayout->addWidget(dummy->checkBox(),ii++,0); | ||
603 | 611 | ||
604 | dummy = | 612 | dummy = |
605 | addWidBool(i18n("Highlight current day in agenda"), | 613 | addWidBool(i18n("Highlight current day in agenda"), |
606 | &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); | 614 | &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); |
607 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 615 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
608 | 616 | ||
609 | dummy = | 617 | dummy = |
610 | addWidBool(i18n("Use light color for highlight current day"), | 618 | addWidBool(i18n("Use light color for highlight current day"), |
611 | &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); | 619 | &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); |
612 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 620 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
613 | 621 | ||
614 | KPrefsDialogWidBool *dailyRecur = | 622 | KPrefsDialogWidBool *dailyRecur = |
615 | addWidBool(i18n("Show events that recur daily in date nav."), | 623 | addWidBool(i18n("Show events that recur daily in date nav."), |
616 | &(KOPrefs::instance()->mDailyRecur),topFrame); | 624 | &(KOPrefs::instance()->mDailyRecur),topFrame); |
617 | topLayout->addWidget(dailyRecur->checkBox(),ii++,0); | 625 | topLayout->addWidget(dailyRecur->checkBox(),ii++,0); |
618 | 626 | ||
@@ -820,32 +828,37 @@ void KOPrefsDialog::setupViewsTab() | |||
820 | addWidBool(i18n("Use short date in \nWhat's Next/Event view"), | 828 | addWidBool(i18n("Use short date in \nWhat's Next/Event view"), |
821 | &(KOPrefs::instance()->mShortDateInViewer),topFrame); | 829 | &(KOPrefs::instance()->mShortDateInViewer),topFrame); |
822 | topLayout->addWidget(passwdk->checkBox(), ii++,0); | 830 | topLayout->addWidget(passwdk->checkBox(), ii++,0); |
823 | 831 | ||
824 | 832 | ||
825 | 833 | ||
826 | 834 | ||
827 | // *********************** Todo View | 835 | // *********************** Todo View |
828 | 836 | ||
829 | topFrame = addPage(i18n("Todo View"),0,0); | 837 | topFrame = addPage(i18n("Todo View"),0,0); |
830 | // DesktopIcon("viewmag",KIcon::SizeMedium)); | 838 | // DesktopIcon("viewmag",KIcon::SizeMedium)); |
831 | 839 | ||
832 | topLayout = new QGridLayout(topFrame,4,1); | 840 | topLayout = new QGridLayout(topFrame,4,1); |
833 | topLayout->setSpacing(spacingHint()); | 841 | topLayout->setSpacing(spacingHint()); |
834 | topLayout->setMargin(marginHint()); | 842 | topLayout->setMargin(marginHint()); |
835 | ii = 0; | 843 | ii = 0; |
844 | dummy = | ||
845 | addWidBool(i18n("Hide not running Todos in To-do view"), | ||
846 | &(KOPrefs::instance()->mHideNonStartedTodos),topFrame); | ||
847 | topLayout->addWidget(dummy->checkBox(),ii++,0); | ||
848 | |||
836 | 849 | ||
837 | KPrefsDialogWidBool *showCompletedTodo = | 850 | KPrefsDialogWidBool *showCompletedTodo = |
838 | addWidBool(i18n("To-do view shows completed Todos"), | 851 | addWidBool(i18n("To-do view shows completed Todos"), |
839 | &(KOPrefs::instance()->mShowCompletedTodo),topFrame); | 852 | &(KOPrefs::instance()->mShowCompletedTodo),topFrame); |
840 | topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); | 853 | topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); |
841 | dummy = | 854 | dummy = |
842 | addWidBool(i18n("To-do view shows complete as 'xx %'"), | 855 | addWidBool(i18n("To-do view shows complete as 'xx %'"), |
843 | &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); | 856 | &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); |
844 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 857 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
845 | 858 | ||
846 | dummy = | 859 | dummy = |
847 | addWidBool(i18n("Small To-do view uses smaller font"), | 860 | addWidBool(i18n("Small To-do view uses smaller font"), |
848 | &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); | 861 | &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); |
849 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 862 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
850 | 863 | ||
851 | 864 | ||
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 9cafc60..5d7b066 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -319,79 +319,86 @@ void KOQuickTodo::focusInEvent(QFocusEvent *ev) | |||
319 | if ( text()==i18n("Click to add a new Todo") ) | 319 | if ( text()==i18n("Click to add a new Todo") ) |
320 | setText(""); | 320 | setText(""); |
321 | QLineEdit::focusInEvent(ev); | 321 | QLineEdit::focusInEvent(ev); |
322 | } | 322 | } |
323 | 323 | ||
324 | void KOQuickTodo::focusOutEvent(QFocusEvent *ev) | 324 | void KOQuickTodo::focusOutEvent(QFocusEvent *ev) |
325 | { | 325 | { |
326 | setText(i18n("Click to add a new Todo")); | 326 | setText(i18n("Click to add a new Todo")); |
327 | QLineEdit::focusOutEvent(ev); | 327 | QLineEdit::focusOutEvent(ev); |
328 | } | 328 | } |
329 | 329 | ||
330 | ///////////////////////////////////////////////////////////////////////////// | 330 | ///////////////////////////////////////////////////////////////////////////// |
331 | 331 | ||
332 | KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : | 332 | KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : |
333 | KOrg::BaseView(calendar,parent,name) | 333 | KOrg::BaseView(calendar,parent,name) |
334 | { | 334 | { |
335 | mNavigator = 0; | ||
335 | QBoxLayout *topLayout = new QVBoxLayout(this); | 336 | QBoxLayout *topLayout = new QVBoxLayout(this); |
336 | mName = QString ( name ); | 337 | mName = QString ( name ); |
337 | mBlockUpdate = false; | 338 | mBlockUpdate = false; |
338 | mQuickAdd = new KOQuickTodo(this); | 339 | mQuickAdd = new KOQuickTodo(this); |
339 | topLayout->addWidget(mQuickAdd); | 340 | topLayout->addWidget(mQuickAdd); |
340 | 341 | ||
341 | if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); | 342 | if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); |
342 | 343 | ||
343 | mTodoListView = new KOTodoListView(calendar,this, name ); | 344 | mTodoListView = new KOTodoListView(calendar,this, name ); |
344 | topLayout->addWidget(mTodoListView); | 345 | topLayout->addWidget(mTodoListView); |
345 | //mTodoListView->header()->setMaximumHeight(30); | 346 | //mTodoListView->header()->setMaximumHeight(30); |
346 | mTodoListView->setRootIsDecorated(true); | 347 | mTodoListView->setRootIsDecorated(true); |
347 | mTodoListView->setAllColumnsShowFocus(true); | 348 | mTodoListView->setAllColumnsShowFocus(true); |
348 | 349 | ||
349 | mTodoListView->setShowSortIndicator(true); | 350 | mTodoListView->setShowSortIndicator(true); |
350 | 351 | ||
351 | mTodoListView->addColumn(i18n("Todo")); | 352 | mTodoListView->addColumn(i18n("Todo")); |
352 | mTodoListView->addColumn(i18n("Prio")); | 353 | mTodoListView->addColumn(i18n("Prio")); |
353 | mTodoListView->setColumnAlignment(1,AlignHCenter); | 354 | mTodoListView->setColumnAlignment(1,AlignHCenter); |
354 | mTodoListView->addColumn(i18n("Complete")); | 355 | mTodoListView->addColumn(i18n("Complete")); |
355 | mTodoListView->setColumnAlignment(2,AlignHCenter); | 356 | mTodoListView->setColumnAlignment(2,AlignCenter); |
357 | |||
356 | mTodoListView->addColumn(i18n("Due Date")); | 358 | mTodoListView->addColumn(i18n("Due Date")); |
357 | mTodoListView->setColumnAlignment(3,AlignLeft); | 359 | mTodoListView->setColumnAlignment(3,AlignLeft); |
358 | mTodoListView->addColumn(i18n("Due Time")); | 360 | mTodoListView->addColumn(i18n("Due Time")); |
359 | mTodoListView->setColumnAlignment(4,AlignHCenter); | 361 | mTodoListView->setColumnAlignment(4,AlignHCenter); |
362 | |||
363 | mTodoListView->addColumn(i18n("Start Date")); | ||
364 | mTodoListView->setColumnAlignment(5,AlignLeft); | ||
365 | mTodoListView->addColumn(i18n("Start Time")); | ||
366 | mTodoListView->setColumnAlignment(6,AlignHCenter); | ||
367 | |||
360 | mTodoListView->addColumn(i18n("Cancelled")); | 368 | mTodoListView->addColumn(i18n("Cancelled")); |
361 | mTodoListView->addColumn(i18n("Categories")); | 369 | mTodoListView->addColumn(i18n("Categories")); |
362 | #if 0 | 370 | #if 0 |
363 | mTodoListView->addColumn(i18n("Sort Id")); | 371 | mTodoListView->addColumn(i18n("Sort Id")); |
364 | mTodoListView->setColumnAlignment(4,AlignHCenter); | 372 | mTodoListView->setColumnAlignment(4,AlignHCenter); |
365 | #endif | 373 | #endif |
366 | 374 | ||
367 | mTodoListView->setMinimumHeight( 60 ); | 375 | mTodoListView->setMinimumHeight( 60 ); |
368 | mTodoListView->setItemsRenameable( true ); | 376 | mTodoListView->setItemsRenameable( true ); |
369 | mTodoListView->setRenameable( 0 ); | 377 | mTodoListView->setRenameable( 0 ); |
370 | mTodoListView->setColumnWidth( 0, 120 ); | 378 | mTodoListView->setColumnWidth( 0, 120 ); |
371 | mTodoListView->setColumnWidthMode(0, QListView::Manual); | 379 | mTodoListView->setColumnWidthMode(0, QListView::Manual); |
372 | mTodoListView->setColumnWidthMode(1, QListView::Manual); | 380 | mTodoListView->setColumnWidthMode(1, QListView::Manual); |
373 | mTodoListView->setColumnWidthMode(2, QListView::Manual); | 381 | mTodoListView->setColumnWidthMode(2, QListView::Manual); |
374 | mTodoListView->setColumnWidthMode(3, QListView::Manual); | 382 | mTodoListView->setColumnWidthMode(3, QListView::Manual); |
375 | mTodoListView->setColumnWidthMode(4, QListView::Manual); | 383 | mTodoListView->setColumnWidthMode(4, QListView::Manual); |
376 | mTodoListView->setColumnWidthMode(5, QListView::Manual); | 384 | mTodoListView->setColumnWidthMode(5, QListView::Manual); |
377 | mTodoListView->setColumnWidthMode(6, QListView::Manual); | 385 | mTodoListView->setColumnWidthMode(6, QListView::Manual); |
378 | mTodoListView->setColumnAlignment( 2, AlignCenter ); | 386 | mTodoListView->setColumnWidthMode(7, QListView::Manual); |
379 | #if 0 | 387 | mTodoListView->setColumnWidthMode(8, QListView::Manual); |
380 | mTodoListView->setColumnWidthMode(6, QListView::Manual); | 388 | |
381 | #endif | ||
382 | 389 | ||
383 | mPriorityPopupMenu = new QPopupMenu(this); | 390 | mPriorityPopupMenu = new QPopupMenu(this); |
384 | for (int i = 1; i <= 5; i++) { | 391 | for (int i = 1; i <= 5; i++) { |
385 | QString label = QString ("%1").arg (i); | 392 | QString label = QString ("%1").arg (i); |
386 | mPriority[mPriorityPopupMenu->insertItem (label)] = i; | 393 | mPriority[mPriorityPopupMenu->insertItem (label)] = i; |
387 | } | 394 | } |
388 | connect (mPriorityPopupMenu, SIGNAL(activated (int)), SLOT (setNewPriority(int))); | 395 | connect (mPriorityPopupMenu, SIGNAL(activated (int)), SLOT (setNewPriority(int))); |
389 | 396 | ||
390 | mPercentageCompletedPopupMenu = new QPopupMenu(this); | 397 | mPercentageCompletedPopupMenu = new QPopupMenu(this); |
391 | for (int i = 0; i <= 100; i+=20) { | 398 | for (int i = 0; i <= 100; i+=20) { |
392 | QString label = QString ("%1 %").arg (i); | 399 | QString label = QString ("%1 %").arg (i); |
393 | mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; | 400 | mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i; |
394 | } | 401 | } |
395 | connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); | 402 | connect (mPercentageCompletedPopupMenu, SIGNAL (activated (int)), SLOT (setNewPercentage (int))); |
396 | 403 | ||
397 | 404 | ||
@@ -415,46 +422,62 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : | |||
415 | 422 | ||
416 | mItemPopupMenu->insertItem( i18n("New Todo..."), this, | 423 | mItemPopupMenu->insertItem( i18n("New Todo..."), this, |
417 | SLOT (newTodo())); | 424 | SLOT (newTodo())); |
418 | mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, | 425 | mItemPopupMenu->insertItem(i18n("New Sub-Todo..."), this, |
419 | SLOT (newSubTodo())); | 426 | SLOT (newSubTodo())); |
420 | mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, | 427 | mItemPopupMenu->insertItem(i18n("Unparent Todo"), this, |
421 | SLOT (unparentTodo()),0,21); | 428 | SLOT (unparentTodo()),0,21); |
422 | mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, | 429 | mItemPopupMenu->insertItem(i18n("Reparent Todo"), this, |
423 | SLOT (reparentTodo()),0,22); | 430 | SLOT (reparentTodo()),0,22); |
424 | mItemPopupMenu->insertSeparator(); | 431 | mItemPopupMenu->insertSeparator(); |
425 | mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed"), | 432 | mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed"), |
426 | this, SLOT( purgeCompleted() ) ); | 433 | this, SLOT( purgeCompleted() ) ); |
427 | mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), | 434 | mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"), |
428 | this, SLOT( toggleCompleted() ),0, 33 ); | 435 | this, SLOT( toggleCompleted() ),0, 33 ); |
429 | mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), | 436 | mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), |
430 | this, SLOT( toggleQuickTodo() ),0, 34 ); | 437 | this, SLOT( toggleQuickTodo() ),0, 34 ); |
438 | mItemPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), | ||
439 | this, SLOT( toggleRunning() ),0, 35 ); | ||
431 | 440 | ||
432 | mPopupMenu = new QPopupMenu(this); | 441 | mPopupMenu = new QPopupMenu(this); |
433 | mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this, | 442 | mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this, |
434 | SLOT (newTodo()),0,1); | 443 | SLOT (newTodo()),0,1); |
435 | mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed"), | 444 | mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed"), |
436 | this, SLOT(purgeCompleted()),0,2); | 445 | this, SLOT(purgeCompleted()),0,2); |
437 | mPopupMenu->insertItem(i18n("Show Completed"), | 446 | mPopupMenu->insertItem(i18n("Show Completed"), |
438 | this, SLOT( toggleCompleted() ),0,3 ); | 447 | this, SLOT( toggleCompleted() ),0,3 ); |
439 | mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), | 448 | mPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"), |
440 | this, SLOT( toggleQuickTodo() ),0,4 ); | 449 | this, SLOT( toggleQuickTodo() ),0,4 ); |
450 | mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"), | ||
451 | this, SLOT( toggleRunning() ),0,5 ); | ||
441 | mDocPrefs = new DocPrefs( name ); | 452 | mDocPrefs = new DocPrefs( name ); |
442 | 453 | ||
443 | mPopupMenu->setCheckable( true ); | 454 | mPopupMenu->setCheckable( true ); |
444 | mItemPopupMenu->setCheckable( true ); | 455 | mItemPopupMenu->setCheckable( true ); |
456 | |||
457 | |||
458 | mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); | ||
459 | mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); | ||
460 | |||
461 | mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); | ||
462 | mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); | ||
463 | |||
464 | mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); | ||
465 | mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); | ||
466 | |||
467 | |||
445 | // Double clicking conflicts with opening/closing the subtree | 468 | // Double clicking conflicts with opening/closing the subtree |
446 | connect( mTodoListView, SIGNAL( doubleClicked( QListViewItem *) ), | 469 | connect( mTodoListView, SIGNAL( doubleClicked( QListViewItem *) ), |
447 | SLOT( editItem( QListViewItem *) ) ); | 470 | SLOT( editItem( QListViewItem *) ) ); |
448 | /* | 471 | /* |
449 | connect( mTodoListView, SIGNAL( rightButtonClicked ( QListViewItem *, | 472 | connect( mTodoListView, SIGNAL( rightButtonClicked ( QListViewItem *, |
450 | const QPoint &,int ) ), | 473 | const QPoint &,int ) ), |
451 | SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); | 474 | SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); |
452 | */ | 475 | */ |
453 | connect( mTodoListView, SIGNAL( contextRequest ( QListViewItem *, | 476 | connect( mTodoListView, SIGNAL( contextRequest ( QListViewItem *, |
454 | const QPoint &,int ) ), | 477 | const QPoint &,int ) ), |
455 | SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); | 478 | SLOT( popupMenu( QListViewItem *, const QPoint & ,int) ) ); |
456 | connect( mTodoListView, SIGNAL( clicked( QListViewItem * ) ), | 479 | connect( mTodoListView, SIGNAL( clicked( QListViewItem * ) ), |
457 | SLOT( itemClicked( QListViewItem * ) ) ); | 480 | SLOT( itemClicked( QListViewItem * ) ) ); |
458 | connect( mTodoListView, SIGNAL( double_Clicked( QListViewItem * ) ), | 481 | connect( mTodoListView, SIGNAL( double_Clicked( QListViewItem * ) ), |
459 | SLOT( itemDoubleClicked( QListViewItem * ) ) ); | 482 | SLOT( itemDoubleClicked( QListViewItem * ) ) ); |
460 | connect( mTodoListView, SIGNAL( todoDropped( Todo * ) ), | 483 | connect( mTodoListView, SIGNAL( todoDropped( Todo * ) ), |
@@ -463,63 +486,48 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : | |||
463 | SLOT( itemStateChanged( QListViewItem * ) ) ); | 486 | SLOT( itemStateChanged( QListViewItem * ) ) ); |
464 | connect( mTodoListView, SIGNAL( collapsed( QListViewItem * ) ), | 487 | connect( mTodoListView, SIGNAL( collapsed( QListViewItem * ) ), |
465 | SLOT( itemStateChanged( QListViewItem * ) ) ); | 488 | SLOT( itemStateChanged( QListViewItem * ) ) ); |
466 | 489 | ||
467 | #if 0 | 490 | #if 0 |
468 | connect(mTodoListView,SIGNAL(selectionChanged(QListViewItem *)), | 491 | connect(mTodoListView,SIGNAL(selectionChanged(QListViewItem *)), |
469 | SLOT(selectionChanged(QListViewItem *))); | 492 | SLOT(selectionChanged(QListViewItem *))); |
470 | connect(mTodoListView,SIGNAL(clicked(QListViewItem *)), | 493 | connect(mTodoListView,SIGNAL(clicked(QListViewItem *)), |
471 | SLOT(selectionChanged(QListViewItem *))); | 494 | SLOT(selectionChanged(QListViewItem *))); |
472 | connect(mTodoListView,SIGNAL(pressed(QListViewItem *)), | 495 | connect(mTodoListView,SIGNAL(pressed(QListViewItem *)), |
473 | SLOT(selectionChanged(QListViewItem *))); | 496 | SLOT(selectionChanged(QListViewItem *))); |
474 | #endif | 497 | #endif |
475 | connect( mTodoListView, SIGNAL(selectionChanged() ), | 498 | connect( mTodoListView, SIGNAL(selectionChanged() ), |
476 | SLOT( processSelectionChange() ) ); | 499 | SLOT( processSelectionChange() ) ); |
477 | connect( mQuickAdd, SIGNAL( returnPressed () ), | 500 | connect( mQuickAdd, SIGNAL( returnPressed () ), |
478 | SLOT( addQuickTodo() ) ); | 501 | SLOT( addQuickTodo() ) ); |
479 | // if ( QApplication::desktop()->width() < 480 ) { | ||
480 | // setNarrow(); | ||
481 | // mTodoListView->setColumnWidth( 0, 100 ); | ||
482 | |||
483 | // } | ||
484 | 502 | ||
485 | } | 503 | } |
486 | 504 | ||
487 | KOTodoView::~KOTodoView() | 505 | KOTodoView::~KOTodoView() |
488 | { | 506 | { |
489 | delete mDocPrefs; | 507 | delete mDocPrefs; |
490 | } | 508 | } |
491 | 509 | ||
492 | void KOTodoView::jumpToDate () | 510 | void KOTodoView::jumpToDate () |
493 | { | 511 | { |
494 | // if (mActiveItem) { | 512 | // if (mActiveItem) { |
495 | // mActiveItem->todo()); | 513 | // mActiveItem->todo()); |
496 | // if ( mActiveItem->todo()->hasDueDate() ) | 514 | // if ( mActiveItem->todo()->hasDueDate() ) |
497 | // emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() ); | 515 | // emit mActiveItem->todo()jumpToTime( mTodo->dtDue().date() ); |
498 | } | 516 | } |
499 | 517 | ||
500 | void KOTodoView::setNarrow() | ||
501 | { | ||
502 | //mTodoListView->setColumnWidth( 0, 120 ); | ||
503 | mTodoListView->setColumnWidth( 1, 35 ); | ||
504 | mTodoListView->setColumnWidth( 2, 40 ); | ||
505 | mTodoListView->setColumnWidth( 3, 80 ); | ||
506 | mTodoListView->setColumnWidth( 4, 40 ); | ||
507 | mTodoListView->setColumnWidth( 5, 90 ); | ||
508 | |||
509 | } | ||
510 | void KOTodoView::updateView() | 518 | void KOTodoView::updateView() |
511 | { | 519 | { |
512 | pendingSubtodo = 0; | 520 | pendingSubtodo = 0; |
513 | if ( mBlockUpdate ) { | 521 | if ( mBlockUpdate ) { |
514 | //qDebug("blocked "); | 522 | //qDebug("blocked "); |
515 | return; | 523 | return; |
516 | } | 524 | } |
517 | //qDebug("update "); | 525 | //qDebug("update "); |
518 | // kdDebug() << "KOTodoView::updateView()" << endl; | 526 | // kdDebug() << "KOTodoView::updateView()" << endl; |
519 | QFont fo = KOPrefs::instance()->mTodoViewFont; | 527 | QFont fo = KOPrefs::instance()->mTodoViewFont; |
520 | mTodoListView->clear(); | 528 | mTodoListView->clear(); |
521 | if ( mName == "todolistsmall" ) { | 529 | if ( mName == "todolistsmall" ) { |
522 | if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { | 530 | if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) { |
523 | int ps = fo.pointSize() -2; | 531 | int ps = fo.pointSize() -2; |
524 | if ( ps > 12 ) | 532 | if ( ps > 12 ) |
525 | ps -= 2; | 533 | ps -= 2; |
@@ -574,61 +582,78 @@ void KOTodoView::updateView() | |||
574 | //qDebug("related found "); | 582 | //qDebug("related found "); |
575 | incidence = incidence->relatedTo(); | 583 | incidence = incidence->relatedTo(); |
576 | } | 584 | } |
577 | } else | 585 | } else |
578 | incidence = 0; | 586 | incidence = 0; |
579 | } | 587 | } |
580 | if ( next ) | 588 | if ( next ) |
581 | todo = todoList.next(); | 589 | todo = todoList.next(); |
582 | } | 590 | } |
583 | // qDebug("again .... "); | 591 | // qDebug("again .... "); |
584 | // for(todo = todoList.first(); todo; todo = todoList.next()) { | 592 | // for(todo = todoList.first(); todo; todo = todoList.next()) { |
585 | 593 | ||
586 | // qDebug("yytodo %s ", todo->summary().latin1()); | 594 | // qDebug("yytodo %s ", todo->summary().latin1()); |
587 | // } | 595 | // } |
588 | //qDebug("for "); | 596 | //qDebug("for "); |
589 | for(todo = todoList.first(); todo; todo = todoList.next()) { | 597 | for(todo = todoList.first(); todo; todo = todoList.next()) { |
590 | if (!mTodoMap.contains(todo) && ( KOPrefs::instance()->mShowCompletedTodo || !todo->isCompleted() ) ) | 598 | if (!mTodoMap.contains(todo) && checkTodo( todo ) ) |
591 | { | 599 | { |
592 | insertTodoItem(todo); | 600 | insertTodoItem(todo); |
593 | } | 601 | } |
594 | } | 602 | } |
595 | //qDebug("for end "); | 603 | //qDebug("for end "); |
596 | // Restore opened/closed state | 604 | // Restore opened/closed state |
597 | mTodoListView->blockSignals( true ); | 605 | mTodoListView->blockSignals( true ); |
598 | if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); | 606 | if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() ); |
599 | mTodoListView->blockSignals( false ); | 607 | mTodoListView->blockSignals( false ); |
600 | mTodoListView->setFocus(); | 608 | mTodoListView->setFocus(); |
601 | processSelectionChange(); | 609 | processSelectionChange(); |
602 | } | 610 | } |
603 | 611 | ||
612 | bool KOTodoView::checkTodo( Todo * todo ) | ||
613 | { | ||
614 | |||
615 | if ( !KOPrefs::instance()->mShowCompletedTodo && todo->isCompleted() ) | ||
616 | return false; | ||
617 | if ( KOPrefs::instance()->mHideNonStartedTodos && mNavigator ) { | ||
618 | if ( todo->hasStartDate() ) | ||
619 | if ( mNavigator->selectedDates().last() < todo->dtStart().date() ) | ||
620 | return false; | ||
621 | if ( todo->hasDueDate() ) | ||
622 | if ( mNavigator->selectedDates().first() > todo->dtDue().date() ) | ||
623 | return false; | ||
624 | } | ||
625 | return true; | ||
626 | } | ||
627 | |||
604 | void KOTodoView::restoreItemState( QListViewItem *item ) | 628 | void KOTodoView::restoreItemState( QListViewItem *item ) |
605 | { | 629 | { |
606 | pendingSubtodo = 0; | 630 | pendingSubtodo = 0; |
607 | while( item ) { | 631 | while( item ) { |
608 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; | 632 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; |
609 | todoItem->setOpen( mDocPrefs->readBoolEntry( todoItem->todo()->uid() ) ); | 633 | todoItem->setOpen( mDocPrefs->readBoolEntry( todoItem->todo()->uid() ) ); |
610 | if( item->childCount() > 0 ) restoreItemState( item->firstChild() ); | 634 | if( item->childCount() > 0 ) restoreItemState( item->firstChild() ); |
611 | item = item->nextSibling(); | 635 | item = item->nextSibling(); |
612 | } | 636 | } |
613 | } | 637 | } |
614 | 638 | ||
615 | 639 | ||
616 | QMap<Todo *,KOTodoViewItem *>::ConstIterator | 640 | QMap<Todo *,KOTodoViewItem *>::ConstIterator |
617 | KOTodoView::insertTodoItem(Todo *todo) | 641 | KOTodoView::insertTodoItem(Todo *todo) |
618 | { | 642 | { |
643 | |||
619 | // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl; | 644 | // kdDebug() << "KOTodoView::insertTodoItem(): " << todo->getSummary() << endl; |
620 | // TODO: Check, if dynmaic cast is necessary | 645 | // TODO: Check, if dynmaic cast is necessary |
621 | 646 | ||
622 | pendingSubtodo = 0; | 647 | pendingSubtodo = 0; |
623 | Incidence *incidence = todo->relatedTo(); | 648 | Incidence *incidence = todo->relatedTo(); |
624 | if (incidence && incidence->type() == "Todo") { | 649 | if (incidence && incidence->type() == "Todo") { |
625 | Todo *relatedTodo = static_cast<Todo *>(incidence); | 650 | Todo *relatedTodo = static_cast<Todo *>(incidence); |
626 | 651 | ||
627 | // kdDebug() << " has Related" << endl; | 652 | // kdDebug() << " has Related" << endl; |
628 | QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; | 653 | QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; |
629 | itemIterator = mTodoMap.find(relatedTodo); | 654 | itemIterator = mTodoMap.find(relatedTodo); |
630 | if (itemIterator == mTodoMap.end()) { | 655 | if (itemIterator == mTodoMap.end()) { |
631 | // kdDebug() << " related not yet in list" << endl; | 656 | // kdDebug() << " related not yet in list" << endl; |
632 | itemIterator = insertTodoItem (relatedTodo); | 657 | itemIterator = insertTodoItem (relatedTodo); |
633 | } | 658 | } |
634 | // isn't this pretty stupid? We give one Todo to the KOTodoViewItem | 659 | // isn't this pretty stupid? We give one Todo to the KOTodoViewItem |
@@ -705,33 +730,33 @@ void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) | |||
705 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); | 730 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); |
706 | } | 731 | } |
707 | 732 | ||
708 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &,int column) | 733 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &,int column) |
709 | { | 734 | { |
710 | pendingSubtodo = 0; | 735 | pendingSubtodo = 0; |
711 | mActiveItem = (KOTodoViewItem *)item; | 736 | mActiveItem = (KOTodoViewItem *)item; |
712 | if (item) { | 737 | if (item) { |
713 | switch (column){ | 738 | switch (column){ |
714 | case 1: | 739 | case 1: |
715 | mPriorityPopupMenu->popup(QCursor::pos ()); break; | 740 | mPriorityPopupMenu->popup(QCursor::pos ()); break; |
716 | case 2: | 741 | case 2: |
717 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; | 742 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; |
718 | case 3: | 743 | case 3: |
719 | moveTodo(); | 744 | moveTodo(); |
720 | break; | 745 | break; |
721 | case 6: | 746 | case 8: |
722 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; | 747 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; |
723 | default: | 748 | default: |
724 | mItemPopupMenu->popup(QCursor::pos()); | 749 | mItemPopupMenu->popup(QCursor::pos()); |
725 | } | 750 | } |
726 | } else mPopupMenu->popup(QCursor::pos()); | 751 | } else mPopupMenu->popup(QCursor::pos()); |
727 | } | 752 | } |
728 | void KOTodoView::newTodo() | 753 | void KOTodoView::newTodo() |
729 | { | 754 | { |
730 | emit newTodoSignal(); | 755 | emit newTodoSignal(); |
731 | } | 756 | } |
732 | 757 | ||
733 | void KOTodoView::newSubTodo() | 758 | void KOTodoView::newSubTodo() |
734 | { | 759 | { |
735 | if (mActiveItem) { | 760 | if (mActiveItem) { |
736 | emit newSubTodoSignal(mActiveItem->todo()); | 761 | emit newSubTodoSignal(mActiveItem->todo()); |
737 | } | 762 | } |
@@ -982,32 +1007,41 @@ void KOTodoView::purgeCompleted() | |||
982 | { | 1007 | { |
983 | emit purgeCompletedSignal(); | 1008 | emit purgeCompletedSignal(); |
984 | } | 1009 | } |
985 | void KOTodoView::toggleQuickTodo() | 1010 | void KOTodoView::toggleQuickTodo() |
986 | { | 1011 | { |
987 | if ( mQuickAdd->isVisible() ) { | 1012 | if ( mQuickAdd->isVisible() ) { |
988 | mQuickAdd->hide(); | 1013 | mQuickAdd->hide(); |
989 | KOPrefs::instance()->mEnableQuickTodo = false; | 1014 | KOPrefs::instance()->mEnableQuickTodo = false; |
990 | } | 1015 | } |
991 | else { | 1016 | else { |
992 | mQuickAdd->show(); | 1017 | mQuickAdd->show(); |
993 | KOPrefs::instance()->mEnableQuickTodo = true; | 1018 | KOPrefs::instance()->mEnableQuickTodo = true; |
994 | } | 1019 | } |
995 | mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); | 1020 | mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); |
996 | mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); | 1021 | mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); |
997 | } | 1022 | } |
1023 | |||
1024 | void KOTodoView::toggleRunning() | ||
1025 | { | ||
1026 | KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos; | ||
1027 | mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); | ||
1028 | mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); | ||
1029 | updateView(); | ||
1030 | } | ||
1031 | |||
998 | void KOTodoView::toggleCompleted() | 1032 | void KOTodoView::toggleCompleted() |
999 | { | 1033 | { |
1000 | KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo; | 1034 | KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo; |
1001 | mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); | 1035 | mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); |
1002 | mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); | 1036 | mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); |
1003 | updateView(); | 1037 | updateView(); |
1004 | } | 1038 | } |
1005 | 1039 | ||
1006 | void KOTodoView::addQuickTodo() | 1040 | void KOTodoView::addQuickTodo() |
1007 | { | 1041 | { |
1008 | Todo *todo = new Todo(); | 1042 | Todo *todo = new Todo(); |
1009 | todo->setSummary(mQuickAdd->text()); | 1043 | todo->setSummary(mQuickAdd->text()); |
1010 | todo->setOrganizer(KOPrefs::instance()->email()); | 1044 | todo->setOrganizer(KOPrefs::instance()->email()); |
1011 | CalFilter * cf = mCalendar->filter(); | 1045 | CalFilter * cf = mCalendar->filter(); |
1012 | if ( cf ) { | 1046 | if ( cf ) { |
1013 | if ( cf->isEnabled()&& cf->showCategories()) { | 1047 | if ( cf->isEnabled()&& cf->showCategories()) { |
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index 0c08677..5ca0362 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h | |||
@@ -30,32 +30,33 @@ | |||
30 | #include <qstrlist.h> | 30 | #include <qstrlist.h> |
31 | #include <qlistbox.h> | 31 | #include <qlistbox.h> |
32 | #include <qpopupmenu.h> | 32 | #include <qpopupmenu.h> |
33 | #include <qlabel.h> | 33 | #include <qlabel.h> |
34 | #include <qmap.h> | 34 | #include <qmap.h> |
35 | #include <qlistview.h> | 35 | #include <qlistview.h> |
36 | #include <klistview.h> | 36 | #include <klistview.h> |
37 | 37 | ||
38 | #include <libkcal/calendar.h> | 38 | #include <libkcal/calendar.h> |
39 | #include <libkcal/todo.h> | 39 | #include <libkcal/todo.h> |
40 | 40 | ||
41 | #include <korganizer/baseview.h> | 41 | #include <korganizer/baseview.h> |
42 | 42 | ||
43 | #include "kotodoviewitem.h" | 43 | #include "kotodoviewitem.h" |
44 | #include "koprefs.h" | 44 | #include "koprefs.h" |
45 | #include "koglobals.h" | 45 | #include "koglobals.h" |
46 | #include "datenavigator.h" | ||
46 | 47 | ||
47 | class QDragEnterEvent; | 48 | class QDragEnterEvent; |
48 | class QDragMoveEvent; | 49 | class QDragMoveEvent; |
49 | class QDragLeaveEvent; | 50 | class QDragLeaveEvent; |
50 | class QDropEvent; | 51 | class QDropEvent; |
51 | 52 | ||
52 | class DocPrefs; | 53 | class DocPrefs; |
53 | 54 | ||
54 | class KOTodoListView : public KListView | 55 | class KOTodoListView : public KListView |
55 | { | 56 | { |
56 | Q_OBJECT | 57 | Q_OBJECT |
57 | public: | 58 | public: |
58 | KOTodoListView(Calendar *,QWidget *parent=0,const char *name=0); | 59 | KOTodoListView(Calendar *,QWidget *parent=0,const char *name=0); |
59 | virtual ~KOTodoListView() {} | 60 | virtual ~KOTodoListView() {} |
60 | 61 | ||
61 | signals: | 62 | signals: |
@@ -105,42 +106,42 @@ class KOQuickTodo : public QLineEdit | |||
105 | class KOTodoView : public KOrg::BaseView | 106 | class KOTodoView : public KOrg::BaseView |
106 | { | 107 | { |
107 | Q_OBJECT | 108 | Q_OBJECT |
108 | public: | 109 | public: |
109 | KOTodoView(Calendar *, QWidget* parent=0, const char* name=0 ); | 110 | KOTodoView(Calendar *, QWidget* parent=0, const char* name=0 ); |
110 | ~KOTodoView(); | 111 | ~KOTodoView(); |
111 | 112 | ||
112 | QPtrList<Incidence> selectedIncidences(); | 113 | QPtrList<Incidence> selectedIncidences(); |
113 | QPtrList<Todo> selectedTodos(); | 114 | QPtrList<Todo> selectedTodos(); |
114 | 115 | ||
115 | DateList selectedDates() | 116 | DateList selectedDates() |
116 | {DateList q; | 117 | {DateList q; |
117 | return q;} | 118 | return q;} |
118 | 119 | ||
119 | /** Return number of shown dates. TodoView does not show dates, */ | 120 | /** Return number of shown dates. TodoView does not show dates, */ |
120 | int currentDateCount() { return 0; } | 121 | int currentDateCount() { return 0; } |
121 | void setNarrow(); | ||
122 | 122 | ||
123 | void printPreview(CalPrinter *calPrinter, const QDate &fd, const QDate &td); | 123 | void printPreview(CalPrinter *calPrinter, const QDate &fd, const QDate &td); |
124 | 124 | ||
125 | void setDocumentId( const QString & ); | 125 | void setDocumentId( const QString & ); |
126 | 126 | ||
127 | void saveLayout(KConfig *config, const QString &group) const; | 127 | void saveLayout(KConfig *config, const QString &group) const; |
128 | void restoreLayout(KConfig *config, const QString &group); | 128 | void restoreLayout(KConfig *config, const QString &group); |
129 | /** Create a popup menu to set categories */ | 129 | /** Create a popup menu to set categories */ |
130 | QPopupMenu *getCategoryPopupMenu (KOTodoViewItem *todoItem); | 130 | QPopupMenu *getCategoryPopupMenu (KOTodoViewItem *todoItem); |
131 | void setNavigator( DateNavigator* nav ) {mNavigator = nav;} | ||
131 | 132 | ||
132 | public slots: | 133 | public slots: |
133 | void updateView(); | 134 | void updateView(); |
134 | void updateConfig(); | 135 | void updateConfig(); |
135 | 136 | ||
136 | void changeEventDisplay(Event *, int); | 137 | void changeEventDisplay(Event *, int); |
137 | 138 | ||
138 | void showDates(const QDate &start, const QDate &end); | 139 | void showDates(const QDate &start, const QDate &end); |
139 | void showEvents(QPtrList<Event> eventList); | 140 | void showEvents(QPtrList<Event> eventList); |
140 | 141 | ||
141 | void clearSelection(); | 142 | void clearSelection(); |
142 | void jumpToDate (); | 143 | void jumpToDate (); |
143 | 144 | ||
144 | void editItem(QListViewItem *item); | 145 | void editItem(QListViewItem *item); |
145 | void showItem(QListViewItem *item,const QPoint &,int); | 146 | void showItem(QListViewItem *item,const QPoint &,int); |
146 | void popupMenu(QListViewItem *item,const QPoint &,int); | 147 | void popupMenu(QListViewItem *item,const QPoint &,int); |
@@ -149,32 +150,33 @@ class KOTodoView : public KOrg::BaseView | |||
149 | void unparentTodo(); | 150 | void unparentTodo(); |
150 | void reparentTodo(); | 151 | void reparentTodo(); |
151 | void showTodo(); | 152 | void showTodo(); |
152 | void editTodo(); | 153 | void editTodo(); |
153 | void cloneTodo(); | 154 | void cloneTodo(); |
154 | void cancelTodo(); | 155 | void cancelTodo(); |
155 | void moveTodo(); | 156 | void moveTodo(); |
156 | void beamTodo(); | 157 | void beamTodo(); |
157 | void deleteTodo(); | 158 | void deleteTodo(); |
158 | 159 | ||
159 | void setNewPriority(int); | 160 | void setNewPriority(int); |
160 | void setNewPercentage(int); | 161 | void setNewPercentage(int); |
161 | void changedCategories(int); | 162 | void changedCategories(int); |
162 | 163 | ||
163 | void purgeCompleted(); | 164 | void purgeCompleted(); |
164 | void toggleCompleted(); | 165 | void toggleCompleted(); |
166 | void toggleRunning(); | ||
165 | void toggleQuickTodo(); | 167 | void toggleQuickTodo(); |
166 | void updateTodo( Todo *, int ); | 168 | void updateTodo( Todo *, int ); |
167 | 169 | ||
168 | void itemClicked(QListViewItem *); | 170 | void itemClicked(QListViewItem *); |
169 | void itemStateChanged(QListViewItem *); | 171 | void itemStateChanged(QListViewItem *); |
170 | void modified(bool); | 172 | void modified(bool); |
171 | void itemDoubleClicked(QListViewItem *item); | 173 | void itemDoubleClicked(QListViewItem *item); |
172 | 174 | ||
173 | signals: | 175 | signals: |
174 | void newTodoSignal(); | 176 | void newTodoSignal(); |
175 | void newSubTodoSignal(Todo *); | 177 | void newSubTodoSignal(Todo *); |
176 | void unparentTodoSignal(Todo *); | 178 | void unparentTodoSignal(Todo *); |
177 | void reparentTodoSignal( Todo *,Todo * ); | 179 | void reparentTodoSignal( Todo *,Todo * ); |
178 | void showTodoSignal(Todo *); | 180 | void showTodoSignal(Todo *); |
179 | 181 | ||
180 | void editTodoSignal(Todo *); | 182 | void editTodoSignal(Todo *); |
@@ -194,41 +196,44 @@ class KOTodoView : public KOrg::BaseView | |||
194 | 196 | ||
195 | private: | 197 | private: |
196 | /* | 198 | /* |
197 | * the TodoEditor approach is rather unscaling in the long | 199 | * the TodoEditor approach is rather unscaling in the long |
198 | * run. | 200 | * run. |
199 | * Korganizer keeps it in memory and we need to update | 201 | * Korganizer keeps it in memory and we need to update |
200 | * 1. make KOTodoViewItem a QObject again? | 202 | * 1. make KOTodoViewItem a QObject again? |
201 | * 2. add a public method for setting one todo modified? | 203 | * 2. add a public method for setting one todo modified? |
202 | * 3. add a private method for setting a todo modified + friend here? | 204 | * 3. add a private method for setting a todo modified + friend here? |
203 | * -- zecke 2002-07-08 | 205 | * -- zecke 2002-07-08 |
204 | */ | 206 | */ |
205 | friend class KOTodoViewItem; | 207 | friend class KOTodoViewItem; |
206 | void setTodoModified( Todo* ); | 208 | void setTodoModified( Todo* ); |
207 | QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); | 209 | QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); |
208 | void restoreItemState( QListViewItem * ); | 210 | void restoreItemState( QListViewItem * ); |
209 | 211 | ||
212 | bool checkTodo( Todo * ); | ||
213 | |||
210 | KOTodoListView *mTodoListView; | 214 | KOTodoListView *mTodoListView; |
211 | QPopupMenu *mItemPopupMenu; | 215 | QPopupMenu *mItemPopupMenu; |
212 | QPopupMenu *mPopupMenu; | 216 | QPopupMenu *mPopupMenu; |
213 | QPopupMenu *mPriorityPopupMenu; | 217 | QPopupMenu *mPriorityPopupMenu; |
214 | QPopupMenu *mPercentageCompletedPopupMenu; | 218 | QPopupMenu *mPercentageCompletedPopupMenu; |
215 | QPopupMenu *mCategoryPopupMenu; | 219 | QPopupMenu *mCategoryPopupMenu; |
216 | 220 | ||
217 | QMap<int, int> mPercentage; | 221 | QMap<int, int> mPercentage; |
218 | QMap<int, int> mPriority; | 222 | QMap<int, int> mPriority; |
219 | QMap<int, QString> mCategory; | 223 | QMap<int, QString> mCategory; |
220 | KOTodoViewItem *mActiveItem; | 224 | KOTodoViewItem *mActiveItem; |
221 | 225 | ||
222 | QMap<Todo *,KOTodoViewItem *> mTodoMap; | 226 | QMap<Todo *,KOTodoViewItem *> mTodoMap; |
223 | QString mName; | 227 | QString mName; |
224 | 228 | ||
225 | DocPrefs *mDocPrefs; | 229 | DocPrefs *mDocPrefs; |
226 | QString mCurrentDoc; | 230 | QString mCurrentDoc; |
227 | KOQuickTodo *mQuickAdd; | 231 | KOQuickTodo *mQuickAdd; |
228 | bool mBlockUpdate; | 232 | bool mBlockUpdate; |
229 | void todoModified(Todo *, int ); | 233 | void todoModified(Todo *, int ); |
230 | void keyPressEvent ( QKeyEvent * ) ; | 234 | void keyPressEvent ( QKeyEvent * ) ; |
231 | KOTodoViewItem * pendingSubtodo; | 235 | KOTodoViewItem * pendingSubtodo; |
236 | DateNavigator* mNavigator; | ||
232 | }; | 237 | }; |
233 | 238 | ||
234 | #endif | 239 | #endif |
diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp index ae0b334..347d982 100644 --- a/korganizer/kotodoviewitem.cpp +++ b/korganizer/kotodoviewitem.cpp | |||
@@ -66,71 +66,96 @@ void KOTodoViewItem::setSortKey(int column,const QString &key) | |||
66 | 66 | ||
67 | #if QT_VERSION >= 300 | 67 | #if QT_VERSION >= 300 |
68 | void KOTodoViewItem::paintBranches(QPainter *p,const QColorGroup & cg,int w, | 68 | void KOTodoViewItem::paintBranches(QPainter *p,const QColorGroup & cg,int w, |
69 | int y,int h) | 69 | int y,int h) |
70 | { | 70 | { |
71 | QListViewItem::paintBranches(p,cg,w,y,h); | 71 | QListViewItem::paintBranches(p,cg,w,y,h); |
72 | } | 72 | } |
73 | #else | 73 | #else |
74 | #endif | 74 | #endif |
75 | 75 | ||
76 | void KOTodoViewItem::construct() | 76 | void KOTodoViewItem::construct() |
77 | { | 77 | { |
78 | // qDebug("KOTodoViewItem::construct() "); | 78 | // qDebug("KOTodoViewItem::construct() "); |
79 | m_init = true; | 79 | m_init = true; |
80 | QString keyd = "=="; | 80 | QString keyd = "=="; |
81 | QString keyt = "=="; | 81 | QString keyt = "=="; |
82 | QString skeyd = "=="; | ||
83 | QString skeyt = "=="; | ||
82 | 84 | ||
83 | setOn(mTodo->isCompleted()); | 85 | setOn(mTodo->isCompleted()); |
84 | setText(0,mTodo->summary()); | 86 | setText(0,mTodo->summary()); |
85 | setText(1,QString::number(mTodo->priority())); | 87 | setText(1,QString::number(mTodo->priority())); |
86 | setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); | 88 | setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); |
87 | if (mTodo->percentComplete()<100) { | 89 | if (mTodo->percentComplete()<100) { |
88 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); | 90 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); |
89 | else setSortKey(2,QString::number(mTodo->percentComplete())); | 91 | else setSortKey(2,QString::number(mTodo->percentComplete())); |
90 | } | 92 | } |
91 | else { | 93 | else { |
92 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); | 94 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); |
93 | else setSortKey(2,QString::number(99)); | 95 | else setSortKey(2,QString::number(99)); |
94 | } | 96 | } |
95 | if (mTodo->hasDueDate()) { | 97 | if (mTodo->hasDueDate()) { |
96 | setText(3, mTodo->dtDueDateStr()); | 98 | setText(3, mTodo->dtDueDateStr()); |
97 | QDate d = mTodo->dtDue().date(); | 99 | QDate d = mTodo->dtDue().date(); |
98 | keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 100 | keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
99 | setSortKey(3,keyd); | 101 | // setSortKey(3,keyd); |
100 | if (mTodo->doesFloat()) { | 102 | if (mTodo->doesFloat()) { |
101 | setText(4,""); | 103 | setText(4,""); |
102 | } | 104 | } |
103 | else { | 105 | else { |
104 | setText(4,mTodo->dtDueTimeStr()); | 106 | setText(4,mTodo->dtDueTimeStr()); |
105 | QTime t = mTodo->dtDue().time(); | 107 | QTime t = mTodo->dtDue().time(); |
106 | keyt.sprintf("%02d%02d",t.hour(),t.minute()); | 108 | keyt.sprintf("%02d%02d",t.hour(),t.minute()); |
107 | setSortKey(4,keyt); | 109 | //setSortKey(4,keyt); |
108 | } | 110 | } |
109 | } else { | 111 | } else { |
110 | setText(3,""); | 112 | setText(3,""); |
111 | setText(4,""); | 113 | setText(4,""); |
112 | } | 114 | } |
113 | setSortKey(3,keyd); | 115 | setSortKey(3,keyd); |
114 | setSortKey(4,keyt); | 116 | setSortKey(4,keyt); |
115 | 117 | ||
116 | if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt); | 118 | if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt); |
117 | else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); | 119 | else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); |
118 | 120 | ||
119 | setText(5,mTodo->cancelled() ? i18n("Yes") : i18n("No")); | 121 | |
120 | setText(6,mTodo->categoriesStr()); | 122 | |
123 | if (mTodo->hasStartDate()) { | ||
124 | setText(5, mTodo->dtStartDateStr()); | ||
125 | QDate d = mTodo->dtStart().date(); | ||
126 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | ||
127 | |||
128 | if (mTodo->doesFloat()) { | ||
129 | setText(6,""); | ||
130 | } | ||
131 | else { | ||
132 | setText(6,mTodo->dtStartTimeStr()); | ||
133 | QTime t = mTodo->dtStart().time(); | ||
134 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); | ||
135 | |||
136 | } | ||
137 | } else { | ||
138 | setText(5,""); | ||
139 | setText(6,""); | ||
140 | } | ||
141 | setSortKey(5,skeyd); | ||
142 | setSortKey(6,skeyt); | ||
143 | |||
144 | setText(7,mTodo->cancelled() ? i18n("Yes") : i18n("No")); | ||
145 | setText(8,mTodo->categoriesStr()); | ||
121 | 146 | ||
122 | #if 0 | 147 | #if 0 |
123 | // Find sort id in description. It's the text behind the last '#' character | 148 | // Find sort id in description. It's the text behind the last '#' character |
124 | // found in the description. White spaces are removed from beginning and end | 149 | // found in the description. White spaces are removed from beginning and end |
125 | // of sort id. | 150 | // of sort id. |
126 | int pos = mTodo->description().findRev('#'); | 151 | int pos = mTodo->description().findRev('#'); |
127 | if (pos < 0) { | 152 | if (pos < 0) { |
128 | setText(6,""); | 153 | setText(6,""); |
129 | } else { | 154 | } else { |
130 | QString str = mTodo->description().mid(pos+1); | 155 | QString str = mTodo->description().mid(pos+1); |
131 | str.stripWhiteSpace(); | 156 | str.stripWhiteSpace(); |
132 | setText(6,str); | 157 | setText(6,str); |
133 | } | 158 | } |
134 | #endif | 159 | #endif |
135 | 160 | ||
136 | m_known = false; | 161 | m_known = false; |
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index 6e151f9..b2dd266 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp | |||
@@ -496,32 +496,33 @@ void KOViewManager::showTodoView() | |||
496 | connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ), | 496 | connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ), |
497 | mMainView, SIGNAL ( todoModified( Todo *, int ) ) ); | 497 | mMainView, SIGNAL ( todoModified( Todo *, int ) ) ); |
498 | connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ), | 498 | connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ), |
499 | mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); | 499 | mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); |
500 | connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ), | 500 | connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ), |
501 | mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); | 501 | mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); |
502 | connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ), | 502 | connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ), |
503 | mMainView, SLOT ( todo_unsub( Todo * ) ) ); | 503 | mMainView, SLOT ( todo_unsub( Todo * ) ) ); |
504 | connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), | 504 | connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), |
505 | mMainView, SLOT ( todo_resub( Todo *, Todo *) ) ); | 505 | mMainView, SLOT ( todo_resub( Todo *, Todo *) ) ); |
506 | connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ), | 506 | connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ), |
507 | mMainView, SLOT ( moveIncidence( Incidence * ) ) ); | 507 | mMainView, SLOT ( moveIncidence( Incidence * ) ) ); |
508 | connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ), | 508 | connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ), |
509 | mMainView, SLOT ( beamIncidence( Incidence * ) ) ); | 509 | mMainView, SLOT ( beamIncidence( Incidence * ) ) ); |
510 | KConfig *config = KOGlobals::config(); | 510 | KConfig *config = KOGlobals::config(); |
511 | mTodoView->restoreLayout(config,"Todo View"); | 511 | mTodoView->restoreLayout(config,"Todo View"); |
512 | mTodoView->setNavigator( mMainView->dateNavigator() ); | ||
512 | } | 513 | } |
513 | 514 | ||
514 | globalFlagBlockAgenda = 1; | 515 | globalFlagBlockAgenda = 1; |
515 | showView( mTodoView, true ); | 516 | showView( mTodoView, true ); |
516 | 517 | ||
517 | } | 518 | } |
518 | 519 | ||
519 | void KOViewManager::showJournalView() | 520 | void KOViewManager::showJournalView() |
520 | { | 521 | { |
521 | //mFlagShowNextxDays = false; | 522 | //mFlagShowNextxDays = false; |
522 | if (!mJournalView) { | 523 | if (!mJournalView) { |
523 | mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(), | 524 | mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(), |
524 | "KOViewManager::JournalView"); | 525 | "KOViewManager::JournalView"); |
525 | connect( mMainView, SIGNAL( configChanged() ), mJournalView, | 526 | connect( mMainView, SIGNAL( configChanged() ), mJournalView, |
526 | SLOT( updateConfig() ) ); | 527 | SLOT( updateConfig() ) ); |
527 | connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) ); | 528 | connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) ); |