-rw-r--r-- | core/pim/datebook/holiday/national/nationalcfg.cpp | 2 | ||||
-rw-r--r-- | core/pim/datebook/holiday/national/nationalcfg.h | 2 | ||||
-rw-r--r-- | inputmethods/handwriting/qimpenwidget.cpp | 2 | ||||
-rw-r--r-- | inputmethods/handwriting/qimpenwidget.h | 2 | ||||
-rw-r--r-- | libopie2/opiepim/backend/odatebookaccessbackend_xml.cpp | 2 | ||||
-rw-r--r-- | libopie2/opiepim/backend/odatebookaccessbackend_xml.h | 2 | ||||
-rw-r--r-- | library/lightstyle.cpp | 8 | ||||
-rw-r--r-- | library/lightstyle.h | 8 |
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 | ||
157 | bool NHcfg::parsevalue(const QString&name,const QXmlAttributes&attr) | 157 | bool 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 | ||
189 | bool NHcfg::parseCalc(const QString&name,const QXmlAttributes&attr) | 189 | bool 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 | ||
259 | bool NHcfg::endElement(const QString&, const QString&,const QString& name) | 259 | bool 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 | ||
279 | const QString&NHcfg::errorString()const | 279 | QString NHcfg::errorString() const |
280 | { | 280 | { |
281 | return err; | 281 | return err; |
282 | } | 282 | } |
283 | 283 | ||
284 | NHentry::NHentry() | 284 | NHentry::NHentry() |
285 | :m_Type(fix) | 285 | :m_Type(fix) |
286 | { | 286 | { |
287 | m_Offset=0; | 287 | m_Offset=0; |
288 | } | 288 | } |
289 | 289 | ||
290 | NHentry::~NHentry() | 290 | NHentry::~NHentry() |
291 | {} | 291 | {} |
292 | 292 | ||
293 | void NHentry::setName(const QString&aName) | 293 | void NHentry::setName(const QString&aName) |
294 | { | 294 | { |
295 | m_Name = aName; | 295 | m_Name = aName; |
296 | } | 296 | } |
297 | 297 | ||
298 | const QString&NHentry::name()const | 298 | const QString&NHentry::name()const |
299 | { | 299 | { |
300 | return m_Name; | 300 | return m_Name; |
301 | } | 301 | } |
302 | 302 | ||
303 | void NHentry::setType(NHentry::entry_type aType) | 303 | void NHentry::setType(NHentry::entry_type aType) |
304 | { | 304 | { |
305 | m_Type = aType; | 305 | m_Type = aType; |
306 | } | 306 | } |
307 | 307 | ||
308 | NHentry::entry_type NHentry::type()const | 308 | NHentry::entry_type NHentry::type()const |
309 | { | 309 | { |
310 | return m_Type; | 310 | return m_Type; |
311 | } | 311 | } |
312 | 312 | ||
313 | void NHentry::setDate(const QDate&aDate) | 313 | void NHentry::setDate(const QDate&aDate) |
314 | { | 314 | { |
315 | m_Date = aDate; | 315 | m_Date = aDate; |
316 | } | 316 | } |
317 | 317 | ||
318 | const QDate&NHentry::date()const | 318 | const QDate&NHentry::date()const |
319 | { | 319 | { |
320 | return m_Date; | 320 | return m_Date; |
321 | } | 321 | } |
322 | 322 | ||
323 | void NHentry::setWeekday(const QString&aDay) | 323 | void NHentry::setWeekday(const QString&aDay) |
324 | { | 324 | { |
325 | m_Weekday = aDay; | 325 | m_Weekday = aDay; |
326 | } | 326 | } |
327 | 327 | ||
328 | const QString&NHentry::weekday()const | 328 | const QString&NHentry::weekday()const |
329 | { | 329 | { |
330 | return m_Weekday; | 330 | return m_Weekday; |
331 | } | 331 | } |
332 | 332 | ||
333 | void NHentry::setDayofmonth(const QString&aDay) | 333 | void NHentry::setDayofmonth(const QString&aDay) |
334 | { | 334 | { |
335 | m_Dayofmonth = aDay; | 335 | m_Dayofmonth = aDay; |
336 | } | 336 | } |
337 | 337 | ||
338 | const QString&NHentry::dayofmonth()const | 338 | const QString&NHentry::dayofmonth()const |
339 | { | 339 | { |
340 | return m_Dayofmonth; | 340 | return m_Dayofmonth; |
341 | } | 341 | } |
342 | 342 | ||
343 | void NHentry::setDaydep(const QString&dep) | 343 | void NHentry::setDaydep(const QString&dep) |
344 | { | 344 | { |
345 | m_Depth = dep; | 345 | m_Depth = dep; |
346 | } | 346 | } |
347 | 347 | ||
348 | const QString&NHentry::daydep()const | 348 | const QString&NHentry::daydep()const |
349 | { | 349 | { |
350 | return m_Depth; | 350 | return m_Depth; |
351 | } | 351 | } |
352 | 352 | ||
353 | void NHentry::setMonth(const QString&month) | 353 | void NHentry::setMonth(const QString&month) |
354 | { | 354 | { |
355 | m_Month = month; | 355 | m_Month = month; |
356 | } | 356 | } |
357 | 357 | ||
358 | const QString&NHentry::month()const | 358 | const QString&NHentry::month()const |
359 | { | 359 | { |
360 | return m_Month; | 360 | return m_Month; |
361 | } | 361 | } |
362 | 362 | ||
363 | void NHentry::setOffet(int aOffset) | 363 | void NHentry::setOffet(int aOffset) |
364 | { | 364 | { |
365 | m_Offset = aOffset; | 365 | m_Offset = aOffset; |
366 | } | 366 | } |
367 | 367 | ||
368 | const int NHentry::offset()const | 368 | const 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 | ||
10 | typedef QMap<QDate,QStringList> tholidaylist; | 10 | typedef QMap<QDate,QStringList> tholidaylist; |
11 | 11 | ||
12 | class NHentry | 12 | class NHentry |
13 | { | 13 | { |
14 | public: | 14 | public: |
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 | ||
36 | protected: | 36 | protected: |
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 | ||
43 | typedef QValueList<NHentry> tentrylist; | 43 | typedef QValueList<NHentry> tentrylist; |
44 | 44 | ||
45 | class NHcfg:public QXmlDefaultHandler | 45 | class NHcfg:public QXmlDefaultHandler |
46 | { | 46 | { |
47 | public: | 47 | public: |
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 | ||
62 | protected: | 62 | protected: |
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 | ||
171 | void QIMPenWidget::clearCharSets() | 171 | void 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 | */ |
182 | void QIMPenWidget::showCharacter( QIMPenChar *ch, int speed ) | 182 | void 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 | */ |
213 | void QIMPenWidget::timeout() | 213 | void 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 | */ |
258 | bool QIMPenWidget::selectSet( QPoint p ) | 258 | bool 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 | */ |
285 | QSize QIMPenWidget::sizeHint() | 285 | QSize 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 | ||
290 | void QIMPenWidget::mousePressEvent( QMouseEvent *e ) | 290 | void 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 | ||
316 | void QIMPenWidget::mouseReleaseEvent( QMouseEvent *e ) | 316 | void 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 | ||
327 | void QIMPenWidget::mouseMoveEvent( QMouseEvent *e ) | 327 | void 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 | ||
357 | void QIMPenWidget::paintEvent( QPaintEvent * ) | 357 | void 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 | ||
25 | class QIMPenWidget : public QWidget | 25 | class QIMPenWidget : public QWidget |
26 | { | 26 | { |
27 | Q_OBJECT | 27 | Q_OBJECT |
28 | public: | 28 | public: |
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 | ||
42 | public slots: | 42 | public slots: |
43 | void removeStroke(); | 43 | void removeStroke(); |
44 | 44 | ||
45 | signals: | 45 | signals: |
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 | ||
51 | protected slots: | 51 | protected slots: |
52 | void timeout(); | 52 | void timeout(); |
53 | 53 | ||
54 | protected: | 54 | protected: |
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 | ||
70 | protected: | 70 | protected: |
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 | ||
213 | namespace Opie { | 213 | namespace Opie { |
214 | ODateBookAccessBackend_XML::ODateBookAccessBackend_XML( const QString& , | 214 | ODateBookAccessBackend_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 | } |
220 | ODateBookAccessBackend_XML::~ODateBookAccessBackend_XML() { | 220 | ODateBookAccessBackend_XML::~ODateBookAccessBackend_XML() { |
221 | } | 221 | } |
222 | bool ODateBookAccessBackend_XML::load() { | 222 | bool ODateBookAccessBackend_XML::load() { |
223 | return loadFile(); | 223 | return loadFile(); |
224 | } | 224 | } |
225 | bool ODateBookAccessBackend_XML::reload() { | 225 | bool ODateBookAccessBackend_XML::reload() { |
226 | clear(); | 226 | clear(); |
227 | return load(); | 227 | return load(); |
228 | } | 228 | } |
229 | bool ODateBookAccessBackend_XML::save() { | 229 | bool 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 | } |
278 | QArray<int> ODateBookAccessBackend_XML::allRecords()const { | 278 | QArray<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 | } |
294 | QArray<int> ODateBookAccessBackend_XML::queryByExample(const OPimEvent&, int, const QDateTime& ) { | 294 | QArray<int> ODateBookAccessBackend_XML::queryByExample(const OPimEvent&, int, const QDateTime& ) const { |
295 | return QArray<int>(); | 295 | return QArray<int>(); |
296 | } | 296 | } |
297 | void ODateBookAccessBackend_XML::clear() { | 297 | void 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 | } |
302 | OPimEvent ODateBookAccessBackend_XML::find( int uid ) const{ | 302 | OPimEvent 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 | } |
308 | bool ODateBookAccessBackend_XML::add( const OPimEvent& ev ) { | 308 | bool 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 | } |
317 | bool ODateBookAccessBackend_XML::remove( int uid ) { | 317 | bool 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 | } |
324 | bool ODateBookAccessBackend_XML::replace( const OPimEvent& ev ) { | 324 | bool 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 | ||
329 | QArray<int> ODateBookAccessBackend_XML::rawRepeats()const { | 329 | QArray<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 | } |
341 | QArray<int> ODateBookAccessBackend_XML::nonRepeats()const { | 341 | QArray<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 | } |
353 | OPimEvent::ValueList ODateBookAccessBackend_XML::directNonRepeats()const { | 353 | OPimEvent::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 | } |
361 | OPimEvent::ValueList ODateBookAccessBackend_XML::directRawRepeats()const { | 361 | OPimEvent::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) |
371 | bool ODateBookAccessBackend_XML::loadFile() { | 371 | bool 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 | ||
36 | namespace Opie { | 36 | namespace 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 | */ |
43 | class ODateBookAccessBackend_XML : public ODateBookAccessBackend { | 43 | class ODateBookAccessBackend_XML : public ODateBookAccessBackend { |
44 | public: | 44 | public: |
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 | ||
69 | private: | 69 | private: |
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 | ||
284 | void LightStyle::unPolish(QApplication *app) | 284 | void LightStyle::unPolish(QApplication *app) |
285 | { | 285 | { |
286 | app->setPalette(singleton->oldPalette); | 286 | app->setPalette(singleton->oldPalette); |
287 | } | 287 | } |
288 | 288 | ||
289 | 289 | ||
290 | void LightStyle::polishPopupMenu(QPopupMenu *menu) | 290 | void LightStyle::polishPopupMenu(QPopupMenu *menu) |
291 | { | 291 | { |
292 | menu->setMouseTracking(TRUE); | 292 | menu->setMouseTracking(TRUE); |
293 | } | 293 | } |
294 | 294 | ||
295 | 295 | ||
296 | void LightStyle::drawPushButton(QPushButton *button, QPainter *p) | 296 | void 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 | ||
342 | void LightStyle::drawButton(QPainter *p, int x, int y, int w, int h, | 342 | void 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 | ||
385 | void LightStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h, | 385 | void 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 | ||
393 | void LightStyle::getButtonShift(int &x, int &y) const | 393 | void LightStyle::getButtonShift(int &x, int &y) |
394 | { | 394 | { |
395 | x = y = 0; | 395 | x = y = 0; |
396 | } | 396 | } |
397 | 397 | ||
398 | 398 | ||
399 | void LightStyle::drawComboButton(QPainter *p, int x, int y, int w, int h, | 399 | void 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 | ||
428 | QRect LightStyle::comboButtonRect( int x, int y, int w, int h ) const | 428 | QRect 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 | ||
443 | QRect LightStyle::comboButtonFocusRect(int x, int y, int w, int h ) const | 443 | QRect 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 | ||
449 | void LightStyle::drawPanel(QPainter *p, int x, int y, int w, int h, | 449 | void 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 | ||
504 | void LightStyle::drawIndicator(QPainter *p, int x, int y ,int w, int h, | 504 | void 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 | ||
531 | void LightStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int w, int h, | 531 | void 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 |
562 | void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) | 562 | void 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 | ||
766 | void LightStyle::drawSlider(QPainter *p, int x, int y, int w, int h, | 766 | void 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 | ||
791 | void LightStyle::drawSliderGroove(QPainter *p, int x, int y, int w, int h, | 791 | void 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 | ||
802 | void LightStyle::scrollBarMetrics(const QScrollBar *scrollbar, | 802 | void 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 | ||
837 | QStyle::ScrollControl LightStyle::scrollBarPointOver(const QScrollBar *scrollbar, | 837 | QStyle::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 | ||
866 | void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar, | 866 | void 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 | ||
38 | class Q_EXPORT_STYLE_LIGHT LightStyle : public QWindowsStyle | 38 | class Q_EXPORT_STYLE_LIGHT LightStyle : public QWindowsStyle |
39 | { | 39 | { |
40 | public: | 40 | public: |
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 | ||
114 | protected: | 114 | protected: |
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 |