author | umopapisdn <umopapisdn> | 2003-05-05 21:44:39 (UTC) |
---|---|---|
committer | umopapisdn <umopapisdn> | 2003-05-05 21:44:39 (UTC) |
commit | 3b193b852133a82b5c1708b68a7e460c63629768 (patch) (unidiff) | |
tree | 8cd0ff3adc14f0b937d24ab99fca327fb3f16875 /core/pim/datebook/datebookweeklst.cpp | |
parent | 12a700f8903eedeba03d3aba7990b9d660410045 (diff) | |
download | opie-3b193b852133a82b5c1708b68a7e460c63629768.zip opie-3b193b852133a82b5c1708b68a7e460c63629768.tar.gz opie-3b193b852133a82b5c1708b68a7e460c63629768.tar.bz2 |
UI and code cleanup. Both UI and code is now more consistent. Also removed menus in favor of toolbuttons. (why were they even available as menus in the first place?)
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 | |||
@@ -27,73 +27,86 @@ | |||
27 | #include <qabstractlayout.h> | 27 | #include <qabstractlayout.h> |
28 | #include <qtl.h> | 28 | #include <qtl.h> |
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 | } |
91 | 96 | ||
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 | } |
98 | 111 | ||
99 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, | 112 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, |
@@ -102,40 +115,39 @@ DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, | |||
102 | WFlags fl ) | 115 | WFlags fl ) |
103 | : DateBookWeekLstDayHdrBase(parent, name, fl) { | 116 | : DateBookWeekLstDayHdrBase(parent, name, fl) { |
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 | } |
135 | 146 | ||
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() { |
140 | QDateTime start, stop; | 152 | QDateTime start, stop; |
141 | start=stop=date; | 153 | start=stop=date; |
@@ -204,7 +216,7 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
204 | int weeklistviewconfig=config.readNumEntry("weeklistviewconfig", NORMAL); | 216 | int weeklistviewconfig=config.readNumEntry("weeklistviewconfig", NORMAL); |
205 | qDebug("Read weeklistviewconfig: %d",weeklistviewconfig); | 217 | qDebug("Read weeklistviewconfig: %d",weeklistviewconfig); |
206 | 218 | ||
207 | onMonday=onM; | 219 | bStartOnMonday=onM; |
208 | setPalette(white); | 220 | setPalette(white); |
209 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); | 221 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); |
210 | 222 | ||
@@ -215,7 +227,7 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
215 | it=ev.begin(); | 227 | it=ev.begin(); |
216 | 228 | ||
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; |
220 | } else { | 232 | } else { |
221 | for (int d=0; d<7; d++) dayOrder[d]=d; | 233 | for (int d=0; d<7; d++) dayOrder[d]=d; |
@@ -224,9 +236,8 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
224 | 236 | ||
225 | for (int i=0; i<7; i++) { | 237 | for (int i=0; i<7; i++) { |
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 &)), |
231 | this, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &))); | 242 | this, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &))); |
232 | layout->addWidget(hdr); | 243 | layout->addWidget(hdr); |
@@ -279,20 +290,18 @@ DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDB *newDB, | |||
279 | db( newDB ), | 290 | db( newDB ), |
280 | startTime( 0 ), | 291 | startTime( 0 ), |
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); |
297 | layout->addWidget(scroll); | 306 | layout->addWidget(scroll); |
298 | 307 | ||
@@ -310,7 +319,7 @@ DateBookWeekLst::~DateBookWeekLst(){ | |||
310 | 319 | ||
311 | void DateBookWeekLst::setDate(const QDate &d) { | 320 | 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; |
315 | _week=w; | 324 | _week=w; |
316 | header->setDate(date()); | 325 | header->setDate(date()); |
@@ -326,7 +335,7 @@ QDate DateBookWeekLst::date() const { | |||
326 | d.setYMD(year,1,1); | 335 | d.setYMD(year,1,1); |
327 | 336 | ||
328 | int dow= d.dayOfWeek(); | 337 | int dow= d.dayOfWeek(); |
329 | if (!onMonday) | 338 | if (!bStartOnMonday) |
330 | if (dow==7) { | 339 | if (dow==7) { |
331 | dow=1; | 340 | dow=1; |
332 | } else { | 341 | } else { |
@@ -347,9 +356,9 @@ void DateBookWeekLst::getEvents() { | |||
347 | QDate start2=start.addDays(7); | 356 | QDate start2=start.addDays(7); |
348 | stop=start2.addDays(6); | 357 | stop=start2.addDays(6); |
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 | } |
354 | 363 | ||
355 | connect (view, SIGNAL(editEvent(const Event &)), this, SIGNAL(editEvent(const Event &))); | 364 | connect (view, SIGNAL(editEvent(const Event &)), this, SIGNAL(editEvent(const Event &))); |
@@ -386,5 +395,4 @@ void DateBookWeekLst::keyPressEvent(QKeyEvent *e) | |||
386 | default: | 395 | default: |
387 | e->ignore(); | 396 | e->ignore(); |
388 | } | 397 | } |
389 | } | 398 | } \ No newline at end of file |
390 | |||