Diffstat (limited to 'core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp b/core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp new file mode 100644 index 0000000..81e0c31 --- a/dev/null +++ b/core/pim/datebook/modules/weeklst/datebookweeklstheader.cpp | |||
@@ -0,0 +1,96 @@ | |||
1 | #include "datebookweeklstheader.h" | ||
2 | |||
3 | #include <qpe/resource.h> | ||
4 | #include <qpe/datebookmonth.h> | ||
5 | |||
6 | #include <qtoolbutton.h> | ||
7 | #include <qlayout.h> | ||
8 | |||
9 | /* implenented in datebookweek.cpp - HELL */ | ||
10 | bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); | ||
11 | |||
12 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) | ||
13 | : DateBookWeekLstHeaderBase(parent, name, fl) | ||
14 | { | ||
15 | setBackgroundMode( PaletteButton ); | ||
16 | labelDate->setBackgroundMode( PaletteButton ); | ||
17 | forwardweek->setBackgroundMode( PaletteButton ); | ||
18 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); | ||
19 | forwardmonth->setBackgroundMode( PaletteButton ); | ||
20 | forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); | ||
21 | backweek->setBackgroundMode( PaletteButton ); | ||
22 | backweek->setPixmap( Resource::loadPixmap("back") ); | ||
23 | backmonth->setBackgroundMode( PaletteButton ); | ||
24 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); | ||
25 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); | ||
26 | DateBookWeekLstHeaderBaseLayout->setMargin(0); | ||
27 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); | ||
28 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); | ||
29 | |||
30 | connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth())); | ||
31 | connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek())); | ||
32 | connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek())); | ||
33 | connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth())); | ||
34 | connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate())); | ||
35 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); | ||
36 | bStartOnMonday=onM; | ||
37 | } | ||
38 | DateBookWeekLstHeader::~DateBookWeekLstHeader(){} | ||
39 | |||
40 | void DateBookWeekLstHeader::setDate(const QDate &d) { | ||
41 | int year,week,dayofweek; | ||
42 | date=d; | ||
43 | dayofweek=d.dayOfWeek(); | ||
44 | if(bStartOnMonday) | ||
45 | dayofweek--; | ||
46 | else if( dayofweek == 7 ) | ||
47 | /* we already have the right day -7 would lead to the same week */ | ||
48 | dayofweek = 0; | ||
49 | |||
50 | date=date.addDays(-dayofweek); | ||
51 | |||
52 | calcWeek(date,week,year,bStartOnMonday); | ||
53 | QDate start=date; | ||
54 | QDate stop=start.addDays(6); | ||
55 | labelDate->setText( QString::number(start.day()) + "." + | ||
56 | Calendar::nameOfMonth( start.month() ) + "-" + | ||
57 | QString::number(stop.day()) + "." + | ||
58 | Calendar::nameOfMonth( stop.month()) +" ("+ | ||
59 | tr("w")+":"+QString::number( week ) +")"); | ||
60 | date = d; // bugfix: 0001126 - date has to be the selected date, not monday! | ||
61 | emit dateChanged(date); | ||
62 | } | ||
63 | |||
64 | void DateBookWeekLstHeader::pickDate() { | ||
65 | static QPopupMenu *m1 = 0; | ||
66 | static DateBookMonth *picker = 0; | ||
67 | if ( !m1 ) { | ||
68 | m1 = new QPopupMenu( this ); | ||
69 | picker = new DateBookMonth( m1, 0, TRUE ); | ||
70 | m1->insertItem( picker ); | ||
71 | connect( picker, SIGNAL( dateClicked(int,int,int) ),this, SLOT( setDate(int,int,int) ) ); | ||
72 | //connect( m1, SIGNAL( aboutToHide() ), | ||
73 | //this, SLOT( gotHide() ) ); | ||
74 | } | ||
75 | picker->setDate( date.year(), date.month(), date.day() ); | ||
76 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); | ||
77 | picker->setFocus(); | ||
78 | } | ||
79 | void DateBookWeekLstHeader::setDate(int y, int m, int d) { | ||
80 | setDate(QDate(y,m,d)); | ||
81 | } | ||
82 | |||
83 | void DateBookWeekLstHeader::nextWeek() { | ||
84 | setDate(date.addDays(7)); | ||
85 | } | ||
86 | void DateBookWeekLstHeader::prevWeek() { | ||
87 | setDate(date.addDays(-7)); | ||
88 | } | ||
89 | void DateBookWeekLstHeader::nextMonth() | ||
90 | { | ||
91 | setDate(date.addDays(28)); | ||
92 | } | ||
93 | void DateBookWeekLstHeader::prevMonth() | ||
94 | { | ||
95 | setDate(date.addDays(-28)); | ||
96 | } | ||