summaryrefslogtreecommitdiff
authorumopapisdn <umopapisdn>2003-03-23 20:49:17 (UTC)
committer umopapisdn <umopapisdn>2003-03-23 20:49:17 (UTC)
commit90772042f0d726149093675cede488676a94562b (patch) (unidiff)
tree853a03e23255c8b8fdfd74cc284cbd02663c94a7
parentb5606a63c9f3524f9475b6ac79f0b6bcc7162fa6 (diff)
downloadopie-90772042f0d726149093675cede488676a94562b.zip
opie-90772042f0d726149093675cede488676a94562b.tar.gz
opie-90772042f0d726149093675cede488676a94562b.tar.bz2
Bugfix: (bug #0000211) Events ending at mat the following day. Fix for weeklistview.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookweeklst.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
index 9089fe9..e8e12ba 100644
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/core/pim/datebook/datebookweeklst.cpp
@@ -118,130 +118,132 @@ DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /*onM*/,
118 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); 118 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor()));
119 */ 119 */
120 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday 120 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday
121 QPalette pal=label->palette(); 121 QPalette pal=label->palette();
122 pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); 122 pal.setColor(QColorGroup::Foreground, QColor(255,0,0));
123 label->setPalette(pal); 123 label->setPalette(pal);
124 } 124 }
125 125
126 126
127 connect (label, SIGNAL(clicked()), this, SLOT(showDay())); 127 connect (label, SIGNAL(clicked()), this, SLOT(showDay()));
128 connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); 128 connect (add, SIGNAL(clicked()), this, SLOT(newEvent()));
129} 129}
130 130
131void DateBookWeekLstDayHdr::showDay() { 131void DateBookWeekLstDayHdr::showDay() {
132 emit showDate(date.year(), date.month(), date.day()); 132 emit showDate(date.year(), date.month(), date.day());
133} 133}
134void DateBookWeekLstDayHdr::newEvent() { 134void DateBookWeekLstDayHdr::newEvent() {
135 QDateTime start, stop; 135 QDateTime start, stop;
136 start=stop=date; 136 start=stop=date;
137 start.setTime(QTime(10,0)); 137 start.setTime(QTime(10,0));
138 stop.setTime(QTime(12,0)); 138 stop.setTime(QTime(12,0));
139 139
140 emit addEvent(start,stop,""); 140 emit addEvent(start,stop,"");
141} 141}
142DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev, 142DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
143 QWidget* parent, 143 QWidget* parent,
144 const char* name, 144 const char* name,
145 WFlags fl) : 145 WFlags fl) :
146 OClickableLabel(parent,name,fl), 146 OClickableLabel(parent,name,fl),
147 event(ev) 147 event(ev)
148{ 148{
149 char s[10]; 149 char s[10];
150 if ( ev.startDate() != ev.date() ) { // multiday event (not first day) 150 if ( ev.startDate() != ev.date() ) { // multiday event (not first day)
151 if ( ev.endDate() == ev.date() ) { // last day 151 if ( ev.endDate() == ev.date() ) { // last day
152 strcpy(s, "__|__"); 152 strcpy(s, "__|__");
153 } else { 153 } else {
154 strcpy(s, " |---"); 154 strcpy(s, " |---");
155 } 155 }
156 } else { 156 } else {
157 if(ev.event().type() == Event::Normal ) 157 if(ev.event().type() == Event::Normal )
158 sprintf(s,"%.2d:%.2d",ev.start().hour(),ev.start().minute()); 158 sprintf(s,"%.2d:%.2d",ev.start().hour(),ev.start().minute());
159 else 159 else
160 sprintf(s," "); 160 sprintf(s," ");
161 } 161 }
162 setText(QString(s) + " " + ev.description()); 162 setText(QString(s) + " " + ev.description());
163 connect(this, SIGNAL(clicked()), this, SLOT(editMe())); 163 connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
164 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); 164 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
165} 165}
166void DateBookWeekLstEvent::editMe() { 166void DateBookWeekLstEvent::editMe() {
167 emit editEvent(event.event()); 167 emit editEvent(event.event());
168} 168}
169 169
170 170
171DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, 171DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
172 const QDate &d, bool onM, 172 const QDate &d, bool onM,
173 QWidget* parent, 173 QWidget* parent,
174 const char* name, WFlags fl) 174 const char* name, WFlags fl)
175 : QWidget( parent, name, fl ) 175 : QWidget( parent, name, fl )
176{ 176{
177 onMonday=onM; 177 onMonday=onM;
178 setPalette(white); 178 setPalette(white);
179 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); 179 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
180 180
181 QVBoxLayout *layout = new QVBoxLayout( this ); 181 QVBoxLayout *layout = new QVBoxLayout( this );
182 182
183 qBubbleSort(ev); 183 qBubbleSort(ev);
184 QValueListIterator<EffectiveEvent> it; 184 QValueListIterator<EffectiveEvent> it;
185 it=ev.begin(); 185 it=ev.begin();
186 186
187 int dayOrder[7]; 187 int dayOrder[7];
188 if (onMonday) 188 if (onMonday)
189 for (int d=0; d<7; d++) dayOrder[d]=d+1; 189 for (int d=0; d<7; d++) dayOrder[d]=d+1;
190 else { 190 else {
191 for (int d=0; d<7; d++) dayOrder[d]=d; 191 for (int d=0; d<7; d++) dayOrder[d]=d;
192 dayOrder[0]=7; 192 dayOrder[0]=7;
193 } 193 }
194 194
195 for (int i=0; i<7; i++) { 195 for (int i=0; i<7; i++) {
196 // Header 196 // Header
197 DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i), 197 DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i),
198 onMonday,this); 198 onMonday,this);
199 connect(hdr, SIGNAL(showDate(int,int,int)), 199 connect(hdr, SIGNAL(showDate(int,int,int)),
200 this, SIGNAL(showDate(int,int,int))); 200 this, SIGNAL(showDate(int,int,int)));
201 connect(hdr, SIGNAL(addEvent(const QDateTime &, 201 connect(hdr, SIGNAL(addEvent(const QDateTime &,
202 const QDateTime &, 202 const QDateTime &,
203 const QString &)), 203 const QString &)),
204 this, SIGNAL(addEvent(const QDateTime &, 204 this, SIGNAL(addEvent(const QDateTime &,
205 const QDateTime &, 205 const QDateTime &,
206 const QString &))); 206 const QString &)));
207 layout->addWidget(hdr); 207 layout->addWidget(hdr);
208 208
209 // Events 209 // Events
210 while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { 210 while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) {
211 DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,this); 211 if(!((*it).end().hour()==(*it).start().hour() && (*it).end().minute()==(*it).start().minute())) {// Skip effective events with no duration. (i.e ending at 00:00)
212 layout->addWidget(l); 212 DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,this);
213 connect (l, SIGNAL(editEvent(const Event &)), 213 layout->addWidget(l);
214 this, SIGNAL(editEvent(const Event &))); 214 connect (l, SIGNAL(editEvent(const Event &)),
215 it++; 215 this, SIGNAL(editEvent(const Event &)));
216 }
217 it++;
216 } 218 }
217 219
218 layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); 220 layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
219 } 221 }
220} 222}
221DateBookWeekLstView::~DateBookWeekLstView(){} 223DateBookWeekLstView::~DateBookWeekLstView(){}
222void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();} 224void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();}
223 225
224DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1, 226DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
225 QValueList<EffectiveEvent> &ev2, 227 QValueList<EffectiveEvent> &ev2,
226 QDate &d, bool onM, 228 QDate &d, bool onM,
227 QWidget* parent, 229 QWidget* parent,
228 const char* name, WFlags fl) 230 const char* name, WFlags fl)
229 : QWidget( parent, name, fl ) 231 : QWidget( parent, name, fl )
230{ 232{
231 QHBoxLayout *layout = new QHBoxLayout( this ); 233 QHBoxLayout *layout = new QHBoxLayout( this );
232 234
233 DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this); 235 DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this);
234 layout->addWidget(w); 236 layout->addWidget(w);
235 connect (w, SIGNAL(editEvent(const Event &)), 237 connect (w, SIGNAL(editEvent(const Event &)),
236 this, SIGNAL(editEvent(const Event &))); 238 this, SIGNAL(editEvent(const Event &)));
237 connect (w, SIGNAL(showDate(int,int,int)), 239 connect (w, SIGNAL(showDate(int,int,int)),
238 this, SIGNAL(showDate(int,int,int))); 240 this, SIGNAL(showDate(int,int,int)));
239 connect (w, SIGNAL(addEvent(const QDateTime &, const QDateTime &, 241 connect (w, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
240 const QString &)), 242 const QString &)),
241 this, SIGNAL(addEvent(const QDateTime &, const QDateTime &, 243 this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
242 const QString &))); 244 const QString &)));
243 245
244 246
245 w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this); 247 w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this);
246 layout->addWidget(w); 248 layout->addWidget(w);
247 connect (w, SIGNAL(editEvent(const Event &)), 249 connect (w, SIGNAL(editEvent(const Event &)),