-rw-r--r-- | korganizer/calendarview.cpp | 72 | ||||
-rw-r--r-- | korganizer/calendarview.h | 6 | ||||
-rw-r--r-- | korganizer/datenavigatorcontainer.cpp | 218 | ||||
-rw-r--r-- | korganizer/datenavigatorcontainer.h | 90 | ||||
-rw-r--r-- | korganizer/kdatenavigator.cpp | 38 | ||||
-rw-r--r-- | korganizer/kdatenavigator.h | 8 | ||||
-rw-r--r-- | korganizer/kodaymatrix.cpp | 49 | ||||
-rw-r--r-- | korganizer/kodaymatrix.h | 8 | ||||
-rw-r--r-- | korganizer/korganizerE.pro | 4 | ||||
-rw-r--r-- | korganizer/navigatorbar.cpp | 22 | ||||
-rw-r--r-- | korganizer/navigatorbar.h | 1 |
11 files changed, 464 insertions, 52 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 6eaac1c..00285a5 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -98,24 +98,25 @@ | |||
98 | #include "koeventeditor.h" | 98 | #include "koeventeditor.h" |
99 | #include "kotodoeditor.h" | 99 | #include "kotodoeditor.h" |
100 | #include "koprefs.h" | 100 | #include "koprefs.h" |
101 | #include "koeventviewerdialog.h" | 101 | #include "koeventviewerdialog.h" |
102 | #include "publishdialog.h" | 102 | #include "publishdialog.h" |
103 | #include "kofilterview.h" | 103 | #include "kofilterview.h" |
104 | #include "koglobals.h" | 104 | #include "koglobals.h" |
105 | #include "koviewmanager.h" | 105 | #include "koviewmanager.h" |
106 | #include "koagendaview.h" | 106 | #include "koagendaview.h" |
107 | #include "kodialogmanager.h" | 107 | #include "kodialogmanager.h" |
108 | #include "outgoingdialog.h" | 108 | #include "outgoingdialog.h" |
109 | #include "incomingdialog.h" | 109 | #include "incomingdialog.h" |
110 | #include "datenavigatorcontainer.h" | ||
110 | #include "statusdialog.h" | 111 | #include "statusdialog.h" |
111 | #include "kdatenavigator.h" | 112 | #include "kdatenavigator.h" |
112 | #include "kotodoview.h" | 113 | #include "kotodoview.h" |
113 | #include "datenavigator.h" | 114 | #include "datenavigator.h" |
114 | #include "resourceview.h" | 115 | #include "resourceview.h" |
115 | #include "navigatorbar.h" | 116 | #include "navigatorbar.h" |
116 | #include "searchdialog.h" | 117 | #include "searchdialog.h" |
117 | #include "mainwindow.h" | 118 | #include "mainwindow.h" |
118 | 119 | ||
119 | #include "calendarview.h" | 120 | #include "calendarview.h" |
120 | #ifndef DESKTOP_VERSION | 121 | #ifndef DESKTOP_VERSION |
121 | #include <qtopia/alarmserver.h> | 122 | #include <qtopia/alarmserver.h> |
@@ -258,26 +259,27 @@ void CalendarView::init() | |||
258 | mNavigator = new DateNavigator( this, "datevav", mViewManager ); | 259 | mNavigator = new DateNavigator( this, "datevav", mViewManager ); |
259 | 260 | ||
260 | QBoxLayout *topLayout = (QBoxLayout*)layout(); | 261 | QBoxLayout *topLayout = (QBoxLayout*)layout(); |
261 | #ifndef KORG_NOSPLITTER | 262 | #ifndef KORG_NOSPLITTER |
262 | // create the main layout frames. | 263 | // create the main layout frames. |
263 | mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner"); | 264 | mPanner = new QSplitter(QSplitter::Horizontal,this,"CalendarView::Panner"); |
264 | topLayout->addWidget(mPanner); | 265 | topLayout->addWidget(mPanner); |
265 | 266 | ||
266 | mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner, | 267 | mLeftSplitter = new QSplitter(QSplitter::Vertical,mPanner, |
267 | "CalendarView::LeftFrame"); | 268 | "CalendarView::LeftFrame"); |
268 | mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize); | 269 | mPanner->setResizeMode(mLeftSplitter,QSplitter::KeepSize); |
269 | 270 | ||
270 | mDateNavigator = new KDateNavigator(mLeftSplitter, mCalendar, TRUE, | 271 | mDateNavigator = new DateNavigatorContainer( mLeftSplitter, |
271 | "CalendarView::DateNavigator", QDate::currentDate() ); | 272 | "CalendarView::DateNavigator" ); |
273 | |||
272 | mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize); | 274 | mLeftSplitter->setResizeMode(mDateNavigator,QSplitter::KeepSize); |
273 | mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2"); | 275 | mTodoList = new KOTodoView(mCalendar, mLeftSplitter, "todolist_small2"); |
274 | mTodoList->setNavigator( mNavigator ); | 276 | mTodoList->setNavigator( mNavigator ); |
275 | mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView"); | 277 | mFilterView = new KOFilterView(&mFilters,mLeftSplitter,"CalendarView::FilterView"); |
276 | 278 | ||
277 | #ifdef KORG_NORESOURCEVIEW | 279 | #ifdef KORG_NORESOURCEVIEW |
278 | mResourceView = 0; | 280 | mResourceView = 0; |
279 | #else | 281 | #else |
280 | if ( mResourceManager ) { | 282 | if ( mResourceManager ) { |
281 | mResourceView = new ResourceView( mResourceManager, mLeftSplitter ); | 283 | mResourceView = new ResourceView( mResourceManager, mLeftSplitter ); |
282 | mResourceView->updateView(); | 284 | mResourceView->updateView(); |
283 | connect( mResourceView, SIGNAL( resourcesChanged() ), | 285 | connect( mResourceView, SIGNAL( resourcesChanged() ), |
@@ -286,70 +288,82 @@ void CalendarView::init() | |||
286 | mResourceView = 0; | 288 | mResourceView = 0; |
287 | } | 289 | } |
288 | #endif | 290 | #endif |
289 | QWidget *rightBox = new QWidget( mPanner ); | 291 | QWidget *rightBox = new QWidget( mPanner ); |
290 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); | 292 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); |
291 | 293 | ||
292 | mRightFrame = new QWidgetStack( rightBox ); | 294 | mRightFrame = new QWidgetStack( rightBox ); |
293 | rightLayout->addWidget( mRightFrame, 1 ); | 295 | rightLayout->addWidget( mRightFrame, 1 ); |
294 | 296 | ||
295 | mLeftFrame = mLeftSplitter; | 297 | mLeftFrame = mLeftSplitter; |
296 | #else | 298 | #else |
297 | QWidget *mainBox = new QWidget( this ); | 299 | QWidget *mainBox = new QWidget( this ); |
298 | QWidget *leftFrame = new QWidget( mainBox ); | 300 | //QWidget *leftFrame = new QWidget( mainBox ); |
299 | |||
300 | QBoxLayout * mainBoxLayout; | 301 | QBoxLayout * mainBoxLayout; |
301 | QBoxLayout * leftFrameLayout; | ||
302 | if ( KOPrefs::instance()->mVerticalScreen ) { | 302 | if ( KOPrefs::instance()->mVerticalScreen ) { |
303 | mainBoxLayout = new QVBoxLayout(mainBox); | 303 | mainBoxLayout = new QVBoxLayout(mainBox); |
304 | leftFrameLayout = new QHBoxLayout(leftFrame ); | 304 | //leftFrameLayout = new QHBoxLayout(leftFrame ); |
305 | mLeftFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, mainBox);; | ||
306 | mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left ); | ||
305 | } else { | 307 | } else { |
306 | mainBoxLayout = new QHBoxLayout(mainBox); | 308 | mainBoxLayout = new QHBoxLayout(mainBox); |
307 | leftFrameLayout = new QVBoxLayout(leftFrame ); | 309 | //leftFrameLayout = new QVBoxLayout(leftFrame ); |
310 | mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mainBox);; | ||
311 | mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); | ||
308 | } | 312 | } |
313 | //QBoxLayout * leftFrameLayout; | ||
309 | topLayout->addWidget( mainBox ); | 314 | topLayout->addWidget( mainBox ); |
310 | mainBoxLayout->addWidget (leftFrame); | 315 | mainBoxLayout->addWidget (mLeftFrame); |
311 | mDateNavigator = new KDateNavigator(leftFrame, mCalendar, TRUE, | 316 | mDateNavigator = new DateNavigatorContainer( mLeftFrame, |
317 | "CalendarView::DateNavigator" ); | ||
318 | #if 0 | ||
319 | // FIXME | ||
320 | mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE, | ||
312 | "CalendarView::DateNavigator", QDate::currentDate()); | 321 | "CalendarView::DateNavigator", QDate::currentDate()); |
322 | #endif | ||
313 | // mDateNavigator->blockSignals( true ); | 323 | // mDateNavigator->blockSignals( true ); |
314 | leftFrameLayout->addWidget( mDateNavigator ); | 324 | //leftFrameLayout->addWidget( mDateNavigator ); |
315 | mFilterView = new KOFilterView(&mFilters,leftFrame,"CalendarView::FilterView"); | 325 | mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall"); |
316 | mTodoList = new KOTodoView(mCalendar, leftFrame, "todolistsmall"); | 326 | mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView"); |
317 | mTodoList->setNavigator( mNavigator ); | 327 | mTodoList->setNavigator( mNavigator ); |
318 | 328 | #if 0 | |
319 | if ( QApplication::desktop()->width() < 480 ) { | 329 | if ( QApplication::desktop()->width() < 480 ) { |
320 | leftFrameLayout->addWidget(mFilterView); | 330 | leftFrameLayout->addWidget(mFilterView); |
321 | leftFrameLayout->addWidget(mTodoList, 2 ); | 331 | leftFrameLayout->addWidget(mTodoList, 2 ); |
322 | 332 | ||
323 | } else { | 333 | } else { |
324 | leftFrameLayout->addWidget(mTodoList,2 ); | 334 | leftFrameLayout->addWidget(mTodoList,2 ); |
325 | leftFrameLayout->addWidget(mFilterView ); | 335 | leftFrameLayout->addWidget(mFilterView ); |
326 | } | 336 | } |
337 | #endif | ||
327 | mFilterView->hide(); | 338 | mFilterView->hide(); |
328 | QWidget *rightBox = new QWidget( mainBox ); | 339 | QWidget *rightBox = new QWidget( mainBox ); |
329 | mainBoxLayout->addWidget ( rightBox, 10 ); | 340 | mainBoxLayout->addWidget ( rightBox, 10 ); |
330 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); | 341 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); |
331 | mRightFrame = new QWidgetStack( rightBox ); | 342 | mRightFrame = new QWidgetStack( rightBox ); |
332 | rightLayout->addWidget( mRightFrame, 10 ); | 343 | rightLayout->addWidget( mRightFrame, 10 ); |
333 | 344 | ||
334 | mLeftFrame = leftFrame; | 345 | //mLeftFrame = (QWidget *)leftFrame; |
335 | if ( KOPrefs::instance()->mVerticalScreen ) { | 346 | if ( KOPrefs::instance()->mVerticalScreen ) { |
336 | mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); | 347 | mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() ); |
337 | leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() ); | 348 | //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() ); |
349 | //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); | ||
350 | //leftFrame->setFixedHeight( mDateNavigator->sizeHint().height() ); | ||
338 | } else { | 351 | } else { |
339 | mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() ); | 352 | mDateNavigator->setFixedWidth( mDateNavigator->sizeHint().width() ); |
340 | leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() ); | 353 | //mTodoList->setFixedWidth( mDateNavigator->sizeHint().width() ); |
354 | //leftFrame->setFixedWidth( mDateNavigator->sizeHint().width() ); | ||
341 | } | 355 | } |
342 | if ( !KOPrefs::instance()->mShowDateNavigator) | 356 | if ( !KOPrefs::instance()->mShowDateNavigator) |
343 | mDateNavigator->hide(); | 357 | mLeftFrame->toggle(); |
344 | //qDebug("Calendarview Size %d %d ", width(), height()); | 358 | //qDebug("Calendarview Size %d %d ", width(), height()); |
345 | #endif | 359 | #endif |
346 | 360 | ||
347 | connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), | 361 | connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), |
348 | SLOT( showDates( const KCal::DateList & ) ) ); | 362 | SLOT( showDates( const KCal::DateList & ) ) ); |
349 | 363 | ||
350 | connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), | 364 | connect( mNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), |
351 | mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); | 365 | mDateNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); |
352 | 366 | ||
353 | 367 | ||
354 | connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ), | 368 | connect( mDateNavigator, SIGNAL( weekClicked( const QDate & ) ), |
355 | mNavigator, SLOT( selectWeek( const QDate & ) ) ); | 369 | mNavigator, SLOT( selectWeek( const QDate & ) ) ); |
@@ -363,29 +377,29 @@ void CalendarView::init() | |||
363 | connect( mDateNavigator, SIGNAL( goNextMonth() ), | 377 | connect( mDateNavigator, SIGNAL( goNextMonth() ), |
364 | mNavigator, SLOT( selectNextMonth() ) ); | 378 | mNavigator, SLOT( selectNextMonth() ) ); |
365 | 379 | ||
366 | connect( mDateNavigator, SIGNAL( goPrevious() ), | 380 | connect( mDateNavigator, SIGNAL( goPrevious() ), |
367 | mNavigator, SLOT( selectPrevious() ) ); | 381 | mNavigator, SLOT( selectPrevious() ) ); |
368 | connect( mDateNavigator, SIGNAL( goNext() ), | 382 | connect( mDateNavigator, SIGNAL( goNext() ), |
369 | mNavigator, SLOT( selectNext() ) ); | 383 | mNavigator, SLOT( selectNext() ) ); |
370 | connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), | 384 | connect( mDateNavigator, SIGNAL( monthSelected ( int ) ), |
371 | mNavigator, SLOT( slotMonthSelect( int ) ) ); | 385 | mNavigator, SLOT( slotMonthSelect( int ) ) ); |
372 | 386 | ||
373 | connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), | 387 | connect( mDateNavigator, SIGNAL( datesSelected( const KCal::DateList & ) ), |
374 | mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); | 388 | mNavigator, SLOT( selectDates( const KCal::DateList & ) ) ); |
375 | 389 | #if 0 | |
376 | connect( mDateNavigator, SIGNAL( eventDropped( Event * ) ), | 390 | connect( mDateNavigator, SIGNAL( incidenceDropped( Incidence * ) ), |
377 | SLOT( eventAdded( Event *) ) ); | 391 | SLOT( incidenceAdded( Incidence *) ) ); |
378 | 392 | #endif | |
379 | connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); | 393 | // connect(mDateNavigator,SIGNAL(dayPassed(QDate)),SLOT(updateView())); |
380 | 394 | ||
381 | connect( this, SIGNAL( configChanged() ), | 395 | connect( this, SIGNAL( configChanged() ), |
382 | mDateNavigator, SLOT( updateConfig() ) ); | 396 | mDateNavigator, SLOT( updateConfig() ) ); |
383 | 397 | ||
384 | connect( mTodoList, SIGNAL( newTodoSignal() ), | 398 | connect( mTodoList, SIGNAL( newTodoSignal() ), |
385 | SLOT( newTodo() ) ); | 399 | SLOT( newTodo() ) ); |
386 | connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), | 400 | connect( mTodoList, SIGNAL( newSubTodoSignal( Todo *) ), |
387 | SLOT( newSubTodo( Todo * ) ) ); | 401 | SLOT( newSubTodo( Todo * ) ) ); |
388 | connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), | 402 | connect( mTodoList, SIGNAL( editTodoSignal( Todo * ) ), |
389 | SLOT( editTodo( Todo * ) ) ); | 403 | SLOT( editTodo( Todo * ) ) ); |
390 | connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), | 404 | connect( mTodoList, SIGNAL( showTodoSignal( Todo * ) ), |
391 | SLOT( showTodo( Todo *) ) ); | 405 | SLOT( showTodo( Todo *) ) ); |
@@ -458,25 +472,25 @@ void CalendarView::init() | |||
458 | connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); | 472 | connect( mAlarmTimer, SIGNAL( timeout () ), SLOT( timerAlarm() ) ); |
459 | mAlarmDialog = new AlarmDialog( this ); | 473 | mAlarmDialog = new AlarmDialog( this ); |
460 | connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); | 474 | connect( mAlarmDialog, SIGNAL( addAlarm(const QDateTime &, const QString & ) ), SLOT( addSuspendAlarm(const QDateTime &, const QString & ) ) ); |
461 | mAlarmDialog->setServerNotification( false ); | 475 | mAlarmDialog->setServerNotification( false ); |
462 | mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); | 476 | mAlarmDialog->setSuspendTime( KOPrefs::instance()->mAlarmSuspendTime ); |
463 | 477 | ||
464 | 478 | ||
465 | #ifndef DESKTOP_VERSION | 479 | #ifndef DESKTOP_VERSION |
466 | //US listen for arriving address resultsets | 480 | //US listen for arriving address resultsets |
467 | connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), | 481 | connect(ExternalAppHandler::instance(), SIGNAL(receivedBirthdayListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&)), |
468 | this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&))); | 482 | this, SLOT(insertBirthdays(const QString&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&, const QStringList&))); |
469 | #endif | 483 | #endif |
470 | 484 | mDateNavigator->setCalendar( mCalendar ); | |
471 | } | 485 | } |
472 | 486 | ||
473 | 487 | ||
474 | CalendarView::~CalendarView() | 488 | CalendarView::~CalendarView() |
475 | { | 489 | { |
476 | // kdDebug() << "~CalendarView()" << endl; | 490 | // kdDebug() << "~CalendarView()" << endl; |
477 | //qDebug("CalendarView::~CalendarView() "); | 491 | //qDebug("CalendarView::~CalendarView() "); |
478 | delete mDialogManager; | 492 | delete mDialogManager; |
479 | delete mViewManager; | 493 | delete mViewManager; |
480 | delete mStorage; | 494 | delete mStorage; |
481 | delete mDateFrame ; | 495 | delete mDateFrame ; |
482 | delete beamDialog; | 496 | delete beamDialog; |
@@ -3676,43 +3690,47 @@ void CalendarView::takeOverCalendar() | |||
3676 | void CalendarView::showIntro() | 3690 | void CalendarView::showIntro() |
3677 | { | 3691 | { |
3678 | kdDebug() << "To be implemented." << endl; | 3692 | kdDebug() << "To be implemented." << endl; |
3679 | } | 3693 | } |
3680 | 3694 | ||
3681 | QWidgetStack *CalendarView::viewStack() | 3695 | QWidgetStack *CalendarView::viewStack() |
3682 | { | 3696 | { |
3683 | return mRightFrame; | 3697 | return mRightFrame; |
3684 | } | 3698 | } |
3685 | 3699 | ||
3686 | QWidget *CalendarView::leftFrame() | 3700 | QWidget *CalendarView::leftFrame() |
3687 | { | 3701 | { |
3688 | return mLeftFrame; | 3702 | return ( QWidget *)mLeftFrame; |
3689 | } | 3703 | } |
3690 | 3704 | ||
3691 | DateNavigator *CalendarView::dateNavigator() | 3705 | DateNavigator *CalendarView::dateNavigator() |
3692 | { | 3706 | { |
3693 | return mNavigator; | 3707 | return mNavigator; |
3694 | } | 3708 | } |
3695 | 3709 | ||
3696 | KDateNavigator* CalendarView::dateNavigatorWidget() | 3710 | KDateNavigator* CalendarView::dateNavigatorWidget() |
3697 | { | 3711 | { |
3698 | return mDateNavigator; | 3712 | return mDateNavigator->navigatorView(); |
3699 | } | 3713 | } |
3700 | void CalendarView::toggleDateNavigatorWidget() | 3714 | void CalendarView::toggleDateNavigatorWidget() |
3701 | { | 3715 | { |
3702 | KOPrefs::instance()->mShowDateNavigator = !KOPrefs::instance()->mShowDateNavigator ; | 3716 | KOPrefs::instance()->mShowDateNavigator = !KOPrefs::instance()->mShowDateNavigator ; |
3717 | mLeftFrame->toggle(); | ||
3718 | // FIXME mShowDateNavigator is not the toggle state of mLeftFrame | ||
3719 | #if 0 | ||
3703 | if (!KOPrefs::instance()->mShowDateNavigator ) | 3720 | if (!KOPrefs::instance()->mShowDateNavigator ) |
3704 | mDateNavigator->hide(); | 3721 | mDateNavigator->hide(); |
3705 | else | 3722 | else |
3706 | mDateNavigator->show(); | 3723 | mDateNavigator->show(); |
3724 | #endif | ||
3707 | } | 3725 | } |
3708 | void CalendarView::addView(KOrg::BaseView *view) | 3726 | void CalendarView::addView(KOrg::BaseView *view) |
3709 | { | 3727 | { |
3710 | mViewManager->addView(view); | 3728 | mViewManager->addView(view); |
3711 | } | 3729 | } |
3712 | 3730 | ||
3713 | void CalendarView::showView(KOrg::BaseView *view) | 3731 | void CalendarView::showView(KOrg::BaseView *view) |
3714 | { | 3732 | { |
3715 | mViewManager->showView(view, mLeftFrame->isVisible()); | 3733 | mViewManager->showView(view, mLeftFrame->isVisible()); |
3716 | } | 3734 | } |
3717 | 3735 | ||
3718 | Incidence *CalendarView::currentSelection() | 3736 | Incidence *CalendarView::currentSelection() |
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 664d700..fac9a9e 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -30,38 +30,40 @@ | |||
30 | #include <qptrlist.h> | 30 | #include <qptrlist.h> |
31 | #include <qvbox.h> | 31 | #include <qvbox.h> |
32 | #include <qmap.h> | 32 | #include <qmap.h> |
33 | #ifndef DESKTOP_VERSION | 33 | #ifndef DESKTOP_VERSION |
34 | #include <qtopia/ir.h> | 34 | #include <qtopia/ir.h> |
35 | #else | 35 | #else |
36 | #define Ir char | 36 | #define Ir char |
37 | #endif | 37 | #endif |
38 | #include <libkcal/calendar.h> | 38 | #include <libkcal/calendar.h> |
39 | #include <libkcal/scheduler.h> | 39 | #include <libkcal/scheduler.h> |
40 | #include <libkcal/calendarresources.h> | 40 | #include <libkcal/calendarresources.h> |
41 | #include <libkcal/resourcecalendar.h> | 41 | #include <libkcal/resourcecalendar.h> |
42 | #include <KDGanttMinimizeSplitter.h> | ||
42 | 43 | ||
43 | #include <korganizer/calendarviewbase.h> | 44 | #include <korganizer/calendarviewbase.h> |
44 | 45 | ||
45 | #include <ksyncmanager.h> | 46 | #include <ksyncmanager.h> |
46 | 47 | ||
47 | class QWidgetStack; | 48 | class QWidgetStack; |
48 | class QSplitter; | 49 | class QSplitter; |
49 | 50 | ||
50 | class CalPrinter; | 51 | class CalPrinter; |
51 | class KOFilterView; | 52 | class KOFilterView; |
52 | class KOViewManager; | 53 | class KOViewManager; |
53 | class KODialogManager; | 54 | class KODialogManager; |
54 | class KOTodoView; | 55 | class KOTodoView; |
55 | class KDateNavigator; | 56 | class KDateNavigator; |
57 | class DateNavigatorContainer; | ||
56 | class DateNavigator; | 58 | class DateNavigator; |
57 | class KOIncidenceEditor; | 59 | class KOIncidenceEditor; |
58 | class KDatePicker; | 60 | class KDatePicker; |
59 | class ResourceView; | 61 | class ResourceView; |
60 | class KOEventEditor; | 62 | class KOEventEditor; |
61 | class KOTodoEditor ; | 63 | class KOTodoEditor ; |
62 | class KOEventViewerDialog; | 64 | class KOEventViewerDialog; |
63 | class KOBeamPrefs; | 65 | class KOBeamPrefs; |
64 | class KSyncProfile; | 66 | class KSyncProfile; |
65 | class AlarmDialog; | 67 | class AlarmDialog; |
66 | class KCal::Attendee; | 68 | class KCal::Attendee; |
67 | 69 | ||
@@ -520,31 +522,31 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
520 | void init(); | 522 | void init(); |
521 | int mDatePickerMode; | 523 | int mDatePickerMode; |
522 | bool mFlagEditDescription; | 524 | bool mFlagEditDescription; |
523 | QDateTime mLastCalendarSync; | 525 | QDateTime mLastCalendarSync; |
524 | void createPrinter(); | 526 | void createPrinter(); |
525 | 527 | ||
526 | void calendarModified( bool, Calendar * ); | 528 | void calendarModified( bool, Calendar * ); |
527 | 529 | ||
528 | CalPrinter *mCalPrinter; | 530 | CalPrinter *mCalPrinter; |
529 | 531 | ||
530 | QSplitter *mPanner; | 532 | QSplitter *mPanner; |
531 | QSplitter *mLeftSplitter; | 533 | QSplitter *mLeftSplitter; |
532 | QWidget *mLeftFrame; | 534 | KDGanttMinimizeSplitter *mLeftFrame; |
533 | QWidgetStack *mRightFrame; | 535 | QWidgetStack *mRightFrame; |
534 | 536 | ||
535 | KDatePicker* mDatePicker; | 537 | KDatePicker* mDatePicker; |
536 | QVBox* mDateFrame; | 538 | QVBox* mDateFrame; |
537 | 539 | ||
538 | KDateNavigator *mDateNavigator; // widget showing small month view. | 540 | DateNavigatorContainer *mDateNavigator; // widget showing small month view. |
539 | 541 | ||
540 | KOFilterView *mFilterView; | 542 | KOFilterView *mFilterView; |
541 | 543 | ||
542 | ResourceView *mResourceView; | 544 | ResourceView *mResourceView; |
543 | 545 | ||
544 | // calendar object for this viewing instance | 546 | // calendar object for this viewing instance |
545 | Calendar *mCalendar; | 547 | Calendar *mCalendar; |
546 | 548 | ||
547 | CalendarResourceManager *mResourceManager; | 549 | CalendarResourceManager *mResourceManager; |
548 | 550 | ||
549 | FileStorage *mStorage; | 551 | FileStorage *mStorage; |
550 | 552 | ||
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp new file mode 100644 index 0000000..cbfc5b2 --- a/dev/null +++ b/korganizer/datenavigatorcontainer.cpp | |||
@@ -0,0 +1,218 @@ | |||
1 | /* | ||
2 | This file is part of KOrganizer. | ||
3 | |||
4 | Copyright (c) 2001,2002,2003 Cornelius Schumacher <schumacher@kde.org> | ||
5 | Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> | ||
6 | |||
7 | This program is free software; you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation; either version 2 of the License, or | ||
10 | (at your option) any later version. | ||
11 | |||
12 | This program is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with this program; if not, write to the Free Software | ||
19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
20 | |||
21 | As a special exception, permission is given to link this program | ||
22 | with any edition of Qt, and distribute the resulting executable, | ||
23 | without including the source code for Qt in the source distribution. | ||
24 | */ | ||
25 | |||
26 | #include <kdebug.h> | ||
27 | #include <klocale.h> | ||
28 | |||
29 | //#include "koglobals.h" | ||
30 | #include "navigatorbar.h" | ||
31 | #include "kdatenavigator.h" | ||
32 | |||
33 | #include <kcalendarsystem.h> | ||
34 | |||
35 | #include "datenavigatorcontainer.h" | ||
36 | |||
37 | DateNavigatorContainer::DateNavigatorContainer( QWidget *parent, | ||
38 | const char *name ) | ||
39 | : QWidget( parent, name ), mCalendar( 0 ), | ||
40 | mHorizontalCount( 1 ), mVerticalCount( 1 ) | ||
41 | { | ||
42 | mExtraViews.setAutoDelete( true ); | ||
43 | |||
44 | mNavigatorView = new KDateNavigator( this, name ); | ||
45 | |||
46 | connectNavigatorView( mNavigatorView ); | ||
47 | } | ||
48 | |||
49 | DateNavigatorContainer::~DateNavigatorContainer() | ||
50 | { | ||
51 | } | ||
52 | |||
53 | void DateNavigatorContainer::connectNavigatorView( KDateNavigator *v ) | ||
54 | { | ||
55 | connect( v, SIGNAL( datesSelected( const KCal::DateList & ) ), | ||
56 | SIGNAL( datesSelected( const KCal::DateList & ) ) ); | ||
57 | #if 0 | ||
58 | connect( v, SIGNAL( incidenceDropped( Incidence *, const QDate & ) ), | ||
59 | SIGNAL( incidenceDropped( Incidence *, const QDate & ) ) ); | ||
60 | connect( v, SIGNAL( incidenceDroppedMove( Incidence *, const QDate & ) ), | ||
61 | SIGNAL( incidenceDroppedMove( Incidence *, const QDate & ) ) ); | ||
62 | #endif | ||
63 | connect( v, SIGNAL( weekClicked( const QDate & ) ), | ||
64 | SIGNAL( weekClicked( const QDate & ) ) ); | ||
65 | |||
66 | connect( v, SIGNAL( goPrevious() ), SIGNAL( goPrevious() ) ); | ||
67 | connect( v, SIGNAL( goNext() ), SIGNAL( goNext() ) ); | ||
68 | |||
69 | connect( v, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) ); | ||
70 | connect( v, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) ); | ||
71 | connect( v, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) ); | ||
72 | connect( v, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) ); | ||
73 | |||
74 | connect( v, SIGNAL( monthSelected( int ) ), SIGNAL( monthSelected( int ) ) ); | ||
75 | } | ||
76 | |||
77 | void DateNavigatorContainer::setCalendar( Calendar *cal ) | ||
78 | { | ||
79 | mCalendar = cal; | ||
80 | mNavigatorView->setCalendar( cal ); | ||
81 | KDateNavigator *n; | ||
82 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | ||
83 | n->setCalendar( cal ); | ||
84 | } | ||
85 | } | ||
86 | |||
87 | void DateNavigatorContainer::updateDayMatrix() | ||
88 | { | ||
89 | mNavigatorView->updateDayMatrix(); | ||
90 | KDateNavigator *n; | ||
91 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | ||
92 | n->updateDayMatrix(); | ||
93 | } | ||
94 | } | ||
95 | |||
96 | void DateNavigatorContainer::updateToday() | ||
97 | { | ||
98 | qDebug("DateNavigatorContainer::updateToday() NOT IMPL "); | ||
99 | #if 0 | ||
100 | mNavigatorView->updateToday(); | ||
101 | KDateNavigator *n; | ||
102 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | ||
103 | n->updateToday(); | ||
104 | } | ||
105 | #endif | ||
106 | } | ||
107 | |||
108 | void DateNavigatorContainer::updateView() | ||
109 | { | ||
110 | mNavigatorView->updateView(); | ||
111 | KDateNavigator *n; | ||
112 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | ||
113 | n->updateView(); | ||
114 | } | ||
115 | } | ||
116 | |||
117 | void DateNavigatorContainer::updateConfig() | ||
118 | { | ||
119 | mNavigatorView->updateConfig(); | ||
120 | KDateNavigator *n; | ||
121 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | ||
122 | n->updateConfig(); | ||
123 | } | ||
124 | } | ||
125 | |||
126 | void DateNavigatorContainer::selectDates( const DateList &dateList ) | ||
127 | { | ||
128 | mNavigatorView->selectDates( dateList ); | ||
129 | setBaseDates(); | ||
130 | } | ||
131 | |||
132 | void DateNavigatorContainer::setBaseDates() | ||
133 | { | ||
134 | KCal::DateList dateList = mNavigatorView->selectedDates(); | ||
135 | if ( dateList.isEmpty() ) { | ||
136 | kdError() << "DateNavigatorContainer::selectDates() empty list." << endl; | ||
137 | } | ||
138 | QDate baseDate = dateList.first(); | ||
139 | KDateNavigator *n; | ||
140 | for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { | ||
141 | baseDate = baseDate.addDays( baseDate.daysInMonth () ); | ||
142 | n->setBaseDate( baseDate ); | ||
143 | } | ||
144 | } | ||
145 | |||
146 | void DateNavigatorContainer::resizeEvent( QResizeEvent * ) | ||
147 | { | ||
148 | #if 0 | ||
149 | kdDebug(5850) << "DateNavigatorContainer::resizeEvent()" << endl; | ||
150 | kdDebug(5850) << " CURRENT SIZE: " << size() << endl; | ||
151 | kdDebug(5850) << " MINIMUM SIZEHINT: " << minimumSizeHint() << endl; | ||
152 | kdDebug(5850) << " SIZEHINT: " << sizeHint() << endl; | ||
153 | kdDebug(5850) << " MINIMUM SIZE: " << minimumSize() << endl; | ||
154 | #endif | ||
155 | |||
156 | QSize minSize = mNavigatorView->minimumSizeHint(); | ||
157 | |||
158 | // kdDebug(5850) << " NAVIGATORVIEW minimumSizeHint: " << minSize << endl; | ||
159 | |||
160 | int verticalCount = size().height() / minSize.height(); | ||
161 | int horizontalCount = size().width() / minSize.width(); | ||
162 | //qDebug("COUNT %d %d %d %d ", verticalCount, horizontalCount , mVerticalCount, mHorizontalCount ); | ||
163 | if ( horizontalCount != mHorizontalCount || | ||
164 | verticalCount != mVerticalCount ) { | ||
165 | uint count = horizontalCount * verticalCount; | ||
166 | if ( count == 0 ) return; | ||
167 | |||
168 | while ( count > ( mExtraViews.count() + 1 ) ) { | ||
169 | KDateNavigator *n = new KDateNavigator( this ); | ||
170 | mExtraViews.append( n ); | ||
171 | n->setCalendar( mCalendar ); | ||
172 | setBaseDates(); | ||
173 | connectNavigatorView( n ); | ||
174 | n->show(); | ||
175 | } | ||
176 | |||
177 | while ( count < ( mExtraViews.count() + 1 ) ) { | ||
178 | mExtraViews.removeLast(); | ||
179 | } | ||
180 | |||
181 | mHorizontalCount = horizontalCount; | ||
182 | mVerticalCount = verticalCount; | ||
183 | } | ||
184 | |||
185 | int height = size().height() / verticalCount; | ||
186 | int width = size().width() / horizontalCount; | ||
187 | |||
188 | NavigatorBar *bar = mNavigatorView->navigatorBar(); | ||
189 | if ( horizontalCount > 1 ) bar->showButtons( true, false ); | ||
190 | else bar->showButtons( true, true ); | ||
191 | |||
192 | mNavigatorView->setGeometry(0, | ||
193 | 0, width, height ); | ||
194 | for( uint i = 0; i < mExtraViews.count(); ++i ) { | ||
195 | int x = ( i + 1 ) % horizontalCount; | ||
196 | int y = ( i + 1 ) / horizontalCount; | ||
197 | |||
198 | KDateNavigator *view = mExtraViews.at( i ); | ||
199 | bar = view->navigatorBar(); | ||
200 | if ( y > 0 ) bar->showButtons( false, false ); | ||
201 | else { | ||
202 | if ( x + 1 == horizontalCount ) bar->showButtons( false, true ); | ||
203 | else bar->showButtons( false, false ); | ||
204 | } | ||
205 | view->setGeometry( x * width, | ||
206 | y * height, width, height ); | ||
207 | } | ||
208 | } | ||
209 | |||
210 | QSize DateNavigatorContainer::minimumSizeHint() const | ||
211 | { | ||
212 | return mNavigatorView->minimumSizeHint(); | ||
213 | } | ||
214 | |||
215 | QSize DateNavigatorContainer::sizeHint() const | ||
216 | { | ||
217 | return mNavigatorView->sizeHint(); | ||
218 | } | ||
diff --git a/korganizer/datenavigatorcontainer.h b/korganizer/datenavigatorcontainer.h new file mode 100644 index 0000000..affa8e1 --- a/dev/null +++ b/korganizer/datenavigatorcontainer.h | |||
@@ -0,0 +1,90 @@ | |||
1 | /* | ||
2 | This file is part of KOrganizer. | ||
3 | |||
4 | Copyright (c) 2004 Cornelius Schumacher <schumacher@kde.org> | ||
5 | Copyright (C) 2004 Reinhold Kainhofer <reinhold@kainhofer.com> | ||
6 | |||
7 | This program is free software; you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation; either version 2 of the License, or | ||
10 | (at your option) any later version. | ||
11 | |||
12 | This program is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with this program; if not, write to the Free Software | ||
19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
20 | |||
21 | As a special exception, permission is given to link this program | ||
22 | with any edition of Qt, and distribute the resulting executable, | ||
23 | without including the source code for Qt in the source distribution. | ||
24 | */ | ||
25 | #ifndef DATENAVIGATORCONTAINER_H | ||
26 | #define DATENAVIGATORCONTAINER_H | ||
27 | |||
28 | class KDateNavigator; | ||
29 | |||
30 | #include <qwidget.h> | ||
31 | #include <libkcal/calendar.h> | ||
32 | using namespace KCal; | ||
33 | |||
34 | class DateNavigatorContainer: public QWidget | ||
35 | { | ||
36 | Q_OBJECT | ||
37 | public: | ||
38 | DateNavigatorContainer( QWidget *parent = 0, const char *name = 0 ); | ||
39 | ~DateNavigatorContainer(); | ||
40 | |||
41 | /** | ||
42 | Associate date navigator with a calendar. It is used by KODayMatrix. | ||
43 | */ | ||
44 | void setCalendar( Calendar * ); | ||
45 | |||
46 | QSize minimumSizeHint() const; | ||
47 | QSize sizeHint() const; | ||
48 | KDateNavigator * navigatorView() { return mNavigatorView;} | ||
49 | |||
50 | public slots: | ||
51 | void selectDates( const KCal::DateList & ); | ||
52 | void updateView(); | ||
53 | void updateConfig(); | ||
54 | void updateDayMatrix(); | ||
55 | void updateToday(); | ||
56 | |||
57 | signals: | ||
58 | void datesSelected( const KCal::DateList & ); | ||
59 | void incidenceDropped( Incidence *, const QDate & ); | ||
60 | void incidenceDroppedMove( Incidence *, const QDate & ); | ||
61 | void weekClicked( const QDate &); | ||
62 | |||
63 | void goPrevious(); | ||
64 | void goNext(); | ||
65 | |||
66 | void goNextMonth(); | ||
67 | void goPrevMonth(); | ||
68 | void goNextYear(); | ||
69 | void goPrevYear(); | ||
70 | |||
71 | void monthSelected( int month ); | ||
72 | |||
73 | protected: | ||
74 | void resizeEvent( QResizeEvent * ); | ||
75 | |||
76 | void setBaseDates(); | ||
77 | void connectNavigatorView( KDateNavigator *v ); | ||
78 | |||
79 | private: | ||
80 | KDateNavigator *mNavigatorView; | ||
81 | |||
82 | KCal::Calendar *mCalendar; | ||
83 | |||
84 | QPtrList<KDateNavigator> mExtraViews; | ||
85 | |||
86 | int mHorizontalCount; | ||
87 | int mVerticalCount; | ||
88 | }; | ||
89 | |||
90 | #endif | ||
diff --git a/korganizer/kdatenavigator.cpp b/korganizer/kdatenavigator.cpp index c08f44f..e76a85a 100644 --- a/korganizer/kdatenavigator.cpp +++ b/korganizer/kdatenavigator.cpp | |||
@@ -36,44 +36,40 @@ | |||
36 | #include "koglobals.h" | 36 | #include "koglobals.h" |
37 | #include "koprefs.h" | 37 | #include "koprefs.h" |
38 | #ifndef KORG_NOPLUGINS | 38 | #ifndef KORG_NOPLUGINS |
39 | #include "kocore.h" | 39 | #include "kocore.h" |
40 | #endif | 40 | #endif |
41 | 41 | ||
42 | #include <kcalendarsystem.h> | 42 | #include <kcalendarsystem.h> |
43 | 43 | ||
44 | #include "navigatorbar.h" | 44 | #include "navigatorbar.h" |
45 | 45 | ||
46 | #include "kdatenavigator.h" | 46 | #include "kdatenavigator.h" |
47 | 47 | ||
48 | KDateNavigator::KDateNavigator( QWidget *parent, Calendar *calendar, | 48 | KDateNavigator::KDateNavigator( QWidget *parent, const char *name ) |
49 | bool show_week_nums, const char *name, | ||
50 | QDate startDate ) | ||
51 | : QFrame(parent, name), | 49 | : QFrame(parent, name), |
52 | updateTimer(0L) | 50 | updateTimer(0L) |
53 | { | 51 | { |
54 | mCalendar = calendar; | 52 | setFrameStyle(QFrame::NoFrame); |
55 | 53 | QDate startDate = QDate::currentDate(); | |
56 | setFrameStyle(QFrame::NoFrame); | ||
57 | |||
58 | QGridLayout *topLayout = new QGridLayout(this,8,8); | 54 | QGridLayout *topLayout = new QGridLayout(this,8,8); |
59 | 55 | ||
60 | if (! startDate.isValid()) { | 56 | if (! startDate.isValid()) { |
61 | qDebug("KDateNavigator::invalid startdate "); | 57 | qDebug("KDateNavigator::invalid startdate "); |
62 | startDate = QDate::currentDate(); | 58 | startDate = QDate::currentDate(); |
63 | } | 59 | } |
64 | 60 | ||
65 | mSelectedDates.append(startDate); | 61 | mSelectedDates.append(startDate); |
66 | m_MthYr = startDate; | 62 | m_MthYr = startDate; |
67 | m_bShowWeekNums = show_week_nums; | 63 | m_bShowWeekNums = true; |
68 | 64 | ||
69 | setFont( KOPrefs::instance()->mDateNavigatorFont ); | 65 | setFont( KOPrefs::instance()->mDateNavigatorFont ); |
70 | mNavigatorBar = new NavigatorBar( startDate, this ); | 66 | mNavigatorBar = new NavigatorBar( startDate, this ); |
71 | topLayout->addMultiCellWidget( mNavigatorBar, 0, 0, 0, 7 ); | 67 | topLayout->addMultiCellWidget( mNavigatorBar, 0, 0, 0, 7 ); |
72 | //mNavigatorBar->resize( 1,1); | 68 | //mNavigatorBar->resize( 1,1); |
73 | connect( mNavigatorBar, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) ); | 69 | connect( mNavigatorBar, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) ); |
74 | connect( mNavigatorBar, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) ); | 70 | connect( mNavigatorBar, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) ); |
75 | connect( mNavigatorBar, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) ); | 71 | connect( mNavigatorBar, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) ); |
76 | connect( mNavigatorBar, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) ); | 72 | connect( mNavigatorBar, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) ); |
77 | connect( mNavigatorBar, SIGNAL( monthSelected( int ) ), SIGNAL( monthSelected( int ) ) ); | 73 | connect( mNavigatorBar, SIGNAL( monthSelected( int ) ), SIGNAL( monthSelected( int ) ) ); |
78 | 74 | ||
79 | // get the day of the week on the first day | 75 | // get the day of the week on the first day |
@@ -87,49 +83,67 @@ KDateNavigator::KDateNavigator( QWidget *parent, Calendar *calendar, | |||
87 | headings[i] = new QLabel("",this); | 83 | headings[i] = new QLabel("",this); |
88 | //headings[i]->setFont(QFont("Arial", 10, QFont::Bold)); | 84 | //headings[i]->setFont(QFont("Arial", 10, QFont::Bold)); |
89 | headings[i]->setAlignment(AlignCenter); | 85 | headings[i]->setAlignment(AlignCenter); |
90 | 86 | ||
91 | topLayout->addWidget(headings[i],1,i+1); | 87 | topLayout->addWidget(headings[i],1,i+1); |
92 | } | 88 | } |
93 | 89 | ||
94 | // Create the weeknumber labels | 90 | // Create the weeknumber labels |
95 | for( i = 0; i < 6; i++ ) { | 91 | for( i = 0; i < 6; i++ ) { |
96 | weeknos[i] = new QLabel(this); | 92 | weeknos[i] = new QLabel(this); |
97 | weeknos[i]->setAlignment(AlignCenter); | 93 | weeknos[i]->setAlignment(AlignCenter); |
98 | //weeknos[i]->setFont(QFont("Arial", 10)); | 94 | //weeknos[i]->setFont(QFont("Arial", 10)); |
99 | if(!show_week_nums) { | 95 | if(!m_bShowWeekNums) { |
100 | weeknos[i]->hide(); | 96 | weeknos[i]->hide(); |
101 | } | 97 | } |
102 | weeknos[i]->installEventFilter(this); | 98 | weeknos[i]->installEventFilter(this); |
103 | 99 | ||
104 | topLayout->addWidget(weeknos[i],i+2,0); | 100 | topLayout->addWidget(weeknos[i],i+2,0); |
105 | } | 101 | } |
106 | 102 | ||
107 | daymatrix = new KODayMatrix( this, mCalendar, dayone, | 103 | daymatrix = new KODayMatrix( this, "KDateNavigator::DayMatrix"); |
108 | "KDateNavigator::DayMatrix"); | ||
109 | daymatrix->setFrameStyle(QFrame::Panel|QFrame::Sunken); | 104 | daymatrix->setFrameStyle(QFrame::Panel|QFrame::Sunken); |
110 | daymatrix->setLineWidth(1); | 105 | daymatrix->setLineWidth(1); |
111 | 106 | ||
112 | connect( daymatrix, SIGNAL( selected( const KCal::DateList & ) ), | 107 | connect( daymatrix, SIGNAL( selected( const KCal::DateList & ) ), |
113 | SIGNAL( datesSelected( const KCal::DateList & ) ) ); | 108 | SIGNAL( datesSelected( const KCal::DateList & ) ) ); |
114 | 109 | ||
115 | connect( daymatrix, SIGNAL( eventDropped( Event * ) ), | 110 | connect( daymatrix, SIGNAL( eventDropped( Event * ) ), |
116 | SIGNAL( eventDropped( Event * ) ) ); | 111 | SIGNAL( eventDropped( Event * ) ) ); |
117 | 112 | ||
118 | topLayout->addMultiCellWidget(daymatrix,2,7,1,7); | 113 | topLayout->addMultiCellWidget(daymatrix,2,7,1,7); |
119 | 114 | ||
120 | // read settings from configuration file. | 115 | // read settings from configuration file. |
121 | updateConfig(); | 116 | updateConfig(); |
122 | enableRollover(FollowMonth); | 117 | enableRollover(FollowMonth); |
123 | setFixedSize ( sizeHint() ); | 118 | //setFixedSize ( sizeHint() ); |
119 | } | ||
120 | void KDateNavigator::setCalendar( Calendar *cal ) | ||
121 | { | ||
122 | daymatrix->setCalendar( cal ); | ||
123 | } | ||
124 | |||
125 | void KDateNavigator::setBaseDate( const QDate &date ) | ||
126 | { | ||
127 | m_MthYr = date; | ||
128 | |||
129 | updateDates(); | ||
130 | updateView(); | ||
131 | |||
132 | KCal::DateList dates; | ||
133 | dates.append( date ); | ||
134 | mNavigatorBar->selectDates( dates ); | ||
135 | |||
136 | daymatrix->clearSelection(); | ||
137 | daymatrix->repaint(); | ||
124 | } | 138 | } |
125 | 139 | ||
126 | void KDateNavigator::enableRollover(RolloverType r) | 140 | void KDateNavigator::enableRollover(RolloverType r) |
127 | { | 141 | { |
128 | switch(r) | 142 | switch(r) |
129 | { | 143 | { |
130 | case None : | 144 | case None : |
131 | if (updateTimer) | 145 | if (updateTimer) |
132 | { | 146 | { |
133 | updateTimer->stop(); | 147 | updateTimer->stop(); |
134 | delete updateTimer; | 148 | delete updateTimer; |
135 | updateTimer=0L; | 149 | updateTimer=0L; |
diff --git a/korganizer/kdatenavigator.h b/korganizer/kdatenavigator.h index 3ae1648..0aeb77a 100644 --- a/korganizer/kdatenavigator.h +++ b/korganizer/kdatenavigator.h | |||
@@ -33,43 +33,45 @@ | |||
33 | 33 | ||
34 | class QPushButton; | 34 | class QPushButton; |
35 | class QTimer; | 35 | class QTimer; |
36 | 36 | ||
37 | class KCalendarSystem; | 37 | class KCalendarSystem; |
38 | 38 | ||
39 | class NavigatorBar; | 39 | class NavigatorBar; |
40 | 40 | ||
41 | class KDateNavigator: public QFrame | 41 | class KDateNavigator: public QFrame |
42 | { | 42 | { |
43 | Q_OBJECT | 43 | Q_OBJECT |
44 | public: | 44 | public: |
45 | KDateNavigator( QWidget *parent = 0, Calendar *calendar = 0, | 45 | KDateNavigator( QWidget *parent = 0,const char *name = 0 ); |
46 | bool show_week_numbers = false, const char *name = 0, | ||
47 | QDate date = QDate::currentDate() ); | ||
48 | ~KDateNavigator(); | 46 | ~KDateNavigator(); |
49 | 47 | ||
50 | /** The DateNavigator automatically checks for | 48 | /** The DateNavigator automatically checks for |
51 | * the passage of midnight. If rollover type is | 49 | * the passage of midnight. If rollover type is |
52 | * set to None, no signals are emitted and no | 50 | * set to None, no signals are emitted and no |
53 | * processing is done. With rollover set to | 51 | * processing is done. With rollover set to |
54 | * FollowDay, the day highlighter changes at | 52 | * FollowDay, the day highlighter changes at |
55 | * midnight and dayPassed() is emitted. | 53 | * midnight and dayPassed() is emitted. |
56 | * With FollowMonth, it has the same effect | 54 | * With FollowMonth, it has the same effect |
57 | * as FollowDay but also adjusts the month that is | 55 | * as FollowDay but also adjusts the month that is |
58 | * visible and emits monthPassed() when the month changes. | 56 | * visible and emits monthPassed() when the month changes. |
59 | */ | 57 | */ |
60 | enum RolloverType { None, FollowDay, FollowMonth } ; | 58 | enum RolloverType { None, FollowDay, FollowMonth } ; |
61 | void enableRollover( RolloverType ); | 59 | void enableRollover( RolloverType ); |
62 | 60 | ||
63 | void setShowWeekNums( bool enabled ); | 61 | void setShowWeekNums( bool enabled ); |
62 | void setCalendar( Calendar * ); | ||
63 | void setBaseDate( const QDate & ); | ||
64 | KCal::DateList selectedDates() const { return mSelectedDates; } | ||
65 | NavigatorBar *navigatorBar() const { return mNavigatorBar; } | ||
64 | 66 | ||
65 | public slots: | 67 | public slots: |
66 | void selectDates( const KCal::DateList & ); | 68 | void selectDates( const KCal::DateList & ); |
67 | void updateView(); | 69 | void updateView(); |
68 | void updateConfig(); | 70 | void updateConfig(); |
69 | void updateDayMatrix(); | 71 | void updateDayMatrix(); |
70 | 72 | ||
71 | signals: | 73 | signals: |
72 | void datesSelected( const KCal::DateList & ); | 74 | void datesSelected( const KCal::DateList & ); |
73 | void eventDropped( Event * ); | 75 | void eventDropped( Event * ); |
74 | void weekClicked( const QDate &); | 76 | void weekClicked( const QDate &); |
75 | 77 | ||
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp index 989f758..a886f4a 100644 --- a/korganizer/kodaymatrix.cpp +++ b/korganizer/kodaymatrix.cpp | |||
@@ -78,28 +78,33 @@ void DynamicTip::maybeTip( const QPoint &pos ) | |||
78 | if (str.isEmpty()) return; | 78 | if (str.isEmpty()) return; |
79 | tip(rct, str); | 79 | tip(rct, str); |
80 | } | 80 | } |
81 | 81 | ||
82 | 82 | ||
83 | // ============================================================================ | 83 | // ============================================================================ |
84 | // K O D A Y M A T R I X | 84 | // K O D A Y M A T R I X |
85 | // ============================================================================ | 85 | // ============================================================================ |
86 | 86 | ||
87 | const int KODayMatrix::NOSELECTION = -1000; | 87 | const int KODayMatrix::NOSELECTION = -1000; |
88 | const int KODayMatrix::NUMDAYS = 42; | 88 | const int KODayMatrix::NUMDAYS = 42; |
89 | 89 | ||
90 | KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) | ||
91 | : QFrame( parent, name ), mCalendar( 0 ) | ||
92 | |||
93 | #if 0 | ||
90 | KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : | 94 | KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : |
91 | QFrame(parent, name) | 95 | QFrame(parent, name) |
96 | #endif | ||
92 | { | 97 | { |
93 | mCalendar = calendar; | 98 | |
94 | mPendingUpdateBeforeRepaint = false; | 99 | mPendingUpdateBeforeRepaint = false; |
95 | 100 | ||
96 | // initialize dynamic arrays | 101 | // initialize dynamic arrays |
97 | days = new QDate[NUMDAYS]; | 102 | days = new QDate[NUMDAYS]; |
98 | daylbls = new QString[NUMDAYS]; | 103 | daylbls = new QString[NUMDAYS]; |
99 | events = new int[NUMDAYS]; | 104 | events = new int[NUMDAYS]; |
100 | mToolTip = new DynamicTip(this); | 105 | mToolTip = new DynamicTip(this); |
101 | 106 | ||
102 | // set default values used for drawing the matrix | 107 | // set default values used for drawing the matrix |
103 | mDefaultBackColor = palette().active().base(); | 108 | mDefaultBackColor = palette().active().base(); |
104 | mDefaultTextColor = palette().active().foreground(); | 109 | mDefaultTextColor = palette().active().foreground(); |
105 | mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); | 110 | mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); |
@@ -109,24 +114,32 @@ KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const | |||
109 | mSelEnd = mSelStart = NOSELECTION; | 114 | mSelEnd = mSelStart = NOSELECTION; |
110 | 115 | ||
111 | setAcceptDrops(true); | 116 | setAcceptDrops(true); |
112 | //setFont( QFont("Arial", 10) ); | 117 | //setFont( QFont("Arial", 10) ); |
113 | 118 | ||
114 | mUpdateTimer = new QTimer( this ); | 119 | mUpdateTimer = new QTimer( this ); |
115 | connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); | 120 | connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); |
116 | mRepaintTimer = new QTimer( this ); | 121 | mRepaintTimer = new QTimer( this ); |
117 | connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); | 122 | connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); |
118 | mDayChanged = false; | 123 | mDayChanged = false; |
119 | updateView(); | 124 | updateView(); |
120 | } | 125 | } |
126 | void KODayMatrix::setCalendar( Calendar *cal ) | ||
127 | { | ||
128 | mCalendar = cal; | ||
129 | |||
130 | setAcceptDrops( mCalendar ); | ||
131 | |||
132 | updateEvents(); | ||
133 | } | ||
121 | 134 | ||
122 | QColor KODayMatrix::getShadedColor(QColor color) | 135 | QColor KODayMatrix::getShadedColor(QColor color) |
123 | { | 136 | { |
124 | QColor shaded; | 137 | QColor shaded; |
125 | int h=0; | 138 | int h=0; |
126 | int s=0; | 139 | int s=0; |
127 | int v=0; | 140 | int v=0; |
128 | color.hsv(&h,&s,&v); | 141 | color.hsv(&h,&s,&v); |
129 | s = s/4; | 142 | s = s/4; |
130 | v = 192+v/4; | 143 | v = 192+v/4; |
131 | shaded.setHsv(h,s,v); | 144 | shaded.setHsv(h,s,v); |
132 | 145 | ||
@@ -177,24 +190,28 @@ void KODayMatrix::addSelectedDaysTo(DateList& selDays) | |||
177 | } else { | 190 | } else { |
178 | for (int i = i0; i <= mSelEnd; i++) { | 191 | for (int i = i0; i <= mSelEnd; i++) { |
179 | selDays.append(days[i]); | 192 | selDays.append(days[i]); |
180 | } | 193 | } |
181 | } | 194 | } |
182 | } | 195 | } |
183 | 196 | ||
184 | void KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) | 197 | void KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) |
185 | { | 198 | { |
186 | mSelStart = startdate.daysTo(start); | 199 | mSelStart = startdate.daysTo(start); |
187 | mSelEnd = startdate.daysTo(end); | 200 | mSelEnd = startdate.daysTo(end); |
188 | } | 201 | } |
202 | void KODayMatrix::clearSelection() | ||
203 | { | ||
204 | mSelEnd = mSelStart = NOSELECTION; | ||
205 | } | ||
189 | 206 | ||
190 | 207 | ||
191 | void KODayMatrix::recalculateToday() | 208 | void KODayMatrix::recalculateToday() |
192 | { | 209 | { |
193 | today = -1; | 210 | today = -1; |
194 | for (int i=0; i<NUMDAYS; i++) { | 211 | for (int i=0; i<NUMDAYS; i++) { |
195 | events[i] = 0; | 212 | events[i] = 0; |
196 | days[i] = startdate.addDays(i); | 213 | days[i] = startdate.addDays(i); |
197 | daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); | 214 | daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); |
198 | 215 | ||
199 | // if today is in the currently displayed month, hilight today | 216 | // if today is in the currently displayed month, hilight today |
200 | if (days[i].year() == QDate::currentDate().year() && | 217 | if (days[i].year() == QDate::currentDate().year() && |
@@ -208,26 +225,30 @@ void KODayMatrix::recalculateToday() | |||
208 | 225 | ||
209 | void KODayMatrix::updateView() | 226 | void KODayMatrix::updateView() |
210 | { | 227 | { |
211 | updateView(startdate); | 228 | updateView(startdate); |
212 | } | 229 | } |
213 | void KODayMatrix::repaintViewTimed() | 230 | void KODayMatrix::repaintViewTimed() |
214 | { | 231 | { |
215 | mRepaintTimer->stop(); | 232 | mRepaintTimer->stop(); |
216 | repaint(false); | 233 | repaint(false); |
217 | } | 234 | } |
218 | void KODayMatrix::updateViewTimed() | 235 | void KODayMatrix::updateViewTimed() |
219 | { | 236 | { |
220 | |||
221 | mUpdateTimer->stop(); | 237 | mUpdateTimer->stop(); |
238 | if ( !mCalendar ) { | ||
239 | qDebug("NOT CAL "); | ||
240 | return; | ||
241 | } | ||
242 | //qDebug("KODayMatrix::updateViewTimed "); | ||
222 | for(int i = 0; i < NUMDAYS; i++) { | 243 | for(int i = 0; i < NUMDAYS; i++) { |
223 | // if events are set for the day then remember to draw it bold | 244 | // if events are set for the day then remember to draw it bold |
224 | QPtrList<Event> eventlist = mCalendar->events(days[i]); | 245 | QPtrList<Event> eventlist = mCalendar->events(days[i]); |
225 | Event *event; | 246 | Event *event; |
226 | int numEvents = eventlist.count(); | 247 | int numEvents = eventlist.count(); |
227 | QString holiStr = ""; | 248 | QString holiStr = ""; |
228 | for(event=eventlist.first();event != 0;event=eventlist.next()) { | 249 | for(event=eventlist.first();event != 0;event=eventlist.next()) { |
229 | ushort recurType = event->recurrence()->doesRecur(); | 250 | ushort recurType = event->recurrence()->doesRecur(); |
230 | if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || | 251 | if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || |
231 | (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { | 252 | (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { |
232 | numEvents--; | 253 | numEvents--; |
233 | } | 254 | } |
@@ -285,24 +306,46 @@ void KODayMatrix::updateView(QDate actdate) | |||
285 | if ( !isVisible() ) { | 306 | if ( !isVisible() ) { |
286 | mPendingUpdateBeforeRepaint = true; | 307 | mPendingUpdateBeforeRepaint = true; |
287 | } else { | 308 | } else { |
288 | #ifdef DESKTOP_VERSION | 309 | #ifdef DESKTOP_VERSION |
289 | //mRepaintTimer->start( 250 ); | 310 | //mRepaintTimer->start( 250 ); |
290 | mUpdateTimer->start( 250 ); | 311 | mUpdateTimer->start( 250 ); |
291 | #else | 312 | #else |
292 | mRepaintTimer->start( 350 ); | 313 | mRepaintTimer->start( 350 ); |
293 | mUpdateTimer->start( 2000 ); | 314 | mUpdateTimer->start( 2000 ); |
294 | #endif | 315 | #endif |
295 | } | 316 | } |
296 | } | 317 | } |
318 | void KODayMatrix::updateEvents() | ||
319 | { | ||
320 | if ( !mCalendar ) return; | ||
321 | |||
322 | for( int i = 0; i < NUMDAYS; i++ ) { | ||
323 | // if events are set for the day then remember to draw it bold | ||
324 | QPtrList<Event> eventlist = mCalendar->events( days[ i ] ); | ||
325 | int numEvents = eventlist.count(); | ||
326 | Event *event; | ||
327 | for( event = eventlist.first(); event != 0;event=eventlist.next()) { | ||
328 | ushort recurType = event->doesRecur(); | ||
329 | |||
330 | if ( ( recurType == Recurrence::rDaily && | ||
331 | !KOPrefs::instance()->mDailyRecur ) || | ||
332 | ( recurType == Recurrence::rWeekly && | ||
333 | !KOPrefs::instance()->mWeeklyRecur ) ) { | ||
334 | numEvents--; | ||
335 | } | ||
336 | } | ||
337 | events[ i ] = numEvents; | ||
338 | } | ||
339 | } | ||
297 | 340 | ||
298 | const QDate& KODayMatrix::getDate(int offset) | 341 | const QDate& KODayMatrix::getDate(int offset) |
299 | { | 342 | { |
300 | if (offset < 0 || offset > NUMDAYS-1) { | 343 | if (offset < 0 || offset > NUMDAYS-1) { |
301 | qDebug("Wrong offset2 "); | 344 | qDebug("Wrong offset2 "); |
302 | return days[0]; | 345 | return days[0]; |
303 | } | 346 | } |
304 | return days[offset]; | 347 | return days[offset]; |
305 | } | 348 | } |
306 | 349 | ||
307 | QString KODayMatrix::getHolidayLabel(int offset) | 350 | QString KODayMatrix::getHolidayLabel(int offset) |
308 | { | 351 | { |
@@ -419,25 +462,25 @@ void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/) | |||
419 | { | 462 | { |
420 | #ifndef KORG_NODND | 463 | #ifndef KORG_NODND |
421 | // setPalette(oldPalette); | 464 | // setPalette(oldPalette); |
422 | // update(); | 465 | // update(); |
423 | #endif | 466 | #endif |
424 | } | 467 | } |
425 | 468 | ||
426 | void KODayMatrix::dropEvent(QDropEvent *e) | 469 | void KODayMatrix::dropEvent(QDropEvent *e) |
427 | { | 470 | { |
428 | #ifndef KORG_NODND | 471 | #ifndef KORG_NODND |
429 | // kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl; | 472 | // kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl; |
430 | 473 | ||
431 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { | 474 | if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { |
432 | e->ignore(); | 475 | e->ignore(); |
433 | return; | 476 | return; |
434 | } | 477 | } |
435 | 478 | ||
436 | DndFactory factory( mCalendar ); | 479 | DndFactory factory( mCalendar ); |
437 | Event *event = factory.createDrop(e); | 480 | Event *event = factory.createDrop(e); |
438 | 481 | ||
439 | if (event) { | 482 | if (event) { |
440 | e->acceptAction(); | 483 | e->acceptAction(); |
441 | 484 | ||
442 | Event *existingEvent = mCalendar->event(event->uid()); | 485 | Event *existingEvent = mCalendar->event(event->uid()); |
443 | 486 | ||
diff --git a/korganizer/kodaymatrix.h b/korganizer/kodaymatrix.h index 2dd112a..ba4853f 100644 --- a/korganizer/kodaymatrix.h +++ b/korganizer/kodaymatrix.h | |||
@@ -108,60 +108,62 @@ class KODayMatrix: public QFrame { | |||
108 | 108 | ||
109 | public: | 109 | public: |
110 | 110 | ||
111 | /** constructor to create a day matrix widget. | 111 | /** constructor to create a day matrix widget. |
112 | * | 112 | * |
113 | * @param parent widget that is the parent of the day matrix. Normally this should | 113 | * @param parent widget that is the parent of the day matrix. Normally this should |
114 | * be a KDateNavigator | 114 | * be a KDateNavigator |
115 | * @param calendar instance of a calendar on which all calculations are based | 115 | * @param calendar instance of a calendar on which all calculations are based |
116 | * @param date start date of the matrix (is expected to be already fixed). It is | 116 | * @param date start date of the matrix (is expected to be already fixed). It is |
117 | * assumed that this date is the first week day to be shown in the matrix. | 117 | * assumed that this date is the first week day to be shown in the matrix. |
118 | * @param name name of the widget | 118 | * @param name name of the widget |
119 | */ | 119 | */ |
120 | KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name ); | 120 | KODayMatrix( QWidget *parent, const char *name ); |
121 | //KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name ); | ||
121 | 122 | ||
122 | /** destructor that deallocates all dynamically allocated private members. | 123 | /** destructor that deallocates all dynamically allocated private members. |
123 | */ | 124 | */ |
124 | ~KODayMatrix(); | 125 | ~KODayMatrix(); |
125 | 126 | ||
126 | /** updates the day matrix to start with the given date. Does all the necessary | 127 | /** updates the day matrix to start with the given date. Does all the necessary |
127 | * checks for holidays or events on a day and stores them for display later on. | 128 | * checks for holidays or events on a day and stores them for display later on. |
128 | * Does NOT update the view visually. Call repaint() for this. | 129 | * Does NOT update the view visually. Call repaint() for this. |
129 | * | 130 | * |
130 | * @param actdate recalculates the day matrix to show NUMDAYS starting from this | 131 | * @param actdate recalculates the day matrix to show NUMDAYS starting from this |
131 | * date. | 132 | * date. |
132 | */ | 133 | */ |
133 | void updateView(QDate actdate); | 134 | void updateView(QDate actdate); |
135 | void updateEvents(); | ||
134 | 136 | ||
135 | /** returns the QDate object associated with day indexed by the | 137 | /** returns the QDate object associated with day indexed by the |
136 | * supplied offset. | 138 | * supplied offset. |
137 | */ | 139 | */ |
138 | const QDate& getDate(int offset); | 140 | const QDate& getDate(int offset); |
139 | 141 | void setCalendar( Calendar * ); | |
140 | /** returns the official name of this holy day or 0 if there is no label | 142 | /** returns the official name of this holy day or 0 if there is no label |
141 | * for this day. | 143 | * for this day. |
142 | */ | 144 | */ |
143 | QString getHolidayLabel(int offset); | 145 | QString getHolidayLabel(int offset); |
144 | 146 | ||
145 | /** adds all actual selected days from mSelStart to mSelEnd to the supplied | 147 | /** adds all actual selected days from mSelStart to mSelEnd to the supplied |
146 | * DateList. | 148 | * DateList. |
147 | */ | 149 | */ |
148 | void addSelectedDaysTo(DateList&); | 150 | void addSelectedDaysTo(DateList&); |
149 | 151 | ||
150 | /** sets the actual to be displayed selection in the day matrix starting from | 152 | /** sets the actual to be displayed selection in the day matrix starting from |
151 | * start and ending with end. Theview must be manually updated by calling | 153 | * start and ending with end. Theview must be manually updated by calling |
152 | * repaint. (?) | 154 | * repaint. (?) |
153 | */ | 155 | */ |
154 | void setSelectedDaysFrom(const QDate& start, const QDate& end); | 156 | void setSelectedDaysFrom(const QDate& start, const QDate& end); |
155 | 157 | void clearSelection(); | |
156 | 158 | ||
157 | /** Is today visible in the view? Keep this in sync with | 159 | /** Is today visible in the view? Keep this in sync with |
158 | * the values today (below) can take. | 160 | * the values today (below) can take. |
159 | */ | 161 | */ |
160 | bool isTodayVisible() const { return today>=0; } ; | 162 | bool isTodayVisible() const { return today>=0; } ; |
161 | 163 | ||
162 | /** If today is visible, then we can find out if today is | 164 | /** If today is visible, then we can find out if today is |
163 | * near the beginning or the end of the month. | 165 | * near the beginning or the end of the month. |
164 | * This is dependent on today remaining the index | 166 | * This is dependent on today remaining the index |
165 | * in the array of visible dates and going from | 167 | * in the array of visible dates and going from |
166 | * top left (0) to bottom right (41). | 168 | * top left (0) to bottom right (41). |
167 | */ | 169 | */ |
diff --git a/korganizer/korganizerE.pro b/korganizer/korganizerE.pro index e6c3f8d..91b5a01 100644 --- a/korganizer/korganizerE.pro +++ b/korganizer/korganizerE.pro | |||
@@ -19,25 +19,25 @@ LIBS += -lmicroqtcompat | |||
19 | LIBS += $(GCC3EXTRALIB1) | 19 | LIBS += $(GCC3EXTRALIB1) |
20 | LIBS += $(GCC3EXTRALIB2) | 20 | LIBS += $(GCC3EXTRALIB2) |
21 | 21 | ||
22 | 22 | ||
23 | LIBS += -lqpe | 23 | LIBS += -lqpe |
24 | LIBS += -ljpeg | 24 | LIBS += -ljpeg |
25 | LIBS += $(QTOPIALIB) | 25 | LIBS += $(QTOPIALIB) |
26 | LIBS += -L$(QPEDIR)/lib | 26 | LIBS += -L$(QPEDIR)/lib |
27 | 27 | ||
28 | INTERFACES = kofilterview_base.ui | 28 | INTERFACES = kofilterview_base.ui |
29 | #filteredit_base.ui | 29 | #filteredit_base.ui |
30 | 30 | ||
31 | HEADERS = \ | 31 | HEADERS = datenavigatorcontainer.h \ |
32 | wordsgerman.h \ | 32 | wordsgerman.h \ |
33 | filteredit_base.h \ | 33 | filteredit_base.h \ |
34 | alarmclient.h \ | 34 | alarmclient.h \ |
35 | calendarview.h \ | 35 | calendarview.h \ |
36 | customlistviewitem.h \ | 36 | customlistviewitem.h \ |
37 | datenavigator.h \ | 37 | datenavigator.h \ |
38 | docprefs.h \ | 38 | docprefs.h \ |
39 | filtereditdialog.h \ | 39 | filtereditdialog.h \ |
40 | incomingdialog.h \ | 40 | incomingdialog.h \ |
41 | incomingdialog_base.h \ | 41 | incomingdialog_base.h \ |
42 | interfaces/korganizer/baseview.h \ | 42 | interfaces/korganizer/baseview.h \ |
43 | interfaces/korganizer/calendarviewbase.h \ | 43 | interfaces/korganizer/calendarviewbase.h \ |
@@ -83,25 +83,25 @@ HEADERS = \ | |||
83 | outgoingdialog_base.h \ | 83 | outgoingdialog_base.h \ |
84 | publishdialog.h \ | 84 | publishdialog.h \ |
85 | publishdialog_base.h \ | 85 | publishdialog_base.h \ |
86 | savetemplatedialog.h \ | 86 | savetemplatedialog.h \ |
87 | searchdialog.h \ | 87 | searchdialog.h \ |
88 | simplealarmclient.h \ | 88 | simplealarmclient.h \ |
89 | statusdialog.h \ | 89 | statusdialog.h \ |
90 | timeline.h \ | 90 | timeline.h \ |
91 | timespanview.h \ | 91 | timespanview.h \ |
92 | version.h \ | 92 | version.h \ |
93 | ../kalarmd/alarmdialog.h | 93 | ../kalarmd/alarmdialog.h |
94 | 94 | ||
95 | SOURCES = \ | 95 | SOURCES = datenavigatorcontainer.cpp \ |
96 | filteredit_base.cpp \ | 96 | filteredit_base.cpp \ |
97 | calendarview.cpp \ | 97 | calendarview.cpp \ |
98 | datenavigator.cpp \ | 98 | datenavigator.cpp \ |
99 | docprefs.cpp \ | 99 | docprefs.cpp \ |
100 | filtereditdialog.cpp \ | 100 | filtereditdialog.cpp \ |
101 | incomingdialog.cpp \ | 101 | incomingdialog.cpp \ |
102 | incomingdialog_base.cpp \ | 102 | incomingdialog_base.cpp \ |
103 | journalentry.cpp \ | 103 | journalentry.cpp \ |
104 | kdatenavigator.cpp \ | 104 | kdatenavigator.cpp \ |
105 | koagenda.cpp \ | 105 | koagenda.cpp \ |
106 | koagendaitem.cpp \ | 106 | koagendaitem.cpp \ |
107 | koagendaview.cpp \ | 107 | koagendaview.cpp \ |
diff --git a/korganizer/navigatorbar.cpp b/korganizer/navigatorbar.cpp index 934e153..27d4d17 100644 --- a/korganizer/navigatorbar.cpp +++ b/korganizer/navigatorbar.cpp | |||
@@ -175,24 +175,46 @@ NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *nam | |||
175 | mNextMonth->setFocusPolicy(NoFocus); | 175 | mNextMonth->setFocusPolicy(NoFocus); |
176 | mPrevWeek->setFocusPolicy(NoFocus); | 176 | mPrevWeek->setFocusPolicy(NoFocus); |
177 | mNextWeek->setFocusPolicy(NoFocus); | 177 | mNextWeek->setFocusPolicy(NoFocus); |
178 | mNextYear->setFocusPolicy(NoFocus); | 178 | mNextYear->setFocusPolicy(NoFocus); |
179 | mSelectMonth->setFocusPolicy(NoFocus); | 179 | mSelectMonth->setFocusPolicy(NoFocus); |
180 | setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); | 180 | setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); |
181 | 181 | ||
182 | } | 182 | } |
183 | 183 | ||
184 | NavigatorBar::~NavigatorBar() | 184 | NavigatorBar::~NavigatorBar() |
185 | { | 185 | { |
186 | } | 186 | } |
187 | void NavigatorBar::showButtons( bool left, bool right ) | ||
188 | { | ||
189 | if ( left ) { | ||
190 | mPrevYear->show(); | ||
191 | mPrevMonth->show(); | ||
192 | } else { | ||
193 | mPrevYear->hide(); | ||
194 | mPrevMonth->hide(); | ||
195 | } | ||
196 | |||
197 | if ( right ) { | ||
198 | mNextYear->show(); | ||
199 | mNextMonth->show(); | ||
200 | } else { | ||
201 | mNextYear->hide(); | ||
202 | mNextMonth->hide(); | ||
203 | } | ||
204 | if ( !left && !right ) { | ||
205 | mSelectMonth->setMaximumWidth( 1024 ); | ||
206 | mSelectMonth->setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); | ||
207 | } | ||
208 | } | ||
187 | 209 | ||
188 | void NavigatorBar::selectMonth() | 210 | void NavigatorBar::selectMonth() |
189 | { | 211 | { |
190 | 212 | ||
191 | int month; | 213 | int month; |
192 | KPopupFrame* popup = new KPopupFrame(this); | 214 | KPopupFrame* popup = new KPopupFrame(this); |
193 | KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup); | 215 | KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup); |
194 | // ----- | 216 | // ----- |
195 | picker->resize(picker->sizeHint()); | 217 | picker->resize(picker->sizeHint()); |
196 | popup->setMainWidget(picker); | 218 | popup->setMainWidget(picker); |
197 | picker->setFocus(); | 219 | picker->setFocus(); |
198 | connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); | 220 | connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); |
diff --git a/korganizer/navigatorbar.h b/korganizer/navigatorbar.h index 803c817..4442caa 100644 --- a/korganizer/navigatorbar.h +++ b/korganizer/navigatorbar.h | |||
@@ -29,24 +29,25 @@ | |||
29 | #include <qwidget.h> | 29 | #include <qwidget.h> |
30 | 30 | ||
31 | class QPushButton; | 31 | class QPushButton; |
32 | class QFrame; | 32 | class QFrame; |
33 | class QLabel; | 33 | class QLabel; |
34 | 34 | ||
35 | class NavigatorBar: public QWidget | 35 | class NavigatorBar: public QWidget |
36 | { | 36 | { |
37 | Q_OBJECT | 37 | Q_OBJECT |
38 | public: | 38 | public: |
39 | NavigatorBar( const QDate & date, QWidget *parent = 0, const char *name = 0 ); | 39 | NavigatorBar( const QDate & date, QWidget *parent = 0, const char *name = 0 ); |
40 | ~NavigatorBar(); | 40 | ~NavigatorBar(); |
41 | void showButtons( bool left, bool right ); | ||
41 | 42 | ||
42 | public slots: | 43 | public slots: |
43 | void selectDates( const KCal::DateList & ); | 44 | void selectDates( const KCal::DateList & ); |
44 | void selectMonth(); | 45 | void selectMonth(); |
45 | 46 | ||
46 | signals: | 47 | signals: |
47 | void goNextMonth(); | 48 | void goNextMonth(); |
48 | void goPrevMonth(); | 49 | void goPrevMonth(); |
49 | void goNextWeek(); | 50 | void goNextWeek(); |
50 | void goPrevWeek(); | 51 | void goPrevWeek(); |
51 | void goNextYear(); | 52 | void goNextYear(); |
52 | void goPrevYear(); | 53 | void goPrevYear(); |