summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt4
-rw-r--r--korganizer/datenavigatorcontainer.cpp6
-rw-r--r--korganizer/kdatenavigator.cpp2
-rw-r--r--korganizer/kodaymatrix.cpp32
-rw-r--r--korganizer/kodaymatrix.h1
5 files changed, 37 insertions, 8 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 6bc6be9..680f633 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,34 +1,38 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.0.24 ************
4
5Fixed again a lot of small bugs.
6
3********** VERSION 2.0.23 ************ 7********** VERSION 2.0.23 ************
4 8
5Fixed again a lot of small and strange bugs, e.g. the missing toolbar of KA/Pi after a new installation. 9Fixed again a lot of small and strange bugs, e.g. the missing toolbar of KA/Pi after a new installation.
6Fixed the (agenda) layout of KO/Pi on 5500er. 10Fixed the (agenda) layout of KO/Pi on 5500er.
7Some usebility enhancements (e.g. reselection the current item of the todo view after some changes). 11Some usebility enhancements (e.g. reselection the current item of the todo view after some changes).
8 12
9********** VERSION 2.0.22 ************ 13********** VERSION 2.0.22 ************
10 14
11KO/Pi: 15KO/Pi:
12Fix for creating events/todos via the abgenda context menu. 16Fix for creating events/todos via the abgenda context menu.
13Added option to split toolbar to 3 toolbars. 17Added option to split toolbar to 3 toolbars.
14(Toolbar moving s disabled for this option due to a bug in Qt somewhere). 18(Toolbar moving s disabled for this option due to a bug in Qt somewhere).
15Added option to show one small filter-view-toolbar. 19Added option to show one small filter-view-toolbar.
16Added a print option to the desktop version: 20Added a print option to the desktop version:
17Now you can print out the view of the "Event Viewer". 21Now you can print out the view of the "Event Viewer".
18That means you can print all data of one particular event/todo. 22That means you can print all data of one particular event/todo.
19Added scaling options to printout of Event Viewer and What'sNext View. 23Added scaling options to printout of Event Viewer and What'sNext View.
20Fixed some problems in the month view in "week start sunday" mode. 24Fixed some problems in the month view in "week start sunday" mode.
21KA/Pi: 25KA/Pi:
22Added two more config options. 26Added two more config options.
23Fixed resizing problem of address request dialog when orientation was switched. 27Fixed resizing problem of address request dialog when orientation was switched.
24Cleaned up the menu structure. 28Cleaned up the menu structure.
25Fixed some more problems. 29Fixed some more problems.
26 30
27Fixed the annoying problem that scrolling continued after the key was released in KO/Pi Monthview and the KA/Pi views. 31Fixed the annoying problem that scrolling continued after the key was released in KO/Pi Monthview and the KA/Pi views.
28 32
29And, this is a really cool option (Ben did suggest it): 33And, this is a really cool option (Ben did suggest it):
30Now KO/Pi and KA/Pi can be run from a USB stick: 34Now KO/Pi and KA/Pi can be run from a USB stick:
31All data is read from and written to the stick. 35All data is read from and written to the stick.
32You can enable this in the global configure option TAB with: 36You can enable this in the global configure option TAB with:
33Save using LOCAL storage. 37Save using LOCAL storage.
34Just put KDE-Pim/Pi on a memory stick and you can access all your PIM data on every computer with Windows XP. It will work with the ME and Linux versions as well. I will put a memory stick version for teh next stable release online. 38Just put KDE-Pim/Pi on a memory stick and you can access all your PIM data on every computer with Windows XP. It will work with the ME and Linux versions as well. I will put a memory stick version for teh next stable release online.
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp
index 92abae6..e57daa4 100644
--- a/korganizer/datenavigatorcontainer.cpp
+++ b/korganizer/datenavigatorcontainer.cpp
@@ -394,46 +394,50 @@ void DateNavigatorContainer::selectDates( const DateList &dateList )
394 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); 394 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
395 view->dayMatrix()->repaint( false ); 395 view->dayMatrix()->repaint( false );
396 } 396 }
397 } 397 }
398} 398}
399 399
400void DateNavigatorContainer::setBaseDates() 400void DateNavigatorContainer::setBaseDates()
401{ 401{
402 QDate baseDate = mNavigatorView->baseDate(); 402 QDate baseDate = mNavigatorView->baseDate();
403 bool doRepaint = true; 403 bool doRepaint = true;
404 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 404 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
405 KDateNavigator *n = mExtraViews.at( i ); 405 KDateNavigator *n = mExtraViews.at( i );
406 baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 ); 406 baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 );
407 n->setBaseDate( baseDate, doRepaint ); 407 n->setBaseDate( baseDate, doRepaint );
408 } 408 }
409} 409}
410void DateNavigatorContainer::setResizeEnabled() 410void DateNavigatorContainer::setResizeEnabled()
411{ 411{
412 mResizeEnabled = true; 412 mResizeEnabled = true;
413 //qDebug("DateNavigatorContainer::setResizeEnabled "); 413 //qDebug("DateNavigatorContainer::setResizeEnabled ");
414 checkUpdateDayMatrixDates(); 414 checkUpdateDayMatrixDates();
415} 415}
416void DateNavigatorContainer::resizeEvent( QResizeEvent * e ) 416void DateNavigatorContainer::resizeEvent( QResizeEvent * e )
417{ 417{
418 418
419 //qDebug("DateNavigatorContainer::resizeEvent %d %d ", width(), height()); 419 //qDebug("DateNavigatorContainer::resizeEvent %d %d ", width(), height());
420 //qDebug("COUNT %d ", mExtraViews.count()); 420 //qDebug("COUNT %d ", mExtraViews.count());
421 if ( ! mResizeEnabled ) { 421 if ( ! mResizeEnabled ) {
422 //qDebug("NOT ResizeEnabled"); 422 //qDebug("NOT ResizeEnabled");
423 return; 423 return;
424 } 424 }
425 else 425 else
426 mUpdateTimer->start( 250 ); 426#ifdef DESKTOP_VERSION
427 mUpdateTimer->start( 100 );
428#else
429 mUpdateTimer->start( 50 );
430#endif
427 431
428 //updateDayMatrixDates(); 432 //updateDayMatrixDates();
429} 433}
430 434
431QSize DateNavigatorContainer::minimumSizeHint() const 435QSize DateNavigatorContainer::minimumSizeHint() const
432{ 436{
433 return mNavigatorView->minimumSizeHint(); 437 return mNavigatorView->minimumSizeHint();
434} 438}
435 439
436QSize DateNavigatorContainer::sizeHint() const 440QSize DateNavigatorContainer::sizeHint() const
437{ 441{
438 return mNavigatorView->yourSizeHint(); 442 return mNavigatorView->yourSizeHint();
439} 443}
diff --git a/korganizer/kdatenavigator.cpp b/korganizer/kdatenavigator.cpp
index 1d09f40..5aa1c9b 100644
--- a/korganizer/kdatenavigator.cpp
+++ b/korganizer/kdatenavigator.cpp
@@ -61,65 +61,65 @@ KDateNavigator::KDateNavigator( QWidget *parent, const char *name )
61 mSelectedDates.append(startDate); 61 mSelectedDates.append(startDate);
62 m_MthYr = startDate; 62 m_MthYr = startDate;
63 m_bShowWeekNums = true; 63 m_bShowWeekNums = true;
64 setFont( KOPrefs::instance()->mDateNavigatorFont ); 64 setFont( KOPrefs::instance()->mDateNavigatorFont );
65 mNavigatorBar = new NavigatorBar( startDate, this ); 65 mNavigatorBar = new NavigatorBar( startDate, this );
66 topLayout->addMultiCellWidget( mNavigatorBar, 0, 0, 0, 7 ); 66 topLayout->addMultiCellWidget( mNavigatorBar, 0, 0, 0, 7 );
67 //mNavigatorBar->resize( 1,1); 67 //mNavigatorBar->resize( 1,1);
68 connect( mNavigatorBar, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) ); 68 connect( mNavigatorBar, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) );
69 connect( mNavigatorBar, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) ); 69 connect( mNavigatorBar, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) );
70 connect( mNavigatorBar, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) ); 70 connect( mNavigatorBar, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) );
71 connect( mNavigatorBar, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) ); 71 connect( mNavigatorBar, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) );
72 connect( mNavigatorBar, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) ); 72 connect( mNavigatorBar, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) );
73 73
74 // get the day of the week on the first day 74 // get the day of the week on the first day
75 QDate dayone(m_MthYr.year(), m_MthYr.month(), 1); 75 QDate dayone(m_MthYr.year(), m_MthYr.month(), 1);
76 m_fstDayOfWk = dayone.dayOfWeek(); 76 m_fstDayOfWk = dayone.dayOfWeek();
77 77
78 int i; 78 int i;
79 79
80 // Set up the heading fields. 80 // Set up the heading fields.
81 for( i = 0; i < 7; i++ ) { 81 for( i = 0; i < 7; i++ ) {
82 headings[i] = new QLabel("",this); 82 headings[i] = new QLabel("",this);
83 //headings[i]->setFont(QFont("Arial", 10, QFont::Bold)); 83 //headings[i]->setFont(QFont("Arial", 10, QFont::Bold));
84 headings[i]->setAlignment(AlignCenter); 84 headings[i]->setAlignment(AlignCenter);
85 headings[i]->installEventFilter(this); 85 headings[i]->installEventFilter(this);
86 86
87 topLayout->addWidget(headings[i],1,i+1); 87 topLayout->addWidget(headings[i],1,i+1);
88 } 88 }
89 89
90 // Create the weeknumber labels 90 // Create the weeknumber labels
91 for( i = 0; i < 6; i++ ) { 91 for( i = 0; i < 6; i++ ) {
92 weeknos[i] = new QLabel(this); 92 weeknos[i] = new QLabel(this);
93 weeknos[i]->setAlignment(AlignCenter); 93 weeknos[i]->setAlignment(AlignCenter );
94 //weeknos[i]->setFont(QFont("Arial", 10)); 94 //weeknos[i]->setFont(QFont("Arial", 10));
95 if(!m_bShowWeekNums) { 95 if(!m_bShowWeekNums) {
96 weeknos[i]->hide(); 96 weeknos[i]->hide();
97 } 97 }
98 weeknos[i]->installEventFilter(this); 98 weeknos[i]->installEventFilter(this);
99 99
100 topLayout->addWidget(weeknos[i],i+2,0); 100 topLayout->addWidget(weeknos[i],i+2,0);
101 } 101 }
102 102
103 daymatrix = new KODayMatrix( this, "KDateNavigator::DayMatrix"); 103 daymatrix = new KODayMatrix( this, "KDateNavigator::DayMatrix");
104 daymatrix->setFrameStyle(QFrame::Panel|QFrame::Sunken); 104 daymatrix->setFrameStyle(QFrame::Panel|QFrame::Sunken);
105 daymatrix->setLineWidth(1); 105 daymatrix->setLineWidth(1);
106 106
107 connect( daymatrix, SIGNAL( selected( const KCal::DateList & ) ), 107 connect( daymatrix, SIGNAL( selected( const KCal::DateList & ) ),
108 SIGNAL( datesSelected( const KCal::DateList & ) ) ); 108 SIGNAL( datesSelected( const KCal::DateList & ) ) );
109 109
110 connect( daymatrix, SIGNAL( eventDropped( Event * ) ), 110 connect( daymatrix, SIGNAL( eventDropped( Event * ) ),
111 SIGNAL( eventDropped( Event * ) ) ); 111 SIGNAL( eventDropped( Event * ) ) );
112 112
113 topLayout->addMultiCellWidget(daymatrix,2,7,1,7); 113 topLayout->addMultiCellWidget(daymatrix,2,7,1,7);
114 114
115 // read settings from configuration file. 115 // read settings from configuration file.
116 updateConfig(); 116 updateConfig();
117 enableRollover(FollowMonth); 117 enableRollover(FollowMonth);
118 mySizeHint = sizeHintTwoButtons(); 118 mySizeHint = sizeHintTwoButtons();
119 myFullSizeHint = sizeHintTwoButtons( 4 ); 119 myFullSizeHint = sizeHintTwoButtons( 4 );
120 mFontChanged = false; 120 mFontChanged = false;
121 //resize ( 3,3 ); 121 //resize ( 3,3 );
122 122
123} 123}
124void KDateNavigator::changeFont ( QFont fo ) 124void KDateNavigator::changeFont ( QFont fo )
125{ 125{
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 8affe50..c7e1b45 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -80,73 +80,76 @@ void DynamicTip::maybeTip( const QPoint &pos )
80 QRect sz = matrix->frameRect(); 80 QRect sz = matrix->frameRect();
81 int dheight = sz.height()*7 / 42; 81 int dheight = sz.height()*7 / 42;
82 int dwidth = sz.width() / 7; 82 int dwidth = sz.width() / 7;
83 int row = pos.y()/dheight; 83 int row = pos.y()/dheight;
84 int col = pos.x()/dwidth; 84 int col = pos.x()/dwidth;
85 85
86 QRect rct(col*dwidth, row*dheight, dwidth, dheight); 86 QRect rct(col*dwidth, row*dheight, dwidth, dheight);
87 87
88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" << 88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" <<
89// col << "][" << row << "] => " <<(col+row*7) << endl; 89// col << "][" << row << "] => " <<(col+row*7) << endl;
90 90
91 //show holiday names only 91 //show holiday names only
92 QString str = matrix->getHolidayLabel(col+row*7); 92 QString str = matrix->getHolidayLabel(col+row*7);
93 if (str.isEmpty()) return; 93 if (str.isEmpty()) return;
94 tip(rct, str); 94 tip(rct, str);
95} 95}
96 96
97 97
98// ============================================================================ 98// ============================================================================
99// K O D A Y M A T R I X 99// K O D A Y M A T R I X
100// ============================================================================ 100// ============================================================================
101 101
102const int KODayMatrix::NOSELECTION = -1000; 102const int KODayMatrix::NOSELECTION = -1000;
103const int KODayMatrix::NUMDAYS = 42; 103const int KODayMatrix::NUMDAYS = 42;
104 104
105KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) 105KODayMatrix::KODayMatrix( QWidget *parent, const char *name )
106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 ) 106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 )
107 107
108#if 0 108#if 0
109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : 109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) :
110 QFrame(parent, name) 110 QFrame(parent, name)
111#endif 111#endif
112{ 112{
113 oldW = 0;
114 oldH = 0;
115 myPix.resize( 150, 120 );
113 mRedrawNeeded = true; 116 mRedrawNeeded = true;
114 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
115 mPendingUpdateBeforeRepaint = false; 118 mPendingUpdateBeforeRepaint = false;
116 mouseDown = false; 119 mouseDown = false;
117 // initialize dynamic arrays 120 // initialize dynamic arrays
118 bDays.resize ( NUMDAYS ); 121 bDays.resize ( NUMDAYS );
119 hDays.resize ( NUMDAYS );; 122 hDays.resize ( NUMDAYS );
120 eDays.resize ( NUMDAYS );; 123 eDays.resize ( NUMDAYS );
121 days = new QDate[NUMDAYS]; 124 days = new QDate[NUMDAYS];
122 daylbls = new QString[NUMDAYS]; 125 daylbls = new QString[NUMDAYS];
123 //events = new int[NUMDAYS]; 126 //events = new int[NUMDAYS];
124 mToolTip = new DynamicTip(this); 127 mToolTip = new DynamicTip(this);
125 128
126 // set default values used for drawing the matrix 129 // set default values used for drawing the matrix
127 mDefaultBackColor = palette().active().base(); 130 mDefaultBackColor = palette().active().base();
128 mDefaultTextColor = palette().active().foreground(); 131 mDefaultTextColor = palette().active().foreground();
129 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 132 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
130 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor); 133 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor);
131 mSelectedDaysColor = QColor("white"); 134 mSelectedDaysColor = QColor("white");
132 mTodayMarginWidth = 2; 135 mTodayMarginWidth = 2;
133 mSelEnd = mSelStart = NOSELECTION; 136 mSelEnd = mSelStart = NOSELECTION;
134 137
135 setAcceptDrops(true); 138 setAcceptDrops(true);
136 //setFont( QFont("Arial", 10) ); 139 //setFont( QFont("Arial", 10) );
137 140
138 mUpdateTimer = new QTimer( this ); 141 mUpdateTimer = new QTimer( this );
139 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); 142 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() ));
140 mRepaintTimer = new QTimer( this ); 143 mRepaintTimer = new QTimer( this );
141 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); 144 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() ));
142 mDayChanged = false; 145 mDayChanged = false;
143 updateView(); 146 updateView();
144} 147}
145QString KODayMatrix::getWhatsThisText( QPoint p ) 148QString KODayMatrix::getWhatsThisText( QPoint p )
146{ 149{
147 150
148 int tmp = getDayIndexFrom(p.x(), p.y()); 151 int tmp = getDayIndexFrom(p.x(), p.y());
149 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar ) 152 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar )
150 return QString(); 153 return QString();
151 QDate mDate = days[tmp]; 154 QDate mDate = days[tmp];
152 QPtrList<Event> eventlist = mCalendar->events(mDate); 155 QPtrList<Event> eventlist = mCalendar->events(mDate);
@@ -305,65 +308,69 @@ bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
305 308
306 return true; 309 return true;
307} 310}
308void KODayMatrix::clearSelection() 311void KODayMatrix::clearSelection()
309{ 312{
310 mSelEnd = mSelStart = NOSELECTION; 313 mSelEnd = mSelStart = NOSELECTION;
311} 314}
312 315
313 316
314void KODayMatrix::recalculateToday() 317void KODayMatrix::recalculateToday()
315{ 318{
316 today = -1; 319 today = -1;
317 for (int i=0; i<NUMDAYS; i++) { 320 for (int i=0; i<NUMDAYS; i++) {
318 //events[i] = 0; 321 //events[i] = 0;
319 days[i] = startdate.addDays(i); 322 days[i] = startdate.addDays(i);
320 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 323 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
321 324
322 // if today is in the currently displayed month, hilight today 325 // if today is in the currently displayed month, hilight today
323 if (days[i].year() == QDate::currentDate().year() && 326 if (days[i].year() == QDate::currentDate().year() &&
324 days[i].month() == QDate::currentDate().month() && 327 days[i].month() == QDate::currentDate().month() &&
325 days[i].day() == QDate::currentDate().day()) { 328 days[i].day() == QDate::currentDate().day()) {
326 today = i; 329 today = i;
327 } 330 }
328 } 331 }
329 // qDebug(QString("Today is visible at %1.").arg(today)); 332 // qDebug(QString("Today is visible at %1.").arg(today));
330} 333}
331 334
332void KODayMatrix::updateView() 335void KODayMatrix::updateView()
333{ 336{
334 updateView(startdate); 337 updateView(startdate);
335} 338}
336void KODayMatrix::repaintViewTimed() 339void KODayMatrix::repaintViewTimed()
337{ 340{
341 mRedrawNeeded = true;
342 bDays.fill( false);
343 hDays.fill( false);
344 eDays.fill( false);
338 mRepaintTimer->stop(); 345 mRepaintTimer->stop();
339 repaint(false); 346 repaint(false);
340} 347}
341void KODayMatrix::updateViewTimed() 348void KODayMatrix::updateViewTimed()
342{ 349{
343 mUpdateTimer->stop(); 350 mUpdateTimer->stop();
344 if ( !mCalendar ) { 351 if ( !mCalendar ) {
345 qDebug("NOT CAL "); 352 qDebug("NOT CAL ");
346 return; 353 return;
347 } 354 }
348 //qDebug("KODayMatrix::updateViewTimed "); 355 //qDebug("KODayMatrix::updateViewTimed ");
349 for(int i = 0; i < NUMDAYS; i++) { 356 for(int i = 0; i < NUMDAYS; i++) {
350 // if events are set for the day then remember to draw it bold 357 // if events are set for the day then remember to draw it bold
351 QPtrList<Event> eventlist = mCalendar->events(days[i]); 358 QPtrList<Event> eventlist = mCalendar->events(days[i]);
352 Event *event; 359 Event *event;
353 int numEvents = eventlist.count(); 360 int numEvents = eventlist.count();
354 QString holiStr = ""; 361 QString holiStr = "";
355 bDays.clearBit(i); 362 bDays.clearBit(i);
356 hDays.clearBit(i); 363 hDays.clearBit(i);
357 eDays.clearBit(i); 364 eDays.clearBit(i);
358 for(event=eventlist.first();event != 0;event=eventlist.next()) { 365 for(event=eventlist.first();event != 0;event=eventlist.next()) {
359 ushort recurType = event->recurrence()->doesRecur(); 366 ushort recurType = event->recurrence()->doesRecur();
360 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 367 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
361 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 368 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
362 numEvents--; 369 numEvents--;
363 } 370 }
364 if ( event->isHoliday()) { 371 if ( event->isHoliday()) {
365 hDays.setBit(i); 372 hDays.setBit(i);
366 if ( !holiStr.isEmpty() ) 373 if ( !holiStr.isEmpty() )
367 holiStr += "\n"; 374 holiStr += "\n";
368 holiStr += event->summary(); 375 holiStr += event->summary();
369 if ( !event->location().isEmpty() ) 376 if ( !event->location().isEmpty() )
@@ -654,69 +661,81 @@ void KODayMatrix::dropEvent(QDropEvent *e)
654 QDateTime end = event->dtEnd(); 661 QDateTime end = event->dtEnd();
655 int duration = start.daysTo(end); 662 int duration = start.daysTo(end);
656 int idx = getDayIndexFrom(e->pos().x(), e->pos().y()); 663 int idx = getDayIndexFrom(e->pos().x(), e->pos().y());
657 664
658 start.setDate(days[idx]); 665 start.setDate(days[idx]);
659 end.setDate(days[idx].addDays(duration)); 666 end.setDate(days[idx].addDays(duration));
660 667
661 event->setDtStart(start); 668 event->setDtStart(start);
662 event->setDtEnd(end); 669 event->setDtEnd(end);
663 mCalendar->addEvent(event); 670 mCalendar->addEvent(event);
664 671
665 emit eventDropped(event); 672 emit eventDropped(event);
666 } else { 673 } else {
667// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl; 674// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl;
668 e->ignore(); 675 e->ignore();
669 } 676 }
670#endif 677#endif
671} 678}
672 679
673// ---------------------------------------------------------------------------- 680// ----------------------------------------------------------------------------
674// P A I N T E V E N T H A N D L I N G 681// P A I N T E V E N T H A N D L I N G
675// ---------------------------------------------------------------------------- 682// ----------------------------------------------------------------------------
676 683
677void KODayMatrix::paintEvent(QPaintEvent * pevent) 684void KODayMatrix::paintEvent(QPaintEvent * pevent)
678{ 685{
679 686
680 if ( width() <= 0 || height() <= 0 ) 687 if ( width() <= 0 || height() <= 0 )
681 return; 688 return;
682 if ( mPendingUpdateBeforeRepaint ) { 689 if ( mPendingUpdateBeforeRepaint ) {
683 updateViewTimed(); 690 updateViewTimed();
684 mPendingUpdateBeforeRepaint = false; 691 mPendingUpdateBeforeRepaint = false;
685 } 692 }
693#if 0
686 if ( myPix.width() != width() || myPix.height()!=height() ) { 694 if ( myPix.width() != width() || myPix.height()!=height() ) {
687 myPix.resize(size() ); 695 myPix.resize(size() );
688 mRedrawNeeded = true; 696 mRedrawNeeded = true;
689 } 697 }
690 698#endif
699 if ( oldW != width() || oldH !=height() )
700 mRedrawNeeded = true;
701
702 oldH = height() ;
703 oldW = width();
704 if ( myPix.width() < width() || myPix.height() < height() ) {
705 myPix.resize(size() );
706 mRedrawNeeded = true;
707
708 }
709
691 if ( mRedrawNeeded ) { 710 if ( mRedrawNeeded ) {
692 //qDebug("REDRAW "); 711 //qDebug("REDRAW ");
693 QPainter p(&myPix); 712 QPainter p(&myPix);
694 p.setFont(font()); 713 p.setFont(font());
695 714
696 715
697 int dheight = daysize.height(); 716 int dheight = daysize.height();
698 int dwidth = daysize.width(); 717 int dwidth = daysize.width();
699 int row,col; 718 int row,col;
700 int selw, selh; 719 int selw, selh;
701 int xyOff = frameWidth(); 720 int xyOff = frameWidth();
702 int colModulo = (width()-2) % 7; 721 int colModulo = (width()-2) % 7;
703 int rowModulo = (height()-2) % 6; 722 int rowModulo = (height()-2) % 6;
704 //qDebug("col %d row %d ",colModulo,rowModulo ); 723 //qDebug("col %d row %d ",colModulo,rowModulo );
705 724
706 bool isRTL = KOGlobals::self()->reverseLayout(); 725 bool isRTL = KOGlobals::self()->reverseLayout();
707 726
708 // draw background and topleft frame 727 // draw background and topleft frame
709 p.fillRect(0,0,width(),height(), mDefaultBackColor); 728 p.fillRect(0,0,width(),height(), mDefaultBackColor);
710 p.setPen(mDefaultTextColor); 729 p.setPen(mDefaultTextColor);
711 p.drawRect(0, 0, width(), height()); 730 p.drawRect(0, 0, width(), height());
712 int mSelStartT = mSelStart; 731 int mSelStartT = mSelStart;
713 int mSelEndT = mSelEnd; 732 int mSelEndT = mSelEnd;
714 if ( mSelEndT >= NUMDAYS ) 733 if ( mSelEndT >= NUMDAYS )
715 mSelEndT = NUMDAYS-1; 734 mSelEndT = NUMDAYS-1;
716 // draw selected days with highlighted background color 735 // draw selected days with highlighted background color
717 if (mSelStart != NOSELECTION) { 736 if (mSelStart != NOSELECTION) {
718 bool skip = false; 737 bool skip = false;
719 if ( ! mouseDown ) { 738 if ( ! mouseDown ) {
720 int mo = days[20].month(); 739 int mo = days[20].month();
721 //qDebug("-- %d %d ", mSelStartT, mSelEndT); 740 //qDebug("-- %d %d ", mSelStartT, mSelEndT);
722 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); 741 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() );
@@ -918,57 +937,58 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
918 937
919 int addCol = 0; 938 int addCol = 0;
920 int addRow = 0; 939 int addRow = 0;
921 if ( colModulo ) { 940 if ( colModulo ) {
922 if ( col >= 7 - colModulo ) 941 if ( col >= 7 - colModulo )
923 addCol = col - 7 + colModulo; 942 addCol = col - 7 + colModulo;
924 } 943 }
925 if ( rowModulo ) { 944 if ( rowModulo ) {
926 if ( row >= 6 - rowModulo ) 945 if ( row >= 6 - rowModulo )
927 addRow = row - 5 + rowModulo; 946 addRow = row - 5 + rowModulo;
928 } 947 }
929 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow); 948 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
930 ++addCol;//++addCol; 949 ++addCol;//++addCol;
931 if ( row == 0) 950 if ( row == 0)
932 addRow = 1; 951 addRow = 1;
933 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight, 952 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
934 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]); 953 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
935 954
936 // reset color to actual color 955 // reset color to actual color
937 if (!mHolidays[i].isNull()) { 956 if (!mHolidays[i].isNull()) {
938 p.setPen(actcol); 957 p.setPen(actcol);
939 } 958 }
940 // reset bold font to plain font 959 // reset bold font to plain font
941 if ( eDays.testBit(i)) { 960 if ( eDays.testBit(i)) {
942 QFont myFont = font(); 961 QFont myFont = font();
943 myFont.setBold(false); 962 myFont.setBold(false);
944 p.setFont(myFont); 963 p.setFont(myFont);
945 } 964 }
946 } 965 }
947 } else { 966 } else {
948 //qDebug("NO redraw "); 967 //qDebug("NO redraw ");
949 } 968 }
950 bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP); 969
970 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP);
951 mRedrawNeeded = false; 971 mRedrawNeeded = false;
952} 972}
953 973
954// ---------------------------------------------------------------------------- 974// ----------------------------------------------------------------------------
955// R E SI Z E E V E N T H A N D L I N G 975// R E SI Z E E V E N T H A N D L I N G
956// ---------------------------------------------------------------------------- 976// ----------------------------------------------------------------------------
957 977
958void KODayMatrix::resizeEvent(QResizeEvent *) 978void KODayMatrix::resizeEvent(QResizeEvent *)
959{ 979{
960 QRect sz = frameRect(); 980 QRect sz = frameRect();
961 daysize.setHeight(sz.height()*7 / NUMDAYS); 981 daysize.setHeight(sz.height()*7 / NUMDAYS);
962 daysize.setWidth(sz.width() / 7); 982 daysize.setWidth(sz.width() / 7);
963} 983}
964 984
965QSize KODayMatrix::sizeHint() const 985QSize KODayMatrix::sizeHint() const
966{ 986{
967 987
968 QFontMetrics fm ( font() ); 988 QFontMetrics fm ( font() );
969 int wid = fm.width( "30") *7+3; 989 int wid = fm.width( "30") *7+3;
970 int hei = fm.height() * 6+3; 990 int hei = fm.height() * 6+3;
971 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei); 991 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei);
972 return QSize ( wid, hei ); 992 return QSize ( wid, hei );
973 993
974} 994}
diff --git a/korganizer/kodaymatrix.h b/korganizer/kodaymatrix.h
index 731117c..d725ead 100644
--- a/korganizer/kodaymatrix.h
+++ b/korganizer/kodaymatrix.h
@@ -198,64 +198,65 @@ signals:
198 * 198 *
199 * @param daylist list of days that have been selected by the user 199 * @param daylist list of days that have been selected by the user
200 */ 200 */
201 void selected( const KCal::DateList &daylist ); 201 void selected( const KCal::DateList &daylist );
202 202
203 /** emitted if the user has dropped an event inside the matrix 203 /** emitted if the user has dropped an event inside the matrix
204 * 204 *
205 * @param event the dropped calendar event 205 * @param event the dropped calendar event
206 */ 206 */
207 void eventDropped(Event *event); 207 void eventDropped(Event *event);
208 208
209protected: 209protected:
210 210
211 void paintEvent(QPaintEvent *ev); 211 void paintEvent(QPaintEvent *ev);
212 212
213 void mousePressEvent (QMouseEvent* e); 213 void mousePressEvent (QMouseEvent* e);
214 214
215 void mouseReleaseEvent (QMouseEvent* e); 215 void mouseReleaseEvent (QMouseEvent* e);
216 216
217 void mouseMoveEvent (QMouseEvent* e); 217 void mouseMoveEvent (QMouseEvent* e);
218 218
219 void dragEnterEvent(QDragEnterEvent *); 219 void dragEnterEvent(QDragEnterEvent *);
220 220
221 void dragMoveEvent(QDragMoveEvent *); 221 void dragMoveEvent(QDragMoveEvent *);
222 222
223 void dragLeaveEvent(QDragLeaveEvent *); 223 void dragLeaveEvent(QDragLeaveEvent *);
224 224
225 void dropEvent(QDropEvent *); 225 void dropEvent(QDropEvent *);
226 226
227 void resizeEvent(QResizeEvent *); 227 void resizeEvent(QResizeEvent *);
228 228
229private: 229private:
230 int oldW, oldH;
230 bool mRedrawNeeded; 231 bool mRedrawNeeded;
231 KODaymatrixWhatsThis* mKODaymatrixWhatsThis; 232 KODaymatrixWhatsThis* mKODaymatrixWhatsThis;
232 bool mouseDown; 233 bool mouseDown;
233 QBitArray bDays; 234 QBitArray bDays;
234 QBitArray hDays; 235 QBitArray hDays;
235 QBitArray eDays; 236 QBitArray eDays;
236 QPixmap myPix; 237 QPixmap myPix;
237 QTimer* mUpdateTimer; 238 QTimer* mUpdateTimer;
238 QTimer* mRepaintTimer; 239 QTimer* mRepaintTimer;
239 bool mDayChanged; 240 bool mDayChanged;
240 bool mPendingUpdateBeforeRepaint; 241 bool mPendingUpdateBeforeRepaint;
241 242
242 /** returns the index of the day located at the matrix's widget (x,y) position. 243 /** returns the index of the day located at the matrix's widget (x,y) position.
243 * 244 *
244 * @param x horizontal coordinate 245 * @param x horizontal coordinate
245 * @param y vertical coordinate 246 * @param y vertical coordinate
246 */ 247 */
247 int getDayIndexFrom(int x, int y); 248 int getDayIndexFrom(int x, int y);
248 249
249 /** calculates a "shaded" color from the supplied color object. 250 /** calculates a "shaded" color from the supplied color object.
250 * (Copied from Cornelius's kdpdatebutton.cpp) 251 * (Copied from Cornelius's kdpdatebutton.cpp)
251 * 252 *
252 * @param color source based on which a shaded color should be calculated. 253 * @param color source based on which a shaded color should be calculated.
253 */ 254 */
254 QColor getShadedColor(QColor color); 255 QColor getShadedColor(QColor color);
255 256
256 /** number of days to be displayed. For now there is no support for any other number then 42. 257 /** number of days to be displayed. For now there is no support for any other number then 42.
257 so change it at your own risk :o) */ 258 so change it at your own risk :o) */
258 static const int NUMDAYS; 259 static const int NUMDAYS;
259 260
260 /** calendar instance to be queried for holidays, events, ... */ 261 /** calendar instance to be queried for holidays, events, ... */
261 Calendar *mCalendar; 262 Calendar *mCalendar;