summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kdatenavigator.cpp4
-rw-r--r--korganizer/kdatenavigator.h2
-rw-r--r--korganizer/kodaymatrix.cpp8
3 files changed, 9 insertions, 5 deletions
diff --git a/korganizer/kdatenavigator.cpp b/korganizer/kdatenavigator.cpp
index 4b50b5a..2321acb 100644
--- a/korganizer/kdatenavigator.cpp
+++ b/korganizer/kdatenavigator.cpp
@@ -79,194 +79,194 @@ KDateNavigator::KDateNavigator( QWidget *parent, const char *name )
79 int i; 79 int i;
80 80
81 // Set up the heading fields. 81 // Set up the heading fields.
82 for( i = 0; i < 7; i++ ) { 82 for( i = 0; i < 7; i++ ) {
83 headings[i] = new QLabel("",this); 83 headings[i] = new QLabel("",this);
84 //headings[i]->setFont(QFont("Arial", 10, QFont::Bold)); 84 //headings[i]->setFont(QFont("Arial", 10, QFont::Bold));
85 headings[i]->setAlignment(AlignCenter); 85 headings[i]->setAlignment(AlignCenter);
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 mFontChanged = false; 119 mFontChanged = false;
120} 120}
121void KDateNavigator::changeFont ( QFont fo ) 121void KDateNavigator::changeFont ( QFont fo )
122{ 122{
123 setFont( fo ); 123 setFont( fo );
124 mNavigatorBar->resetFont( fo ); 124 mNavigatorBar->resetFont( fo );
125} 125}
126QFont KDateNavigator::yourFontHint( QSize si , bool *b) 126QFont KDateNavigator::yourFontHint( QSize si , bool *b)
127{ 127{
128 QFont fo = KOPrefs::instance()->mDateNavigatorFont; 128 QFont fo = KOPrefs::instance()->mDateNavigatorFont;
129 *b = false; 129 *b = false;
130 int fontPoint = fo.pointSize(); 130 int fontPoint = fo.pointSize();
131 while ( fontPoint > 5 ) { 131 while ( fontPoint > 5 ) {
132 --fontPoint; 132 --fontPoint;
133 fo.setPointSize( fontPoint ); 133 fo.setPointSize( fontPoint );
134 setFont( fo ); 134 setFont( fo );
135 mFontChanged = true; 135 mFontChanged = true;
136 mNavigatorBar->resetFont( fo ); 136 mNavigatorBar->resetFont( fo );
137 QSize sh = sizeHintTwoButtons(); 137 QSize sh = sizeHintTwoButtons();
138 //qDebug("fp %d %d %d %d %d", fontPoint, si.width() , sh.width() , si.height() , sh.height() ); 138 //qDebug("fp %d %d %d %d %d", fontPoint, si.width() , sh.width() , si.height() , sh.height() );
139 if ( si.width() > sh.width() && si.height() > sh.height()) { 139 if ( si.width() > sh.width() && si.height() > sh.height()) {
140 *b = true; 140 *b = true;
141 //qDebug("fooooooooooooooooooooooouuuuund "); 141 //qDebug("fooooooooooooooooooooooouuuuund ");
142 break; 142 break;
143 } 143 }
144 } 144 }
145 //qDebug("returnnnnnnnnnnnnnnnnnnn %d", fo.pointSize() ); 145 //qDebug("returnnnnnnnnnnnnnnnnnnn %d", fo.pointSize() );
146 return fo; 146 return fo;
147} 147}
148QSize KDateNavigator::sizeHint() const 148QSize KDateNavigator::sizeHint() const
149{ 149{
150 QFontMetrics fm ( font() ); 150 QFontMetrics fm ( font() );
151 QSize day = daymatrix->sizeHint(); 151 QSize day = daymatrix->sizeHint();
152 QSize nav = mNavigatorBar->sizeHint(); 152 QSize nav = mNavigatorBar->sizeHint();
153 int wid = fm.width( "30") + day.width()+3; 153 int wid = fm.width( "30") + day.width()+3;
154 int hei = fm.height() +day.height()+nav.height()+2; 154 int hei = fm.height() +day.height()+nav.height()+2;
155 if ( wid < nav.width() ) 155 if ( wid < nav.width() )
156 wid = nav.width() ; 156 wid = nav.width() ;
157 //qDebug("KDateNavigator+++++++++++++ %d %d", wid , hei); 157 //qDebug("KDateNavigator+++++++++++++ %d %d", wid , hei);
158 return QSize ( wid, hei ); 158 return QSize ( wid, hei );
159} 159}
160QSize KDateNavigator::sizeHintTwoButtons() const 160QSize KDateNavigator::sizeHintTwoButtons() const
161{ 161{
162 QFontMetrics fm ( font() ); 162 QFontMetrics fm ( font() );
163 QSize day = daymatrix->sizeHint(); 163 QSize day = daymatrix->sizeHint();
164 QSize nav = mNavigatorBar->sizeHintTwoButtons(); 164 QSize nav = mNavigatorBar->sizeHintTwoButtons();
165 int wid = fm.width( "30") + day.width()+3; 165 int wid = fm.width( "30") + day.width()+3;
166 int hei = fm.height() +day.height()+nav.height()+2; 166 int hei = fm.height() +day.height()+nav.height()+2;
167 if ( wid < nav.width() ) 167 if ( wid < nav.width() )
168 wid = nav.width() ; 168 wid = nav.width() ;
169 //qDebug("KDateNavigator+++++++++++++ %d %d", wid , hei); 169 //qDebug("KDateNavigator+++++++++++++ %d %d", wid , hei);
170 return QSize ( wid, hei ); 170 return QSize ( wid, hei );
171} 171}
172void KDateNavigator::slotMonthSelected( int m ) 172void KDateNavigator::slotMonthSelected( int m )
173{ 173{
174 if ( m_MthYr.month() <= mMonthSignalOffset) 174 if ( m_MthYr.month() <= mMonthSignalOffset)
175 m += 12; 175 m += 12;
176 int mo = m - mMonthSignalOffset; 176 //qDebug("%d mMonthSignalOffset %d emit %d", m, mMonthSignalOffset, m - mMonthSignalOffset);
177 emit monthSelected( m - mMonthSignalOffset ); 177 emit monthSelected( m - mMonthSignalOffset );
178 178
179} 179}
180void KDateNavigator::setCalendar( Calendar *cal ) 180void KDateNavigator::setCalendar( Calendar *cal )
181{ 181{
182 daymatrix->setCalendar( cal ); 182 daymatrix->setCalendar( cal );
183} 183}
184 184
185void KDateNavigator::setBaseDate( const QDate &date , bool doRepaint ) // = true 185void KDateNavigator::setBaseDate( const QDate &date , bool doRepaint ) // = true
186{ 186{
187 m_MthYr = date; 187 m_MthYr = date;
188 188
189 updateDates(); 189 updateDates();
190 updateView(); 190 updateView();
191 191
192 KCal::DateList dates; 192 KCal::DateList dates;
193 dates.append( date ); 193 dates.append( date );
194 mNavigatorBar->selectDates( dates ); 194 mNavigatorBar->selectDates( dates );
195 195
196 daymatrix->clearSelection(); 196 daymatrix->clearSelection();
197 if ( doRepaint ) 197 if ( doRepaint )
198 daymatrix->repaint(); 198 daymatrix->repaint();
199} 199}
200 200
201void KDateNavigator::enableRollover(RolloverType r) 201void KDateNavigator::enableRollover(RolloverType r)
202{ 202{
203 switch(r) 203 switch(r)
204 { 204 {
205 case None : 205 case None :
206 if (updateTimer) 206 if (updateTimer)
207 { 207 {
208 updateTimer->stop(); 208 updateTimer->stop();
209 delete updateTimer; 209 delete updateTimer;
210 updateTimer=0L; 210 updateTimer=0L;
211 } 211 }
212 break; 212 break;
213 case FollowDay : 213 case FollowDay :
214 case FollowMonth : 214 case FollowMonth :
215 if (!updateTimer) 215 if (!updateTimer)
216 { 216 {
217 updateTimer = new QTimer(this); 217 updateTimer = new QTimer(this);
218 QObject::connect(updateTimer,SIGNAL(timeout()), 218 QObject::connect(updateTimer,SIGNAL(timeout()),
219 this,SLOT(possiblyPastMidnight())); 219 this,SLOT(possiblyPastMidnight()));
220 } 220 }
221 updateTimer->start(0,true); 221 updateTimer->start(0,true);
222 lastDayChecked = QDate::currentDate(); 222 lastDayChecked = QDate::currentDate();
223 } 223 }
224 updateRollover=r; 224 updateRollover=r;
225} 225}
226 226
227 227
228KDateNavigator::~KDateNavigator() 228KDateNavigator::~KDateNavigator()
229{ 229{
230} 230}
231 231
232 232
233void KDateNavigator::passedMidnight() 233void KDateNavigator::passedMidnight()
234{ 234{
235 QDate today = QDate::currentDate(); 235 QDate today = QDate::currentDate();
236 bool emitMonth = false; 236 bool emitMonth = false;
237 237
238 if (today.month() != lastDayChecked.month()) 238 if (today.month() != lastDayChecked.month())
239 { 239 {
240 if (updateRollover==FollowMonth && 240 if (updateRollover==FollowMonth &&
241 daymatrix->isEndOfMonth()) { 241 daymatrix->isEndOfMonth()) {
242 goNextMonth(); 242 goNextMonth();
243 emitMonth=true; 243 emitMonth=true;
244 } 244 }
245 } 245 }
246 daymatrix->recalculateToday(); 246 daymatrix->recalculateToday();
247 daymatrix->repaint(); 247 daymatrix->repaint();
248 emit dayPassed(today); 248 emit dayPassed(today);
249 if (emitMonth) { emit monthPassed(today); } 249 if (emitMonth) { emit monthPassed(today); }
250} 250}
251 251
252/* slot */ void KDateNavigator::possiblyPastMidnight() 252/* slot */ void KDateNavigator::possiblyPastMidnight()
253{ 253{
254 if (lastDayChecked!=QDate::currentDate()) 254 if (lastDayChecked!=QDate::currentDate())
255 { 255 {
256 passedMidnight(); 256 passedMidnight();
257 lastDayChecked=QDate::currentDate(); 257 lastDayChecked=QDate::currentDate();
258 } 258 }
259 // Set the timer to go off 1 second after midnight 259 // Set the timer to go off 1 second after midnight
260 // or after 8 minutes, whichever comes first. 260 // or after 8 minutes, whichever comes first.
261 if (updateTimer) 261 if (updateTimer)
262 { 262 {
263 QTime now = QTime::currentTime(); 263 QTime now = QTime::currentTime();
264 QTime midnight = QTime(23,59,59); 264 QTime midnight = QTime(23,59,59);
265 int msecsWait = QMIN(480000,now.msecsTo(midnight)+2000); 265 int msecsWait = QMIN(480000,now.msecsTo(midnight)+2000);
266 266
267 // qDebug(QString("Waiting %1 msec from %2 to %3.").arg(msecsWait)) 267 // qDebug(QString("Waiting %1 msec from %2 to %3.").arg(msecsWait))
268 //.arg(now.toString()).arg(midnight.toString())); 268 //.arg(now.toString()).arg(midnight.toString()));
269 269
270 updateTimer->stop(); 270 updateTimer->stop();
271 updateTimer->start(msecsWait,true); 271 updateTimer->start(msecsWait,true);
272 } 272 }
diff --git a/korganizer/kdatenavigator.h b/korganizer/kdatenavigator.h
index d1f32b6..77b9b7c 100644
--- a/korganizer/kdatenavigator.h
+++ b/korganizer/kdatenavigator.h
@@ -1,161 +1,161 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef KDATENAVIGATOR_H 23#ifndef KDATENAVIGATOR_H
24#define KDATENAVIGATOR_H 24#define KDATENAVIGATOR_H
25 25
26#include <qframe.h> 26#include <qframe.h>
27#include <qdatetime.h> 27#include <qdatetime.h>
28#include <qlabel.h> 28#include <qlabel.h>
29 29
30#include <libkcal/calendar.h> 30#include <libkcal/calendar.h>
31 31
32#include "kodaymatrix.h" 32#include "kodaymatrix.h"
33 33
34class QPushButton; 34class QPushButton;
35class QTimer; 35class QTimer;
36 36
37class KCalendarSystem; 37class KCalendarSystem;
38 38
39class NavigatorBar; 39class NavigatorBar;
40 40
41class KDateNavigator: public QFrame 41class KDateNavigator: public QFrame
42{ 42{
43 Q_OBJECT 43 Q_OBJECT
44 public: 44 public:
45 KDateNavigator( QWidget *parent = 0,const char *name = 0 ); 45 KDateNavigator( QWidget *parent = 0,const char *name = 0 );
46 ~KDateNavigator(); 46 ~KDateNavigator();
47 47
48 /** The DateNavigator automatically checks for 48 /** The DateNavigator automatically checks for
49 * the passage of midnight. If rollover type is 49 * the passage of midnight. If rollover type is
50 * set to None, no signals are emitted and no 50 * set to None, no signals are emitted and no
51 * processing is done. With rollover set to 51 * processing is done. With rollover set to
52 * FollowDay, the day highlighter changes at 52 * FollowDay, the day highlighter changes at
53 * midnight and dayPassed() is emitted. 53 * midnight and dayPassed() is emitted.
54 * With FollowMonth, it has the same effect 54 * With FollowMonth, it has the same effect
55 * as FollowDay but also adjusts the month that is 55 * as FollowDay but also adjusts the month that is
56 * visible and emits monthPassed() when the month changes. 56 * visible and emits monthPassed() when the month changes.
57 */ 57 */
58 enum RolloverType { None, FollowDay, FollowMonth } ; 58 enum RolloverType { None, FollowDay, FollowMonth } ;
59 void enableRollover( RolloverType ); 59 void enableRollover( RolloverType );
60 60
61 void setShowWeekNums( bool enabled ); 61 void setShowWeekNums( bool enabled );
62 void setCalendar( Calendar * ); 62 void setCalendar( Calendar * );
63 void setBaseDate( const QDate & , bool doRepaint = true ); 63 void setBaseDate( const QDate & , bool doRepaint = true );
64 KCal::DateList selectedDates() const { return mSelectedDates; } 64 KCal::DateList selectedDates() const { return mSelectedDates; }
65 NavigatorBar *navigatorBar() const { return mNavigatorBar; } 65 NavigatorBar *navigatorBar() const { return mNavigatorBar; }
66 void setMonthSignalOffset ( int off ) { mMonthSignalOffset = off;} 66 void setMonthSignalOffset ( int off ) { mMonthSignalOffset = off%12;}
67 QSize yourSizeHint() { return mySizeHint; } 67 QSize yourSizeHint() { return mySizeHint; }
68 QFont yourFontHint( QSize , bool * b); 68 QFont yourFontHint( QSize , bool * b);
69 bool fontChanged() {return mFontChanged; } 69 bool fontChanged() {return mFontChanged; }
70 void unsetFontChanged() { mFontChanged = false; } 70 void unsetFontChanged() { mFontChanged = false; }
71 KODayMatrix *dayMatrix() { return daymatrix ;} 71 KODayMatrix *dayMatrix() { return daymatrix ;}
72 QSize sizeHint() const; 72 QSize sizeHint() const;
73 QSize sizeHintTwoButtons() const; 73 QSize sizeHintTwoButtons() const;
74 void changeFont ( QFont fo ); 74 void changeFont ( QFont fo );
75 public slots: 75 public slots:
76 void selectDates( const KCal::DateList & ); 76 void selectDates( const KCal::DateList & );
77 void updateView(); 77 void updateView();
78 void updateConfig(); 78 void updateConfig();
79 void updateDayMatrix(); 79 void updateDayMatrix();
80 80
81 signals: 81 signals:
82 void datesSelected( const KCal::DateList & ); 82 void datesSelected( const KCal::DateList & );
83 void eventDropped( Event * ); 83 void eventDropped( Event * );
84 void weekClicked( const QDate &); 84 void weekClicked( const QDate &);
85 85
86 void goPrevious(); 86 void goPrevious();
87 void goNext(); 87 void goNext();
88 88
89 void goNextMonth(); 89 void goNextMonth();
90 void goPrevMonth(); 90 void goPrevMonth();
91 void goNextYear(); 91 void goNextYear();
92 void goPrevYear(); 92 void goPrevYear();
93 void monthSelected( int ); 93 void monthSelected( int );
94 94
95 // Signals emitted at midnight carrying the new date. 95 // Signals emitted at midnight carrying the new date.
96 void dayPassed( QDate ); 96 void dayPassed( QDate );
97 void monthPassed( QDate ); 97 void monthPassed( QDate );
98 98
99 protected slots: 99 protected slots:
100 100
101 /** 101 /**
102 * Called regularly to see if we need to update the view 102 * Called regularly to see if we need to update the view
103 * wrt. the today box and the month box. Only important 103 * wrt. the today box and the month box. Only important
104 * if you leave KOrganizer idle for long periods of time. 104 * if you leave KOrganizer idle for long periods of time.
105 * 105 *
106 * Until we have a reliable way of setting QTimers to go 106 * Until we have a reliable way of setting QTimers to go
107 * off at a particular wall-clock time, we need this, 107 * off at a particular wall-clock time, we need this,
108 * which calls passedMidnight() at the right moments. 108 * which calls passedMidnight() at the right moments.
109 */ 109 */
110 void possiblyPastMidnight(); 110 void possiblyPastMidnight();
111 111
112 /** handles updating the view when midnight has come by due to idle time. 112 /** handles updating the view when midnight has come by due to idle time.
113 * 113 *
114 */ 114 */
115 void passedMidnight(); 115 void passedMidnight();
116 void slotMonthSelected( int m ); 116 void slotMonthSelected( int m );
117 protected: 117 protected:
118 void updateDates(); 118 void updateDates();
119 119
120 void wheelEvent (QWheelEvent *); 120 void wheelEvent (QWheelEvent *);
121 121
122 bool eventFilter (QObject *,QEvent *); 122 bool eventFilter (QObject *,QEvent *);
123 123
124 private: 124 private:
125 QSize mySizeHint; 125 QSize mySizeHint;
126 bool mFontChanged; 126 bool mFontChanged;
127 int mMonthSignalOffset; 127 int mMonthSignalOffset;
128 NavigatorBar *mNavigatorBar; 128 NavigatorBar *mNavigatorBar;
129 129
130 QFrame *headingSep; 130 QFrame *headingSep;
131 QFrame *weeknumSep; 131 QFrame *weeknumSep;
132 QLabel *headings[7]; 132 QLabel *headings[7];
133 QLabel *weeknos[7]; 133 QLabel *weeknos[7];
134 KODayMatrix *daymatrix; 134 KODayMatrix *daymatrix;
135 135
136 KCal::DateList mSelectedDates; 136 KCal::DateList mSelectedDates;
137 QDate m_MthYr; 137 QDate m_MthYr;
138 int m_fstDayOfWk; 138 int m_fstDayOfWk;
139 bool m_bShowWeekNums; 139 bool m_bShowWeekNums;
140 140
141 int dayNum(int row, int col); 141 int dayNum(int row, int col);
142 int dayToIndex(int dayNum); 142 int dayToIndex(int dayNum);
143 143
144 Calendar *mCalendar; 144 Calendar *mCalendar;
145 KCalendarSystem *mCalendarSystem; 145 KCalendarSystem *mCalendarSystem;
146 146
147 const QString *curHeaders; 147 const QString *curHeaders;
148 148
149 /** used to update the day view periodically, in particular every 149 /** used to update the day view periodically, in particular every
150 * midnight to move the "today" rectangle. 150 * midnight to move the "today" rectangle.
151 */ 151 */
152 QTimer *updateTimer; 152 QTimer *updateTimer;
153 QDate lastDayChecked; 153 QDate lastDayChecked;
154 RolloverType updateRollover; 154 RolloverType updateRollover;
155 155
156 // Disabling copy constructor and assignment operator 156 // Disabling copy constructor and assignment operator
157 KDateNavigator(const KDateNavigator & ); 157 KDateNavigator(const KDateNavigator & );
158 KDateNavigator &operator=(const KDateNavigator &); 158 KDateNavigator &operator=(const KDateNavigator &);
159}; 159};
160 160
161#endif 161#endif
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 9baff20..493382d 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -318,194 +318,194 @@ void KODayMatrix::recalculateToday()
318 318
319void KODayMatrix::updateView() 319void KODayMatrix::updateView()
320{ 320{
321 updateView(startdate); 321 updateView(startdate);
322} 322}
323void KODayMatrix::repaintViewTimed() 323void KODayMatrix::repaintViewTimed()
324{ 324{
325 mRepaintTimer->stop(); 325 mRepaintTimer->stop();
326 repaint(false); 326 repaint(false);
327} 327}
328void KODayMatrix::updateViewTimed() 328void KODayMatrix::updateViewTimed()
329{ 329{
330 mUpdateTimer->stop(); 330 mUpdateTimer->stop();
331 if ( !mCalendar ) { 331 if ( !mCalendar ) {
332 qDebug("NOT CAL "); 332 qDebug("NOT CAL ");
333 return; 333 return;
334 } 334 }
335 //qDebug("KODayMatrix::updateViewTimed "); 335 //qDebug("KODayMatrix::updateViewTimed ");
336 for(int i = 0; i < NUMDAYS; i++) { 336 for(int i = 0; i < NUMDAYS; i++) {
337 // if events are set for the day then remember to draw it bold 337 // if events are set for the day then remember to draw it bold
338 QPtrList<Event> eventlist = mCalendar->events(days[i]); 338 QPtrList<Event> eventlist = mCalendar->events(days[i]);
339 Event *event; 339 Event *event;
340 int numEvents = eventlist.count(); 340 int numEvents = eventlist.count();
341 QString holiStr = ""; 341 QString holiStr = "";
342 bDays.clearBit(i); 342 bDays.clearBit(i);
343 for(event=eventlist.first();event != 0;event=eventlist.next()) { 343 for(event=eventlist.first();event != 0;event=eventlist.next()) {
344 ushort recurType = event->recurrence()->doesRecur(); 344 ushort recurType = event->recurrence()->doesRecur();
345 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 345 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
346 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 346 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
347 numEvents--; 347 numEvents--;
348 } 348 }
349 if ( event->categories().contains( i18n("Holiday") ) || event->categories().contains( "Holiday" )) { 349 if ( event->categories().contains( i18n("Holiday") ) || event->categories().contains( "Holiday" )) {
350 if ( !holiStr.isEmpty() ) 350 if ( !holiStr.isEmpty() )
351 holiStr += "\n"; 351 holiStr += "\n";
352 holiStr += event->summary(); 352 holiStr += event->summary();
353 if ( !event->location().isEmpty() ) 353 if ( !event->location().isEmpty() )
354 holiStr += " (" + event->location() + ")"; 354 holiStr += " (" + event->location() + ")";
355 } 355 }
356 if ( event->categories().contains( i18n("Birthday") ) || event->categories().contains( "Birthday" )) { 356 if ( event->categories().contains( i18n("Birthday") ) || event->categories().contains( "Birthday" )) {
357 if ( !holiStr.isEmpty() ) 357 if ( !holiStr.isEmpty() )
358 holiStr += "\n"; 358 holiStr += "\n";
359 holiStr += i18n("Birthday") + ": "+event->summary(); 359 holiStr += i18n("Birthday") + ": "+event->summary();
360 if ( !event->location().isEmpty() ) 360 if ( !event->location().isEmpty() )
361 holiStr += " (" + event->location() + ")"; 361 holiStr += " (" + event->location() + ")";
362 bDays.setBit(i); 362 bDays.setBit(i);
363 } 363 }
364 } 364 }
365 events[i] = numEvents; 365 events[i] = numEvents;
366 //if it is a holy day then draw it red. Sundays are consider holidays, too 366 //if it is a holy day then draw it red. Sundays are consider holidays, too
367 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) || 367 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) ||
368 !holiStr.isEmpty()) { 368 !holiStr.isEmpty()) {
369 mHolidays[i] = holiStr; 369 mHolidays[i] = holiStr;
370 } else { 370 } else {
371 mHolidays[i] = QString::null; 371 mHolidays[i] = QString::null;
372 } 372 }
373 } 373 }
374 if ( ! mPendingUpdateBeforeRepaint ) 374 if ( ! mPendingUpdateBeforeRepaint )
375 repaint(false); 375 repaint(false);
376} 376}
377void KODayMatrix::updateView(QDate actdate) 377void KODayMatrix::updateView(QDate actdate)
378{ 378{
379 379
380 if ( ! actdate.isValid() ) { 380 if ( ! actdate.isValid() ) {
381 //qDebug("date not valid "); 381 //qDebug("date not valid ");
382 return; 382 return;
383 } 383 }
384 mDayChanged = false; 384 mDayChanged = false;
385 //flag to indicate if the starting day of the matrix has changed by this call 385 //flag to indicate if the starting day of the matrix has changed by this call
386 //mDayChanged = false; 386 //mDayChanged = false;
387 // if a new startdate is to be set then apply Cornelius's calculation 387 // if a new startdate is to be set then apply Cornelius's calculation
388 // of the first day to be shown 388 // of the first day to be shown
389 if (actdate != startdate) { 389 if (actdate != startdate) {
390 // reset index of selection according to shift of starting date from startdate to actdate 390 // reset index of selection according to shift of starting date from startdate to actdate
391 if (mSelStart != NOSELECTION) { 391 if (mSelStart != NOSELECTION) {
392 int tmp = actdate.daysTo(startdate); 392 int tmp = actdate.daysTo(startdate);
393 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl; 393 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl;
394 // shift selection if new one would be visible at least partly ! 394 // shift selection if new one would be visible at least partly !
395 395
396 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) { 396 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) {
397 // nested if is required for next X display pushed from a different month - correction required 397 // nested if is required for next X display pushed from a different month - correction required
398 // otherwise, for month forward and backward, it must be avoided 398 // otherwise, for month forward and backward, it must be avoided
399 if( mSelStart > NUMDAYS || mSelStart < 0 ) 399 if( mSelStart > NUMDAYS || mSelStart < 0 )
400 mSelStart = mSelStart + tmp; 400 mSelStart = mSelStart + tmp;
401 if( mSelEnd > NUMDAYS || mSelEnd < 0 ) 401 if( mSelEnd > NUMDAYS || mSelEnd < 0 )
402 mSelEnd = mSelEnd + tmp; 402 mSelEnd = mSelEnd + tmp;
403 } 403 }
404 } 404 }
405 startdate = actdate; 405 startdate = actdate;
406 mDayChanged = true; 406 mDayChanged = true;
407 recalculateToday(); 407 recalculateToday();
408 } 408 }
409 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() ); 409 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() );
410 if ( !isVisible() ) { 410 if ( !isVisible() ) {
411 mPendingUpdateBeforeRepaint = true; 411 mPendingUpdateBeforeRepaint = true;
412 } else { 412 } else {
413#ifdef DESKTOP_VERSION 413#ifdef DESKTOP_VERSION
414 //mRepaintTimer->start( 150 ); 414 //mRepaintTimer->start( 100 );
415 mUpdateTimer->start( 150 ); 415 mUpdateTimer->start( 100 );
416#else 416#else
417 mRepaintTimer->start( 350 ); 417 mRepaintTimer->start( 350 );
418 mUpdateTimer->start( 1200 ); 418 mUpdateTimer->start( 1200 );
419#endif 419#endif
420 } 420 }
421} 421}
422void KODayMatrix::updateEvents() 422void KODayMatrix::updateEvents()
423{ 423{
424 if ( !mCalendar ) return; 424 if ( !mCalendar ) return;
425 425
426 for( int i = 0; i < NUMDAYS; i++ ) { 426 for( int i = 0; i < NUMDAYS; i++ ) {
427 // if events are set for the day then remember to draw it bold 427 // if events are set for the day then remember to draw it bold
428 QPtrList<Event> eventlist = mCalendar->events( days[ i ] ); 428 QPtrList<Event> eventlist = mCalendar->events( days[ i ] );
429 int numEvents = eventlist.count(); 429 int numEvents = eventlist.count();
430 Event *event; 430 Event *event;
431 for( event = eventlist.first(); event != 0;event=eventlist.next()) { 431 for( event = eventlist.first(); event != 0;event=eventlist.next()) {
432 ushort recurType = event->doesRecur(); 432 ushort recurType = event->doesRecur();
433 433
434 if ( ( recurType == Recurrence::rDaily && 434 if ( ( recurType == Recurrence::rDaily &&
435 !KOPrefs::instance()->mDailyRecur ) || 435 !KOPrefs::instance()->mDailyRecur ) ||
436 ( recurType == Recurrence::rWeekly && 436 ( recurType == Recurrence::rWeekly &&
437 !KOPrefs::instance()->mWeeklyRecur ) ) { 437 !KOPrefs::instance()->mWeeklyRecur ) ) {
438 numEvents--; 438 numEvents--;
439 } 439 }
440 } 440 }
441 events[ i ] = numEvents; 441 events[ i ] = numEvents;
442 } 442 }
443} 443}
444 444
445const QDate& KODayMatrix::getDate(int offset) 445const QDate& KODayMatrix::getDate(int offset)
446{ 446{
447 if (offset < 0 || offset > NUMDAYS-1) { 447 if (offset < 0 || offset > NUMDAYS-1) {
448 qDebug("Wrong offset2 %d", offset); 448 qDebug("Wrong offset2 %d", offset);
449 return days[0]; 449 return days[0];
450 } 450 }
451 return days[offset]; 451 return days[offset];
452} 452}
453 453
454QString KODayMatrix::getHolidayLabel(int offset) 454QString KODayMatrix::getHolidayLabel(int offset)
455{ 455{
456 if (offset < 0 || offset > NUMDAYS-1) { 456 if (offset < 0 || offset > NUMDAYS-1) {
457 qDebug("Wrong offset1 %d", offset); 457 qDebug("Wrong offset1 %d", offset);
458 return QString(); 458 return QString();
459 } 459 }
460 return mHolidays[offset]; 460 return mHolidays[offset];
461} 461}
462 462
463int KODayMatrix::getDayIndexFrom(int x, int y) 463int KODayMatrix::getDayIndexFrom(int x, int y)
464{ 464{
465 int colModulo = (width()-2) % 7; 465 int colModulo = (width()-2) % 7;
466 int rowModulo = (height()-2) % 6; 466 int rowModulo = (height()-2) % 6;
467#if 0 467#if 0
468 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 468 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
469 6 - x/daysize.width() : x/daysize.width()); 469 6 - x/daysize.width() : x/daysize.width());
470#endif 470#endif
471 int xVal = (x-colModulo/2-2)/daysize.width(); 471 int xVal = (x-colModulo/2-2)/daysize.width();
472 int yVal = (y-rowModulo/2-2)/daysize.height(); 472 int yVal = (y-rowModulo/2-2)/daysize.height();
473 473
474 474
475 return 7*(yVal) + xVal; 475 return 7*(yVal) + xVal;
476 476
477} 477}
478 478
479// ---------------------------------------------------------------------------- 479// ----------------------------------------------------------------------------
480// M O U S E E V E N T H A N D L I N G 480// M O U S E E V E N T H A N D L I N G
481// ---------------------------------------------------------------------------- 481// ----------------------------------------------------------------------------
482 482
483void KODayMatrix::mousePressEvent (QMouseEvent* e) 483void KODayMatrix::mousePressEvent (QMouseEvent* e)
484{ 484{
485 485
486 if ( e->button() == LeftButton ) 486 if ( e->button() == LeftButton )
487 mouseDown = true; 487 mouseDown = true;
488 mSelStart = getDayIndexFrom(e->x(), e->y()); 488 mSelStart = getDayIndexFrom(e->x(), e->y());
489 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 489 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
490 mSelInit = mSelStart; 490 mSelInit = mSelStart;
491 mSelEnd = mSelStart; 491 mSelEnd = mSelStart;
492 repaint(false); 492 repaint(false);
493} 493}
494 494
495void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 495void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
496{ 496{
497 if ( e->button() == LeftButton ) 497 if ( e->button() == LeftButton )
498 if ( ! mouseDown ) { 498 if ( ! mouseDown ) {
499 return; 499 return;
500 } 500 }
501 else 501 else
502 mouseDown = false; 502 mouseDown = false;
503 int tmp = getDayIndexFrom(e->x(), e->y()); 503 int tmp = getDayIndexFrom(e->x(), e->y());
504 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 504 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
505 505
506 if (mSelInit > tmp) { 506 if (mSelInit > tmp) {
507 mSelEnd = mSelInit; 507 mSelEnd = mSelInit;
508 if (tmp != mSelStart) { 508 if (tmp != mSelStart) {
509 mSelStart = tmp; 509 mSelStart = tmp;
510 repaint(false); 510 repaint(false);
511 } 511 }
@@ -742,178 +742,182 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
742 if ( row >= 6 - rowModulo ) 742 if ( row >= 6 - rowModulo )
743 addRow = row - 5 + rowModulo; 743 addRow = row - 5 + rowModulo;
744 } 744 }
745 if ( row == 0) 745 if ( row == 0)
746 addRow = 1; 746 addRow = 1;
747 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, (7-col)*dwidth+colModulo, 747 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, (7-col)*dwidth+colModulo,
748 dheight+1, selcol); 748 dheight+1, selcol);
749 // draw full block till last line 749 // draw full block till last line
750 selh = mSelEndT/7-row; 750 selh = mSelEndT/7-row;
751 addRow = 0; 751 addRow = 0;
752 if ( rowModulo ) { 752 if ( rowModulo ) {
753 if ( mSelEndT/7 >= 6 - rowModulo ) 753 if ( mSelEndT/7 >= 6 - rowModulo )
754 addRow = mSelEndT/7 - 5 + rowModulo; 754 addRow = mSelEndT/7 - 5 + rowModulo;
755 } 755 }
756 if (selh > 1) { 756 if (selh > 1) {
757 p.fillRect(1, (row+1)*dheight, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol); 757 p.fillRect(1, (row+1)*dheight, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol);
758 } 758 }
759 // draw last block from left to mSelEndT 759 // draw last block from left to mSelEndT
760 selw = mSelEndT-7*(mSelEndT/7)+1; 760 selw = mSelEndT-7*(mSelEndT/7)+1;
761 //qDebug("esl %d ",selw ); 761 //qDebug("esl %d ",selw );
762 int add = 0; 762 int add = 0;
763 if ( colModulo ) { 763 if ( colModulo ) {
764 add = 7 - colModulo; 764 add = 7 - colModulo;
765 if ( selw > add ) 765 if ( selw > add )
766 add = selw - add; 766 add = selw - add;
767 else 767 else
768 add = 0; 768 add = 0;
769 } 769 }
770 //qDebug("add %d ", add); 770 //qDebug("add %d ", add);
771 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow, 771 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow,
772 selw*dwidth+add, dheight+1, selcol); 772 selw*dwidth+add, dheight+1, selcol);
773 } 773 }
774 } 774 }
775 } 775 }
776 776
777 // iterate over all days in the matrix and draw the day label in appropriate colors 777 // iterate over all days in the matrix and draw the day label in appropriate colors
778 QColor actcol = mDefaultTextColorShaded; 778 QColor actcol = mDefaultTextColorShaded;
779 p.setPen(actcol); 779 p.setPen(actcol);
780 QPen tmppen; 780 QPen tmppen;
781 for(int i = 0; i < NUMDAYS; i++) { 781 for(int i = 0; i < NUMDAYS; i++) {
782 row = i/7; 782 row = i/7;
783 col = isRTL ? 6-(i-row*7) : i-row*7; 783 col = isRTL ? 6-(i-row*7) : i-row*7;
784 784
785 // if it is the first day of a month switch color from normal to shaded and vice versa 785 // if it is the first day of a month switch color from normal to shaded and vice versa
786 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) { 786 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) {
787 if (actcol == mDefaultTextColorShaded) { 787 if (actcol == mDefaultTextColorShaded) {
788 actcol = mDefaultTextColor; 788 actcol = mDefaultTextColor;
789 } else { 789 } else {
790 actcol = mDefaultTextColorShaded; 790 actcol = mDefaultTextColorShaded;
791 } 791 }
792 p.setPen(actcol); 792 p.setPen(actcol);
793 } 793 }
794 if (actcol == mDefaultTextColorShaded) { 794 if (actcol == mDefaultTextColorShaded) {
795 if ( ! mouseDown ) { 795 if ( ! mouseDown ) {
796 continue; 796 continue;
797 } 797 }
798 } 798 }
799 //Reset pen color after selected days block 799 //Reset pen color after selected days block
800 if (i == mSelEndT+1) { 800 if (i == mSelEndT+1) {
801 p.setPen(actcol); 801 p.setPen(actcol);
802 } 802 }
803 803
804 // if today then draw rectangle around day 804 // if today then draw rectangle around day
805 if (today == i) { 805 if (today == i) {
806 tmppen = p.pen(); 806 tmppen = p.pen();
807 QPen mTodayPen(p.pen()); 807 QPen mTodayPen(p.pen());
808 if ( daysize.width() < 20 ) 808 if ( daysize.width() < 20 )
809 mTodayPen.setWidth(1); 809 mTodayPen.setWidth(1);
810 else 810 else
811 mTodayPen.setWidth(mTodayMarginWidth); 811 mTodayPen.setWidth(mTodayMarginWidth);
812 //draw red rectangle for holidays 812 //draw red rectangle for holidays
813 if (!mHolidays[i].isNull()) { 813 if (!mHolidays[i].isNull()) {
814 if (actcol == mDefaultTextColor) { 814 if (actcol == mDefaultTextColor) {
815 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor); 815 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor);
816 } else { 816 } else {
817 mTodayPen.setColor(mHolidayColorShaded); 817 mTodayPen.setColor(mHolidayColorShaded);
818 } 818 }
819 } 819 }
820 //draw gray rectangle for today if in selection 820 //draw gray rectangle for today if in selection
821 if (i >= mSelStartT && i <= mSelEndT) { 821 if (i >= mSelStartT && i <= mSelEndT) {
822 QColor grey("grey"); 822 QColor grey("grey");
823 mTodayPen.setColor(grey); 823 mTodayPen.setColor(grey);
824 } 824 }
825 p.setPen(mTodayPen); 825 p.setPen(mTodayPen);
826 826
827 827
828 int addCol = 0; 828 int addCol = 0;
829 int addRow = 0; 829 int addRow = 0;
830 if (rowModulo) { 830 if (rowModulo) {
831 if ( row >= 6 - rowModulo ) 831 if ( row >= 6 - rowModulo )
832 addRow = row - 5 + rowModulo; 832 addRow = row - 5 + rowModulo;
833 } 833 }
834 if ( colModulo ) { 834 if ( colModulo ) {
835 if ( col >= 7 - colModulo ) 835 if ( col >= 7 - colModulo )
836 addCol = col - 6 + colModulo-1; 836 addCol = col - 6 + colModulo-1;
837 } 837 }
838 if ( col == 0 )
839 addCol = 1;
838 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight+1); 840 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight+1);
839 p.setPen(tmppen); 841 p.setPen(tmppen);
840 } 842 }
841 843
842 // if any events are on that day then draw it using a bold font 844 // if any events are on that day then draw it using a bold font
843 if (events[i] > 0) { 845 if (events[i] > 0) {
844 QFont myFont = font(); 846 QFont myFont = font();
845 myFont.setBold(true); 847 myFont.setBold(true);
846 p.setFont(myFont); 848 p.setFont(myFont);
847 } 849 }
848 850
849 // if it is a holiday then use the default holiday color 851 // if it is a holiday then use the default holiday color
850 if (!mHolidays[i].isNull()) { 852 if (!mHolidays[i].isNull()) {
851 if ( bDays.testBit(i) ) { 853 if ( bDays.testBit(i) ) {
852 p.setPen(Qt::green); 854 p.setPen(Qt::green);
853 } else { 855 } else {
854 if (actcol == mDefaultTextColor) { 856 if (actcol == mDefaultTextColor) {
855 p.setPen(KOPrefs::instance()->mHolidayColor); 857 p.setPen(KOPrefs::instance()->mHolidayColor);
856 } else { 858 } else {
857 p.setPen(mHolidayColorShaded); 859 p.setPen(mHolidayColorShaded);
858 } 860 }
859 } 861 }
860 } 862 }
861 863
862 // draw selected days with special color 864 // draw selected days with special color
863 // DO NOT specially highlight holidays in selection ! 865 // DO NOT specially highlight holidays in selection !
864 if (i >= mSelStartT && i <= mSelEndT) { 866 if (i >= mSelStartT && i <= mSelEndT) {
865 ;//p.setPen(mSelectedDaysColor); 867 ;//p.setPen(mSelectedDaysColor);
866 } 868 }
867 869
868 int addCol = 0; 870 int addCol = 0;
869 int addRow = 0; 871 int addRow = 0;
870 if ( colModulo ) { 872 if ( colModulo ) {
871 if ( col >= 7 - colModulo ) 873 if ( col >= 7 - colModulo )
872 addCol = col - 7 + colModulo; 874 addCol = col - 7 + colModulo;
873 } 875 }
874 if ( rowModulo ) { 876 if ( rowModulo ) {
875 if ( row >= 6 - rowModulo ) 877 if ( row >= 6 - rowModulo )
876 addRow = row - 5 + rowModulo; 878 addRow = row - 5 + rowModulo;
877 } 879 }
878 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow); 880 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
879 ++addCol;//++addCol; 881 ++addCol;//++addCol;
882 if ( row == 0)
883 addRow = 1;
880 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight, 884 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
881 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]); 885 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
882 886
883 // reset color to actual color 887 // reset color to actual color
884 if (!mHolidays[i].isNull()) { 888 if (!mHolidays[i].isNull()) {
885 p.setPen(actcol); 889 p.setPen(actcol);
886 } 890 }
887 // reset bold font to plain font 891 // reset bold font to plain font
888 if (events[i] > 0) { 892 if (events[i] > 0) {
889 QFont myFont = font(); 893 QFont myFont = font();
890 myFont.setBold(false); 894 myFont.setBold(false);
891 p.setFont(myFont); 895 p.setFont(myFont);
892 } 896 }
893 } 897 }
894 int off = xyOff; 898 int off = xyOff;
895 bitBlt (this, off, off, &myPix, 0 ,0,width(), height() ,CopyROP); 899 bitBlt (this, off, off, &myPix, 0 ,0,width(), height() ,CopyROP);
896 //qDebug("ffffffffff %d ", off); 900 //qDebug("ffffffffff %d ", off);
897} 901}
898 902
899// ---------------------------------------------------------------------------- 903// ----------------------------------------------------------------------------
900// R E SI Z E E V E N T H A N D L I N G 904// R E SI Z E E V E N T H A N D L I N G
901// ---------------------------------------------------------------------------- 905// ----------------------------------------------------------------------------
902 906
903void KODayMatrix::resizeEvent(QResizeEvent *) 907void KODayMatrix::resizeEvent(QResizeEvent *)
904{ 908{
905 QRect sz = frameRect(); 909 QRect sz = frameRect();
906 daysize.setHeight(sz.height()*7 / NUMDAYS); 910 daysize.setHeight(sz.height()*7 / NUMDAYS);
907 daysize.setWidth(sz.width() / 7); 911 daysize.setWidth(sz.width() / 7);
908} 912}
909 913
910QSize KODayMatrix::sizeHint() const 914QSize KODayMatrix::sizeHint() const
911{ 915{
912 916
913 QFontMetrics fm ( font() ); 917 QFontMetrics fm ( font() );
914 int wid = fm.width( "30") *7+3; 918 int wid = fm.width( "30") *7+3;
915 int hei = fm.height() * 6+3; 919 int hei = fm.height() * 6+3;
916 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei); 920 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei);
917 return QSize ( wid, hei ); 921 return QSize ( wid, hei );
918 922
919} 923}