summaryrefslogtreecommitdiff
authorhakan <hakan>2002-03-09 14:19:20 (UTC)
committer hakan <hakan>2002-03-09 14:19:20 (UTC)
commit307ecafa73a7902aeadfeec9b5c2c064b68aed37 (patch) (unidiff)
treec8b82b8b13aab55ede1763da27809e5cd9efa661
parent62c21e8bdbb365a64f05dd363a98abd7fc1f0558 (diff)
downloadopie-307ecafa73a7902aeadfeec9b5c2c064b68aed37.zip
opie-307ecafa73a7902aeadfeec9b5c2c064b68aed37.tar.gz
opie-307ecafa73a7902aeadfeec9b5c2c064b68aed37.tar.bz2
WeekLst extended to view two weeks at a time (opitonal)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookweeklst.cpp67
-rw-r--r--core/pim/datebook/datebookweeklst.h44
-rw-r--r--core/pim/datebook/datebookweeklstheader.ui99
3 files changed, 185 insertions, 25 deletions
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
index dc141c0..7083bc5 100644
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/core/pim/datebook/datebookweeklst.cpp
@@ -1,314 +1,373 @@
1#include "datebookweeklst.h" 1#include "datebookweeklst.h"
2 2
3#include "datebookweekheaderimpl.h" 3#include "datebookweekheaderimpl.h"
4 4
5#include <qpe/calendar.h> 5#include <qpe/calendar.h>
6#include <qpe/datebookdb.h> 6#include <qpe/datebookdb.h>
7#include <qpe/event.h> 7#include <qpe/event.h>
8#include <qpe/qpeapplication.h> 8#include <qpe/qpeapplication.h>
9#include <qpe/timestring.h> 9#include <qpe/timestring.h>
10#include <qpe/datebookmonth.h> 10#include <qpe/datebookmonth.h>
11#include <qpe/config.h>
11 12
12#include <qdatetime.h> 13#include <qdatetime.h>
13#include <qheader.h> 14#include <qheader.h>
14#include <qlabel.h> 15#include <qlabel.h>
15#include <qlayout.h> 16#include <qlayout.h>
16#include <qpainter.h> 17#include <qpainter.h>
17#include <qpopupmenu.h> 18#include <qpopupmenu.h>
18#include <qtimer.h> 19#include <qtimer.h>
19#include <qstyle.h> 20#include <qstyle.h>
20#include <qtoolbutton.h> 21#include <qtoolbutton.h>
21#include <qvbox.h> 22#include <qvbox.h>
22#include <qsizepolicy.h> 23#include <qsizepolicy.h>
23#include <qabstractlayout.h> 24#include <qabstractlayout.h>
24#include <qtl.h> 25#include <qtl.h>
25 26
26bool calcWeek(const QDate &d, int &week, int &year, 27bool calcWeek(const QDate &d, int &week, int &year,
27 bool startOnMonday = false); 28 bool startOnMonday = false);
28 29
29DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, 30DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent,
30 const char* name, WFlags fl) 31 const char* name, WFlags fl)
31 : DateBookWeekLstHeaderBase(parent, name, fl) 32 : DateBookWeekLstHeaderBase(parent, name, fl)
32{ 33{
33 setBackgroundMode( PaletteButton ); 34 setBackgroundMode( PaletteButton );
34 labelDate->setBackgroundMode( PaletteButton ); 35 labelDate->setBackgroundMode( PaletteButton );
35 labelWeek->setBackgroundMode( PaletteButton ); 36 labelWeek->setBackgroundMode( PaletteButton );
36 forward->setBackgroundMode( PaletteButton ); 37 forward->setBackgroundMode( PaletteButton );
37 back->setBackgroundMode( PaletteButton ); 38 back->setBackgroundMode( PaletteButton );
38 DateBookWeekLstHeaderBaseLayout->setSpacing(0); 39 DateBookWeekLstHeaderBaseLayout->setSpacing(0);
39 DateBookWeekLstHeaderBaseLayout->setMargin(0); 40 DateBookWeekLstHeaderBaseLayout->setMargin(0);
40 //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); 41 //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding));
41 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); 42 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
42 43
43 connect(back, SIGNAL(clicked()), this, SLOT(prevWeek())); 44 connect(back, SIGNAL(clicked()), this, SLOT(prevWeek()));
44 connect(forward, SIGNAL(clicked()), this, SLOT(nextWeek())); 45 connect(forward, SIGNAL(clicked()), this, SLOT(nextWeek()));
45 connect(labelWeek, SIGNAL(clicked()), this, SLOT(pickDate())); 46 connect(labelWeek, SIGNAL(clicked()), this, SLOT(pickDate()));
47 connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool)));
46 onMonday=onM; 48 onMonday=onM;
47} 49}
48DateBookWeekLstHeader::~DateBookWeekLstHeader(){} 50DateBookWeekLstHeader::~DateBookWeekLstHeader(){}
49void DateBookWeekLstHeader::setDate(const QDate &d) { 51void DateBookWeekLstHeader::setDate(const QDate &d) {
50 date=d; 52 date=d;
51 53
52 int year,week; 54 int year,week;
53 calcWeek(d,week,year,onMonday); 55 calcWeek(d,week,year,onMonday);
54 labelWeek->setText("W: " + QString::number(week)); 56 labelWeek->setText("W: " + QString::number(week));
55 57
56 QDate start=date; 58 QDate start=date;
57 QDate stop=start.addDays(6); 59 QDate stop=start.addDays(6);
58 labelDate->setText( QString::number(start.day()) + " " + 60 labelDate->setText( QString::number(start.day()) + " " +
59 start.monthName(start.month()) + " - " + 61 start.monthName(start.month()) + " - " +
60 QString::number(stop.day()) + " " + 62 QString::number(stop.day()) + " " +
61 start.monthName(stop.month()) ); 63 start.monthName(stop.month()) );
62 emit dateChanged(year,week); 64 emit dateChanged(year,week);
63} 65}
64void DateBookWeekLstHeader::pickDate() { 66void DateBookWeekLstHeader::pickDate() {
65 static QPopupMenu *m1 = 0; 67 static QPopupMenu *m1 = 0;
66 static DateBookMonth *picker = 0; 68 static DateBookMonth *picker = 0;
67 if ( !m1 ) { 69 if ( !m1 ) {
68 m1 = new QPopupMenu( this ); 70 m1 = new QPopupMenu( this );
69 picker = new DateBookMonth( m1, 0, TRUE ); 71 picker = new DateBookMonth( m1, 0, TRUE );
70 m1->insertItem( picker ); 72 m1->insertItem( picker );
71 connect( picker, SIGNAL( dateClicked( int, int, int ) ), 73 connect( picker, SIGNAL( dateClicked( int, int, int ) ),
72 this, SLOT( setDate( int, int, int ) ) ); 74 this, SLOT( setDate( int, int, int ) ) );
73 //connect( m1, SIGNAL( aboutToHide() ), 75 //connect( m1, SIGNAL( aboutToHide() ),
74 //this, SLOT( gotHide() ) ); 76 //this, SLOT( gotHide() ) );
75 } 77 }
76 picker->setDate( date.year(), date.month(), date.day() ); 78 picker->setDate( date.year(), date.month(), date.day() );
77 m1->popup(mapToGlobal(labelWeek->pos()+QPoint(0,labelWeek->height()))); 79 m1->popup(mapToGlobal(labelWeek->pos()+QPoint(0,labelWeek->height())));
78 picker->setFocus(); 80 picker->setFocus();
79} 81}
80void DateBookWeekLstHeader::setDate(int y, int m, int d) { 82void DateBookWeekLstHeader::setDate(int y, int m, int d) {
81 QDate new_date(y,m,d); 83 QDate new_date(y,m,d);
82 setDate(new_date); 84 setDate(new_date);
83} 85}
84 86
85void DateBookWeekLstHeader::nextWeek() { 87void DateBookWeekLstHeader::nextWeek() {
86 setDate(date.addDays(7)); 88 setDate(date.addDays(7));
87} 89}
88void DateBookWeekLstHeader::prevWeek() { 90void DateBookWeekLstHeader::prevWeek() {
89 setDate(date.addDays(-7)); 91 setDate(date.addDays(-7));
90} 92}
91 93
92DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool onM, 94DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool onM,
93 QWidget* parent = 0, 95 QWidget* parent = 0,
94 const char* name = 0, 96 const char* name = 0,
95 WFlags fl = 0 ) 97 WFlags fl = 0 )
96 : DateBookWeekLstDayHdrBase(parent, name, fl) { 98 : DateBookWeekLstDayHdrBase(parent, name, fl) {
97 99
98 date=d; 100 date=d;
99 101
100 static const char *wdays="MTWTFSS"; 102 static const char *wdays="MTWTFSS";
101 char day=wdays[d.dayOfWeek()-1]; 103 char day=wdays[d.dayOfWeek()-1];
102 104
103 label->setText( QString(QChar(day)) + " " + 105 label->setText( QString(QChar(day)) + " " +
104 QString::number(d.day()) ); 106 QString::number(d.day()) );
105 add->setText("+"); 107 add->setText("+");
106 108
107 if (d == QDate::currentDate()) { 109 if (d == QDate::currentDate()) {
108 QPalette pal=label->palette(); 110 QPalette pal=label->palette();
109 pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); 111 pal.setColor(QColorGroup::Foreground, QColor(0,0,255));
110 label->setPalette(pal); 112 label->setPalette(pal);
111 113
112 /* 114 /*
113 QFont f=label->font(); 115 QFont f=label->font();
114 f.setItalic(true); 116 f.setItalic(true);
115 label->setFont(f); 117 label->setFont(f);
116 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); 118 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor()));
117 */ 119 */
118 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday 120 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday
119 QPalette pal=label->palette(); 121 QPalette pal=label->palette();
120 pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); 122 pal.setColor(QColorGroup::Foreground, QColor(255,0,0));
121 label->setPalette(pal); 123 label->setPalette(pal);
122 } 124 }
123 125
124 126
125 connect (label, SIGNAL(clicked()), this, SLOT(showDay())); 127 connect (label, SIGNAL(clicked()), this, SLOT(showDay()));
126 connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); 128 connect (add, SIGNAL(clicked()), this, SLOT(newEvent()));
127} 129}
128 130
129void DateBookWeekLstDayHdr::showDay() { 131void DateBookWeekLstDayHdr::showDay() {
130 emit showDate(date.year(), date.month(), date.day()); 132 emit showDate(date.year(), date.month(), date.day());
131} 133}
132void DateBookWeekLstDayHdr::newEvent() { 134void DateBookWeekLstDayHdr::newEvent() {
133 QDateTime start, stop; 135 QDateTime start, stop;
134 start=stop=date; 136 start=stop=date;
135 start.setTime(QTime(10,0)); 137 start.setTime(QTime(10,0));
136 stop.setTime(QTime(12,0)); 138 stop.setTime(QTime(12,0));
137 139
138 emit addEvent(start,stop,""); 140 emit addEvent(start,stop,"");
139} 141}
140DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev, 142DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
141 QWidget* parent = 0, 143 QWidget* parent = 0,
142 const char* name = 0, 144 const char* name = 0,
143 WFlags fl = 0) : 145 WFlags fl = 0) :
144 ClickableLabel(parent,name,fl), 146 ClickableLabel(parent,name,fl),
145 event(ev) 147 event(ev)
146{ 148{
147 char s[10]; 149 char s[10];
148 if ( ev.startDate() != ev.date() ) { // multiday event (not first day) 150 if ( ev.startDate() != ev.date() ) { // multiday event (not first day)
149 if ( ev.endDate() == ev.date() ) { // last day 151 if ( ev.endDate() == ev.date() ) { // last day
150 strcpy(s, "__|__"); 152 strcpy(s, "__|__");
151 } else { 153 } else {
152 strcpy(s, " |---"); 154 strcpy(s, " |---");
153 } 155 }
154 } else { 156 } else {
155 sprintf(s,"%.2d:%.2d",ev.start().hour(),ev.start().minute()); 157 sprintf(s,"%.2d:%.2d",ev.start().hour(),ev.start().minute());
156 } 158 }
157 setText(QString(s) + " " + ev.description()); 159 setText(QString(s) + " " + ev.description());
158 connect(this, SIGNAL(clicked()), this, SLOT(editMe())); 160 connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
161 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
159} 162}
160void DateBookWeekLstEvent::editMe() { 163void DateBookWeekLstEvent::editMe() {
161 emit editEvent(event.event()); 164 emit editEvent(event.event());
162} 165}
163 166
164 167
165DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, 168DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
166 QDate &d, bool onM, 169 const QDate &d, bool onM,
167 QWidget* parent, 170 QWidget* parent,
168 const char* name, WFlags fl) 171 const char* name, WFlags fl)
169 : QWidget( parent, name, fl ) 172 : QWidget( parent, name, fl )
170{ 173{
171 onMonday=onM; 174 onMonday=onM;
172 setPalette(white); 175 setPalette(white);
173 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); 176 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
174 177
175 QVBoxLayout *layout = new QVBoxLayout( this ); 178 QVBoxLayout *layout = new QVBoxLayout( this );
176 179
177 qBubbleSort(ev); 180 qBubbleSort(ev);
178 QValueListIterator<EffectiveEvent> it; 181 QValueListIterator<EffectiveEvent> it;
179 it=ev.begin(); 182 it=ev.begin();
180 183
181 int dayOrder[7]; 184 int dayOrder[7];
182 if (onMonday) 185 if (onMonday)
183 for (int d=0; d<7; d++) dayOrder[d]=d+1; 186 for (int d=0; d<7; d++) dayOrder[d]=d+1;
184 else { 187 else {
185 for (int d=0; d<7; d++) dayOrder[d]=d; 188 for (int d=0; d<7; d++) dayOrder[d]=d;
186 dayOrder[0]=7; 189 dayOrder[0]=7;
187 } 190 }
188 191
189 for (int i=0; i<7; i++) { 192 for (int i=0; i<7; i++) {
190 // Header 193 // Header
191 DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i), 194 DateBookWeekLstDayHdr *hdr=new DateBookWeekLstDayHdr(d.addDays(i),
192 onMonday,this); 195 onMonday,this);
193 connect(hdr, SIGNAL(showDate(int,int,int)), 196 connect(hdr, SIGNAL(showDate(int,int,int)),
194 this, SIGNAL(showDate(int,int,int))); 197 this, SIGNAL(showDate(int,int,int)));
195 connect(hdr, SIGNAL(addEvent(const QDateTime &, 198 connect(hdr, SIGNAL(addEvent(const QDateTime &,
196 const QDateTime &, 199 const QDateTime &,
197 const QString &)), 200 const QString &)),
198 this, SIGNAL(addEvent(const QDateTime &, 201 this, SIGNAL(addEvent(const QDateTime &,
199 const QDateTime &, 202 const QDateTime &,
200 const QString &))); 203 const QString &)));
201 layout->addWidget(hdr); 204 layout->addWidget(hdr);
202 205
203 // Events 206 // Events
204 while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) { 207 while ( (*it).date().dayOfWeek() == dayOrder[i] && it!=ev.end() ) {
205 DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,this); 208 DateBookWeekLstEvent *l=new DateBookWeekLstEvent(*it,this);
206 layout->addWidget(l); 209 layout->addWidget(l);
207 connect (l, SIGNAL(editEvent(const Event &)), 210 connect (l, SIGNAL(editEvent(const Event &)),
208 this, SIGNAL(editEvent(const Event &))); 211 this, SIGNAL(editEvent(const Event &)));
209 it++; 212 it++;
210 } 213 }
211 214
212 layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding)); 215 layout->addItem(new QSpacerItem(1,1, QSizePolicy::Minimum, QSizePolicy::Expanding));
213 } 216 }
214} 217}
215DateBookWeekLstView::~DateBookWeekLstView(){} 218DateBookWeekLstView::~DateBookWeekLstView(){}
216void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();} 219void DateBookWeekLstView::keyPressEvent(QKeyEvent *e) {e->ignore();}
217 220
221DateBookWeekLstDblView::DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
222 QValueList<EffectiveEvent> &ev2,
223 QDate &d, bool onM,
224 QWidget* parent,
225 const char* name, WFlags fl)
226 : QWidget( parent, name, fl )
227{
228 QHBoxLayout *layout = new QHBoxLayout( this );
229
230 DateBookWeekLstView *w=new DateBookWeekLstView(ev1,d,onM,this);
231 layout->addWidget(w);
232 connect (w, SIGNAL(editEvent(const Event &)),
233 this, SIGNAL(editEvent(const Event &)));
234 connect (w, SIGNAL(showDate(int,int,int)),
235 this, SIGNAL(showDate(int,int,int)));
236 connect (w, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
237 const QString &)),
238 this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
239 const QString &)));
240
241
242 w=new DateBookWeekLstView(ev2,d.addDays(7),onM,this);
243 layout->addWidget(w);
244 connect (w, SIGNAL(editEvent(const Event &)),
245 this, SIGNAL(editEvent(const Event &)));
246 connect (w, SIGNAL(showDate(int,int,int)),
247 this, SIGNAL(showDate(int,int,int)));
248 connect (w, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
249 const QString &)),
250 this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
251 const QString &)));
252}
253
218DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDB *newDB, 254DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDB *newDB,
219 QWidget *parent, 255 QWidget *parent,
220 const char *name ) 256 const char *name )
221 : QWidget( parent, name ), 257 : QWidget( parent, name ),
222 db( newDB ), 258 db( newDB ),
223 startTime( 0 ), 259 startTime( 0 ),
224 ampm( ap ), 260 ampm( ap ),
225 onMonday(onM) 261 onMonday(onM)
226{ 262{
227 setFocusPolicy(StrongFocus); 263 setFocusPolicy(StrongFocus);
228 layout = new QVBoxLayout( this ); 264 layout = new QVBoxLayout( this );
229 layout->setMargin(0); 265 layout->setMargin(0);
230 266
231 header=new DateBookWeekLstHeader(onM, this); 267 header=new DateBookWeekLstHeader(onM, this);
232 layout->addWidget( header ); 268 layout->addWidget( header );
233 connect(header, SIGNAL(dateChanged(int,int)), this, SLOT(dateChanged(int,int))); 269 connect(header, SIGNAL(dateChanged(int,int)),
270 this, SLOT(dateChanged(int,int)));
271 connect(header, SIGNAL(setDbl(bool)),
272 this, SLOT(setDbl(bool)));
234 273
235 scroll=new QScrollView(this); 274 scroll=new QScrollView(this);
236 //scroll->setVScrollBarMode(QScrollView::AlwaysOn); 275 //scroll->setVScrollBarMode(QScrollView::AlwaysOn);
237 //scroll->setHScrollBarMode(QScrollView::AlwaysOff); 276 //scroll->setHScrollBarMode(QScrollView::AlwaysOff);
238 scroll->setResizePolicy(QScrollView::AutoOneFit); 277 scroll->setResizePolicy(QScrollView::AutoOneFit);
239 layout->addWidget(scroll); 278 layout->addWidget(scroll);
240 279
241 view=NULL; 280 view=NULL;
281 Config config("DateBook");
282 config.setGroup("Main");
283 dbl=config.readBoolEntry("weeklst_dbl", false);
284 header->dbl->setOn(dbl);
285}
286DateBookWeekLst::~DateBookWeekLst(){
287 Config config("DateBook");
288 config.setGroup("Main");
289 config.writeEntry("weeklst_dbl", dbl);
242} 290}
243
244 291
245void DateBookWeekLst::setDate(const QDate &d) { 292void DateBookWeekLst::setDate(const QDate &d) {
246 int w,y; 293 int w,y;
247 calcWeek(d,w,y,onMonday); 294 calcWeek(d,w,y,onMonday);
248 year=y; 295 year=y;
249 _week=w; 296 _week=w;
250 header->setDate(date()); 297 header->setDate(date());
251} 298}
299void DateBookWeekLst::setDbl(bool on) {
300 dbl=on;
301 redraw();
302}
252void DateBookWeekLst::redraw() {getEvents();} 303void DateBookWeekLst::redraw() {getEvents();}
253 304
254QDate DateBookWeekLst::date() const { 305QDate DateBookWeekLst::date() const {
255 QDate d; 306 QDate d;
256 d.setYMD(year,1,1); 307 d.setYMD(year,1,1);
257 308
258 int dow= d.dayOfWeek(); 309 int dow= d.dayOfWeek();
259 if (!onMonday) 310 if (!onMonday)
260 if (dow==7) dow=1; 311 if (dow==7) dow=1;
261 else dow++; 312 else dow++;
262 313
263 d=d.addDays( (_week-1)*7 - dow + 1 ); 314 d=d.addDays( (_week-1)*7 - dow + 1 );
264 return d; 315 return d;
265} 316}
266 317
267void DateBookWeekLst::getEvents() { 318void DateBookWeekLst::getEvents() {
268 QDate start = date(); 319 QDate start = date();
269 QDate stop = start.addDays(6); 320 QDate stop = start.addDays(6);
270 QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop); 321 QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop);
271 322
272 if (view) delete view; 323 if (view) delete view;
273 view=new DateBookWeekLstView(el,start,onMonday,scroll); 324 if (dbl) {
325 QDate start2=start.addDays(7);
326 stop=start2.addDays(6);
327 QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop);
328
329 view=new DateBookWeekLstDblView(el,el2,start,onMonday,scroll);
330 } else {
331 view=new DateBookWeekLstView(el,start,onMonday,scroll);
332 }
274 333
275 connect (view, SIGNAL(editEvent(const Event &)), 334 connect (view, SIGNAL(editEvent(const Event &)),
276 this, SIGNAL(editEvent(const Event &))); 335 this, SIGNAL(editEvent(const Event &)));
277 connect (view, SIGNAL(showDate(int,int,int)), 336 connect (view, SIGNAL(showDate(int,int,int)),
278 this, SIGNAL(showDate(int,int,int))); 337 this, SIGNAL(showDate(int,int,int)));
279 connect (view, SIGNAL(addEvent(const QDateTime &, const QDateTime &, 338 connect (view, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
280 const QString &)), 339 const QString &)),
281 this, SIGNAL(addEvent(const QDateTime &, const QDateTime &, 340 this, SIGNAL(addEvent(const QDateTime &, const QDateTime &,
282 const QString &))); 341 const QString &)));
283 342
284 scroll->addChild(view); 343 scroll->addChild(view);
285 view->show(); 344 view->show();
286 scroll->updateScrollBars(); 345 scroll->updateScrollBars();
287} 346}
288 347
289void DateBookWeekLst::dateChanged(int y, int w) { 348void DateBookWeekLst::dateChanged(int y, int w) {
290 year=y; 349 year=y;
291 _week=w; 350 _week=w;
292 getEvents(); 351 getEvents();
293} 352}
294 353
295void DateBookWeekLst::keyPressEvent(QKeyEvent *e) 354void DateBookWeekLst::keyPressEvent(QKeyEvent *e)
296{ 355{
297 switch(e->key()) { 356 switch(e->key()) {
298 case Key_Up: 357 case Key_Up:
299 scroll->scrollBy(0, -20); 358 scroll->scrollBy(0, -20);
300 break; 359 break;
301 case Key_Down: 360 case Key_Down:
302 scroll->scrollBy(0, 20); 361 scroll->scrollBy(0, 20);
303 break; 362 break;
304 case Key_Left: 363 case Key_Left:
305 header->prevWeek(); 364 header->prevWeek();
306 break; 365 break;
307 case Key_Right: 366 case Key_Right:
308 header->nextWeek(); 367 header->nextWeek();
309 break; 368 break;
310 default: 369 default:
311 e->ignore(); 370 e->ignore();
312 } 371 }
313} 372}
314 373
diff --git a/core/pim/datebook/datebookweeklst.h b/core/pim/datebook/datebookweeklst.h
index 39c956d..b0b0417 100644
--- a/core/pim/datebook/datebookweeklst.h
+++ b/core/pim/datebook/datebookweeklst.h
@@ -1,131 +1,151 @@
1#ifndef DATEBOOKWEEKLST 1#ifndef DATEBOOKWEEKLST
2#define DATEBOOKWEEKLST 2#define DATEBOOKWEEKLST
3 3
4#include <qwidget.h> 4#include <qwidget.h>
5#include <qdatetime.h> 5#include <qdatetime.h>
6#include <qpe/event.h> 6#include <qpe/event.h>
7#include <qlabel.h> 7#include <qlabel.h>
8#include <qscrollview.h> 8#include <qscrollview.h>
9 9
10#include "datebookweeklstheader.h" 10#include "datebookweeklstheader.h"
11#include "datebookweeklstdayhdr.h" 11#include "datebookweeklstdayhdr.h"
12 12
13#include "clickablelabel.h" 13#include "clickablelabel.h"
14 14
15class QDateTime; 15class QDateTime;
16class DateBookDB; 16class DateBookDB;
17 17
18class DateBookWeekLstHeader: public DateBookWeekLstHeaderBase 18class DateBookWeekLstHeader: public DateBookWeekLstHeaderBase
19{ 19{
20 Q_OBJECT 20 Q_OBJECT
21public: 21public:
22 DateBookWeekLstHeader(bool onM, QWidget* parent = 0, const char* name = 0, 22 DateBookWeekLstHeader(bool onM, QWidget* parent = 0, const char* name = 0,
23 WFlags fl = 0 ); 23 WFlags fl = 0 );
24 ~DateBookWeekLstHeader(); 24 ~DateBookWeekLstHeader();
25 void setDate(const QDate &d); 25 void setDate(const QDate &d);
26 26
27public slots: 27public slots:
28 void nextWeek(); 28 void nextWeek();
29 void prevWeek(); 29 void prevWeek();
30 void pickDate(); 30 void pickDate();
31 void setDate(int y, int m, int d); 31 void setDate(int y, int m, int d);
32signals: 32signals:
33 void dateChanged(int y, int w); 33 void dateChanged(int y, int w);
34 void setDbl(bool on);
34private: 35private:
35 QDate date; 36 QDate date;
36 bool onMonday; 37 bool onMonday;
37}; 38};
38 39
39class DateBookWeekLstDayHdr: public DateBookWeekLstDayHdrBase 40class DateBookWeekLstDayHdr: public DateBookWeekLstDayHdrBase
40{ 41{
41 Q_OBJECT 42 Q_OBJECT
42public: 43public:
43 DateBookWeekLstDayHdr(const QDate &d, bool onM, 44 DateBookWeekLstDayHdr(const QDate &d, bool onM,
44 QWidget* parent = 0, const char* name = 0, 45 QWidget* parent = 0, const char* name = 0,
45 WFlags fl = 0 ); 46 WFlags fl = 0 );
46public slots: 47public slots:
47 void showDay(); 48 void showDay();
48 void newEvent(); 49 void newEvent();
49signals: 50signals:
50 void showDate(int y, int m, int d); 51 void showDate(int y, int m, int d);
51 void addEvent(const QDateTime &start, const QDateTime &stop, 52 void addEvent(const QDateTime &start, const QDateTime &stop,
52 const QString &str); 53 const QString &str);
53private: 54private:
54 QDate date; 55 QDate date;
55}; 56};
56 57
57class DateBookWeekLstEvent: public ClickableLabel 58class DateBookWeekLstEvent: public ClickableLabel
58{ 59{
59 Q_OBJECT 60 Q_OBJECT
60public: 61public:
61 DateBookWeekLstEvent(const EffectiveEvent &ev, 62 DateBookWeekLstEvent(const EffectiveEvent &ev,
62 QWidget* parent = 0, const char* name = 0, 63 QWidget* parent = 0, const char* name = 0,
63 WFlags fl = 0); 64 WFlags fl = 0);
64signals: 65signals:
65 void editEvent(const Event &e); 66 void editEvent(const Event &e);
66private slots: 67private slots:
67 void editMe(); 68 void editMe();
68private: 69private:
69 const EffectiveEvent event; 70 const EffectiveEvent event;
70}; 71};
71 72
72class DateBookWeekLstView: public QWidget 73class DateBookWeekLstView: public QWidget
73{ 74{
74 Q_OBJECT 75 Q_OBJECT
75public: 76public:
76 DateBookWeekLstView(QValueList<EffectiveEvent> &ev, QDate &d, bool onM, 77 DateBookWeekLstView(QValueList<EffectiveEvent> &ev, const QDate &d, bool onM,
77 QWidget* parent = 0, const char* name = 0, 78 QWidget* parent = 0, const char* name = 0,
78 WFlags fl = 0 ); 79 WFlags fl = 0 );
79 ~DateBookWeekLstView(); 80 ~DateBookWeekLstView();
80signals: 81signals:
81 void editEvent(const Event &e); 82 void editEvent(const Event &e);
82 void showDate(int y, int m, int d); 83 void showDate(int y, int m, int d);
83 void addEvent(const QDateTime &start, const QDateTime &stop, 84 void addEvent(const QDateTime &start, const QDateTime &stop,
84 const QString &str); 85 const QString &str);
85private: 86private:
86 bool onMonday; 87 bool onMonday;
87protected slots: 88protected slots:
88 void keyPressEvent(QKeyEvent *); 89 void keyPressEvent(QKeyEvent *);
89}; 90};
90 91
92class DateBookWeekLstDblView: public QWidget {
93 Q_OBJECT
94public:
95 DateBookWeekLstDblView(QValueList<EffectiveEvent> &ev1,
96 QValueList<EffectiveEvent> &ev2,
97 QDate &d, bool onM,
98 QWidget* parent = 0, const char* name = 0,
99 WFlags fl = 0 );
100signals:
101 void editEvent(const Event &e);
102 void showDate(int y, int m, int d);
103 void addEvent(const QDateTime &start, const QDateTime &stop,
104 const QString &str);
105};
106
91class DateBookWeekLst : public QWidget 107class DateBookWeekLst : public QWidget
92{ 108{
93 Q_OBJECT 109 Q_OBJECT
94 110
95public: 111public:
96 DateBookWeekLst( bool ampm, bool onM, DateBookDB *newDB, 112 DateBookWeekLst( bool ampm, bool onM, DateBookDB *newDB,
97 QWidget *parent = 0, 113 QWidget *parent = 0,
98 const char *name = 0 ); 114 const char *name = 0 );
115 ~DateBookWeekLst();
99 void setDate( int y, int w ); 116 void setDate( int y, int w );
100 void setDate(const QDate &d ); 117 void setDate(const QDate &d );
101 int week() const { return _week; }; 118 int week() const { return _week; };
102 QDate date() const; 119 QDate date() const;
103 120
104public slots: 121public slots:
105 void redraw(); 122 void redraw();
106 void dateChanged(int y, int w); 123 void dateChanged(int y, int w);
124
107protected slots: 125protected slots:
108 void keyPressEvent(QKeyEvent *); 126 void keyPressEvent(QKeyEvent *);
127 void setDbl(bool on);
109 128
110signals: 129signals:
111 void showDate(int y, int m, int d); 130 void showDate(int y, int m, int d);
112 void addEvent(const QDateTime &start, const QDateTime &stop, 131 void addEvent(const QDateTime &start, const QDateTime &stop,
113 const QString &str); 132 const QString &str);
114 void editEvent(const Event &e); 133 void editEvent(const Event &e);
115 134
116private: 135private:
117 DateBookDB *db; 136 DateBookDB *db;
118 int startTime; 137 int startTime;
119 bool ampm; 138 bool ampm;
120 bool onMonday; 139 bool onMonday;
121 int year, _week; 140 bool dbl;
122 DateBookWeekLstHeader *header; 141 int year, _week;
123 DateBookWeekLstView *view; 142 DateBookWeekLstHeader *header;
124 QVBoxLayout *layout; 143 QWidget *view;
125 QScrollView *scroll; 144 QVBoxLayout *layout;
126 145 QScrollView *scroll;
127 void getEvents(); 146
147 void getEvents();
128}; 148};
129 149
130#endif 150#endif
131 151
diff --git a/core/pim/datebook/datebookweeklstheader.ui b/core/pim/datebook/datebookweeklstheader.ui
index 666e896..9de64ae 100644
--- a/core/pim/datebook/datebookweeklstheader.ui
+++ b/core/pim/datebook/datebookweeklstheader.ui
@@ -1,238 +1,319 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>DateBookWeekLstHeaderBase</class> 2<class>DateBookWeekLstHeaderBase</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>DateBookWeekLstHeaderBase</cstring> 7 <cstring>DateBookWeekLstHeaderBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>51</y> 13 <y>183</y>
14 <width>535</width> 14 <width>447</width>
15 <height>25</height> 15 <height>45</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>sizePolicy</name> 19 <name>sizePolicy</name>
20 <sizepolicy> 20 <sizepolicy>
21 <hsizetype>7</hsizetype> 21 <hsizetype>7</hsizetype>
22 <vsizetype>0</vsizetype> 22 <vsizetype>0</vsizetype>
23 </sizepolicy> 23 </sizepolicy>
24 </property> 24 </property>
25 <property stdset="1"> 25 <property stdset="1">
26 <name>caption</name> 26 <name>caption</name>
27 <string>Form2</string> 27 <string>Form2</string>
28 </property> 28 </property>
29 <property> 29 <property>
30 <name>layoutMargin</name> 30 <name>layoutMargin</name>
31 </property> 31 </property>
32 <property> 32 <property>
33 <name>layoutSpacing</name> 33 <name>layoutSpacing</name>
34 </property> 34 </property>
35 <hbox> 35 <hbox>
36 <property stdset="1"> 36 <property stdset="1">
37 <name>margin</name> 37 <name>margin</name>
38 <number>0</number> 38 <number>11</number>
39 </property> 39 </property>
40 <property stdset="1"> 40 <property stdset="1">
41 <name>spacing</name> 41 <name>spacing</name>
42 <number>6</number> 42 <number>6</number>
43 </property> 43 </property>
44 <widget> 44 <widget>
45 <class>QToolButton</class> 45 <class>QToolButton</class>
46 <property stdset="1"> 46 <property stdset="1">
47 <name>name</name> 47 <name>name</name>
48 <cstring>back</cstring> 48 <cstring>back</cstring>
49 </property> 49 </property>
50 <property stdset="1"> 50 <property stdset="1">
51 <name>sizePolicy</name> 51 <name>sizePolicy</name>
52 <sizepolicy> 52 <sizepolicy>
53 <hsizetype>1</hsizetype> 53 <hsizetype>7</hsizetype>
54 <vsizetype>0</vsizetype> 54 <vsizetype>0</vsizetype>
55 </sizepolicy> 55 </sizepolicy>
56 </property> 56 </property>
57 <property stdset="1"> 57 <property stdset="1">
58 <name>text</name> 58 <name>text</name>
59 <string></string> 59 <string></string>
60 </property> 60 </property>
61 <property stdset="1"> 61 <property stdset="1">
62 <name>pixmap</name> 62 <name>pixmap</name>
63 <pixmap>image0</pixmap> 63 <pixmap>image0</pixmap>
64 </property> 64 </property>
65 <property stdset="1"> 65 <property stdset="1">
66 <name>toggleButton</name>
67 <bool>false</bool>
68 </property>
69 <property stdset="1">
66 <name>autoRepeat</name> 70 <name>autoRepeat</name>
67 <bool>true</bool> 71 <bool>true</bool>
68 </property> 72 </property>
69 <property stdset="1"> 73 <property stdset="1">
70 <name>autoRaise</name> 74 <name>autoRaise</name>
71 <bool>true</bool> 75 <bool>true</bool>
72 </property> 76 </property>
77 <property stdset="1">
78 <name>toggleButton</name>
79 <bool>false</bool>
80 </property>
81 <property>
82 <name>toolTip</name>
83 <string></string>
84 </property>
73 </widget> 85 </widget>
74 <spacer> 86 <spacer>
75 <property> 87 <property>
76 <name>name</name> 88 <name>name</name>
77 <cstring>Spacer1_3</cstring> 89 <cstring>Spacer1_3</cstring>
78 </property> 90 </property>
79 <property stdset="1"> 91 <property stdset="1">
80 <name>orientation</name> 92 <name>orientation</name>
81 <enum>Horizontal</enum> 93 <enum>Horizontal</enum>
82 </property> 94 </property>
83 <property stdset="1"> 95 <property stdset="1">
84 <name>sizeType</name> 96 <name>sizeType</name>
85 <enum>Expanding</enum> 97 <enum>Expanding</enum>
86 </property> 98 </property>
87 <property> 99 <property>
88 <name>sizeHint</name> 100 <name>sizeHint</name>
89 <size> 101 <size>
90 <width>20</width> 102 <width>20</width>
91 <height>20</height> 103 <height>20</height>
92 </size> 104 </size>
93 </property> 105 </property>
94 </spacer> 106 </spacer>
95 <widget> 107 <widget>
96 <class>QToolButton</class> 108 <class>QToolButton</class>
97 <property stdset="1"> 109 <property stdset="1">
98 <name>name</name> 110 <name>name</name>
99 <cstring>labelWeek</cstring> 111 <cstring>labelWeek</cstring>
100 </property> 112 </property>
101 <property stdset="1"> 113 <property stdset="1">
102 <name>sizePolicy</name> 114 <name>sizePolicy</name>
103 <sizepolicy> 115 <sizepolicy>
104 <hsizetype>7</hsizetype> 116 <hsizetype>7</hsizetype>
105 <vsizetype>0</vsizetype> 117 <vsizetype>0</vsizetype>
106 </sizepolicy> 118 </sizepolicy>
107 </property> 119 </property>
108 <property stdset="1"> 120 <property stdset="1">
109 <name>font</name> 121 <name>font</name>
110 <font> 122 <font>
111 <bold>1</bold> 123 <bold>1</bold>
112 </font> 124 </font>
113 </property> 125 </property>
114 <property stdset="1"> 126 <property stdset="1">
115 <name>text</name> 127 <name>text</name>
116 <string>W: 00,00</string> 128 <string>W: 00,00</string>
117 </property> 129 </property>
118 <property stdset="1"> 130 <property stdset="1">
131 <name>toggleButton</name>
132 <bool>false</bool>
133 </property>
134 <property stdset="1">
119 <name>autoRaise</name> 135 <name>autoRaise</name>
120 <bool>false</bool> 136 <bool>false</bool>
121 </property> 137 </property>
138 <property stdset="1">
139 <name>toggleButton</name>
140 <bool>false</bool>
141 </property>
142 <property>
143 <name>toolTip</name>
144 <string></string>
145 </property>
122 </widget> 146 </widget>
123 <spacer> 147 <spacer>
124 <property> 148 <property>
125 <name>name</name> 149 <name>name</name>
126 <cstring>Spacer1</cstring> 150 <cstring>Spacer1</cstring>
127 </property> 151 </property>
128 <property stdset="1"> 152 <property stdset="1">
129 <name>orientation</name> 153 <name>orientation</name>
130 <enum>Horizontal</enum> 154 <enum>Horizontal</enum>
131 </property> 155 </property>
132 <property stdset="1"> 156 <property stdset="1">
133 <name>sizeType</name> 157 <name>sizeType</name>
134 <enum>Expanding</enum> 158 <enum>Expanding</enum>
135 </property> 159 </property>
136 <property> 160 <property>
137 <name>sizeHint</name> 161 <name>sizeHint</name>
138 <size> 162 <size>
139 <width>20</width> 163 <width>20</width>
140 <height>20</height> 164 <height>20</height>
141 </size> 165 </size>
142 </property> 166 </property>
143 </spacer> 167 </spacer>
144 <widget> 168 <widget>
169 <class>QToolButton</class>
170 <property stdset="1">
171 <name>name</name>
172 <cstring>dbl</cstring>
173 </property>
174 <property stdset="1">
175 <name>sizePolicy</name>
176 <sizepolicy>
177 <hsizetype>3</hsizetype>
178 <vsizetype>0</vsizetype>
179 </sizepolicy>
180 </property>
181 <property stdset="1">
182 <name>font</name>
183 <font>
184 <bold>1</bold>
185 </font>
186 </property>
187 <property stdset="1">
188 <name>text</name>
189 <string>2</string>
190 </property>
191 <property stdset="1">
192 <name>toggleButton</name>
193 <bool>true</bool>
194 </property>
195 <property stdset="1">
196 <name>autoRaise</name>
197 <bool>false</bool>
198 </property>
199 <property stdset="1">
200 <name>toggleButton</name>
201 <bool>true</bool>
202 </property>
203 <property>
204 <name>toolTip</name>
205 <string></string>
206 </property>
207 </widget>
208 <spacer>
209 <property>
210 <name>name</name>
211 <cstring>Spacer1_3_2</cstring>
212 </property>
213 <property stdset="1">
214 <name>orientation</name>
215 <enum>Horizontal</enum>
216 </property>
217 <property stdset="1">
218 <name>sizeType</name>
219 <enum>Expanding</enum>
220 </property>
221 <property>
222 <name>sizeHint</name>
223 <size>
224 <width>20</width>
225 <height>20</height>
226 </size>
227 </property>
228 </spacer>
229 <widget>
145 <class>QLabel</class> 230 <class>QLabel</class>
146 <property stdset="1"> 231 <property stdset="1">
147 <name>name</name> 232 <name>name</name>
148 <cstring>labelDate</cstring> 233 <cstring>labelDate</cstring>
149 </property> 234 </property>
150 <property stdset="1"> 235 <property stdset="1">
151 <name>sizePolicy</name> 236 <name>sizePolicy</name>
152 <sizepolicy> 237 <sizepolicy>
153 <hsizetype>3</hsizetype> 238 <hsizetype>3</hsizetype>
154 <vsizetype>7</vsizetype> 239 <vsizetype>7</vsizetype>
155 </sizepolicy> 240 </sizepolicy>
156 </property> 241 </property>
157 <property stdset="1"> 242 <property stdset="1">
158 <name>font</name> 243 <name>font</name>
159 <font> 244 <font>
160 <bold>1</bold> 245 <bold>1</bold>
161 </font> 246 </font>
162 </property> 247 </property>
163 <property stdset="1"> 248 <property stdset="1">
164 <name>text</name> 249 <name>text</name>
165 <string>00 Jan-00 Jan</string> 250 <string>00 Jan-00 Jan</string>
166 </property> 251 </property>
167 <property stdset="1">
168 <name>alignment</name>
169 <set>AlignCenter</set>
170 </property>
171 <property> 252 <property>
172 <name>hAlign</name> 253 <name>hAlign</name>
173 </property> 254 </property>
174 </widget> 255 </widget>
175 <spacer> 256 <spacer>
176 <property> 257 <property>
177 <name>name</name> 258 <name>name</name>
178 <cstring>Spacer1_2</cstring> 259 <cstring>Spacer1_2</cstring>
179 </property> 260 </property>
180 <property stdset="1"> 261 <property stdset="1">
181 <name>orientation</name> 262 <name>orientation</name>
182 <enum>Horizontal</enum> 263 <enum>Horizontal</enum>
183 </property> 264 </property>
184 <property stdset="1"> 265 <property stdset="1">
185 <name>sizeType</name> 266 <name>sizeType</name>
186 <enum>Expanding</enum> 267 <enum>Expanding</enum>
187 </property> 268 </property>
188 <property> 269 <property>
189 <name>sizeHint</name> 270 <name>sizeHint</name>
190 <size> 271 <size>
191 <width>20</width> 272 <width>20</width>
192 <height>20</height> 273 <height>20</height>
193 </size> 274 </size>
194 </property> 275 </property>
195 </spacer> 276 </spacer>
196 <widget> 277 <widget>
197 <class>QToolButton</class> 278 <class>QToolButton</class>
198 <property stdset="1"> 279 <property stdset="1">
199 <name>name</name> 280 <name>name</name>
200 <cstring>forward</cstring> 281 <cstring>forward</cstring>
201 </property> 282 </property>
202 <property stdset="1"> 283 <property stdset="1">
203 <name>sizePolicy</name> 284 <name>sizePolicy</name>
204 <sizepolicy> 285 <sizepolicy>
205 <hsizetype>1</hsizetype> 286 <hsizetype>1</hsizetype>
206 <vsizetype>0</vsizetype> 287 <vsizetype>0</vsizetype>
207 </sizepolicy> 288 </sizepolicy>
208 </property> 289 </property>
209 <property stdset="1"> 290 <property stdset="1">
210 <name>text</name> 291 <name>text</name>
211 <string></string> 292 <string></string>
212 </property> 293 </property>
213 <property stdset="1"> 294 <property stdset="1">
214 <name>pixmap</name> 295 <name>pixmap</name>
215 <pixmap>image1</pixmap> 296 <pixmap>image1</pixmap>
216 </property> 297 </property>
217 <property stdset="1"> 298 <property stdset="1">
218 <name>autoRepeat</name> 299 <name>autoRepeat</name>
219 <bool>true</bool> 300 <bool>true</bool>
220 </property> 301 </property>
221 <property stdset="1"> 302 <property stdset="1">
222 <name>autoRaise</name> 303 <name>autoRaise</name>
223 <bool>true</bool> 304 <bool>true</bool>
224 </property> 305 </property>
225 </widget> 306 </widget>
226 </hbox> 307 </hbox>
227</widget> 308</widget>
228<images> 309<images>
229 <image> 310 <image>
230 <name>image0</name> 311 <name>image0</name>
231 <data format="XPM.GZ" length="582">789c6dcfcd4e843010c0f13b4fd1d01b31bb6cb325211b1f41e3d1c4789876a60bcbd7aeae07637c773b6d5985d870e0f7ef50605b88e7a707516cb3f72b5c5b2b6c036fa2c08f61f87c79bdffcaf2dd5ef0558b5d7e97e51b61c5e33412df4b7f2fcbb09896a94ab557817063cd744cad74a915734aac35308740d018d9332d5ab0c8ec1229f2c2448d156a661b489ee1ab4e4cf2a08a790e24020abb0dd355442eec8e914e45526215790c749e8e89891069125de466b1fe14295705ccaa5863e2d05cc01894925b2a7e8217dd8a631eb169fd509af10fd1a9ebfbdf32008d9d0c07cd274f70ee162773ba2cdfee935c977ffe6b2edf87ec07796f81cd</data> 312 <data format="XPM.GZ" length="582">789c6dcfcd4e843010c0f13b4fd1d01b31bb6cb325211b1f41e3d1c4789876a60bcbd7aeae07637c773b6d5985d870e0f7ef50605b88e7a707516cb3f72b5c5b2b6c036fa2c08f61f87c79bdffcaf2dd5ef0558b5d7e97e51b61c5e33412df4b7f2fcbb09896a94ab557817063cd744cad74a915734aac35308740d018d9332d5ab0c8ec1229f2c2448d156a661b489ee1ab4e4cf2a08a790e24020abb0dd355442eec8e914e45526215790c749e8e89891069125de466b1fe14295705ccaa5863e2d05cc01894925b2a7e8217dd8a631eb169fd509af10fd1a9ebfbdf32008d9d0c07cd274f70ee162773ba2cdfee935c977ffe6b2edf87ec07796f81cd</data>
232 </image> 313 </image>
233 <image> 314 <image>
234 <name>image1</name> 315 <name>image1</name>
235 <data format="XPM.GZ" length="627">789c7dcfc94ec3301006e07b9ec28a6f114a13cbb1a8108f00e28884387819676993340b07847877329ea8697a60ec83bfdf232f8784bdbfbdb0e4104db39e6bcb6ca54796b8afb6fdfef87cfe89e25cb2650ac1f2f8218a5366d96bdf01aef9b2e65928a4458a0c07b25c29890352e63293e19c53a0968f52230159e8c22981744495133552097554a1f982b4ce6aeb9013d215165c81ec894e109b4070ca85378f2b35f18c04050214b20d04d010762ba457003eecd6442f88f34a45f4817ea147762b35d1acf4c47457d784737d9f18ebee1363614bf852c6f812b6c460f90abb6e93ba694ed7c49fdbaeee2f76b83da71ba772e0db5d9ccf4b07dfdd5e858edd9b2948fff9d796fc3e457f660e8d47</data> 316 <data format="XPM.GZ" length="627">789c7dcfc94ec3301006e07b9ec28a6f114a13cbb1a8108f00e28884387819676993340b07847877329ea8697a60ec83bfdf232f8784bdbfbdb0e4104db39e6bcb6ca54796b8afb6fdfef87cfe89e25cb2650ac1f2f8218a5366d96bdf01aef9b2e65928a4458a0c07b25c29890352e63293e19c53a0968f52230159e8c22981744495133552097554a1f982b4ce6aeb9013d215165c81ec894e109b4070ca85378f2b35f18c04050214b20d04d010762ba457003eecd6442f88f34a45f4817ea147762b35d1acf4c47457d784737d9f18ebee1363614bf852c6f812b6c460f90abb6e93ba694ed7c49fdbaeee2f76b83da71ba772e0db5d9ccf4b07dfdd5e858edd9b2948fff9d796fc3e457f660e8d47</data>
236 </image> 317 </image>
237</images> 318</images>
238</UI> 319</UI>