author | erik <erik> | 2007-01-10 17:24:23 (UTC) |
---|---|---|
committer | erik <erik> | 2007-01-10 17:24:23 (UTC) |
commit | e7d3e1d0f3c75979c01ea6373ed3c80d0c986000 (patch) (unidiff) | |
tree | 34a6e8aa3de82f07c0531e59f375da216fbfb97a | |
parent | 51bd5e8d542372ad54898ce642fe9b82b8ba83f3 (diff) | |
download | opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.zip opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.tar.gz opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.tar.bz2 |
All of the files in this commit have an inheritance member function
mismatch correction. None are serious, but all would have been improperly
mislinked in the inheritance hierarchy if attempted to be used.
-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 |