summaryrefslogtreecommitdiff
authorerik <erik>2007-01-10 17:24:23 (UTC)
committer erik <erik>2007-01-10 17:24:23 (UTC)
commite7d3e1d0f3c75979c01ea6373ed3c80d0c986000 (patch) (unidiff)
tree34a6e8aa3de82f07c0531e59f375da216fbfb97a
parent51bd5e8d542372ad54898ce642fe9b82b8ba83f3 (diff)
downloadopie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.zip
opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.tar.gz
opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.tar.bz2
All of the files in this commit have an inheritance member function
mismatch correction. None are serious, but all would have been improperly mislinked in the inheritance hierarchy if attempted to be used.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/holiday/national/nationalcfg.cpp2
-rw-r--r--core/pim/datebook/holiday/national/nationalcfg.h2
-rw-r--r--inputmethods/handwriting/qimpenwidget.cpp2
-rw-r--r--inputmethods/handwriting/qimpenwidget.h2
-rw-r--r--libopie2/opiepim/backend/odatebookaccessbackend_xml.cpp2
-rw-r--r--libopie2/opiepim/backend/odatebookaccessbackend_xml.h2
-rw-r--r--library/lightstyle.cpp8
-rw-r--r--library/lightstyle.h8
8 files changed, 14 insertions, 14 deletions
diff --git a/core/pim/datebook/holiday/national/nationalcfg.cpp b/core/pim/datebook/holiday/national/nationalcfg.cpp
index f71c833..33e9db3 100644
--- a/core/pim/datebook/holiday/national/nationalcfg.cpp
+++ b/core/pim/datebook/holiday/national/nationalcfg.cpp
@@ -151,221 +151,221 @@ bool NHcfg::setName(const QXmlAttributes&attr)
151 return false; 151 return false;
152 } 152 }
153 _contentname = attr.value(nindx); 153 _contentname = attr.value(nindx);
154 return true; 154 return true;
155} 155}
156 156
157bool NHcfg::parsevalue(const QString&name,const QXmlAttributes&attr) 157bool NHcfg::parsevalue(const QString&name,const QXmlAttributes&attr)
158{ 158{
159 if (name != _key_entry && name != _key_calc) {err = QString("Not a valid entry (%1)").arg(name); return false;} 159 if (name != _key_entry && name != _key_calc) {err = QString("Not a valid entry (%1)").arg(name); return false;}
160 160
161 int nindex = attr.index(_content_name); 161 int nindex = attr.index(_content_name);
162 int dindex = attr.index(_content_date); 162 int dindex = attr.index(_content_date);
163 int tindex = attr.index(_content_type); 163 int tindex = attr.index(_content_type);
164 164
165 if (nindex == -1) { 165 if (nindex == -1) {
166 err = QString("Listentry %1 is invalid (name missing)").arg(counter); 166 err = QString("Listentry %1 is invalid (name missing)").arg(counter);
167 return false; 167 return false;
168 } 168 }
169 m_currentEntry.setName(attr.value(nindex)); 169 m_currentEntry.setName(attr.value(nindex));
170 170
171 if (tindex != -1 && attr.value(tindex)==_content_float) { 171 if (tindex != -1 && attr.value(tindex)==_content_float) {
172 m_currentEntry.setType(NHentry::floating); 172 m_currentEntry.setType(NHentry::floating);
173 return true; 173 return true;
174 } 174 }
175 175
176 if (dindex == -1) { 176 if (dindex == -1) {
177 err = QString("Listentry %1 is invalid ").arg(counter);return false; 177 err = QString("Listentry %1 is invalid ").arg(counter);return false;
178 } 178 }
179 179
180 QString txt = attr.value(nindex); 180 QString txt = attr.value(nindex);
181 QString dstring = attr.value(dindex); 181 QString dstring = attr.value(dindex);
182 QStringList e = QStringList::split("-",dstring); 182 QStringList e = QStringList::split("-",dstring);
183 if (e.count()!=2){err=QString("Datestring %1 is invalid (entry %2)").arg(dstring).arg(counter);return false;} 183 if (e.count()!=2){err=QString("Datestring %1 is invalid (entry %2)").arg(dstring).arg(counter);return false;}
184 QDate d(0,e[0].toInt(),e[1].toInt()); 184 QDate d(0,e[0].toInt(),e[1].toInt());
185 m_currentEntry.setDate(d); 185 m_currentEntry.setDate(d);
186 return true; 186 return true;
187} 187}
188 188
189bool NHcfg::parseCalc(const QString&name,const QXmlAttributes&attr) 189bool NHcfg::parseCalc(const QString&name,const QXmlAttributes&attr)
190{ 190{
191 ++level; 191 ++level;
192 int vindex = attr.index(_content_value); 192 int vindex = attr.index(_content_value);
193 if (vindex == -1) { 193 if (vindex == -1) {
194 err = QString("Value for element %1 on entry %2 is missing").arg(name).arg(counter); 194 err = QString("Value for element %1 on entry %2 is missing").arg(name).arg(counter);
195 return false; 195 return false;
196 } 196 }
197 int what_c =0; 197 int what_c =0;
198 QString what = name.lower(); 198 QString what = name.lower();
199 QString value; 199 QString value;
200 if (what == _content_date) { 200 if (what == _content_date) {
201 what_c = 1; 201 what_c = 1;
202 } else if (what == _content_weekd) { 202 } else if (what == _content_weekd) {
203 what_c = 2; 203 what_c = 2;
204 } else if (what == _content_offset) { 204 } else if (what == _content_offset) {
205 what_c = 3; 205 what_c = 3;
206 } else if (what == _content_dayofmonth) { 206 } else if (what == _content_dayofmonth) {
207 what_c = 4; 207 what_c = 4;
208 } else if (what == _content_datedep) { 208 } else if (what == _content_datedep) {
209 what_c = 5; 209 what_c = 5;
210 } else if (what == _content_month) { 210 } else if (what == _content_month) {
211 what_c = 6; 211 what_c = 6;
212 } 212 }
213 if (what_c == 0) { 213 if (what_c == 0) {
214 err = QString("Unknown element %1 on entry %2").arg(name).arg(counter); 214 err = QString("Unknown element %1 on entry %2").arg(name).arg(counter);
215 return false; 215 return false;
216 } 216 }
217 value = attr.value(vindex).lower(); 217 value = attr.value(vindex).lower();
218 QStringList e; 218 QStringList e;
219 QDate d; 219 QDate d;
220 bool dotformat = false; 220 bool dotformat = false;
221 switch (what_c) { 221 switch (what_c) {
222 case 1: 222 case 1:
223 if (value != "easter") { 223 if (value != "easter") {
224 e = QStringList::split("-",value); 224 e = QStringList::split("-",value);
225 if (e.count()!=2) { 225 if (e.count()!=2) {
226 e = QStringList::split(".",value); 226 e = QStringList::split(".",value);
227 dotformat = true; 227 dotformat = true;
228 } 228 }
229 if (e.count()!=2){err=QString("Datestring %1 is invalid (entry %2)").arg(value).arg(counter);return false;} 229 if (e.count()!=2){err=QString("Datestring %1 is invalid (entry %2)").arg(value).arg(counter);return false;}
230 if (!dotformat) { 230 if (!dotformat) {
231 d=QDate(0,e[0].toInt(),e[1].toInt()); 231 d=QDate(0,e[0].toInt(),e[1].toInt());
232 } else { 232 } else {
233 d=QDate(0,e[1].toInt(),e[0].toInt()); 233 d=QDate(0,e[1].toInt(),e[0].toInt());
234 } 234 }
235 } else { 235 } else {
236 d=QDate(9999,1,1); 236 d=QDate(9999,1,1);
237 } 237 }
238 m_currentEntry.setDate(d); 238 m_currentEntry.setDate(d);
239 break; 239 break;
240 case 2: 240 case 2:
241 m_currentEntry.setWeekday(value); 241 m_currentEntry.setWeekday(value);
242 break; 242 break;
243 case 3: 243 case 3:
244 m_currentEntry.setOffet(value.toInt()); 244 m_currentEntry.setOffet(value.toInt());
245 break; 245 break;
246 case 4: 246 case 4:
247 m_currentEntry.setDayofmonth(value); 247 m_currentEntry.setDayofmonth(value);
248 break; 248 break;
249 case 5: 249 case 5:
250 m_currentEntry.setDaydep(value); 250 m_currentEntry.setDaydep(value);
251 break; 251 break;
252 case 6: 252 case 6:
253 m_currentEntry.setMonth(value); 253 m_currentEntry.setMonth(value);
254 break; 254 break;
255 } 255 }
256 return true; 256 return true;
257} 257}
258 258
259bool NHcfg::endElement(const QString&, const QString&,const QString& name) 259bool NHcfg::endElement(const QString&, const QString&,const QString& name)
260{ 260{
261// odebug << "End element: " << name << oendl; 261// odebug << "End element: " << name << oendl;
262 if (name==_key_entry) { 262 if (name==_key_entry) {
263 if (m_currentEntry.type()==NHentry::fix) { 263 if (m_currentEntry.type()==NHentry::fix) {
264 currentFixList.append(m_currentEntry); 264 currentFixList.append(m_currentEntry);
265 } else { 265 } else {
266 currentFloatList.append(m_currentEntry); 266 currentFloatList.append(m_currentEntry);
267// odebug << "Floatlist count " << currentFloatList.count() << oendl; 267// odebug << "Floatlist count " << currentFloatList.count() << oendl;
268 } 268 }
269 } else if (name==_key_calc) { 269 } else if (name==_key_calc) {
270 270
271 } 271 }
272 if (stage>=3) { 272 if (stage>=3) {
273 --level; 273 --level;
274 } 274 }
275// odebug << "Level == " << level << oendl; 275// odebug << "Level == " << level << oendl;
276 return true; 276 return true;
277} 277}
278 278
279const QString&NHcfg::errorString()const 279QString NHcfg::errorString() const
280{ 280{
281 return err; 281 return err;
282} 282}
283 283
284NHentry::NHentry() 284NHentry::NHentry()
285 :m_Type(fix) 285 :m_Type(fix)
286{ 286{
287 m_Offset=0; 287 m_Offset=0;
288} 288}
289 289
290NHentry::~NHentry() 290NHentry::~NHentry()
291{} 291{}
292 292
293void NHentry::setName(const QString&aName) 293void NHentry::setName(const QString&aName)
294{ 294{
295 m_Name = aName; 295 m_Name = aName;
296} 296}
297 297
298const QString&NHentry::name()const 298const QString&NHentry::name()const
299{ 299{
300 return m_Name; 300 return m_Name;
301} 301}
302 302
303void NHentry::setType(NHentry::entry_type aType) 303void NHentry::setType(NHentry::entry_type aType)
304{ 304{
305 m_Type = aType; 305 m_Type = aType;
306} 306}
307 307
308NHentry::entry_type NHentry::type()const 308NHentry::entry_type NHentry::type()const
309{ 309{
310 return m_Type; 310 return m_Type;
311} 311}
312 312
313void NHentry::setDate(const QDate&aDate) 313void NHentry::setDate(const QDate&aDate)
314{ 314{
315 m_Date = aDate; 315 m_Date = aDate;
316} 316}
317 317
318const QDate&NHentry::date()const 318const QDate&NHentry::date()const
319{ 319{
320 return m_Date; 320 return m_Date;
321} 321}
322 322
323void NHentry::setWeekday(const QString&aDay) 323void NHentry::setWeekday(const QString&aDay)
324{ 324{
325 m_Weekday = aDay; 325 m_Weekday = aDay;
326} 326}
327 327
328const QString&NHentry::weekday()const 328const QString&NHentry::weekday()const
329{ 329{
330 return m_Weekday; 330 return m_Weekday;
331} 331}
332 332
333void NHentry::setDayofmonth(const QString&aDay) 333void NHentry::setDayofmonth(const QString&aDay)
334{ 334{
335 m_Dayofmonth = aDay; 335 m_Dayofmonth = aDay;
336} 336}
337 337
338const QString&NHentry::dayofmonth()const 338const QString&NHentry::dayofmonth()const
339{ 339{
340 return m_Dayofmonth; 340 return m_Dayofmonth;
341} 341}
342 342
343void NHentry::setDaydep(const QString&dep) 343void NHentry::setDaydep(const QString&dep)
344{ 344{
345 m_Depth = dep; 345 m_Depth = dep;
346} 346}
347 347
348const QString&NHentry::daydep()const 348const QString&NHentry::daydep()const
349{ 349{
350 return m_Depth; 350 return m_Depth;
351} 351}
352 352
353void NHentry::setMonth(const QString&month) 353void NHentry::setMonth(const QString&month)
354{ 354{
355 m_Month = month; 355 m_Month = month;
356} 356}
357 357
358const QString&NHentry::month()const 358const QString&NHentry::month()const
359{ 359{
360 return m_Month; 360 return m_Month;
361} 361}
362 362
363void NHentry::setOffet(int aOffset) 363void NHentry::setOffet(int aOffset)
364{ 364{
365 m_Offset = aOffset; 365 m_Offset = aOffset;
366} 366}
367 367
368const int NHentry::offset()const 368const int NHentry::offset()const
369{ 369{
370 return m_Offset; 370 return m_Offset;
371} 371}
diff --git a/core/pim/datebook/holiday/national/nationalcfg.h b/core/pim/datebook/holiday/national/nationalcfg.h
index 872df65..2aedd95 100644
--- a/core/pim/datebook/holiday/national/nationalcfg.h
+++ b/core/pim/datebook/holiday/national/nationalcfg.h
@@ -1,75 +1,75 @@
1#ifndef _NATIONAL_CFG_H 1#ifndef _NATIONAL_CFG_H
2#define _NATIONAL_CFG_H 2#define _NATIONAL_CFG_H
3 3
4#include <qxml.h> 4#include <qxml.h>
5#include <qstringlist.h> 5#include <qstringlist.h>
6#include <qvaluelist.h> 6#include <qvaluelist.h>
7#include <qmap.h> 7#include <qmap.h>
8#include <qdatetime.h> 8#include <qdatetime.h>
9 9
10typedef QMap<QDate,QStringList> tholidaylist; 10typedef QMap<QDate,QStringList> tholidaylist;
11 11
12class NHentry 12class NHentry
13{ 13{
14public: 14public:
15 enum entry_type{fix,floating}; 15 enum entry_type{fix,floating};
16 NHentry(); 16 NHentry();
17 virtual ~NHentry(); 17 virtual ~NHentry();
18 18
19 void setName(const QString&); 19 void setName(const QString&);
20 const QString&name()const; 20 const QString&name()const;
21 void setType(entry_type); 21 void setType(entry_type);
22 entry_type type()const; 22 entry_type type()const;
23 void setDate(const QDate&); 23 void setDate(const QDate&);
24 const QDate&date()const; 24 const QDate&date()const;
25 void setWeekday(const QString&); 25 void setWeekday(const QString&);
26 const QString&weekday()const; 26 const QString&weekday()const;
27 void setDayofmonth(const QString&); 27 void setDayofmonth(const QString&);
28 const QString&dayofmonth()const; 28 const QString&dayofmonth()const;
29 void setDaydep(const QString&); 29 void setDaydep(const QString&);
30 const QString&daydep()const; 30 const QString&daydep()const;
31 void setMonth(const QString&); 31 void setMonth(const QString&);
32 const QString&month()const; 32 const QString&month()const;
33 void setOffet(int); 33 void setOffet(int);
34 const int offset()const; 34 const int offset()const;
35 35
36protected: 36protected:
37 entry_type m_Type; 37 entry_type m_Type;
38 QString m_Name,m_Weekday,m_Dayofmonth,m_Depth,m_Month; 38 QString m_Name,m_Weekday,m_Dayofmonth,m_Depth,m_Month;
39 QDate m_Date; 39 QDate m_Date;
40 int m_Offset; 40 int m_Offset;
41}; 41};
42 42
43typedef QValueList<NHentry> tentrylist; 43typedef QValueList<NHentry> tentrylist;
44 44
45class NHcfg:public QXmlDefaultHandler 45class NHcfg:public QXmlDefaultHandler
46{ 46{
47public: 47public:
48 NHcfg(); 48 NHcfg();
49 virtual ~NHcfg(); 49 virtual ~NHcfg();
50 50
51 bool load(const QString&); 51 bool load(const QString&);
52 const tentrylist&fixDates()const; 52 const tentrylist&fixDates()const;
53 const tentrylist&floatingDates()const; 53 const tentrylist&floatingDates()const;
54 54
55 virtual bool warning(const QXmlParseException& e); 55 virtual bool warning(const QXmlParseException& e);
56 virtual bool error(const QXmlParseException& e); 56 virtual bool error(const QXmlParseException& e);
57 virtual bool fatalError(const QXmlParseException& e); 57 virtual bool fatalError(const QXmlParseException& e);
58 virtual bool startElement(const QString&, const QString&,const QString& name, const QXmlAttributes& attr); 58 virtual bool startElement(const QString&, const QString&,const QString& name, const QXmlAttributes& attr);
59 virtual bool endElement(const QString&, const QString&,const QString& name); 59 virtual bool endElement(const QString&, const QString&,const QString& name);
60 virtual const QString&errorString()const; 60 virtual QString errorString()const;
61 61
62protected: 62protected:
63 QString err,_contentname; 63 QString err,_contentname;
64 QString _path; 64 QString _path;
65 65
66 NHentry m_currentEntry; 66 NHentry m_currentEntry;
67 67
68 bool setName(const QXmlAttributes&); 68 bool setName(const QXmlAttributes&);
69 bool parsevalue(const QString&,const QXmlAttributes&); 69 bool parsevalue(const QString&,const QXmlAttributes&);
70 bool parseCalc(const QString&,const QXmlAttributes&); 70 bool parseCalc(const QString&,const QXmlAttributes&);
71 int stage,counter,level; 71 int stage,counter,level;
72 tentrylist currentFloatList,currentFixList; 72 tentrylist currentFloatList,currentFixList;
73}; 73};
74 74
75#endif 75#endif
diff --git a/inputmethods/handwriting/qimpenwidget.cpp b/inputmethods/handwriting/qimpenwidget.cpp
index 8f8f582..7223e1a 100644
--- a/inputmethods/handwriting/qimpenwidget.cpp
+++ b/inputmethods/handwriting/qimpenwidget.cpp
@@ -157,257 +157,257 @@ void QIMPenWidget::changeCharSet( QIMPenCharSet *cs, int pos )
157{ 157{
158 if ( pos >= 0 && pos < (int)charSets.count() ) { 158 if ( pos >= 0 && pos < (int)charSets.count() ) {
159 CharSetEntry *e = new CharSetEntry; 159 CharSetEntry *e = new CharSetEntry;
160 e->cs = cs; 160 e->cs = cs;
161 e->stretch = charSets.at(pos)->stretch; 161 e->stretch = charSets.at(pos)->stretch;
162 charSets.remove( pos ); 162 charSets.remove( pos );
163 charSets.insert( pos, e ); 163 charSets.insert( pos, e );
164 if ( pos == currCharSet ) { 164 if ( pos == currCharSet ) {
165 emit changeCharSet( charSets.at(currCharSet)->cs ); 165 emit changeCharSet( charSets.at(currCharSet)->cs );
166 } 166 }
167 update(); 167 update();
168 } 168 }
169} 169}
170 170
171void QIMPenWidget::clearCharSets() 171void QIMPenWidget::clearCharSets()
172{ 172{
173 charSets.clear(); 173 charSets.clear();
174 currCharSet = 0; 174 currCharSet = 0;
175 update(); 175 update();
176} 176}
177 177
178/*! 178/*!
179 Display a character. \a speed determines how quickly the character is 179 Display a character. \a speed determines how quickly the character is
180 drawn. 180 drawn.
181*/ 181*/
182void QIMPenWidget::showCharacter( QIMPenChar *ch, int speed ) 182void QIMPenWidget::showCharacter( QIMPenChar *ch, int speed )
183{ 183{
184 outputChar = 0; 184 outputChar = 0;
185 outputStroke = 0; 185 outputStroke = 0;
186 strokes.clear(); 186 strokes.clear();
187 mode = Output; 187 mode = Output;
188 repaint(); 188 repaint();
189 if ( !ch || ch->isEmpty() ) { 189 if ( !ch || ch->isEmpty() ) {
190 mode = Waiting; 190 mode = Waiting;
191 return; 191 return;
192 } 192 }
193 193
194 outputChar = ch; 194 outputChar = ch;
195 outputStroke = outputChar->penStrokes().getFirst(); 195 outputStroke = outputChar->penStrokes().getFirst();
196 if ( speed < 0 ) speed = 0; 196 if ( speed < 0 ) speed = 0;
197 if ( speed > 20 ) speed = 20; 197 if ( speed > 20 ) speed = 20;
198 speed = 50 - speed; 198 speed = 50 - speed;
199 pointIndex = 0; 199 pointIndex = 0;
200 strokeIndex = 0; 200 strokeIndex = 0;
201 lastPoint = outputStroke->startingPoint(); 201 lastPoint = outputStroke->startingPoint();
202 QRect br( outputChar->boundingRect() ); 202 QRect br( outputChar->boundingRect() );
203 lastPoint.setX( (width() - br.width()) / 2 + (lastPoint.x () - br.left()) ); 203 lastPoint.setX( (width() - br.width()) / 2 + (lastPoint.x () - br.left()) );
204 QPoint offset = lastPoint - outputStroke->startingPoint(); 204 QPoint offset = lastPoint - outputStroke->startingPoint();
205 br.moveBy( offset.x(), offset.y() ); 205 br.moveBy( offset.x(), offset.y() );
206 dirtyRect |= br; 206 dirtyRect |= br;
207 timer->start( speed ); 207 timer->start( speed );
208} 208}
209 209
210/*! 210/*!
211 Handle drawing/clearing of characters. 211 Handle drawing/clearing of characters.
212*/ 212*/
213void QIMPenWidget::timeout() 213void QIMPenWidget::timeout()
214{ 214{
215 if ( mode == Output ) { 215 if ( mode == Output ) {
216 const QArray<QIMPenGlyphLink> &chain = outputStroke->chain(); 216 const QArray<QIMPenGlyphLink> &chain = outputStroke->chain();
217 if ( pointIndex < chain.count() ) { 217 if ( pointIndex < chain.count() ) {
218 QPainter paint( this ); 218 QPainter paint( this );
219 paint.setBrush( Qt::black ); 219 paint.setBrush( Qt::black );
220 for ( unsigned i = 0; i < 3 && pointIndex < chain.count(); i++ ) { 220 for ( unsigned i = 0; i < 3 && pointIndex < chain.count(); i++ ) {
221 lastPoint.rx() += chain[pointIndex].dx; 221 lastPoint.rx() += chain[pointIndex].dx;
222 lastPoint.ry() += chain[pointIndex].dy; 222 lastPoint.ry() += chain[pointIndex].dy;
223 pointIndex++; 223 pointIndex++;
224 paint.drawRect( lastPoint.x()-1, lastPoint.y()-1, 2, 2 ); 224 paint.drawRect( lastPoint.x()-1, lastPoint.y()-1, 2, 2 );
225 } 225 }
226 } 226 }
227 if ( pointIndex >= chain.count() ) { 227 if ( pointIndex >= chain.count() ) {
228 QIMPenStrokeList strokes = outputChar->penStrokes(); 228 QIMPenStrokeList strokes = outputChar->penStrokes();
229 if ( strokeIndex < (int)strokes.count() - 1 ) { 229 if ( strokeIndex < (int)strokes.count() - 1 ) {
230 pointIndex = 0; 230 pointIndex = 0;
231 strokeIndex++; 231 strokeIndex++;
232 outputStroke = strokes.at( strokeIndex ); 232 outputStroke = strokes.at( strokeIndex );
233 lastPoint = outputChar->startingPoint(); 233 lastPoint = outputChar->startingPoint();
234 QRect br( outputChar->boundingRect() ); 234 QRect br( outputChar->boundingRect() );
235 lastPoint.setX( (width() - br.width()) / 2 235 lastPoint.setX( (width() - br.width()) / 2
236 + (lastPoint.x () - br.left()) ); 236 + (lastPoint.x () - br.left()) );
237 QPoint off = lastPoint - outputChar->startingPoint(); 237 QPoint off = lastPoint - outputChar->startingPoint();
238 lastPoint = outputStroke->startingPoint() + off; 238 lastPoint = outputStroke->startingPoint() + off;
239 } else { 239 } else {
240 timer->stop(); 240 timer->stop();
241 mode = Waiting; 241 mode = Waiting;
242 } 242 }
243 } 243 }
244 } else if ( mode == Waiting ) { 244 } else if ( mode == Waiting ) {
245 QRect r( dirtyRect ); 245 QRect r( dirtyRect );
246 if ( !r.isNull() ) { 246 if ( !r.isNull() ) {
247 r.moveBy( -2, -2 ); 247 r.moveBy( -2, -2 );
248 r.setSize( r.size() + QSize( 4, 4 ) ); 248 r.setSize( r.size() + QSize( 4, 4 ) );
249 repaint( r ); 249 repaint( r );
250 } 250 }
251 } 251 }
252} 252}
253 253
254/*! 254/*!
255 If the point \a p is over one of the character set titles, switch 255 If the point \a p is over one of the character set titles, switch
256 to the set and return TRUE. 256 to the set and return TRUE.
257*/ 257*/
258bool QIMPenWidget::selectSet( QPoint p ) 258bool QIMPenWidget::selectSet( QPoint p )
259{ 259{
260 if ( charSets.count() ) { 260 if ( charSets.count() ) {
261 CharSetEntryIterator it( charSets ); 261 CharSetEntryIterator it( charSets );
262 int spos = 0; 262 int spos = 0;
263 int idx = 0; 263 int idx = 0;
264 for ( ; it.current(); ++it, idx++ ) { 264 for ( ; it.current(); ++it, idx++ ) {
265 int setWidth = width() * it.current()->stretch / totalStretch; 265 int setWidth = width() * it.current()->stretch / totalStretch;
266 spos += setWidth; 266 spos += setWidth;
267 if ( p.x() < spos ) { 267 if ( p.x() < spos ) {
268 if ( idx != currCharSet ) { 268 if ( idx != currCharSet ) {
269 currCharSet = idx; 269 currCharSet = idx;
270 update( 0, 0, width(), 12 ); 270 update( 0, 0, width(), 12 );
271 emit changeCharSet( currCharSet ); 271 emit changeCharSet( currCharSet );
272 emit changeCharSet( charSets.at(currCharSet)->cs ); 272 emit changeCharSet( charSets.at(currCharSet)->cs );
273 } 273 }
274 break; 274 break;
275 } 275 }
276 } 276 }
277 } 277 }
278 278
279 return FALSE; 279 return FALSE;
280} 280}
281 281
282/*! 282/*!
283 Hopefully returns a sensible size. 283 Hopefully returns a sensible size.
284*/ 284*/
285QSize QIMPenWidget::sizeHint() 285QSize QIMPenWidget::sizeHint() const
286{ 286{
287 return QSize( TITLE_WIDTH * charSets.count(), 75 ); 287 return QSize( TITLE_WIDTH * charSets.count(), 75 );
288} 288}
289 289
290void QIMPenWidget::mousePressEvent( QMouseEvent *e ) 290void QIMPenWidget::mousePressEvent( QMouseEvent *e )
291{ 291{
292 if ( !readOnly && e->button() == LeftButton && mode == Waiting ) { 292 if ( !readOnly && e->button() == LeftButton && mode == Waiting ) {
293 // if selectSet returns false the click was not over the 293 // if selectSet returns false the click was not over the
294 // char set selectors. 294 // char set selectors.
295 if ( !selectSet( e->pos() ) ) { 295 if ( !selectSet( e->pos() ) ) {
296 // start of character input 296 // start of character input
297 timer->stop(); 297 timer->stop();
298 if ( outputChar ) { 298 if ( outputChar ) {
299 outputChar = 0; 299 outputChar = 0;
300 outputStroke = 0; 300 outputStroke = 0;
301 repaint(); 301 repaint();
302 } 302 }
303 mode = Input; 303 mode = Input;
304 lastPoint = e->pos(); 304 lastPoint = e->pos();
305 emit beginStroke(); 305 emit beginStroke();
306 inputStroke = new QIMPenStroke; 306 inputStroke = new QIMPenStroke;
307 strokes.append( inputStroke ); 307 strokes.append( inputStroke );
308 inputStroke->beginInput( e->pos() ); 308 inputStroke->beginInput( e->pos() );
309 QPainter paint( this ); 309 QPainter paint( this );
310 paint.setBrush( Qt::black ); 310 paint.setBrush( Qt::black );
311 paint.drawRect( lastPoint.x()-1, lastPoint.y()-1, 2, 2 ); 311 paint.drawRect( lastPoint.x()-1, lastPoint.y()-1, 2, 2 );
312 } 312 }
313 } 313 }
314} 314}
315 315
316void QIMPenWidget::mouseReleaseEvent( QMouseEvent *e ) 316void QIMPenWidget::mouseReleaseEvent( QMouseEvent *e )
317{ 317{
318 if ( !readOnly && e->button() == LeftButton && mode == Input ) { 318 if ( !readOnly && e->button() == LeftButton && mode == Input ) {
319 mode = Waiting; 319 mode = Waiting;
320 inputStroke->endInput(); 320 inputStroke->endInput();
321 if ( charSets.count() ) 321 if ( charSets.count() )
322 emit stroke( inputStroke ); 322 emit stroke( inputStroke );
323 inputStroke = 0; 323 inputStroke = 0;
324 } 324 }
325} 325}
326 326
327void QIMPenWidget::mouseMoveEvent( QMouseEvent *e ) 327void QIMPenWidget::mouseMoveEvent( QMouseEvent *e )
328{ 328{
329 if ( !readOnly && mode == Input ) { 329 if ( !readOnly && mode == Input ) {
330 int dx = QABS( e->pos().x() - lastPoint.x() ); 330 int dx = QABS( e->pos().x() - lastPoint.x() );
331 int dy = QABS( e->pos().y() - lastPoint.y() ); 331 int dy = QABS( e->pos().y() - lastPoint.y() );
332 if ( dx + dy > 1 ) { 332 if ( dx + dy > 1 ) {
333 if ( inputStroke->addPoint( e->pos() ) ) { 333 if ( inputStroke->addPoint( e->pos() ) ) {
334 QPainter paint( this ); 334 QPainter paint( this );
335 paint.setPen( Qt::black ); 335 paint.setPen( Qt::black );
336 paint.setBrush( Qt::black ); 336 paint.setBrush( Qt::black );
337 const QArray<QIMPenGlyphLink> &chain = inputStroke->chain(); 337 const QArray<QIMPenGlyphLink> &chain = inputStroke->chain();
338 QPoint p( e->pos() ); 338 QPoint p( e->pos() );
339 for ( int i = (int)chain.count()-1; i >= 0; i-- ) { 339 for ( int i = (int)chain.count()-1; i >= 0; i-- ) {
340 paint.drawRect( p.x()-1, p.y()-1, 2, 2 ); 340 paint.drawRect( p.x()-1, p.y()-1, 2, 2 );
341 p.rx() -= chain[i].dx; 341 p.rx() -= chain[i].dx;
342 p.ry() -= chain[i].dy; 342 p.ry() -= chain[i].dy;
343 if ( p == lastPoint ) 343 if ( p == lastPoint )
344 break; 344 break;
345 } 345 }
346 346
347 /* ### use this when thick lines work properly on all devices 347 /* ### use this when thick lines work properly on all devices
348 paint.setPen( QPen( Qt::black, 2 ) ); 348 paint.setPen( QPen( Qt::black, 2 ) );
349 paint.drawLine( lastPoint, e->pos() ); 349 paint.drawLine( lastPoint, e->pos() );
350 */ 350 */
351 } 351 }
352 lastPoint = e->pos(); 352 lastPoint = e->pos();
353 } 353 }
354 } 354 }
355} 355}
356 356
357void QIMPenWidget::paintEvent( QPaintEvent * ) 357void QIMPenWidget::paintEvent( QPaintEvent * )
358{ 358{
359 QPainter paint( this ); 359 QPainter paint( this );
360 360
361 // draw guidelines 361 // draw guidelines
362 paint.setPen( Qt::gray ); 362 paint.setPen( Qt::gray );
363 paint.drawLine( 0, 0, width(), 0 ); 363 paint.drawLine( 0, 0, width(), 0 );
364 int y = height() / 3; 364 int y = height() / 3;
365 paint.drawLine( 0, y, width(), y ); 365 paint.drawLine( 0, y, width(), y );
366 y *= 2; 366 y *= 2;
367 paint.setPen( blue ); 367 paint.setPen( blue );
368 paint.drawLine( 0, y, width(), y ); 368 paint.drawLine( 0, y, width(), y );
369 paint.setPen( Qt::gray ); 369 paint.setPen( Qt::gray );
370 370
371 if ( !charSets.count() ) 371 if ( !charSets.count() )
372 return; 372 return;
373 373
374 // draw the character set titles 374 // draw the character set titles
375 QFont selFont( "helvetica", 8, QFont::Bold ); 375 QFont selFont( "helvetica", 8, QFont::Bold );
376 QFont font( "helvetica", 8 ); 376 QFont font( "helvetica", 8 );
377 CharSetEntryIterator it( charSets ); 377 CharSetEntryIterator it( charSets );
378 int spos = 0; 378 int spos = 0;
379 for ( ; it.current(); ++it ) { 379 for ( ; it.current(); ++it ) {
380 int setWidth = width() * it.current()->stretch / totalStretch; 380 int setWidth = width() * it.current()->stretch / totalStretch;
381 spos += setWidth; 381 spos += setWidth;
382 if ( it.current() != charSets.getLast() ) { 382 if ( it.current() != charSets.getLast() ) {
383 paint.drawLine( spos, 0, spos, 5 ); 383 paint.drawLine( spos, 0, spos, 5 );
384 paint.drawLine( spos, height()-1, spos, height()-6 ); 384 paint.drawLine( spos, height()-1, spos, height()-6 );
385 } 385 }
386 paint.setFont( font ); 386 paint.setFont( font );
387 int w = paint.fontMetrics().width( it.current()->cs->title() ); 387 int w = paint.fontMetrics().width( it.current()->cs->title() );
388 int tpos = spos - setWidth / 2; 388 int tpos = spos - setWidth / 2;
389 paint.drawText( tpos - w/2, 0, w, 12, QPainter::AlignCenter, 389 paint.drawText( tpos - w/2, 0, w, 12, QPainter::AlignCenter,
390 it.current()->cs->title() ); 390 it.current()->cs->title() );
391 } 391 }
392 392
393 // draw any character that should be displayed when repainted. 393 // draw any character that should be displayed when repainted.
394 QPoint off; 394 QPoint off;
395 const QIMPenStrokeList *stk = 0; 395 const QIMPenStrokeList *stk = 0;
396 if ( outputChar && mode == Waiting ) { 396 if ( outputChar && mode == Waiting ) {
397 stk = &outputChar->penStrokes(); 397 stk = &outputChar->penStrokes();
398 QPoint p( outputChar->startingPoint() ); 398 QPoint p( outputChar->startingPoint() );
399 QRect br( outputChar->boundingRect() ); 399 QRect br( outputChar->boundingRect() );
400 p.setX( (width() - br.width()) / 2 + (p.x () - br.left()) ); 400 p.setX( (width() - br.width()) / 2 + (p.x () - br.left()) );
401 off = p - outputChar->startingPoint(); 401 off = p - outputChar->startingPoint();
402 } else if ( mode == Waiting ) { 402 } else if ( mode == Waiting ) {
403 stk = &strokes; 403 stk = &strokes;
404 strokeColor = gray; 404 strokeColor = gray;
405 } 405 }
406 406
407 if ( stk && !stk->isEmpty() ) { 407 if ( stk && !stk->isEmpty() ) {
408 paint.setPen( strokeColor ); 408 paint.setPen( strokeColor );
409 paint.setBrush( strokeColor ); 409 paint.setBrush( strokeColor );
410 QIMPenStrokeIterator it( *stk ); 410 QIMPenStrokeIterator it( *stk );
411 while ( it.current() ) { 411 while ( it.current() ) {
412 QPoint p = it.current()->startingPoint() + off; 412 QPoint p = it.current()->startingPoint() + off;
413 paint.drawRect( p.x()-1, p.y()-1, 2, 2 ); 413 paint.drawRect( p.x()-1, p.y()-1, 2, 2 );
diff --git a/inputmethods/handwriting/qimpenwidget.h b/inputmethods/handwriting/qimpenwidget.h
index 98d7f5c..d156554 100644
--- a/inputmethods/handwriting/qimpenwidget.h
+++ b/inputmethods/handwriting/qimpenwidget.h
@@ -1,88 +1,88 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include <qwidget.h> 21#include <qwidget.h>
22#include <qlist.h> 22#include <qlist.h>
23#include "qimpenchar.h" 23#include "qimpenchar.h"
24 24
25class QIMPenWidget : public QWidget 25class QIMPenWidget : public QWidget
26{ 26{
27 Q_OBJECT 27 Q_OBJECT
28public: 28public:
29 QIMPenWidget( QWidget *parent ); 29 QIMPenWidget( QWidget *parent );
30 30
31 void clear(); 31 void clear();
32 void greyStroke(); 32 void greyStroke();
33 void setReadOnly( bool r ) { readOnly = r; } 33 void setReadOnly( bool r ) { readOnly = r; }
34 34
35 void insertCharSet( QIMPenCharSet *cs, int stretch=1, int pos=-1 ); 35 void insertCharSet( QIMPenCharSet *cs, int stretch=1, int pos=-1 );
36 void removeCharSet( int ); 36 void removeCharSet( int );
37 void changeCharSet( QIMPenCharSet *cs, int pos ); 37 void changeCharSet( QIMPenCharSet *cs, int pos );
38 void clearCharSets(); 38 void clearCharSets();
39 void showCharacter( QIMPenChar *, int speed = 10 ); 39 void showCharacter( QIMPenChar *, int speed = 10 );
40 virtual QSize sizeHint(); 40 virtual QSize sizeHint() const;
41 41
42public slots: 42public slots:
43 void removeStroke(); 43 void removeStroke();
44 44
45signals: 45signals:
46 void changeCharSet( QIMPenCharSet *cs ); 46 void changeCharSet( QIMPenCharSet *cs );
47 void changeCharSet( int ); 47 void changeCharSet( int );
48 void beginStroke(); 48 void beginStroke();
49 void stroke( QIMPenStroke *ch ); 49 void stroke( QIMPenStroke *ch );
50 50
51protected slots: 51protected slots:
52 void timeout(); 52 void timeout();
53 53
54protected: 54protected:
55 enum Mode { Waiting, Input, Output }; 55 enum Mode { Waiting, Input, Output };
56 bool selectSet( QPoint ); 56 bool selectSet( QPoint );
57 virtual void mousePressEvent( QMouseEvent *e ); 57 virtual void mousePressEvent( QMouseEvent *e );
58 virtual void mouseReleaseEvent( QMouseEvent *e ); 58 virtual void mouseReleaseEvent( QMouseEvent *e );
59 virtual void mouseMoveEvent( QMouseEvent *e ); 59 virtual void mouseMoveEvent( QMouseEvent *e );
60 virtual void paintEvent( QPaintEvent *e ); 60 virtual void paintEvent( QPaintEvent *e );
61 virtual void resizeEvent( QResizeEvent *e ); 61 virtual void resizeEvent( QResizeEvent *e );
62 62
63 struct CharSetEntry { 63 struct CharSetEntry {
64 QIMPenCharSet *cs; 64 QIMPenCharSet *cs;
65 int stretch; 65 int stretch;
66 }; 66 };
67 typedef QList<CharSetEntry> CharSetEntryList; 67 typedef QList<CharSetEntry> CharSetEntryList;
68 typedef QListIterator<CharSetEntry> CharSetEntryIterator; 68 typedef QListIterator<CharSetEntry> CharSetEntryIterator;
69 69
70protected: 70protected:
71 Mode mode; 71 Mode mode;
72 bool autoHide; 72 bool autoHide;
73 bool readOnly; 73 bool readOnly;
74 QPoint lastPoint; 74 QPoint lastPoint;
75 unsigned pointIndex; 75 unsigned pointIndex;
76 int strokeIndex; 76 int strokeIndex;
77 int currCharSet; 77 int currCharSet;
78 QTimer *timer; 78 QTimer *timer;
79 QColor strokeColor; 79 QColor strokeColor;
80 QRect dirtyRect; 80 QRect dirtyRect;
81 QIMPenChar *outputChar; 81 QIMPenChar *outputChar;
82 QIMPenStroke *outputStroke; 82 QIMPenStroke *outputStroke;
83 QIMPenStroke *inputStroke; 83 QIMPenStroke *inputStroke;
84 QIMPenStrokeList strokes; 84 QIMPenStrokeList strokes;
85 CharSetEntryList charSets; 85 CharSetEntryList charSets;
86 int totalStretch; 86 int totalStretch;
87}; 87};
88 88
diff --git a/libopie2/opiepim/backend/odatebookaccessbackend_xml.cpp b/libopie2/opiepim/backend/odatebookaccessbackend_xml.cpp
index 55e47e2..2ebccd2 100644
--- a/libopie2/opiepim/backend/odatebookaccessbackend_xml.cpp
+++ b/libopie2/opiepim/backend/odatebookaccessbackend_xml.cpp
@@ -166,257 +166,257 @@ namespace {
166 */ 166 */
167 if (!ev.isAllDay() ) { 167 if (!ev.isAllDay() ) {
168 168
169 buf += " timezone=\""; 169 buf += " timezone=\"";
170 if ( ev.timeZone().isEmpty() ) 170 if ( ev.timeZone().isEmpty() )
171 buf += "None"; 171 buf += "None";
172 else 172 else
173 buf += ev.timeZone(); 173 buf += ev.timeZone();
174 buf += "\""; 174 buf += "\"";
175 } 175 }
176 176
177 if (ev.parent() != 0 ) { 177 if (ev.parent() != 0 ) {
178 buf += " recparent=\""+QString::number(ev.parent() )+"\""; 178 buf += " recparent=\""+QString::number(ev.parent() )+"\"";
179 } 179 }
180 180
181 if (ev.children().count() != 0 ) { 181 if (ev.children().count() != 0 ) {
182 QArray<int> children = ev.children(); 182 QArray<int> children = ev.children();
183 buf += " recchildren=\""; 183 buf += " recchildren=\"";
184 for ( uint i = 0; i < children.count(); i++ ) { 184 for ( uint i = 0; i < children.count(); i++ ) {
185 if ( i != 0 ) buf += " "; 185 if ( i != 0 ) buf += " ";
186 buf += QString::number( children[i] ); 186 buf += QString::number( children[i] );
187 } 187 }
188 buf+= "\""; 188 buf+= "\"";
189 } 189 }
190 190
191 // skip custom writing 191 // skip custom writing
192 } 192 }
193 193
194 static bool saveEachEvent( const QMap<int, OPimEvent>& list, QFile& file ) { 194 static bool saveEachEvent( const QMap<int, OPimEvent>& list, QFile& file ) {
195 QMap<int, OPimEvent>::ConstIterator it; 195 QMap<int, OPimEvent>::ConstIterator it;
196 QString buf; 196 QString buf;
197 QCString str; 197 QCString str;
198 int total_written; 198 int total_written;
199 for ( it = list.begin(); it != list.end(); ++it ) { 199 for ( it = list.begin(); it != list.end(); ++it ) {
200 buf = "<event"; 200 buf = "<event";
201 save( it.data(), buf ); 201 save( it.data(), buf );
202 buf += " />\n"; 202 buf += " />\n";
203 str = buf.utf8(); 203 str = buf.utf8();
204 204
205 total_written = file.writeBlock(str.data(), str.length() ); 205 total_written = file.writeBlock(str.data(), str.length() );
206 if ( total_written != int(str.length() ) ) 206 if ( total_written != int(str.length() ) )
207 return false; 207 return false;
208 } 208 }
209 return true; 209 return true;
210 } 210 }
211} 211}
212 212
213namespace Opie { 213namespace Opie {
214ODateBookAccessBackend_XML::ODateBookAccessBackend_XML( const QString& , 214ODateBookAccessBackend_XML::ODateBookAccessBackend_XML( const QString& ,
215 const QString& fileName ) 215 const QString& fileName )
216 : ODateBookAccessBackend() { 216 : ODateBookAccessBackend() {
217 m_name = fileName.isEmpty() ? Global::applicationFileName( "datebook", "datebook.xml" ) : fileName; 217 m_name = fileName.isEmpty() ? Global::applicationFileName( "datebook", "datebook.xml" ) : fileName;
218 m_changed = false; 218 m_changed = false;
219} 219}
220ODateBookAccessBackend_XML::~ODateBookAccessBackend_XML() { 220ODateBookAccessBackend_XML::~ODateBookAccessBackend_XML() {
221} 221}
222bool ODateBookAccessBackend_XML::load() { 222bool ODateBookAccessBackend_XML::load() {
223 return loadFile(); 223 return loadFile();
224} 224}
225bool ODateBookAccessBackend_XML::reload() { 225bool ODateBookAccessBackend_XML::reload() {
226 clear(); 226 clear();
227 return load(); 227 return load();
228} 228}
229bool ODateBookAccessBackend_XML::save() { 229bool ODateBookAccessBackend_XML::save() {
230 if (!m_changed) return true; 230 if (!m_changed) return true;
231 231
232 int total_written; 232 int total_written;
233 QString strFileNew = m_name + ".new"; 233 QString strFileNew = m_name + ".new";
234 234
235 QFile f( strFileNew ); 235 QFile f( strFileNew );
236 if (!f.open( IO_WriteOnly | IO_Raw ) ) return false; 236 if (!f.open( IO_WriteOnly | IO_Raw ) ) return false;
237 237
238 QString buf( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ); 238 QString buf( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" );
239 buf += "<!DOCTYPE DATEBOOK><DATEBOOK>\n"; 239 buf += "<!DOCTYPE DATEBOOK><DATEBOOK>\n";
240 buf += "<events>\n"; 240 buf += "<events>\n";
241 QCString str = buf.utf8(); 241 QCString str = buf.utf8();
242 total_written = f.writeBlock( str.data(), str.length() ); 242 total_written = f.writeBlock( str.data(), str.length() );
243 if ( total_written != int(str.length() ) ) { 243 if ( total_written != int(str.length() ) ) {
244 f.close(); 244 f.close();
245 QFile::remove( strFileNew ); 245 QFile::remove( strFileNew );
246 return false; 246 return false;
247 } 247 }
248 248
249 if (!saveEachEvent( m_raw, f ) ) { 249 if (!saveEachEvent( m_raw, f ) ) {
250 f.close(); 250 f.close();
251 QFile::remove( strFileNew ); 251 QFile::remove( strFileNew );
252 return false; 252 return false;
253 } 253 }
254 if (!saveEachEvent( m_rep, f ) ) { 254 if (!saveEachEvent( m_rep, f ) ) {
255 f.close(); 255 f.close();
256 QFile::remove( strFileNew ); 256 QFile::remove( strFileNew );
257 return false; 257 return false;
258 } 258 }
259 259
260 buf = "</events>\n</DATEBOOK>\n"; 260 buf = "</events>\n</DATEBOOK>\n";
261 str = buf.utf8(); 261 str = buf.utf8();
262 total_written = f.writeBlock( str.data(), str.length() ); 262 total_written = f.writeBlock( str.data(), str.length() );
263 if ( total_written != int(str.length() ) ) { 263 if ( total_written != int(str.length() ) ) {
264 f.close(); 264 f.close();
265 QFile::remove( strFileNew ); 265 QFile::remove( strFileNew );
266 return false; 266 return false;
267 } 267 }
268 f.close(); 268 f.close();
269 269
270 if ( ::rename( strFileNew, m_name ) < 0 ) { 270 if ( ::rename( strFileNew, m_name ) < 0 ) {
271 QFile::remove( strFileNew ); 271 QFile::remove( strFileNew );
272 return false; 272 return false;
273 } 273 }
274 274
275 m_changed = false; 275 m_changed = false;
276 return true; 276 return true;
277} 277}
278QArray<int> ODateBookAccessBackend_XML::allRecords()const { 278QArray<int> ODateBookAccessBackend_XML::allRecords()const {
279 QArray<int> ints( m_raw.count()+ m_rep.count() ); 279 QArray<int> ints( m_raw.count()+ m_rep.count() );
280 uint i = 0; 280 uint i = 0;
281 QMap<int, OPimEvent>::ConstIterator it; 281 QMap<int, OPimEvent>::ConstIterator it;
282 282
283 for ( it = m_raw.begin(); it != m_raw.end(); ++it ) { 283 for ( it = m_raw.begin(); it != m_raw.end(); ++it ) {
284 ints[i] = it.key(); 284 ints[i] = it.key();
285 i++; 285 i++;
286 } 286 }
287 for ( it = m_rep.begin(); it != m_rep.end(); ++it ) { 287 for ( it = m_rep.begin(); it != m_rep.end(); ++it ) {
288 ints[i] = it.key(); 288 ints[i] = it.key();
289 i++; 289 i++;
290 } 290 }
291 291
292 return ints; 292 return ints;
293} 293}
294QArray<int> ODateBookAccessBackend_XML::queryByExample(const OPimEvent&, int, const QDateTime& ) { 294QArray<int> ODateBookAccessBackend_XML::queryByExample(const OPimEvent&, int, const QDateTime& ) const {
295 return QArray<int>(); 295 return QArray<int>();
296} 296}
297void ODateBookAccessBackend_XML::clear() { 297void ODateBookAccessBackend_XML::clear() {
298 m_changed = true; 298 m_changed = true;
299 m_raw.clear(); 299 m_raw.clear();
300 m_rep.clear(); 300 m_rep.clear();
301} 301}
302OPimEvent ODateBookAccessBackend_XML::find( int uid ) const{ 302OPimEvent ODateBookAccessBackend_XML::find( int uid ) const{
303 if ( m_raw.contains( uid ) ) 303 if ( m_raw.contains( uid ) )
304 return m_raw[uid]; 304 return m_raw[uid];
305 else 305 else
306 return m_rep[uid]; 306 return m_rep[uid];
307} 307}
308bool ODateBookAccessBackend_XML::add( const OPimEvent& ev ) { 308bool ODateBookAccessBackend_XML::add( const OPimEvent& ev ) {
309 m_changed = true; 309 m_changed = true;
310 if (ev.hasRecurrence() ) 310 if (ev.hasRecurrence() )
311 m_rep.insert( ev.uid(), ev ); 311 m_rep.insert( ev.uid(), ev );
312 else 312 else
313 m_raw.insert( ev.uid(), ev ); 313 m_raw.insert( ev.uid(), ev );
314 314
315 return true; 315 return true;
316} 316}
317bool ODateBookAccessBackend_XML::remove( int uid ) { 317bool ODateBookAccessBackend_XML::remove( int uid ) {
318 m_changed = true; 318 m_changed = true;
319 m_raw.remove( uid ); 319 m_raw.remove( uid );
320 m_rep.remove( uid ); 320 m_rep.remove( uid );
321 321
322 return true; 322 return true;
323} 323}
324bool ODateBookAccessBackend_XML::replace( const OPimEvent& ev ) { 324bool ODateBookAccessBackend_XML::replace( const OPimEvent& ev ) {
325 replace( ev.uid() ); // ??? Shouldn't this be "remove( ev.uid() ) ??? (eilers) 325 replace( ev.uid() ); // ??? Shouldn't this be "remove( ev.uid() ) ??? (eilers)
326 return add( ev ); 326 return add( ev );
327} 327}
328 328
329QArray<int> ODateBookAccessBackend_XML::rawRepeats()const { 329QArray<int> ODateBookAccessBackend_XML::rawRepeats()const {
330 QArray<int> ints( m_rep.count() ); 330 QArray<int> ints( m_rep.count() );
331 uint i = 0; 331 uint i = 0;
332 QMap<int, OPimEvent>::ConstIterator it; 332 QMap<int, OPimEvent>::ConstIterator it;
333 333
334 for ( it = m_rep.begin(); it != m_rep.end(); ++it ) { 334 for ( it = m_rep.begin(); it != m_rep.end(); ++it ) {
335 ints[i] = it.key(); 335 ints[i] = it.key();
336 i++; 336 i++;
337 } 337 }
338 338
339 return ints; 339 return ints;
340} 340}
341QArray<int> ODateBookAccessBackend_XML::nonRepeats()const { 341QArray<int> ODateBookAccessBackend_XML::nonRepeats()const {
342 QArray<int> ints( m_raw.count() ); 342 QArray<int> ints( m_raw.count() );
343 uint i = 0; 343 uint i = 0;
344 QMap<int, OPimEvent>::ConstIterator it; 344 QMap<int, OPimEvent>::ConstIterator it;
345 345
346 for ( it = m_raw.begin(); it != m_raw.end(); ++it ) { 346 for ( it = m_raw.begin(); it != m_raw.end(); ++it ) {
347 ints[i] = it.key(); 347 ints[i] = it.key();
348 i++; 348 i++;
349 } 349 }
350 350
351 return ints; 351 return ints;
352} 352}
353OPimEvent::ValueList ODateBookAccessBackend_XML::directNonRepeats()const { 353OPimEvent::ValueList ODateBookAccessBackend_XML::directNonRepeats()const {
354 OPimEvent::ValueList list; 354 OPimEvent::ValueList list;
355 QMap<int, OPimEvent>::ConstIterator it; 355 QMap<int, OPimEvent>::ConstIterator it;
356 for (it = m_raw.begin(); it != m_raw.end(); ++it ) 356 for (it = m_raw.begin(); it != m_raw.end(); ++it )
357 list.append( it.data() ); 357 list.append( it.data() );
358 358
359 return list; 359 return list;
360} 360}
361OPimEvent::ValueList ODateBookAccessBackend_XML::directRawRepeats()const { 361OPimEvent::ValueList ODateBookAccessBackend_XML::directRawRepeats()const {
362 OPimEvent::ValueList list; 362 OPimEvent::ValueList list;
363 QMap<int, OPimEvent>::ConstIterator it; 363 QMap<int, OPimEvent>::ConstIterator it;
364 for (it = m_rep.begin(); it != m_rep.end(); ++it ) 364 for (it = m_rep.begin(); it != m_rep.end(); ++it )
365 list.append( it.data() ); 365 list.append( it.data() );
366 366
367 return list; 367 return list;
368} 368}
369 369
370// FIXME: Use OPimEvent::fromMap() (eilers) 370// FIXME: Use OPimEvent::fromMap() (eilers)
371bool ODateBookAccessBackend_XML::loadFile() { 371bool ODateBookAccessBackend_XML::loadFile() {
372 m_changed = false; 372 m_changed = false;
373 373
374 int fd = ::open( QFile::encodeName(m_name).data(), O_RDONLY ); 374 int fd = ::open( QFile::encodeName(m_name).data(), O_RDONLY );
375 if ( fd < 0 ) return false; 375 if ( fd < 0 ) return false;
376 376
377 struct stat attribute; 377 struct stat attribute;
378 if ( ::fstat(fd, &attribute ) == -1 ) { 378 if ( ::fstat(fd, &attribute ) == -1 ) {
379 ::close( fd ); 379 ::close( fd );
380 return false; 380 return false;
381 } 381 }
382 void* map_addr = ::mmap(NULL, attribute.st_size, PROT_READ, MAP_SHARED, fd, 0 ); 382 void* map_addr = ::mmap(NULL, attribute.st_size, PROT_READ, MAP_SHARED, fd, 0 );
383 if ( map_addr == ( (caddr_t)-1) ) { 383 if ( map_addr == ( (caddr_t)-1) ) {
384 ::close( fd ); 384 ::close( fd );
385 return false; 385 return false;
386 } 386 }
387 387
388 ::madvise( map_addr, attribute.st_size, MADV_SEQUENTIAL ); 388 ::madvise( map_addr, attribute.st_size, MADV_SEQUENTIAL );
389 ::close( fd ); 389 ::close( fd );
390 390
391 QAsciiDict<int> dict(FExceptions+1); 391 QAsciiDict<int> dict(FExceptions+1);
392 dict.setAutoDelete( true ); 392 dict.setAutoDelete( true );
393 dict.insert( "description", new int(FDescription) ); 393 dict.insert( "description", new int(FDescription) );
394 dict.insert( "location", new int(FLocation) ); 394 dict.insert( "location", new int(FLocation) );
395 dict.insert( "categories", new int(FCategories) ); 395 dict.insert( "categories", new int(FCategories) );
396 dict.insert( "uid", new int(FUid) ); 396 dict.insert( "uid", new int(FUid) );
397 dict.insert( "type", new int(FType) ); 397 dict.insert( "type", new int(FType) );
398 dict.insert( "alarm", new int(FAlarm) ); 398 dict.insert( "alarm", new int(FAlarm) );
399 dict.insert( "sound", new int(FSound) ); 399 dict.insert( "sound", new int(FSound) );
400 dict.insert( "rtype", new int(FRType) ); 400 dict.insert( "rtype", new int(FRType) );
401 dict.insert( "rweekdays", new int(FRWeekdays) ); 401 dict.insert( "rweekdays", new int(FRWeekdays) );
402 dict.insert( "rposition", new int(FRPosition) ); 402 dict.insert( "rposition", new int(FRPosition) );
403 dict.insert( "rfreq", new int(FRFreq) ); 403 dict.insert( "rfreq", new int(FRFreq) );
404 dict.insert( "rhasenddate", new int(FRHasEndDate) ); 404 dict.insert( "rhasenddate", new int(FRHasEndDate) );
405 dict.insert( "enddt", new int(FREndDate) ); 405 dict.insert( "enddt", new int(FREndDate) );
406 dict.insert( "start", new int(FRStart) ); 406 dict.insert( "start", new int(FRStart) );
407 dict.insert( "end", new int(FREnd) ); 407 dict.insert( "end", new int(FREnd) );
408 dict.insert( "note", new int(FNote) ); 408 dict.insert( "note", new int(FNote) );
409 dict.insert( "created", new int(FCreated) ); // Shouldn't this be FRCreated ?? 409 dict.insert( "created", new int(FCreated) ); // Shouldn't this be FRCreated ??
410 dict.insert( "recparent", new int(FRecParent) ); 410 dict.insert( "recparent", new int(FRecParent) );
411 dict.insert( "recchildren", new int(FRecChildren) ); 411 dict.insert( "recchildren", new int(FRecChildren) );
412 dict.insert( "exceptions", new int(FExceptions) ); 412 dict.insert( "exceptions", new int(FExceptions) );
413 dict.insert( "timezone", new int(FTimeZone) ); 413 dict.insert( "timezone", new int(FTimeZone) );
414 414
415 415
416 // initialiaze db hack 416 // initialiaze db hack
417 m_noTimeZone = true; 417 m_noTimeZone = true;
418 418
419 char* dt = (char*)map_addr; 419 char* dt = (char*)map_addr;
420 int len = attribute.st_size; 420 int len = attribute.st_size;
421 int i = 0; 421 int i = 0;
422 char* point; 422 char* point;
diff --git a/libopie2/opiepim/backend/odatebookaccessbackend_xml.h b/libopie2/opiepim/backend/odatebookaccessbackend_xml.h
index cb19f76..7369c07 100644
--- a/libopie2/opiepim/backend/odatebookaccessbackend_xml.h
+++ b/libopie2/opiepim/backend/odatebookaccessbackend_xml.h
@@ -1,88 +1,88 @@
1/* 1/*
2 This file is part of the Opie Project 2 This file is part of the Opie Project
3 Copyright (C) Stefan Eilers (Eilers.Stefan@epost.de) 3 Copyright (C) Stefan Eilers (Eilers.Stefan@epost.de)
4 =. Copyright (C) The Opie Team <opie-devel@handhelds.org> 4 =. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5 .=l. 5 .=l.
6 .>+-= 6 .>+-=
7 _;:, .> :=|. This program is free software; you can 7 _;:, .> :=|. This program is free software; you can
8.> <`_, > . <= redistribute it and/or modify it under 8.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public 9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i, .._ License as published by the Free Software 10.="- .-=="i, .._ License as published by the Free Software
11 - . .-<_> .<> Foundation; either version 2 of the License, 11 - . .-<_> .<> Foundation; either version 2 of the License,
12 ._= =} : or (at your option) any later version. 12 ._= =} : or (at your option) any later version.
13 .%`+i> _;_. 13 .%`+i> _;_.
14 .i_,=:_. -<s. This program is distributed in the hope that 14 .i_,=:_. -<s. This program is distributed in the hope that
15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY; 15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
16 : .. .:, . . . without even the implied warranty of 16 : .. .:, . . . without even the implied warranty of
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIE_DATE_BOOK_ACCESS_BACKEND_XML__H 29#ifndef OPIE_DATE_BOOK_ACCESS_BACKEND_XML__H
30#define OPIE_DATE_BOOK_ACCESS_BACKEND_XML__H 30#define OPIE_DATE_BOOK_ACCESS_BACKEND_XML__H
31 31
32#include <qmap.h> 32#include <qmap.h>
33 33
34#include <opie2/odatebookaccessbackend.h> 34#include <opie2/odatebookaccessbackend.h>
35 35
36namespace Opie { 36namespace Opie {
37/** 37/**
38 * This is the default XML implementation for DateBoook XML storage 38 * This is the default XML implementation for DateBoook XML storage
39 * It fully implements the interface 39 * It fully implements the interface
40 * @see ODateBookAccessBackend 40 * @see ODateBookAccessBackend
41 * @see OPimAccessBackend 41 * @see OPimAccessBackend
42 */ 42 */
43class ODateBookAccessBackend_XML : public ODateBookAccessBackend { 43class ODateBookAccessBackend_XML : public ODateBookAccessBackend {
44public: 44public:
45 ODateBookAccessBackend_XML( const QString& appName, 45 ODateBookAccessBackend_XML( const QString& appName,
46 const QString& fileName = QString::null); 46 const QString& fileName = QString::null);
47 ~ODateBookAccessBackend_XML(); 47 ~ODateBookAccessBackend_XML();
48 48
49 bool load(); 49 bool load();
50 bool reload(); 50 bool reload();
51 bool save(); 51 bool save();
52 52
53 QArray<int> allRecords()const; 53 QArray<int> allRecords()const;
54 QArray<int> matchRegexp(const QRegExp &r) const; 54 QArray<int> matchRegexp(const QRegExp &r) const;
55 QArray<int> queryByExample( const OPimEvent&, int, const QDateTime& d = QDateTime() ); 55 QArray<int> queryByExample( const OPimEvent&, int, const QDateTime& d = QDateTime() )const;
56 OPimEvent find( int uid )const; 56 OPimEvent find( int uid )const;
57 void clear(); 57 void clear();
58 bool add( const OPimEvent& ev ); 58 bool add( const OPimEvent& ev );
59 bool remove( int uid ); 59 bool remove( int uid );
60 bool replace( const OPimEvent& ev ); 60 bool replace( const OPimEvent& ev );
61 61
62 QArray<UID> rawEvents()const; 62 QArray<UID> rawEvents()const;
63 QArray<UID> rawRepeats()const; 63 QArray<UID> rawRepeats()const;
64 QArray<UID> nonRepeats()const; 64 QArray<UID> nonRepeats()const;
65 65
66 OPimEvent::ValueList directNonRepeats()const; 66 OPimEvent::ValueList directNonRepeats()const;
67 OPimEvent::ValueList directRawRepeats()const; 67 OPimEvent::ValueList directRawRepeats()const;
68 68
69private: 69private:
70 bool m_changed :1 ; 70 bool m_changed :1 ;
71 bool m_noTimeZone : 1; 71 bool m_noTimeZone : 1;
72 72
73 bool loadFile(); 73 bool loadFile();
74 inline void finalizeRecord( OPimEvent& ev ); 74 inline void finalizeRecord( OPimEvent& ev );
75 inline void setField( OPimEvent&, int field, const QString& val ); 75 inline void setField( OPimEvent&, int field, const QString& val );
76 QString m_name; 76 QString m_name;
77 QMap<int, OPimEvent> m_raw; 77 QMap<int, OPimEvent> m_raw;
78 QMap<int, OPimEvent> m_rep; 78 QMap<int, OPimEvent> m_rep;
79 79
80 struct Data; 80 struct Data;
81 Data* data; 81 Data* data;
82 class Private; 82 class Private;
83 Private *d; 83 Private *d;
84}; 84};
85 85
86} 86}
87 87
88#endif 88#endif
diff --git a/library/lightstyle.cpp b/library/lightstyle.cpp
index c5073ca..3d5adfb 100644
--- a/library/lightstyle.cpp
+++ b/library/lightstyle.cpp
@@ -265,307 +265,307 @@ void LightStyle::polish(QApplication *app)
265 prelight.dark(120), // mid 265 prelight.dark(120), // mid
266 pal.color(QPalette::Active, 266 pal.color(QPalette::Active,
267 QColorGroup::Text), // text 267 QColorGroup::Text), // text
268 pal.color(QPalette::Active, 268 pal.color(QPalette::Active,
269 QColorGroup::BrightText), // bright text 269 QColorGroup::BrightText), // bright text
270 pal.color(QPalette::Active, 270 pal.color(QPalette::Active,
271 QColorGroup::Base), // base 271 QColorGroup::Base), // base
272 bg); // background 272 bg); // background
273 active2.setColor(QColorGroup::Highlight, 273 active2.setColor(QColorGroup::Highlight,
274 pal.color(QPalette::Active, QColorGroup::Highlight)); 274 pal.color(QPalette::Active, QColorGroup::Highlight));
275 275
276 singleton->hoverPalette = pal; 276 singleton->hoverPalette = pal;
277 singleton->hoverPalette.setActive(active2); 277 singleton->hoverPalette.setActive(active2);
278 singleton->hoverPalette.setInactive(active2); 278 singleton->hoverPalette.setInactive(active2);
279 279
280 app->setPalette(pal); 280 app->setPalette(pal);
281} 281}
282 282
283 283
284void LightStyle::unPolish(QApplication *app) 284void LightStyle::unPolish(QApplication *app)
285{ 285{
286 app->setPalette(singleton->oldPalette); 286 app->setPalette(singleton->oldPalette);
287} 287}
288 288
289 289
290void LightStyle::polishPopupMenu(QPopupMenu *menu) 290void LightStyle::polishPopupMenu(QPopupMenu *menu)
291{ 291{
292 menu->setMouseTracking(TRUE); 292 menu->setMouseTracking(TRUE);
293} 293}
294 294
295 295
296void LightStyle::drawPushButton(QPushButton *button, QPainter *p) 296void LightStyle::drawPushButton(QPushButton *button, QPainter *p)
297{ 297{
298 int x1, y1, x2, y2; 298 int x1, y1, x2, y2;
299 button->rect().coords(&x1, &y1, &x2, &y2); 299 button->rect().coords(&x1, &y1, &x2, &y2);
300 300
301 if (button->isDefault()) { 301 if (button->isDefault()) {
302 p->save(); 302 p->save();
303 p->setPen(button->palette().active().color(QColorGroup::Highlight)); 303 p->setPen(button->palette().active().color(QColorGroup::Highlight));
304 p->setBrush(button->palette().active().brush(QColorGroup::Highlight)); 304 p->setBrush(button->palette().active().brush(QColorGroup::Highlight));
305 p->drawRoundRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1, 15, 15); 305 p->drawRoundRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1, 15, 15);
306 p->restore(); 306 p->restore();
307 } 307 }
308 308
309 if (button->isDefault() || button->autoDefault()) { 309 if (button->isDefault() || button->autoDefault()) {
310 x1 += buttonDefaultIndicatorWidth(); 310 x1 += buttonDefaultIndicatorWidth();
311 y1 += buttonDefaultIndicatorWidth(); 311 y1 += buttonDefaultIndicatorWidth();
312 x2 -= buttonDefaultIndicatorWidth(); 312 x2 -= buttonDefaultIndicatorWidth();
313 y2 -= buttonDefaultIndicatorWidth(); 313 y2 -= buttonDefaultIndicatorWidth();
314 314
315 if (button->isDefault()) { 315 if (button->isDefault()) {
316 QPointArray pa(8); 316 QPointArray pa(8);
317 pa.setPoint(0, x1 + 2, y1 ); 317 pa.setPoint(0, x1 + 2, y1 );
318 pa.setPoint(1, x2 - 1, y1 ); 318 pa.setPoint(1, x2 - 1, y1 );
319 pa.setPoint(2, x2 + 1, y1 + 2); 319 pa.setPoint(2, x2 + 1, y1 + 2);
320 pa.setPoint(3, x2 + 1, y2 - 2); 320 pa.setPoint(3, x2 + 1, y2 - 2);
321 pa.setPoint(4, x2 - 2, y2 + 1); 321 pa.setPoint(4, x2 - 2, y2 + 1);
322 pa.setPoint(5, x1 + 2, y2 + 1); 322 pa.setPoint(5, x1 + 2, y2 + 1);
323 pa.setPoint(6, x1, y2 - 1); 323 pa.setPoint(6, x1, y2 - 1);
324 pa.setPoint(7, x1, y1 + 2); 324 pa.setPoint(7, x1, y1 + 2);
325 QRegion r(pa); 325 QRegion r(pa);
326 p->setClipRegion(r); 326 p->setClipRegion(r);
327 } 327 }
328 } 328 }
329 329
330 QBrush fill; 330 QBrush fill;
331 if (button->isDown() || button->isOn()) 331 if (button->isDown() || button->isOn())
332 fill = button->colorGroup().brush(QColorGroup::Mid); 332 fill = button->colorGroup().brush(QColorGroup::Mid);
333 else 333 else
334 fill = button->colorGroup().brush(QColorGroup::Button); 334 fill = button->colorGroup().brush(QColorGroup::Button);
335 335
336 if ( !button->isFlat() || button->isOn() || button->isDown() ) 336 if ( !button->isFlat() || button->isOn() || button->isDown() )
337 drawButton(p, x1, y1, x2 - x1 + 1, y2 - y1 + 1, 337 drawButton(p, x1, y1, x2 - x1 + 1, y2 - y1 + 1,
338 button->colorGroup(), button->isOn() || button->isDown(), &fill); 338 button->colorGroup(), button->isOn() || button->isDown(), &fill);
339} 339}
340 340
341 341
342void LightStyle::drawButton(QPainter *p, int x, int y, int w, int h, 342void LightStyle::drawButton(QPainter *p, int x, int y, int w, int h,
343 const QColorGroup &g, 343 const QColorGroup &g,
344 bool sunken, const QBrush *fill) 344 bool sunken, const QBrush *fill)
345{ 345{
346 p->save(); 346 p->save();
347 if ( fill ) 347 if ( fill )
348 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill); 348 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill);
349 else 349 else
350 p->fillRect(x + 2, y + 2, w - 4, h - 4, 350 p->fillRect(x + 2, y + 2, w - 4, h - 4,
351 QBrush(sunken ? g.mid() : g.button())); 351 QBrush(sunken ? g.mid() : g.button()));
352 352
353 // frame 353 // frame
354 p->setPen(g.dark()); 354 p->setPen(g.dark());
355 p->drawLine(x, y + 2, x, y + h - 3); // left 355 p->drawLine(x, y + 2, x, y + h - 3); // left
356 p->drawLine(x + 2, y, x + w - 3, y); // top 356 p->drawLine(x + 2, y, x + w - 3, y); // top
357 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right 357 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right
358 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom 358 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom
359 p->drawPoint(x + 1, y + 1); 359 p->drawPoint(x + 1, y + 1);
360 p->drawPoint(x + 1, y + h - 2); 360 p->drawPoint(x + 1, y + h - 2);
361 p->drawPoint(x + w - 2, y + 1); 361 p->drawPoint(x + w - 2, y + 1);
362 p->drawPoint(x + w - 2, y + h - 2); 362 p->drawPoint(x + w - 2, y + h - 2);
363 363
364 // bevel 364 // bevel
365 if (sunken) 365 if (sunken)
366 p->setPen(g.mid()); 366 p->setPen(g.mid());
367 else 367 else
368 p->setPen(g.light()); 368 p->setPen(g.light());
369 369
370 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left 370 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left
371 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top 371 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top
372 372
373 if (sunken) 373 if (sunken)
374 p->setPen(g.light()); 374 p->setPen(g.light());
375 else 375 else
376 p->setPen(g.mid()); 376 p->setPen(g.mid());
377 377
378 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1 378 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1
379 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1 379 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1
380 380
381 p->restore(); 381 p->restore();
382} 382}
383 383
384 384
385void LightStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h, 385void LightStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h,
386 const QColorGroup &g, 386 const QColorGroup &g,
387 bool sunken, const QBrush *fill) 387 bool sunken, const QBrush *fill)
388{ 388{
389 drawButton(p, x, y, w, h, g, sunken, fill); 389 drawButton(p, x, y, w, h, g, sunken, fill);
390} 390}
391 391
392 392
393void LightStyle::getButtonShift(int &x, int &y) const 393void LightStyle::getButtonShift(int &x, int &y)
394{ 394{
395 x = y = 0; 395 x = y = 0;
396} 396}
397 397
398 398
399void LightStyle::drawComboButton(QPainter *p, int x, int y, int w, int h, 399void LightStyle::drawComboButton(QPainter *p, int x, int y, int w, int h,
400 const QColorGroup &g, bool, 400 const QColorGroup &g, bool,
401 bool editable, bool, 401 bool editable, bool,
402 const QBrush *fill) 402 const QBrush *fill)
403{ 403{
404 drawButton(p, x, y, w, h, g, FALSE, fill); 404 drawButton(p, x, y, w, h, g, FALSE, fill);
405 405
406 if (editable) { 406 if (editable) {
407 QRect r = comboButtonRect(x, y, w, h); 407 QRect r = comboButtonRect(x, y, w, h);
408 qDrawShadePanel(p, r.x() - 1, r.y() - 1, 408 qDrawShadePanel(p, r.x() - 1, r.y() - 1,
409 r.width() + defaultFrameWidth(), 409 r.width() + defaultFrameWidth(),
410 r.height() + defaultFrameWidth(), 410 r.height() + defaultFrameWidth(),
411 g, TRUE); 411 g, TRUE);
412 } 412 }
413 413
414 int indent = ((y + h) / 2) - 3; 414 int indent = ((y + h) / 2) - 3;
415 int xpos = x; 415 int xpos = x;
416 416
417#if QT_VERSION >= 0x030000 417#if QT_VERSION >= 0x030000
418 if( QApplication::reverseLayout() ) 418 if( QApplication::reverseLayout() )
419 xpos += indent; 419 xpos += indent;
420 else 420 else
421#endif 421#endif
422 xpos += w - indent - 5; 422 xpos += w - indent - 5;
423 423
424 drawArrow(p, Qt::DownArrow, TRUE, xpos, indent, 5, 5, g, TRUE, fill); 424 drawArrow(p, Qt::DownArrow, TRUE, xpos, indent, 5, 5, g, TRUE, fill);
425} 425}
426 426
427 427
428QRect LightStyle::comboButtonRect( int x, int y, int w, int h ) const 428QRect LightStyle::comboButtonRect( int x, int y, int w, int h )
429{ 429{
430 QRect r(x + 3, y + 3, w - 6, h - 6); 430 QRect r(x + 3, y + 3, w - 6, h - 6);
431 int indent = ((y + h) / 2) - 3; 431 int indent = ((y + h) / 2) - 3;
432 r.setRight(r.right() - indent - 10); 432 r.setRight(r.right() - indent - 10);
433 433
434#if QT_VERSION >= 0x030000 434#if QT_VERSION >= 0x030000
435 if( QApplication::reverseLayout() ) 435 if( QApplication::reverseLayout() )
436 r.moveBy( indent + 10, 0 ); 436 r.moveBy( indent + 10, 0 );
437#endif 437#endif
438 438
439 return r; 439 return r;
440} 440}
441 441
442 442
443QRect LightStyle::comboButtonFocusRect(int x, int y, int w, int h ) const 443QRect LightStyle::comboButtonFocusRect(int x, int y, int w, int h )
444{ 444{
445 return comboButtonRect(x, y, w, h); 445 return comboButtonRect(x, y, w, h);
446} 446}
447 447
448 448
449void LightStyle::drawPanel(QPainter *p, int x, int y, int w, int h, 449void LightStyle::drawPanel(QPainter *p, int x, int y, int w, int h,
450 const QColorGroup &g, bool sunken, 450 const QColorGroup &g, bool sunken,
451 int lw, const QBrush *fill) 451 int lw, const QBrush *fill)
452{ 452{
453 if (lw >= 2) { 453 if (lw >= 2) {
454 if ( fill ) 454 if ( fill )
455 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill); 455 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill);
456 456
457 QPen oldpen = p->pen(); 457 QPen oldpen = p->pen();
458 458
459 // frame 459 // frame
460 p->setPen(g.dark()); 460 p->setPen(g.dark());
461 p->drawLine(x, y + 2, x, y + h - 3); // left 461 p->drawLine(x, y + 2, x, y + h - 3); // left
462 p->drawLine(x + 2, y, x + w - 3, y); // top 462 p->drawLine(x + 2, y, x + w - 3, y); // top
463 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right 463 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right
464 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom 464 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom
465 p->drawPoint(x + 1, y + 1); 465 p->drawPoint(x + 1, y + 1);
466 p->drawPoint(x + 1, y + h - 2); 466 p->drawPoint(x + 1, y + h - 2);
467 p->drawPoint(x + w - 2, y + 1); 467 p->drawPoint(x + w - 2, y + 1);
468 p->drawPoint(x + w - 2, y + h - 2); 468 p->drawPoint(x + w - 2, y + h - 2);
469 469
470 // bevel 470 // bevel
471 if (sunken) 471 if (sunken)
472 p->setPen(g.mid()); 472 p->setPen(g.mid());
473 else 473 else
474 p->setPen(g.light()); 474 p->setPen(g.light());
475 475
476 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left 476 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left
477 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top 477 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top
478 478
479 if (sunken) 479 if (sunken)
480 p->setPen(g.light()); 480 p->setPen(g.light());
481 else 481 else
482 p->setPen(g.mid()); 482 p->setPen(g.mid());
483 483
484 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1 484 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1
485 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1 485 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1
486 486
487 // corners 487 // corners
488 p->setPen(g.background()); 488 p->setPen(g.background());
489 p->drawLine(x, y, x + 1, y); 489 p->drawLine(x, y, x + 1, y);
490 p->drawLine(x, y + h - 1, x + 1, y + h - 1); 490 p->drawLine(x, y + h - 1, x + 1, y + h - 1);
491 p->drawLine(x + w - 2, y, x + w - 1, y); 491 p->drawLine(x + w - 2, y, x + w - 1, y);
492 p->drawLine(x + w - 2, y + h - 1, x + w - 1, y + h - 1); 492 p->drawLine(x + w - 2, y + h - 1, x + w - 1, y + h - 1);
493 p->drawPoint(x, y + 1); 493 p->drawPoint(x, y + 1);
494 p->drawPoint(x, y + h - 2); 494 p->drawPoint(x, y + h - 2);
495 p->drawPoint(x + w - 1, y + 1); 495 p->drawPoint(x + w - 1, y + 1);
496 p->drawPoint(x + w - 1, y + h - 2); 496 p->drawPoint(x + w - 1, y + h - 2);
497 497
498 p->setPen(oldpen); 498 p->setPen(oldpen);
499 } else 499 } else
500 qDrawShadePanel(p, x, y, w, h, g, sunken, lw, fill); 500 qDrawShadePanel(p, x, y, w, h, g, sunken, lw, fill);
501} 501}
502 502
503 503
504void LightStyle::drawIndicator(QPainter *p, int x, int y ,int w, int h, 504void LightStyle::drawIndicator(QPainter *p, int x, int y ,int w, int h,
505 const QColorGroup &g, int state, 505 const QColorGroup &g, int state,
506 bool down, bool) 506 bool down, bool)
507{ 507{
508 drawButton(p, x, y, w, h, g, TRUE, 508 drawButton(p, x, y, w, h, g, TRUE,
509 &g.brush(down ? QColorGroup::Mid : QColorGroup::Base)); 509 &g.brush(down ? QColorGroup::Mid : QColorGroup::Base));
510 510
511 p->save(); 511 p->save();
512 512
513 p->setPen(g.foreground()); 513 p->setPen(g.foreground());
514 if (state == QButton::NoChange) { 514 if (state == QButton::NoChange) {
515 p->drawLine(x + 3, y + h / 2, x + w - 4, y + h / 2); 515 p->drawLine(x + 3, y + h / 2, x + w - 4, y + h / 2);
516 p->drawLine(x + 3, y + 1 + h / 2, x + w - 4, y + 1 + h / 2); 516 p->drawLine(x + 3, y + 1 + h / 2, x + w - 4, y + 1 + h / 2);
517 p->drawLine(x + 3, y - 1 + h / 2, x + w - 4, y - 1 + h / 2); 517 p->drawLine(x + 3, y - 1 + h / 2, x + w - 4, y - 1 + h / 2);
518 } else if (state == QButton::On) { 518 } else if (state == QButton::On) {
519 p->drawLine(x + 4, y + 3, x + w - 4, y + h - 5); 519 p->drawLine(x + 4, y + 3, x + w - 4, y + h - 5);
520 p->drawLine(x + 3, y + 3, x + w - 4, y + h - 4); 520 p->drawLine(x + 3, y + 3, x + w - 4, y + h - 4);
521 p->drawLine(x + 3, y + 4, x + w - 5, y + h - 4); 521 p->drawLine(x + 3, y + 4, x + w - 5, y + h - 4);
522 p->drawLine(x + 3, y + h - 5, x + w - 5, y + 3); 522 p->drawLine(x + 3, y + h - 5, x + w - 5, y + 3);
523 p->drawLine(x + 3, y + h - 4, x + w - 4, y + 3); 523 p->drawLine(x + 3, y + h - 4, x + w - 4, y + 3);
524 p->drawLine(x + 4, y + h - 4, x + w - 4, y + 4); 524 p->drawLine(x + 4, y + h - 4, x + w - 4, y + 4);
525 } 525 }
526 526
527 p->restore(); 527 p->restore();
528} 528}
529 529
530 530
531void LightStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int w, int h, 531void LightStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int w, int h,
532 const QColorGroup &g, bool on, 532 const QColorGroup &g, bool on,
533 bool down, bool) 533 bool down, bool)
534{ 534{
535 p->save(); 535 p->save();
536 536
537 p->fillRect(x, y, w, h, g.brush(QColorGroup::Background)); 537 p->fillRect(x, y, w, h, g.brush(QColorGroup::Background));
538 538
539 p->setPen(g.dark()); 539 p->setPen(g.dark());
540 p->drawArc(x, y, w, h, 0, 16*360); 540 p->drawArc(x, y, w, h, 0, 16*360);
541 p->setPen(g.mid()); 541 p->setPen(g.mid());
542 p->drawArc(x + 1, y + 1, w - 2, h - 2, 45*16, 180*16); 542 p->drawArc(x + 1, y + 1, w - 2, h - 2, 45*16, 180*16);
543 p->setPen(g.light()); 543 p->setPen(g.light());
544 p->drawArc(x + 1, y + 1, w - 2, h - 2, 235*16, 180*16); 544 p->drawArc(x + 1, y + 1, w - 2, h - 2, 235*16, 180*16);
545 545
546 p->setPen(down ? g.mid() : g.base()); 546 p->setPen(down ? g.mid() : g.base());
547 p->setBrush(down ? g.mid() : g.base()); 547 p->setBrush(down ? g.mid() : g.base());
548 p->drawEllipse(x + 2, y + 2, w - 4, h - 4); 548 p->drawEllipse(x + 2, y + 2, w - 4, h - 4);
549 549
550 if (on) { 550 if (on) {
551 p->setBrush(g.foreground()); 551 p->setBrush(g.foreground());
552 p->drawEllipse(x + 3, y + 3, w - x - 6, h - y - 6); 552 p->drawEllipse(x + 3, y + 3, w - x - 6, h - y - 6);
553 } 553 }
554 554
555 p->restore(); 555 p->restore();
556} 556}
557 557
558 558
559 559
560#if 1 560#if 1
561//copied from QPE style 561//copied from QPE style
562void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) 562void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected )
563{ 563{
564#if 0 564#if 0
565 //We can't do this, because QTabBar::focusInEvent redraws the 565 //We can't do this, because QTabBar::focusInEvent redraws the
566 // tab label with the default font. 566 // tab label with the default font.
567 QFont f = tb->font(); 567 QFont f = tb->font();
568 f.setBold( selected ); 568 f.setBold( selected );
569 p->setFont( f ); 569 p->setFont( f );
570#endif 570#endif
571 QRect r( t->rect() ); 571 QRect r( t->rect() );
@@ -676,257 +676,257 @@ void LightStyle::drawTab(QPainter *p, const QTabBar *tabbar, QTab *tab,
676 } 676 }
677 } 677 }
678 678
679 QRegion tabr(tab->r); 679 QRegion tabr(tab->r);
680 680
681 QPointArray cliptri(4); 681 QPointArray cliptri(4);
682 cliptri.setPoint(0, fr.left(), fr.top()); 682 cliptri.setPoint(0, fr.left(), fr.top());
683 cliptri.setPoint(1, fr.left(), fr.top() + 5); 683 cliptri.setPoint(1, fr.left(), fr.top() + 5);
684 cliptri.setPoint(2, fr.left() + 5, fr.top()); 684 cliptri.setPoint(2, fr.left() + 5, fr.top());
685 cliptri.setPoint(3, fr.left(), fr.top()); 685 cliptri.setPoint(3, fr.left(), fr.top());
686 QRegion trir(cliptri); 686 QRegion trir(cliptri);
687 p->setClipRegion(tabr - trir); 687 p->setClipRegion(tabr - trir);
688 688
689 p->setPen( NoPen ); 689 p->setPen( NoPen );
690 p->setBrush(g.brush(selected ? QColorGroup::Background : QColorGroup::Mid)); 690 p->setBrush(g.brush(selected ? QColorGroup::Background : QColorGroup::Mid));
691 691
692 fr.setWidth(fr.width() - 1); 692 fr.setWidth(fr.width() - 1);
693 p->drawRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2); 693 p->drawRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2);
694 694
695 if (tabbar->shape() == QTabBar::RoundedAbove) { 695 if (tabbar->shape() == QTabBar::RoundedAbove) {
696 // "rounded" tabs on top 696 // "rounded" tabs on top
697 fr.setBottom(fr.bottom() - 1); 697 fr.setBottom(fr.bottom() - 1);
698 698
699 p->setPen(g.dark()); 699 p->setPen(g.dark());
700 p->drawLine(fr.left(), fr.top() + 5, fr.left(), fr.bottom() - 1); 700 p->drawLine(fr.left(), fr.top() + 5, fr.left(), fr.bottom() - 1);
701 p->drawLine(fr.left(), fr.top() + 5, fr.left() + 5, fr.top()); 701 p->drawLine(fr.left(), fr.top() + 5, fr.left() + 5, fr.top());
702 p->drawLine(fr.left() + 5, fr.top(), fr.right() - 1, fr.top()); 702 p->drawLine(fr.left() + 5, fr.top(), fr.right() - 1, fr.top());
703 p->drawLine(fr.right(), fr.top() + 1, fr.right(), fr.bottom() - 1); 703 p->drawLine(fr.right(), fr.top() + 1, fr.right(), fr.bottom() - 1);
704 704
705 if (selected) { 705 if (selected) {
706 p->drawLine(fr.right(), fr.bottom(), fr.right() + 2, fr.bottom()); 706 p->drawLine(fr.right(), fr.bottom(), fr.right() + 2, fr.bottom());
707 p->drawPoint(fr.left(), fr.bottom()); 707 p->drawPoint(fr.left(), fr.bottom());
708 } else 708 } else
709 p->drawLine(fr.left(), fr.bottom(), fr.right() + 2, fr.bottom()); 709 p->drawLine(fr.left(), fr.bottom(), fr.right() + 2, fr.bottom());
710 710
711 if (fr.left() == 2) { 711 if (fr.left() == 2) {
712 p->drawPoint(fr.left() - 1, fr.bottom() + 1); 712 p->drawPoint(fr.left() - 1, fr.bottom() + 1);
713 p->drawPoint(fr.left() - 2, fr.bottom() + 2); 713 p->drawPoint(fr.left() - 2, fr.bottom() + 2);
714 } 714 }
715 715
716 if (selected) { 716 if (selected) {
717 p->setPen(g.mid()); 717 p->setPen(g.mid());
718 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 2); 718 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 2);
719 } 719 }
720 720
721 p->setPen(g.light()); p->setPen(red); 721 p->setPen(g.light()); p->setPen(red);
722 p->drawLine(fr.left() + 1, fr.top() + 6, fr.left() + 1, 722 p->drawLine(fr.left() + 1, fr.top() + 6, fr.left() + 1,
723 fr.bottom() - (selected ? 0 : 1)); 723 fr.bottom() - (selected ? 0 : 1));
724 p->drawLine(fr.left() + 1, fr.top() + 5, fr.left() + 5, fr.top() + 1); 724 p->drawLine(fr.left() + 1, fr.top() + 5, fr.left() + 5, fr.top() + 1);
725 p->drawLine(fr.left() + 6, fr.top() + 1, fr.right() - 3, fr.top() + 1); 725 p->drawLine(fr.left() + 6, fr.top() + 1, fr.right() - 3, fr.top() + 1);
726 if (selected) { 726 if (selected) {
727 p->drawLine(fr.right() + 1, fr.bottom() + 1, 727 p->drawLine(fr.right() + 1, fr.bottom() + 1,
728 fr.right() + 2, fr.bottom() + 1); 728 fr.right() + 2, fr.bottom() + 1);
729 p->drawLine(fr.left(), fr.bottom() + 1, fr.left() + 1, fr.bottom() + 1); 729 p->drawLine(fr.left(), fr.bottom() + 1, fr.left() + 1, fr.bottom() + 1);
730 } else 730 } else
731 p->drawLine(fr.left(), fr.bottom() + 1, 731 p->drawLine(fr.left(), fr.bottom() + 1,
732 fr.right() + 2, fr.bottom() + 1); 732 fr.right() + 2, fr.bottom() + 1);
733 } else if (tabbar->shape() == QTabBar::RoundedBelow) { 733 } else if (tabbar->shape() == QTabBar::RoundedBelow) {
734 // "rounded" tabs on bottom 734 // "rounded" tabs on bottom
735 fr.setTop(fr.top() + 1); 735 fr.setTop(fr.top() + 1);
736 736
737 p->setPen(g.dark()); 737 p->setPen(g.dark());
738 p->drawLine(fr.left(), fr.top(), fr.left(), fr.bottom() - 1); 738 p->drawLine(fr.left(), fr.top(), fr.left(), fr.bottom() - 1);
739 p->drawLine(fr.left() + 1, fr.bottom(), fr.right() - 1, fr.bottom()); 739 p->drawLine(fr.left() + 1, fr.bottom(), fr.right() - 1, fr.bottom());
740 p->drawLine(fr.right(), fr.top(), fr.right(), fr.bottom() - 1); 740 p->drawLine(fr.right(), fr.top(), fr.right(), fr.bottom() - 1);
741 741
742 if (! selected) 742 if (! selected)
743 p->drawLine(fr.left(), fr.top(), fr.right() + 3, fr.top()); 743 p->drawLine(fr.left(), fr.top(), fr.right() + 3, fr.top());
744 else 744 else
745 p->drawLine(fr.right(), fr.top(), fr.right() + 3, fr.top()); 745 p->drawLine(fr.right(), fr.top(), fr.right() + 3, fr.top());
746 746
747 p->setPen(g.mid()); 747 p->setPen(g.mid());
748 if (selected) 748 if (selected)
749 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 1); 749 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 1);
750 else 750 else
751 p->drawLine(fr.left(), fr.top() - 1, fr.right() + 3, fr.top() - 1); 751 p->drawLine(fr.left(), fr.top() - 1, fr.right() + 3, fr.top() - 1);
752 752
753 p->setPen(g.light()); 753 p->setPen(g.light());
754 p->drawLine(fr.left() + 1, fr.top() + (selected ? -1 : 2), 754 p->drawLine(fr.left() + 1, fr.top() + (selected ? -1 : 2),
755 fr.left() + 1, fr.bottom() - 1); 755 fr.left() + 1, fr.bottom() - 1);
756 756
757 } else { 757 } else {
758 // triangular drawing code 758 // triangular drawing code
759 QCommonStyle::drawTab(p, tabbar, tab, selected); 759 QCommonStyle::drawTab(p, tabbar, tab, selected);
760 } 760 }
761 761
762 p->restore(); 762 p->restore();
763} 763}
764#endif 764#endif
765 765
766void LightStyle::drawSlider(QPainter *p, int x, int y, int w, int h, 766void LightStyle::drawSlider(QPainter *p, int x, int y, int w, int h,
767 const QColorGroup &g, Qt::Orientation orientation, 767 const QColorGroup &g, Qt::Orientation orientation,
768 bool above, bool below) 768 bool above, bool below)
769{ 769{
770 drawButton(p, x, y, w, h, g, FALSE, &g.brush(QColorGroup::Button)); 770 drawButton(p, x, y, w, h, g, FALSE, &g.brush(QColorGroup::Button));
771 771
772 if (orientation == Horizontal) { 772 if (orientation == Horizontal) {
773 if (above && below) { 773 if (above && below) {
774 drawArrow(p, Qt::UpArrow, FALSE, x + 1, y + 1, w, h / 2, g, TRUE); 774 drawArrow(p, Qt::UpArrow, FALSE, x + 1, y + 1, w, h / 2, g, TRUE);
775 drawArrow(p, Qt::DownArrow, FALSE, x + 1, y + (h / 2) - 1, 775 drawArrow(p, Qt::DownArrow, FALSE, x + 1, y + (h / 2) - 1,
776 w, h / 2, g, TRUE); 776 w, h / 2, g, TRUE);
777 } else 777 } else
778 drawArrow(p, (above) ? Qt::UpArrow : Qt::DownArrow, 778 drawArrow(p, (above) ? Qt::UpArrow : Qt::DownArrow,
779 FALSE, x + 1, y, w, h, g, TRUE); 779 FALSE, x + 1, y, w, h, g, TRUE);
780 } else { 780 } else {
781 if (above && below) { 781 if (above && below) {
782 drawArrow(p, Qt::LeftArrow, FALSE, x + 1, y, w / 2, h, g, TRUE); 782 drawArrow(p, Qt::LeftArrow, FALSE, x + 1, y, w / 2, h, g, TRUE);
783 drawArrow(p, Qt::RightArrow, FALSE, x + (w / 2) - 2, y, w / 2, h, g, TRUE); 783 drawArrow(p, Qt::RightArrow, FALSE, x + (w / 2) - 2, y, w / 2, h, g, TRUE);
784 } else 784 } else
785 drawArrow(p, (above) ? Qt::LeftArrow : Qt::RightArrow, 785 drawArrow(p, (above) ? Qt::LeftArrow : Qt::RightArrow,
786 FALSE, x, y, w, h, g, TRUE); 786 FALSE, x, y, w, h, g, TRUE);
787 } 787 }
788} 788}
789 789
790 790
791void LightStyle::drawSliderGroove(QPainter *p, int x, int y, int w, int h, 791void LightStyle::drawSliderGroove(QPainter *p, int x, int y, int w, int h,
792 const QColorGroup& g, QCOORD c, 792 const QColorGroup& g, QCOORD c,
793 Qt::Orientation orientation) 793 Qt::Orientation orientation)
794{ 794{
795 if (orientation == Horizontal) 795 if (orientation == Horizontal)
796 drawButton(p, x, y+c - 3, w, 6, g, TRUE, &g.brush(QColorGroup::Mid)); 796 drawButton(p, x, y+c - 3, w, 6, g, TRUE, &g.brush(QColorGroup::Mid));
797 else 797 else
798 drawButton(p, x+c - 3, y, 6, h, g, TRUE, &g.brush(QColorGroup::Mid)); 798 drawButton(p, x+c - 3, y, 6, h, g, TRUE, &g.brush(QColorGroup::Mid));
799} 799}
800 800
801 801
802void LightStyle::scrollBarMetrics(const QScrollBar *scrollbar, 802void LightStyle::scrollBarMetrics(const QScrollBar *scrollbar,
803 int &sliderMin, int &sliderMax, 803 int &sliderMin, int &sliderMax,
804 int &sliderLength, int &buttonDim) const 804 int &sliderLength, int &buttonDim)
805{ 805{
806 int maxLength; 806 int maxLength;
807 int length = ((scrollbar->orientation() == Horizontal) ? 807 int length = ((scrollbar->orientation() == Horizontal) ?
808 scrollbar->width() : scrollbar->height()); 808 scrollbar->width() : scrollbar->height());
809 int extent = ((scrollbar->orientation() == Horizontal) ? 809 int extent = ((scrollbar->orientation() == Horizontal) ?
810 scrollbar->height() : scrollbar->width()); 810 scrollbar->height() : scrollbar->width());
811 extent--; 811 extent--;
812 812
813 if (length > (extent + defaultFrameWidth() - 1) * 2 + defaultFrameWidth()) 813 if (length > (extent + defaultFrameWidth() - 1) * 2 + defaultFrameWidth())
814 buttonDim = extent - defaultFrameWidth(); 814 buttonDim = extent - defaultFrameWidth();
815 else 815 else
816 buttonDim = (length - defaultFrameWidth()) / 2 - 1; 816 buttonDim = (length - defaultFrameWidth()) / 2 - 1;
817 817
818 sliderMin = buttonDim; 818 sliderMin = buttonDim;
819 maxLength = length - buttonDim * 3; 819 maxLength = length - buttonDim * 3;
820 820
821 if (scrollbar->maxValue() != scrollbar->minValue()) { 821 if (scrollbar->maxValue() != scrollbar->minValue()) {
822 uint range = scrollbar->maxValue() - scrollbar->minValue(); 822 uint range = scrollbar->maxValue() - scrollbar->minValue();
823 sliderLength = (scrollbar->pageStep() * maxLength) / 823 sliderLength = (scrollbar->pageStep() * maxLength) /
824 (range + scrollbar->pageStep()); 824 (range + scrollbar->pageStep());
825 825
826 if (sliderLength < buttonDim || range > INT_MAX / 2) 826 if (sliderLength < buttonDim || range > INT_MAX / 2)
827 sliderLength = buttonDim; 827 sliderLength = buttonDim;
828 if (sliderLength > maxLength) 828 if (sliderLength > maxLength)
829 sliderLength = maxLength; 829 sliderLength = maxLength;
830 } else 830 } else
831 sliderLength = maxLength; 831 sliderLength = maxLength;
832 832
833 sliderMax = sliderMin + maxLength - sliderLength; 833 sliderMax = sliderMin + maxLength - sliderLength;
834} 834}
835 835
836 836
837QStyle::ScrollControl LightStyle::scrollBarPointOver(const QScrollBar *scrollbar, 837QStyle::ScrollControl LightStyle::scrollBarPointOver(const QScrollBar *scrollbar,
838 int sliderStart, const QPoint &p) 838 int sliderStart, const QPoint &p)
839{ 839{
840 if (! scrollbar->rect().contains(p)) 840 if (! scrollbar->rect().contains(p))
841 return NoScroll; 841 return NoScroll;
842 842
843 int sliderMin, sliderMax, sliderLength, buttonDim, pos; 843 int sliderMin, sliderMax, sliderLength, buttonDim, pos;
844 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim ); 844 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim );
845 845
846 if (scrollbar->orientation() == Horizontal) 846 if (scrollbar->orientation() == Horizontal)
847 pos = p.x(); 847 pos = p.x();
848 else 848 else
849 pos = p.y(); 849 pos = p.y();
850 850
851 if (pos < buttonDim) 851 if (pos < buttonDim)
852 return SubLine; 852 return SubLine;
853 if (pos < sliderStart) 853 if (pos < sliderStart)
854 return SubPage; 854 return SubPage;
855 if (pos < sliderStart + sliderLength) 855 if (pos < sliderStart + sliderLength)
856 return Slider; 856 return Slider;
857 if (pos < sliderMax + sliderLength) 857 if (pos < sliderMax + sliderLength)
858 return AddPage; 858 return AddPage;
859 if (pos < sliderMax + sliderLength + buttonDim) 859 if (pos < sliderMax + sliderLength + buttonDim)
860 return SubLine; 860 return SubLine;
861 return AddLine; 861 return AddLine;
862} 862}
863 863
864 864
865 865
866void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar, 866void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar,
867 int sliderStart, uint controls, 867 int sliderStart, uint controls,
868 uint activeControl ) 868 uint activeControl )
869{ 869{
870 QColorGroup g = scrollbar->colorGroup(); 870 QColorGroup g = scrollbar->colorGroup();
871 871
872 int sliderMin, sliderMax, sliderLength, buttonDim; 872 int sliderMin, sliderMax, sliderLength, buttonDim;
873 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim ); 873 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim );
874 874
875 if (sliderStart > sliderMax) { // sanity check 875 if (sliderStart > sliderMax) { // sanity check
876 sliderStart = sliderMax; 876 sliderStart = sliderMax;
877 } 877 }
878 878
879 QRect addR, subR, subR2, addPageR, subPageR, sliderR; 879 QRect addR, subR, subR2, addPageR, subPageR, sliderR;
880 int length = ((scrollbar->orientation() == Horizontal) ? 880 int length = ((scrollbar->orientation() == Horizontal) ?
881 scrollbar->width() : scrollbar->height()); 881 scrollbar->width() : scrollbar->height());
882 int extent = ((scrollbar->orientation() == Horizontal) ? 882 int extent = ((scrollbar->orientation() == Horizontal) ?
883 scrollbar->height() : scrollbar->width()); 883 scrollbar->height() : scrollbar->width());
884 884
885 885
886 int fudge = 3; //####disgusting hack 886 int fudge = 3; //####disgusting hack
887 887
888 if (scrollbar->orientation() == Horizontal) { 888 if (scrollbar->orientation() == Horizontal) {
889 subR.setRect(0, defaultFrameWidth(), 889 subR.setRect(0, defaultFrameWidth(),
890 buttonDim + fudge, buttonDim); 890 buttonDim + fudge, buttonDim);
891 subR2.setRect(length - (buttonDim * 2), defaultFrameWidth() , 891 subR2.setRect(length - (buttonDim * 2), defaultFrameWidth() ,
892 buttonDim, buttonDim); 892 buttonDim, buttonDim);
893 addR.setRect(length - buttonDim, defaultFrameWidth(), 893 addR.setRect(length - buttonDim, defaultFrameWidth(),
894 buttonDim, buttonDim); 894 buttonDim, buttonDim);
895 } else { 895 } else {
896 subR.setRect(defaultFrameWidth() + 1, 0, 896 subR.setRect(defaultFrameWidth() + 1, 0,
897 buttonDim, buttonDim + fudge); 897 buttonDim, buttonDim + fudge);
898 subR2.setRect(defaultFrameWidth() + 1, length - (buttonDim * 2), 898 subR2.setRect(defaultFrameWidth() + 1, length - (buttonDim * 2),
899 buttonDim, buttonDim); 899 buttonDim, buttonDim);
900 addR.setRect(defaultFrameWidth() + 1, length - buttonDim, 900 addR.setRect(defaultFrameWidth() + 1, length - buttonDim,
901 buttonDim, buttonDim); 901 buttonDim, buttonDim);
902 } 902 }
903 903
904 int sliderEnd = sliderStart + sliderLength; 904 int sliderEnd = sliderStart + sliderLength;
905 int sliderW = extent - defaultFrameWidth() - 1; 905 int sliderW = extent - defaultFrameWidth() - 1;
906 if (scrollbar->orientation() == Horizontal) { 906 if (scrollbar->orientation() == Horizontal) {
907 subPageR.setRect( subR.right() + 1, defaultFrameWidth(), 907 subPageR.setRect( subR.right() + 1, defaultFrameWidth(),
908 sliderStart - subR.right() - 1 , sliderW ); 908 sliderStart - subR.right() - 1 , sliderW );
909 addPageR.setRect( sliderEnd, defaultFrameWidth(), 909 addPageR.setRect( sliderEnd, defaultFrameWidth(),
910 subR2.left() - sliderEnd, sliderW ); 910 subR2.left() - sliderEnd, sliderW );
911 sliderR.setRect( sliderStart, defaultFrameWidth(), sliderLength, sliderW ); 911 sliderR.setRect( sliderStart, defaultFrameWidth(), sliderLength, sliderW );
912 } else { 912 } else {
913 subPageR.setRect( defaultFrameWidth(), subR.bottom() + 1, 913 subPageR.setRect( defaultFrameWidth(), subR.bottom() + 1,
914 sliderW, sliderStart - subR.bottom() - 1 ); 914 sliderW, sliderStart - subR.bottom() - 1 );
915 addPageR.setRect( defaultFrameWidth(), sliderEnd, 915 addPageR.setRect( defaultFrameWidth(), sliderEnd,
916 sliderW, subR2.top() - sliderEnd ); 916 sliderW, subR2.top() - sliderEnd );
917 sliderR .setRect( defaultFrameWidth(), sliderStart, 917 sliderR .setRect( defaultFrameWidth(), sliderStart,
918 sliderW, sliderLength ); 918 sliderW, sliderLength );
919 } 919 }
920 920
921 if ( controls == ( AddLine | SubLine | AddPage | SubPage | 921 if ( controls == ( AddLine | SubLine | AddPage | SubPage |
922 Slider | First | Last ) ) { 922 Slider | First | Last ) ) {
923 if (scrollbar->orientation() == Horizontal) 923 if (scrollbar->orientation() == Horizontal)
924 qDrawShadePanel(p, 0, 0, length, 2, g, TRUE, 1, 924 qDrawShadePanel(p, 0, 0, length, 2, g, TRUE, 1,
925 &g.brush(QColorGroup::Background)); 925 &g.brush(QColorGroup::Background));
926 else 926 else
927 qDrawShadePanel(p, 0, 0, 2, length, g, TRUE, 1, 927 qDrawShadePanel(p, 0, 0, 2, length, g, TRUE, 1,
928 &g.brush(QColorGroup::Background)); 928 &g.brush(QColorGroup::Background));
929 } 929 }
930 930
931 if ( controls & AddLine ) 931 if ( controls & AddLine )
932 drawArrow( p, (scrollbar->orientation() == Vertical) ? DownArrow : RightArrow, 932 drawArrow( p, (scrollbar->orientation() == Vertical) ? DownArrow : RightArrow,
diff --git a/library/lightstyle.h b/library/lightstyle.h
index 0392957..52e19b2 100644
--- a/library/lightstyle.h
+++ b/library/lightstyle.h
@@ -1,120 +1,120 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#ifndef LIGHTSTYLE_H 20#ifndef LIGHTSTYLE_H
21#define LIGHTSTYLE_H 21#define LIGHTSTYLE_H
22 22
23 23
24#ifndef QT_H 24#ifndef QT_H
25#include <qstyle.h> 25#include <qstyle.h>
26#include <qwindowsstyle.h> 26#include <qwindowsstyle.h>
27#endif // QT_H 27#endif // QT_H
28 28
29#if QT_VERSION < 0x030000 29#if QT_VERSION < 0x030000
30 30
31#ifdef QT_PLUGIN_STYLE_LIGHT 31#ifdef QT_PLUGIN_STYLE_LIGHT
32# define Q_EXPORT_STYLE_LIGHT 32# define Q_EXPORT_STYLE_LIGHT
33#else 33#else
34# define Q_EXPORT_STYLE_LIGHT Q_EXPORT 34# define Q_EXPORT_STYLE_LIGHT Q_EXPORT
35#endif // QT_PLUGIN_STYLE_LIGHT 35#endif // QT_PLUGIN_STYLE_LIGHT
36 36
37 37
38class Q_EXPORT_STYLE_LIGHT LightStyle : public QWindowsStyle 38class Q_EXPORT_STYLE_LIGHT LightStyle : public QWindowsStyle
39{ 39{
40public: 40public:
41 LightStyle(); 41 LightStyle();
42 virtual ~LightStyle(); 42 virtual ~LightStyle();
43 43
44 void polish(QWidget *widget); 44 void polish(QWidget *widget);
45 void unPolish(QWidget*widget); 45 void unPolish(QWidget*widget);
46 46
47 void polish(QApplication *app); 47 void polish(QApplication *app);
48 void unPolish(QApplication *app); 48 void unPolish(QApplication *app);
49 49
50 void polishPopupMenu(QPopupMenu *menu); 50 void polishPopupMenu(QPopupMenu *menu);
51 51
52 void drawPushButton(QPushButton *button, QPainter *p); 52 void drawPushButton(QPushButton *button, QPainter *p);
53 void drawButton(QPainter *p, int x, int y, int w, int h, 53 void drawButton(QPainter *p, int x, int y, int w, int h,
54 const QColorGroup &g, bool sunken = FALSE, 54 const QColorGroup &g, bool sunken = FALSE,
55 const QBrush *fill = 0); 55 const QBrush *fill = 0);
56 void drawBevelButton(QPainter *p, int x, int y, int w, int h, 56 void drawBevelButton(QPainter *p, int x, int y, int w, int h,
57 const QColorGroup &g, bool sunken = FALSE, 57 const QColorGroup &g, bool sunken = FALSE,
58 const QBrush *fill = 0); 58 const QBrush *fill = 0);
59 void getButtonShift(int &x, int &y) const; 59 void getButtonShift(int &x, int &y);
60 60
61 void drawComboButton(QPainter *p, int x, int y, int w, int h, 61 void drawComboButton(QPainter *p, int x, int y, int w, int h,
62 const QColorGroup &g, bool sunken = FALSE, 62 const QColorGroup &g, bool sunken = FALSE,
63 bool editable = FALSE, bool = TRUE, 63 bool editable = FALSE, bool = TRUE,
64 const QBrush *fill = 0); 64 const QBrush *fill = 0);
65 QRect comboButtonRect(int x, int y, int w, int h) const; 65 QRect comboButtonRect(int x, int y, int w, int h);
66 QRect comboButtonFocusRect(int x, int y, int w, int h) const; 66 QRect comboButtonFocusRect(int x, int y, int w, int h);
67 67
68 void drawIndicator(QPainter *p, int x, int y ,int w, int h, 68 void drawIndicator(QPainter *p, int x, int y ,int w, int h,
69 const QColorGroup &g, int state, 69 const QColorGroup &g, int state,
70 bool = FALSE, bool = TRUE); 70 bool = FALSE, bool = TRUE);
71 QSize indicatorSize() const; 71 QSize indicatorSize() const;
72 72
73 void drawExclusiveIndicator(QPainter *p, int x, int y ,int w, int h, 73 void drawExclusiveIndicator(QPainter *p, int x, int y ,int w, int h,
74 const QColorGroup &g, bool on, 74 const QColorGroup &g, bool on,
75 bool = FALSE, bool = TRUE); 75 bool = FALSE, bool = TRUE);
76 QSize exclusiveIndicatorSize() const; 76 QSize exclusiveIndicatorSize() const;
77 77
78 void drawPanel(QPainter * p, int x, int y, int w, int h, 78 void drawPanel(QPainter * p, int x, int y, int w, int h,
79 const QColorGroup &g, bool sunken = FALSE, 79 const QColorGroup &g, bool sunken = FALSE,
80 int = 1, const QBrush * = 0); 80 int = 1, const QBrush * = 0);
81 81
82 void scrollBarMetrics( const QScrollBar *, 82 void scrollBarMetrics( const QScrollBar *,
83 int &, int &, int &, int & ) const; 83 int &, int &, int &, int & );
84 void drawScrollBarControls(QPainter* p, const QScrollBar* sb, 84 void drawScrollBarControls(QPainter* p, const QScrollBar* sb,
85 int sliderStart, uint controls, 85 int sliderStart, uint controls,
86 uint activeControl); 86 uint activeControl);
87 QStyle::ScrollControl scrollBarPointOver(const QScrollBar *, int, const QPoint& p); 87 QStyle::ScrollControl scrollBarPointOver(const QScrollBar *, int, const QPoint& p);
88 88
89 void drawTab(QPainter *p, const QTabBar *tabbar, QTab *tab, bool selected); 89 void drawTab(QPainter *p, const QTabBar *tabbar, QTab *tab, bool selected);
90 90
91 void drawSlider(QPainter *p, int x, int y, int w, int h, 91 void drawSlider(QPainter *p, int x, int y, int w, int h,
92 const QColorGroup &g, Qt::Orientation orientation, 92 const QColorGroup &g, Qt::Orientation orientation,
93 bool, bool); 93 bool, bool);
94 void drawSliderGroove(QPainter *p, int x, int y, int w, int h, 94 void drawSliderGroove(QPainter *p, int x, int y, int w, int h,
95 const QColorGroup& g, QCOORD, 95 const QColorGroup& g, QCOORD,
96 Qt::Orientation ); 96 Qt::Orientation );
97 97
98 void drawToolBarHandle(QPainter *, const QRect &, Qt::Orientation, 98 void drawToolBarHandle(QPainter *, const QRect &, Qt::Orientation,
99 bool, const QColorGroup &, bool = FALSE ); 99 bool, const QColorGroup &, bool = FALSE );
100 100
101 QSize scrollBarExtent() const; 101 QSize scrollBarExtent() const;
102 int buttonDefaultIndicatorWidth() const; 102 int buttonDefaultIndicatorWidth() const;
103 int buttonMargin() const; 103 int buttonMargin() const;
104 int sliderThickness() const; 104 int sliderThickness() const;
105 int sliderLength() const; 105 int sliderLength() const;
106 int defaultFrameWidth() const; 106 int defaultFrameWidth() const;
107 107
108 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& ); 108 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& );
109 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& ); 109 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& );
110 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 110 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
111 const QPalette& pal, 111 const QPalette& pal,
112 bool act, bool enabled, int x, int y, int w, int h); 112 bool act, bool enabled, int x, int y, int w, int h);
113 113
114protected: 114protected:
115 bool eventFilter(QObject *, QEvent *); 115 bool eventFilter(QObject *, QEvent *);
116}; 116};
117 117
118#endif 118#endif
119 119
120#endif // LIGHTSTYLE_H 120#endif // LIGHTSTYLE_H