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) (show whitespace changes)
-rw-r--r-- | core/pim/datebook/datebookweeklst.cpp | 90 |
1 files changed, 49 insertions, 41 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 | |||
@@ -24,94 +24,106 @@ | |||
24 | #include <qtoolbutton.h> | 24 | #include <qtoolbutton.h> |
25 | #include <qvbox.h> | 25 | #include <qvbox.h> |
26 | #include <qsizepolicy.h> | 26 | #include <qsizepolicy.h> |
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 ); |
42 | backweek->setPixmap( Resource::loadPixmap("back") ); | ||
43 | backmonth->setBackgroundMode( PaletteButton ); | ||
44 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); | ||
44 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); | 45 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); |
45 | DateBookWeekLstHeaderBaseLayout->setMargin(0); | 46 | DateBookWeekLstHeaderBaseLayout->setMargin(0); |
46 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); | 47 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); |
47 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); | 48 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); |
48 | 49 | ||
49 | connect(back, SIGNAL(clicked()), this, SLOT(prevWeek())); | 50 | connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth())); |
50 | connect(forward, SIGNAL(clicked()), this, SLOT(nextWeek())); | 51 | connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek())); |
51 | connect(labelWeek, SIGNAL(clicked()), this, SLOT(pickDate())); | 52 | connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek())); |
53 | connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth())); | ||
54 | connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate())); | ||
52 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); | 55 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); |
53 | onMonday=onM; | 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) { |
61 | int year,week,dayofweek; | ||
57 | date=d; | 62 | date=d; |
63 | dayofweek=d.dayOfWeek(); | ||
64 | if(bStartOnMonday) dayofweek--; | ||
65 | date=date.addDays(-dayofweek); | ||
58 | 66 | ||
59 | int year,week; | 67 | calcWeek(date,week,year,bStartOnMonday); |
60 | calcWeek(d,week,year,onMonday); | ||
61 | labelWeek->setText(tr( "W: %1" ).arg( ( QString::number(week)) ) ); | ||
62 | |||
63 | QDate start=date; | 68 | QDate start=date; |
64 | QDate stop=start.addDays(6); | 69 | QDate stop=start.addDays(6); |
65 | labelDate->setText( QString::number(start.day()) + " " + | 70 | labelDate->setText( QString::number(start.day()) + "." + |
66 | start.monthName(start.month()) + " - " + | 71 | start.monthName(start.month()) + " - " + |
67 | QString::number(stop.day()) + " " + | 72 | QString::number(stop.day()) + "." + |
68 | start.monthName(stop.month()) ); | 73 | start.monthName(stop.month()) +" ("+ |
74 | tr("w")+":"+QString::number( week ) +")"); | ||
69 | emit dateChanged(year,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 ) ) ); | ||
80 | //connect( m1, SIGNAL( aboutToHide() ), | 86 | //connect( m1, SIGNAL( aboutToHide() ), |
81 | //this, SLOT( gotHide() ) ); | 87 | //this, SLOT( gotHide() ) ); |
82 | } | 88 | } |
83 | picker->setDate( date.year(), date.month(), date.day() ); | 89 | picker->setDate( date.year(), date.month(), date.day() ); |
84 | m1->popup(mapToGlobal(labelWeek->pos()+QPoint(0,labelWeek->height()))); | 90 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); |
85 | picker->setFocus(); | 91 | 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)); |
97 | } | 102 | } |
103 | void DateBookWeekLstHeader::nextMonth() | ||
104 | { | ||
105 | setDate(date.addDays(28)); | ||
106 | } | ||
107 | void DateBookWeekLstHeader::prevMonth() | ||
108 | { | ||
109 | setDate(date.addDays(-28)); | ||
110 | } | ||
98 | 111 | ||
99 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, | 112 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, |
100 | QWidget* parent, | 113 | QWidget* parent, |
101 | const char* name, | 114 | const char* name, |
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()) ); | ||
112 | add->setText("+"); | 124 | add->setText("+"); |
113 | 125 | ||
114 | if (d == QDate::currentDate()) { | 126 | if (d == QDate::currentDate()) { |
115 | QPalette pal=label->palette(); | 127 | QPalette pal=label->palette(); |
116 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); | 128 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); |
117 | label->setPalette(pal); | 129 | label->setPalette(pal); |
@@ -125,20 +137,20 @@ DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/, | |||
125 | } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday | 137 | } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday |
126 | QPalette pal=label->palette(); | 138 | QPalette pal=label->palette(); |
127 | pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); | 139 | pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); |
128 | label->setPalette(pal); | 140 | label->setPalette(pal); |
129 | } | 141 | } |
130 | 142 | ||
131 | |||
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; |
142 | start.setTime(QTime(10,0)); | 154 | start.setTime(QTime(10,0)); |
143 | stop.setTime(QTime(12,0)); | 155 | stop.setTime(QTime(12,0)); |
144 | 156 | ||
@@ -201,35 +213,34 @@ DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | |||
201 | { | 213 | { |
202 | Config config("DateBook"); | 214 | Config config("DateBook"); |
203 | config.setGroup("Main"); | 215 | config.setGroup("Main"); |
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 | ||
211 | QVBoxLayout *layout = new QVBoxLayout( this ); | 223 | QVBoxLayout *layout = new QVBoxLayout( this ); |
212 | 224 | ||
213 | qBubbleSort(ev); | 225 | qBubbleSort(ev); |
214 | QValueListIterator<EffectiveEvent> it; | 226 | QValueListIterator<EffectiveEvent> it; |
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; |
222 | dayOrder[0]=7; | 234 | dayOrder[0]=7; |
223 | } | 235 | } |
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); |
233 | 244 | ||
234 | // Events | 245 | // Events |
235 | while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { | 246 | while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { |
@@ -276,26 +287,24 @@ DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDB *newDB, | |||
276 | QWidget *parent, | 287 | QWidget *parent, |
277 | const char *name ) | 288 | const char *name ) |
278 | : QWidget( parent, name ), | 289 | : QWidget( parent, name ), |
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 | ||
299 | view=NULL; | 308 | view=NULL; |
300 | Config config("DateBook"); | 309 | Config config("DateBook"); |
301 | config.setGroup("Main"); | 310 | config.setGroup("Main"); |
@@ -307,13 +316,13 @@ DateBookWeekLst::~DateBookWeekLst(){ | |||
307 | config.setGroup("Main"); | 316 | config.setGroup("Main"); |
308 | config.writeEntry("weeklst_dbl", dbl); | 317 | config.writeEntry("weeklst_dbl", dbl); |
309 | } | 318 | } |
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()); |
317 | } | 326 | } |
318 | void DateBookWeekLst::setDbl(bool on) { | 327 | void DateBookWeekLst::setDbl(bool on) { |
319 | dbl=on; | 328 | dbl=on; |
@@ -323,13 +332,13 @@ void DateBookWeekLst::redraw() {getEvents();} | |||
323 | 332 | ||
324 | QDate DateBookWeekLst::date() const { | 333 | QDate DateBookWeekLst::date() const { |
325 | QDate d; | 334 | QDate d; |
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 { |
333 | dow++; | 342 | dow++; |
334 | } | 343 | } |
335 | 344 | ||
@@ -344,15 +353,15 @@ void DateBookWeekLst::getEvents() { | |||
344 | 353 | ||
345 | if (view) delete view; | 354 | if (view) delete view; |
346 | if (dbl) { | 355 | if (dbl) { |
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 &))); |
356 | connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); | 365 | connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); |
357 | connect (view, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &)), | 366 | connect (view, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &)), |
358 | this, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &))); | 367 | this, SIGNAL(addEvent(const QDateTime &, const QDateTime &, const QString &, const QString &))); |
@@ -384,7 +393,6 @@ void DateBookWeekLst::keyPressEvent(QKeyEvent *e) | |||
384 | header->nextWeek(); | 393 | header->nextWeek(); |
385 | break; | 394 | break; |
386 | default: | 395 | default: |
387 | e->ignore(); | 396 | e->ignore(); |
388 | } | 397 | } |
389 | } | 398 | } |
390 | |||