Diffstat (limited to 'core/pim/datebook/datebookweeklst.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/datebookweeklst.cpp | 212 |
1 files changed, 110 insertions, 102 deletions
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp index 3c8fc89..a39ff40 100644 --- a/core/pim/datebook/datebookweeklst.cpp +++ b/core/pim/datebook/datebookweeklst.cpp | |||
@@ -29,62 +29,67 @@ | |||
29 | 29 | ||
30 | bool calcWeek(const QDate &d, int &week, int &year, | 30 | bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); |
31 | bool startOnMonday = false); | ||
32 | 31 | ||
33 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, | 32 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) |
34 | const char* name, WFlags fl) | ||
35 | : DateBookWeekLstHeaderBase(parent, name, fl) | 33 | : DateBookWeekLstHeaderBase(parent, name, fl) |
36 | { | 34 | { |
37 | setBackgroundMode( PaletteButton ); | 35 | setBackgroundMode( PaletteButton ); |
38 | labelDate->setBackgroundMode( PaletteButton ); | 36 | labelDate->setBackgroundMode( PaletteButton ); |
39 | labelWeek->setBackgroundMode( PaletteButton ); | 37 | forwardweek->setBackgroundMode( PaletteButton ); |
40 | forward->setBackgroundMode( PaletteButton ); | 38 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); |
41 | forward->setPixmap( Resource::loadPixmap("forward") ); | 39 | forwardmonth->setBackgroundMode( PaletteButton ); |
42 | back->setBackgroundMode( PaletteButton ); | 40 | forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); |
43 | back->setPixmap( Resource::loadPixmap("back") ); | 41 | backweek->setBackgroundMode( PaletteButton ); |
44 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); | 42 | backweek->setPixmap( Resource::loadPixmap("back") ); |
45 | DateBookWeekLstHeaderBaseLayout->setMargin(0); | 43 | backmonth->setBackgroundMode( PaletteButton ); |
46 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); | 44 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); |
47 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); | 45 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); |
48 | 46 | DateBookWeekLstHeaderBaseLayout->setMargin(0); | |
49 | connect(back, SIGNAL(clicked()), this, SLOT(prevWeek())); | 47 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); |
50 | connect(forward, SIGNAL(clicked()), this, SLOT(nextWeek())); | 48 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); |
51 | connect(labelWeek, SIGNAL(clicked()), this, SLOT(pickDate())); | 49 | |
52 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); | 50 | connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth())); |
53 | onMonday=onM; | 51 | connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek())); |
52 | connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek())); | ||
53 | connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth())); | ||
54 | connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate())); | ||
55 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); | ||
56 | bStartOnMonday=onM; | ||
54 | } | 57 | } |
55 | DateBookWeekLstHeader::~DateBookWeekLstHeader(){} | 58 | DateBookWeekLstHeader::~DateBookWeekLstHeader(){} |
59 | |||
56 | void DateBookWeekLstHeader::setDate(const QDate &d) { | 60 | void DateBookWeekLstHeader::setDate(const QDate &d) { |
57 | date=d; | 61 | int year,week,dayofweek; |
58 | 62 | date=d; | |
59 | int year,week; | 63 | dayofweek=d.dayOfWeek(); |
60 | calcWeek(d,week,year,onMonday); | 64 | if(bStartOnMonday) dayofweek--; |
61 | labelWeek->setText(tr( "W: %1" ).arg( ( QString::number(week)) ) ); | 65 | date=date.addDays(-dayofweek); |
62 | 66 | ||
63 | QDate start=date; | 67 | calcWeek(date,week,year,bStartOnMonday); |
64 | QDate stop=start.addDays(6); | 68 | QDate start=date; |
65 | labelDate->setText( QString::number(start.day()) + " " + | 69 | QDate stop=start.addDays(6); |
66 | start.monthName(start.month()) + " - " + | 70 | labelDate->setText( QString::number(start.day()) + "." + |
67 | QString::number(stop.day()) + " " + | 71 | start.monthName(start.month()) + "-" + |
68 | start.monthName(stop.month()) ); | 72 | QString::number(stop.day()) + "." + |
69 | emit dateChanged(year,week); | 73 | start.monthName(stop.month()) +" ("+ |
74 | tr("w")+":"+QString::number( week ) +")"); | ||
75 | emit dateChanged(year,week); | ||
70 | } | 76 | } |
77 | |||
71 | void DateBookWeekLstHeader::pickDate() { | 78 | void DateBookWeekLstHeader::pickDate() { |
72 | static QPopupMenu *m1 = 0; | 79 | static QPopupMenu *m1 = 0; |
73 | static DateBookMonth *picker = 0; | 80 | static DateBookMonth *picker = 0; |
74 | if ( !m1 ) { | 81 | if ( !m1 ) { |
75 | m1 = new QPopupMenu( this ); | 82 | m1 = new QPopupMenu( this ); |
76 | picker = new DateBookMonth( m1, 0, TRUE ); | 83 | picker = new DateBookMonth( m1, 0, TRUE ); |
77 | m1->insertItem( picker ); | 84 | m1->insertItem( picker ); |
78 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), | 85 | connect( picker, SIGNAL( dateClicked( int, int, int ) ),this, SLOT( setDate( int, int, int ) ) ); |
79 | this, SLOT( setDate( int, int, int ) ) ); | 86 | //connect( m1, SIGNAL( aboutToHide() ), |
80 | //connect( m1, SIGNAL( aboutToHide() ), | 87 | //this, SLOT( gotHide() ) ); |
81 | //this, SLOT( gotHide() ) ); | 88 | } |
82 | } | 89 | picker->setDate( date.year(), date.month(), date.day() ); |
83 | picker->setDate( date.year(), date.month(), date.day() ); | 90 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); |
84 | m1->popup(mapToGlobal(labelWeek->pos()+QPoint(0,labelWeek->height()))); | 91 | picker->setFocus(); |
85 | picker->setFocus(); | ||
86 | } | 92 | } |
87 | void DateBookWeekLstHeader::setDate(int y, int m, int d) { | 93 | void DateBookWeekLstHeader::setDate(int y, int m, int d) { |
88 | QDate new_date(y,m,d); | 94 | setDate(QDate(y,m,d)); |
89 | setDate(new_date); | ||
90 | } | 95 | } |
@@ -92,6 +97,14 @@ void DateBookWeekLstHeader::setDate(int y, int m, int d) { | |||
92 | void DateBookWeekLstHeader::nextWeek() { | 97 | void DateBookWeekLstHeader::nextWeek() { |
93 | setDate(date.addDays(7)); | 98 | setDate(date.addDays(7)); |
94 | } | 99 | } |
95 | void DateBookWeekLstHeader::prevWeek() { | 100 | void DateBookWeekLstHeader::prevWeek() { |
96 | setDate(date.addDays(-7)); | 101 | setDate(date.addDays(-7)); |
102 | } | ||
103 | void DateBookWeekLstHeader::nextMonth() | ||
104 | { | ||
105 | setDate(date.addDays(28)); | ||
106 | } | ||
107 | void DateBookWeekLstHeader::prevMonth() | ||
108 | { | ||
109 | setDate(date.addDays(-28)); | ||
97 | } | 110 | } |
@@ -104,31 +117,29 @@ DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, | |||
104 | 117 | ||
105 | date=d; | 118 | date=d; |
106 | 119 | ||
107 | static const char *wdays={"MTWTFSS"}; | 120 | static const char *wdays={"MTWTFSS"}; |
108 | char day=wdays[d.dayOfWeek()-1]; | 121 | char day=wdays[d.dayOfWeek()-1]; |
109 | 122 | ||
110 | label->setText( QString(QObject::tr(QString(QChar(day)))) + " " + | 123 | label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) ); |
111 | QString::number(d.day()) ); | 124 | add->setText("+"); |
112 | add->setText("+"); | 125 | |
113 | 126 | if (d == QDate::currentDate()) { | |
114 | if (d == QDate::currentDate()) { | 127 | QPalette pal=label->palette(); |
115 | QPalette pal=label->palette(); | 128 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); |
116 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); | 129 | label->setPalette(pal); |
117 | label->setPalette(pal); | 130 | |
118 | 131 | /* | |
119 | /* | 132 | QFont f=label->font(); |
120 | QFont f=label->font(); | 133 | f.setItalic(true); |
121 | f.setItalic(true); | 134 | label->setFont(f); |
122 | label->setFont(f); | 135 | label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); |
123 | label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); | 136 | */ |
124 | */ | 137 | } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday |
125 | } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday | 138 | QPalette pal=label->palette(); |
126 | QPalette pal=label->palette(); | 139 | pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); |
127 | pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); | 140 | label->setPalette(pal); |
128 | label->setPalette(pal); | 141 | } |
129 | } | ||
130 | |||
131 | 142 | ||
132 | connect (label, SIGNAL(clicked()), this, SLOT(showDay())); | 143 | connect (label, SIGNAL(clicked()), this, SLOT(showDay())); |
133 | connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); | 144 | connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); |
134 | } | 145 | } |
@@ -136,4 +147,5 @@ DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, | |||
136 | void DateBookWeekLstDayHdr::showDay() { | 147 | void DateBookWeekLstDayHdr::showDay() { |
137 | emit showDate(date.year(), date.month(), date.day()); | 148 | emit showDate(date.year(), date.month(), date.day()); |
138 | } | 149 | } |
150 | |||
139 | void DateBookWeekLstDayHdr::newEvent() { | 151 | void DateBookWeekLstDayHdr::newEvent() { |
@@ -206,3 +218,3 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
206 | 218 | ||
207 | onMonday=onM; | 219 | bStartOnMonday=onM; |
208 | setPalette(white); | 220 | setPalette(white); |
@@ -217,3 +229,3 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
217 | int dayOrder[7]; | 229 | int dayOrder[7]; |
218 | if (onMonday) { | 230 | if (bStartOnMonday) { |
219 | for (int d=0; d<7; d++) dayOrder[d]=d+1; | 231 | for (int d=0; d<7; d++) dayOrder[d]=d+1; |
@@ -226,5 +238,4 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
226 | // Header | 238 | // Header |
227 | DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i), onMonday,this); | 239 | DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i), bStartOnMonday,this); |
228 | connect(hdr, SIGNAL(showDate(int,int,int)), | 240 | connect(hdr, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); |
229 | this, SIGNAL(showDate(int,int,int))); | ||
230 | connect(hdr, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &)), | 241 | connect(hdr, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &)), |
@@ -281,16 +292,14 @@ DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDB *newDB, | |||
281 | ampm( ap ), | 292 | ampm( ap ), |
282 | onMonday(onM) | 293 | bStartOnMonday(onM) |
283 | { | 294 | { |
284 | setFocusPolicy(StrongFocus); | 295 | setFocusPolicy(StrongFocus); |
285 | layout = new QVBoxLayout( this ); | 296 | layout = new QVBoxLayout( this ); |
286 | layout->setMargin(0); | 297 | layout->setMargin(0); |
287 | 298 | ||
288 | header=new DateBookWeekLstHeader(onM, this); | 299 | header=new DateBookWeekLstHeader(onM, this); |
289 | layout->addWidget( header ); | 300 | layout->addWidget( header ); |
290 | connect(header, SIGNAL(dateChanged(int,int)), this, SLOT(dateChanged(int,int))); | 301 | connect(header, SIGNAL(dateChanged(int,int)), this, SLOT(dateChanged(int,int))); |
291 | connect(header, SIGNAL(setDbl(bool)), this, SLOT(setDbl(bool))); | 302 | connect(header, SIGNAL(setDbl(bool)), this, SLOT(setDbl(bool))); |
292 | 303 | ||
293 | scroll=new QScrollView(this); | 304 | scroll=new QScrollView(this); |
294 | //scroll->setVScrollBarMode(QScrollView::AlwaysOn); | ||
295 | //scroll->setHScrollBarMode(QScrollView::AlwaysOff); | ||
296 | scroll->setResizePolicy(QScrollView::AutoOneFit); | 305 | scroll->setResizePolicy(QScrollView::AutoOneFit); |
@@ -312,3 +321,3 @@ void DateBookWeekLst::setDate(const QDate &d) { | |||
312 | int w,y; | 321 | int w,y; |
313 | calcWeek(d,w,y,onMonday); | 322 | calcWeek(d,w,y,bStartOnMonday); |
314 | year=y; | 323 | year=y; |
@@ -328,3 +337,3 @@ QDate DateBookWeekLst::date() const { | |||
328 | int dow= d.dayOfWeek(); | 337 | int dow= d.dayOfWeek(); |
329 | if (!onMonday) | 338 | if (!bStartOnMonday) |
330 | if (dow==7) { | 339 | if (dow==7) { |
@@ -349,5 +358,5 @@ void DateBookWeekLst::getEvents() { | |||
349 | QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); | 358 | QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); |
350 | view=new DateBookWeekLstDblView(el,el2,start,onMonday,scroll); | 359 | view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); |
351 | } else { | 360 | } else { |
352 | view=new DateBookWeekLstView(el,start,onMonday,scroll); | 361 | view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll); |
353 | } | 362 | } |
@@ -388,3 +397,2 @@ void DateBookWeekLst::keyPressEvent(QKeyEvent *e) | |||
388 | } | 397 | } |
389 | } | 398 | } \ No newline at end of file |
390 | |||