author | alwin <alwin> | 2005-03-17 20:56:54 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-17 20:56:54 (UTC) |
commit | 120694217c012e3c1c394db0598da41f2705e965 (patch) (unidiff) | |
tree | 6fa3d501c94aa2f6bfce7bc2c1a0556b69e75e20 | |
parent | 7382ac56570e7be468c570de27d5f7a40735873f (diff) | |
download | opie-120694217c012e3c1c394db0598da41f2705e965.zip opie-120694217c012e3c1c394db0598da41f2705e965.tar.gz opie-120694217c012e3c1c394db0598da41f2705e965.tar.bz2 |
fix error in thinking about date-diffs I made
-rw-r--r-- | core/pim/datebook/datebookweeklst.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp index 0555bc7..b0e78f1 100644 --- a/core/pim/datebook/datebookweeklst.cpp +++ b/core/pim/datebook/datebookweeklst.cpp | |||
@@ -1,437 +1,437 @@ | |||
1 | #include "namespace_hack.h" | 1 | #include "namespace_hack.h" |
2 | #include "datebookweeklst.h" | 2 | #include "datebookweeklst.h" |
3 | 3 | ||
4 | #include "datebook.h" | 4 | #include "datebook.h" |
5 | #include "datebooktypes.h" | 5 | #include "datebooktypes.h" |
6 | 6 | ||
7 | #include <opie2/odebug.h> | 7 | #include <opie2/odebug.h> |
8 | 8 | ||
9 | #include <qpe/datebookmonth.h> | 9 | #include <qpe/datebookmonth.h> |
10 | #include <qpe/config.h> | 10 | #include <qpe/config.h> |
11 | #include <qpe/ir.h> | 11 | #include <qpe/ir.h> |
12 | #include <qpe/resource.h> | 12 | #include <qpe/resource.h> |
13 | 13 | ||
14 | #include <qlayout.h> | 14 | #include <qlayout.h> |
15 | #include <qtoolbutton.h> | 15 | #include <qtoolbutton.h> |
16 | #include <qtl.h> | 16 | #include <qtl.h> |
17 | 17 | ||
18 | bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); | 18 | bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); |
19 | 19 | ||
20 | using namespace Opie::Ui; | 20 | using namespace Opie::Ui; |
21 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) | 21 | DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) |
22 | : DateBookWeekLstHeaderBase(parent, name, fl) | 22 | : DateBookWeekLstHeaderBase(parent, name, fl) |
23 | { | 23 | { |
24 | setBackgroundMode( PaletteButton ); | 24 | setBackgroundMode( PaletteButton ); |
25 | labelDate->setBackgroundMode( PaletteButton ); | 25 | labelDate->setBackgroundMode( PaletteButton ); |
26 | forwardweek->setBackgroundMode( PaletteButton ); | 26 | forwardweek->setBackgroundMode( PaletteButton ); |
27 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); | 27 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); |
28 | forwardmonth->setBackgroundMode( PaletteButton ); | 28 | forwardmonth->setBackgroundMode( PaletteButton ); |
29 | forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); | 29 | forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); |
30 | backweek->setBackgroundMode( PaletteButton ); | 30 | backweek->setBackgroundMode( PaletteButton ); |
31 | backweek->setPixmap( Resource::loadPixmap("back") ); | 31 | backweek->setPixmap( Resource::loadPixmap("back") ); |
32 | backmonth->setBackgroundMode( PaletteButton ); | 32 | backmonth->setBackgroundMode( PaletteButton ); |
33 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); | 33 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); |
34 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); | 34 | DateBookWeekLstHeaderBaseLayout->setSpacing(0); |
35 | DateBookWeekLstHeaderBaseLayout->setMargin(0); | 35 | DateBookWeekLstHeaderBaseLayout->setMargin(0); |
36 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); | 36 | //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); |
37 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); | 37 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); |
38 | 38 | ||
39 | connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth())); | 39 | connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth())); |
40 | connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek())); | 40 | connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek())); |
41 | connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek())); | 41 | connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek())); |
42 | connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth())); | 42 | connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth())); |
43 | connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate())); | 43 | connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate())); |
44 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); | 44 | connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); |
45 | bStartOnMonday=onM; | 45 | bStartOnMonday=onM; |
46 | } | 46 | } |
47 | DateBookWeekLstHeader::~DateBookWeekLstHeader(){} | 47 | DateBookWeekLstHeader::~DateBookWeekLstHeader(){} |
48 | 48 | ||
49 | void DateBookWeekLstHeader::setDate(const QDate &d) { | 49 | void DateBookWeekLstHeader::setDate(const QDate &d) { |
50 | int year,week,dayofweek; | 50 | int year,week,dayofweek; |
51 | date=d; | 51 | date=d; |
52 | dayofweek=d.dayOfWeek(); | 52 | dayofweek=d.dayOfWeek(); |
53 | if(bStartOnMonday) | 53 | if(bStartOnMonday) |
54 | dayofweek--; | 54 | dayofweek--; |
55 | else if( dayofweek == 7 ) | 55 | else if( dayofweek == 7 ) |
56 | /* we already have the right day -7 would lead to the same week */ | 56 | /* we already have the right day -7 would lead to the same week */ |
57 | dayofweek = 0; | 57 | dayofweek = 0; |
58 | 58 | ||
59 | date=date.addDays(-dayofweek); | 59 | date=date.addDays(-dayofweek); |
60 | 60 | ||
61 | calcWeek(date,week,year,bStartOnMonday); | 61 | calcWeek(date,week,year,bStartOnMonday); |
62 | QDate start=date; | 62 | QDate start=date; |
63 | QDate stop=start.addDays(6); | 63 | QDate stop=start.addDays(6); |
64 | labelDate->setText( QString::number(start.day()) + "." + | 64 | labelDate->setText( QString::number(start.day()) + "." + |
65 | Calendar::nameOfMonth( start.month() ) + "-" + | 65 | Calendar::nameOfMonth( start.month() ) + "-" + |
66 | QString::number(stop.day()) + "." + | 66 | QString::number(stop.day()) + "." + |
67 | Calendar::nameOfMonth( stop.month()) +" ("+ | 67 | Calendar::nameOfMonth( stop.month()) +" ("+ |
68 | tr("w")+":"+QString::number( week ) +")"); | 68 | tr("w")+":"+QString::number( week ) +")"); |
69 | date = d; // bugfix: 0001126 - date has to be the selected date, not monday! | 69 | date = d; // bugfix: 0001126 - date has to be the selected date, not monday! |
70 | emit dateChanged(date); | 70 | emit dateChanged(date); |
71 | } | 71 | } |
72 | 72 | ||
73 | void DateBookWeekLstHeader::pickDate() { | 73 | void DateBookWeekLstHeader::pickDate() { |
74 | static QPopupMenu *m1 = 0; | 74 | static QPopupMenu *m1 = 0; |
75 | static DateBookMonth *picker = 0; | 75 | static DateBookMonth *picker = 0; |
76 | if ( !m1 ) { | 76 | if ( !m1 ) { |
77 | m1 = new QPopupMenu( this ); | 77 | m1 = new QPopupMenu( this ); |
78 | picker = new DateBookMonth( m1, 0, TRUE ); | 78 | picker = new DateBookMonth( m1, 0, TRUE ); |
79 | m1->insertItem( picker ); | 79 | m1->insertItem( picker ); |
80 | connect( picker, SIGNAL( dateClicked(int,int,int) ),this, SLOT( setDate(int,int,int) ) ); | 80 | connect( picker, SIGNAL( dateClicked(int,int,int) ),this, SLOT( setDate(int,int,int) ) ); |
81 | //connect( m1, SIGNAL( aboutToHide() ), | 81 | //connect( m1, SIGNAL( aboutToHide() ), |
82 | //this, SLOT( gotHide() ) ); | 82 | //this, SLOT( gotHide() ) ); |
83 | } | 83 | } |
84 | picker->setDate( date.year(), date.month(), date.day() ); | 84 | picker->setDate( date.year(), date.month(), date.day() ); |
85 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); | 85 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); |
86 | picker->setFocus(); | 86 | picker->setFocus(); |
87 | } | 87 | } |
88 | void DateBookWeekLstHeader::setDate(int y, int m, int d) { | 88 | void DateBookWeekLstHeader::setDate(int y, int m, int d) { |
89 | setDate(QDate(y,m,d)); | 89 | setDate(QDate(y,m,d)); |
90 | } | 90 | } |
91 | 91 | ||
92 | void DateBookWeekLstHeader::nextWeek() { | 92 | void DateBookWeekLstHeader::nextWeek() { |
93 | setDate(date.addDays(7)); | 93 | setDate(date.addDays(7)); |
94 | } | 94 | } |
95 | void DateBookWeekLstHeader::prevWeek() { | 95 | void DateBookWeekLstHeader::prevWeek() { |
96 | setDate(date.addDays(-7)); | 96 | setDate(date.addDays(-7)); |
97 | } | 97 | } |
98 | void DateBookWeekLstHeader::nextMonth() | 98 | void DateBookWeekLstHeader::nextMonth() |
99 | { | 99 | { |
100 | setDate(date.addDays(28)); | 100 | setDate(date.addDays(28)); |
101 | } | 101 | } |
102 | void DateBookWeekLstHeader::prevMonth() | 102 | void DateBookWeekLstHeader::prevMonth() |
103 | { | 103 | { |
104 | setDate(date.addDays(-28)); | 104 | setDate(date.addDays(-28)); |
105 | } | 105 | } |
106 | 106 | ||
107 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */, | 107 | DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */, |
108 | QWidget* parent, | 108 | QWidget* parent, |
109 | const char* name, | 109 | const char* name, |
110 | WFlags fl ) | 110 | WFlags fl ) |
111 | : DateBookWeekLstDayHdrBase(parent, name, fl) { | 111 | : DateBookWeekLstDayHdrBase(parent, name, fl) { |
112 | 112 | ||
113 | date=d; | 113 | date=d; |
114 | 114 | ||
115 | static const QString wdays=tr("MTWTFSSM", "Week days"); | 115 | static const QString wdays=tr("MTWTFSSM", "Week days"); |
116 | char day=wdays[d.dayOfWeek()-1]; | 116 | char day=wdays[d.dayOfWeek()-1]; |
117 | 117 | ||
118 | //dont use dayOfWeek() to save space ! | 118 | //dont use dayOfWeek() to save space ! |
119 | label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) ); | 119 | label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) ); |
120 | 120 | ||
121 | add->setText("+"); | 121 | add->setText("+"); |
122 | 122 | ||
123 | if (d == QDate::currentDate()) { | 123 | if (d == QDate::currentDate()) { |
124 | QPalette pal=label->palette(); | 124 | QPalette pal=label->palette(); |
125 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); | 125 | pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); |
126 | label->setPalette(pal); | 126 | label->setPalette(pal); |
127 | 127 | ||
128 | /* | 128 | /* |
129 | QFont f=label->font(); | 129 | QFont f=label->font(); |
130 | f.setItalic(true); | 130 | f.setItalic(true); |
131 | label->setFont(f); | 131 | label->setFont(f); |
132 | label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); | 132 | label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); |
133 | */ | 133 | */ |
134 | } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday | 134 | } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday |
135 | QPalette pal=label->palette(); | 135 | QPalette pal=label->palette(); |
136 | pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); | 136 | pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); |
137 | label->setPalette(pal); | 137 | label->setPalette(pal); |
138 | } | 138 | } |
139 | 139 | ||
140 | connect (label, SIGNAL(clicked()), this, SLOT(showDay())); | 140 | connect (label, SIGNAL(clicked()), this, SLOT(showDay())); |
141 | connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); | 141 | connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); |
142 | } | 142 | } |
143 | 143 | ||
144 | void DateBookWeekLstDayHdr::showDay() { | 144 | void DateBookWeekLstDayHdr::showDay() { |
145 | emit showDate(date.year(), date.month(), date.day()); | 145 | emit showDate(date.year(), date.month(), date.day()); |
146 | } | 146 | } |
147 | 147 | ||
148 | void DateBookWeekLstDayHdr::newEvent() { | 148 | void DateBookWeekLstDayHdr::newEvent() { |
149 | QDateTime start, stop; | 149 | QDateTime start, stop; |
150 | start=stop=date; | 150 | start=stop=date; |
151 | start.setTime(QTime(10,0)); | 151 | start.setTime(QTime(10,0)); |
152 | stop.setTime(QTime(12,0)); | 152 | stop.setTime(QTime(12,0)); |
153 | 153 | ||
154 | emit addEvent(start,stop,"",0); | 154 | emit addEvent(start,stop,"",0); |
155 | } | 155 | } |
156 | DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev, | 156 | DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev, |
157 | int weeklistviewconfig, | 157 | int weeklistviewconfig, |
158 | QWidget* parent, | 158 | QWidget* parent, |
159 | const char* name, | 159 | const char* name, |
160 | WFlags fl ) : OClickableLabel(parent,name,fl), event(ev) | 160 | WFlags fl ) : OClickableLabel(parent,name,fl), event(ev) |
161 | { | 161 | { |
162 | // old values... lastday = "__|__", middle=" |---", Firstday="00:00", | 162 | // old values... lastday = "__|__", middle=" |---", Firstday="00:00", |
163 | QString s,start,middle,end,day; | 163 | QString s,start,middle,end,day; |
164 | 164 | ||
165 | odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl; | 165 | odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl; |
166 | if(weeklistviewconfig==NONE) { // No times displayed. | 166 | if(weeklistviewconfig==NONE) { // No times displayed. |
167 | // start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); | 167 | // start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); |
168 | // middle.sprintf("<--->"); | 168 | // middle.sprintf("<--->"); |
169 | // end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); | 169 | // end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); |
170 | // day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); | 170 | // day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); |
171 | } else if(weeklistviewconfig==NORMAL) { // "Normal", only display start time. | 171 | } else if(weeklistviewconfig==NORMAL) { // "Normal", only display start time. |
172 | start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); | 172 | start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); |
173 | middle.sprintf(" |---"); | 173 | middle.sprintf(" |---"); |
174 | end.sprintf("__|__"); | 174 | end.sprintf("__|__"); |
175 | day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); | 175 | day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); |
176 | } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times. | 176 | } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times. |
177 | start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); | 177 | start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); |
178 | middle.sprintf("<--->"); | 178 | middle.sprintf("<--->"); |
179 | end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); | 179 | end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); |
180 | day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); | 180 | day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); |
181 | } | 181 | } |
182 | 182 | ||
183 | if(ev.event().type() == Event::Normal) { | 183 | if(ev.event().type() == Event::Normal) { |
184 | if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) { // day event. | 184 | if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) { // day event. |
185 | s=day; | 185 | s=day; |
186 | } else if(ev.startDate()==ev.date()) { // start event. | 186 | } else if(ev.startDate()==ev.date()) { // start event. |
187 | s=start; | 187 | s=start; |
188 | } else if(ev.endDate()==ev.date()) { // end event. | 188 | } else if(ev.endDate()==ev.date()) { // end event. |
189 | s=end; | 189 | s=end; |
190 | } else { // middle day. | 190 | } else { // middle day. |
191 | s=middle; | 191 | s=middle; |
192 | } | 192 | } |
193 | } else { | 193 | } else { |
194 | s=""; | 194 | s=""; |
195 | } | 195 | } |
196 | setText(QString(s) + " " + ev.description()); | 196 | setText(QString(s) + " " + ev.description()); |
197 | // connect(this, SIGNAL(clicked()), this, SLOT(editMe())); | 197 | // connect(this, SIGNAL(clicked()), this, SLOT(editMe())); |
198 | setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); | 198 | setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); |
199 | } | 199 | } |
200 | void DateBookWeekLstEvent::editMe() { | 200 | void DateBookWeekLstEvent::editMe() { |
201 | emit editEvent(event.event()); | 201 | emit editEvent(event.event()); |
202 | } | 202 | } |
203 | void DateBookWeekLstEvent::duplicateMe() | 203 | void DateBookWeekLstEvent::duplicateMe() |
204 | { | 204 | { |
205 | emit duplicateEvent(event.event()); | 205 | emit duplicateEvent(event.event()); |
206 | } | 206 | } |
207 | void DateBookWeekLstEvent::deleteMe() | 207 | void DateBookWeekLstEvent::deleteMe() |
208 | { | 208 | { |
209 | emit removeEvent(event.event()); | 209 | emit removeEvent(event.event()); |
210 | emit redraw(); | 210 | emit redraw(); |
211 | } | 211 | } |
212 | void DateBookWeekLstEvent::beamMe() | 212 | void DateBookWeekLstEvent::beamMe() |
213 | { | 213 | { |
214 | emit beamEvent( event.event() ); | 214 | emit beamEvent( event.event() ); |
215 | } | 215 | } |
216 | void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e ) | 216 | void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e ) |
217 | { | 217 | { |
218 | popmenue = new QPopupMenu; | 218 | popmenue = new QPopupMenu; |
219 | popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe())); | 219 | popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe())); |
220 | popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe())); | 220 | popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe())); |
221 | popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe())); | 221 | popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe())); |
222 | if(Ir::supported()) | 222 | if(Ir::supported()) |
223 | popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe())); | 223 | popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe())); |
224 | popmenue->popup( mapToGlobal( e->pos() )); | 224 | popmenue->popup( mapToGlobal( e->pos() )); |
225 | } | 225 | } |
226 | 226 | ||
227 | DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, | 227 | DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, |
228 | const QDate &d, bool onM, | 228 | const QDate &d, bool onM, |
229 | QWidget* parent, | 229 | QWidget* parent, |
230 | const char* name, WFlags fl) | 230 | const char* name, WFlags fl) |
231 | : QWidget( parent, name, fl ) | 231 | : QWidget( parent, name, fl ) |
232 | { | 232 | { |
233 | Config config("DateBook"); | 233 | Config config("DateBook"); |
234 | config.setGroup("Main"); | 234 | config.setGroup("Main"); |
235 | int weeklistviewconfig=config.readNumEntry("weeklistviewconfig", NORMAL); | 235 | int weeklistviewconfig=config.readNumEntry("weeklistviewconfig", NORMAL); |
236 | odebug << "weeklistviewconfig: " << weeklistviewconfig << oendl; | 236 | odebug << "weeklistviewconfig: " << weeklistviewconfig << oendl; |
237 | 237 | ||
238 | bStartOnMonday=onM; | 238 | bStartOnMonday=onM; |
239 | setPalette(white); | 239 | setPalette(white); |
240 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); | 240 | setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); |
241 | 241 | ||
242 | QVBoxLayout *layout = new QVBoxLayout( this ); | 242 | QVBoxLayout *layout = new QVBoxLayout( this ); |
243 | 243 | ||
244 | qBubbleSort(ev); | 244 | qBubbleSort(ev); |
245 | QValueListIterator<EffectiveEvent> it; | 245 | QValueListIterator<EffectiveEvent> it; |
246 | it=ev.begin(); | 246 | it=ev.begin(); |
247 | 247 | ||
248 | int dayOrder[7]; | 248 | int dayOrder[7]; |
249 | if (bStartOnMonday) { | 249 | if (bStartOnMonday) { |
250 | for (int d=0; d<7; d++) dayOrder[d]=d+1; | 250 | for (int d=0; d<7; d++) dayOrder[d]=d+1; |
251 | } else { | 251 | } else { |
252 | for (int d=0; d<7; d++) dayOrder[d]=d; | 252 | for (int d=0; d<7; d++) dayOrder[d]=d; |
253 | dayOrder[0]=7; | 253 | dayOrder[0]=7; |
254 | } | 254 | } |
255 | 255 | ||
256 | // Calculate offset to first day of week. | 256 | // Calculate offset to first day of week. |
257 | int dayoffset=d.dayOfWeek(); | 257 | int dayoffset=d.dayOfWeek(); |
258 | if(bStartOnMonday) dayoffset--; | 258 | if(bStartOnMonday) dayoffset--; |
259 | else if( dayoffset == 7 ) dayoffset = 0; | 259 | else if( dayoffset == 7 ) dayoffset = 0; |
260 | 260 | ||
261 | for (int i=0; i<7; i++) { | 261 | for (int i=0; i<7; i++) { |
262 | // Header | 262 | // Header |
263 | DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i-dayoffset), bStartOnMonday,this); | 263 | DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i-dayoffset), bStartOnMonday,this); |
264 | connect(hdr, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); | 264 | connect(hdr, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); |
265 | connect(hdr, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), | 265 | connect(hdr, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), |
266 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); | 266 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); |
267 | layout->addWidget(hdr); | 267 | layout->addWidget(hdr); |
268 | 268 | ||
269 | // Events | 269 | // Events |
270 | while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { | 270 | while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { |
271 | if(!(((*it).end().hour()==0) && ((*it).end().minute()==0) && ((*it).startDate()!=(*it).date()))) { // Skip events ending at 00:00 starting at another day. | 271 | if(!(((*it).end().hour()==0) && ((*it).end().minute()==0) && ((*it).startDate()!=(*it).date()))) { // Skip events ending at 00:00 starting at another day. |
272 | DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,weeklistviewconfig,this); | 272 | DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,weeklistviewconfig,this); |
273 | layout->addWidget(l); | 273 | layout->addWidget(l); |
274 | connect (l, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); | 274 | connect (l, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); |
275 | connect (l, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); | 275 | connect (l, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); |
276 | connect (l, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); | 276 | connect (l, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); |
277 | connect (l, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); | 277 | connect (l, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); |
278 | connect (l, SIGNAL(redraw()), this, SIGNAL(redraw())); | 278 | connect (l, SIGNAL(redraw()), this, SIGNAL(redraw())); |
279 | } | 279 | } |
280 | it++; | 280 | it++; |
281 | } | 281 | } |
282 | layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); | 282 | layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); |
283 | } | 283 | } |
284 | } | 284 | } |
285 | DateBookWeekLstView::~DateBookWeekLstView(){} | 285 | DateBookWeekLstView::~DateBookWeekLstView(){} |
286 | void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();} | 286 | void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();} |
287 | 287 | ||
288 | DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1, | 288 | DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1, |
289 | QValueList<EffectiveEvent> &ev2, | 289 | QValueList<EffectiveEvent> &ev2, |
290 | QDate &d, bool onM, | 290 | QDate &d, bool onM, |
291 | QWidget* parent, | 291 | QWidget* parent, |
292 | const char* name, WFlags fl) | 292 | const char* name, WFlags fl) |
293 | : QWidget( parent, name, fl ) | 293 | : QWidget( parent, name, fl ) |
294 | { | 294 | { |
295 | QHBoxLayout *layout = new QHBoxLayout( this ); | 295 | QHBoxLayout *layout = new QHBoxLayout( this ); |
296 | 296 | ||
297 | DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this); | 297 | DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this); |
298 | layout->addWidget(w); | 298 | layout->addWidget(w); |
299 | connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); | 299 | connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); |
300 | connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); | 300 | connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); |
301 | connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); | 301 | connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); |
302 | connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); | 302 | connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); |
303 | connect (w, SIGNAL(redraw()), this, SIGNAL(redraw())); | 303 | connect (w, SIGNAL(redraw()), this, SIGNAL(redraw())); |
304 | connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); | 304 | connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); |
305 | connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), | 305 | connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), |
306 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); | 306 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); |
307 | 307 | ||
308 | 308 | ||
309 | w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this); | 309 | w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this); |
310 | layout->addWidget(w); | 310 | layout->addWidget(w); |
311 | connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); | 311 | connect (w, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); |
312 | connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); | 312 | connect (w, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); |
313 | connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); | 313 | connect (w, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); |
314 | connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); | 314 | connect (w, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); |
315 | connect (w, SIGNAL(redraw()), this, SIGNAL(redraw())); | 315 | connect (w, SIGNAL(redraw()), this, SIGNAL(redraw())); |
316 | connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); | 316 | connect (w, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); |
317 | connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), | 317 | connect (w, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), |
318 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); | 318 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); |
319 | } | 319 | } |
320 | 320 | ||
321 | DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB, | 321 | DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB, |
322 | QWidget *parent, | 322 | QWidget *parent, |
323 | const char *name ) | 323 | const char *name ) |
324 | : QWidget( parent, name ), | 324 | : QWidget( parent, name ), |
325 | db( newDB ), | 325 | db( newDB ), |
326 | startTime( 0 ), | 326 | startTime( 0 ), |
327 | ampm( ap ), | 327 | ampm( ap ), |
328 | bStartOnMonday(onM) | 328 | bStartOnMonday(onM) |
329 | { | 329 | { |
330 | setFocusPolicy(StrongFocus); | 330 | setFocusPolicy(StrongFocus); |
331 | layout = new QVBoxLayout( this ); | 331 | layout = new QVBoxLayout( this ); |
332 | layout->setMargin(0); | 332 | layout->setMargin(0); |
333 | 333 | ||
334 | header=new DateBookWeekLstHeader(onM, this); | 334 | header=new DateBookWeekLstHeader(onM, this); |
335 | layout->addWidget( header ); | 335 | layout->addWidget( header ); |
336 | connect(header, SIGNAL(dateChanged(QDate&)), this, SLOT(dateChanged(QDate&))); | 336 | connect(header, SIGNAL(dateChanged(QDate&)), this, SLOT(dateChanged(QDate&))); |
337 | connect(header, SIGNAL(setDbl(bool)), this, SLOT(setDbl(bool))); | 337 | connect(header, SIGNAL(setDbl(bool)), this, SLOT(setDbl(bool))); |
338 | 338 | ||
339 | scroll=new QScrollView(this); | 339 | scroll=new QScrollView(this); |
340 | scroll->setResizePolicy(QScrollView::AutoOneFit); | 340 | scroll->setResizePolicy(QScrollView::AutoOneFit); |
341 | layout->addWidget(scroll); | 341 | layout->addWidget(scroll); |
342 | 342 | ||
343 | view=NULL; | 343 | view=NULL; |
344 | Config config("DateBook"); | 344 | Config config("DateBook"); |
345 | config.setGroup("Main"); | 345 | config.setGroup("Main"); |
346 | dbl=config.readBoolEntry("weeklst_dbl", false); | 346 | dbl=config.readBoolEntry("weeklst_dbl", false); |
347 | header->dbl->setOn(dbl); | 347 | header->dbl->setOn(dbl); |
348 | } | 348 | } |
349 | DateBookWeekLst::~DateBookWeekLst(){ | 349 | DateBookWeekLst::~DateBookWeekLst(){ |
350 | Config config("DateBook"); | 350 | Config config("DateBook"); |
351 | config.setGroup("Main"); | 351 | config.setGroup("Main"); |
352 | config.writeEntry("weeklst_dbl", dbl); | 352 | config.writeEntry("weeklst_dbl", dbl); |
353 | } | 353 | } |
354 | 354 | ||
355 | void DateBookWeekLst::setDate(const QDate &d) { | 355 | void DateBookWeekLst::setDate(const QDate &d) { |
356 | bdate=d; | 356 | bdate=d; |
357 | header->setDate(d); | 357 | header->setDate(d); |
358 | } | 358 | } |
359 | 359 | ||
360 | void DateBookWeekLst::setDbl(bool on) { | 360 | void DateBookWeekLst::setDbl(bool on) { |
361 | dbl=on; | 361 | dbl=on; |
362 | redraw(); | 362 | redraw(); |
363 | } | 363 | } |
364 | void DateBookWeekLst::redraw() {getEvents();} | 364 | void DateBookWeekLst::redraw() {getEvents();} |
365 | 365 | ||
366 | QDate DateBookWeekLst::date() { | 366 | QDate DateBookWeekLst::date() { |
367 | return bdate; | 367 | return bdate; |
368 | } | 368 | } |
369 | 369 | ||
370 | // return the date at the beginning of the week... | 370 | // return the date at the beginning of the week... |
371 | // copied from DateBookWeek | 371 | // copied from DateBookWeek |
372 | QDate DateBookWeekLst::weekDate() const | 372 | QDate DateBookWeekLst::weekDate() const |
373 | { | 373 | { |
374 | QDate d=bdate; | 374 | QDate d=bdate; |
375 | 375 | ||
376 | // Calculate offset to first day of week. | 376 | // Calculate offset to first day of week. |
377 | int dayoffset=d.dayOfWeek(); | 377 | int dayoffset=d.dayOfWeek(); |
378 | if(bStartOnMonday) dayoffset--; | 378 | if(bStartOnMonday) dayoffset--; |
379 | else if( dayoffset == 7 ) | 379 | else if( dayoffset == 7 ) |
380 | dayoffset = 0; | 380 | dayoffset = 0; |
381 | 381 | ||
382 | return d.addDays(-dayoffset); | 382 | return d.addDays(-dayoffset); |
383 | } | 383 | } |
384 | 384 | ||
385 | void DateBookWeekLst::getEvents() { | 385 | void DateBookWeekLst::getEvents() { |
386 | QDate start = weekDate(); //date(); | 386 | QDate start = weekDate(); //date(); |
387 | QDate stop = start.addDays(7); | 387 | QDate stop = start.addDays(6); |
388 | QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop); | 388 | QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop); |
389 | 389 | ||
390 | if (view) delete view; | 390 | if (view) delete view; |
391 | if (dbl) { | 391 | if (dbl) { |
392 | QDate start2=start.addDays(8); | 392 | QDate start2=start.addDays(7); |
393 | stop=start2.addDays(7); | 393 | stop=start2.addDays(6); |
394 | QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); | 394 | QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); |
395 | view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); | 395 | view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); |
396 | } else { | 396 | } else { |
397 | view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll); | 397 | view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll); |
398 | } | 398 | } |
399 | 399 | ||
400 | connect (view, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); | 400 | connect (view, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); |
401 | connect (view, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); | 401 | connect (view, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); |
402 | connect (view, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); | 402 | connect (view, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); |
403 | connect (view, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); | 403 | connect (view, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); |
404 | connect (view, SIGNAL(redraw()), this, SLOT(redraw())); | 404 | connect (view, SIGNAL(redraw()), this, SLOT(redraw())); |
405 | connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); | 405 | connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); |
406 | connect (view, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), | 406 | connect (view, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), |
407 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); | 407 | this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); |
408 | 408 | ||
409 | scroll->addChild(view); | 409 | scroll->addChild(view); |
410 | view->show(); | 410 | view->show(); |
411 | scroll->updateScrollBars(); | 411 | scroll->updateScrollBars(); |
412 | } | 412 | } |
413 | 413 | ||
414 | void DateBookWeekLst::dateChanged(QDate &newdate) { | 414 | void DateBookWeekLst::dateChanged(QDate &newdate) { |
415 | bdate=newdate; | 415 | bdate=newdate; |
416 | getEvents(); | 416 | getEvents(); |
417 | } | 417 | } |
418 | 418 | ||
419 | void DateBookWeekLst::keyPressEvent(QKeyEvent *e) | 419 | void DateBookWeekLst::keyPressEvent(QKeyEvent *e) |
420 | { | 420 | { |
421 | switch(e->key()) { | 421 | switch(e->key()) { |
422 | case Key_Up: | 422 | case Key_Up: |
423 | scroll->scrollBy(0, -20); | 423 | scroll->scrollBy(0, -20); |
424 | break; | 424 | break; |
425 | case Key_Down: | 425 | case Key_Down: |
426 | scroll->scrollBy(0, 20); | 426 | scroll->scrollBy(0, 20); |
427 | break; | 427 | break; |
428 | case Key_Left: | 428 | case Key_Left: |
429 | header->prevWeek(); | 429 | header->prevWeek(); |
430 | break; | 430 | break; |
431 | case Key_Right: | 431 | case Key_Right: |
432 | header->nextWeek(); | 432 | header->nextWeek(); |
433 | break; | 433 | break; |
434 | default: | 434 | default: |
435 | e->ignore(); | 435 | e->ignore(); |
436 | } | 436 | } |
437 | } | 437 | } |