Diffstat (limited to 'core/pim/datebook/datebookweeklst.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/datebookweeklst.cpp | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp index aad1f3a..24fb0ba 100644 --- a/core/pim/datebook/datebookweeklst.cpp +++ b/core/pim/datebook/datebookweeklst.cpp | |||
@@ -1,39 +1,24 @@ | |||
1 | #include "datebookweeklst.h" | 1 | #include "datebookweeklst.h" |
2 | 2 | ||
3 | #include "datebookweekheaderimpl.h" | ||
4 | 3 | ||
5 | #include "datebook.h" | 4 | #include "datebook.h" |
6 | 5 | ||
7 | #include <qpe/calendar.h> | ||
8 | #include <qpe/datebookdb.h> | ||
9 | #include <qpe/event.h> | ||
10 | #include <qpe/qpeapplication.h> | ||
11 | #include <qpe/timestring.h> | ||
12 | #include <qpe/datebookmonth.h> | 6 | #include <qpe/datebookmonth.h> |
13 | #include <qpe/config.h> | 7 | #include <qpe/config.h> |
14 | #include <qpe/resource.h> | 8 | #include <qpe/resource.h> |
9 | #include <qpe/calendar.h> | ||
15 | 10 | ||
16 | #include <qdatetime.h> | ||
17 | #include <qheader.h> | ||
18 | #include <qlabel.h> | ||
19 | #include <qlayout.h> | 11 | #include <qlayout.h> |
20 | #include <qpainter.h> | ||
21 | #include <qpopupmenu.h> | ||
22 | #include <qtimer.h> | ||
23 | #include <qstyle.h> | ||
24 | #include <qtoolbutton.h> | 12 | #include <qtoolbutton.h> |
25 | #include <qvbox.h> | ||
26 | #include <qsizepolicy.h> | ||
27 | #include <qabstractlayout.h> | ||
28 | #include <qtl.h> | 13 | #include <qtl.h> |
29 | 14 | ||
30 | bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); | 15 | bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); |
31 | 16 | ||
32 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) | 17 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) |
33 | : DateBookWeekLstHeaderBase(parent, name, fl) | 18 | : DateBookWeekLstHeaderBase(parent, name, fl) |
34 | { | 19 | { |
35 | setBackgroundMode( PaletteButton ); | 20 | setBackgroundMode( PaletteButton ); |
36 | labelDate->setBackgroundMode( PaletteButton ); | 21 | labelDate->setBackgroundMode( PaletteButton ); |
37 | forwardweek->setBackgroundMode( PaletteButton ); | 22 | forwardweek->setBackgroundMode( PaletteButton ); |
38 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); | 23 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); |
39 | forwardmonth->setBackgroundMode( PaletteButton ); | 24 | forwardmonth->setBackgroundMode( PaletteButton ); |
@@ -64,28 +49,29 @@ void DateBookWeekLstHeader::setDate(const QDate &d) { | |||
64 | if(bStartOnMonday) | 49 | if(bStartOnMonday) |
65 | dayofweek--; | 50 | dayofweek--; |
66 | else if( dayofweek == 7 ) | 51 | else if( dayofweek == 7 ) |
67 | /* we already have the right day -7 would lead to the same week */ | 52 | /* we already have the right day -7 would lead to the same week */ |
68 | dayofweek = 0; | 53 | dayofweek = 0; |
69 | 54 | ||
70 | date=date.addDays(-dayofweek); | 55 | date=date.addDays(-dayofweek); |
71 | 56 | ||
72 | calcWeek(date,week,year,bStartOnMonday); | 57 | calcWeek(date,week,year,bStartOnMonday); |
73 | QDate start=date; | 58 | QDate start=date; |
74 | QDate stop=start.addDays(6); | 59 | QDate stop=start.addDays(6); |
75 | labelDate->setText( QString::number(start.day()) + "." + | 60 | labelDate->setText( QString::number(start.day()) + "." + |
76 | start.monthName(start.month()) + "-" + | 61 | Calendar::nameOfMonth( start.month() ) + "-" + |
77 | QString::number(stop.day()) + "." + | 62 | QString::number(stop.day()) + "." + |
78 | start.monthName(stop.month()) +" ("+ | 63 | Calendar::nameOfMonth( stop.month()) +" ("+ |
79 | tr("w")+":"+QString::number( week ) +")"); | 64 | tr("w")+":"+QString::number( week ) +")"); |
65 | date = d; // bugfix: 0001126 - date has to be the selected date, not monday! | ||
80 | emit dateChanged(date); | 66 | emit dateChanged(date); |
81 | } | 67 | } |
82 | 68 | ||
83 | void DateBookWeekLstHeader::pickDate() { | 69 | void DateBookWeekLstHeader::pickDate() { |
84 | static QPopupMenu *m1 = 0; | 70 | static QPopupMenu *m1 = 0; |
85 | static DateBookMonth *picker = 0; | 71 | static DateBookMonth *picker = 0; |
86 | if ( !m1 ) { | 72 | if ( !m1 ) { |
87 | m1 = new QPopupMenu( this ); | 73 | m1 = new QPopupMenu( this ); |
88 | picker = new DateBookMonth( m1, 0, TRUE ); | 74 | picker = new DateBookMonth( m1, 0, TRUE ); |
89 | m1->insertItem( picker ); | 75 | m1->insertItem( picker ); |
90 | connect( picker, SIGNAL( dateClicked( int, int, int ) ),this, SLOT( setDate( int, int, int ) ) ); | 76 | connect( picker, SIGNAL( dateClicked( int, int, int ) ),this, SLOT( setDate( int, int, int ) ) ); |
91 | //connect( m1, SIGNAL( aboutToHide() ), | 77 | //connect( m1, SIGNAL( aboutToHide() ), |
@@ -116,26 +102,28 @@ void DateBookWeekLstHeader::prevMonth() | |||
116 | 102 | ||
117 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */, | 103 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */, |
118 | QWidget* parent, | 104 | QWidget* parent, |
119 | const char* name, | 105 | const char* name, |
120 | WFlags fl ) | 106 | WFlags fl ) |
121 | : DateBookWeekLstDayHdrBase(parent, name, fl) { | 107 | : DateBookWeekLstDayHdrBase(parent, name, fl) { |
122 | 108 | ||
123 | date=d; | 109 | date=d; |
124 | 110 | ||
125 | static const QString wdays=tr("MTWTFSSM", "Week days"); | 111 | static const QString wdays=tr("MTWTFSSM", "Week days"); |
126 | char day=wdays[d.dayOfWeek()-1]; | 112 | char day=wdays[d.dayOfWeek()-1]; |
127 | 113 | ||
114 | //dont use dayOfWeek() to save space ! | ||
128 | label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) ); | 115 | label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) ); |
129 | add->setText("+"); | 116 | |
117 | add->setText("+"); | ||
130 | 118 | ||
131 | if (d == QDate::currentDate()) { | 119 | if (d == QDate::currentDate()) { |
132 | QPalette pal=label->palette(); | 120 | QPalette pal=label->palette(); |
133 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); | 121 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); |
134 | label->setPalette(pal); | 122 | label->setPalette(pal); |
135 | 123 | ||
136 | /* | 124 | /* |
137 | QFont f=label->font(); | 125 | QFont f=label->font(); |
138 | f.setItalic(true); | 126 | f.setItalic(true); |
139 | label->setFont(f); | 127 | label->setFont(f); |
140 | label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); | 128 | label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); |
141 | */ | 129 | */ |
@@ -332,26 +320,41 @@ void DateBookWeekLst::setDate(const QDate &d) { | |||
332 | } | 320 | } |
333 | 321 | ||
334 | void DateBookWeekLst::setDbl(bool on) { | 322 | void DateBookWeekLst::setDbl(bool on) { |
335 | dbl=on; | 323 | dbl=on; |
336 | redraw(); | 324 | redraw(); |
337 | } | 325 | } |
338 | void DateBookWeekLst::redraw() {getEvents();} | 326 | void DateBookWeekLst::redraw() {getEvents();} |
339 | 327 | ||
340 | QDate DateBookWeekLst::date() { | 328 | QDate DateBookWeekLst::date() { |
341 | return bdate; | 329 | return bdate; |
342 | } | 330 | } |
343 | 331 | ||
332 | // return the date at the beginning of the week... | ||
333 | // copied from DateBookWeek | ||
334 | QDate DateBookWeekLst::weekDate() const | ||
335 | { | ||
336 | QDate d=bdate; | ||
337 | |||
338 | // Calculate offset to first day of week. | ||
339 | int dayoffset=d.dayOfWeek(); | ||
340 | if(bStartOnMonday) dayoffset--; | ||
341 | else if( dayoffset == 7 ) | ||
342 | dayoffset = 0; | ||
343 | |||
344 | return d.addDays(-dayoffset); | ||
345 | } | ||
346 | |||
344 | void DateBookWeekLst::getEvents() { | 347 | void DateBookWeekLst::getEvents() { |
345 | QDate start = date(); | 348 | QDate start = weekDate(); //date(); |
346 | QDate stop = start.addDays(6); | 349 | QDate stop = start.addDays(6); |
347 | QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop); | 350 | QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop); |
348 | 351 | ||
349 | if (view) delete view; | 352 | if (view) delete view; |
350 | if (dbl) { | 353 | if (dbl) { |
351 | QDate start2=start.addDays(7); | 354 | QDate start2=start.addDays(7); |
352 | stop=start2.addDays(6); | 355 | stop=start2.addDays(6); |
353 | QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); | 356 | QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); |
354 | view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); | 357 | view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); |
355 | } else { | 358 | } else { |
356 | view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll); | 359 | view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll); |
357 | } | 360 | } |