39 files changed, 2136 insertions, 1652 deletions
diff --git a/library/applnk.cpp b/library/applnk.cpp index 4adf1bd..8763eb2 100644 --- a/library/applnk.cpp +++ b/library/applnk.cpp | |||
@@ -1,1493 +1,1493 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #define QTOPIA_INTERNAL_MIMEEXT | 21 | #define QTOPIA_INTERNAL_MIMEEXT |
22 | #define QTOPIA_INTERNAL_PRELOADACCESS | 22 | #define QTOPIA_INTERNAL_PRELOADACCESS |
23 | #define QTOPIA_INTERNAL_APPLNKASSIGN | 23 | #define QTOPIA_INTERNAL_APPLNKASSIGN |
24 | 24 | ||
25 | #include "applnk.h" | 25 | #include "applnk.h" |
26 | 26 | ||
27 | #include <qpe/qpeapplication.h> | 27 | #include <qpe/qpeapplication.h> |
28 | #include <qpe/categories.h> | 28 | #include <qpe/categories.h> |
29 | #include <qpe/categoryselect.h> | 29 | #include <qpe/categoryselect.h> |
30 | #include <qpe/qcopenvelope_qws.h> | 30 | #include <qpe/qcopenvelope_qws.h> |
31 | #include <qpe/global.h> | 31 | #include <qpe/global.h> |
32 | #include <qpe/mimetype.h> | 32 | #include <qpe/mimetype.h> |
33 | #include <qpe/config.h> | 33 | #include <qpe/config.h> |
34 | #include <qpe/storage.h> | 34 | #include <qpe/storage.h> |
35 | #include <qpe/resource.h> | 35 | #include <qpe/resource.h> |
36 | 36 | ||
37 | #include <qdict.h> | 37 | #include <qdict.h> |
38 | #include <qdir.h> | 38 | #include <qdir.h> |
39 | #include <qregexp.h> | 39 | #include <qregexp.h> |
40 | 40 | ||
41 | #include <qgfx_qws.h> | 41 | #include <qgfx_qws.h> |
42 | 42 | ||
43 | #include <stdlib.h> | 43 | #include <stdlib.h> |
44 | 44 | ||
45 | int AppLnk::lastId = 5000; | 45 | int AppLnk::lastId = 5000; |
46 | 46 | ||
47 | static int smallSize = 14; | 47 | static int smallSize = 14; |
48 | static int bigSize = 32; | 48 | static int bigSize = 32; |
49 | 49 | ||
50 | static QString safeFileName(const QString& n) | 50 | static QString safeFileName(const QString& n) |
51 | { | 51 | { |
52 | QString safename=n; | 52 | QString safename=n; |
53 | safename.replace(QRegExp("[^0-9A-Za-z.]"),"_"); | 53 | safename.replace(QRegExp("[^0-9A-Za-z.]"),"_"); |
54 | safename.replace(QRegExp("^[^A-Za-z]*"),""); | 54 | safename.replace(QRegExp("^[^A-Za-z]*"),""); |
55 | if ( safename.isEmpty() ) | 55 | if ( safename.isEmpty() ) |
56 | safename = "_"; | 56 | safename = "_"; |
57 | return safename; | 57 | return safename; |
58 | } | 58 | } |
59 | 59 | ||
60 | static bool prepareDirectories(const QString& lf) | 60 | static bool prepareDirectories(const QString& lf) |
61 | { | 61 | { |
62 | if ( !QFile::exists(lf) ) { | 62 | if ( !QFile::exists(lf) ) { |
63 | // May need to create directories | 63 | // May need to create directories |
64 | QFileInfo fi(lf); | 64 | QFileInfo fi(lf); |
65 | if ( system(("mkdir -p "+fi.dirPath(TRUE))) ) | 65 | if ( system(("mkdir -p "+fi.dirPath(TRUE))) ) |
66 | return FALSE; | 66 | return FALSE; |
67 | } | 67 | } |
68 | return TRUE; | 68 | return TRUE; |
69 | } | 69 | } |
70 | 70 | ||
71 | class AppLnkPrivate | 71 | class AppLnkPrivate |
72 | { | 72 | { |
73 | public: | 73 | public: |
74 | /* the size of the Pixmap */ | 74 | /* the size of the Pixmap */ |
75 | enum Size {Normal = 0, Big }; | 75 | enum Size {Normal = 0, Big }; |
76 | AppLnkPrivate() { | 76 | AppLnkPrivate() { |
77 | /* we want one normal and one big item */ | 77 | /* we want one normal and one big item */ |
78 | 78 | ||
79 | QPixmap pix; | 79 | QPixmap pix; |
80 | mPixmaps.insert(0, pix ); | 80 | mPixmaps.insert(0, pix ); |
81 | mPixmaps.insert(1, pix); | 81 | mPixmaps.insert(1, pix); |
82 | } | 82 | } |
83 | 83 | ||
84 | QStringList mCatList; // always correct | 84 | QStringList mCatList; // always correct |
85 | QArray<int> mCat; // cached value; correct if not empty | 85 | QArray<int> mCat; // cached value; correct if not empty |
86 | QMap<int, QPixmap> mPixmaps; | 86 | QMap<int, QPixmap> mPixmaps; |
87 | 87 | ||
88 | void updateCatListFromArray() | 88 | void updateCatListFromArray() |
89 | { | 89 | { |
90 | Categories cat( 0 ); | 90 | Categories cat( 0 ); |
91 | cat.load( categoryFileName() ); | 91 | cat.load( categoryFileName() ); |
92 | // we need to update the names for the mCat... to mCatList | 92 | // we need to update the names for the mCat... to mCatList |
93 | mCatList.clear(); | 93 | mCatList.clear(); |
94 | for (uint i = 0; i < mCat.count(); i++ ) | 94 | for (uint i = 0; i < mCat.count(); i++ ) |
95 | mCatList << cat.label("Document View", mCat[i] ); | 95 | mCatList << cat.label("Document View", mCat[i] ); |
96 | 96 | ||
97 | } | 97 | } |
98 | 98 | ||
99 | void setCatArrayDirty() | 99 | void setCatArrayDirty() |
100 | { | 100 | { |
101 | mCat.resize(0); | 101 | mCat.resize(0); |
102 | } | 102 | } |
103 | 103 | ||
104 | void ensureCatArray() | 104 | void ensureCatArray() |
105 | { | 105 | { |
106 | if ( mCat.count() > 0 || mCatList.count()==0 ) | 106 | if ( mCat.count() > 0 || mCatList.count()==0 ) |
107 | return; | 107 | return; |
108 | 108 | ||
109 | Categories cat( 0 ); | 109 | Categories cat( 0 ); |
110 | cat.load( categoryFileName() ); | 110 | cat.load( categoryFileName() ); |
111 | mCat.resize( mCatList.count() ); | 111 | mCat.resize( mCatList.count() ); |
112 | int i; | 112 | int i; |
113 | QStringList::ConstIterator it; | 113 | QStringList::ConstIterator it; |
114 | for ( i = 0, it = mCatList.begin(); it != mCatList.end(); | 114 | for ( i = 0, it = mCatList.begin(); it != mCatList.end(); |
115 | ++it, i++ ) { | 115 | ++it, i++ ) { |
116 | 116 | ||
117 | bool number; | 117 | bool number; |
118 | int id = (*it).toInt( &number ); | 118 | int id = (*it).toInt( &number ); |
119 | if ( !number ) { | 119 | if ( !number ) { |
120 | id = cat.id( "Document View", *it ); | 120 | id = cat.id( "Document View", *it ); |
121 | if ( id == 0 ) | 121 | if ( id == 0 ) |
122 | id = cat.addCategory( "Document View", *it ); | 122 | id = cat.addCategory( "Document View", *it ); |
123 | } | 123 | } |
124 | mCat[i] = id; | 124 | mCat[i] = id; |
125 | } | 125 | } |
126 | } | 126 | } |
127 | }; | 127 | }; |
128 | 128 | ||
129 | /*! | 129 | /*! |
130 | \class AppLnk applnk.h | 130 | \class AppLnk applnk.h |
131 | \brief The AppLnk class represents an application available on the system. | 131 | \brief The AppLnk class represents an application available on the system. |
132 | 132 | ||
133 | Every Qtopia application \e app has a corresponding \e app.desktop | 133 | Every Qtopia application \e app has a corresponding \e app.desktop |
134 | file. When one of these files is read its data is stored as an | 134 | file. When one of these files is read its data is stored as an |
135 | AppLnk object. | 135 | AppLnk object. |
136 | 136 | ||
137 | The AppLnk class introduces some Qtopia-specific concepts, and | 137 | The AppLnk class introduces some Qtopia-specific concepts, and |
138 | provides a variety of functions, as described in the following | 138 | provides a variety of functions, as described in the following |
139 | sections. | 139 | sections. |
140 | \tableofcontents | 140 | \tableofcontents |
141 | 141 | ||
142 | \target Types | 142 | \target Types |
143 | \section1 Types | 143 | \section1 Types |
144 | 144 | ||
145 | Every AppLnk object has a \e type. For applications, games and | 145 | Every AppLnk object has a \e type. For applications, games and |
146 | settings the type is \c Application; for documents the | 146 | settings the type is \c Application; for documents the |
147 | type is the document's MIME type. | 147 | type is the document's MIME type. |
148 | 148 | ||
149 | \target files-and-links | 149 | \target files-and-links |
150 | \section1 Files and Links | 150 | \section1 Files and Links |
151 | 151 | ||
152 | When you create an AppLnk (or more likely, a \link doclnk.html | 152 | When you create an AppLnk (or more likely, a \link doclnk.html |
153 | DocLnk\endlink), you don't deal directly with filenames in the | 153 | DocLnk\endlink), you don't deal directly with filenames in the |
154 | filesystem. Instead you do this: | 154 | filesystem. Instead you do this: |
155 | \code | 155 | \code |
156 | DocLnk d; | 156 | DocLnk d; |
157 | d.setType("text/plain"); | 157 | d.setType("text/plain"); |
158 | d.setName("My Nicely Named Document / Whatever"); // Yes, "/" is legal. | 158 | d.setName("My Nicely Named Document / Whatever"); // Yes, "/" is legal. |
159 | \endcode | 159 | \endcode |
160 | At this point, the file() and linkFile() are unknown. Normally | 160 | At this point, the file() and linkFile() are unknown. Normally |
161 | this is uninteresting, and the names become automatically known, | 161 | this is uninteresting, and the names become automatically known, |
162 | and more importantly, becomes reserved, when you ask what they are: | 162 | and more importantly, becomes reserved, when you ask what they are: |
163 | 163 | ||
164 | \code | 164 | \code |
165 | QString fn = d.file(); | 165 | QString fn = d.file(); |
166 | \endcode | 166 | \endcode |
167 | This invents a filename, and creates the file on disk (an empty | 167 | This invents a filename, and creates the file on disk (an empty |
168 | reservation file) to prevent the name being used by another | 168 | reservation file) to prevent the name being used by another |
169 | application. | 169 | application. |
170 | 170 | ||
171 | In some circumstances, you don't want to create the file if it | 171 | In some circumstances, you don't want to create the file if it |
172 | doesn't already exist (e.g. in the Document tab, some of the \link | 172 | doesn't already exist (e.g. in the Document tab, some of the \link |
173 | doclnk.html DocLnk\endlink objects represented by icons are | 173 | doclnk.html DocLnk\endlink objects represented by icons are |
174 | DocLnk's created just for that view - they don't have | 174 | DocLnk's created just for that view - they don't have |
175 | corresponding \c .desktop files. To avoid littering empty | 175 | corresponding \c .desktop files. To avoid littering empty |
176 | reservation files around, we check in a few places to see whether | 176 | reservation files around, we check in a few places to see whether |
177 | the file really needs to exist). | 177 | the file really needs to exist). |
178 | 178 | ||
179 | \section1 Functionality | 179 | \section1 Functionality |
180 | 180 | ||
181 | AppLnk objects are created by calling the constructor with the | 181 | AppLnk objects are created by calling the constructor with the |
182 | name of a \e .desktop file. The object can be checked for validity | 182 | name of a \e .desktop file. The object can be checked for validity |
183 | using isValid(). | 183 | using isValid(). |
184 | 184 | ||
185 | The following functions are used to set or retrieve information | 185 | The following functions are used to set or retrieve information |
186 | about the application: | 186 | about the application: |
187 | \table | 187 | \table |
188 | \header \i Get Function \i Set Function \i Short Description | 188 | \header \i Get Function \i Set Function \i Short Description |
189 | \row \i \l name() \i \l setName() \i application's name | 189 | \row \i \l name() \i \l setName() \i application's name |
190 | \row \i \l pixmap() \i \e none \i application's icon | 190 | \row \i \l pixmap() \i \e none \i application's icon |
191 | \row \i \l bigPixmap() \i \e none \i application's large icon | 191 | \row \i \l bigPixmap() \i \e none \i application's large icon |
192 | \row \i \e none \i setIcon() \i sets the icon's filename | 192 | \row \i \e none \i setIcon() \i sets the icon's filename |
193 | \row \i \l type() \i \l setType() \i see \link #Types Types\endlink above | 193 | \row \i \l type() \i \l setType() \i see \link #Types Types\endlink above |
194 | \row \i \l rotation() \i \e none \i 0, 90, 180 or 270 degrees | 194 | \row \i \l rotation() \i \e none \i 0, 90, 180 or 270 degrees |
195 | \row \i \l comment() \i \l setComment() \i text for the Details dialog | 195 | \row \i \l comment() \i \l setComment() \i text for the Details dialog |
196 | \row \i \l exec() \i \l setExec() \i executable's filename | 196 | \row \i \l exec() \i \l setExec() \i executable's filename |
197 | \row \i \l file() \i \e none \i document's filename | 197 | \row \i \l file() \i \e none \i document's filename |
198 | \row \i \l linkFile() \i \l setLinkFile() \i \e .desktop filename | 198 | \row \i \l linkFile() \i \l setLinkFile() \i \e .desktop filename |
199 | \row \i \l mimeTypes() \i \e none \i the mime types the application can view or edit | 199 | \row \i \l mimeTypes() \i \e none \i the mime types the application can view or edit |
200 | \row \i \l categories() \i \l setCategories() \i \e{see the function descriptions} | 200 | \row \i \l categories() \i \l setCategories() \i \e{see the function descriptions} |
201 | \row \i \l fileKnown() \i \e none \i see \link | 201 | \row \i \l fileKnown() \i \e none \i see \link |
202 | #files-and-links Files and Links\endlink above | 202 | #files-and-links Files and Links\endlink above |
203 | \row \i \l linkFileKnown() \i \e none \i see \link | 203 | \row \i \l linkFileKnown() \i \e none \i see \link |
204 | #files-and-links Files and Links\endlink above | 204 | #files-and-links Files and Links\endlink above |
205 | \row \i \l property() \i \l setProperty() \i any AppLnk property | 205 | \row \i \l property() \i \l setProperty() \i any AppLnk property |
206 | can be retrieved or set (if writeable) using these | 206 | can be retrieved or set (if writeable) using these |
207 | \endtable | 207 | \endtable |
208 | 208 | ||
209 | To save an AppLnk to disk use writeLink(). To execute the | 209 | To save an AppLnk to disk use writeLink(). To execute the |
210 | application that the AppLnk object refers to, use execute(). | 210 | application that the AppLnk object refers to, use execute(). |
211 | 211 | ||
212 | AppLnk's can be deleted from disk using removeLinkFile(). To | 212 | AppLnk's can be deleted from disk using removeLinkFile(). To |
213 | remove both the link and the application's executable use | 213 | remove both the link and the application's executable use |
214 | removeFiles(). | 214 | removeFiles(). |
215 | 215 | ||
216 | Icon sizes can be globally changed (but only for AppLnk objects | 216 | Icon sizes can be globally changed (but only for AppLnk objects |
217 | created after the calls) with setSmallIconSize() and | 217 | created after the calls) with setSmallIconSize() and |
218 | setBigIconSize(). | 218 | setBigIconSize(). |
219 | 219 | ||
220 | \ingroup qtopiaemb | 220 | \ingroup qtopiaemb |
221 | */ | 221 | */ |
222 | 222 | ||
223 | /*! | 223 | /*! |
224 | Sets the size used for small icons to \a small pixels. | 224 | Sets the size used for small icons to \a small pixels. |
225 | Only affects AppLnk objects created after the call. | 225 | Only affects AppLnk objects created after the call. |
226 | 226 | ||
227 | \sa smallIconSize() setIcon() | 227 | \sa smallIconSize() setIcon() |
228 | */ | 228 | */ |
229 | void AppLnk::setSmallIconSize(int small) | 229 | void AppLnk::setSmallIconSize(int small) |
230 | { | 230 | { |
231 | smallSize = small; | 231 | smallSize = small; |
232 | } | 232 | } |
233 | 233 | ||
234 | /*! | 234 | /*! |
235 | Returns the size used for small icons. | 235 | Returns the size used for small icons. |
236 | 236 | ||
237 | \sa setSmallIconSize() setIcon() | 237 | \sa setSmallIconSize() setIcon() |
238 | */ | 238 | */ |
239 | int AppLnk::smallIconSize() | 239 | int AppLnk::smallIconSize() |
240 | { | 240 | { |
241 | return smallSize; | 241 | return smallSize; |
242 | } | 242 | } |
243 | 243 | ||
244 | 244 | ||
245 | /*! | 245 | /*! |
246 | Sets the size used for large icons to \a big pixels. | 246 | Sets the size used for large icons to \a big pixels. |
247 | Only affects AppLnk objects created after the call. | 247 | Only affects AppLnk objects created after the call. |
248 | 248 | ||
249 | \sa bigIconSize() setIcon() | 249 | \sa bigIconSize() setIcon() |
250 | */ | 250 | */ |
251 | void AppLnk::setBigIconSize(int big) | 251 | void AppLnk::setBigIconSize(int big) |
252 | { | 252 | { |
253 | bigSize = big; | 253 | bigSize = big; |
254 | } | 254 | } |
255 | 255 | ||
256 | /*! | 256 | /*! |
257 | Returns the size used for large icons. | 257 | Returns the size used for large icons. |
258 | 258 | ||
259 | \sa setBigIconSize() setIcon() | 259 | \sa setBigIconSize() setIcon() |
260 | */ | 260 | */ |
261 | int AppLnk::bigIconSize() | 261 | int AppLnk::bigIconSize() |
262 | { | 262 | { |
263 | return bigSize; | 263 | return bigSize; |
264 | } | 264 | } |
265 | 265 | ||
266 | 266 | ||
267 | /*! | 267 | /*! |
268 | \fn QString AppLnk::name() const | 268 | \fn QString AppLnk::name() const |
269 | 269 | ||
270 | Returns the Name property. This is the user-visible name for the | 270 | Returns the Name property. This is the user-visible name for the |
271 | document or application, not the filename. | 271 | document or application, not the filename. |
272 | 272 | ||
273 | See \link #files-and-links Files and Links\endlink. | 273 | See \link #files-and-links Files and Links\endlink. |
274 | 274 | ||
275 | \sa setName() | 275 | \sa setName() |
276 | */ | 276 | */ |
277 | /*! | 277 | /*! |
278 | \fn QString AppLnk::exec() const | 278 | \fn QString AppLnk::exec() const |
279 | 279 | ||
280 | Returns the Exec property. This is the name of the executable | 280 | Returns the Exec property. This is the name of the executable |
281 | program associated with the AppLnk. | 281 | program associated with the AppLnk. |
282 | 282 | ||
283 | \sa setExec() | 283 | \sa setExec() |
284 | */ | 284 | */ |
285 | /*! | 285 | /*! |
286 | \fn QString AppLnk::rotation() const | 286 | \fn QString AppLnk::rotation() const |
287 | 287 | ||
288 | Returns the Rotation property. The value is 0, 90, 180 or 270 | 288 | Returns the Rotation property. The value is 0, 90, 180 or 270 |
289 | degrees. | 289 | degrees. |
290 | */ | 290 | */ |
291 | /*! | 291 | /*! |
292 | \fn QString AppLnk::comment() const | 292 | \fn QString AppLnk::comment() const |
293 | 293 | ||
294 | Returns the Comment property. | 294 | Returns the Comment property. |
295 | 295 | ||
296 | \sa setComment() | 296 | \sa setComment() |
297 | */ | 297 | */ |
298 | /*! | 298 | /*! |
299 | \fn QStringList AppLnk::mimeTypes() const | 299 | \fn QStringList AppLnk::mimeTypes() const |
300 | 300 | ||
301 | Returns the MimeTypes property. This is the list of MIME types | 301 | Returns the MimeTypes property. This is the list of MIME types |
302 | that the application can view or edit. | 302 | that the application can view or edit. |
303 | */ | 303 | */ |
304 | /*! | 304 | /*! |
305 | \fn const QArray<int>& AppLnk::categories() const | 305 | \fn const QArray<int>& AppLnk::categories() const |
306 | 306 | ||
307 | Returns the Categories property. | 307 | Returns the Categories property. |
308 | 308 | ||
309 | See the CategoryWidget for more details. | 309 | See the CategoryWidget for more details. |
310 | 310 | ||
311 | \sa setCategories() | 311 | \sa setCategories() |
312 | */ | 312 | */ |
313 | 313 | ||
314 | const QArray<int>& AppLnk::categories() const | 314 | const QArray<int>& AppLnk::categories() const |
315 | { | 315 | { |
316 | d->ensureCatArray(); | 316 | d->ensureCatArray(); |
317 | return d->mCat; | 317 | return d->mCat; |
318 | } | 318 | } |
319 | 319 | ||
320 | /*! | 320 | /*! |
321 | \fn int AppLnk::id() const | 321 | \fn int AppLnk::id() const |
322 | 322 | ||
323 | Returns the id of the AppLnk. If the AppLnk is not in an AppLnkSet, | 323 | Returns the id of the AppLnk. If the AppLnk is not in an AppLnkSet, |
324 | this value is 0, otherwise it is a value that is unique for the | 324 | this value is 0, otherwise it is a value that is unique for the |
325 | duration of the current process. | 325 | duration of the current process. |
326 | 326 | ||
327 | \sa AppLnkSet::find() | 327 | \sa AppLnkSet::find() |
328 | */ | 328 | */ |
329 | 329 | ||
330 | /*! | 330 | /*! |
331 | \fn bool AppLnk::isValid() const | 331 | \fn bool AppLnk::isValid() const |
332 | 332 | ||
333 | Returns TRUE if this AppLnk is valid; otherwise returns FALSE. | 333 | Returns TRUE if this AppLnk is valid; otherwise returns FALSE. |
334 | */ | 334 | */ |
335 | /*! | 335 | /*! |
336 | \fn bool AppLnk::fileKnown() const | 336 | \fn bool AppLnk::fileKnown() const |
337 | 337 | ||
338 | If the with the AppLnk associated file is not equal to QString::null | 338 | If the with the AppLnk associated file is not equal to QString::null |
339 | */ | 339 | */ |
340 | /*! | 340 | /*! |
341 | \fn bool AppLnk::linkFileKnown()const | 341 | \fn bool AppLnk::linkFileKnown()const |
342 | 342 | ||
343 | The filename of the AppLnk | 343 | The filename of the AppLnk |
344 | 344 | ||
345 | */ | 345 | */ |
346 | /*! | 346 | /*! |
347 | \fn void AppLnk::setRotation( const QString& ) | 347 | \fn void AppLnk::setRotation( const QString& ) |
348 | 348 | ||
349 | The default rotation of the associated application. This | 349 | The default rotation of the associated application. This |
350 | function is included inline for binary compatible issues | 350 | function is included inline for binary compatible issues |
351 | */ | 351 | */ |
352 | /*! | 352 | /*! |
353 | Creates an invalid AppLnk. | 353 | Creates an invalid AppLnk. |
354 | 354 | ||
355 | \sa isValid() | 355 | \sa isValid() |
356 | */ | 356 | */ |
357 | AppLnk::AppLnk() | 357 | AppLnk::AppLnk() |
358 | { | 358 | { |
359 | mId = 0; | 359 | mId = 0; |
360 | d = new AppLnkPrivate(); | 360 | d = new AppLnkPrivate(); |
361 | } | 361 | } |
362 | 362 | ||
363 | /*! | 363 | /*! |
364 | Loads \a file (e.g. \e app.desktop) as an AppLnk. | 364 | Loads \a file (e.g. \e app.desktop) as an AppLnk. |
365 | 365 | ||
366 | \sa writeLink() | 366 | \sa writeLink() |
367 | */ | 367 | */ |
368 | AppLnk::AppLnk( const QString &file ) | 368 | AppLnk::AppLnk( const QString &file ) |
369 | { | 369 | { |
370 | QStringList sl; | 370 | QStringList sl; |
371 | d = new AppLnkPrivate(); | 371 | d = new AppLnkPrivate(); |
372 | if ( !file.isNull() ) { | 372 | if ( !file.isNull() ) { |
373 | Config config( file, Config::File ); | 373 | Config config( file, Config::File ); |
374 | 374 | ||
375 | if ( config.isValid() ) { | 375 | if ( config.isValid() ) { |
376 | config.setGroup( "Desktop Entry" ); | 376 | config.setGroup( "Desktop Entry" ); |
377 | 377 | ||
378 | mName = config.readEntry( "Name", file ); | 378 | mName = config.readEntry( "Name", file ); |
379 | mExec = config.readEntry( "Exec" ); | 379 | mExec = config.readEntry( "Exec" ); |
380 | mType = config.readEntry( "Type", QString::null ); | 380 | mType = config.readEntry( "Type", QString::null ); |
381 | mIconFile = config.readEntry( "Icon", QString::null ); | 381 | mIconFile = config.readEntry( "Icon", QString::null ); |
382 | mRotation = config.readEntry( "Rotation", "" ); | 382 | mRotation = config.readEntry( "Rotation", "" ); |
383 | mComment = config.readEntry( "Comment", QString::null ); | 383 | mComment = config.readEntry( "Comment", QString::null ); |
384 | // MIME types are case-insensitive. | 384 | // MIME types are case-insensitive. |
385 | mMimeTypes = config.readListEntry( "MimeType", ';' ); | 385 | mMimeTypes = config.readListEntry( "MimeType", ';' ); |
386 | for (QStringList::Iterator it=mMimeTypes.begin(); it!=mMimeTypes.end(); ++it) | 386 | for (QStringList::Iterator it=mMimeTypes.begin(); it!=mMimeTypes.end(); ++it) |
387 | *it = (*it).lower(); | 387 | *it = (*it).lower(); |
388 | mMimeTypeIcons = config.readListEntry( "MimeTypeIcons", ';' ); | 388 | mMimeTypeIcons = config.readListEntry( "MimeTypeIcons", ';' ); |
389 | mLinkFile = file; | 389 | mLinkFile = file; |
390 | mFile = config.readEntry("File", QString::null); | 390 | mFile = config.readEntry("File", QString::null); |
391 | if ( !mExec. isEmpty ( )) { | 391 | if ( !mExec. isEmpty ( )) { |
392 | mFile = QString::null; | 392 | mFile = QString::null; |
393 | } | 393 | } |
394 | else if ( mFile[0] != '/' ) { | 394 | else if ( mFile[0] != '/' ) { |
395 | int slash = file.findRev('/'); | 395 | int slash = file.findRev('/'); |
396 | if ( slash >= 0 ) { | 396 | if ( slash >= 0 ) { |
397 | mFile = file.left(slash) + '/' + mFile; | 397 | mFile = file.left(slash) + '/' + mFile; |
398 | } | 398 | } |
399 | } | 399 | } |
400 | d->mCatList = config.readListEntry("Categories", ';'); | 400 | d->mCatList = config.readListEntry("Categories", ';'); |
401 | if ( d->mCatList[0].toInt() < -1 ) { | 401 | if ( d->mCatList[0].toInt() < -1 ) { |
402 | // numeric cats in file! convert to text | 402 | // numeric cats in file! convert to text |
403 | Categories cat( 0 ); | 403 | Categories cat( 0 ); |
404 | cat.load( categoryFileName() ); | 404 | cat.load( categoryFileName() ); |
405 | d->mCat.resize( d->mCatList.count() ); | 405 | d->mCat.resize( d->mCatList.count() ); |
406 | int i; | 406 | int i; |
407 | QStringList::ConstIterator it; | 407 | QStringList::ConstIterator it; |
408 | for ( i = 0, it = d->mCatList.begin(); it != d->mCatList.end(); | 408 | for ( i = 0, it = d->mCatList.begin(); it != d->mCatList.end(); |
409 | ++it, i++ ) { | 409 | ++it, i++ ) { |
410 | bool number; | 410 | bool number; |
411 | int id = (*it).toInt( &number ); | 411 | int id = (*it).toInt( &number ); |
412 | if ( !number ) { | 412 | if ( !number ) { |
413 | // convert from text | 413 | // convert from text |
414 | id = cat.id( "Document View", *it ); | 414 | id = cat.id( "Document View", *it ); |
415 | if ( id == 0 ) | 415 | if ( id == 0 ) |
416 | id = cat.addCategory( "Document View", *it ); | 416 | id = cat.addCategory( "Document View", *it ); |
417 | } | 417 | } |
418 | d->mCat[i] = id; | 418 | d->mCat[i] = id; |
419 | } | 419 | } |
420 | d->updateCatListFromArray(); | 420 | d->updateCatListFromArray(); |
421 | } | 421 | } |
422 | } | 422 | } |
423 | } | 423 | } |
424 | mId = 0; | 424 | mId = 0; |
425 | } | 425 | } |
426 | 426 | ||
427 | AppLnk& AppLnk::operator=(const AppLnk ©) | 427 | AppLnk& AppLnk::operator=(const AppLnk ©) |
428 | { | 428 | { |
429 | if ( this == © ) return *this; | 429 | if ( this == © ) return *this; |
430 | if ( mId ) | 430 | if ( mId ) |
431 | qWarning("Deleting AppLnk that is in an AppLnkSet"); | 431 | qWarning("Deleting AppLnk that is in an AppLnkSet"); |
432 | if ( d ) | 432 | if ( d ) |
433 | delete d; | 433 | delete d; |
434 | 434 | ||
435 | 435 | ||
436 | mName = copy.mName; | 436 | mName = copy.mName; |
437 | 437 | ||
438 | /* remove for Qtopia 3.0 -zecke */ | 438 | /* remove for Qtopia 3.0 -zecke */ |
439 | mPixmap = copy.mPixmap; | 439 | mPixmap = copy.mPixmap; |
440 | mBigPixmap = copy.mBigPixmap; | 440 | mBigPixmap = copy.mBigPixmap; |
441 | 441 | ||
442 | mExec = copy.mExec; | 442 | mExec = copy.mExec; |
443 | mType = copy.mType; | 443 | mType = copy.mType; |
444 | mRotation = copy.mRotation; | 444 | mRotation = copy.mRotation; |
445 | mComment = copy.mComment; | 445 | mComment = copy.mComment; |
446 | mFile = copy.mFile; | 446 | mFile = copy.mFile; |
447 | mLinkFile = copy.mLinkFile; | 447 | mLinkFile = copy.mLinkFile; |
448 | mIconFile = copy.mIconFile; | 448 | mIconFile = copy.mIconFile; |
449 | mMimeTypes = copy.mMimeTypes; | 449 | mMimeTypes = copy.mMimeTypes; |
450 | mMimeTypeIcons = copy.mMimeTypeIcons; | 450 | mMimeTypeIcons = copy.mMimeTypeIcons; |
451 | mId = 0; | 451 | mId = 0; |
452 | d = new AppLnkPrivate(); | 452 | d = new AppLnkPrivate(); |
453 | d->mCat = copy.d->mCat; | 453 | d->mCat = copy.d->mCat; |
454 | d->mCatList = copy.d->mCatList; | 454 | d->mCatList = copy.d->mCatList; |
455 | d->mPixmaps = copy.d->mPixmaps; | 455 | d->mPixmaps = copy.d->mPixmaps; |
456 | 456 | ||
457 | return *this; | 457 | return *this; |
458 | } | 458 | } |
459 | /*! | 459 | /*! |
460 | protected internally to share code | 460 | protected internally to share code |
461 | should I document that at all? | 461 | should I document that at all? |
462 | I don't know the TT style for that | 462 | I don't know the TT style for that |
463 | */ | 463 | */ |
464 | const QPixmap& AppLnk::pixmap( int pos, int size ) const { | 464 | const QPixmap& AppLnk::pixmap( int pos, int size ) const { |
465 | if ( d->mPixmaps[pos].isNull() ) { | 465 | if ( d->mPixmaps[pos].isNull() ) { |
466 | AppLnk* that = (AppLnk*)this; | 466 | AppLnk* that = (AppLnk*)this; |
467 | if ( mIconFile.isEmpty() ) { | 467 | if ( mIconFile.isEmpty() ) { |
468 | MimeType mt(type()); | 468 | MimeType mt(type()); |
469 | that->d->mPixmaps[pos] = mt.pixmap(); | 469 | that->d->mPixmaps[pos] = pos ? mt.bigPixmap() : mt.pixmap(); |
470 | if ( that->d->mPixmaps[pos].isNull() ) | 470 | if ( that->d->mPixmaps[pos].isNull() ) |
471 | that->d->mPixmaps[pos].convertFromImage( | 471 | that->d->mPixmaps[pos].convertFromImage( |
472 | Resource::loadImage("UnknownDocument") | 472 | Resource::loadImage("UnknownDocument") |
473 | .smoothScale( size, size ) ); | 473 | .smoothScale( size, size ) ); |
474 | return that->d->mPixmaps[pos]; | 474 | return that->d->mPixmaps[pos]; |
475 | } | 475 | } |
476 | QImage unscaledIcon = Resource::loadImage( that->mIconFile ); | 476 | QImage unscaledIcon = Resource::loadImage( that->mIconFile ); |
477 | if ( unscaledIcon.isNull() ) { | 477 | if ( unscaledIcon.isNull() ) { |
478 | // qDebug( "Cannot find icon: %s", that->mIconFile.latin1() ); | 478 | // qDebug( "Cannot find icon: %s", that->mIconFile.latin1() ); |
479 | that->d->mPixmaps[pos].convertFromImage( | 479 | that->d->mPixmaps[pos].convertFromImage( |
480 | Resource::loadImage("UnknownDocument") | 480 | Resource::loadImage("UnknownDocument") |
481 | .smoothScale( size, size ) ); | 481 | .smoothScale( size, size ) ); |
482 | } else { | 482 | } else { |
483 | that->d->mPixmaps[0].convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); | 483 | that->d->mPixmaps[0].convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); |
484 | that->d->mPixmaps[1].convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); | 484 | that->d->mPixmaps[1].convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); |
485 | } | 485 | } |
486 | return that->d->mPixmaps[pos]; | 486 | return that->d->mPixmaps[pos]; |
487 | } | 487 | } |
488 | return d->mPixmaps[pos]; | 488 | return d->mPixmaps[pos]; |
489 | } | 489 | } |
490 | 490 | ||
491 | /*! | 491 | /*! |
492 | Returns a small pixmap associated with the application. | 492 | Returns a small pixmap associated with the application. |
493 | 493 | ||
494 | \sa bigPixmap() setIcon() | 494 | \sa bigPixmap() setIcon() |
495 | */ | 495 | */ |
496 | const QPixmap& AppLnk::pixmap() const | 496 | const QPixmap& AppLnk::pixmap() const |
497 | { | 497 | { |
498 | if ( d->mPixmaps[0].isNull() ) { | 498 | if ( d->mPixmaps[0].isNull() ) { |
499 | return pixmap(AppLnkPrivate::Normal, smallSize ); | 499 | return pixmap(AppLnkPrivate::Normal, smallSize ); |
500 | } | 500 | } |
501 | return d->mPixmaps[0]; | 501 | return d->mPixmaps[0]; |
502 | } | 502 | } |
503 | 503 | ||
504 | /*! | 504 | /*! |
505 | Returns a large pixmap associated with the application. | 505 | Returns a large pixmap associated with the application. |
506 | 506 | ||
507 | \sa pixmap() setIcon() | 507 | \sa pixmap() setIcon() |
508 | */ | 508 | */ |
509 | const QPixmap& AppLnk::bigPixmap() const | 509 | const QPixmap& AppLnk::bigPixmap() const |
510 | { | 510 | { |
511 | if ( d->mPixmaps[1].isNull() ) { | 511 | if ( d->mPixmaps[1].isNull() ) { |
512 | return pixmap( AppLnkPrivate::Big, bigSize ); | 512 | return pixmap( AppLnkPrivate::Big, bigSize ); |
513 | } | 513 | } |
514 | return d->mPixmaps[1]; | 514 | return d->mPixmaps[1]; |
515 | } | 515 | } |
516 | 516 | ||
517 | /*! | 517 | /*! |
518 | Returns the type of the AppLnk. For applications, games and | 518 | Returns the type of the AppLnk. For applications, games and |
519 | settings the type is \c Application; for documents the type is the | 519 | settings the type is \c Application; for documents the type is the |
520 | document's MIME type. | 520 | document's MIME type. |
521 | */ | 521 | */ |
522 | QString AppLnk::type() const | 522 | QString AppLnk::type() const |
523 | { | 523 | { |
524 | if ( mType.isNull() ) { | 524 | if ( mType.isNull() ) { |
525 | AppLnk* that = (AppLnk*)this; | 525 | AppLnk* that = (AppLnk*)this; |
526 | QString f = file(); | 526 | QString f = file(); |
527 | if ( !f.isNull() ) { | 527 | if ( !f.isNull() ) { |
528 | MimeType mt(f); | 528 | MimeType mt(f); |
529 | that->mType = mt.id(); | 529 | that->mType = mt.id(); |
530 | return that->mType; | 530 | return that->mType; |
531 | } | 531 | } |
532 | } | 532 | } |
533 | return mType; | 533 | return mType; |
534 | } | 534 | } |
535 | 535 | ||
536 | /*! | 536 | /*! |
537 | Returns the file associated with the AppLnk. | 537 | Returns the file associated with the AppLnk. |
538 | 538 | ||
539 | \sa exec() name() | 539 | \sa exec() name() |
540 | */ | 540 | */ |
541 | QString AppLnk::file() const | 541 | QString AppLnk::file() const |
542 | { | 542 | { |
543 | if ( mExec.isEmpty ( ) && mFile.isNull() ) { | 543 | if ( mExec.isEmpty ( ) && mFile.isNull() ) { |
544 | AppLnk* that = (AppLnk*)this; | 544 | AppLnk* that = (AppLnk*)this; |
545 | QString ext = MimeType(mType).extension(); | 545 | QString ext = MimeType(mType).extension(); |
546 | if ( !ext.isEmpty() ) | 546 | if ( !ext.isEmpty() ) |
547 | ext = "." + ext; | 547 | ext = "." + ext; |
548 | if ( !mLinkFile.isEmpty() ) { | 548 | if ( !mLinkFile.isEmpty() ) { |
549 | that->mFile = | 549 | that->mFile = |
550 | mLinkFile.right(8)==".desktop" // 8 = strlen(".desktop") | 550 | mLinkFile.right(8)==".desktop" // 8 = strlen(".desktop") |
551 | ? mLinkFile.left(mLinkFile.length()-8) : mLinkFile; | 551 | ? mLinkFile.left(mLinkFile.length()-8) : mLinkFile; |
552 | qDebug("mFile now == %s", mFile.latin1()); | 552 | qDebug("mFile now == %s", mFile.latin1()); |
553 | } else if ( mType.contains('/') ) { | 553 | } else if ( mType.contains('/') ) { |
554 | that->mFile = | 554 | that->mFile = |
555 | QString(getenv("HOME"))+"/Documents/"+mType+"/"+safeFileName(that->mName); | 555 | QString(getenv("HOME"))+"/Documents/"+mType+"/"+safeFileName(that->mName); |
556 | /* | 556 | /* |
557 | * A file with the same name or a .desktop file already exists | 557 | * A file with the same name or a .desktop file already exists |
558 | */ | 558 | */ |
559 | if ( QFile::exists(that->mFile+ext) || QFile::exists(that->mFile+".desktop") ) { | 559 | if ( QFile::exists(that->mFile+ext) || QFile::exists(that->mFile+".desktop") ) { |
560 | int n=1; | 560 | int n=1; |
561 | QString nn; | 561 | QString nn; |
562 | while (QFile::exists((nn=(that->mFile+"_"+QString::number(n)))+ext) | 562 | while (QFile::exists((nn=(that->mFile+"_"+QString::number(n)))+ext) |
563 | || QFile::exists(nn+".desktop")) | 563 | || QFile::exists(nn+".desktop")) |
564 | n++; | 564 | n++; |
565 | that->mFile = nn; | 565 | that->mFile = nn; |
566 | } | 566 | } |
567 | that->mLinkFile = that->mFile+".desktop"; | 567 | that->mLinkFile = that->mFile+".desktop"; |
568 | that->mFile += ext; | 568 | that->mFile += ext; |
569 | } | 569 | } |
570 | prepareDirectories(that->mFile); | 570 | prepareDirectories(that->mFile); |
571 | if ( !that->mFile.isEmpty() ) { | 571 | if ( !that->mFile.isEmpty() ) { |
572 | QFile f(that->mFile); | 572 | QFile f(that->mFile); |
573 | if ( !f.open(IO_WriteOnly) ) | 573 | if ( !f.open(IO_WriteOnly) ) |
574 | that->mFile = QString::null; | 574 | that->mFile = QString::null; |
575 | return that->mFile; | 575 | return that->mFile; |
576 | } | 576 | } |
577 | } | 577 | } |
578 | return mFile; | 578 | return mFile; |
579 | } | 579 | } |
580 | 580 | ||
581 | /*! | 581 | /*! |
582 | Returns the desktop file corresponding to this AppLnk. | 582 | Returns the desktop file corresponding to this AppLnk. |
583 | 583 | ||
584 | \sa file() exec() name() | 584 | \sa file() exec() name() |
585 | */ | 585 | */ |
586 | QString AppLnk::linkFile() const | 586 | QString AppLnk::linkFile() const |
587 | { | 587 | { |
588 | if ( mLinkFile.isNull() ) { | 588 | if ( mLinkFile.isNull() ) { |
589 | AppLnk* that = (AppLnk*)this; | 589 | AppLnk* that = (AppLnk*)this; |
590 | if ( type().contains('/') ) { | 590 | if ( type().contains('/') ) { |
591 | StorageInfo storage; | 591 | StorageInfo storage; |
592 | const FileSystem *fs = storage.fileSystemOf( that->mFile ); | 592 | const FileSystem *fs = storage.fileSystemOf( that->mFile ); |
593 | /* tmpfs + and ramfs are available too but not removable | 593 | /* tmpfs + and ramfs are available too but not removable |
594 | * either we fix storage or add this | 594 | * either we fix storage or add this |
595 | */ | 595 | */ |
596 | if ( fs && ( fs->isRemovable() || fs->disk() == "/dev/mtdblock6" || fs->disk() == "tmpfs") ) { | 596 | if ( fs && ( fs->isRemovable() || fs->disk() == "/dev/mtdblock6" || fs->disk() == "tmpfs") ) { |
597 | that->mLinkFile = fs->path(); | 597 | that->mLinkFile = fs->path(); |
598 | } else | 598 | } else |
599 | that->mLinkFile = getenv( "HOME" ); | 599 | that->mLinkFile = getenv( "HOME" ); |
600 | that->mLinkFile += "/Documents/"+type()+"/"+safeFileName(that->mName); | 600 | that->mLinkFile += "/Documents/"+type()+"/"+safeFileName(that->mName); |
601 | 601 | ||
602 | /* the desktop file exists make sure we don't point to the same file */ | 602 | /* the desktop file exists make sure we don't point to the same file */ |
603 | if ( QFile::exists(that->mLinkFile+".desktop") ) { | 603 | if ( QFile::exists(that->mLinkFile+".desktop") ) { |
604 | AppLnk lnk( that->mLinkFile + ".desktop" ); | 604 | AppLnk lnk( that->mLinkFile + ".desktop" ); |
605 | 605 | ||
606 | /* the linked is different */ | 606 | /* the linked is different */ |
607 | if(that->file() != lnk.file() ) { | 607 | if(that->file() != lnk.file() ) { |
608 | int n = 1; | 608 | int n = 1; |
609 | QString nn; | 609 | QString nn; |
610 | while (QFile::exists((nn=that->mLinkFile+"_"+QString::number(n))+".desktop")) { | 610 | while (QFile::exists((nn=that->mLinkFile+"_"+QString::number(n))+".desktop")) { |
611 | n++; | 611 | n++; |
612 | /* just to be sure */ | 612 | /* just to be sure */ |
613 | AppLnk lnk(nn ); | 613 | AppLnk lnk(nn ); |
614 | if (lnk.file() == that->file() ) | 614 | if (lnk.file() == that->file() ) |
615 | break; | 615 | break; |
616 | } | 616 | } |
617 | that->mLinkFile = nn; | 617 | that->mLinkFile = nn; |
618 | } | 618 | } |
619 | } | 619 | } |
620 | that->mLinkFile += ".desktop"; | 620 | that->mLinkFile += ".desktop"; |
621 | storeLink(); | 621 | storeLink(); |
622 | } | 622 | } |
623 | return that->mLinkFile; | 623 | return that->mLinkFile; |
624 | } | 624 | } |
625 | return mLinkFile; | 625 | return mLinkFile; |
626 | } | 626 | } |
627 | 627 | ||
628 | /*! | 628 | /*! |
629 | Copies \a copy. | 629 | Copies \a copy. |
630 | */ | 630 | */ |
631 | AppLnk::AppLnk( const AppLnk © ) | 631 | AppLnk::AppLnk( const AppLnk © ) |
632 | { | 632 | { |
633 | mName = copy.mName; | 633 | mName = copy.mName; |
634 | mPixmap = copy.mPixmap; | 634 | mPixmap = copy.mPixmap; |
635 | mBigPixmap = copy.mBigPixmap; | 635 | mBigPixmap = copy.mBigPixmap; |
636 | mExec = copy.mExec; | 636 | mExec = copy.mExec; |
637 | mType = copy.mType; | 637 | mType = copy.mType; |
638 | mRotation = copy.mRotation; | 638 | mRotation = copy.mRotation; |
639 | mComment = copy.mComment; | 639 | mComment = copy.mComment; |
640 | mFile = copy.mFile; | 640 | mFile = copy.mFile; |
641 | mLinkFile = copy.mLinkFile; | 641 | mLinkFile = copy.mLinkFile; |
642 | mIconFile = copy.mIconFile; | 642 | mIconFile = copy.mIconFile; |
643 | mMimeTypes = copy.mMimeTypes; | 643 | mMimeTypes = copy.mMimeTypes; |
644 | mMimeTypeIcons = copy.mMimeTypeIcons; | 644 | mMimeTypeIcons = copy.mMimeTypeIcons; |
645 | mId = 0; | 645 | mId = 0; |
646 | d = new AppLnkPrivate(); | 646 | d = new AppLnkPrivate(); |
647 | d->mCat = copy.d->mCat; | 647 | d->mCat = copy.d->mCat; |
648 | d->mCatList = copy.d->mCatList; | 648 | d->mCatList = copy.d->mCatList; |
649 | d->mPixmaps = copy.d->mPixmaps; | 649 | d->mPixmaps = copy.d->mPixmaps; |
650 | } | 650 | } |
651 | 651 | ||
652 | /*! | 652 | /*! |
653 | Destroys the AppLnk. Note that if the AppLnk is currently a member | 653 | Destroys the AppLnk. Note that if the AppLnk is currently a member |
654 | of an AppLnkSet, this will produce a run-time warning. | 654 | of an AppLnkSet, this will produce a run-time warning. |
655 | 655 | ||
656 | \sa AppLnkSet::add() AppLnkSet::remove() | 656 | \sa AppLnkSet::add() AppLnkSet::remove() |
657 | */ | 657 | */ |
658 | AppLnk::~AppLnk() | 658 | AppLnk::~AppLnk() |
659 | { | 659 | { |
660 | if ( mId ) | 660 | if ( mId ) |
661 | qWarning("Deleting AppLnk that is in an AppLnkSet"); | 661 | qWarning("Deleting AppLnk that is in an AppLnkSet"); |
662 | if ( d ) | 662 | if ( d ) |
663 | delete d; | 663 | delete d; |
664 | } | 664 | } |
665 | 665 | ||
666 | /*! | 666 | /*! |
667 | \overload | 667 | \overload |
668 | Executes the application associated with this AppLnk. | 668 | Executes the application associated with this AppLnk. |
669 | 669 | ||
670 | \sa exec() | 670 | \sa exec() |
671 | */ | 671 | */ |
672 | void AppLnk::execute() const | 672 | void AppLnk::execute() const |
673 | { | 673 | { |
674 | execute(QStringList()); | 674 | execute(QStringList()); |
675 | } | 675 | } |
676 | 676 | ||
677 | /*! | 677 | /*! |
678 | Executes the application associated with this AppLnk, with | 678 | Executes the application associated with this AppLnk, with |
679 | \a args as arguments. | 679 | \a args as arguments. |
680 | 680 | ||
681 | \sa exec() | 681 | \sa exec() |
682 | */ | 682 | */ |
683 | void AppLnk::execute(const QStringList& args) const | 683 | void AppLnk::execute(const QStringList& args) const |
684 | { | 684 | { |
685 | #ifdef Q_WS_QWS | 685 | #ifdef Q_WS_QWS |
686 | if ( !mRotation.isEmpty() ) { | 686 | if ( !mRotation.isEmpty() ) { |
687 | // ######## this will only work in the server | 687 | // ######## this will only work in the server |
688 | int rot = QPEApplication::defaultRotation(); | 688 | int rot = QPEApplication::defaultRotation(); |
689 | rot = (rot+mRotation.toInt())%360; | 689 | rot = (rot+mRotation.toInt())%360; |
690 | QCString old = getenv("QWS_DISPLAY"); | 690 | QCString old = getenv("QWS_DISPLAY"); |
691 | setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(rot), 1); | 691 | setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(rot), 1); |
692 | invoke(args); | 692 | invoke(args); |
693 | setenv("QWS_DISPLAY", old.data(), 1); | 693 | setenv("QWS_DISPLAY", old.data(), 1); |
694 | } else | 694 | } else |
695 | #endif | 695 | #endif |
696 | invoke(args); | 696 | invoke(args); |
697 | } | 697 | } |
698 | 698 | ||
699 | /*! | 699 | /*! |
700 | Invokes the application associated with this AppLnk, with | 700 | Invokes the application associated with this AppLnk, with |
701 | \a args as arguments. Rotation is not taken into account by | 701 | \a args as arguments. Rotation is not taken into account by |
702 | this function, so you should not call it directly. | 702 | this function, so you should not call it directly. |
703 | 703 | ||
704 | \sa execute() | 704 | \sa execute() |
705 | */ | 705 | */ |
706 | void AppLnk::invoke(const QStringList& args) const | 706 | void AppLnk::invoke(const QStringList& args) const |
707 | { | 707 | { |
708 | Global::execute( exec(), args[0] ); | 708 | Global::execute( exec(), args[0] ); |
709 | } | 709 | } |
710 | 710 | ||
711 | /*! | 711 | /*! |
712 | Sets the Exec property to \a exec. | 712 | Sets the Exec property to \a exec. |
713 | 713 | ||
714 | \sa exec() name() | 714 | \sa exec() name() |
715 | */ | 715 | */ |
716 | void AppLnk::setExec( const QString& exec ) | 716 | void AppLnk::setExec( const QString& exec ) |
717 | { | 717 | { |
718 | mExec = exec; | 718 | mExec = exec; |
719 | } | 719 | } |
720 | 720 | ||
721 | #if 0 // this was inlined for better BC | 721 | #if 0 // this was inlined for better BC |
722 | /*! | 722 | /*! |
723 | Sets the Rotation property to \a rot. | 723 | Sets the Rotation property to \a rot. |
724 | 724 | ||
725 | \sa rotation() | 725 | \sa rotation() |
726 | */ | 726 | */ |
727 | void AppLnk::setRotation ( const QString &rot ) | 727 | void AppLnk::setRotation ( const QString &rot ) |
728 | { | 728 | { |
729 | mRotation = rot; | 729 | mRotation = rot; |
730 | } | 730 | } |
731 | #endif | 731 | #endif |
732 | 732 | ||
733 | /*! | 733 | /*! |
734 | Sets the Name property to \a docname. | 734 | Sets the Name property to \a docname. |
735 | 735 | ||
736 | \sa name() | 736 | \sa name() |
737 | */ | 737 | */ |
738 | void AppLnk::setName( const QString& docname ) | 738 | void AppLnk::setName( const QString& docname ) |
739 | { | 739 | { |
740 | mName = docname; | 740 | mName = docname; |
741 | } | 741 | } |
742 | 742 | ||
743 | /*! | 743 | /*! |
744 | Sets the File property to \a filename. | 744 | Sets the File property to \a filename. |
745 | 745 | ||
746 | \sa file() name() | 746 | \sa file() name() |
747 | */ | 747 | */ |
748 | void AppLnk::setFile( const QString& filename ) | 748 | void AppLnk::setFile( const QString& filename ) |
749 | { | 749 | { |
750 | mFile = filename; | 750 | mFile = filename; |
751 | } | 751 | } |
752 | 752 | ||
753 | /*! | 753 | /*! |
754 | Sets the LinkFile property to \a filename. | 754 | Sets the LinkFile property to \a filename. |
755 | 755 | ||
756 | \sa linkFile() | 756 | \sa linkFile() |
757 | */ | 757 | */ |
758 | void AppLnk::setLinkFile( const QString& filename ) | 758 | void AppLnk::setLinkFile( const QString& filename ) |
759 | { | 759 | { |
760 | mLinkFile = filename; | 760 | mLinkFile = filename; |
761 | } | 761 | } |
762 | 762 | ||
763 | /*! | 763 | /*! |
764 | Sets the Comment property to \a comment. | 764 | Sets the Comment property to \a comment. |
765 | 765 | ||
766 | This text is displayed in the 'Details Dialog', for example if the | 766 | This text is displayed in the 'Details Dialog', for example if the |
767 | user uses the 'press-and-hold' gesture. | 767 | user uses the 'press-and-hold' gesture. |
768 | 768 | ||
769 | \sa comment() | 769 | \sa comment() |
770 | */ | 770 | */ |
771 | void AppLnk::setComment( const QString& comment ) | 771 | void AppLnk::setComment( const QString& comment ) |
772 | { | 772 | { |
773 | mComment = comment; | 773 | mComment = comment; |
774 | } | 774 | } |
775 | 775 | ||
776 | /*! | 776 | /*! |
777 | Sets the Type property to \a type. | 777 | Sets the Type property to \a type. |
778 | 778 | ||
779 | For applications, games and settings the type should be \c | 779 | For applications, games and settings the type should be \c |
780 | Application; for documents the type should be the document's MIME | 780 | Application; for documents the type should be the document's MIME |
781 | type. | 781 | type. |
782 | 782 | ||
783 | \sa type() | 783 | \sa type() |
784 | */ | 784 | */ |
785 | void AppLnk::setType( const QString& type ) | 785 | void AppLnk::setType( const QString& type ) |
786 | { | 786 | { |
787 | mType = type; | 787 | mType = type; |
788 | } | 788 | } |
789 | 789 | ||
790 | /*! | 790 | /*! |
791 | \fn QString AppLnk::icon() const | 791 | \fn QString AppLnk::icon() const |
792 | 792 | ||
793 | Returns the Icon property. | 793 | Returns the Icon property. |
794 | 794 | ||
795 | \sa setIcon() | 795 | \sa setIcon() |
796 | */ | 796 | */ |
797 | 797 | ||
798 | /*! | 798 | /*! |
799 | Sets the Icon property to \a iconname. This is the filename from | 799 | Sets the Icon property to \a iconname. This is the filename from |
800 | which the pixmap() and bigPixmap() are obtained. | 800 | which the pixmap() and bigPixmap() are obtained. |
801 | 801 | ||
802 | \sa icon() setSmallIconSize() setBigIconSize() | 802 | \sa icon() setSmallIconSize() setBigIconSize() |
803 | */ | 803 | */ |
804 | void AppLnk::setIcon( const QString& iconname ) | 804 | void AppLnk::setIcon( const QString& iconname ) |
805 | { | 805 | { |
806 | mIconFile = iconname; | 806 | mIconFile = iconname; |
807 | QImage unscaledIcon = Resource::loadImage( mIconFile ); | 807 | QImage unscaledIcon = Resource::loadImage( mIconFile ); |
808 | d->mPixmaps[0].convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); | 808 | d->mPixmaps[0].convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); |
809 | d->mPixmaps[1].convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); | 809 | d->mPixmaps[1].convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); |
810 | } | 810 | } |
811 | 811 | ||
812 | /*! | 812 | /*! |
813 | Sets the Categories property to \a c. | 813 | Sets the Categories property to \a c. |
814 | 814 | ||
815 | See the CategoryWidget for more details. | 815 | See the CategoryWidget for more details. |
816 | 816 | ||
817 | \sa categories() | 817 | \sa categories() |
818 | */ | 818 | */ |
819 | void AppLnk::setCategories( const QArray<int>& c ) | 819 | void AppLnk::setCategories( const QArray<int>& c ) |
820 | { | 820 | { |
821 | d->mCat = c; | 821 | d->mCat = c; |
822 | d->updateCatListFromArray(); | 822 | d->updateCatListFromArray(); |
823 | } | 823 | } |
824 | 824 | ||
825 | /*! | 825 | /*! |
826 | \fn QStringList AppLnk::mimeTypeIcons() const | 826 | \fn QStringList AppLnk::mimeTypeIcons() const |
827 | 827 | ||
828 | Returns the MimeTypeIcons property of the AppLnk. | 828 | Returns the MimeTypeIcons property of the AppLnk. |
829 | */ | 829 | */ |
830 | 830 | ||
831 | /*! | 831 | /*! |
832 | Attempts to ensure that the link file for this AppLnk exists, | 832 | Attempts to ensure that the link file for this AppLnk exists, |
833 | including creating any required directories. Returns TRUE if | 833 | including creating any required directories. Returns TRUE if |
834 | successful; otherwise returns FALSE. | 834 | successful; otherwise returns FALSE. |
835 | 835 | ||
836 | You should not need to use this function. | 836 | You should not need to use this function. |
837 | */ | 837 | */ |
838 | bool AppLnk::ensureLinkExists() const | 838 | bool AppLnk::ensureLinkExists() const |
839 | { | 839 | { |
840 | QString lf = linkFile(); | 840 | QString lf = linkFile(); |
841 | return prepareDirectories(lf); | 841 | return prepareDirectories(lf); |
842 | } | 842 | } |
843 | 843 | ||
844 | /*! | 844 | /*! |
845 | Commits the AppLnk to disk. Returns TRUE if the operation succeeded; | 845 | Commits the AppLnk to disk. Returns TRUE if the operation succeeded; |
846 | otherwise returns FALSE. | 846 | otherwise returns FALSE. |
847 | 847 | ||
848 | In addition, the "linkChanged(QString)" message is sent to the | 848 | In addition, the "linkChanged(QString)" message is sent to the |
849 | "QPE/System" \link qcop.html QCop\endlink channel. | 849 | "QPE/System" \link qcop.html QCop\endlink channel. |
850 | */ | 850 | */ |
851 | bool AppLnk::writeLink() const | 851 | bool AppLnk::writeLink() const |
852 | { | 852 | { |
853 | // Only re-writes settable parts | 853 | // Only re-writes settable parts |
854 | QString lf = linkFile(); | 854 | QString lf = linkFile(); |
855 | if ( !ensureLinkExists() ) | 855 | if ( !ensureLinkExists() ) |
856 | return FALSE; | 856 | return FALSE; |
857 | storeLink(); | 857 | storeLink(); |
858 | return TRUE; | 858 | return TRUE; |
859 | } | 859 | } |
860 | 860 | ||
861 | /*! | 861 | /*! |
862 | \internal | 862 | \internal |
863 | */ | 863 | */ |
864 | void AppLnk::storeLink() const | 864 | void AppLnk::storeLink() const |
865 | { | 865 | { |
866 | Config config( mLinkFile, Config::File ); | 866 | Config config( mLinkFile, Config::File ); |
867 | config.setGroup("Desktop Entry"); | 867 | config.setGroup("Desktop Entry"); |
868 | config.writeEntry("Name",mName); | 868 | config.writeEntry("Name",mName); |
869 | if ( !mIconFile.isNull() ) config.writeEntry("Icon",mIconFile); | 869 | if ( !mIconFile.isNull() ) config.writeEntry("Icon",mIconFile); |
870 | config.writeEntry("Type",type()); | 870 | config.writeEntry("Type",type()); |
871 | if(!rotation().isEmpty()) | 871 | if(!rotation().isEmpty()) |
872 | config.writeEntry("Rotation",rotation()); | 872 | config.writeEntry("Rotation",rotation()); |
873 | else | 873 | else |
874 | config.removeEntry("Rotation"); | 874 | config.removeEntry("Rotation"); |
875 | if ( !mComment.isNull() ) config.writeEntry("Comment",mComment); | 875 | if ( !mComment.isNull() ) config.writeEntry("Comment",mComment); |
876 | QString f = file(); | 876 | QString f = file(); |
877 | int i = 0; | 877 | int i = 0; |
878 | while ( i < (int)f.length() && i < (int)mLinkFile.length() && f[i] == mLinkFile[i] ) | 878 | while ( i < (int)f.length() && i < (int)mLinkFile.length() && f[i] == mLinkFile[i] ) |
879 | i++; | 879 | i++; |
880 | while ( i && f[i] != '/' ) | 880 | while ( i && f[i] != '/' ) |
881 | i--; | 881 | i--; |
882 | // simple case where in the same directory | 882 | // simple case where in the same directory |
883 | if ( mLinkFile.find( '/', i + 1 ) < 0 ) | 883 | if ( mLinkFile.find( '/', i + 1 ) < 0 ) |
884 | f = f.mid(i+1); | 884 | f = f.mid(i+1); |
885 | // ### could do relative ie ../../otherDocs/file.doc | 885 | // ### could do relative ie ../../otherDocs/file.doc |
886 | config.writeEntry("File",f); | 886 | config.writeEntry("File",f); |
887 | config.writeEntry( "Categories", d->mCatList, ';' ); | 887 | config.writeEntry( "Categories", d->mCatList, ';' ); |
888 | 888 | ||
889 | #ifndef QT_NO_COP | 889 | #ifndef QT_NO_COP |
890 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); | 890 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); |
891 | e << mLinkFile; | 891 | e << mLinkFile; |
892 | #endif | 892 | #endif |
893 | } | 893 | } |
894 | 894 | ||
895 | /*! | 895 | /*! |
896 | Sets the property named \a key to \a value. | 896 | Sets the property named \a key to \a value. |
897 | 897 | ||
898 | \sa property() | 898 | \sa property() |
899 | */ | 899 | */ |
900 | void AppLnk::setProperty(const QString& key, const QString& value) | 900 | void AppLnk::setProperty(const QString& key, const QString& value) |
901 | { | 901 | { |
902 | if ( ensureLinkExists() ) { | 902 | if ( ensureLinkExists() ) { |
903 | Config cfg(linkFile(), Config::File); | 903 | Config cfg(linkFile(), Config::File); |
904 | cfg.writeEntry(key,value); | 904 | cfg.writeEntry(key,value); |
905 | } | 905 | } |
906 | } | 906 | } |
907 | 907 | ||
908 | /*! | 908 | /*! |
909 | Returns the property named \a key. | 909 | Returns the property named \a key. |
910 | 910 | ||
911 | \sa setProperty() | 911 | \sa setProperty() |
912 | */ | 912 | */ |
913 | QString AppLnk::property(const QString& key) const | 913 | QString AppLnk::property(const QString& key) const |
914 | { | 914 | { |
915 | QString lf = linkFile(); | 915 | QString lf = linkFile(); |
916 | if ( !QFile::exists(lf) ) | 916 | if ( !QFile::exists(lf) ) |
917 | return QString::null; | 917 | return QString::null; |
918 | Config cfg(lf, Config::File); | 918 | Config cfg(lf, Config::File); |
919 | return cfg.readEntry(key); | 919 | return cfg.readEntry(key); |
920 | } | 920 | } |
921 | 921 | ||
922 | bool AppLnk::isPreloaded() const { | 922 | bool AppLnk::isPreloaded() const { |
923 | // Preload information is stored in the Launcher config in v1.5. | 923 | // Preload information is stored in the Launcher config in v1.5. |
924 | Config cfg("Launcher"); | 924 | Config cfg("Launcher"); |
925 | cfg.setGroup("Preload"); | 925 | cfg.setGroup("Preload"); |
926 | QStringList apps = cfg.readListEntry("Apps",','); | 926 | QStringList apps = cfg.readListEntry("Apps",','); |
927 | if (apps.contains(exec())) | 927 | if (apps.contains(exec())) |
928 | return true; | 928 | return true; |
929 | return false; | 929 | return false; |
930 | } | 930 | } |
931 | 931 | ||
932 | void AppLnk::setPreloaded(bool yesNo) { | 932 | void AppLnk::setPreloaded(bool yesNo) { |
933 | // Preload information is stored in the Launcher config in v1.5. | 933 | // Preload information is stored in the Launcher config in v1.5. |
934 | Config cfg("Launcher"); | 934 | Config cfg("Launcher"); |
935 | cfg.setGroup("Preload"); | 935 | cfg.setGroup("Preload"); |
936 | QStringList apps = cfg.readListEntry("Apps", ','); | 936 | QStringList apps = cfg.readListEntry("Apps", ','); |
937 | if (apps.contains(exec()) && !yesNo) | 937 | if (apps.contains(exec()) && !yesNo) |
938 | apps.remove(exec()); | 938 | apps.remove(exec()); |
939 | else if (yesNo && !apps.contains(exec())) | 939 | else if (yesNo && !apps.contains(exec())) |
940 | apps.append(exec()); | 940 | apps.append(exec()); |
941 | cfg.writeEntry("Apps", apps, ','); | 941 | cfg.writeEntry("Apps", apps, ','); |
942 | } | 942 | } |
943 | 943 | ||
944 | 944 | ||
945 | /*! | 945 | /*! |
946 | Deletes both the linkFile() and the file() associated with this AppLnk. | 946 | Deletes both the linkFile() and the file() associated with this AppLnk. |
947 | 947 | ||
948 | \sa removeLinkFile() | 948 | \sa removeLinkFile() |
949 | */ | 949 | */ |
950 | void AppLnk::removeFiles() | 950 | void AppLnk::removeFiles() |
951 | { | 951 | { |
952 | bool valid = isValid(); | 952 | bool valid = isValid(); |
953 | if ( !valid || !linkFileKnown() || QFile::remove(linkFile()) ) { | 953 | if ( !valid || !linkFileKnown() || QFile::remove(linkFile()) ) { |
954 | if ( QFile::remove(file()) ) { | 954 | if ( QFile::remove(file()) ) { |
955 | #ifndef QT_NO_COP | 955 | #ifndef QT_NO_COP |
956 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); | 956 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); |
957 | if ( linkFileKnown() ) | 957 | if ( linkFileKnown() ) |
958 | e << linkFile(); | 958 | e << linkFile(); |
959 | else | 959 | else |
960 | e << file(); | 960 | e << file(); |
961 | #endif | 961 | #endif |
962 | } else if ( valid ) { | 962 | } else if ( valid ) { |
963 | // restore link | 963 | // restore link |
964 | writeLink(); | 964 | writeLink(); |
965 | } | 965 | } |
966 | } | 966 | } |
967 | } | 967 | } |
968 | 968 | ||
969 | /*! | 969 | /*! |
970 | Deletes the linkFile(), leaving any file() untouched. | 970 | Deletes the linkFile(), leaving any file() untouched. |
971 | 971 | ||
972 | \sa removeFiles() | 972 | \sa removeFiles() |
973 | */ | 973 | */ |
974 | void AppLnk::removeLinkFile() | 974 | void AppLnk::removeLinkFile() |
975 | { | 975 | { |
976 | if ( isValid() && linkFileKnown() && QFile::remove(linkFile()) ) { | 976 | if ( isValid() && linkFileKnown() && QFile::remove(linkFile()) ) { |
977 | #ifndef QT_NO_COP | 977 | #ifndef QT_NO_COP |
978 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); | 978 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); |
979 | e << linkFile(); | 979 | e << linkFile(); |
980 | #endif | 980 | #endif |
981 | } | 981 | } |
982 | } | 982 | } |
983 | 983 | ||
984 | class AppLnkSetPrivate { | 984 | class AppLnkSetPrivate { |
985 | public: | 985 | public: |
986 | AppLnkSetPrivate() | 986 | AppLnkSetPrivate() |
987 | { | 987 | { |
988 | typPix.setAutoDelete(TRUE); | 988 | typPix.setAutoDelete(TRUE); |
989 | typPixBig.setAutoDelete(TRUE); | 989 | typPixBig.setAutoDelete(TRUE); |
990 | typName.setAutoDelete(TRUE); | 990 | typName.setAutoDelete(TRUE); |
991 | } | 991 | } |
992 | 992 | ||
993 | QDict<QPixmap> typPix; | 993 | QDict<QPixmap> typPix; |
994 | QDict<QPixmap> typPixBig; | 994 | QDict<QPixmap> typPixBig; |
995 | QDict<QString> typName; | 995 | QDict<QString> typName; |
996 | }; | 996 | }; |
997 | 997 | ||
998 | /*! | 998 | /*! |
999 | \class AppLnkSet applnk.h | 999 | \class AppLnkSet applnk.h |
1000 | \brief The AppLnkSet class is a set of AppLnk objects. | 1000 | \brief The AppLnkSet class is a set of AppLnk objects. |
1001 | */ | 1001 | */ |
1002 | 1002 | ||
1003 | /*! | 1003 | /*! |
1004 | \fn QStringList AppLnkSet::types() const | 1004 | \fn QStringList AppLnkSet::types() const |
1005 | 1005 | ||
1006 | Returns the list of \link applnk.html#Types types\endlink in the set. | 1006 | Returns the list of \link applnk.html#Types types\endlink in the set. |
1007 | 1007 | ||
1008 | For applications, games and settings the type is \c Application; | 1008 | For applications, games and settings the type is \c Application; |
1009 | for documents the type is the document's MIME type. | 1009 | for documents the type is the document's MIME type. |
1010 | 1010 | ||
1011 | \sa AppLnk::type(), typeName(), typePixmap(), typeBigPixmap() | 1011 | \sa AppLnk::type(), typeName(), typePixmap(), typeBigPixmap() |
1012 | */ | 1012 | */ |
1013 | 1013 | ||
1014 | /*! | 1014 | /*! |
1015 | \fn const QList<AppLnk>& AppLnkSet::children() const | 1015 | \fn const QList<AppLnk>& AppLnkSet::children() const |
1016 | 1016 | ||
1017 | Returns the members of the set. | 1017 | Returns the members of the set. |
1018 | */ | 1018 | */ |
1019 | 1019 | ||
1020 | /*! | 1020 | /*! |
1021 | Constructs an empty AppLnkSet. | 1021 | Constructs an empty AppLnkSet. |
1022 | */ | 1022 | */ |
1023 | AppLnkSet::AppLnkSet() : | 1023 | AppLnkSet::AppLnkSet() : |
1024 | d(new AppLnkSetPrivate) | 1024 | d(new AppLnkSetPrivate) |
1025 | { | 1025 | { |
1026 | } | 1026 | } |
1027 | 1027 | ||
1028 | /*! | 1028 | /*! |
1029 | Constructs an AppLnkSet that contains AppLnk objects representing | 1029 | Constructs an AppLnkSet that contains AppLnk objects representing |
1030 | all the files in the given \a directory (and any subdirectories | 1030 | all the files in the given \a directory (and any subdirectories |
1031 | recursively). | 1031 | recursively). |
1032 | 1032 | ||
1033 | \omit | 1033 | \omit |
1034 | The directories may contain ".directory" files which override | 1034 | The directories may contain ".directory" files which override |
1035 | any AppLnk::type() values for AppLnk objects found in the directory. | 1035 | any AppLnk::type() values for AppLnk objects found in the directory. |
1036 | This allows simple localization of application types. | 1036 | This allows simple localization of application types. |
1037 | \endomit | 1037 | \endomit |
1038 | */ | 1038 | */ |
1039 | AppLnkSet::AppLnkSet( const QString &directory ) : | 1039 | AppLnkSet::AppLnkSet( const QString &directory ) : |
1040 | d(new AppLnkSetPrivate) | 1040 | d(new AppLnkSetPrivate) |
1041 | { | 1041 | { |
1042 | QDir dir( directory ); | 1042 | QDir dir( directory ); |
1043 | mFile = directory; | 1043 | mFile = directory; |
1044 | findChildren(directory,QString::null,QString::null); | 1044 | findChildren(directory,QString::null,QString::null); |
1045 | } | 1045 | } |
1046 | 1046 | ||
1047 | /*! | 1047 | /*! |
1048 | Detaches all AppLnk objects from the set. The set become empty and | 1048 | Detaches all AppLnk objects from the set. The set become empty and |
1049 | the caller becomes responsible for deleting the AppLnk objects. | 1049 | the caller becomes responsible for deleting the AppLnk objects. |
1050 | */ | 1050 | */ |
1051 | void AppLnkSet::detachChildren() | 1051 | void AppLnkSet::detachChildren() |
1052 | { | 1052 | { |
1053 | QListIterator<AppLnk> it( mApps ); | 1053 | QListIterator<AppLnk> it( mApps ); |
1054 | for ( ; it.current(); ) { | 1054 | for ( ; it.current(); ) { |
1055 | AppLnk* a = *it; | 1055 | AppLnk* a = *it; |
1056 | ++it; | 1056 | ++it; |
1057 | a->mId = 0; | 1057 | a->mId = 0; |
1058 | } | 1058 | } |
1059 | mApps.clear(); | 1059 | mApps.clear(); |
1060 | } | 1060 | } |
1061 | 1061 | ||
1062 | /*! | 1062 | /*! |
1063 | Destroys the set, deleting all the AppLnk objects it contains. | 1063 | Destroys the set, deleting all the AppLnk objects it contains. |
1064 | 1064 | ||
1065 | \sa detachChildren() | 1065 | \sa detachChildren() |
1066 | */ | 1066 | */ |
1067 | AppLnkSet::~AppLnkSet() | 1067 | AppLnkSet::~AppLnkSet() |
1068 | { | 1068 | { |
1069 | QListIterator<AppLnk> it( mApps ); | 1069 | QListIterator<AppLnk> it( mApps ); |
1070 | for ( ; it.current(); ) { | 1070 | for ( ; it.current(); ) { |
1071 | AppLnk* a = *it; | 1071 | AppLnk* a = *it; |
1072 | ++it; | 1072 | ++it; |
1073 | a->mId = 0; | 1073 | a->mId = 0; |
1074 | delete a; | 1074 | delete a; |
1075 | } | 1075 | } |
1076 | delete d; | 1076 | delete d; |
1077 | } | 1077 | } |
1078 | 1078 | ||
1079 | void AppLnkSet::findChildren(const QString &dr, const QString& typ, const QString& typName, int depth) | 1079 | void AppLnkSet::findChildren(const QString &dr, const QString& typ, const QString& typName, int depth) |
1080 | { | 1080 | { |
1081 | depth++; | 1081 | depth++; |
1082 | if ( depth > 10 ) | 1082 | if ( depth > 10 ) |
1083 | return; | 1083 | return; |
1084 | 1084 | ||
1085 | QDir dir( dr ); | 1085 | QDir dir( dr ); |
1086 | QString typNameLocal = typName; | 1086 | QString typNameLocal = typName; |
1087 | 1087 | ||
1088 | if ( dir.exists( ".directory" ) ) { | 1088 | if ( dir.exists( ".directory" ) ) { |
1089 | Config config( dr + "/.directory", Config::File ); | 1089 | Config config( dr + "/.directory", Config::File ); |
1090 | config.setGroup( "Desktop Entry" ); | 1090 | config.setGroup( "Desktop Entry" ); |
1091 | typNameLocal = config.readEntry( "Name", typNameLocal ); | 1091 | typNameLocal = config.readEntry( "Name", typNameLocal ); |
1092 | if ( !typ.isEmpty() ) { | 1092 | if ( !typ.isEmpty() ) { |
1093 | QString iconFile = config.readEntry( "Icon", "AppsIcon" ); | 1093 | QString iconFile = config.readEntry( "Icon", "AppsIcon" ); |
1094 | QImage unscaledIcon = Resource::loadImage( iconFile ); | 1094 | QImage unscaledIcon = Resource::loadImage( iconFile ); |
1095 | QPixmap pm, bpm; | 1095 | QPixmap pm, bpm; |
1096 | pm.convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); | 1096 | pm.convertFromImage( unscaledIcon.smoothScale( smallSize, smallSize ) ); |
1097 | bpm.convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); | 1097 | bpm.convertFromImage( unscaledIcon.smoothScale( bigSize, bigSize ) ); |
1098 | d->typPix.insert(typ, new QPixmap(pm)); | 1098 | d->typPix.insert(typ, new QPixmap(pm)); |
1099 | d->typPixBig.insert(typ, new QPixmap(bpm)); | 1099 | d->typPixBig.insert(typ, new QPixmap(bpm)); |
1100 | d->typName.insert(typ, new QString(typNameLocal)); | 1100 | d->typName.insert(typ, new QString(typNameLocal)); |
1101 | } | 1101 | } |
1102 | } | 1102 | } |
1103 | 1103 | ||
1104 | const QFileInfoList *list = dir.entryInfoList(); | 1104 | const QFileInfoList *list = dir.entryInfoList(); |
1105 | if ( list ) { | 1105 | if ( list ) { |
1106 | QFileInfo* fi; | 1106 | QFileInfo* fi; |
1107 | bool cadded=FALSE; | 1107 | bool cadded=FALSE; |
1108 | for ( QFileInfoListIterator it(*list); (fi=*it); ++it ) { | 1108 | for ( QFileInfoListIterator it(*list); (fi=*it); ++it ) { |
1109 | QString bn = fi->fileName(); | 1109 | QString bn = fi->fileName(); |
1110 | // qDebug("findChildren "+bn); | 1110 | // qDebug("findChildren "+bn); |
1111 | if ( bn[0] != '.' && bn != "CVS" ) { | 1111 | if ( bn[0] != '.' && bn != "CVS" ) { |
1112 | if ( fi->isDir() ) { | 1112 | if ( fi->isDir() ) { |
1113 | QString c = typ.isNull() ? bn : typ+"/"+bn; | 1113 | QString c = typ.isNull() ? bn : typ+"/"+bn; |
1114 | QString d = typNameLocal.isNull() ? bn : typNameLocal+"/"+bn; | 1114 | QString d = typNameLocal.isNull() ? bn : typNameLocal+"/"+bn; |
1115 | findChildren(fi->filePath(), c, d, depth ); | 1115 | findChildren(fi->filePath(), c, d, depth ); |
1116 | } else { | 1116 | } else { |
1117 | if ( fi->extension(FALSE) == "desktop" ) { | 1117 | if ( fi->extension(FALSE) == "desktop" ) { |
1118 | AppLnk* app = new AppLnk( fi->filePath() ); | 1118 | AppLnk* app = new AppLnk( fi->filePath() ); |
1119 | #ifdef QT_NO_QWS_MULTIPROCESS | 1119 | #ifdef QT_NO_QWS_MULTIPROCESS |
1120 | if ( !Global::isBuiltinCommand( app->exec() ) ) | 1120 | if ( !Global::isBuiltinCommand( app->exec() ) ) |
1121 | delete app; | 1121 | delete app; |
1122 | else | 1122 | else |
1123 | #endif | 1123 | #endif |
1124 | { | 1124 | { |
1125 | if ( !typ.isEmpty() ) { | 1125 | if ( !typ.isEmpty() ) { |
1126 | if ( !cadded ) { | 1126 | if ( !cadded ) { |
1127 | typs.append(typ); | 1127 | typs.append(typ); |
1128 | cadded = TRUE; | 1128 | cadded = TRUE; |
1129 | } | 1129 | } |
1130 | app->setType(typ); | 1130 | app->setType(typ); |
1131 | } | 1131 | } |
1132 | add(app); | 1132 | add(app); |
1133 | } | 1133 | } |
1134 | } | 1134 | } |
1135 | } | 1135 | } |
1136 | } | 1136 | } |
1137 | } | 1137 | } |
1138 | } | 1138 | } |
1139 | } | 1139 | } |
1140 | 1140 | ||
1141 | /*! | 1141 | /*! |
1142 | Adds AppLnk \a f to the set. The set takes responsibility for | 1142 | Adds AppLnk \a f to the set. The set takes responsibility for |
1143 | deleting \a f. | 1143 | deleting \a f. |
1144 | 1144 | ||
1145 | \sa remove() | 1145 | \sa remove() |
1146 | */ | 1146 | */ |
1147 | void AppLnkSet::add( AppLnk *f ) | 1147 | void AppLnkSet::add( AppLnk *f ) |
1148 | { | 1148 | { |
1149 | if ( f->mId == 0 ) { | 1149 | if ( f->mId == 0 ) { |
1150 | AppLnk::lastId++; | 1150 | AppLnk::lastId++; |
1151 | f->mId = AppLnk::lastId; | 1151 | f->mId = AppLnk::lastId; |
1152 | mApps.append( f ); | 1152 | mApps.append( f ); |
1153 | } else { | 1153 | } else { |
1154 | qWarning("Attempt to add an AppLnk twice"); | 1154 | qWarning("Attempt to add an AppLnk twice"); |
1155 | } | 1155 | } |
1156 | } | 1156 | } |
1157 | 1157 | ||
1158 | /*! | 1158 | /*! |
1159 | Removes AppLnk \a f to the set. The caller becomes responsible for | 1159 | Removes AppLnk \a f to the set. The caller becomes responsible for |
1160 | deleting \a f. Returns TRUE if \a f was in the set; otherwise | 1160 | deleting \a f. Returns TRUE if \a f was in the set; otherwise |
1161 | returns FALSE. | 1161 | returns FALSE. |
1162 | 1162 | ||
1163 | \sa add() | 1163 | \sa add() |
1164 | */ | 1164 | */ |
1165 | bool AppLnkSet::remove( AppLnk *f ) | 1165 | bool AppLnkSet::remove( AppLnk *f ) |
1166 | { | 1166 | { |
1167 | if ( mApps.remove( f ) ) { | 1167 | if ( mApps.remove( f ) ) { |
1168 | f->mId = 0; | 1168 | f->mId = 0; |
1169 | return TRUE; | 1169 | return TRUE; |
1170 | } | 1170 | } |
1171 | return FALSE; | 1171 | return FALSE; |
1172 | } | 1172 | } |
1173 | 1173 | ||
1174 | 1174 | ||
1175 | /*! | 1175 | /*! |
1176 | Returns the localized name for type \a t. | 1176 | Returns the localized name for type \a t. |
1177 | 1177 | ||
1178 | For applications, games and settings the type is \c Application; | 1178 | For applications, games and settings the type is \c Application; |
1179 | for documents the type is the document's MIME type. | 1179 | for documents the type is the document's MIME type. |
1180 | */ | 1180 | */ |
1181 | QString AppLnkSet::typeName( const QString& t ) const | 1181 | QString AppLnkSet::typeName( const QString& t ) const |
1182 | { | 1182 | { |
1183 | QString *st = d->typName.find(t); | 1183 | QString *st = d->typName.find(t); |
1184 | return st ? *st : QString::null; | 1184 | return st ? *st : QString::null; |
1185 | } | 1185 | } |
1186 | 1186 | ||
1187 | /*! | 1187 | /*! |
1188 | Returns the small pixmap associated with type \a t. | 1188 | Returns the small pixmap associated with type \a t. |
1189 | 1189 | ||
1190 | For applications, games and settings the type is \c Application; | 1190 | For applications, games and settings the type is \c Application; |
1191 | for documents the type is the document's MIME type. | 1191 | for documents the type is the document's MIME type. |
1192 | */ | 1192 | */ |
1193 | QPixmap AppLnkSet::typePixmap( const QString& t ) const | 1193 | QPixmap AppLnkSet::typePixmap( const QString& t ) const |
1194 | { | 1194 | { |
1195 | QPixmap *pm = d->typPix.find(t); | 1195 | QPixmap *pm = d->typPix.find(t); |
1196 | return pm ? *pm : QPixmap(); | 1196 | return pm ? *pm : QPixmap(); |
1197 | } | 1197 | } |
1198 | 1198 | ||
1199 | /*! | 1199 | /*! |
1200 | Returns the large pixmap associated with type \a t. | 1200 | Returns the large pixmap associated with type \a t. |
1201 | 1201 | ||
1202 | For applications, games and settings the type is \c Application; | 1202 | For applications, games and settings the type is \c Application; |
1203 | for documents the type is the document's MIME type. | 1203 | for documents the type is the document's MIME type. |
1204 | */ | 1204 | */ |
1205 | QPixmap AppLnkSet::typeBigPixmap( const QString& t ) const | 1205 | QPixmap AppLnkSet::typeBigPixmap( const QString& t ) const |
1206 | { | 1206 | { |
1207 | QPixmap *pm = d->typPixBig.find(t); | 1207 | QPixmap *pm = d->typPixBig.find(t); |
1208 | return pm ? *pm : QPixmap(); | 1208 | return pm ? *pm : QPixmap(); |
1209 | } | 1209 | } |
1210 | 1210 | ||
1211 | /*! | 1211 | /*! |
1212 | Returns the AppLnk with the given \a id. | 1212 | Returns the AppLnk with the given \a id. |
1213 | */ | 1213 | */ |
1214 | const AppLnk *AppLnkSet::find( int id ) const | 1214 | const AppLnk *AppLnkSet::find( int id ) const |
1215 | { | 1215 | { |
1216 | QListIterator<AppLnk> it( children() ); | 1216 | QListIterator<AppLnk> it( children() ); |
1217 | 1217 | ||
1218 | for ( ; it.current(); ++it ) { | 1218 | for ( ; it.current(); ++it ) { |
1219 | const AppLnk *app = it.current(); | 1219 | const AppLnk *app = it.current(); |
1220 | if ( app->id() == id ) | 1220 | if ( app->id() == id ) |
1221 | return app; | 1221 | return app; |
1222 | } | 1222 | } |
1223 | 1223 | ||
1224 | return 0; | 1224 | return 0; |
1225 | } | 1225 | } |
1226 | 1226 | ||
1227 | /*! | 1227 | /*! |
1228 | Returns the AppLnk with the given \a exec attribute. | 1228 | Returns the AppLnk with the given \a exec attribute. |
1229 | */ | 1229 | */ |
1230 | const AppLnk *AppLnkSet::findExec( const QString& exec ) const | 1230 | const AppLnk *AppLnkSet::findExec( const QString& exec ) const |
1231 | { | 1231 | { |
1232 | QListIterator<AppLnk> it( children() ); | 1232 | QListIterator<AppLnk> it( children() ); |
1233 | 1233 | ||
1234 | for ( ; it.current(); ++it ) { | 1234 | for ( ; it.current(); ++it ) { |
1235 | const AppLnk *app = it.current(); | 1235 | const AppLnk *app = it.current(); |
1236 | if ( app->exec() == exec ) | 1236 | if ( app->exec() == exec ) |
1237 | return app; | 1237 | return app; |
1238 | } | 1238 | } |
1239 | 1239 | ||
1240 | return 0; | 1240 | return 0; |
1241 | } | 1241 | } |
1242 | 1242 | ||
1243 | /*! | 1243 | /*! |
1244 | \class DocLnkSet applnk.h | 1244 | \class DocLnkSet applnk.h |
1245 | \brief The DocLnkSet class is a set of DocLnk objects. | 1245 | \brief The DocLnkSet class is a set of DocLnk objects. |
1246 | */ | 1246 | */ |
1247 | 1247 | ||
1248 | /*! | 1248 | /*! |
1249 | \fn const QList<DocLnk>& DocLnkSet::children() const | 1249 | \fn const QList<DocLnk>& DocLnkSet::children() const |
1250 | 1250 | ||
1251 | Returns the members of the set. | 1251 | Returns the members of the set. |
1252 | */ | 1252 | */ |
1253 | 1253 | ||
1254 | /*! | 1254 | /*! |
1255 | Constructs an empty DocLnkSet. | 1255 | Constructs an empty DocLnkSet. |
1256 | 1256 | ||
1257 | \sa appendFrom() | 1257 | \sa appendFrom() |
1258 | */ | 1258 | */ |
1259 | DocLnkSet::DocLnkSet() | 1259 | DocLnkSet::DocLnkSet() |
1260 | { | 1260 | { |
1261 | } | 1261 | } |
1262 | 1262 | ||
1263 | /*! | 1263 | /*! |
1264 | Constructs a DocLnkSet that contains DocLnk objects representing all | 1264 | Constructs a DocLnkSet that contains DocLnk objects representing all |
1265 | the files in the \a directory (and any subdirectories, recursively). | 1265 | the files in the \a directory (and any subdirectories, recursively). |
1266 | 1266 | ||
1267 | If \a mimefilter is not null, | 1267 | If \a mimefilter is not null, |
1268 | only documents with a MIME type matching \a mimefilter are selected. | 1268 | only documents with a MIME type matching \a mimefilter are selected. |
1269 | The value may contain multiple wild-card patterns separated by ";", | 1269 | The value may contain multiple wild-card patterns separated by ";", |
1270 | such as \c{*o/mpeg;audio/x-wav}. | 1270 | such as \c{*o/mpeg;audio/x-wav}. |
1271 | 1271 | ||
1272 | See also \link applnk.html#files-and-links Files and Links\endlink. | 1272 | See also \link applnk.html#files-and-links Files and Links\endlink. |
1273 | 1273 | ||
1274 | */ | 1274 | */ |
1275 | DocLnkSet::DocLnkSet( const QString &directory, const QString& mimefilter ) : | 1275 | DocLnkSet::DocLnkSet( const QString &directory, const QString& mimefilter ) : |
1276 | AppLnkSet() | 1276 | AppLnkSet() |
1277 | { | 1277 | { |
1278 | QDir dir( directory ); | 1278 | QDir dir( directory ); |
1279 | mFile = dir.dirName(); | 1279 | mFile = dir.dirName(); |
1280 | QDict<void> reference; | 1280 | QDict<void> reference; |
1281 | 1281 | ||
1282 | QStringList subFilter = QStringList::split(";", mimefilter); | 1282 | QStringList subFilter = QStringList::split(";", mimefilter); |
1283 | QValueList<QRegExp> mimeFilters; | 1283 | QValueList<QRegExp> mimeFilters; |
1284 | for( QStringList::Iterator it = subFilter.begin(); it != subFilter.end(); ++ it ) | 1284 | for( QStringList::Iterator it = subFilter.begin(); it != subFilter.end(); ++ it ) |
1285 | mimeFilters.append( QRegExp(*it, FALSE, TRUE) ); | 1285 | mimeFilters.append( QRegExp(*it, FALSE, TRUE) ); |
1286 | 1286 | ||
1287 | findChildren(directory, mimeFilters, reference); | 1287 | findChildren(directory, mimeFilters, reference); |
1288 | 1288 | ||
1289 | const QList<DocLnk> &list = children(); | 1289 | const QList<DocLnk> &list = children(); |
1290 | for ( QListIterator<DocLnk> it( list ); it.current(); ++it ) { | 1290 | for ( QListIterator<DocLnk> it( list ); it.current(); ++it ) { |
1291 | reference.remove( (*it)->file() ); | 1291 | reference.remove( (*it)->file() ); |
1292 | } | 1292 | } |
1293 | for ( QDictIterator<void> dit(reference); dit.current(); ++dit ) { | 1293 | for ( QDictIterator<void> dit(reference); dit.current(); ++dit ) { |
1294 | if ( dit.current() == (void*)2 ) { | 1294 | if ( dit.current() == (void*)2 ) { |
1295 | // Unreferenced, make an unwritten link | 1295 | // Unreferenced, make an unwritten link |
1296 | DocLnk* dl = new DocLnk; | 1296 | DocLnk* dl = new DocLnk; |
1297 | QFileInfo fi( dit.currentKey() ); | 1297 | QFileInfo fi( dit.currentKey() ); |
1298 | dl->setFile(fi.filePath()); | 1298 | dl->setFile(fi.filePath()); |
1299 | dl->setName(fi.baseName()); | 1299 | dl->setName(fi.baseName()); |
1300 | // #### default to current path? | 1300 | // #### default to current path? |
1301 | // dl->setCategories( ... ); | 1301 | // dl->setCategories( ... ); |
1302 | bool match = mimefilter.isNull(); | 1302 | bool match = mimefilter.isNull(); |
1303 | if ( !match ) | 1303 | if ( !match ) |
1304 | for( QValueList<QRegExp>::Iterator it = mimeFilters.begin(); it != mimeFilters.end() && !match; ++ it ) | 1304 | for( QValueList<QRegExp>::Iterator it = mimeFilters.begin(); it != mimeFilters.end() && !match; ++ it ) |
1305 | if ( (*it).match(dl->type()) >= 0 ) | 1305 | if ( (*it).match(dl->type()) >= 0 ) |
1306 | match = TRUE; | 1306 | match = TRUE; |
1307 | if ( match /* && dl->type() != "application/octet-stream" */ | 1307 | if ( match /* && dl->type() != "application/octet-stream" */ |
1308 | && !!dl->exec() ) | 1308 | && !!dl->exec() ) |
1309 | add(dl); | 1309 | add(dl); |
1310 | else | 1310 | else |
1311 | delete dl; | 1311 | delete dl; |
1312 | } | 1312 | } |
1313 | } | 1313 | } |
1314 | } | 1314 | } |
1315 | 1315 | ||
1316 | // other becomes empty | 1316 | // other becomes empty |
1317 | /*! | 1317 | /*! |
1318 | Transfers all DocLnk objects from \a other to this set. \a other becomes | 1318 | Transfers all DocLnk objects from \a other to this set. \a other becomes |
1319 | empty. | 1319 | empty. |
1320 | */ | 1320 | */ |
1321 | void DocLnkSet::appendFrom( DocLnkSet& other ) | 1321 | void DocLnkSet::appendFrom( DocLnkSet& other ) |
1322 | { | 1322 | { |
1323 | if ( &other == this ) | 1323 | if ( &other == this ) |
1324 | return; | 1324 | return; |
1325 | QListIterator<AppLnk> it( other.mApps ); | 1325 | QListIterator<AppLnk> it( other.mApps ); |
1326 | for ( ; it.current(); ) { | 1326 | for ( ; it.current(); ) { |
1327 | mApps.append(*it); | 1327 | mApps.append(*it); |
1328 | ++it; | 1328 | ++it; |
1329 | } | 1329 | } |
1330 | other.mApps.clear(); | 1330 | other.mApps.clear(); |
1331 | } | 1331 | } |
1332 | 1332 | ||
1333 | void DocLnkSet::findChildren(const QString &dr, const QValueList<QRegExp> &mimeFilters, QDict<void> &reference, int depth) | 1333 | void DocLnkSet::findChildren(const QString &dr, const QValueList<QRegExp> &mimeFilters, QDict<void> &reference, int depth) |
1334 | { | 1334 | { |
1335 | depth++; | 1335 | depth++; |
1336 | if ( depth > 10 ) | 1336 | if ( depth > 10 ) |
1337 | return; | 1337 | return; |
1338 | 1338 | ||
1339 | QDir dir( dr ); | 1339 | QDir dir( dr ); |
1340 | 1340 | ||
1341 | /* Opie got a different approach | 1341 | /* Opie got a different approach |
1342 | * I guess it's geek vs. consumer | 1342 | * I guess it's geek vs. consumer |
1343 | * in this case to be discussed | 1343 | * in this case to be discussed |
1344 | */ | 1344 | */ |
1345 | if ( dir.exists( ".Qtopia-ignore" ) ) | 1345 | if ( dir.exists( ".Qtopia-ignore" ) ) |
1346 | return; | 1346 | return; |
1347 | 1347 | ||
1348 | const QFileInfoList *list = dir.entryInfoList(); | 1348 | const QFileInfoList *list = dir.entryInfoList(); |
1349 | if ( list ) { | 1349 | if ( list ) { |
1350 | QFileInfo* fi; | 1350 | QFileInfo* fi; |
1351 | for ( QFileInfoListIterator it(*list); (fi=*it); ++it ) { | 1351 | for ( QFileInfoListIterator it(*list); (fi=*it); ++it ) { |
1352 | QString bn = fi->fileName(); | 1352 | QString bn = fi->fileName(); |
1353 | if ( bn[0] != '.' ) { | 1353 | if ( bn[0] != '.' ) { |
1354 | if ( fi->isDir() ) { | 1354 | if ( fi->isDir() ) { |
1355 | if ( bn != "CVS" && bn != "Qtopia" && bn != "QtPalmtop" ) | 1355 | if ( bn != "CVS" && bn != "Qtopia" && bn != "QtPalmtop" ) |
1356 | findChildren(fi->filePath(), mimeFilters, reference, depth); | 1356 | findChildren(fi->filePath(), mimeFilters, reference, depth); |
1357 | } else { | 1357 | } else { |
1358 | if ( fi->extension(FALSE) == "desktop" ) { | 1358 | if ( fi->extension(FALSE) == "desktop" ) { |
1359 | DocLnk* dl = new DocLnk( fi->filePath() ); | 1359 | DocLnk* dl = new DocLnk( fi->filePath() ); |
1360 | QFileInfo fi2(dl->file()); | 1360 | QFileInfo fi2(dl->file()); |
1361 | bool match = FALSE; | 1361 | bool match = FALSE; |
1362 | if ( !fi2.exists() ) { | 1362 | if ( !fi2.exists() ) { |
1363 | dir.remove( dl->file() ); | 1363 | dir.remove( dl->file() ); |
1364 | } | 1364 | } |
1365 | if ( mimeFilters.count() == 0 ) { | 1365 | if ( mimeFilters.count() == 0 ) { |
1366 | add( dl ); | 1366 | add( dl ); |
1367 | match = TRUE; | 1367 | match = TRUE; |
1368 | } else { | 1368 | } else { |
1369 | for( QValueList<QRegExp>::ConstIterator it = mimeFilters.begin(); it != mimeFilters.end(); ++ it ) { | 1369 | for( QValueList<QRegExp>::ConstIterator it = mimeFilters.begin(); it != mimeFilters.end(); ++ it ) { |
1370 | if ( (*it).match(dl->type()) >= 0 ) { | 1370 | if ( (*it).match(dl->type()) >= 0 ) { |
1371 | add(dl); | 1371 | add(dl); |
1372 | match = TRUE; | 1372 | match = TRUE; |
1373 | } | 1373 | } |
1374 | } | 1374 | } |
1375 | } | 1375 | } |
1376 | if ( !match ) | 1376 | if ( !match ) |
1377 | delete dl; | 1377 | delete dl; |
1378 | } else { | 1378 | } else { |
1379 | if ( !reference.find(fi->fileName()) ) | 1379 | if ( !reference.find(fi->fileName()) ) |
1380 | reference.insert(fi->filePath(), (void*)2); | 1380 | reference.insert(fi->filePath(), (void*)2); |
1381 | } | 1381 | } |
1382 | } | 1382 | } |
1383 | } | 1383 | } |
1384 | } | 1384 | } |
1385 | } | 1385 | } |
1386 | } | 1386 | } |
1387 | 1387 | ||
1388 | /*! | 1388 | /*! |
1389 | \class DocLnk applnk.h | 1389 | \class DocLnk applnk.h |
1390 | \brief The DocLnk class represents loaded document references. | 1390 | \brief The DocLnk class represents loaded document references. |
1391 | */ | 1391 | */ |
1392 | 1392 | ||
1393 | /*! | 1393 | /*! |
1394 | \fn DocLnk::DocLnk( const DocLnk &o ) | 1394 | \fn DocLnk::DocLnk( const DocLnk &o ) |
1395 | 1395 | ||
1396 | Copies \a o. | 1396 | Copies \a o. |
1397 | */ | 1397 | */ |
1398 | 1398 | ||
1399 | /*! | 1399 | /*! |
1400 | Constructs a DocLnk from a valid .desktop \a file or a new .desktop | 1400 | Constructs a DocLnk from a valid .desktop \a file or a new .desktop |
1401 | \a file for other files. | 1401 | \a file for other files. |
1402 | */ | 1402 | */ |
1403 | DocLnk::DocLnk( const QString &file ) : | 1403 | DocLnk::DocLnk( const QString &file ) : |
1404 | AppLnk(file) | 1404 | AppLnk(file) |
1405 | { | 1405 | { |
1406 | init(file); | 1406 | init(file); |
1407 | } | 1407 | } |
1408 | 1408 | ||
1409 | /*! | 1409 | /*! |
1410 | Constructs a DocLnk from a valid .desktop \a file or a new .desktop | 1410 | Constructs a DocLnk from a valid .desktop \a file or a new .desktop |
1411 | \a file for other files. If \a may_be_desktopfile is TRUE, then an | 1411 | \a file for other files. If \a may_be_desktopfile is TRUE, then an |
1412 | attempt is made to read \a file as a .desktop file; if that fails it | 1412 | attempt is made to read \a file as a .desktop file; if that fails it |
1413 | is read as a normal file. | 1413 | is read as a normal file. |
1414 | */ | 1414 | */ |
1415 | DocLnk::DocLnk( const QString &file, bool may_be_desktopfile ) : | 1415 | DocLnk::DocLnk( const QString &file, bool may_be_desktopfile ) : |
1416 | AppLnk(may_be_desktopfile ? file : QString::null) | 1416 | AppLnk(may_be_desktopfile ? file : QString::null) |
1417 | { | 1417 | { |
1418 | init(file); | 1418 | init(file); |
1419 | } | 1419 | } |
1420 | 1420 | ||
1421 | void DocLnk::init(const QString &file) | 1421 | void DocLnk::init(const QString &file) |
1422 | { | 1422 | { |
1423 | if ( isValid() ) { | 1423 | if ( isValid() ) { |
1424 | #ifndef FORCED_DIR_STRUCTURE_WAY | 1424 | #ifndef FORCED_DIR_STRUCTURE_WAY |
1425 | if ( mType.isNull() ) | 1425 | if ( mType.isNull() ) |
1426 | // try to infer it | 1426 | // try to infer it |
1427 | #endif | 1427 | #endif |
1428 | { | 1428 | { |
1429 | int s0 = file.findRev('/'); | 1429 | int s0 = file.findRev('/'); |
1430 | if ( s0 > 0 ) { | 1430 | if ( s0 > 0 ) { |
1431 | int s1 = file.findRev('/',s0-1); | 1431 | int s1 = file.findRev('/',s0-1); |
1432 | if ( s1 > 0 ) { | 1432 | if ( s1 > 0 ) { |
1433 | int s2 = file.findRev('/',s1-1); | 1433 | int s2 = file.findRev('/',s1-1); |
1434 | if ( s2 > 0 ) { | 1434 | if ( s2 > 0 ) { |
1435 | mType = file.mid(s2+1,s0-s2-1); | 1435 | mType = file.mid(s2+1,s0-s2-1); |
1436 | } | 1436 | } |
1437 | } | 1437 | } |
1438 | } | 1438 | } |
1439 | } | 1439 | } |
1440 | } else if ( QFile::exists(file) ) { | 1440 | } else if ( QFile::exists(file) ) { |
1441 | QString n = file; | 1441 | QString n = file; |
1442 | n.replace(QRegExp(".*/"),""); | 1442 | n.replace(QRegExp(".*/"),""); |
1443 | n.replace(QRegExp("\\..*"),""); | 1443 | n.replace(QRegExp("\\..*"),""); |
1444 | setName( n ); | 1444 | setName( n ); |
1445 | setFile( file ); | 1445 | setFile( file ); |
1446 | } | 1446 | } |
1447 | MimeType mt(mType); | 1447 | MimeType mt(mType); |
1448 | if( mt.application() ) | 1448 | if( mt.application() ) |
1449 | mExec = mt.application()->exec(); | 1449 | mExec = mt.application()->exec(); |
1450 | } | 1450 | } |
1451 | 1451 | ||
1452 | /*! | 1452 | /*! |
1453 | Constructs an invalid DocLnk. | 1453 | Constructs an invalid DocLnk. |
1454 | */ | 1454 | */ |
1455 | DocLnk::DocLnk() | 1455 | DocLnk::DocLnk() |
1456 | { | 1456 | { |
1457 | } | 1457 | } |
1458 | 1458 | ||
1459 | /*! | 1459 | /*! |
1460 | Destroys the DocLnk. Just like AppLnk objects, a run-time error | 1460 | Destroys the DocLnk. Just like AppLnk objects, a run-time error |
1461 | occurs if the DocLnk is a member of a DocLnkSet (or AppLnkSet). | 1461 | occurs if the DocLnk is a member of a DocLnkSet (or AppLnkSet). |
1462 | */ | 1462 | */ |
1463 | DocLnk::~DocLnk() | 1463 | DocLnk::~DocLnk() |
1464 | { | 1464 | { |
1465 | } | 1465 | } |
1466 | 1466 | ||
1467 | /*! | 1467 | /*! |
1468 | \reimp | 1468 | \reimp |
1469 | */ | 1469 | */ |
1470 | QString DocLnk::exec() const | 1470 | QString DocLnk::exec() const |
1471 | { | 1471 | { |
1472 | MimeType mt(type()); | 1472 | MimeType mt(type()); |
1473 | const AppLnk* app = mt.application(); | 1473 | const AppLnk* app = mt.application(); |
1474 | if ( app ) | 1474 | if ( app ) |
1475 | return app->exec(); | 1475 | return app->exec(); |
1476 | else | 1476 | else |
1477 | return QString::null; | 1477 | return QString::null; |
1478 | } | 1478 | } |
1479 | 1479 | ||
1480 | /*! | 1480 | /*! |
1481 | \reimp | 1481 | \reimp |
1482 | */ | 1482 | */ |
1483 | void DocLnk::invoke(const QStringList& args) const | 1483 | void DocLnk::invoke(const QStringList& args) const |
1484 | { | 1484 | { |
1485 | MimeType mt(type()); | 1485 | MimeType mt(type()); |
1486 | const AppLnk* app = mt.application(); | 1486 | const AppLnk* app = mt.application(); |
1487 | if ( app ) { | 1487 | if ( app ) { |
1488 | QStringList a = args; | 1488 | QStringList a = args; |
1489 | if ( linkFileKnown() && QFile::exists( linkFile() ) ) | 1489 | if ( linkFileKnown() && QFile::exists( linkFile() ) ) |
1490 | a.append(linkFile()); | 1490 | a.append(linkFile()); |
1491 | else | 1491 | else |
1492 | a.append(file()); | 1492 | a.append(file()); |
1493 | app->execute(a); | 1493 | app->execute(a); |
diff --git a/library/applnk.h b/library/applnk.h index b4590d3..87971f7 100644 --- a/library/applnk.h +++ b/library/applnk.h | |||
@@ -1,208 +1,206 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 __APPLNK_H__ | 20 | #ifndef __APPLNK_H__ |
21 | #define __APPLNK_H__ | 21 | #define __APPLNK_H__ |
22 | 22 | ||
23 | #include <qobject.h> | 23 | #include <qobject.h> |
24 | #include <qiconset.h> | 24 | #include <qiconset.h> |
25 | #include <qlist.h> | 25 | #include <qlist.h> |
26 | #include <qdict.h> | 26 | #include <qdict.h> |
27 | #include <qstringlist.h> | 27 | #include <qstringlist.h> |
28 | 28 | ||
29 | class AppLnkSetPrivate; | 29 | class AppLnkSetPrivate; |
30 | class AppLnkPrivate; | 30 | class AppLnkPrivate; |
31 | 31 | ||
32 | class AppLnk | 32 | class AppLnk |
33 | { | 33 | { |
34 | public: | 34 | public: |
35 | AppLnk(); | 35 | AppLnk(); |
36 | AppLnk( const QString &file ); | 36 | AppLnk( const QString &file ); |
37 | AppLnk( const AppLnk © ); // copy constructor | 37 | AppLnk( const AppLnk © ); // copy constructor |
38 | virtual ~AppLnk(); | 38 | virtual ~AppLnk(); |
39 | 39 | ||
40 | bool isValid() const { return !mLinkFile.isNull(); } | 40 | bool isValid() const { return !mLinkFile.isNull(); } |
41 | 41 | ||
42 | static void setSmallIconSize(int); | 42 | static void setSmallIconSize(int); |
43 | static void setBigIconSize(int); | 43 | static void setBigIconSize(int); |
44 | static int smallIconSize(); | 44 | static int smallIconSize(); |
45 | static int bigIconSize(); | 45 | static int bigIconSize(); |
46 | 46 | ||
47 | QString name() const { return mName; } | 47 | QString name() const { return mName; } |
48 | const QPixmap& pixmap() const; | 48 | const QPixmap& pixmap() const; |
49 | const QPixmap& bigPixmap() const; | 49 | const QPixmap& bigPixmap() const; |
50 | QString icon() const { return mIconFile; } | 50 | QString icon() const { return mIconFile; } |
51 | virtual QString exec() const { return mExec; } | 51 | virtual QString exec() const { return mExec; } |
52 | QString type() const; | 52 | QString type() const; |
53 | QString rotation() const { return mRotation; } | 53 | QString rotation() const { return mRotation; } |
54 | QString comment() const { return mComment; } | 54 | QString comment() const { return mComment; } |
55 | QString file() const; | 55 | QString file() const; |
56 | QString linkFile() const; | 56 | QString linkFile() const; |
57 | QStringList mimeTypes() const { return mMimeTypes; } | 57 | QStringList mimeTypes() const { return mMimeTypes; } |
58 | QStringList mimeTypeIcons() const { return mMimeTypeIcons; } | 58 | QStringList mimeTypeIcons() const { return mMimeTypeIcons; } |
59 | const QArray<int> &categories() const; | 59 | const QArray<int> &categories() const; |
60 | int id() const { return mId; } | 60 | int id() const { return mId; } |
61 | 61 | ||
62 | bool fileKnown() const { return !mFile.isNull(); } | 62 | bool fileKnown() const { return !mFile.isNull(); } |
63 | bool linkFileKnown() const { return !mLinkFile.isNull(); } | 63 | bool linkFileKnown() const { return !mLinkFile.isNull(); } |
64 | 64 | ||
65 | void execute() const; | 65 | void execute() const; |
66 | void execute(const QStringList& args) const; | 66 | void execute(const QStringList& args) const; |
67 | void removeFiles(); | 67 | void removeFiles(); |
68 | void removeLinkFile(); | 68 | void removeLinkFile(); |
69 | 69 | ||
70 | void setName( const QString& docname ); | 70 | void setName( const QString& docname ); |
71 | void setExec( const QString& exec ); | 71 | void setExec( const QString& exec ); |
72 | void setFile( const QString& filename ); | 72 | void setFile( const QString& filename ); |
73 | void setLinkFile( const QString& filename ); | 73 | void setLinkFile( const QString& filename ); |
74 | void setComment( const QString& comment ); | 74 | void setComment( const QString& comment ); |
75 | void setType( const QString& mimetype ); | 75 | void setType( const QString& mimetype ); |
76 | inline void setRotation ( const QString &rot ) { mRotation = rot; } // inline for BC | 76 | inline void setRotation ( const QString &rot ) { mRotation = rot; } // inline for BC |
77 | void setIcon( const QString& iconname ); | 77 | void setIcon( const QString& iconname ); |
78 | void setCategories( const QArray<int> &v ); | 78 | void setCategories( const QArray<int> &v ); |
79 | bool writeLink() const; | 79 | bool writeLink() const; |
80 | 80 | ||
81 | void setProperty(const QString& key, const QString& value); | 81 | void setProperty(const QString& key, const QString& value); |
82 | QString property(const QString& key) const; | 82 | QString property(const QString& key) const; |
83 | 83 | ||
84 | #ifdef QTOPIA_INTERNAL_PRELOADACCESS | 84 | #ifdef QTOPIA_INTERNAL_PRELOADACCESS |
85 | bool isPreloaded() const; | 85 | bool isPreloaded() const; |
86 | void setPreloaded(bool yesNo); | 86 | void setPreloaded(bool yesNo); |
87 | #endif | 87 | #endif |
88 | 88 | ||
89 | #ifdef QTOPIA_INTERNAL_APPLNKASSIGN | ||
90 | AppLnk &operator=(const AppLnk &other); | 89 | AppLnk &operator=(const AppLnk &other); |
91 | #endif | ||
92 | 90 | ||
93 | protected: | 91 | protected: |
94 | QString mName; | 92 | QString mName; |
95 | 93 | ||
96 | /* remove for Qtopia 3.0 -zecke */ | 94 | /* remove for Qtopia 3.0 -zecke */ |
97 | QPixmap mPixmap; | 95 | QPixmap mPixmap; |
98 | 96 | ||
99 | /* remove for Qtopia 3.0 -zecke */ | 97 | /* remove for Qtopia 3.0 -zecke */ |
100 | QPixmap mBigPixmap; | 98 | QPixmap mBigPixmap; |
101 | 99 | ||
102 | QString mExec; | 100 | QString mExec; |
103 | QString mType; | 101 | QString mType; |
104 | QString mRotation; | 102 | QString mRotation; |
105 | QString mComment; | 103 | QString mComment; |
106 | QString mFile; | 104 | QString mFile; |
107 | QString mLinkFile; | 105 | QString mLinkFile; |
108 | QString mIconFile; | 106 | QString mIconFile; |
109 | QStringList mMimeTypes; | 107 | QStringList mMimeTypes; |
110 | QStringList mMimeTypeIcons; | 108 | QStringList mMimeTypeIcons; |
111 | int mId; | 109 | int mId; |
112 | static int lastId; | 110 | static int lastId; |
113 | AppLnkPrivate *d; | 111 | AppLnkPrivate *d; |
114 | friend class AppLnkSet; | 112 | friend class AppLnkSet; |
115 | 113 | ||
116 | virtual void invoke(const QStringList& args) const; | 114 | virtual void invoke(const QStringList& args) const; |
117 | bool ensureLinkExists() const; | 115 | bool ensureLinkExists() const; |
118 | void storeLink() const; | 116 | void storeLink() const; |
119 | 117 | ||
120 | private: | 118 | private: |
121 | const QPixmap& pixmap(int pos, int size) const; | 119 | const QPixmap& pixmap(int pos, int size) const; |
122 | }; | 120 | }; |
123 | 121 | ||
124 | class DocLnk : public AppLnk | 122 | class DocLnk : public AppLnk |
125 | { | 123 | { |
126 | public: | 124 | public: |
127 | DocLnk(); | 125 | DocLnk(); |
128 | DocLnk( const DocLnk &o ) : AppLnk(o) { } | 126 | DocLnk( const DocLnk &o ) : AppLnk(o) { } |
129 | DocLnk( const QString &file ); | 127 | DocLnk( const QString &file ); |
130 | DocLnk( const QString &file, bool may_be_desktopfile ); | 128 | DocLnk( const QString &file, bool may_be_desktopfile ); |
131 | virtual ~DocLnk(); | 129 | virtual ~DocLnk(); |
132 | 130 | ||
133 | 131 | ||
134 | #ifdef QTOPIA_INTERNAL_APPLNKASSIGN | 132 | #ifdef QTOPIA_INTERNAL_APPLNKASSIGN |
135 | DocLnk &operator=(const DocLnk &other) { AppLnk::operator=(other); return *this; } | 133 | DocLnk &operator=(const DocLnk &other) { AppLnk::operator=(other); return *this; } |
136 | #endif | 134 | #endif |
137 | 135 | ||
138 | QString exec() const; | 136 | QString exec() const; |
139 | 137 | ||
140 | protected: | 138 | protected: |
141 | void invoke(const QStringList& args) const; | 139 | void invoke(const QStringList& args) const; |
142 | 140 | ||
143 | private: | 141 | private: |
144 | void init(const QString &file); | 142 | void init(const QString &file); |
145 | }; | 143 | }; |
146 | 144 | ||
147 | class AppLnkSet | 145 | class AppLnkSet |
148 | { | 146 | { |
149 | public: | 147 | public: |
150 | AppLnkSet(); | 148 | AppLnkSet(); |
151 | AppLnkSet( const QString &dir ); | 149 | AppLnkSet( const QString &dir ); |
152 | ~AppLnkSet(); | 150 | ~AppLnkSet(); |
153 | 151 | ||
154 | const AppLnk *find( int id ) const; | 152 | const AppLnk *find( int id ) const; |
155 | const AppLnk *findExec( const QString& execname ) const; | 153 | const AppLnk *findExec( const QString& execname ) const; |
156 | 154 | ||
157 | QStringList types() const { return typs; } | 155 | QStringList types() const { return typs; } |
158 | QString typeName( const QString& ) const; | 156 | QString typeName( const QString& ) const; |
159 | QPixmap typePixmap( const QString& ) const; | 157 | QPixmap typePixmap( const QString& ) const; |
160 | QPixmap typeBigPixmap( const QString& ) const; | 158 | QPixmap typeBigPixmap( const QString& ) const; |
161 | 159 | ||
162 | void add(AppLnk*); | 160 | void add(AppLnk*); |
163 | bool remove(AppLnk*); | 161 | bool remove(AppLnk*); |
164 | void clear() { | 162 | void clear() { |
165 | QListIterator<AppLnk> it( mApps ); | 163 | QListIterator<AppLnk> it( mApps ); |
166 | for ( ; it.current(); ) { | 164 | for ( ; it.current(); ) { |
167 | AppLnk* a = *it; | 165 | AppLnk* a = *it; |
168 | ++it; | 166 | ++it; |
169 | a->mId = 0; | 167 | a->mId = 0; |
170 | delete a; | 168 | delete a; |
171 | } | 169 | } |
172 | mApps.clear(); | 170 | mApps.clear(); |
173 | typs.clear(); | 171 | typs.clear(); |
174 | } | 172 | } |
175 | 173 | ||
176 | const QList<AppLnk> &children() const { return mApps; } | 174 | const QList<AppLnk> &children() const { return mApps; } |
177 | void detachChildren(); | 175 | void detachChildren(); |
178 | 176 | ||
179 | protected: | 177 | protected: |
180 | friend class AppLnk; | 178 | friend class AppLnk; |
181 | QList<AppLnk> mApps; | 179 | QList<AppLnk> mApps; |
182 | QString mFile; | 180 | QString mFile; |
183 | QStringList typs; | 181 | QStringList typs; |
184 | AppLnkSetPrivate *d; | 182 | AppLnkSetPrivate *d; |
185 | 183 | ||
186 | private: | 184 | private: |
187 | AppLnkSet( const AppLnkSet & ); // no copying! | 185 | AppLnkSet( const AppLnkSet & ); // no copying! |
188 | void findChildren(const QString &, const QString& t, const QString& lt, int depth = 0); | 186 | void findChildren(const QString &, const QString& t, const QString& lt, int depth = 0); |
189 | }; | 187 | }; |
190 | 188 | ||
191 | class DocLnkSet : public AppLnkSet | 189 | class DocLnkSet : public AppLnkSet |
192 | { | 190 | { |
193 | public: | 191 | public: |
194 | DocLnkSet(); | 192 | DocLnkSet(); |
195 | DocLnkSet( const QString &dir, const QString &mimefilter=QString::null ); | 193 | DocLnkSet( const QString &dir, const QString &mimefilter=QString::null ); |
196 | 194 | ||
197 | const QList<DocLnk> &children() const { return (const QList<DocLnk> &)mApps; } | 195 | const QList<DocLnk> &children() const { return (const QList<DocLnk> &)mApps; } |
198 | 196 | ||
199 | void appendFrom( DocLnkSet& other ); | 197 | void appendFrom( DocLnkSet& other ); |
200 | 198 | ||
201 | private: | 199 | private: |
202 | DocLnkSet( const DocLnkSet & ); // no copying! | 200 | DocLnkSet( const DocLnkSet & ); // no copying! |
203 | void findChildren(const QString &dr, const QValueList<QRegExp> &mimeFilters, QDict<void> &reference, int depth=0); | 201 | void findChildren(const QString &dr, const QValueList<QRegExp> &mimeFilters, QDict<void> &reference, int depth=0); |
204 | }; | 202 | }; |
205 | 203 | ||
206 | 204 | ||
207 | #endif // __APPLNK_H__ | 205 | #endif // __APPLNK_H__ |
208 | 206 | ||
diff --git a/library/backend/vcc.y b/library/backend/vcc.y index 94a8fea..4c79368 100644 --- a/library/backend/vcc.y +++ b/library/backend/vcc.y | |||
@@ -12,1207 +12,1209 @@ The term Licensor shall mean any of the Licensors. | |||
12 | Subject to acceptance of the following conditions, permission is hereby | 12 | Subject to acceptance of the following conditions, permission is hereby |
13 | granted by Licensors without the need for written agreement and without | 13 | granted by Licensors without the need for written agreement and without |
14 | license or royalty fees, to use, copy, modify and distribute this | 14 | license or royalty fees, to use, copy, modify and distribute this |
15 | software for any purpose. | 15 | software for any purpose. |
16 | 16 | ||
17 | The above copyright notice and the following four paragraphs must be | 17 | The above copyright notice and the following four paragraphs must be |
18 | reproduced in all copies of this software and any software including | 18 | reproduced in all copies of this software and any software including |
19 | this software. | 19 | this software. |
20 | 20 | ||
21 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS AND NO LICENSOR SHALL HAVE | 21 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS AND NO LICENSOR SHALL HAVE |
22 | ANY OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR | 22 | ANY OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR |
23 | MODIFICATIONS. | 23 | MODIFICATIONS. |
24 | 24 | ||
25 | IN NO EVENT SHALL ANY LICENSOR BE LIABLE TO ANY PARTY FOR DIRECT, | 25 | IN NO EVENT SHALL ANY LICENSOR BE LIABLE TO ANY PARTY FOR DIRECT, |
26 | INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT | 26 | INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT |
27 | OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | 27 | OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH |
28 | DAMAGE. | 28 | DAMAGE. |
29 | 29 | ||
30 | EACH LICENSOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, | 30 | EACH LICENSOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, |
31 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF NONINFRINGEMENT OR THE | 31 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF NONINFRINGEMENT OR THE |
32 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 32 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
33 | PURPOSE. | 33 | PURPOSE. |
34 | 34 | ||
35 | The software is provided with RESTRICTED RIGHTS. Use, duplication, or | 35 | The software is provided with RESTRICTED RIGHTS. Use, duplication, or |
36 | disclosure by the government are subject to restrictions set forth in | 36 | disclosure by the government are subject to restrictions set forth in |
37 | DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. | 37 | DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. |
38 | 38 | ||
39 | ***************************************************************************/ | 39 | ***************************************************************************/ |
40 | 40 | ||
41 | /* | 41 | /* |
42 | * src: vcc.c | 42 | * src: vcc.c |
43 | * doc: Parser for vCard and vCalendar. Note that this code is | 43 | * doc: Parser for vCard and vCalendar. Note that this code is |
44 | * generated by a yacc parser generator. Generally it should not | 44 | * generated by a yacc parser generator. Generally it should not |
45 | * be edited by hand. The real source is vcc.y. The #line directives | 45 | * be edited by hand. The real source is vcc.y. The #line directives |
46 | * can be commented out here to make it easier to trace through | 46 | * can be commented out here to make it easier to trace through |
47 | * in a debugger. However, if a bug is found it should | 47 | * in a debugger. However, if a bug is found it should |
48 | * be fixed in vcc.y and this file regenerated. | 48 | * be fixed in vcc.y and this file regenerated. |
49 | */ | 49 | */ |
50 | 50 | ||
51 | 51 | ||
52 | /* debugging utilities */ | 52 | /* debugging utilities */ |
53 | #if __DEBUG | 53 | #if __DEBUG |
54 | #define DBG_(x) printf x | 54 | #define DBG_(x) printf x |
55 | #else | 55 | #else |
56 | #define DBG_(x) | 56 | #define DBG_(x) |
57 | #endif | 57 | #endif |
58 | 58 | ||
59 | /**** External Functions ****/ | 59 | /**** External Functions ****/ |
60 | 60 | ||
61 | /* assign local name to parser variables and functions so that | 61 | /* assign local name to parser variables and functions so that |
62 | we can use more than one yacc based parser. | 62 | we can use more than one yacc based parser. |
63 | */ | 63 | */ |
64 | 64 | ||
65 | #if 0 | 65 | #if 0 |
66 | #define yyparse mime_parse | 66 | #define yyparse mime_parse |
67 | #define yylex mime_lex | 67 | #define yylex mime_lex |
68 | #define yyerror mime_error | 68 | #define yyerror mime_error |
69 | #define yychar mime_char | 69 | #define yychar mime_char |
70 | /* #define p_yyval p_mime_val */ | 70 | /* #define p_yyval p_mime_val */ |
71 | #undef yyval | 71 | #undef yyval |
72 | #define yyval mime_yyval | 72 | #define yyval mime_yyval |
73 | /* #define p_yylval p_mime_lval */ | 73 | /* #define p_yylval p_mime_lval */ |
74 | #undef yylval | 74 | #undef yylval |
75 | #define yylval mime_yylval | 75 | #define yylval mime_yylval |
76 | #define yydebug mime_debug | 76 | #define yydebug mime_debug |
77 | #define yynerrs mime_nerrs | 77 | #define yynerrs mime_nerrs |
78 | #define yyerrflag mime_errflag | 78 | #define yyerrflag mime_errflag |
79 | #define yyss mime_ss | 79 | #define yyss mime_ss |
80 | #define yyssp mime_ssp | 80 | #define yyssp mime_ssp |
81 | #define yyvs mime_vs | 81 | #define yyvs mime_vs |
82 | #define yyvsp mime_vsp | 82 | #define yyvsp mime_vsp |
83 | #define yylhs mime_lhs | 83 | #define yylhs mime_lhs |
84 | #define yylen mime_len | 84 | #define yylen mime_len |
85 | #define yydefred mime_defred | 85 | #define yydefred mime_defred |
86 | #define yydgoto mime_dgoto | 86 | #define yydgoto mime_dgoto |
87 | #define yysindex mime_sindex | 87 | #define yysindex mime_sindex |
88 | #define yyrindex mime_rindex | 88 | #define yyrindex mime_rindex |
89 | #define yygindex mime_gindex | 89 | #define yygindex mime_gindex |
90 | #define yytable mime_table | 90 | #define yytable mime_table |
91 | #define yycheck mime_check | 91 | #define yycheck mime_check |
92 | #define yyname mime_name | 92 | #define yyname mime_name |
93 | #define yyrule mime_rule | 93 | #define yyrule mime_rule |
94 | #ifdef YYPREFIX | 94 | #ifdef YYPREFIX |
95 | #undef YYPREFIX | 95 | #undef YYPREFIX |
96 | #endif | 96 | #endif |
97 | #define YYPREFIX "mime_" | 97 | #define YYPREFIX "mime_" |
98 | #endif | 98 | #endif |
99 | 99 | ||
100 | 100 | ||
101 | #ifndef _NO_LINE_FOLDING | 101 | #ifndef _NO_LINE_FOLDING |
102 | #define _SUPPORT_LINE_FOLDING 1 | 102 | #define _SUPPORT_LINE_FOLDING 1 |
103 | #endif | 103 | #endif |
104 | 104 | ||
105 | /* undef below if compile with MFC */ | 105 | /* undef below if compile with MFC */ |
106 | /* #define INCLUDEMFC 1 */ | 106 | /* #define INCLUDEMFC 1 */ |
107 | 107 | ||
108 | #if defined(WIN32) || defined(_WIN32) | 108 | #if defined(WIN32) || defined(_WIN32) |
109 | #ifdef INCLUDEMFC | 109 | #ifdef INCLUDEMFC |
110 | #include <afx.h> | 110 | #include <afx.h> |
111 | #endif | 111 | #endif |
112 | #endif | 112 | #endif |
113 | 113 | ||
114 | #include <string.h> | 114 | #include <string.h> |
115 | #ifndef __MWERKS__ | 115 | #ifndef __MWERKS__ |
116 | #include <stdlib.h> | 116 | #include <stdlib.h> |
117 | #endif | 117 | #endif |
118 | #include <stdio.h> | 118 | #include <stdio.h> |
119 | #include <stdlib.h> | 119 | #include <stdlib.h> |
120 | #include <ctype.h> | 120 | #include <ctype.h> |
121 | 121 | ||
122 | //#ifdef PALMTOPCENTER | 122 | //#ifdef PALMTOPCENTER |
123 | //#include <qpe/vobject_p.h> | 123 | //#include <qpe/vobject_p.h> |
124 | //#else | 124 | //#else |
125 | #include "vobject_p.h" | 125 | #include "vobject_p.h" |
126 | //#endif | 126 | //#endif |
127 | 127 | ||
128 | /**** Types, Constants ****/ | 128 | /**** Types, Constants ****/ |
129 | 129 | ||
130 | #define YYDEBUG 0/* 1 to compile in some debugging code */ | 130 | #define YYDEBUG 0/* 1 to compile in some debugging code */ |
131 | #define MAXTOKEN 256/* maximum token (line) length */ | 131 | #define MAXTOKEN 256/* maximum token (line) length */ |
132 | #define YYSTACKSIZE 100// ~unref ? | 132 | #define YYSTACKSIZE 100// ~unref ? |
133 | #define MAXLEVEL 10/* max # of nested objects parseable */ | 133 | #define MAXLEVEL 10/* max # of nested objects parseable */ |
134 | /* (includes outermost) */ | 134 | /* (includes outermost) */ |
135 | 135 | ||
136 | 136 | ||
137 | /**** Global Variables ****/ | 137 | /**** Global Variables ****/ |
138 | int mime_lineNum, mime_numErrors; /* yyerror() can use these */ | 138 | int mime_lineNum, mime_numErrors; /* yyerror() can use these */ |
139 | static VObject* vObjList; | 139 | static VObject* vObjList; |
140 | static VObject *curProp; | 140 | static VObject *curProp; |
141 | static VObject *curObj; | 141 | static VObject *curObj; |
142 | static VObject* ObjStack[MAXLEVEL]; | 142 | static VObject* ObjStack[MAXLEVEL]; |
143 | static int ObjStackTop; | 143 | static int ObjStackTop; |
144 | 144 | ||
145 | 145 | ||
146 | /* A helpful utility for the rest of the app. */ | 146 | /* A helpful utility for the rest of the app. */ |
147 | #if __CPLUSPLUS__ | 147 | #if __CPLUSPLUS__ |
148 | extern "C" { | 148 | extern "C" { |
149 | #endif | 149 | #endif |
150 | 150 | ||
151 | extern void yyerror(char *s); | 151 | extern void yyerror(char *s); |
152 | 152 | ||
153 | #if __CPLUSPLUS__ | 153 | #if __CPLUSPLUS__ |
154 | }; | 154 | }; |
155 | #endif | 155 | #endif |
156 | 156 | ||
157 | int yyparse(); | 157 | int yyparse(); |
158 | 158 | ||
159 | enum LexMode { | 159 | enum LexMode { |
160 | L_NORMAL, | 160 | L_NORMAL, |
161 | L_VCARD, | 161 | L_VCARD, |
162 | L_VCAL, | 162 | L_VCAL, |
163 | L_VEVENT, | 163 | L_VEVENT, |
164 | L_VTODO, | 164 | L_VTODO, |
165 | L_VALUES, | 165 | L_VALUES, |
166 | L_BASE64, | 166 | L_BASE64, |
167 | L_QUOTED_PRINTABLE | 167 | L_QUOTED_PRINTABLE |
168 | }; | 168 | }; |
169 | 169 | ||
170 | /**** Private Forward Declarations ****/ | 170 | /**** Private Forward Declarations ****/ |
171 | static int pushVObject(const char *prop); | 171 | static int pushVObject(const char *prop); |
172 | static VObject* popVObject(); | 172 | static VObject* popVObject(); |
173 | static void lexPopMode(int top); | 173 | static void lexPopMode(int top); |
174 | static int lexWithinMode(enum LexMode mode); | 174 | static int lexWithinMode(enum LexMode mode); |
175 | static void lexPushMode(enum LexMode mode); | 175 | static void lexPushMode(enum LexMode mode); |
176 | static void enterProps(const char *s); | 176 | static void enterProps(const char *s); |
177 | static void enterAttr(const char *s1, const char *s2); | 177 | static void enterAttr(const char *s1, const char *s2); |
178 | static void enterValues(const char *value); | 178 | static void enterValues(const char *value); |
179 | #define mime_error yyerror | 179 | #define mime_error yyerror |
180 | void mime_error(char *s); | 180 | void mime_error(char *s); |
181 | void mime_error_(char *s); | 181 | void mime_error_(char *s); |
182 | 182 | ||
183 | %} | 183 | %} |
184 | 184 | ||
185 | /***************************************************************************/ | 185 | /***************************************************************************/ |
186 | /*** The grammar ****/ | 186 | /*** The grammar ****/ |
187 | /***************************************************************************/ | 187 | /***************************************************************************/ |
188 | 188 | ||
189 | %union { | 189 | %union { |
190 | char *str; | 190 | char *str; |
191 | VObject *vobj; | 191 | VObject *vobj; |
192 | } | 192 | } |
193 | 193 | ||
194 | %token | 194 | %token |
195 | EQ COLON DOT SEMICOLON SPACE HTAB LINESEP NEWLINE | 195 | EQ COLON DOT SEMICOLON SPACE HTAB LINESEP NEWLINE |
196 | BEGIN_VCARD END_VCARD BEGIN_VCAL END_VCAL | 196 | BEGIN_VCARD END_VCARD BEGIN_VCAL END_VCAL |
197 | BEGIN_VEVENT END_VEVENT BEGIN_VTODO END_VTODO | 197 | BEGIN_VEVENT END_VEVENT BEGIN_VTODO END_VTODO |
198 | ID | 198 | ID |
199 | 199 | ||
200 | /* | 200 | /* |
201 | * NEWLINE is the token that would occur outside a vCard, | 201 | * NEWLINE is the token that would occur outside a vCard, |
202 | * while LINESEP is the token that would occur inside a vCard. | 202 | * while LINESEP is the token that would occur inside a vCard. |
203 | */ | 203 | */ |
204 | 204 | ||
205 | %token <str> | 205 | %token <str> |
206 | STRING ID | 206 | STRING ID |
207 | 207 | ||
208 | %type <str> name value | 208 | %type <str> name value |
209 | 209 | ||
210 | %type <vobj> vcard vcal vobject | 210 | %type <vobj> vcard vcal vobject |
211 | 211 | ||
212 | %start mime | 212 | %start mime |
213 | 213 | ||
214 | %% | 214 | %% |
215 | 215 | ||
216 | 216 | ||
217 | mime: vobjects | 217 | mime: vobjects |
218 | ; | 218 | ; |
219 | 219 | ||
220 | vobjects: vobjects vobject | 220 | vobjects: vobjects vobject |
221 | { addList(&vObjList, $2); curObj = 0; } | 221 | { addList(&vObjList, $2); curObj = 0; } |
222 | | vobject | 222 | | vobject |
223 | { addList(&vObjList, $1); curObj = 0; } | 223 | { addList(&vObjList, $1); curObj = 0; } |
224 | ; | 224 | ; |
225 | 225 | ||
226 | vobject: vcard | 226 | vobject: vcard |
227 | | vcal | 227 | | vcal |
228 | ; | 228 | ; |
229 | 229 | ||
230 | vcard: | 230 | vcard: |
231 | BEGIN_VCARD | 231 | BEGIN_VCARD |
232 | { | 232 | { |
233 | lexPushMode(L_VCARD); | 233 | lexPushMode(L_VCARD); |
234 | if (!pushVObject(VCCardProp)) YYERROR; | 234 | if (!pushVObject(VCCardProp)) YYERROR; |
235 | } | 235 | } |
236 | items END_VCARD | 236 | items END_VCARD |
237 | { | 237 | { |
238 | lexPopMode(0); | 238 | lexPopMode(0); |
239 | $$ = popVObject(); | 239 | $$ = popVObject(); |
240 | } | 240 | } |
241 | | BEGIN_VCARD | 241 | | BEGIN_VCARD |
242 | { | 242 | { |
243 | lexPushMode(L_VCARD); | 243 | lexPushMode(L_VCARD); |
244 | if (!pushVObject(VCCardProp)) YYERROR; | 244 | if (!pushVObject(VCCardProp)) YYERROR; |
245 | } | 245 | } |
246 | END_VCARD | 246 | END_VCARD |
247 | { | 247 | { |
248 | lexPopMode(0); | 248 | lexPopMode(0); |
249 | $$ = popVObject(); | 249 | $$ = popVObject(); |
250 | } | 250 | } |
251 | ; | 251 | ; |
252 | 252 | ||
253 | items: items item | 253 | items: items item |
254 | | item | 254 | | item |
255 | ; | 255 | ; |
256 | 256 | ||
257 | item: prop COLON | 257 | item: prop COLON |
258 | { | 258 | { |
259 | lexPushMode(L_VALUES); | 259 | lexPushMode(L_VALUES); |
260 | } | 260 | } |
261 | values LINESEP | 261 | values LINESEP |
262 | { | 262 | { |
263 | if (lexWithinMode(L_BASE64) || lexWithinMode(L_QUOTED_PRINTABLE)) | 263 | if (lexWithinMode(L_BASE64) || lexWithinMode(L_QUOTED_PRINTABLE)) |
264 | lexPopMode(0); | 264 | lexPopMode(0); |
265 | lexPopMode(0); | 265 | lexPopMode(0); |
266 | } | 266 | } |
267 | | error | 267 | | error |
268 | ; | 268 | ; |
269 | 269 | ||
270 | prop: name | 270 | prop: name |
271 | { | 271 | { |
272 | enterProps($1); | 272 | enterProps($1); |
273 | } | 273 | } |
274 | attr_params | 274 | attr_params |
275 | | name | 275 | | name |
276 | { | 276 | { |
277 | enterProps($1); | 277 | enterProps($1); |
278 | } | 278 | } |
279 | ; | 279 | ; |
280 | 280 | ||
281 | attr_params: attr_params attr_param | 281 | attr_params: attr_params attr_param |
282 | | attr_param | 282 | | attr_param |
283 | ; | 283 | ; |
284 | 284 | ||
285 | attr_param: SEMICOLON attr | 285 | attr_param: SEMICOLON attr |
286 | ; | 286 | ; |
287 | 287 | ||
288 | attr: name | 288 | attr: name |
289 | { | 289 | { |
290 | enterAttr($1,0); | 290 | enterAttr($1,0); |
291 | } | 291 | } |
292 | | name EQ name | 292 | | name EQ name |
293 | { | 293 | { |
294 | enterAttr($1,$3); | 294 | enterAttr($1,$3); |
295 | 295 | ||
296 | } | 296 | } |
297 | ; | 297 | ; |
298 | 298 | ||
299 | name: ID | 299 | name: ID |
300 | ; | 300 | ; |
301 | 301 | ||
302 | values: value SEMICOLON { enterValues($1); } values | 302 | values: value SEMICOLON { enterValues($1); } values |
303 | | value | 303 | | value |
304 | { enterValues($1); } | 304 | { enterValues($1); } |
305 | ; | 305 | ; |
306 | 306 | ||
307 | value: STRING | 307 | value: STRING |
308 | | | 308 | | |
309 | { $$ = 0; } | 309 | { $$ = 0; } |
310 | ; | 310 | ; |
311 | 311 | ||
312 | vcal: | 312 | vcal: |
313 | BEGIN_VCAL | 313 | BEGIN_VCAL |
314 | { if (!pushVObject(VCCalProp)) YYERROR; } | 314 | { if (!pushVObject(VCCalProp)) YYERROR; } |
315 | calitems | 315 | calitems |
316 | END_VCAL | 316 | END_VCAL |
317 | { $$ = popVObject(); } | 317 | { $$ = popVObject(); } |
318 | | BEGIN_VCAL | 318 | | BEGIN_VCAL |
319 | { if (!pushVObject(VCCalProp)) YYERROR; } | 319 | { if (!pushVObject(VCCalProp)) YYERROR; } |
320 | END_VCAL | 320 | END_VCAL |
321 | { $$ = popVObject(); } | 321 | { $$ = popVObject(); } |
322 | ; | 322 | ; |
323 | 323 | ||
324 | calitems: calitems calitem | 324 | calitems: calitems calitem |
325 | | calitem | 325 | | calitem |
326 | ; | 326 | ; |
327 | 327 | ||
328 | calitem: | 328 | calitem: |
329 | eventitem | 329 | eventitem |
330 | | todoitem | 330 | | todoitem |
331 | | items | 331 | | items |
332 | ; | 332 | ; |
333 | 333 | ||
334 | eventitem: | 334 | eventitem: |
335 | BEGIN_VEVENT | 335 | BEGIN_VEVENT |
336 | { | 336 | { |
337 | lexPushMode(L_VEVENT); | 337 | lexPushMode(L_VEVENT); |
338 | if (!pushVObject(VCEventProp)) YYERROR; | 338 | if (!pushVObject(VCEventProp)) YYERROR; |
339 | } | 339 | } |
340 | items | 340 | items |
341 | END_VEVENT | 341 | END_VEVENT |
342 | { | 342 | { |
343 | lexPopMode(0); | 343 | lexPopMode(0); |
344 | popVObject(); | 344 | popVObject(); |
345 | } | 345 | } |
346 | | BEGIN_VEVENT | 346 | | BEGIN_VEVENT |
347 | { | 347 | { |
348 | lexPushMode(L_VEVENT); | 348 | lexPushMode(L_VEVENT); |
349 | if (!pushVObject(VCEventProp)) YYERROR; | 349 | if (!pushVObject(VCEventProp)) YYERROR; |
350 | } | 350 | } |
351 | END_VEVENT | 351 | END_VEVENT |
352 | { | 352 | { |
353 | lexPopMode(0); | 353 | lexPopMode(0); |
354 | popVObject(); | 354 | popVObject(); |
355 | } | 355 | } |
356 | ; | 356 | ; |
357 | 357 | ||
358 | todoitem: | 358 | todoitem: |
359 | BEGIN_VTODO | 359 | BEGIN_VTODO |
360 | { | 360 | { |
361 | lexPushMode(L_VTODO); | 361 | lexPushMode(L_VTODO); |
362 | if (!pushVObject(VCTodoProp)) YYERROR; | 362 | if (!pushVObject(VCTodoProp)) YYERROR; |
363 | } | 363 | } |
364 | items | 364 | items |
365 | END_VTODO | 365 | END_VTODO |
366 | { | 366 | { |
367 | lexPopMode(0); | 367 | lexPopMode(0); |
368 | popVObject(); | 368 | popVObject(); |
369 | } | 369 | } |
370 | | BEGIN_VTODO | 370 | | BEGIN_VTODO |
371 | { | 371 | { |
372 | lexPushMode(L_VTODO); | 372 | lexPushMode(L_VTODO); |
373 | if (!pushVObject(VCTodoProp)) YYERROR; | 373 | if (!pushVObject(VCTodoProp)) YYERROR; |
374 | } | 374 | } |
375 | END_VTODO | 375 | END_VTODO |
376 | { | 376 | { |
377 | lexPopMode(0); | 377 | lexPopMode(0); |
378 | popVObject(); | 378 | popVObject(); |
379 | } | 379 | } |
380 | ; | 380 | ; |
381 | 381 | ||
382 | %% | 382 | %% |
383 | /*------------------------------------*/ | 383 | /*------------------------------------*/ |
384 | static int pushVObject(const char *prop) | 384 | static int pushVObject(const char *prop) |
385 | { | 385 | { |
386 | VObject *newObj; | 386 | VObject *newObj; |
387 | if (ObjStackTop == MAXLEVEL) | 387 | if (ObjStackTop == MAXLEVEL) |
388 | return FALSE; | 388 | return FALSE; |
389 | 389 | ||
390 | ObjStack[++ObjStackTop] = curObj; | 390 | ObjStack[++ObjStackTop] = curObj; |
391 | 391 | ||
392 | if (curObj) { | 392 | if (curObj) { |
393 | newObj = addProp(curObj,prop); | 393 | newObj = addProp(curObj,prop); |
394 | curObj = newObj; | 394 | curObj = newObj; |
395 | } | 395 | } |
396 | else | 396 | else |
397 | curObj = newVObject(prop); | 397 | curObj = newVObject(prop); |
398 | 398 | ||
399 | return TRUE; | 399 | return TRUE; |
400 | } | 400 | } |
401 | 401 | ||
402 | 402 | ||
403 | /*---------------------------------------*/ | 403 | /*---------------------------------------*/ |
404 | /* This pops the recently built vCard off the stack and returns it. */ | 404 | /* This pops the recently built vCard off the stack and returns it. */ |
405 | static VObject* popVObject() | 405 | static VObject* popVObject() |
406 | { | 406 | { |
407 | VObject *oldObj; | 407 | VObject *oldObj; |
408 | if (ObjStackTop < 0) { | 408 | if (ObjStackTop < 0) { |
409 | yyerror("pop on empty Object Stack\n"); | 409 | yyerror("pop on empty Object Stack\n"); |
410 | return 0; | 410 | return 0; |
411 | } | 411 | } |
412 | oldObj = curObj; | 412 | oldObj = curObj; |
413 | curObj = ObjStack[ObjStackTop--]; | 413 | curObj = ObjStack[ObjStackTop--]; |
414 | 414 | ||
415 | return oldObj; | 415 | return oldObj; |
416 | } | 416 | } |
417 | 417 | ||
418 | 418 | ||
419 | static void enterValues(const char *value) | 419 | static void enterValues(const char *value) |
420 | { | 420 | { |
421 | if (fieldedProp && *fieldedProp) { | 421 | if (fieldedProp && *fieldedProp) { |
422 | if (value) { | 422 | if (value) { |
423 | addPropValue(curProp,*fieldedProp,value); | 423 | addPropValue(curProp,*fieldedProp,value); |
424 | } | 424 | } |
425 | /* else this field is empty, advance to next field */ | 425 | /* else this field is empty, advance to next field */ |
426 | fieldedProp++; | 426 | fieldedProp++; |
427 | } | 427 | } |
428 | else { | 428 | else { |
429 | if (value) { | 429 | if (value) { |
430 | setVObjectStringZValue_(curProp,strdup( value )); | 430 | setVObjectStringZValue_(curProp,strdup( value )); |
431 | } | 431 | } |
432 | } | 432 | } |
433 | deleteStr(value); | 433 | deleteStr(value); |
434 | } | 434 | } |
435 | 435 | ||
436 | static void enterProps(const char *s) | 436 | static void enterProps(const char *s) |
437 | { | 437 | { |
438 | curProp = addGroup(curObj,s); | 438 | curProp = addGroup(curObj,s); |
439 | deleteStr(s); | 439 | deleteStr(s); |
440 | } | 440 | } |
441 | 441 | ||
442 | static void enterAttr(const char *s1, const char *s2) | 442 | static void enterAttr(const char *s1, const char *s2) |
443 | { | 443 | { |
444 | const char *p1, *p2; | 444 | const char *p1, *p2; |
445 | p1 = lookupProp_(s1); | 445 | p1 = lookupProp_(s1); |
446 | if (s2) { | 446 | if (s2) { |
447 | VObject *a; | 447 | VObject *a; |
448 | p2 = lookupProp_(s2); | 448 | p2 = lookupProp_(s2); |
449 | a = addProp(curProp,p1); | 449 | a = addProp(curProp,p1); |
450 | setVObjectStringZValue(a,p2); | 450 | setVObjectStringZValue(a,p2); |
451 | } | 451 | } |
452 | else | 452 | else |
453 | addProp(curProp,p1); | 453 | addProp(curProp,p1); |
454 | if (qstricmp(p1,VCBase64Prop) == 0 || (s2 && qstricmp(p2,VCBase64Prop)==0)) | 454 | if (qstricmp(p1,VCBase64Prop) == 0 || (s2 && qstricmp(p2,VCBase64Prop)==0)) |
455 | lexPushMode(L_BASE64); | 455 | lexPushMode(L_BASE64); |
456 | else if (qstricmp(p1,VCQuotedPrintableProp) == 0 | 456 | else if (qstricmp(p1,VCQuotedPrintableProp) == 0 |
457 | || (s2 && qstricmp(p2,VCQuotedPrintableProp)==0)) | 457 | || (s2 && qstricmp(p2,VCQuotedPrintableProp)==0)) |
458 | lexPushMode(L_QUOTED_PRINTABLE); | 458 | lexPushMode(L_QUOTED_PRINTABLE); |
459 | deleteStr(s1); deleteStr(s2); | 459 | deleteStr(s1); deleteStr(s2); |
460 | } | 460 | } |
461 | 461 | ||
462 | 462 | ||
463 | #define MAX_LEX_LOOKAHEAD_0 32 | 463 | #define MAX_LEX_LOOKAHEAD_0 32 |
464 | #define MAX_LEX_LOOKAHEAD 64 | 464 | #define MAX_LEX_LOOKAHEAD 64 |
465 | #define MAX_LEX_MODE_STACK_SIZE 10 | 465 | #define MAX_LEX_MODE_STACK_SIZE 10 |
466 | #define LEXMODE() (lexBuf.lexModeStack[lexBuf.lexModeStackTop]) | 466 | #define LEXMODE() (lexBuf.lexModeStack[lexBuf.lexModeStackTop]) |
467 | 467 | ||
468 | struct LexBuf { | 468 | struct LexBuf { |
469 | /* input */ | 469 | /* input */ |
470 | #ifdef INCLUDEMFC | 470 | #ifdef INCLUDEMFC |
471 | CFile *inputFile; | 471 | CFile *inputFile; |
472 | #else | 472 | #else |
473 | FILE *inputFile; | 473 | FILE *inputFile; |
474 | #endif | 474 | #endif |
475 | char *inputString; | 475 | char *inputString; |
476 | unsigned long curPos; | 476 | unsigned long curPos; |
477 | unsigned long inputLen; | 477 | unsigned long inputLen; |
478 | /* lookahead buffer */ | 478 | /* lookahead buffer */ |
479 | /* -- lookahead buffer is short instead of char so that EOF | 479 | /* -- lookahead buffer is short instead of char so that EOF |
480 | / can be represented correctly. | 480 | / can be represented correctly. |
481 | */ | 481 | */ |
482 | unsigned long len; | 482 | unsigned long len; |
483 | short buf[MAX_LEX_LOOKAHEAD]; | 483 | short buf[MAX_LEX_LOOKAHEAD]; |
484 | unsigned long getPtr; | 484 | unsigned long getPtr; |
485 | /* context stack */ | 485 | /* context stack */ |
486 | unsigned long lexModeStackTop; | 486 | unsigned long lexModeStackTop; |
487 | enum LexMode lexModeStack[MAX_LEX_MODE_STACK_SIZE]; | 487 | enum LexMode lexModeStack[MAX_LEX_MODE_STACK_SIZE]; |
488 | /* token buffer */ | 488 | /* token buffer */ |
489 | unsigned long maxToken; | 489 | unsigned long maxToken; |
490 | char *strs; | 490 | char *strs; |
491 | unsigned long strsLen; | 491 | unsigned long strsLen; |
492 | } lexBuf; | 492 | } lexBuf; |
493 | 493 | ||
494 | static void lexPushMode(enum LexMode mode) | 494 | static void lexPushMode(enum LexMode mode) |
495 | { | 495 | { |
496 | if (lexBuf.lexModeStackTop == (MAX_LEX_MODE_STACK_SIZE-1)) | 496 | if (lexBuf.lexModeStackTop == (MAX_LEX_MODE_STACK_SIZE-1)) |
497 | yyerror("lexical context stack overflow"); | 497 | yyerror("lexical context stack overflow"); |
498 | else { | 498 | else { |
499 | lexBuf.lexModeStack[++lexBuf.lexModeStackTop] = mode; | 499 | lexBuf.lexModeStack[++lexBuf.lexModeStackTop] = mode; |
500 | } | 500 | } |
501 | } | 501 | } |
502 | 502 | ||
503 | static void lexPopMode(int top) | 503 | static void lexPopMode(int top) |
504 | { | 504 | { |
505 | /* special case of pop for ease of error recovery -- this | 505 | /* special case of pop for ease of error recovery -- this |
506 | version will never underflow */ | 506 | version will never underflow */ |
507 | if (top) | 507 | if (top) |
508 | lexBuf.lexModeStackTop = 0; | 508 | lexBuf.lexModeStackTop = 0; |
509 | else | 509 | else |
510 | if (lexBuf.lexModeStackTop > 0) lexBuf.lexModeStackTop--; | 510 | if (lexBuf.lexModeStackTop > 0) lexBuf.lexModeStackTop--; |
511 | } | 511 | } |
512 | 512 | ||
513 | static int lexWithinMode(enum LexMode mode) { | 513 | static int lexWithinMode(enum LexMode mode) { |
514 | unsigned long i; | 514 | unsigned long i; |
515 | for (i=0;i<lexBuf.lexModeStackTop;i++) | 515 | for (i=0;i<lexBuf.lexModeStackTop;i++) |
516 | if (mode == lexBuf.lexModeStack[i]) return 1; | 516 | if (mode == lexBuf.lexModeStack[i]) return 1; |
517 | return 0; | 517 | return 0; |
518 | } | 518 | } |
519 | 519 | ||
520 | static int lexGetc_() | 520 | static int lexGetc_() |
521 | { | 521 | { |
522 | /* get next char from input, no buffering. */ | 522 | /* get next char from input, no buffering. */ |
523 | if (lexBuf.curPos == lexBuf.inputLen) | 523 | if (lexBuf.curPos == lexBuf.inputLen) |
524 | return EOF; | 524 | return EOF; |
525 | else if (lexBuf.inputString) | 525 | else if (lexBuf.inputString) |
526 | return *(lexBuf.inputString + lexBuf.curPos++); | 526 | return *(lexBuf.inputString + lexBuf.curPos++); |
527 | else { | 527 | else { |
528 | #ifdef INCLUDEMFC | 528 | #ifdef INCLUDEMFC |
529 | char result; | 529 | char result; |
530 | return lexBuf.inputFile->Read(&result, 1) == 1 ? result : EOF; | 530 | return lexBuf.inputFile->Read(&result, 1) == 1 ? result : EOF; |
531 | #else | 531 | #else |
532 | return fgetc(lexBuf.inputFile); | 532 | return fgetc(lexBuf.inputFile); |
533 | #endif | 533 | #endif |
534 | } | 534 | } |
535 | } | 535 | } |
536 | 536 | ||
537 | static int lexGeta() | 537 | static int lexGeta() |
538 | { | 538 | { |
539 | ++lexBuf.len; | 539 | ++lexBuf.len; |
540 | return (lexBuf.buf[lexBuf.getPtr] = lexGetc_()); | 540 | return (lexBuf.buf[lexBuf.getPtr] = lexGetc_()); |
541 | } | 541 | } |
542 | 542 | ||
543 | static int lexGeta_(int i) | 543 | static int lexGeta_(int i) |
544 | { | 544 | { |
545 | ++lexBuf.len; | 545 | ++lexBuf.len; |
546 | return (lexBuf.buf[(lexBuf.getPtr+i)%MAX_LEX_LOOKAHEAD] = lexGetc_()); | 546 | return (lexBuf.buf[(lexBuf.getPtr+i)%MAX_LEX_LOOKAHEAD] = lexGetc_()); |
547 | } | 547 | } |
548 | 548 | ||
549 | static void lexSkipLookahead() { | 549 | static void lexSkipLookahead() { |
550 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { | 550 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { |
551 | /* don't skip EOF. */ | 551 | /* don't skip EOF. */ |
552 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; | 552 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; |
553 | lexBuf.len--; | 553 | lexBuf.len--; |
554 | } | 554 | } |
555 | } | 555 | } |
556 | 556 | ||
557 | static int lexLookahead() { | 557 | static int lexLookahead() { |
558 | int c = (lexBuf.len)? | 558 | int c = (lexBuf.len)? |
559 | lexBuf.buf[lexBuf.getPtr]: | 559 | lexBuf.buf[lexBuf.getPtr]: |
560 | lexGeta(); | 560 | lexGeta(); |
561 | /* do the \r\n -> \n or \r -> \n translation here */ | 561 | /* do the \r\n -> \n or \r -> \n translation here */ |
562 | if (c == '\r') { | 562 | if (c == '\r') { |
563 | int a = (lexBuf.len>1)? | 563 | int a = (lexBuf.len>1)? |
564 | lexBuf.buf[(lexBuf.getPtr+1)%MAX_LEX_LOOKAHEAD]: | 564 | lexBuf.buf[(lexBuf.getPtr+1)%MAX_LEX_LOOKAHEAD]: |
565 | lexGeta_(1); | 565 | lexGeta_(1); |
566 | if (a == '\n') { | 566 | if (a == '\n') { |
567 | lexSkipLookahead(); | 567 | lexSkipLookahead(); |
568 | } | 568 | } |
569 | lexBuf.buf[lexBuf.getPtr] = c = '\n'; | 569 | lexBuf.buf[lexBuf.getPtr] = c = '\n'; |
570 | } | 570 | } |
571 | else if (c == '\n') { | 571 | else if (c == '\n') { |
572 | int a = (lexBuf.len>1)? | 572 | int a = (lexBuf.len>1)? |
573 | lexBuf.buf[lexBuf.getPtr+1]: | 573 | lexBuf.buf[lexBuf.getPtr+1]: |
574 | lexGeta_(1); | 574 | lexGeta_(1); |
575 | if (a == '\r') { | 575 | if (a == '\r') { |
576 | lexSkipLookahead(); | 576 | lexSkipLookahead(); |
577 | } | 577 | } |
578 | lexBuf.buf[lexBuf.getPtr] = '\n'; | 578 | lexBuf.buf[lexBuf.getPtr] = '\n'; |
579 | } | 579 | } |
580 | return c; | 580 | return c; |
581 | } | 581 | } |
582 | 582 | ||
583 | static int lexGetc() { | 583 | static int lexGetc() { |
584 | int c = lexLookahead(); | 584 | int c = lexLookahead(); |
585 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { | 585 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { |
586 | /* EOF will remain in lookahead buffer */ | 586 | /* EOF will remain in lookahead buffer */ |
587 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; | 587 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; |
588 | lexBuf.len--; | 588 | lexBuf.len--; |
589 | } | 589 | } |
590 | return c; | 590 | return c; |
591 | } | 591 | } |
592 | 592 | ||
593 | static void lexSkipLookaheadWord() { | 593 | static void lexSkipLookaheadWord() { |
594 | if (lexBuf.strsLen <= lexBuf.len) { | 594 | if (lexBuf.strsLen <= lexBuf.len) { |
595 | lexBuf.len -= lexBuf.strsLen; | 595 | lexBuf.len -= lexBuf.strsLen; |
596 | lexBuf.getPtr = (lexBuf.getPtr + lexBuf.strsLen) % MAX_LEX_LOOKAHEAD; | 596 | lexBuf.getPtr = (lexBuf.getPtr + lexBuf.strsLen) % MAX_LEX_LOOKAHEAD; |
597 | } | 597 | } |
598 | } | 598 | } |
599 | 599 | ||
600 | static void lexClearToken() | 600 | static void lexClearToken() |
601 | { | 601 | { |
602 | lexBuf.strsLen = 0; | 602 | lexBuf.strsLen = 0; |
603 | } | 603 | } |
604 | 604 | ||
605 | static void lexAppendc(int c) | 605 | static void lexAppendc(int c) |
606 | { | 606 | { |
607 | lexBuf.strs[lexBuf.strsLen] = c; | 607 | lexBuf.strs[lexBuf.strsLen] = c; |
608 | /* append up to zero termination */ | 608 | /* append up to zero termination */ |
609 | if (c == 0) return; | 609 | if (c == 0) return; |
610 | lexBuf.strsLen++; | 610 | lexBuf.strsLen++; |
611 | if (lexBuf.strsLen > lexBuf.maxToken) { | 611 | if (lexBuf.strsLen > lexBuf.maxToken) { |
612 | /* double the token string size */ | 612 | /* double the token string size */ |
613 | lexBuf.maxToken <<= 1; | 613 | lexBuf.maxToken <<= 1; |
614 | lexBuf.strs = (char*) realloc(lexBuf.strs,(size_t)lexBuf.maxToken); | 614 | lexBuf.strs = (char*) realloc(lexBuf.strs,(size_t)lexBuf.maxToken); |
615 | } | 615 | } |
616 | } | 616 | } |
617 | 617 | ||
618 | static char* lexStr() { | 618 | static char* lexStr() { |
619 | return dupStr(lexBuf.strs,(size_t)lexBuf.strsLen+1); | 619 | return dupStr(lexBuf.strs,(size_t)lexBuf.strsLen+1); |
620 | } | 620 | } |
621 | 621 | ||
622 | static void lexSkipWhite() { | 622 | static void lexSkipWhite() { |
623 | int c = lexLookahead(); | 623 | int c = lexLookahead(); |
624 | while (c == ' ' || c == '\t') { | 624 | while (c == ' ' || c == '\t') { |
625 | lexSkipLookahead(); | 625 | lexSkipLookahead(); |
626 | c = lexLookahead(); | 626 | c = lexLookahead(); |
627 | } | 627 | } |
628 | } | 628 | } |
629 | 629 | ||
630 | static char* lexGetWord() { | 630 | static char* lexGetWord() { |
631 | int c; | 631 | int c; |
632 | lexSkipWhite(); | 632 | lexSkipWhite(); |
633 | lexClearToken(); | 633 | lexClearToken(); |
634 | c = lexLookahead(); | 634 | c = lexLookahead(); |
635 | while (c != EOF && !strchr("\t\n ;:=",c)) { | 635 | while (c != EOF && !strchr("\t\n ;:=",c)) { |
636 | lexAppendc(c); | 636 | lexAppendc(c); |
637 | lexSkipLookahead(); | 637 | lexSkipLookahead(); |
638 | c = lexLookahead(); | 638 | c = lexLookahead(); |
639 | } | 639 | } |
640 | lexAppendc(0); | 640 | lexAppendc(0); |
641 | return lexStr(); | 641 | return lexStr(); |
642 | } | 642 | } |
643 | 643 | ||
644 | static void lexPushLookaheadc(int c) { | 644 | static void lexPushLookaheadc(int c) { |
645 | int putptr; | 645 | int putptr; |
646 | /* can't putback EOF, because it never leaves lookahead buffer */ | 646 | /* can't putback EOF, because it never leaves lookahead buffer */ |
647 | if (c == EOF) return; | 647 | if (c == EOF) return; |
648 | putptr = (int)lexBuf.getPtr - 1; | 648 | putptr = (int)lexBuf.getPtr - 1; |
649 | if (putptr < 0) putptr += MAX_LEX_LOOKAHEAD; | 649 | if (putptr < 0) putptr += MAX_LEX_LOOKAHEAD; |
650 | lexBuf.getPtr = putptr; | 650 | lexBuf.getPtr = putptr; |
651 | lexBuf.buf[putptr] = c; | 651 | lexBuf.buf[putptr] = c; |
652 | lexBuf.len += 1; | 652 | lexBuf.len += 1; |
653 | } | 653 | } |
654 | 654 | ||
655 | static char* lexLookaheadWord() { | 655 | static char* lexLookaheadWord() { |
656 | /* this function can lookahead word with max size of MAX_LEX_LOOKAHEAD_0 | 656 | /* this function can lookahead word with max size of MAX_LEX_LOOKAHEAD_0 |
657 | / and thing bigger than that will stop the lookahead and return 0; | 657 | / and thing bigger than that will stop the lookahead and return 0; |
658 | / leading white spaces are not recoverable. | 658 | / leading white spaces are not recoverable. |
659 | */ | 659 | */ |
660 | int c; | 660 | int c; |
661 | int len = 0; | 661 | int len = 0; |
662 | int curgetptr = 0; | 662 | int curgetptr = 0; |
663 | lexSkipWhite(); | 663 | lexSkipWhite(); |
664 | lexClearToken(); | 664 | lexClearToken(); |
665 | curgetptr = (int)lexBuf.getPtr;// remember! | 665 | curgetptr = (int)lexBuf.getPtr;// remember! |
666 | while (len < (MAX_LEX_LOOKAHEAD_0)) { | 666 | while (len < (MAX_LEX_LOOKAHEAD_0)) { |
667 | c = lexGetc(); | 667 | c = lexGetc(); |
668 | len++; | 668 | len++; |
669 | if (c == EOF || strchr("\t\n ;:=", c)) { | 669 | if (c == EOF || strchr("\t\n ;:=", c)) { |
670 | lexAppendc(0); | 670 | lexAppendc(0); |
671 | /* restore lookahead buf. */ | 671 | /* restore lookahead buf. */ |
672 | lexBuf.len += len; | 672 | lexBuf.len += len; |
673 | lexBuf.getPtr = curgetptr; | 673 | lexBuf.getPtr = curgetptr; |
674 | return lexStr(); | 674 | return lexStr(); |
675 | } | 675 | } |
676 | else | 676 | else |
677 | lexAppendc(c); | 677 | lexAppendc(c); |
678 | } | 678 | } |
679 | lexBuf.len += len;/* char that has been moved to lookahead buffer */ | 679 | lexBuf.len += len;/* char that has been moved to lookahead buffer */ |
680 | lexBuf.getPtr = curgetptr; | 680 | lexBuf.getPtr = curgetptr; |
681 | return 0; | 681 | return 0; |
682 | } | 682 | } |
683 | 683 | ||
684 | #ifdef _SUPPORT_LINE_FOLDING | 684 | #ifdef _SUPPORT_LINE_FOLDING |
685 | static void handleMoreRFC822LineBreak(int c) { | 685 | static void handleMoreRFC822LineBreak(int c) { |
686 | /* suport RFC 822 line break in cases like | 686 | /* suport RFC 822 line break in cases like |
687 | *ADR: foo; | 687 | *ADR: foo; |
688 | * morefoo; | 688 | * morefoo; |
689 | * more foo; | 689 | * more foo; |
690 | */ | 690 | */ |
691 | if (c == ';') { | 691 | if (c == ';') { |
692 | int a; | 692 | int a; |
693 | lexSkipLookahead(); | 693 | lexSkipLookahead(); |
694 | /* skip white spaces */ | 694 | /* skip white spaces */ |
695 | a = lexLookahead(); | 695 | a = lexLookahead(); |
696 | while (a == ' ' || a == '\t') { | 696 | while (a == ' ' || a == '\t') { |
697 | lexSkipLookahead(); | 697 | lexSkipLookahead(); |
698 | a = lexLookahead(); | 698 | a = lexLookahead(); |
699 | } | 699 | } |
700 | if (a == '\n') { | 700 | if (a == '\n') { |
701 | lexSkipLookahead(); | 701 | lexSkipLookahead(); |
702 | a = lexLookahead(); | 702 | a = lexLookahead(); |
703 | if (a == ' ' || a == '\t') { | 703 | if (a == ' ' || a == '\t') { |
704 | /* continuation, throw away all the \n and spaces read so | 704 | /* continuation, throw away all the \n and spaces read so |
705 | * far | 705 | * far |
706 | */ | 706 | */ |
707 | lexSkipWhite(); | 707 | lexSkipWhite(); |
708 | lexPushLookaheadc(';'); | 708 | lexPushLookaheadc(';'); |
709 | } | 709 | } |
710 | else { | 710 | else { |
711 | lexPushLookaheadc('\n'); | 711 | lexPushLookaheadc('\n'); |
712 | lexPushLookaheadc(';'); | 712 | lexPushLookaheadc(';'); |
713 | } | 713 | } |
714 | } | 714 | } |
715 | else { | 715 | else { |
716 | lexPushLookaheadc(';'); | 716 | lexPushLookaheadc(';'); |
717 | } | 717 | } |
718 | } | 718 | } |
719 | } | 719 | } |
720 | 720 | ||
721 | static char* lexGet1Value() { | 721 | static char* lexGet1Value() { |
722 | int c; | 722 | int c; |
723 | lexSkipWhite(); | 723 | lexSkipWhite(); |
724 | c = lexLookahead(); | 724 | c = lexLookahead(); |
725 | lexClearToken(); | 725 | lexClearToken(); |
726 | while (c != EOF && (c != ';' || !fieldedProp)) { | 726 | while (c != EOF && (c != ';' || !fieldedProp)) { |
727 | if (c == '\\' ) { | 727 | if (c == '\\' ) { |
728 | int a; | 728 | int a; |
729 | lexSkipLookahead(); | 729 | lexSkipLookahead(); |
730 | a = lexLookahead(); | 730 | a = lexLookahead(); |
731 | if ( a == ';' ) { | 731 | if ( a == ';' ) { |
732 | lexAppendc( ';' ); | 732 | lexAppendc( ';' ); |
733 | lexSkipLookahead(); | 733 | lexSkipLookahead(); |
734 | } else if ( a == '\n' ) { | 734 | } else if ( a == '\n' ) { |
735 | lexAppendc( '\n' ); | 735 | lexAppendc( '\n' ); |
736 | lexSkipLookahead(); | 736 | lexSkipLookahead(); |
737 | } else if ( a == '\\' ) { | 737 | } else if ( a == '\\' ) { |
738 | lexAppendc( '\\' ); | 738 | lexAppendc( '\\' ); |
739 | lexSkipLookahead(); | 739 | lexSkipLookahead(); |
740 | } else { | 740 | } else { |
741 | lexAppendc('\\'); | 741 | lexAppendc('\\'); |
742 | } | 742 | } |
743 | } else if (c == '\n') { | 743 | } else if (c == '\n') { |
744 | int a; | 744 | int a; |
745 | lexSkipLookahead(); | 745 | lexSkipLookahead(); |
746 | a = lexLookahead(); | 746 | a = lexLookahead(); |
747 | if (a == ' ' || a == '\t') { | 747 | if (a == ' ' || a == '\t') { |
748 | lexAppendc(' '); | 748 | lexAppendc(' '); |
749 | lexSkipLookahead(); | 749 | lexSkipLookahead(); |
750 | } | 750 | } |
751 | else { | 751 | else { |
752 | lexPushLookaheadc('\n'); | 752 | lexPushLookaheadc('\n'); |
753 | break; | 753 | break; |
754 | } | 754 | } |
755 | } | 755 | } |
756 | else { | 756 | else { |
757 | lexAppendc(c); | 757 | lexAppendc(c); |
758 | lexSkipLookahead(); | 758 | lexSkipLookahead(); |
759 | } | 759 | } |
760 | c = lexLookahead(); | 760 | c = lexLookahead(); |
761 | } | 761 | } |
762 | lexAppendc(0); | 762 | lexAppendc(0); |
763 | handleMoreRFC822LineBreak(c); | 763 | handleMoreRFC822LineBreak(c); |
764 | return c==EOF?0:lexStr(); | 764 | return c==EOF?0:lexStr(); |
765 | } | 765 | } |
766 | #endif | 766 | #endif |
767 | 767 | ||
768 | static int match_begin_name(int end) { | 768 | static int match_begin_name(int end) { |
769 | char *n = lexLookaheadWord(); | 769 | char *n = lexLookaheadWord(); |
770 | int token = ID; | 770 | int token = ID; |
771 | if (n) { | 771 | if (n) { |
772 | if (!qstricmp(n,"vcard")) token = end?END_VCARD:BEGIN_VCARD; | 772 | if (!qstricmp(n,"vcard")) token = end?END_VCARD:BEGIN_VCARD; |
773 | else if (!qstricmp(n,"vcalendar")) token = end?END_VCAL:BEGIN_VCAL; | 773 | else if (!qstricmp(n,"vcalendar")) token = end?END_VCAL:BEGIN_VCAL; |
774 | else if (!qstricmp(n,"vevent")) token = end?END_VEVENT:BEGIN_VEVENT; | 774 | else if (!qstricmp(n,"vevent")) token = end?END_VEVENT:BEGIN_VEVENT; |
775 | else if (!qstricmp(n,"vtodo")) token = end?END_VTODO:BEGIN_VTODO; | 775 | else if (!qstricmp(n,"vtodo")) token = end?END_VTODO:BEGIN_VTODO; |
776 | deleteStr(n); | 776 | deleteStr(n); |
777 | return token; | 777 | return token; |
778 | } | 778 | } |
779 | return 0; | 779 | return 0; |
780 | } | 780 | } |
781 | 781 | ||
782 | 782 | ||
783 | #ifdef INCLUDEMFC | 783 | #ifdef INCLUDEMFC |
784 | void initLex(const char *inputstring, unsigned long inputlen, CFile *inputfile) | 784 | void initLex(const char *inputstring, unsigned long inputlen, CFile *inputfile) |
785 | #else | 785 | #else |
786 | void initLex(const char *inputstring, unsigned long inputlen, FILE *inputfile) | 786 | void initLex(const char *inputstring, unsigned long inputlen, FILE *inputfile) |
787 | #endif | 787 | #endif |
788 | { | 788 | { |
789 | // initialize lex mode stack | 789 | // initialize lex mode stack |
790 | lexBuf.lexModeStack[lexBuf.lexModeStackTop=0] = L_NORMAL; | 790 | lexBuf.lexModeStack[lexBuf.lexModeStackTop=0] = L_NORMAL; |
791 | 791 | ||
792 | // iniatialize lex buffer. | 792 | // iniatialize lex buffer. |
793 | lexBuf.inputString = (char*) inputstring; | 793 | lexBuf.inputString = (char*) inputstring; |
794 | lexBuf.inputLen = inputlen; | 794 | lexBuf.inputLen = inputlen; |
795 | lexBuf.curPos = 0; | 795 | lexBuf.curPos = 0; |
796 | lexBuf.inputFile = inputfile; | 796 | lexBuf.inputFile = inputfile; |
797 | 797 | ||
798 | lexBuf.len = 0; | 798 | lexBuf.len = 0; |
799 | lexBuf.getPtr = 0; | 799 | lexBuf.getPtr = 0; |
800 | 800 | ||
801 | lexBuf.maxToken = MAXTOKEN; | 801 | lexBuf.maxToken = MAXTOKEN; |
802 | lexBuf.strs = (char*)malloc(MAXTOKEN); | 802 | lexBuf.strs = (char*)malloc(MAXTOKEN); |
803 | lexBuf.strsLen = 0; | 803 | lexBuf.strsLen = 0; |
804 | 804 | ||
805 | } | 805 | } |
806 | 806 | ||
807 | static void finiLex() { | 807 | static void finiLex() { |
808 | free(lexBuf.strs); | 808 | free(lexBuf.strs); |
809 | } | 809 | } |
810 | 810 | ||
811 | 811 | ||
812 | /*-----------------------------------*/ | 812 | /*-----------------------------------*/ |
813 | /* This parses and converts the base64 format for binary encoding into | 813 | /* This parses and converts the base64 format for binary encoding into |
814 | * a decoded buffer (allocated with new). See RFC 1521. | 814 | * a decoded buffer (allocated with new). See RFC 1521. |
815 | */ | 815 | */ |
816 | static char * lexGetDataFromBase64() | 816 | static char * lexGetDataFromBase64() |
817 | { | 817 | { |
818 | unsigned long bytesLen = 0, bytesMax = 0; | 818 | unsigned long bytesLen = 0, bytesMax = 0; |
819 | int quadIx = 0, pad = 0; | 819 | int quadIx = 0, pad = 0; |
820 | unsigned long trip = 0; | 820 | unsigned long trip = 0; |
821 | unsigned char b; | 821 | unsigned char b; |
822 | int c; | 822 | int c; |
823 | unsigned char *bytes = NULL; | 823 | unsigned char *bytes = NULL; |
824 | unsigned char *oldBytes = NULL; | 824 | unsigned char *oldBytes = NULL; |
825 | 825 | ||
826 | DBG_(("db: lexGetDataFromBase64\n")); | 826 | DBG_(("db: lexGetDataFromBase64\n")); |
827 | while (1) { | 827 | while (1) { |
828 | c = lexGetc(); | 828 | c = lexGetc(); |
829 | if (c == '\n') { | 829 | if (c == '\n') { |
830 | ++mime_lineNum; | 830 | ++mime_lineNum; |
831 | if (lexLookahead() == '\n') { | 831 | if (lexLookahead() == '\n') { |
832 | /* a '\n' character by itself means end of data */ | 832 | /* a '\n' character by itself means end of data */ |
833 | break; | 833 | break; |
834 | } | 834 | } |
835 | else continue; /* ignore '\n' */ | 835 | else continue; /* ignore '\n' */ |
836 | } | 836 | } |
837 | else { | 837 | else { |
838 | if ((c >= 'A') && (c <= 'Z')) | 838 | if ((c >= 'A') && (c <= 'Z')) |
839 | b = (unsigned char)(c - 'A'); | 839 | b = (unsigned char)(c - 'A'); |
840 | else if ((c >= 'a') && (c <= 'z')) | 840 | else if ((c >= 'a') && (c <= 'z')) |
841 | b = (unsigned char)(c - 'a') + 26; | 841 | b = (unsigned char)(c - 'a') + 26; |
842 | else if ((c >= '0') && (c <= '9')) | 842 | else if ((c >= '0') && (c <= '9')) |
843 | b = (unsigned char)(c - '0') + 52; | 843 | b = (unsigned char)(c - '0') + 52; |
844 | else if (c == '+') | 844 | else if (c == '+') |
845 | b = 62; | 845 | b = 62; |
846 | else if (c == '/') | 846 | else if (c == '/') |
847 | b = 63; | 847 | b = 63; |
848 | else if (c == '=') { | 848 | else if (c == '=') { |
849 | b = 0; | 849 | b = 0; |
850 | pad++; | 850 | pad++; |
851 | } else if ((c == ' ') || (c == '\t')) { | 851 | } else if ((c == ' ') || (c == '\t')) { |
852 | continue; | 852 | continue; |
853 | } else { /* error condition */ | 853 | } else { /* error condition */ |
854 | if (bytes) free(bytes); | 854 | if (bytes) free(bytes); |
855 | else if (oldBytes) free(oldBytes); | 855 | else if (oldBytes) free(oldBytes); |
856 | // error recovery: skip until 2 adjacent newlines. | 856 | // error recovery: skip until 2 adjacent newlines. |
857 | DBG_(("db: invalid character 0x%x '%c'\n", c,c)); | 857 | DBG_(("db: invalid character 0x%x '%c'\n", c,c)); |
858 | if (c != EOF) { | 858 | if (c != EOF) { |
859 | c = lexGetc(); | 859 | c = lexGetc(); |
860 | while (c != EOF) { | 860 | while (c != EOF) { |
861 | if (c == '\n' && lexLookahead() == '\n') { | 861 | if (c == '\n' && lexLookahead() == '\n') { |
862 | ++mime_lineNum; | 862 | ++mime_lineNum; |
863 | break; | 863 | break; |
864 | } | 864 | } |
865 | c = lexGetc(); | 865 | c = lexGetc(); |
866 | } | 866 | } |
867 | } | 867 | } |
868 | return NULL; | 868 | return NULL; |
869 | } | 869 | } |
870 | trip = (trip << 6) | b; | 870 | trip = (trip << 6) | b; |
871 | if (++quadIx == 4) { | 871 | if (++quadIx == 4) { |
872 | unsigned char outBytes[3]; | 872 | unsigned char outBytes[3]; |
873 | int numOut; | 873 | int numOut; |
874 | int i; | 874 | int i; |
875 | for (i = 0; i < 3; i++) { | 875 | for (i = 0; i < 3; i++) { |
876 | outBytes[2-i] = (unsigned char)(trip & 0xFF); | 876 | outBytes[2-i] = (unsigned char)(trip & 0xFF); |
877 | trip >>= 8; | 877 | trip >>= 8; |
878 | } | 878 | } |
879 | numOut = 3 - pad; | 879 | numOut = 3 - pad; |
880 | if (bytesLen + numOut > bytesMax) { | 880 | if (bytesLen + numOut > bytesMax) { |
881 | if (!bytes) { | 881 | if (!bytes) { |
882 | bytesMax = 1024; | 882 | bytesMax = 1024; |
883 | bytes = (unsigned char*)malloc((size_t)bytesMax); | 883 | bytes = (unsigned char*)malloc((size_t)bytesMax); |
884 | } | 884 | } |
885 | else { | 885 | else { |
886 | bytesMax <<= 2; | 886 | bytesMax <<= 2; |
887 | oldBytes = bytes; | 887 | oldBytes = bytes; |
888 | bytes = (unsigned char*)realloc(bytes,(size_t)bytesMax); | 888 | bytes = (unsigned char*)realloc(bytes,(size_t)bytesMax); |
889 | } | 889 | } |
890 | if (bytes == 0) { | 890 | if (bytes == 0) { |
891 | mime_error("out of memory while processing BASE64 data\n"); | 891 | mime_error("out of memory while processing BASE64 data\n"); |
892 | } | 892 | } |
893 | } | 893 | } |
894 | if (bytes) { | 894 | if (bytes) { |
895 | memcpy(bytes + bytesLen, outBytes, numOut); | 895 | memcpy(bytes + bytesLen, outBytes, numOut); |
896 | bytesLen += numOut; | 896 | bytesLen += numOut; |
897 | } | 897 | } |
898 | trip = 0; | 898 | trip = 0; |
899 | quadIx = 0; | 899 | quadIx = 0; |
900 | } | 900 | } |
901 | } | 901 | } |
902 | } /* while */ | 902 | } /* while */ |
903 | DBG_(("db: bytesLen = %d\n", bytesLen)); | 903 | DBG_(("db: bytesLen = %d\n", bytesLen)); |
904 | /* kludge: all this won't be necessary if we have tree form | 904 | /* kludge: all this won't be necessary if we have tree form |
905 | representation */ | 905 | representation */ |
906 | if (bytes) { | 906 | if (bytes) { |
907 | setValueWithSize(curProp,bytes,(unsigned int)bytesLen); | 907 | setValueWithSize(curProp,bytes,(unsigned int)bytesLen); |
908 | free(bytes); | 908 | free(bytes); |
909 | } | 909 | } |
910 | else if (oldBytes) { | 910 | else if (oldBytes) { |
911 | setValueWithSize(curProp,oldBytes,(unsigned int)bytesLen); | 911 | setValueWithSize(curProp,oldBytes,(unsigned int)bytesLen); |
912 | free(oldBytes); | 912 | free(oldBytes); |
913 | } | 913 | } |
914 | return 0; | 914 | return 0; |
915 | } | 915 | } |
916 | 916 | ||
917 | static int match_begin_end_name(int end) { | 917 | static int match_begin_end_name(int end) { |
918 | int token; | 918 | int token; |
919 | lexSkipWhite(); | 919 | lexSkipWhite(); |
920 | if (lexLookahead() != ':') return ID; | 920 | if (lexLookahead() != ':') return ID; |
921 | lexSkipLookahead(); | 921 | lexSkipLookahead(); |
922 | lexSkipWhite(); | 922 | lexSkipWhite(); |
923 | token = match_begin_name(end); | 923 | token = match_begin_name(end); |
924 | if (token == ID) { | 924 | if (token == ID) { |
925 | lexPushLookaheadc(':'); | 925 | lexPushLookaheadc(':'); |
926 | DBG_(("db: ID '%s'\n", yylval.str)); | 926 | DBG_(("db: ID '%s'\n", yylval.str)); |
927 | return ID; | 927 | return ID; |
928 | } | 928 | } |
929 | else if (token != 0) { | 929 | else if (token != 0) { |
930 | lexSkipLookaheadWord(); | 930 | lexSkipLookaheadWord(); |
931 | deleteStr(yylval.str); | 931 | deleteStr(yylval.str); |
932 | DBG_(("db: begin/end %d\n", token)); | 932 | DBG_(("db: begin/end %d\n", token)); |
933 | return token; | 933 | return token; |
934 | } | 934 | } |
935 | return 0; | 935 | return 0; |
936 | } | 936 | } |
937 | 937 | ||
938 | static char* lexGetQuotedPrintable() | 938 | static char* lexGetQuotedPrintable() |
939 | { | 939 | { |
940 | int c; | 940 | int c; |
941 | lexSkipWhite(); | 941 | lexSkipWhite(); |
942 | c = lexLookahead(); | 942 | c = lexLookahead(); |
943 | lexClearToken(); | 943 | lexClearToken(); |
944 | 944 | ||
945 | while (c != EOF && c != ';') { | 945 | while (c != EOF && c != ';') { |
946 | if (c == '\n') { | 946 | if (c == '\n') { |
947 | // break, leave '\n' on remaining chars. | 947 | // break, leave '\n' on remaining chars. |
948 | break; | 948 | break; |
949 | } else if (c == '=') { | 949 | } else if (c == '=') { |
950 | int cur = 0; | 950 | int cur = 0; |
951 | int next; | 951 | int next; |
952 | 952 | ||
953 | lexSkipLookahead(); // skip '=' | 953 | lexSkipLookahead(); // skip '=' |
954 | next = lexLookahead(); | 954 | next = lexLookahead(); |
955 | 955 | ||
956 | if (next == '\n') { | 956 | if (next == '\n') { |
957 | // skip and only skip the \n | 957 | // skip and only skip the \n |
958 | lexSkipLookahead(); | 958 | lexSkipLookahead(); |
959 | c = lexLookahead(); | 959 | c = lexLookahead(); |
960 | ++mime_lineNum; // aid in error reporting | 960 | ++mime_lineNum; // aid in error reporting |
961 | continue; | 961 | continue; |
962 | } else if (next >= '0' && next <= '9') { | 962 | } else if (next >= '0' && next <= '9') { |
963 | cur = next - '0'; | 963 | cur = next - '0'; |
964 | } else if (next >= 'A' && next <= 'F') { | 964 | } else if (next >= 'A' && next <= 'F') { |
965 | cur = next - 'A' + 10; | 965 | cur = next - 'A' + 10; |
966 | } else { | 966 | } else { |
967 | // we have been sent buggy stuff. doesn't matter | 967 | // we have been sent buggy stuff. doesn't matter |
968 | // what we do so long as we keep going. | 968 | // what we do so long as we keep going. |
969 | // should probably spit an error here | 969 | // should probably spit an error here |
970 | lexSkipLookahead(); | 970 | lexSkipLookahead(); |
971 | c = lexLookahead(); | 971 | c = lexLookahead(); |
972 | continue; | 972 | continue; |
973 | } | 973 | } |
974 | 974 | ||
975 | lexSkipLookahead(); // skip A-Z0-9 | 975 | lexSkipLookahead(); // skip A-Z0-9 |
976 | next = lexLookahead(); | 976 | next = lexLookahead(); |
977 | 977 | ||
978 | cur = cur * 16; | 978 | cur = cur * 16; |
979 | // this time really just expecting 0-9A-F | 979 | // this time really just expecting 0-9A-F |
980 | if (next >= '0' && next <= '9') { | 980 | if (next >= '0' && next <= '9') { |
981 | cur += next - '0'; | 981 | cur += next - '0'; |
982 | } else if (next >= 'A' && next <= 'F') { | 982 | } else if (next >= 'A' && next <= 'F') { |
983 | cur += next - 'A' + 10; | 983 | cur += next - 'A' + 10; |
984 | } else { | 984 | } else { |
985 | // we have been sent buggy stuff. doesn't matter | 985 | // we have been sent buggy stuff. doesn't matter |
986 | // what we do so long as we keep going. | 986 | // what we do so long as we keep going. |
987 | // should probably spit an error here | 987 | // should probably spit an error here |
988 | lexSkipLookahead(); | 988 | lexSkipLookahead(); |
989 | c = lexLookahead(); | 989 | c = lexLookahead(); |
990 | continue; | 990 | continue; |
991 | } | 991 | } |
992 | 992 | ||
993 | // got a valid escaped =. append it. | 993 | // got a valid escaped =. append it. |
994 | lexSkipLookahead(); // skip second 0-9A-F | 994 | lexSkipLookahead(); // skip second 0-9A-F |
995 | lexAppendc(cur); | 995 | lexAppendc(cur); |
996 | } else { | 996 | } else { |
997 | lexSkipLookahead(); // skip whatever we just read. | 997 | lexSkipLookahead(); // skip whatever we just read. |
998 | lexAppendc(c); // and append it. | 998 | lexAppendc(c); // and append it. |
999 | } | 999 | } |
1000 | c = lexLookahead(); | 1000 | c = lexLookahead(); |
1001 | } | 1001 | } |
1002 | lexAppendc(0); | 1002 | lexAppendc(0); |
1003 | return c==EOF?0:lexStr(); | 1003 | return c==EOF?0:lexStr(); |
1004 | } | 1004 | } |
1005 | 1005 | ||
1006 | static int yylex() { | 1006 | static int yylex() { |
1007 | 1007 | ||
1008 | int lexmode = LEXMODE(); | 1008 | int lexmode = LEXMODE(); |
1009 | if (lexmode == L_VALUES) { | 1009 | if (lexmode == L_VALUES) { |
1010 | int c = lexGetc(); | 1010 | int c = lexGetc(); |
1011 | if (c == ';' && fieldedProp) { | 1011 | if (c == ';' && fieldedProp) { |
1012 | DBG_(("db: SEMICOLON\n")); | 1012 | DBG_(("db: SEMICOLON\n")); |
1013 | lexPushLookaheadc(c); | 1013 | lexPushLookaheadc(c); |
1014 | handleMoreRFC822LineBreak(c); | 1014 | handleMoreRFC822LineBreak(c); |
1015 | lexSkipLookahead(); | 1015 | lexSkipLookahead(); |
1016 | return SEMICOLON; | 1016 | return SEMICOLON; |
1017 | } | 1017 | } |
1018 | else if (strchr("\n",c)) { | 1018 | else if (strchr("\n",c)) { |
1019 | ++mime_lineNum; | 1019 | ++mime_lineNum; |
1020 | /* consume all line separator(s) adjacent to each other */ | 1020 | /* consume all line separator(s) adjacent to each other */ |
1021 | c = lexLookahead(); | 1021 | c = lexLookahead(); |
1022 | while (strchr("\n",c)) { | 1022 | while (strchr("\n",c)) { |
1023 | lexSkipLookahead(); | 1023 | lexSkipLookahead(); |
1024 | c = lexLookahead(); | 1024 | c = lexLookahead(); |
1025 | ++mime_lineNum; | 1025 | ++mime_lineNum; |
1026 | } | 1026 | } |
1027 | DBG_(("db: LINESEP\n")); | 1027 | DBG_(("db: LINESEP\n")); |
1028 | return LINESEP; | 1028 | return LINESEP; |
1029 | } | 1029 | } |
1030 | else { | 1030 | else { |
1031 | char *p = 0; | 1031 | char *p = 0; |
1032 | lexPushLookaheadc(c); | 1032 | lexPushLookaheadc(c); |
1033 | if (lexWithinMode(L_BASE64)) { | 1033 | if (lexWithinMode(L_BASE64)) { |
1034 | /* get each char and convert to bin on the fly... */ | 1034 | /* get each char and convert to bin on the fly... */ |
1035 | p = lexGetDataFromBase64(); | 1035 | p = lexGetDataFromBase64(); |
1036 | #if 0 | ||
1036 | yylval.str = p; | 1037 | yylval.str = p; |
1037 | return STRING; | 1038 | return STRING; |
1039 | #endif | ||
1038 | } | 1040 | } |
1039 | else if (lexWithinMode(L_QUOTED_PRINTABLE)) { | 1041 | else if (lexWithinMode(L_QUOTED_PRINTABLE)) { |
1040 | p = lexGetQuotedPrintable(); | 1042 | p = lexGetQuotedPrintable(); |
1041 | } | 1043 | } |
1042 | else { | 1044 | else { |
1043 | #ifdef _SUPPORT_LINE_FOLDING | 1045 | #ifdef _SUPPORT_LINE_FOLDING |
1044 | p = lexGet1Value(); | 1046 | p = lexGet1Value(); |
1045 | #else | 1047 | #else |
1046 | p = lexGetStrUntil(";\n"); | 1048 | p = lexGetStrUntil(";\n"); |
1047 | #endif | 1049 | #endif |
1048 | } | 1050 | } |
1049 | if (p) { | 1051 | if (p) { |
1050 | DBG_(("db: STRING: '%s'\n", p)); | 1052 | DBG_(("db: STRING: '%s'\n", p)); |
1051 | yylval.str = p; | 1053 | yylval.str = p; |
1052 | return STRING; | 1054 | return STRING; |
1053 | } | 1055 | } |
1054 | else return 0; | 1056 | else return 0; |
1055 | } | 1057 | } |
1056 | } | 1058 | } |
1057 | else { | 1059 | else { |
1058 | /* normal mode */ | 1060 | /* normal mode */ |
1059 | while (1) { | 1061 | while (1) { |
1060 | int c = lexGetc(); | 1062 | int c = lexGetc(); |
1061 | switch(c) { | 1063 | switch(c) { |
1062 | case ':': { | 1064 | case ':': { |
1063 | /* consume all line separator(s) adjacent to each other */ | 1065 | /* consume all line separator(s) adjacent to each other */ |
1064 | /* ignoring linesep immediately after colon. */ | 1066 | /* ignoring linesep immediately after colon. */ |
1065 | /* I don't see this in the spec, and it breaks null values -- WA | 1067 | /* I don't see this in the spec, and it breaks null values -- WA |
1066 | c = lexLookahead(); | 1068 | c = lexLookahead(); |
1067 | while (strchr("\n",c)) { | 1069 | while (strchr("\n",c)) { |
1068 | lexSkipLookahead(); | 1070 | lexSkipLookahead(); |
1069 | c = lexLookahead(); | 1071 | c = lexLookahead(); |
1070 | ++mime_lineNum; | 1072 | ++mime_lineNum; |
1071 | } | 1073 | } |
1072 | */ | 1074 | */ |
1073 | DBG_(("db: COLON\n")); | 1075 | DBG_(("db: COLON\n")); |
1074 | return COLON; | 1076 | return COLON; |
1075 | } | 1077 | } |
1076 | case ';': | 1078 | case ';': |
1077 | DBG_(("db: SEMICOLON\n")); | 1079 | DBG_(("db: SEMICOLON\n")); |
1078 | return SEMICOLON; | 1080 | return SEMICOLON; |
1079 | case '=': | 1081 | case '=': |
1080 | DBG_(("db: EQ\n")); | 1082 | DBG_(("db: EQ\n")); |
1081 | return EQ; | 1083 | return EQ; |
1082 | /* ignore whitespace in this mode */ | 1084 | /* ignore whitespace in this mode */ |
1083 | case '\t': | 1085 | case '\t': |
1084 | case ' ': continue; | 1086 | case ' ': continue; |
1085 | case '\n': { | 1087 | case '\n': { |
1086 | ++mime_lineNum; | 1088 | ++mime_lineNum; |
1087 | continue; | 1089 | continue; |
1088 | } | 1090 | } |
1089 | case EOF: return 0; | 1091 | case EOF: return 0; |
1090 | break; | 1092 | break; |
1091 | default: { | 1093 | default: { |
1092 | lexPushLookaheadc(c); | 1094 | lexPushLookaheadc(c); |
1093 | if (isalnum(c)) { | 1095 | if (isalnum(c)) { |
1094 | char *t = lexGetWord(); | 1096 | char *t = lexGetWord(); |
1095 | yylval.str = t; | 1097 | yylval.str = t; |
1096 | if (!qstricmp(t, "begin")) { | 1098 | if (!qstricmp(t, "begin")) { |
1097 | return match_begin_end_name(0); | 1099 | return match_begin_end_name(0); |
1098 | } | 1100 | } |
1099 | else if (!qstricmp(t,"end")) { | 1101 | else if (!qstricmp(t,"end")) { |
1100 | return match_begin_end_name(1); | 1102 | return match_begin_end_name(1); |
1101 | } | 1103 | } |
1102 | else { | 1104 | else { |
1103 | DBG_(("db: ID '%s'\n", t)); | 1105 | DBG_(("db: ID '%s'\n", t)); |
1104 | return ID; | 1106 | return ID; |
1105 | } | 1107 | } |
1106 | } | 1108 | } |
1107 | else { | 1109 | else { |
1108 | /* unknow token */ | 1110 | /* unknow token */ |
1109 | return 0; | 1111 | return 0; |
1110 | } | 1112 | } |
1111 | break; | 1113 | break; |
1112 | } | 1114 | } |
1113 | } | 1115 | } |
1114 | } | 1116 | } |
1115 | } | 1117 | } |
1116 | return 0; | 1118 | return 0; |
1117 | } | 1119 | } |
1118 | 1120 | ||
1119 | 1121 | ||
1120 | /***************************************************************************/ | 1122 | /***************************************************************************/ |
1121 | /*** Public Functions ****/ | 1123 | /*** Public Functions ****/ |
1122 | /***************************************************************************/ | 1124 | /***************************************************************************/ |
1123 | 1125 | ||
1124 | static VObject* Parse_MIMEHelper() | 1126 | static VObject* Parse_MIMEHelper() |
1125 | { | 1127 | { |
1126 | ObjStackTop = -1; | 1128 | ObjStackTop = -1; |
1127 | mime_numErrors = 0; | 1129 | mime_numErrors = 0; |
1128 | mime_lineNum = 1; | 1130 | mime_lineNum = 1; |
1129 | vObjList = 0; | 1131 | vObjList = 0; |
1130 | curObj = 0; | 1132 | curObj = 0; |
1131 | 1133 | ||
1132 | if (yyparse() != 0) | 1134 | if (yyparse() != 0) |
1133 | return 0; | 1135 | return 0; |
1134 | 1136 | ||
1135 | finiLex(); | 1137 | finiLex(); |
1136 | return vObjList; | 1138 | return vObjList; |
1137 | } | 1139 | } |
1138 | 1140 | ||
1139 | /*--------------------------------------------*/ | 1141 | /*--------------------------------------------*/ |
1140 | DLLEXPORT(VObject*) Parse_MIME(const char *input, unsigned long len) | 1142 | DLLEXPORT(VObject*) Parse_MIME(const char *input, unsigned long len) |
1141 | { | 1143 | { |
1142 | initLex(input, len, 0); | 1144 | initLex(input, len, 0); |
1143 | return Parse_MIMEHelper(); | 1145 | return Parse_MIMEHelper(); |
1144 | } | 1146 | } |
1145 | 1147 | ||
1146 | 1148 | ||
1147 | #if INCLUDEMFC | 1149 | #if INCLUDEMFC |
1148 | 1150 | ||
1149 | DLLEXPORT(VObject*) Parse_MIME_FromFile(CFile *file) | 1151 | DLLEXPORT(VObject*) Parse_MIME_FromFile(CFile *file) |
1150 | { | 1152 | { |
1151 | unsigned long startPos; | 1153 | unsigned long startPos; |
1152 | VObject *result; | 1154 | VObject *result; |
1153 | 1155 | ||
1154 | initLex(0,-1,file); | 1156 | initLex(0,-1,file); |
1155 | startPos = file->GetPosition(); | 1157 | startPos = file->GetPosition(); |
1156 | if (!(result = Parse_MIMEHelper())) | 1158 | if (!(result = Parse_MIMEHelper())) |
1157 | file->Seek(startPos, CFile::begin); | 1159 | file->Seek(startPos, CFile::begin); |
1158 | return result; | 1160 | return result; |
1159 | } | 1161 | } |
1160 | 1162 | ||
1161 | #else | 1163 | #else |
1162 | 1164 | ||
1163 | VObject* Parse_MIME_FromFile(FILE *file) | 1165 | VObject* Parse_MIME_FromFile(FILE *file) |
1164 | { | 1166 | { |
1165 | VObject *result; | 1167 | VObject *result; |
1166 | long startPos; | 1168 | long startPos; |
1167 | 1169 | ||
1168 | initLex(0,(unsigned long)-1,file); | 1170 | initLex(0,(unsigned long)-1,file); |
1169 | startPos = ftell(file); | 1171 | startPos = ftell(file); |
1170 | if (!(result = Parse_MIMEHelper())) { | 1172 | if (!(result = Parse_MIMEHelper())) { |
1171 | fseek(file,startPos,SEEK_SET); | 1173 | fseek(file,startPos,SEEK_SET); |
1172 | } | 1174 | } |
1173 | return result; | 1175 | return result; |
1174 | } | 1176 | } |
1175 | 1177 | ||
1176 | DLLEXPORT(VObject*) Parse_MIME_FromFileName(char *fname) | 1178 | DLLEXPORT(VObject*) Parse_MIME_FromFileName(char *fname) |
1177 | { | 1179 | { |
1178 | FILE *fp = fopen(fname,"r"); | 1180 | FILE *fp = fopen(fname,"r"); |
1179 | if (fp) { | 1181 | if (fp) { |
1180 | VObject* o = Parse_MIME_FromFile(fp); | 1182 | VObject* o = Parse_MIME_FromFile(fp); |
1181 | fclose(fp); | 1183 | fclose(fp); |
1182 | return o; | 1184 | return o; |
1183 | } | 1185 | } |
1184 | else { | 1186 | else { |
1185 | char msg[80]; | 1187 | char msg[80]; |
1186 | sprintf(msg, "can't open file '%s' for reading\n", fname); | 1188 | sprintf(msg, "can't open file '%s' for reading\n", fname); |
1187 | mime_error_(msg); | 1189 | mime_error_(msg); |
1188 | return 0; | 1190 | return 0; |
1189 | } | 1191 | } |
1190 | } | 1192 | } |
1191 | 1193 | ||
1192 | #endif | 1194 | #endif |
1193 | 1195 | ||
1194 | /*-------------------------------------*/ | 1196 | /*-------------------------------------*/ |
1195 | 1197 | ||
1196 | static MimeErrorHandler mimeErrorHandler; | 1198 | static MimeErrorHandler mimeErrorHandler; |
1197 | 1199 | ||
1198 | DLLEXPORT(void) registerMimeErrorHandler(MimeErrorHandler me) | 1200 | DLLEXPORT(void) registerMimeErrorHandler(MimeErrorHandler me) |
1199 | { | 1201 | { |
1200 | mimeErrorHandler = me; | 1202 | mimeErrorHandler = me; |
1201 | } | 1203 | } |
1202 | 1204 | ||
1203 | void mime_error(char *s) | 1205 | void mime_error(char *s) |
1204 | { | 1206 | { |
1205 | char msg[256]; | 1207 | char msg[256]; |
1206 | if (mimeErrorHandler) { | 1208 | if (mimeErrorHandler) { |
1207 | sprintf(msg,"%s at line %d", s, mime_lineNum); | 1209 | sprintf(msg,"%s at line %d", s, mime_lineNum); |
1208 | mimeErrorHandler(msg); | 1210 | mimeErrorHandler(msg); |
1209 | } | 1211 | } |
1210 | } | 1212 | } |
1211 | 1213 | ||
1212 | void mime_error_(char *s) | 1214 | void mime_error_(char *s) |
1213 | { | 1215 | { |
1214 | if (mimeErrorHandler) { | 1216 | if (mimeErrorHandler) { |
1215 | mimeErrorHandler(s); | 1217 | mimeErrorHandler(s); |
1216 | } | 1218 | } |
1217 | } | 1219 | } |
1218 | 1220 | ||
diff --git a/library/backend/vcc_yacc.cpp b/library/backend/vcc_yacc.cpp index 5649522..5f53aef 100644 --- a/library/backend/vcc_yacc.cpp +++ b/library/backend/vcc_yacc.cpp | |||
@@ -32,1564 +32,1566 @@ static char yyrcsid[] = "$Id$"; | |||
32 | #define yycheck vcccheck | 32 | #define yycheck vcccheck |
33 | #define yyname vccname | 33 | #define yyname vccname |
34 | #define yyrule vccrule | 34 | #define yyrule vccrule |
35 | #define YYPREFIX "vcc" | 35 | #define YYPREFIX "vcc" |
36 | #line 1 "backend/vcc.y" | 36 | #line 1 "backend/vcc.y" |
37 | 37 | ||
38 | 38 | ||
39 | /*************************************************************************** | 39 | /*************************************************************************** |
40 | (C) Copyright 1996 Apple Computer, Inc., AT&T Corp., International | 40 | (C) Copyright 1996 Apple Computer, Inc., AT&T Corp., International |
41 | Business Machines Corporation and Siemens Rolm Communications Inc. | 41 | Business Machines Corporation and Siemens Rolm Communications Inc. |
42 | 42 | ||
43 | For purposes of this license notice, the term Licensors shall mean, | 43 | For purposes of this license notice, the term Licensors shall mean, |
44 | collectively, Apple Computer, Inc., AT&T Corp., International | 44 | collectively, Apple Computer, Inc., AT&T Corp., International |
45 | Business Machines Corporation and Siemens Rolm Communications Inc. | 45 | Business Machines Corporation and Siemens Rolm Communications Inc. |
46 | The term Licensor shall mean any of the Licensors. | 46 | The term Licensor shall mean any of the Licensors. |
47 | 47 | ||
48 | Subject to acceptance of the following conditions, permission is hereby | 48 | Subject to acceptance of the following conditions, permission is hereby |
49 | granted by Licensors without the need for written agreement and without | 49 | granted by Licensors without the need for written agreement and without |
50 | license or royalty fees, to use, copy, modify and distribute this | 50 | license or royalty fees, to use, copy, modify and distribute this |
51 | software for any purpose. | 51 | software for any purpose. |
52 | 52 | ||
53 | The above copyright notice and the following four paragraphs must be | 53 | The above copyright notice and the following four paragraphs must be |
54 | reproduced in all copies of this software and any software including | 54 | reproduced in all copies of this software and any software including |
55 | this software. | 55 | this software. |
56 | 56 | ||
57 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS AND NO LICENSOR SHALL HAVE | 57 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS AND NO LICENSOR SHALL HAVE |
58 | ANY OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR | 58 | ANY OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR |
59 | MODIFICATIONS. | 59 | MODIFICATIONS. |
60 | 60 | ||
61 | IN NO EVENT SHALL ANY LICENSOR BE LIABLE TO ANY PARTY FOR DIRECT, | 61 | IN NO EVENT SHALL ANY LICENSOR BE LIABLE TO ANY PARTY FOR DIRECT, |
62 | INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT | 62 | INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT |
63 | OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | 63 | OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH |
64 | DAMAGE. | 64 | DAMAGE. |
65 | 65 | ||
66 | EACH LICENSOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, | 66 | EACH LICENSOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, |
67 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF NONINFRINGEMENT OR THE | 67 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF NONINFRINGEMENT OR THE |
68 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 68 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
69 | PURPOSE. | 69 | PURPOSE. |
70 | 70 | ||
71 | The software is provided with RESTRICTED RIGHTS. Use, duplication, or | 71 | The software is provided with RESTRICTED RIGHTS. Use, duplication, or |
72 | disclosure by the government are subject to restrictions set forth in | 72 | disclosure by the government are subject to restrictions set forth in |
73 | DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. | 73 | DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. |
74 | 74 | ||
75 | ***************************************************************************/ | 75 | ***************************************************************************/ |
76 | 76 | ||
77 | /* | 77 | /* |
78 | * src: vcc.c | 78 | * src: vcc.c |
79 | * doc: Parser for vCard and vCalendar. Note that this code is | 79 | * doc: Parser for vCard and vCalendar. Note that this code is |
80 | * generated by a yacc parser generator. Generally it should not | 80 | * generated by a yacc parser generator. Generally it should not |
81 | * be edited by hand. The real source is vcc.y. The #line directives | 81 | * be edited by hand. The real source is vcc.y. The #line directives |
82 | * can be commented out here to make it easier to trace through | 82 | * can be commented out here to make it easier to trace through |
83 | * in a debugger. However, if a bug is found it should | 83 | * in a debugger. However, if a bug is found it should |
84 | * be fixed in vcc.y and this file regenerated. | 84 | * be fixed in vcc.y and this file regenerated. |
85 | */ | 85 | */ |
86 | 86 | ||
87 | 87 | ||
88 | /* debugging utilities */ | 88 | /* debugging utilities */ |
89 | #if __DEBUG | 89 | #if __DEBUG |
90 | #define DBG_(x) printf x | 90 | #define DBG_(x) printf x |
91 | #else | 91 | #else |
92 | #define DBG_(x) | 92 | #define DBG_(x) |
93 | #endif | 93 | #endif |
94 | 94 | ||
95 | /**** External Functions ****/ | 95 | /**** External Functions ****/ |
96 | 96 | ||
97 | /* assign local name to parser variables and functions so that | 97 | /* assign local name to parser variables and functions so that |
98 | we can use more than one yacc based parser. | 98 | we can use more than one yacc based parser. |
99 | */ | 99 | */ |
100 | 100 | ||
101 | #if 0 | 101 | #if 0 |
102 | #define yyparse mime_parse | 102 | #define yyparse mime_parse |
103 | #define yylex mime_lex | 103 | #define yylex mime_lex |
104 | #define yyerror mime_error | 104 | #define yyerror mime_error |
105 | #define yychar mime_char | 105 | #define yychar mime_char |
106 | /* #define p_yyval p_mime_val */ | 106 | /* #define p_yyval p_mime_val */ |
107 | #undef yyval | 107 | #undef yyval |
108 | #define yyval mime_yyval | 108 | #define yyval mime_yyval |
109 | /* #define p_yylval p_mime_lval */ | 109 | /* #define p_yylval p_mime_lval */ |
110 | #undef yylval | 110 | #undef yylval |
111 | #define yylval mime_yylval | 111 | #define yylval mime_yylval |
112 | #define yydebug mime_debug | 112 | #define yydebug mime_debug |
113 | #define yynerrs mime_nerrs | 113 | #define yynerrs mime_nerrs |
114 | #define yyerrflag mime_errflag | 114 | #define yyerrflag mime_errflag |
115 | #define yyss mime_ss | 115 | #define yyss mime_ss |
116 | #define yyssp mime_ssp | 116 | #define yyssp mime_ssp |
117 | #define yyvs mime_vs | 117 | #define yyvs mime_vs |
118 | #define yyvsp mime_vsp | 118 | #define yyvsp mime_vsp |
119 | #define yylhs mime_lhs | 119 | #define yylhs mime_lhs |
120 | #define yylen mime_len | 120 | #define yylen mime_len |
121 | #define yydefred mime_defred | 121 | #define yydefred mime_defred |
122 | #define yydgoto mime_dgoto | 122 | #define yydgoto mime_dgoto |
123 | #define yysindex mime_sindex | 123 | #define yysindex mime_sindex |
124 | #define yyrindex mime_rindex | 124 | #define yyrindex mime_rindex |
125 | #define yygindex mime_gindex | 125 | #define yygindex mime_gindex |
126 | #define yytable mime_table | 126 | #define yytable mime_table |
127 | #define yycheck mime_check | 127 | #define yycheck mime_check |
128 | #define yyname mime_name | 128 | #define yyname mime_name |
129 | #define yyrule mime_rule | 129 | #define yyrule mime_rule |
130 | #ifdef YYPREFIX | 130 | #ifdef YYPREFIX |
131 | #undef YYPREFIX | 131 | #undef YYPREFIX |
132 | #endif | 132 | #endif |
133 | #define YYPREFIX "mime_" | 133 | #define YYPREFIX "mime_" |
134 | #endif | 134 | #endif |
135 | 135 | ||
136 | 136 | ||
137 | #ifndef _NO_LINE_FOLDING | 137 | #ifndef _NO_LINE_FOLDING |
138 | #define _SUPPORT_LINE_FOLDING 1 | 138 | #define _SUPPORT_LINE_FOLDING 1 |
139 | #endif | 139 | #endif |
140 | 140 | ||
141 | /* undef below if compile with MFC */ | 141 | /* undef below if compile with MFC */ |
142 | /* #define INCLUDEMFC 1 */ | 142 | /* #define INCLUDEMFC 1 */ |
143 | 143 | ||
144 | #if defined(WIN32) || defined(_WIN32) | 144 | #if defined(WIN32) || defined(_WIN32) |
145 | #ifdef INCLUDEMFC | 145 | #ifdef INCLUDEMFC |
146 | #include <afx.h> | 146 | #include <afx.h> |
147 | #endif | 147 | #endif |
148 | #endif | 148 | #endif |
149 | 149 | ||
150 | #include <string.h> | 150 | #include <string.h> |
151 | #ifndef __MWERKS__ | 151 | #ifndef __MWERKS__ |
152 | #include <stdlib.h> | 152 | #include <stdlib.h> |
153 | #endif | 153 | #endif |
154 | #include <stdio.h> | 154 | #include <stdio.h> |
155 | #include <stdlib.h> | 155 | #include <stdlib.h> |
156 | #include <ctype.h> | 156 | #include <ctype.h> |
157 | 157 | ||
158 | /*#ifdef PALMTOPCENTER */ | 158 | /*#ifdef PALMTOPCENTER */ |
159 | /*#include <qpe/vobject_p.h> */ | 159 | /*#include <qpe/vobject_p.h> */ |
160 | /*#else */ | 160 | /*#else */ |
161 | #include "vobject_p.h" | 161 | #include "vobject_p.h" |
162 | /*#endif */ | 162 | /*#endif */ |
163 | 163 | ||
164 | /**** Types, Constants ****/ | 164 | /**** Types, Constants ****/ |
165 | 165 | ||
166 | #define YYDEBUG 0/* 1 to compile in some debugging code */ | 166 | #define YYDEBUG 0/* 1 to compile in some debugging code */ |
167 | #define MAXTOKEN 256/* maximum token (line) length */ | 167 | #define MAXTOKEN 256/* maximum token (line) length */ |
168 | #define YYSTACKSIZE 100/* ~unref ? */ | 168 | #define YYSTACKSIZE 100/* ~unref ? */ |
169 | #define MAXLEVEL 10/* max # of nested objects parseable */ | 169 | #define MAXLEVEL 10/* max # of nested objects parseable */ |
170 | /* (includes outermost) */ | 170 | /* (includes outermost) */ |
171 | 171 | ||
172 | 172 | ||
173 | /**** Global Variables ****/ | 173 | /**** Global Variables ****/ |
174 | int mime_lineNum, mime_numErrors; /* yyerror() can use these */ | 174 | int mime_lineNum, mime_numErrors; /* yyerror() can use these */ |
175 | static VObject* vObjList; | 175 | static VObject* vObjList; |
176 | static VObject *curProp; | 176 | static VObject *curProp; |
177 | static VObject *curObj; | 177 | static VObject *curObj; |
178 | static VObject* ObjStack[MAXLEVEL]; | 178 | static VObject* ObjStack[MAXLEVEL]; |
179 | static int ObjStackTop; | 179 | static int ObjStackTop; |
180 | 180 | ||
181 | 181 | ||
182 | /* A helpful utility for the rest of the app. */ | 182 | /* A helpful utility for the rest of the app. */ |
183 | #if __CPLUSPLUS__ | 183 | #if __CPLUSPLUS__ |
184 | extern "C" { | 184 | extern "C" { |
185 | #endif | 185 | #endif |
186 | 186 | ||
187 | extern void yyerror(char *s); | 187 | extern void yyerror(char *s); |
188 | 188 | ||
189 | #if __CPLUSPLUS__ | 189 | #if __CPLUSPLUS__ |
190 | }; | 190 | }; |
191 | #endif | 191 | #endif |
192 | 192 | ||
193 | int yyparse(); | 193 | int yyparse(); |
194 | 194 | ||
195 | enum LexMode { | 195 | enum LexMode { |
196 | L_NORMAL, | 196 | L_NORMAL, |
197 | L_VCARD, | 197 | L_VCARD, |
198 | L_VCAL, | 198 | L_VCAL, |
199 | L_VEVENT, | 199 | L_VEVENT, |
200 | L_VTODO, | 200 | L_VTODO, |
201 | L_VALUES, | 201 | L_VALUES, |
202 | L_BASE64, | 202 | L_BASE64, |
203 | L_QUOTED_PRINTABLE | 203 | L_QUOTED_PRINTABLE |
204 | }; | 204 | }; |
205 | 205 | ||
206 | /**** Private Forward Declarations ****/ | 206 | /**** Private Forward Declarations ****/ |
207 | static int pushVObject(const char *prop); | 207 | static int pushVObject(const char *prop); |
208 | static VObject* popVObject(); | 208 | static VObject* popVObject(); |
209 | static void lexPopMode(int top); | 209 | static void lexPopMode(int top); |
210 | static int lexWithinMode(enum LexMode mode); | 210 | static int lexWithinMode(enum LexMode mode); |
211 | static void lexPushMode(enum LexMode mode); | 211 | static void lexPushMode(enum LexMode mode); |
212 | static void enterProps(const char *s); | 212 | static void enterProps(const char *s); |
213 | static void enterAttr(const char *s1, const char *s2); | 213 | static void enterAttr(const char *s1, const char *s2); |
214 | static void enterValues(const char *value); | 214 | static void enterValues(const char *value); |
215 | #define mime_error yyerror | 215 | #define mime_error yyerror |
216 | void mime_error(char *s); | 216 | void mime_error(char *s); |
217 | void mime_error_(char *s); | 217 | void mime_error_(char *s); |
218 | 218 | ||
219 | #line 189 "backend/vcc.y" | 219 | #line 189 "backend/vcc.y" |
220 | typedef union { | 220 | typedef union { |
221 | char *str; | 221 | char *str; |
222 | VObject *vobj; | 222 | VObject *vobj; |
223 | } YYSTYPE; | 223 | } YYSTYPE; |
224 | #line 225 "y.tab.c" | 224 | #line 225 "y.tab.c" |
225 | #define EQ 257 | 225 | #define EQ 257 |
226 | #define COLON 258 | 226 | #define COLON 258 |
227 | #define DOT 259 | 227 | #define DOT 259 |
228 | #define SEMICOLON 260 | 228 | #define SEMICOLON 260 |
229 | #define SPACE 261 | 229 | #define SPACE 261 |
230 | #define HTAB 262 | 230 | #define HTAB 262 |
231 | #define LINESEP 263 | 231 | #define LINESEP 263 |
232 | #define NEWLINE 264 | 232 | #define NEWLINE 264 |
233 | #define BEGIN_VCARD 265 | 233 | #define BEGIN_VCARD 265 |
234 | #define END_VCARD 266 | 234 | #define END_VCARD 266 |
235 | #define BEGIN_VCAL 267 | 235 | #define BEGIN_VCAL 267 |
236 | #define END_VCAL 268 | 236 | #define END_VCAL 268 |
237 | #define BEGIN_VEVENT 269 | 237 | #define BEGIN_VEVENT 269 |
238 | #define END_VEVENT 270 | 238 | #define END_VEVENT 270 |
239 | #define BEGIN_VTODO 271 | 239 | #define BEGIN_VTODO 271 |
240 | #define END_VTODO 272 | 240 | #define END_VTODO 272 |
241 | #define ID 273 | 241 | #define ID 273 |
242 | #define STRING 274 | 242 | #define STRING 274 |
243 | #define YYERRCODE 256 | 243 | #define YYERRCODE 256 |
244 | short vcclhs[] = { -1, | 244 | short vcclhs[] = { -1, |
245 | 0, 6, 6, 5, 5, 8, 3, 9, 3, 7, | 245 | 0, 6, 6, 5, 5, 8, 3, 9, 3, 7, |
246 | 7, 13, 10, 10, 15, 11, 11, 14, 14, 16, | 246 | 7, 13, 10, 10, 15, 11, 11, 14, 14, 16, |
247 | 17, 17, 1, 18, 12, 12, 2, 2, 20, 4, | 247 | 17, 17, 1, 18, 12, 12, 2, 2, 20, 4, |
248 | 21, 4, 19, 19, 22, 22, 22, 25, 23, 26, | 248 | 21, 4, 19, 19, 22, 22, 22, 25, 23, 26, |
249 | 23, 27, 24, 28, 24, | 249 | 23, 27, 24, 28, 24, |
250 | }; | 250 | }; |
251 | short vcclen[] = { 2, | 251 | short vcclen[] = { 2, |
252 | 1, 2, 1, 1, 1, 0, 4, 0, 3, 2, | 252 | 1, 2, 1, 1, 1, 0, 4, 0, 3, 2, |
253 | 1, 0, 5, 1, 0, 3, 1, 2, 1, 2, | 253 | 1, 0, 5, 1, 0, 3, 1, 2, 1, 2, |
254 | 1, 3, 1, 0, 4, 1, 1, 0, 0, 4, | 254 | 1, 3, 1, 0, 4, 1, 1, 0, 0, 4, |
255 | 0, 3, 2, 1, 1, 1, 1, 0, 4, 0, | 255 | 0, 3, 2, 1, 1, 1, 1, 0, 4, 0, |
256 | 3, 0, 4, 0, 3, | 256 | 3, 0, 4, 0, 3, |
257 | }; | 257 | }; |
258 | short vccdefred[] = { 0, | 258 | short vccdefred[] = { 0, |
259 | 0, 0, 0, 4, 5, 3, 0, 0, 0, 0, | 259 | 0, 0, 0, 4, 5, 3, 0, 0, 0, 0, |
260 | 0, 2, 14, 23, 0, 0, 11, 0, 9, 0, | 260 | 0, 2, 14, 23, 0, 0, 11, 0, 9, 0, |
261 | 0, 0, 0, 34, 35, 36, 32, 0, 7, 10, | 261 | 0, 0, 0, 34, 35, 36, 32, 0, 7, 10, |
262 | 12, 0, 0, 0, 0, 30, 33, 0, 0, 19, | 262 | 12, 0, 0, 0, 0, 30, 33, 0, 0, 19, |
263 | 0, 0, 41, 0, 45, 0, 20, 18, 27, 0, | 263 | 0, 0, 41, 0, 45, 0, 20, 18, 27, 0, |
264 | 0, 39, 43, 0, 24, 13, 22, 0, 25, | 264 | 0, 39, 43, 0, 24, 13, 22, 0, 25, |
265 | }; | 265 | }; |
266 | short vccdgoto[] = { 3, | 266 | short vccdgoto[] = { 3, |
267 | 15, 50, 4, 5, 6, 7, 22, 8, 9, 17, | 267 | 15, 50, 4, 5, 6, 7, 22, 8, 9, 17, |
268 | 18, 51, 41, 39, 28, 40, 47, 58, 23, 10, | 268 | 18, 51, 41, 39, 28, 40, 47, 58, 23, 10, |
269 | 11, 24, 25, 26, 32, 33, 34, 35, | 269 | 11, 24, 25, 26, 32, 33, 34, 35, |
270 | }; | 270 | }; |
271 | short vccsindex[] = { -262, | 271 | short vccsindex[] = { -262, |
272 | 0, 0, 0, 0, 0, 0, -262, -252, -219, -249, | 272 | 0, 0, 0, 0, 0, 0, -262, -252, -219, -249, |
273 | -256, 0, 0, 0, 0, -227, 0, -242, 0, 0, | 273 | -256, 0, 0, 0, 0, -227, 0, -242, 0, 0, |
274 | 0, -252, -254, 0, 0, 0, 0, -208, 0, 0, | 274 | 0, -252, -254, 0, 0, 0, 0, -208, 0, 0, |
275 | 0, -252, -228, -252, -213, 0, 0, -212, -208, 0, | 275 | 0, -252, -228, -252, -213, 0, 0, -212, -208, 0, |
276 | -214, -233, 0, -224, 0, -195, 0, 0, 0, -197, | 276 | -214, -233, 0, -224, 0, -195, 0, 0, 0, -197, |
277 | -199, 0, 0, -212, 0, 0, 0, -214, 0, | 277 | -199, 0, 0, -212, 0, 0, 0, -214, 0, |
278 | }; | 278 | }; |
279 | short vccrindex[] = { 0, | 279 | short vccrindex[] = { 0, |
280 | -222, -238, 0, 0, 0, 0, 65, 0, 0, 0, | 280 | -222, -238, 0, 0, 0, 0, 65, 0, 0, 0, |
281 | 0, 0, 0, 0, -215, 0, 0, 0, 0, -220, | 281 | 0, 0, 0, 0, -215, 0, 0, 0, 0, -220, |
282 | -218, -260, 0, 0, 0, 0, 0, 0, 0, 0, | 282 | -218, -260, 0, 0, 0, 0, 0, 0, 0, 0, |
283 | 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, | 283 | 0, 0, 0, 0, 0, 0, 0, 0, -192, 0, |
284 | -250, 0, 0, 0, 0, -202, 0, 0, 0, -196, | 284 | -250, 0, 0, 0, 0, -202, 0, 0, 0, -196, |
285 | 0, 0, 0, 0, 0, 0, 0, -250, 0, | 285 | 0, 0, 0, 0, 0, 0, 0, -250, 0, |
286 | }; | 286 | }; |
287 | short vccgindex[] = { 0, | 287 | short vccgindex[] = { 0, |
288 | 3, 0, 0, 0, 61, 0, -7, 0, 0, -16, | 288 | 3, 0, 0, 0, 61, 0, -7, 0, 0, -16, |
289 | 0, 11, 0, 0, 0, 31, 0, 0, 0, 0, | 289 | 0, 11, 0, 0, 0, 31, 0, 0, 0, 0, |
290 | 0, 48, 0, 0, 0, 0, 0, 0, | 290 | 0, 48, 0, 0, 0, 0, 0, 0, |
291 | }; | 291 | }; |
292 | #define YYTABLESIZE 71 | 292 | #define YYTABLESIZE 71 |
293 | short vcctable[] = { 30, | 293 | short vcctable[] = { 30, |
294 | 16, 13, 1, 13, 2, 30, 13, 37, 37, 28, | 294 | 16, 13, 1, 13, 2, 30, 13, 37, 37, 28, |
295 | 37, 27, 28, 36, 20, 31, 21, 29, 14, 20, | 295 | 37, 27, 28, 36, 20, 31, 21, 29, 14, 20, |
296 | 14, 21, 13, 14, 42, 30, 44, 30, 13, 31, | 296 | 14, 21, 13, 14, 42, 30, 44, 30, 13, 31, |
297 | 29, 13, 29, 6, 29, 38, 52, 42, 29, 14, | 297 | 29, 13, 29, 6, 29, 38, 52, 42, 29, 14, |
298 | 46, 43, 17, 8, 15, 14, 19, 53, 14, 40, | 298 | 46, 43, 17, 8, 15, 14, 19, 53, 14, 40, |
299 | 6, 38, 38, 44, 42, 21, 57, 21, 45, 49, | 299 | 6, 38, 38, 44, 42, 21, 57, 21, 45, 49, |
300 | 14, 54, 55, 56, 1, 16, 26, 12, 59, 48, | 300 | 14, 54, 55, 56, 1, 16, 26, 12, 59, 48, |
301 | 37, | 301 | 37, |
302 | }; | 302 | }; |
303 | short vcccheck[] = { 16, | 303 | short vcccheck[] = { 16, |
304 | 8, 256, 265, 256, 267, 22, 256, 268, 269, 260, | 304 | 8, 256, 265, 256, 267, 22, 256, 268, 269, 260, |
305 | 271, 268, 263, 268, 269, 258, 271, 256, 273, 269, | 305 | 271, 268, 263, 268, 269, 258, 271, 256, 273, 269, |
306 | 273, 271, 256, 273, 32, 42, 34, 44, 256, 268, | 306 | 273, 271, 256, 273, 32, 42, 34, 44, 256, 268, |
307 | 269, 256, 271, 256, 273, 256, 270, 256, 266, 273, | 307 | 269, 256, 271, 256, 273, 256, 270, 256, 266, 273, |
308 | 38, 270, 258, 266, 260, 273, 266, 272, 273, 270, | 308 | 38, 270, 258, 266, 260, 273, 266, 272, 273, 270, |
309 | 273, 260, 273, 272, 273, 258, 54, 260, 272, 274, | 309 | 273, 260, 273, 272, 273, 258, 54, 260, 272, 274, |
310 | 273, 257, 260, 263, 0, 258, 263, 7, 58, 39, | 310 | 273, 257, 260, 263, 0, 258, 263, 7, 58, 39, |
311 | 23, | 311 | 23, |
312 | }; | 312 | }; |
313 | #define YYFINAL 3 | 313 | #define YYFINAL 3 |
314 | #ifndef YYDEBUG | 314 | #ifndef YYDEBUG |
315 | #define YYDEBUG 0 | 315 | #define YYDEBUG 0 |
316 | #endif | 316 | #endif |
317 | #define YYMAXTOKEN 274 | 317 | #define YYMAXTOKEN 274 |
318 | #if YYDEBUG | 318 | #if YYDEBUG |
319 | char *vccname[] = { | 319 | char *vccname[] = { |
320 | "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | 320 | "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
321 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | 321 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
322 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | 322 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
323 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | 323 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
324 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | 324 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
325 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | 325 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
326 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"EQ","COLON","DOT","SEMICOLON", | 326 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"EQ","COLON","DOT","SEMICOLON", |
327 | "SPACE","HTAB","LINESEP","NEWLINE","BEGIN_VCARD","END_VCARD","BEGIN_VCAL", | 327 | "SPACE","HTAB","LINESEP","NEWLINE","BEGIN_VCARD","END_VCARD","BEGIN_VCAL", |
328 | "END_VCAL","BEGIN_VEVENT","END_VEVENT","BEGIN_VTODO","END_VTODO","ID","STRING", | 328 | "END_VCAL","BEGIN_VEVENT","END_VEVENT","BEGIN_VTODO","END_VTODO","ID","STRING", |
329 | }; | 329 | }; |
330 | char *vccrule[] = { | 330 | char *vccrule[] = { |
331 | "$accept : mime", | 331 | "$accept : mime", |
332 | "mime : vobjects", | 332 | "mime : vobjects", |
333 | "vobjects : vobjects vobject", | 333 | "vobjects : vobjects vobject", |
334 | "vobjects : vobject", | 334 | "vobjects : vobject", |
335 | "vobject : vcard", | 335 | "vobject : vcard", |
336 | "vobject : vcal", | 336 | "vobject : vcal", |
337 | "$$1 :", | 337 | "$$1 :", |
338 | "vcard : BEGIN_VCARD $$1 items END_VCARD", | 338 | "vcard : BEGIN_VCARD $$1 items END_VCARD", |
339 | "$$2 :", | 339 | "$$2 :", |
340 | "vcard : BEGIN_VCARD $$2 END_VCARD", | 340 | "vcard : BEGIN_VCARD $$2 END_VCARD", |
341 | "items : items item", | 341 | "items : items item", |
342 | "items : item", | 342 | "items : item", |
343 | "$$3 :", | 343 | "$$3 :", |
344 | "item : prop COLON $$3 values LINESEP", | 344 | "item : prop COLON $$3 values LINESEP", |
345 | "item : error", | 345 | "item : error", |
346 | "$$4 :", | 346 | "$$4 :", |
347 | "prop : name $$4 attr_params", | 347 | "prop : name $$4 attr_params", |
348 | "prop : name", | 348 | "prop : name", |
349 | "attr_params : attr_params attr_param", | 349 | "attr_params : attr_params attr_param", |
350 | "attr_params : attr_param", | 350 | "attr_params : attr_param", |
351 | "attr_param : SEMICOLON attr", | 351 | "attr_param : SEMICOLON attr", |
352 | "attr : name", | 352 | "attr : name", |
353 | "attr : name EQ name", | 353 | "attr : name EQ name", |
354 | "name : ID", | 354 | "name : ID", |
355 | "$$5 :", | 355 | "$$5 :", |
356 | "values : value SEMICOLON $$5 values", | 356 | "values : value SEMICOLON $$5 values", |
357 | "values : value", | 357 | "values : value", |
358 | "value : STRING", | 358 | "value : STRING", |
359 | "value :", | 359 | "value :", |
360 | "$$6 :", | 360 | "$$6 :", |
361 | "vcal : BEGIN_VCAL $$6 calitems END_VCAL", | 361 | "vcal : BEGIN_VCAL $$6 calitems END_VCAL", |
362 | "$$7 :", | 362 | "$$7 :", |
363 | "vcal : BEGIN_VCAL $$7 END_VCAL", | 363 | "vcal : BEGIN_VCAL $$7 END_VCAL", |
364 | "calitems : calitems calitem", | 364 | "calitems : calitems calitem", |
365 | "calitems : calitem", | 365 | "calitems : calitem", |
366 | "calitem : eventitem", | 366 | "calitem : eventitem", |
367 | "calitem : todoitem", | 367 | "calitem : todoitem", |
368 | "calitem : items", | 368 | "calitem : items", |
369 | "$$8 :", | 369 | "$$8 :", |
370 | "eventitem : BEGIN_VEVENT $$8 items END_VEVENT", | 370 | "eventitem : BEGIN_VEVENT $$8 items END_VEVENT", |
371 | "$$9 :", | 371 | "$$9 :", |
372 | "eventitem : BEGIN_VEVENT $$9 END_VEVENT", | 372 | "eventitem : BEGIN_VEVENT $$9 END_VEVENT", |
373 | "$$10 :", | 373 | "$$10 :", |
374 | "todoitem : BEGIN_VTODO $$10 items END_VTODO", | 374 | "todoitem : BEGIN_VTODO $$10 items END_VTODO", |
375 | "$$11 :", | 375 | "$$11 :", |
376 | "todoitem : BEGIN_VTODO $$11 END_VTODO", | 376 | "todoitem : BEGIN_VTODO $$11 END_VTODO", |
377 | }; | 377 | }; |
378 | #endif | 378 | #endif |
379 | #ifdef YYSTACKSIZE | 379 | #ifdef YYSTACKSIZE |
380 | #undef YYMAXDEPTH | 380 | #undef YYMAXDEPTH |
381 | #define YYMAXDEPTH YYSTACKSIZE | 381 | #define YYMAXDEPTH YYSTACKSIZE |
382 | #else | 382 | #else |
383 | #ifdef YYMAXDEPTH | 383 | #ifdef YYMAXDEPTH |
384 | #define YYSTACKSIZE YYMAXDEPTH | 384 | #define YYSTACKSIZE YYMAXDEPTH |
385 | #else | 385 | #else |
386 | #define YYSTACKSIZE 500 | 386 | #define YYSTACKSIZE 500 |
387 | #define YYMAXDEPTH 500 | 387 | #define YYMAXDEPTH 500 |
388 | #endif | 388 | #endif |
389 | #endif | 389 | #endif |
390 | int yydebug; | 390 | int yydebug; |
391 | int yynerrs; | 391 | int yynerrs; |
392 | int yyerrflag; | 392 | int yyerrflag; |
393 | int yychar; | 393 | int yychar; |
394 | short *yyssp; | 394 | short *yyssp; |
395 | YYSTYPE *yyvsp; | 395 | YYSTYPE *yyvsp; |
396 | YYSTYPE yyval; | 396 | YYSTYPE yyval; |
397 | YYSTYPE yylval; | 397 | YYSTYPE yylval; |
398 | short yyss[YYSTACKSIZE]; | 398 | short yyss[YYSTACKSIZE]; |
399 | YYSTYPE yyvs[YYSTACKSIZE]; | 399 | YYSTYPE yyvs[YYSTACKSIZE]; |
400 | #define yystacksize YYSTACKSIZE | 400 | #define yystacksize YYSTACKSIZE |
401 | #line 382 "backend/vcc.y" | 401 | #line 382 "backend/vcc.y" |
402 | 402 | ||
403 | /*------------------------------------*/ | 403 | /*------------------------------------*/ |
404 | static int pushVObject(const char *prop) | 404 | static int pushVObject(const char *prop) |
405 | { | 405 | { |
406 | VObject *newObj; | 406 | VObject *newObj; |
407 | if (ObjStackTop == MAXLEVEL) | 407 | if (ObjStackTop == MAXLEVEL) |
408 | return FALSE; | 408 | return FALSE; |
409 | 409 | ||
410 | ObjStack[++ObjStackTop] = curObj; | 410 | ObjStack[++ObjStackTop] = curObj; |
411 | 411 | ||
412 | if (curObj) { | 412 | if (curObj) { |
413 | newObj = addProp(curObj,prop); | 413 | newObj = addProp(curObj,prop); |
414 | curObj = newObj; | 414 | curObj = newObj; |
415 | } | 415 | } |
416 | else | 416 | else |
417 | curObj = newVObject(prop); | 417 | curObj = newVObject(prop); |
418 | 418 | ||
419 | return TRUE; | 419 | return TRUE; |
420 | } | 420 | } |
421 | 421 | ||
422 | 422 | ||
423 | /*---------------------------------------*/ | 423 | /*---------------------------------------*/ |
424 | /* This pops the recently built vCard off the stack and returns it. */ | 424 | /* This pops the recently built vCard off the stack and returns it. */ |
425 | static VObject* popVObject() | 425 | static VObject* popVObject() |
426 | { | 426 | { |
427 | VObject *oldObj; | 427 | VObject *oldObj; |
428 | if (ObjStackTop < 0) { | 428 | if (ObjStackTop < 0) { |
429 | yyerror("pop on empty Object Stack\n"); | 429 | yyerror("pop on empty Object Stack\n"); |
430 | return 0; | 430 | return 0; |
431 | } | 431 | } |
432 | oldObj = curObj; | 432 | oldObj = curObj; |
433 | curObj = ObjStack[ObjStackTop--]; | 433 | curObj = ObjStack[ObjStackTop--]; |
434 | 434 | ||
435 | return oldObj; | 435 | return oldObj; |
436 | } | 436 | } |
437 | 437 | ||
438 | 438 | ||
439 | static void enterValues(const char *value) | 439 | static void enterValues(const char *value) |
440 | { | 440 | { |
441 | if (fieldedProp && *fieldedProp) { | 441 | if (fieldedProp && *fieldedProp) { |
442 | if (value) { | 442 | if (value) { |
443 | addPropValue(curProp,*fieldedProp,value); | 443 | addPropValue(curProp,*fieldedProp,value); |
444 | } | 444 | } |
445 | /* else this field is empty, advance to next field */ | 445 | /* else this field is empty, advance to next field */ |
446 | fieldedProp++; | 446 | fieldedProp++; |
447 | } | 447 | } |
448 | else { | 448 | else { |
449 | if (value) { | 449 | if (value) { |
450 | setVObjectStringZValue_(curProp,strdup( value )); | 450 | setVObjectStringZValue_(curProp,strdup( value )); |
451 | } | 451 | } |
452 | } | 452 | } |
453 | deleteStr(value); | 453 | deleteStr(value); |
454 | } | 454 | } |
455 | 455 | ||
456 | static void enterProps(const char *s) | 456 | static void enterProps(const char *s) |
457 | { | 457 | { |
458 | curProp = addGroup(curObj,s); | 458 | curProp = addGroup(curObj,s); |
459 | deleteStr(s); | 459 | deleteStr(s); |
460 | } | 460 | } |
461 | 461 | ||
462 | static void enterAttr(const char *s1, const char *s2) | 462 | static void enterAttr(const char *s1, const char *s2) |
463 | { | 463 | { |
464 | const char *p1, *p2; | 464 | const char *p1, *p2; |
465 | p1 = lookupProp_(s1); | 465 | p1 = lookupProp_(s1); |
466 | if (s2) { | 466 | if (s2) { |
467 | VObject *a; | 467 | VObject *a; |
468 | p2 = lookupProp_(s2); | 468 | p2 = lookupProp_(s2); |
469 | a = addProp(curProp,p1); | 469 | a = addProp(curProp,p1); |
470 | setVObjectStringZValue(a,p2); | 470 | setVObjectStringZValue(a,p2); |
471 | } | 471 | } |
472 | else | 472 | else |
473 | addProp(curProp,p1); | 473 | addProp(curProp,p1); |
474 | if (qstricmp(p1,VCBase64Prop) == 0 || (s2 && qstricmp(p2,VCBase64Prop)==0)) | 474 | if (qstricmp(p1,VCBase64Prop) == 0 || (s2 && qstricmp(p2,VCBase64Prop)==0)) |
475 | lexPushMode(L_BASE64); | 475 | lexPushMode(L_BASE64); |
476 | else if (qstricmp(p1,VCQuotedPrintableProp) == 0 | 476 | else if (qstricmp(p1,VCQuotedPrintableProp) == 0 |
477 | || (s2 && qstricmp(p2,VCQuotedPrintableProp)==0)) | 477 | || (s2 && qstricmp(p2,VCQuotedPrintableProp)==0)) |
478 | lexPushMode(L_QUOTED_PRINTABLE); | 478 | lexPushMode(L_QUOTED_PRINTABLE); |
479 | deleteStr(s1); deleteStr(s2); | 479 | deleteStr(s1); deleteStr(s2); |
480 | } | 480 | } |
481 | 481 | ||
482 | 482 | ||
483 | #define MAX_LEX_LOOKAHEAD_0 32 | 483 | #define MAX_LEX_LOOKAHEAD_0 32 |
484 | #define MAX_LEX_LOOKAHEAD 64 | 484 | #define MAX_LEX_LOOKAHEAD 64 |
485 | #define MAX_LEX_MODE_STACK_SIZE 10 | 485 | #define MAX_LEX_MODE_STACK_SIZE 10 |
486 | #define LEXMODE() (lexBuf.lexModeStack[lexBuf.lexModeStackTop]) | 486 | #define LEXMODE() (lexBuf.lexModeStack[lexBuf.lexModeStackTop]) |
487 | 487 | ||
488 | struct LexBuf { | 488 | struct LexBuf { |
489 | /* input */ | 489 | /* input */ |
490 | #ifdef INCLUDEMFC | 490 | #ifdef INCLUDEMFC |
491 | CFile *inputFile; | 491 | CFile *inputFile; |
492 | #else | 492 | #else |
493 | FILE *inputFile; | 493 | FILE *inputFile; |
494 | #endif | 494 | #endif |
495 | char *inputString; | 495 | char *inputString; |
496 | unsigned long curPos; | 496 | unsigned long curPos; |
497 | unsigned long inputLen; | 497 | unsigned long inputLen; |
498 | /* lookahead buffer */ | 498 | /* lookahead buffer */ |
499 | /* -- lookahead buffer is short instead of char so that EOF | 499 | /* -- lookahead buffer is short instead of char so that EOF |
500 | / can be represented correctly. | 500 | / can be represented correctly. |
501 | */ | 501 | */ |
502 | unsigned long len; | 502 | unsigned long len; |
503 | short buf[MAX_LEX_LOOKAHEAD]; | 503 | short buf[MAX_LEX_LOOKAHEAD]; |
504 | unsigned long getPtr; | 504 | unsigned long getPtr; |
505 | /* context stack */ | 505 | /* context stack */ |
506 | unsigned long lexModeStackTop; | 506 | unsigned long lexModeStackTop; |
507 | enum LexMode lexModeStack[MAX_LEX_MODE_STACK_SIZE]; | 507 | enum LexMode lexModeStack[MAX_LEX_MODE_STACK_SIZE]; |
508 | /* token buffer */ | 508 | /* token buffer */ |
509 | unsigned long maxToken; | 509 | unsigned long maxToken; |
510 | char *strs; | 510 | char *strs; |
511 | unsigned long strsLen; | 511 | unsigned long strsLen; |
512 | } lexBuf; | 512 | } lexBuf; |
513 | 513 | ||
514 | static void lexPushMode(enum LexMode mode) | 514 | static void lexPushMode(enum LexMode mode) |
515 | { | 515 | { |
516 | if (lexBuf.lexModeStackTop == (MAX_LEX_MODE_STACK_SIZE-1)) | 516 | if (lexBuf.lexModeStackTop == (MAX_LEX_MODE_STACK_SIZE-1)) |
517 | yyerror("lexical context stack overflow"); | 517 | yyerror("lexical context stack overflow"); |
518 | else { | 518 | else { |
519 | lexBuf.lexModeStack[++lexBuf.lexModeStackTop] = mode; | 519 | lexBuf.lexModeStack[++lexBuf.lexModeStackTop] = mode; |
520 | } | 520 | } |
521 | } | 521 | } |
522 | 522 | ||
523 | static void lexPopMode(int top) | 523 | static void lexPopMode(int top) |
524 | { | 524 | { |
525 | /* special case of pop for ease of error recovery -- this | 525 | /* special case of pop for ease of error recovery -- this |
526 | version will never underflow */ | 526 | version will never underflow */ |
527 | if (top) | 527 | if (top) |
528 | lexBuf.lexModeStackTop = 0; | 528 | lexBuf.lexModeStackTop = 0; |
529 | else | 529 | else |
530 | if (lexBuf.lexModeStackTop > 0) lexBuf.lexModeStackTop--; | 530 | if (lexBuf.lexModeStackTop > 0) lexBuf.lexModeStackTop--; |
531 | } | 531 | } |
532 | 532 | ||
533 | static int lexWithinMode(enum LexMode mode) { | 533 | static int lexWithinMode(enum LexMode mode) { |
534 | unsigned long i; | 534 | unsigned long i; |
535 | for (i=0;i<lexBuf.lexModeStackTop;i++) | 535 | for (i=0;i<lexBuf.lexModeStackTop;i++) |
536 | if (mode == lexBuf.lexModeStack[i]) return 1; | 536 | if (mode == lexBuf.lexModeStack[i]) return 1; |
537 | return 0; | 537 | return 0; |
538 | } | 538 | } |
539 | 539 | ||
540 | static int lexGetc_() | 540 | static int lexGetc_() |
541 | { | 541 | { |
542 | /* get next char from input, no buffering. */ | 542 | /* get next char from input, no buffering. */ |
543 | if (lexBuf.curPos == lexBuf.inputLen) | 543 | if (lexBuf.curPos == lexBuf.inputLen) |
544 | return EOF; | 544 | return EOF; |
545 | else if (lexBuf.inputString) | 545 | else if (lexBuf.inputString) |
546 | return *(lexBuf.inputString + lexBuf.curPos++); | 546 | return *(lexBuf.inputString + lexBuf.curPos++); |
547 | else { | 547 | else { |
548 | #ifdef INCLUDEMFC | 548 | #ifdef INCLUDEMFC |
549 | char result; | 549 | char result; |
550 | return lexBuf.inputFile->Read(&result, 1) == 1 ? result : EOF; | 550 | return lexBuf.inputFile->Read(&result, 1) == 1 ? result : EOF; |
551 | #else | 551 | #else |
552 | return fgetc(lexBuf.inputFile); | 552 | return fgetc(lexBuf.inputFile); |
553 | #endif | 553 | #endif |
554 | } | 554 | } |
555 | } | 555 | } |
556 | 556 | ||
557 | static int lexGeta() | 557 | static int lexGeta() |
558 | { | 558 | { |
559 | ++lexBuf.len; | 559 | ++lexBuf.len; |
560 | return (lexBuf.buf[lexBuf.getPtr] = lexGetc_()); | 560 | return (lexBuf.buf[lexBuf.getPtr] = lexGetc_()); |
561 | } | 561 | } |
562 | 562 | ||
563 | static int lexGeta_(int i) | 563 | static int lexGeta_(int i) |
564 | { | 564 | { |
565 | ++lexBuf.len; | 565 | ++lexBuf.len; |
566 | return (lexBuf.buf[(lexBuf.getPtr+i)%MAX_LEX_LOOKAHEAD] = lexGetc_()); | 566 | return (lexBuf.buf[(lexBuf.getPtr+i)%MAX_LEX_LOOKAHEAD] = lexGetc_()); |
567 | } | 567 | } |
568 | 568 | ||
569 | static void lexSkipLookahead() { | 569 | static void lexSkipLookahead() { |
570 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { | 570 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { |
571 | /* don't skip EOF. */ | 571 | /* don't skip EOF. */ |
572 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; | 572 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; |
573 | lexBuf.len--; | 573 | lexBuf.len--; |
574 | } | 574 | } |
575 | } | 575 | } |
576 | 576 | ||
577 | static int lexLookahead() { | 577 | static int lexLookahead() { |
578 | int c = (lexBuf.len)? | 578 | int c = (lexBuf.len)? |
579 | lexBuf.buf[lexBuf.getPtr]: | 579 | lexBuf.buf[lexBuf.getPtr]: |
580 | lexGeta(); | 580 | lexGeta(); |
581 | /* do the \r\n -> \n or \r -> \n translation here */ | 581 | /* do the \r\n -> \n or \r -> \n translation here */ |
582 | if (c == '\r') { | 582 | if (c == '\r') { |
583 | int a = (lexBuf.len>1)? | 583 | int a = (lexBuf.len>1)? |
584 | lexBuf.buf[(lexBuf.getPtr+1)%MAX_LEX_LOOKAHEAD]: | 584 | lexBuf.buf[(lexBuf.getPtr+1)%MAX_LEX_LOOKAHEAD]: |
585 | lexGeta_(1); | 585 | lexGeta_(1); |
586 | if (a == '\n') { | 586 | if (a == '\n') { |
587 | lexSkipLookahead(); | 587 | lexSkipLookahead(); |
588 | } | 588 | } |
589 | lexBuf.buf[lexBuf.getPtr] = c = '\n'; | 589 | lexBuf.buf[lexBuf.getPtr] = c = '\n'; |
590 | } | 590 | } |
591 | else if (c == '\n') { | 591 | else if (c == '\n') { |
592 | int a = (lexBuf.len>1)? | 592 | int a = (lexBuf.len>1)? |
593 | lexBuf.buf[lexBuf.getPtr+1]: | 593 | lexBuf.buf[lexBuf.getPtr+1]: |
594 | lexGeta_(1); | 594 | lexGeta_(1); |
595 | if (a == '\r') { | 595 | if (a == '\r') { |
596 | lexSkipLookahead(); | 596 | lexSkipLookahead(); |
597 | } | 597 | } |
598 | lexBuf.buf[lexBuf.getPtr] = '\n'; | 598 | lexBuf.buf[lexBuf.getPtr] = '\n'; |
599 | } | 599 | } |
600 | return c; | 600 | return c; |
601 | } | 601 | } |
602 | 602 | ||
603 | static int lexGetc() { | 603 | static int lexGetc() { |
604 | int c = lexLookahead(); | 604 | int c = lexLookahead(); |
605 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { | 605 | if (lexBuf.len > 0 && lexBuf.buf[lexBuf.getPtr]!=EOF) { |
606 | /* EOF will remain in lookahead buffer */ | 606 | /* EOF will remain in lookahead buffer */ |
607 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; | 607 | lexBuf.getPtr = (lexBuf.getPtr + 1) % MAX_LEX_LOOKAHEAD; |
608 | lexBuf.len--; | 608 | lexBuf.len--; |
609 | } | 609 | } |
610 | return c; | 610 | return c; |
611 | } | 611 | } |
612 | 612 | ||
613 | static void lexSkipLookaheadWord() { | 613 | static void lexSkipLookaheadWord() { |
614 | if (lexBuf.strsLen <= lexBuf.len) { | 614 | if (lexBuf.strsLen <= lexBuf.len) { |
615 | lexBuf.len -= lexBuf.strsLen; | 615 | lexBuf.len -= lexBuf.strsLen; |
616 | lexBuf.getPtr = (lexBuf.getPtr + lexBuf.strsLen) % MAX_LEX_LOOKAHEAD; | 616 | lexBuf.getPtr = (lexBuf.getPtr + lexBuf.strsLen) % MAX_LEX_LOOKAHEAD; |
617 | } | 617 | } |
618 | } | 618 | } |
619 | 619 | ||
620 | static void lexClearToken() | 620 | static void lexClearToken() |
621 | { | 621 | { |
622 | lexBuf.strsLen = 0; | 622 | lexBuf.strsLen = 0; |
623 | } | 623 | } |
624 | 624 | ||
625 | static void lexAppendc(int c) | 625 | static void lexAppendc(int c) |
626 | { | 626 | { |
627 | lexBuf.strs[lexBuf.strsLen] = c; | 627 | lexBuf.strs[lexBuf.strsLen] = c; |
628 | /* append up to zero termination */ | 628 | /* append up to zero termination */ |
629 | if (c == 0) return; | 629 | if (c == 0) return; |
630 | lexBuf.strsLen++; | 630 | lexBuf.strsLen++; |
631 | if (lexBuf.strsLen > lexBuf.maxToken) { | 631 | if (lexBuf.strsLen > lexBuf.maxToken) { |
632 | /* double the token string size */ | 632 | /* double the token string size */ |
633 | lexBuf.maxToken <<= 1; | 633 | lexBuf.maxToken <<= 1; |
634 | lexBuf.strs = (char*) realloc(lexBuf.strs,(size_t)lexBuf.maxToken); | 634 | lexBuf.strs = (char*) realloc(lexBuf.strs,(size_t)lexBuf.maxToken); |
635 | } | 635 | } |
636 | } | 636 | } |
637 | 637 | ||
638 | static char* lexStr() { | 638 | static char* lexStr() { |
639 | return dupStr(lexBuf.strs,(size_t)lexBuf.strsLen+1); | 639 | return dupStr(lexBuf.strs,(size_t)lexBuf.strsLen+1); |
640 | } | 640 | } |
641 | 641 | ||
642 | static void lexSkipWhite() { | 642 | static void lexSkipWhite() { |
643 | int c = lexLookahead(); | 643 | int c = lexLookahead(); |
644 | while (c == ' ' || c == '\t') { | 644 | while (c == ' ' || c == '\t') { |
645 | lexSkipLookahead(); | 645 | lexSkipLookahead(); |
646 | c = lexLookahead(); | 646 | c = lexLookahead(); |
647 | } | 647 | } |
648 | } | 648 | } |
649 | 649 | ||
650 | static char* lexGetWord() { | 650 | static char* lexGetWord() { |
651 | int c; | 651 | int c; |
652 | lexSkipWhite(); | 652 | lexSkipWhite(); |
653 | lexClearToken(); | 653 | lexClearToken(); |
654 | c = lexLookahead(); | 654 | c = lexLookahead(); |
655 | while (c != EOF && !strchr("\t\n ;:=",c)) { | 655 | while (c != EOF && !strchr("\t\n ;:=",c)) { |
656 | lexAppendc(c); | 656 | lexAppendc(c); |
657 | lexSkipLookahead(); | 657 | lexSkipLookahead(); |
658 | c = lexLookahead(); | 658 | c = lexLookahead(); |
659 | } | 659 | } |
660 | lexAppendc(0); | 660 | lexAppendc(0); |
661 | return lexStr(); | 661 | return lexStr(); |
662 | } | 662 | } |
663 | 663 | ||
664 | static void lexPushLookaheadc(int c) { | 664 | static void lexPushLookaheadc(int c) { |
665 | int putptr; | 665 | int putptr; |
666 | /* can't putback EOF, because it never leaves lookahead buffer */ | 666 | /* can't putback EOF, because it never leaves lookahead buffer */ |
667 | if (c == EOF) return; | 667 | if (c == EOF) return; |
668 | putptr = (int)lexBuf.getPtr - 1; | 668 | putptr = (int)lexBuf.getPtr - 1; |
669 | if (putptr < 0) putptr += MAX_LEX_LOOKAHEAD; | 669 | if (putptr < 0) putptr += MAX_LEX_LOOKAHEAD; |
670 | lexBuf.getPtr = putptr; | 670 | lexBuf.getPtr = putptr; |
671 | lexBuf.buf[putptr] = c; | 671 | lexBuf.buf[putptr] = c; |
672 | lexBuf.len += 1; | 672 | lexBuf.len += 1; |
673 | } | 673 | } |
674 | 674 | ||
675 | static char* lexLookaheadWord() { | 675 | static char* lexLookaheadWord() { |
676 | /* this function can lookahead word with max size of MAX_LEX_LOOKAHEAD_0 | 676 | /* this function can lookahead word with max size of MAX_LEX_LOOKAHEAD_0 |
677 | / and thing bigger than that will stop the lookahead and return 0; | 677 | / and thing bigger than that will stop the lookahead and return 0; |
678 | / leading white spaces are not recoverable. | 678 | / leading white spaces are not recoverable. |
679 | */ | 679 | */ |
680 | int c; | 680 | int c; |
681 | int len = 0; | 681 | int len = 0; |
682 | int curgetptr = 0; | 682 | int curgetptr = 0; |
683 | lexSkipWhite(); | 683 | lexSkipWhite(); |
684 | lexClearToken(); | 684 | lexClearToken(); |
685 | curgetptr = (int)lexBuf.getPtr;// remember! | 685 | curgetptr = (int)lexBuf.getPtr;// remember! |
686 | while (len < (MAX_LEX_LOOKAHEAD_0)) { | 686 | while (len < (MAX_LEX_LOOKAHEAD_0)) { |
687 | c = lexGetc(); | 687 | c = lexGetc(); |
688 | len++; | 688 | len++; |
689 | if (c == EOF || strchr("\t\n ;:=", c)) { | 689 | if (c == EOF || strchr("\t\n ;:=", c)) { |
690 | lexAppendc(0); | 690 | lexAppendc(0); |
691 | /* restore lookahead buf. */ | 691 | /* restore lookahead buf. */ |
692 | lexBuf.len += len; | 692 | lexBuf.len += len; |
693 | lexBuf.getPtr = curgetptr; | 693 | lexBuf.getPtr = curgetptr; |
694 | return lexStr(); | 694 | return lexStr(); |
695 | } | 695 | } |
696 | else | 696 | else |
697 | lexAppendc(c); | 697 | lexAppendc(c); |
698 | } | 698 | } |
699 | lexBuf.len += len;/* char that has been moved to lookahead buffer */ | 699 | lexBuf.len += len;/* char that has been moved to lookahead buffer */ |
700 | lexBuf.getPtr = curgetptr; | 700 | lexBuf.getPtr = curgetptr; |
701 | return 0; | 701 | return 0; |
702 | } | 702 | } |
703 | 703 | ||
704 | #ifdef _SUPPORT_LINE_FOLDING | 704 | #ifdef _SUPPORT_LINE_FOLDING |
705 | static void handleMoreRFC822LineBreak(int c) { | 705 | static void handleMoreRFC822LineBreak(int c) { |
706 | /* suport RFC 822 line break in cases like | 706 | /* suport RFC 822 line break in cases like |
707 | *ADR: foo; | 707 | *ADR: foo; |
708 | * morefoo; | 708 | * morefoo; |
709 | * more foo; | 709 | * more foo; |
710 | */ | 710 | */ |
711 | if (c == ';') { | 711 | if (c == ';') { |
712 | int a; | 712 | int a; |
713 | lexSkipLookahead(); | 713 | lexSkipLookahead(); |
714 | /* skip white spaces */ | 714 | /* skip white spaces */ |
715 | a = lexLookahead(); | 715 | a = lexLookahead(); |
716 | while (a == ' ' || a == '\t') { | 716 | while (a == ' ' || a == '\t') { |
717 | lexSkipLookahead(); | 717 | lexSkipLookahead(); |
718 | a = lexLookahead(); | 718 | a = lexLookahead(); |
719 | } | 719 | } |
720 | if (a == '\n') { | 720 | if (a == '\n') { |
721 | lexSkipLookahead(); | 721 | lexSkipLookahead(); |
722 | a = lexLookahead(); | 722 | a = lexLookahead(); |
723 | if (a == ' ' || a == '\t') { | 723 | if (a == ' ' || a == '\t') { |
724 | /* continuation, throw away all the \n and spaces read so | 724 | /* continuation, throw away all the \n and spaces read so |
725 | * far | 725 | * far |
726 | */ | 726 | */ |
727 | lexSkipWhite(); | 727 | lexSkipWhite(); |
728 | lexPushLookaheadc(';'); | 728 | lexPushLookaheadc(';'); |
729 | } | 729 | } |
730 | else { | 730 | else { |
731 | lexPushLookaheadc('\n'); | 731 | lexPushLookaheadc('\n'); |
732 | lexPushLookaheadc(';'); | 732 | lexPushLookaheadc(';'); |
733 | } | 733 | } |
734 | } | 734 | } |
735 | else { | 735 | else { |
736 | lexPushLookaheadc(';'); | 736 | lexPushLookaheadc(';'); |
737 | } | 737 | } |
738 | } | 738 | } |
739 | } | 739 | } |
740 | 740 | ||
741 | static char* lexGet1Value() { | 741 | static char* lexGet1Value() { |
742 | int c; | 742 | int c; |
743 | lexSkipWhite(); | 743 | lexSkipWhite(); |
744 | c = lexLookahead(); | 744 | c = lexLookahead(); |
745 | lexClearToken(); | 745 | lexClearToken(); |
746 | while (c != EOF && (c != ';' || !fieldedProp)) { | 746 | while (c != EOF && (c != ';' || !fieldedProp)) { |
747 | if (c == '\\' ) { | 747 | if (c == '\\' ) { |
748 | int a; | 748 | int a; |
749 | lexSkipLookahead(); | 749 | lexSkipLookahead(); |
750 | a = lexLookahead(); | 750 | a = lexLookahead(); |
751 | if ( a == ';' ) { | 751 | if ( a == ';' ) { |
752 | lexAppendc( ';' ); | 752 | lexAppendc( ';' ); |
753 | lexSkipLookahead(); | 753 | lexSkipLookahead(); |
754 | } else if ( a == '\n' ) { | 754 | } else if ( a == '\n' ) { |
755 | lexAppendc( '\n' ); | 755 | lexAppendc( '\n' ); |
756 | lexSkipLookahead(); | 756 | lexSkipLookahead(); |
757 | } else if ( a == '\\' ) { | 757 | } else if ( a == '\\' ) { |
758 | lexAppendc( '\\' ); | 758 | lexAppendc( '\\' ); |
759 | lexSkipLookahead(); | 759 | lexSkipLookahead(); |
760 | } else { | 760 | } else { |
761 | lexAppendc('\\'); | 761 | lexAppendc('\\'); |
762 | } | 762 | } |
763 | } else if (c == '\n') { | 763 | } else if (c == '\n') { |
764 | int a; | 764 | int a; |
765 | lexSkipLookahead(); | 765 | lexSkipLookahead(); |
766 | a = lexLookahead(); | 766 | a = lexLookahead(); |
767 | if (a == ' ' || a == '\t') { | 767 | if (a == ' ' || a == '\t') { |
768 | lexAppendc(' '); | 768 | lexAppendc(' '); |
769 | lexSkipLookahead(); | 769 | lexSkipLookahead(); |
770 | } | 770 | } |
771 | else { | 771 | else { |
772 | lexPushLookaheadc('\n'); | 772 | lexPushLookaheadc('\n'); |
773 | break; | 773 | break; |
774 | } | 774 | } |
775 | } | 775 | } |
776 | else { | 776 | else { |
777 | lexAppendc(c); | 777 | lexAppendc(c); |
778 | lexSkipLookahead(); | 778 | lexSkipLookahead(); |
779 | } | 779 | } |
780 | c = lexLookahead(); | 780 | c = lexLookahead(); |
781 | } | 781 | } |
782 | lexAppendc(0); | 782 | lexAppendc(0); |
783 | handleMoreRFC822LineBreak(c); | 783 | handleMoreRFC822LineBreak(c); |
784 | return c==EOF?0:lexStr(); | 784 | return c==EOF?0:lexStr(); |
785 | } | 785 | } |
786 | #endif | 786 | #endif |
787 | 787 | ||
788 | static int match_begin_name(int end) { | 788 | static int match_begin_name(int end) { |
789 | char *n = lexLookaheadWord(); | 789 | char *n = lexLookaheadWord(); |
790 | int token = ID; | 790 | int token = ID; |
791 | if (n) { | 791 | if (n) { |
792 | if (!qstricmp(n,"vcard")) token = end?END_VCARD:BEGIN_VCARD; | 792 | if (!qstricmp(n,"vcard")) token = end?END_VCARD:BEGIN_VCARD; |
793 | else if (!qstricmp(n,"vcalendar")) token = end?END_VCAL:BEGIN_VCAL; | 793 | else if (!qstricmp(n,"vcalendar")) token = end?END_VCAL:BEGIN_VCAL; |
794 | else if (!qstricmp(n,"vevent")) token = end?END_VEVENT:BEGIN_VEVENT; | 794 | else if (!qstricmp(n,"vevent")) token = end?END_VEVENT:BEGIN_VEVENT; |
795 | else if (!qstricmp(n,"vtodo")) token = end?END_VTODO:BEGIN_VTODO; | 795 | else if (!qstricmp(n,"vtodo")) token = end?END_VTODO:BEGIN_VTODO; |
796 | deleteStr(n); | 796 | deleteStr(n); |
797 | return token; | 797 | return token; |
798 | } | 798 | } |
799 | return 0; | 799 | return 0; |
800 | } | 800 | } |
801 | 801 | ||
802 | 802 | ||
803 | #ifdef INCLUDEMFC | 803 | #ifdef INCLUDEMFC |
804 | void initLex(const char *inputstring, unsigned long inputlen, CFile *inputfile) | 804 | void initLex(const char *inputstring, unsigned long inputlen, CFile *inputfile) |
805 | #else | 805 | #else |
806 | void initLex(const char *inputstring, unsigned long inputlen, FILE *inputfile) | 806 | void initLex(const char *inputstring, unsigned long inputlen, FILE *inputfile) |
807 | #endif | 807 | #endif |
808 | { | 808 | { |
809 | // initialize lex mode stack | 809 | // initialize lex mode stack |
810 | lexBuf.lexModeStack[lexBuf.lexModeStackTop=0] = L_NORMAL; | 810 | lexBuf.lexModeStack[lexBuf.lexModeStackTop=0] = L_NORMAL; |
811 | 811 | ||
812 | // iniatialize lex buffer. | 812 | // iniatialize lex buffer. |
813 | lexBuf.inputString = (char*) inputstring; | 813 | lexBuf.inputString = (char*) inputstring; |
814 | lexBuf.inputLen = inputlen; | 814 | lexBuf.inputLen = inputlen; |
815 | lexBuf.curPos = 0; | 815 | lexBuf.curPos = 0; |
816 | lexBuf.inputFile = inputfile; | 816 | lexBuf.inputFile = inputfile; |
817 | 817 | ||
818 | lexBuf.len = 0; | 818 | lexBuf.len = 0; |
819 | lexBuf.getPtr = 0; | 819 | lexBuf.getPtr = 0; |
820 | 820 | ||
821 | lexBuf.maxToken = MAXTOKEN; | 821 | lexBuf.maxToken = MAXTOKEN; |
822 | lexBuf.strs = (char*)malloc(MAXTOKEN); | 822 | lexBuf.strs = (char*)malloc(MAXTOKEN); |
823 | lexBuf.strsLen = 0; | 823 | lexBuf.strsLen = 0; |
824 | 824 | ||
825 | } | 825 | } |
826 | 826 | ||
827 | static void finiLex() { | 827 | static void finiLex() { |
828 | free(lexBuf.strs); | 828 | free(lexBuf.strs); |
829 | } | 829 | } |
830 | 830 | ||
831 | 831 | ||
832 | /*-----------------------------------*/ | 832 | /*-----------------------------------*/ |
833 | /* This parses and converts the base64 format for binary encoding into | 833 | /* This parses and converts the base64 format for binary encoding into |
834 | * a decoded buffer (allocated with new). See RFC 1521. | 834 | * a decoded buffer (allocated with new). See RFC 1521. |
835 | */ | 835 | */ |
836 | static char * lexGetDataFromBase64() | 836 | static char * lexGetDataFromBase64() |
837 | { | 837 | { |
838 | unsigned long bytesLen = 0, bytesMax = 0; | 838 | unsigned long bytesLen = 0, bytesMax = 0; |
839 | int quadIx = 0, pad = 0; | 839 | int quadIx = 0, pad = 0; |
840 | unsigned long trip = 0; | 840 | unsigned long trip = 0; |
841 | unsigned char b; | 841 | unsigned char b; |
842 | int c; | 842 | int c; |
843 | unsigned char *bytes = NULL; | 843 | unsigned char *bytes = NULL; |
844 | unsigned char *oldBytes = NULL; | 844 | unsigned char *oldBytes = NULL; |
845 | 845 | ||
846 | DBG_(("db: lexGetDataFromBase64\n")); | 846 | DBG_(("db: lexGetDataFromBase64\n")); |
847 | while (1) { | 847 | while (1) { |
848 | c = lexGetc(); | 848 | c = lexGetc(); |
849 | if (c == '\n') { | 849 | if (c == '\n') { |
850 | ++mime_lineNum; | 850 | ++mime_lineNum; |
851 | if (lexLookahead() == '\n') { | 851 | if (lexLookahead() == '\n') { |
852 | /* a '\n' character by itself means end of data */ | 852 | /* a '\n' character by itself means end of data */ |
853 | break; | 853 | break; |
854 | } | 854 | } |
855 | else continue; /* ignore '\n' */ | 855 | else continue; /* ignore '\n' */ |
856 | } | 856 | } |
857 | else { | 857 | else { |
858 | if ((c >= 'A') && (c <= 'Z')) | 858 | if ((c >= 'A') && (c <= 'Z')) |
859 | b = (unsigned char)(c - 'A'); | 859 | b = (unsigned char)(c - 'A'); |
860 | else if ((c >= 'a') && (c <= 'z')) | 860 | else if ((c >= 'a') && (c <= 'z')) |
861 | b = (unsigned char)(c - 'a') + 26; | 861 | b = (unsigned char)(c - 'a') + 26; |
862 | else if ((c >= '0') && (c <= '9')) | 862 | else if ((c >= '0') && (c <= '9')) |
863 | b = (unsigned char)(c - '0') + 52; | 863 | b = (unsigned char)(c - '0') + 52; |
864 | else if (c == '+') | 864 | else if (c == '+') |
865 | b = 62; | 865 | b = 62; |
866 | else if (c == '/') | 866 | else if (c == '/') |
867 | b = 63; | 867 | b = 63; |
868 | else if (c == '=') { | 868 | else if (c == '=') { |
869 | b = 0; | 869 | b = 0; |
870 | pad++; | 870 | pad++; |
871 | } else if ((c == ' ') || (c == '\t')) { | 871 | } else if ((c == ' ') || (c == '\t')) { |
872 | continue; | 872 | continue; |
873 | } else { /* error condition */ | 873 | } else { /* error condition */ |
874 | if (bytes) free(bytes); | 874 | if (bytes) free(bytes); |
875 | else if (oldBytes) free(oldBytes); | 875 | else if (oldBytes) free(oldBytes); |
876 | // error recovery: skip until 2 adjacent newlines. | 876 | // error recovery: skip until 2 adjacent newlines. |
877 | DBG_(("db: invalid character 0x%x '%c'\n", c,c)); | 877 | DBG_(("db: invalid character 0x%x '%c'\n", c,c)); |
878 | if (c != EOF) { | 878 | if (c != EOF) { |
879 | c = lexGetc(); | 879 | c = lexGetc(); |
880 | while (c != EOF) { | 880 | while (c != EOF) { |
881 | if (c == '\n' && lexLookahead() == '\n') { | 881 | if (c == '\n' && lexLookahead() == '\n') { |
882 | ++mime_lineNum; | 882 | ++mime_lineNum; |
883 | break; | 883 | break; |
884 | } | 884 | } |
885 | c = lexGetc(); | 885 | c = lexGetc(); |
886 | } | 886 | } |
887 | } | 887 | } |
888 | return NULL; | 888 | return NULL; |
889 | } | 889 | } |
890 | trip = (trip << 6) | b; | 890 | trip = (trip << 6) | b; |
891 | if (++quadIx == 4) { | 891 | if (++quadIx == 4) { |
892 | unsigned char outBytes[3]; | 892 | unsigned char outBytes[3]; |
893 | int numOut; | 893 | int numOut; |
894 | int i; | 894 | int i; |
895 | for (i = 0; i < 3; i++) { | 895 | for (i = 0; i < 3; i++) { |
896 | outBytes[2-i] = (unsigned char)(trip & 0xFF); | 896 | outBytes[2-i] = (unsigned char)(trip & 0xFF); |
897 | trip >>= 8; | 897 | trip >>= 8; |
898 | } | 898 | } |
899 | numOut = 3 - pad; | 899 | numOut = 3 - pad; |
900 | if (bytesLen + numOut > bytesMax) { | 900 | if (bytesLen + numOut > bytesMax) { |
901 | if (!bytes) { | 901 | if (!bytes) { |
902 | bytesMax = 1024; | 902 | bytesMax = 1024; |
903 | bytes = (unsigned char*)malloc((size_t)bytesMax); | 903 | bytes = (unsigned char*)malloc((size_t)bytesMax); |
904 | } | 904 | } |
905 | else { | 905 | else { |
906 | bytesMax <<= 2; | 906 | bytesMax <<= 2; |
907 | oldBytes = bytes; | 907 | oldBytes = bytes; |
908 | bytes = (unsigned char*)realloc(bytes,(size_t)bytesMax); | 908 | bytes = (unsigned char*)realloc(bytes,(size_t)bytesMax); |
909 | } | 909 | } |
910 | if (bytes == 0) { | 910 | if (bytes == 0) { |
911 | mime_error("out of memory while processing BASE64 data\n"); | 911 | mime_error("out of memory while processing BASE64 data\n"); |
912 | } | 912 | } |
913 | } | 913 | } |
914 | if (bytes) { | 914 | if (bytes) { |
915 | memcpy(bytes + bytesLen, outBytes, numOut); | 915 | memcpy(bytes + bytesLen, outBytes, numOut); |
916 | bytesLen += numOut; | 916 | bytesLen += numOut; |
917 | } | 917 | } |
918 | trip = 0; | 918 | trip = 0; |
919 | quadIx = 0; | 919 | quadIx = 0; |
920 | } | 920 | } |
921 | } | 921 | } |
922 | } /* while */ | 922 | } /* while */ |
923 | DBG_(("db: bytesLen = %d\n", bytesLen)); | 923 | DBG_(("db: bytesLen = %d\n", bytesLen)); |
924 | /* kludge: all this won't be necessary if we have tree form | 924 | /* kludge: all this won't be necessary if we have tree form |
925 | representation */ | 925 | representation */ |
926 | if (bytes) { | 926 | if (bytes) { |
927 | setValueWithSize(curProp,bytes,(unsigned int)bytesLen); | 927 | setValueWithSize(curProp,bytes,(unsigned int)bytesLen); |
928 | free(bytes); | 928 | free(bytes); |
929 | } | 929 | } |
930 | else if (oldBytes) { | 930 | else if (oldBytes) { |
931 | setValueWithSize(curProp,oldBytes,(unsigned int)bytesLen); | 931 | setValueWithSize(curProp,oldBytes,(unsigned int)bytesLen); |
932 | free(oldBytes); | 932 | free(oldBytes); |
933 | } | 933 | } |
934 | return 0; | 934 | return 0; |
935 | } | 935 | } |
936 | 936 | ||
937 | static int match_begin_end_name(int end) { | 937 | static int match_begin_end_name(int end) { |
938 | int token; | 938 | int token; |
939 | lexSkipWhite(); | 939 | lexSkipWhite(); |
940 | if (lexLookahead() != ':') return ID; | 940 | if (lexLookahead() != ':') return ID; |
941 | lexSkipLookahead(); | 941 | lexSkipLookahead(); |
942 | lexSkipWhite(); | 942 | lexSkipWhite(); |
943 | token = match_begin_name(end); | 943 | token = match_begin_name(end); |
944 | if (token == ID) { | 944 | if (token == ID) { |
945 | lexPushLookaheadc(':'); | 945 | lexPushLookaheadc(':'); |
946 | DBG_(("db: ID '%s'\n", yylval.str)); | 946 | DBG_(("db: ID '%s'\n", yylval.str)); |
947 | return ID; | 947 | return ID; |
948 | } | 948 | } |
949 | else if (token != 0) { | 949 | else if (token != 0) { |
950 | lexSkipLookaheadWord(); | 950 | lexSkipLookaheadWord(); |
951 | deleteStr(yylval.str); | 951 | deleteStr(yylval.str); |
952 | DBG_(("db: begin/end %d\n", token)); | 952 | DBG_(("db: begin/end %d\n", token)); |
953 | return token; | 953 | return token; |
954 | } | 954 | } |
955 | return 0; | 955 | return 0; |
956 | } | 956 | } |
957 | 957 | ||
958 | static char* lexGetQuotedPrintable() | 958 | static char* lexGetQuotedPrintable() |
959 | { | 959 | { |
960 | int c; | 960 | int c; |
961 | lexSkipWhite(); | 961 | lexSkipWhite(); |
962 | c = lexLookahead(); | 962 | c = lexLookahead(); |
963 | lexClearToken(); | 963 | lexClearToken(); |
964 | 964 | ||
965 | while (c != EOF && c != ';') { | 965 | while (c != EOF && c != ';') { |
966 | if (c == '\n') { | 966 | if (c == '\n') { |
967 | // break, leave '\n' on remaining chars. | 967 | // break, leave '\n' on remaining chars. |
968 | break; | 968 | break; |
969 | } else if (c == '=') { | 969 | } else if (c == '=') { |
970 | int cur = 0; | 970 | int cur = 0; |
971 | int next; | 971 | int next; |
972 | 972 | ||
973 | lexSkipLookahead(); // skip '=' | 973 | lexSkipLookahead(); // skip '=' |
974 | next = lexLookahead(); | 974 | next = lexLookahead(); |
975 | 975 | ||
976 | if (next == '\n') { | 976 | if (next == '\n') { |
977 | // skip and only skip the \n | 977 | // skip and only skip the \n |
978 | lexSkipLookahead(); | 978 | lexSkipLookahead(); |
979 | c = lexLookahead(); | 979 | c = lexLookahead(); |
980 | ++mime_lineNum; // aid in error reporting | 980 | ++mime_lineNum; // aid in error reporting |
981 | continue; | 981 | continue; |
982 | } else if (next >= '0' && next <= '9') { | 982 | } else if (next >= '0' && next <= '9') { |
983 | cur = next - '0'; | 983 | cur = next - '0'; |
984 | } else if (next >= 'A' && next <= 'F') { | 984 | } else if (next >= 'A' && next <= 'F') { |
985 | cur = next - 'A' + 10; | 985 | cur = next - 'A' + 10; |
986 | } else { | 986 | } else { |
987 | // we have been sent buggy stuff. doesn't matter | 987 | // we have been sent buggy stuff. doesn't matter |
988 | // what we do so long as we keep going. | 988 | // what we do so long as we keep going. |
989 | // should probably spit an error here | 989 | // should probably spit an error here |
990 | lexSkipLookahead(); | 990 | lexSkipLookahead(); |
991 | c = lexLookahead(); | 991 | c = lexLookahead(); |
992 | continue; | 992 | continue; |
993 | } | 993 | } |
994 | 994 | ||
995 | lexSkipLookahead(); // skip A-Z0-9 | 995 | lexSkipLookahead(); // skip A-Z0-9 |
996 | next = lexLookahead(); | 996 | next = lexLookahead(); |
997 | 997 | ||
998 | cur = cur * 16; | 998 | cur = cur * 16; |
999 | // this time really just expecting 0-9A-F | 999 | // this time really just expecting 0-9A-F |
1000 | if (next >= '0' && next <= '9') { | 1000 | if (next >= '0' && next <= '9') { |
1001 | cur += next - '0'; | 1001 | cur += next - '0'; |
1002 | } else if (next >= 'A' && next <= 'F') { | 1002 | } else if (next >= 'A' && next <= 'F') { |
1003 | cur += next - 'A' + 10; | 1003 | cur += next - 'A' + 10; |
1004 | } else { | 1004 | } else { |
1005 | // we have been sent buggy stuff. doesn't matter | 1005 | // we have been sent buggy stuff. doesn't matter |
1006 | // what we do so long as we keep going. | 1006 | // what we do so long as we keep going. |
1007 | // should probably spit an error here | 1007 | // should probably spit an error here |
1008 | lexSkipLookahead(); | 1008 | lexSkipLookahead(); |
1009 | c = lexLookahead(); | 1009 | c = lexLookahead(); |
1010 | continue; | 1010 | continue; |
1011 | } | 1011 | } |
1012 | 1012 | ||
1013 | // got a valid escaped =. append it. | 1013 | // got a valid escaped =. append it. |
1014 | lexSkipLookahead(); // skip second 0-9A-F | 1014 | lexSkipLookahead(); // skip second 0-9A-F |
1015 | lexAppendc(cur); | 1015 | lexAppendc(cur); |
1016 | } else { | 1016 | } else { |
1017 | lexSkipLookahead(); // skip whatever we just read. | 1017 | lexSkipLookahead(); // skip whatever we just read. |
1018 | lexAppendc(c); // and append it. | 1018 | lexAppendc(c); // and append it. |
1019 | } | 1019 | } |
1020 | c = lexLookahead(); | 1020 | c = lexLookahead(); |
1021 | } | 1021 | } |
1022 | lexAppendc(0); | 1022 | lexAppendc(0); |
1023 | return c==EOF?0:lexStr(); | 1023 | return c==EOF?0:lexStr(); |
1024 | } | 1024 | } |
1025 | 1025 | ||
1026 | static int yylex() { | 1026 | static int yylex() { |
1027 | 1027 | ||
1028 | int lexmode = LEXMODE(); | 1028 | int lexmode = LEXMODE(); |
1029 | if (lexmode == L_VALUES) { | 1029 | if (lexmode == L_VALUES) { |
1030 | int c = lexGetc(); | 1030 | int c = lexGetc(); |
1031 | if (c == ';' && fieldedProp) { | 1031 | if (c == ';' && fieldedProp) { |
1032 | DBG_(("db: SEMICOLON\n")); | 1032 | DBG_(("db: SEMICOLON\n")); |
1033 | lexPushLookaheadc(c); | 1033 | lexPushLookaheadc(c); |
1034 | handleMoreRFC822LineBreak(c); | 1034 | handleMoreRFC822LineBreak(c); |
1035 | lexSkipLookahead(); | 1035 | lexSkipLookahead(); |
1036 | return SEMICOLON; | 1036 | return SEMICOLON; |
1037 | } | 1037 | } |
1038 | else if (strchr("\n",c)) { | 1038 | else if (strchr("\n",c)) { |
1039 | ++mime_lineNum; | 1039 | ++mime_lineNum; |
1040 | /* consume all line separator(s) adjacent to each other */ | 1040 | /* consume all line separator(s) adjacent to each other */ |
1041 | c = lexLookahead(); | 1041 | c = lexLookahead(); |
1042 | while (strchr("\n",c)) { | 1042 | while (strchr("\n",c)) { |
1043 | lexSkipLookahead(); | 1043 | lexSkipLookahead(); |
1044 | c = lexLookahead(); | 1044 | c = lexLookahead(); |
1045 | ++mime_lineNum; | 1045 | ++mime_lineNum; |
1046 | } | 1046 | } |
1047 | DBG_(("db: LINESEP\n")); | 1047 | DBG_(("db: LINESEP\n")); |
1048 | return LINESEP; | 1048 | return LINESEP; |
1049 | } | 1049 | } |
1050 | else { | 1050 | else { |
1051 | char *p = 0; | 1051 | char *p = 0; |
1052 | lexPushLookaheadc(c); | 1052 | lexPushLookaheadc(c); |
1053 | if (lexWithinMode(L_BASE64)) { | 1053 | if (lexWithinMode(L_BASE64)) { |
1054 | /* get each char and convert to bin on the fly... */ | 1054 | /* get each char and convert to bin on the fly... */ |
1055 | p = lexGetDataFromBase64(); | 1055 | p = lexGetDataFromBase64(); |
1056 | #if 0 | ||
1056 | yylval.str = p; | 1057 | yylval.str = p; |
1057 | return STRING; | 1058 | return STRING; |
1059 | #endif | ||
1058 | } | 1060 | } |
1059 | else if (lexWithinMode(L_QUOTED_PRINTABLE)) { | 1061 | else if (lexWithinMode(L_QUOTED_PRINTABLE)) { |
1060 | p = lexGetQuotedPrintable(); | 1062 | p = lexGetQuotedPrintable(); |
1061 | } | 1063 | } |
1062 | else { | 1064 | else { |
1063 | #ifdef _SUPPORT_LINE_FOLDING | 1065 | #ifdef _SUPPORT_LINE_FOLDING |
1064 | p = lexGet1Value(); | 1066 | p = lexGet1Value(); |
1065 | #else | 1067 | #else |
1066 | p = lexGetStrUntil(";\n"); | 1068 | p = lexGetStrUntil(";\n"); |
1067 | #endif | 1069 | #endif |
1068 | } | 1070 | } |
1069 | if (p) { | 1071 | if (p) { |
1070 | DBG_(("db: STRING: '%s'\n", p)); | 1072 | DBG_(("db: STRING: '%s'\n", p)); |
1071 | yylval.str = p; | 1073 | yylval.str = p; |
1072 | return STRING; | 1074 | return STRING; |
1073 | } | 1075 | } |
1074 | else return 0; | 1076 | else return 0; |
1075 | } | 1077 | } |
1076 | } | 1078 | } |
1077 | else { | 1079 | else { |
1078 | /* normal mode */ | 1080 | /* normal mode */ |
1079 | while (1) { | 1081 | while (1) { |
1080 | int c = lexGetc(); | 1082 | int c = lexGetc(); |
1081 | switch(c) { | 1083 | switch(c) { |
1082 | case ':': { | 1084 | case ':': { |
1083 | /* consume all line separator(s) adjacent to each other */ | 1085 | /* consume all line separator(s) adjacent to each other */ |
1084 | /* ignoring linesep immediately after colon. */ | 1086 | /* ignoring linesep immediately after colon. */ |
1085 | /* I don't see this in the spec, and it breaks null values -- WA | 1087 | /* I don't see this in the spec, and it breaks null values -- WA |
1086 | c = lexLookahead(); | 1088 | c = lexLookahead(); |
1087 | while (strchr("\n",c)) { | 1089 | while (strchr("\n",c)) { |
1088 | lexSkipLookahead(); | 1090 | lexSkipLookahead(); |
1089 | c = lexLookahead(); | 1091 | c = lexLookahead(); |
1090 | ++mime_lineNum; | 1092 | ++mime_lineNum; |
1091 | } | 1093 | } |
1092 | */ | 1094 | */ |
1093 | DBG_(("db: COLON\n")); | 1095 | DBG_(("db: COLON\n")); |
1094 | return COLON; | 1096 | return COLON; |
1095 | } | 1097 | } |
1096 | case ';': | 1098 | case ';': |
1097 | DBG_(("db: SEMICOLON\n")); | 1099 | DBG_(("db: SEMICOLON\n")); |
1098 | return SEMICOLON; | 1100 | return SEMICOLON; |
1099 | case '=': | 1101 | case '=': |
1100 | DBG_(("db: EQ\n")); | 1102 | DBG_(("db: EQ\n")); |
1101 | return EQ; | 1103 | return EQ; |
1102 | /* ignore whitespace in this mode */ | 1104 | /* ignore whitespace in this mode */ |
1103 | case '\t': | 1105 | case '\t': |
1104 | case ' ': continue; | 1106 | case ' ': continue; |
1105 | case '\n': { | 1107 | case '\n': { |
1106 | ++mime_lineNum; | 1108 | ++mime_lineNum; |
1107 | continue; | 1109 | continue; |
1108 | } | 1110 | } |
1109 | case EOF: return 0; | 1111 | case EOF: return 0; |
1110 | break; | 1112 | break; |
1111 | default: { | 1113 | default: { |
1112 | lexPushLookaheadc(c); | 1114 | lexPushLookaheadc(c); |
1113 | if (isalnum(c)) { | 1115 | if (isalnum(c)) { |
1114 | char *t = lexGetWord(); | 1116 | char *t = lexGetWord(); |
1115 | yylval.str = t; | 1117 | yylval.str = t; |
1116 | if (!qstricmp(t, "begin")) { | 1118 | if (!qstricmp(t, "begin")) { |
1117 | return match_begin_end_name(0); | 1119 | return match_begin_end_name(0); |
1118 | } | 1120 | } |
1119 | else if (!qstricmp(t,"end")) { | 1121 | else if (!qstricmp(t,"end")) { |
1120 | return match_begin_end_name(1); | 1122 | return match_begin_end_name(1); |
1121 | } | 1123 | } |
1122 | else { | 1124 | else { |
1123 | DBG_(("db: ID '%s'\n", t)); | 1125 | DBG_(("db: ID '%s'\n", t)); |
1124 | return ID; | 1126 | return ID; |
1125 | } | 1127 | } |
1126 | } | 1128 | } |
1127 | else { | 1129 | else { |
1128 | /* unknow token */ | 1130 | /* unknow token */ |
1129 | return 0; | 1131 | return 0; |
1130 | } | 1132 | } |
1131 | break; | 1133 | break; |
1132 | } | 1134 | } |
1133 | } | 1135 | } |
1134 | } | 1136 | } |
1135 | } | 1137 | } |
1136 | return 0; | 1138 | return 0; |
1137 | } | 1139 | } |
1138 | 1140 | ||
1139 | 1141 | ||
1140 | /***************************************************************************/ | 1142 | /***************************************************************************/ |
1141 | /*** Public Functions ****/ | 1143 | /*** Public Functions ****/ |
1142 | /***************************************************************************/ | 1144 | /***************************************************************************/ |
1143 | 1145 | ||
1144 | static VObject* Parse_MIMEHelper() | 1146 | static VObject* Parse_MIMEHelper() |
1145 | { | 1147 | { |
1146 | ObjStackTop = -1; | 1148 | ObjStackTop = -1; |
1147 | mime_numErrors = 0; | 1149 | mime_numErrors = 0; |
1148 | mime_lineNum = 1; | 1150 | mime_lineNum = 1; |
1149 | vObjList = 0; | 1151 | vObjList = 0; |
1150 | curObj = 0; | 1152 | curObj = 0; |
1151 | 1153 | ||
1152 | if (yyparse() != 0) | 1154 | if (yyparse() != 0) |
1153 | return 0; | 1155 | return 0; |
1154 | 1156 | ||
1155 | finiLex(); | 1157 | finiLex(); |
1156 | return vObjList; | 1158 | return vObjList; |
1157 | } | 1159 | } |
1158 | 1160 | ||
1159 | /*--------------------------------------------*/ | 1161 | /*--------------------------------------------*/ |
1160 | DLLEXPORT(VObject*) Parse_MIME(const char *input, unsigned long len) | 1162 | DLLEXPORT(VObject*) Parse_MIME(const char *input, unsigned long len) |
1161 | { | 1163 | { |
1162 | initLex(input, len, 0); | 1164 | initLex(input, len, 0); |
1163 | return Parse_MIMEHelper(); | 1165 | return Parse_MIMEHelper(); |
1164 | } | 1166 | } |
1165 | 1167 | ||
1166 | 1168 | ||
1167 | #if INCLUDEMFC | 1169 | #if INCLUDEMFC |
1168 | 1170 | ||
1169 | DLLEXPORT(VObject*) Parse_MIME_FromFile(CFile *file) | 1171 | DLLEXPORT(VObject*) Parse_MIME_FromFile(CFile *file) |
1170 | { | 1172 | { |
1171 | unsigned long startPos; | 1173 | unsigned long startPos; |
1172 | VObject *result; | 1174 | VObject *result; |
1173 | 1175 | ||
1174 | initLex(0,-1,file); | 1176 | initLex(0,-1,file); |
1175 | startPos = file->GetPosition(); | 1177 | startPos = file->GetPosition(); |
1176 | if (!(result = Parse_MIMEHelper())) | 1178 | if (!(result = Parse_MIMEHelper())) |
1177 | file->Seek(startPos, CFile::begin); | 1179 | file->Seek(startPos, CFile::begin); |
1178 | return result; | 1180 | return result; |
1179 | } | 1181 | } |
1180 | 1182 | ||
1181 | #else | 1183 | #else |
1182 | 1184 | ||
1183 | VObject* Parse_MIME_FromFile(FILE *file) | 1185 | VObject* Parse_MIME_FromFile(FILE *file) |
1184 | { | 1186 | { |
1185 | VObject *result; | 1187 | VObject *result; |
1186 | long startPos; | 1188 | long startPos; |
1187 | 1189 | ||
1188 | initLex(0,(unsigned long)-1,file); | 1190 | initLex(0,(unsigned long)-1,file); |
1189 | startPos = ftell(file); | 1191 | startPos = ftell(file); |
1190 | if (!(result = Parse_MIMEHelper())) { | 1192 | if (!(result = Parse_MIMEHelper())) { |
1191 | fseek(file,startPos,SEEK_SET); | 1193 | fseek(file,startPos,SEEK_SET); |
1192 | } | 1194 | } |
1193 | return result; | 1195 | return result; |
1194 | } | 1196 | } |
1195 | 1197 | ||
1196 | DLLEXPORT(VObject*) Parse_MIME_FromFileName(char *fname) | 1198 | DLLEXPORT(VObject*) Parse_MIME_FromFileName(char *fname) |
1197 | { | 1199 | { |
1198 | FILE *fp = fopen(fname,"r"); | 1200 | FILE *fp = fopen(fname,"r"); |
1199 | if (fp) { | 1201 | if (fp) { |
1200 | VObject* o = Parse_MIME_FromFile(fp); | 1202 | VObject* o = Parse_MIME_FromFile(fp); |
1201 | fclose(fp); | 1203 | fclose(fp); |
1202 | return o; | 1204 | return o; |
1203 | } | 1205 | } |
1204 | else { | 1206 | else { |
1205 | char msg[80]; | 1207 | char msg[80]; |
1206 | sprintf(msg, "can't open file '%s' for reading\n", fname); | 1208 | sprintf(msg, "can't open file '%s' for reading\n", fname); |
1207 | mime_error_(msg); | 1209 | mime_error_(msg); |
1208 | return 0; | 1210 | return 0; |
1209 | } | 1211 | } |
1210 | } | 1212 | } |
1211 | 1213 | ||
1212 | #endif | 1214 | #endif |
1213 | 1215 | ||
1214 | /*-------------------------------------*/ | 1216 | /*-------------------------------------*/ |
1215 | 1217 | ||
1216 | static MimeErrorHandler mimeErrorHandler; | 1218 | static MimeErrorHandler mimeErrorHandler; |
1217 | 1219 | ||
1218 | DLLEXPORT(void) registerMimeErrorHandler(MimeErrorHandler me) | 1220 | DLLEXPORT(void) registerMimeErrorHandler(MimeErrorHandler me) |
1219 | { | 1221 | { |
1220 | mimeErrorHandler = me; | 1222 | mimeErrorHandler = me; |
1221 | } | 1223 | } |
1222 | 1224 | ||
1223 | void mime_error(char *s) | 1225 | void mime_error(char *s) |
1224 | { | 1226 | { |
1225 | char msg[256]; | 1227 | char msg[256]; |
1226 | if (mimeErrorHandler) { | 1228 | if (mimeErrorHandler) { |
1227 | sprintf(msg,"%s at line %d", s, mime_lineNum); | 1229 | sprintf(msg,"%s at line %d", s, mime_lineNum); |
1228 | mimeErrorHandler(msg); | 1230 | mimeErrorHandler(msg); |
1229 | } | 1231 | } |
1230 | } | 1232 | } |
1231 | 1233 | ||
1232 | void mime_error_(char *s) | 1234 | void mime_error_(char *s) |
1233 | { | 1235 | { |
1234 | if (mimeErrorHandler) { | 1236 | if (mimeErrorHandler) { |
1235 | mimeErrorHandler(s); | 1237 | mimeErrorHandler(s); |
1236 | } | 1238 | } |
1237 | } | 1239 | } |
1238 | 1240 | ||
1239 | #line 1240 "y.tab.c" | 1241 | #line 1240 "y.tab.c" |
1240 | #define YYABORT goto yyabort | 1242 | #define YYABORT goto yyabort |
1241 | #define YYREJECT goto yyabort | 1243 | #define YYREJECT goto yyabort |
1242 | #define YYACCEPT goto yyaccept | 1244 | #define YYACCEPT goto yyaccept |
1243 | #define YYERROR goto yyerrlab | 1245 | #define YYERROR goto yyerrlab |
1244 | int | 1246 | int |
1245 | #if defined(__STDC__) | 1247 | #if defined(__STDC__) |
1246 | yyparse(void) | 1248 | yyparse(void) |
1247 | #else | 1249 | #else |
1248 | yyparse() | 1250 | yyparse() |
1249 | #endif | 1251 | #endif |
1250 | { | 1252 | { |
1251 | register int yym, yyn, yystate; | 1253 | register int yym, yyn, yystate; |
1252 | #if YYDEBUG | 1254 | #if YYDEBUG |
1253 | register char *yys; | 1255 | register char *yys; |
1254 | extern char *getenv(); | 1256 | extern char *getenv(); |
1255 | 1257 | ||
1256 | if (yys = getenv("YYDEBUG")) | 1258 | if (yys = getenv("YYDEBUG")) |
1257 | { | 1259 | { |
1258 | yyn = *yys; | 1260 | yyn = *yys; |
1259 | if (yyn >= '0' && yyn <= '9') | 1261 | if (yyn >= '0' && yyn <= '9') |
1260 | yydebug = yyn - '0'; | 1262 | yydebug = yyn - '0'; |
1261 | } | 1263 | } |
1262 | #endif | 1264 | #endif |
1263 | 1265 | ||
1264 | yynerrs = 0; | 1266 | yynerrs = 0; |
1265 | yyerrflag = 0; | 1267 | yyerrflag = 0; |
1266 | yychar = (-1); | 1268 | yychar = (-1); |
1267 | 1269 | ||
1268 | yyssp = yyss; | 1270 | yyssp = yyss; |
1269 | yyvsp = yyvs; | 1271 | yyvsp = yyvs; |
1270 | *yyssp = yystate = 0; | 1272 | *yyssp = yystate = 0; |
1271 | 1273 | ||
1272 | yyloop: | 1274 | yyloop: |
1273 | if ((yyn = yydefred[yystate]) != 0) goto yyreduce; | 1275 | if ((yyn = yydefred[yystate]) != 0) goto yyreduce; |
1274 | if (yychar < 0) | 1276 | if (yychar < 0) |
1275 | { | 1277 | { |
1276 | if ((yychar = yylex()) < 0) yychar = 0; | 1278 | if ((yychar = yylex()) < 0) yychar = 0; |
1277 | #if YYDEBUG | 1279 | #if YYDEBUG |
1278 | if (yydebug) | 1280 | if (yydebug) |
1279 | { | 1281 | { |
1280 | yys = 0; | 1282 | yys = 0; |
1281 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; | 1283 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
1282 | if (!yys) yys = "illegal-symbol"; | 1284 | if (!yys) yys = "illegal-symbol"; |
1283 | printf("%sdebug: state %d, reading %d (%s)\n", | 1285 | printf("%sdebug: state %d, reading %d (%s)\n", |
1284 | YYPREFIX, yystate, yychar, yys); | 1286 | YYPREFIX, yystate, yychar, yys); |
1285 | } | 1287 | } |
1286 | #endif | 1288 | #endif |
1287 | } | 1289 | } |
1288 | if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && | 1290 | if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && |
1289 | yyn <= YYTABLESIZE && yycheck[yyn] == yychar) | 1291 | yyn <= YYTABLESIZE && yycheck[yyn] == yychar) |
1290 | { | 1292 | { |
1291 | #if YYDEBUG | 1293 | #if YYDEBUG |
1292 | if (yydebug) | 1294 | if (yydebug) |
1293 | printf("%sdebug: state %d, shifting to state %d\n", | 1295 | printf("%sdebug: state %d, shifting to state %d\n", |
1294 | YYPREFIX, yystate, yytable[yyn]); | 1296 | YYPREFIX, yystate, yytable[yyn]); |
1295 | #endif | 1297 | #endif |
1296 | if (yyssp >= yyss + yystacksize - 1) | 1298 | if (yyssp >= yyss + yystacksize - 1) |
1297 | { | 1299 | { |
1298 | goto yyoverflow; | 1300 | goto yyoverflow; |
1299 | } | 1301 | } |
1300 | *++yyssp = yystate = yytable[yyn]; | 1302 | *++yyssp = yystate = yytable[yyn]; |
1301 | *++yyvsp = yylval; | 1303 | *++yyvsp = yylval; |
1302 | yychar = (-1); | 1304 | yychar = (-1); |
1303 | if (yyerrflag > 0) --yyerrflag; | 1305 | if (yyerrflag > 0) --yyerrflag; |
1304 | goto yyloop; | 1306 | goto yyloop; |
1305 | } | 1307 | } |
1306 | if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && | 1308 | if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && |
1307 | yyn <= YYTABLESIZE && yycheck[yyn] == yychar) | 1309 | yyn <= YYTABLESIZE && yycheck[yyn] == yychar) |
1308 | { | 1310 | { |
1309 | yyn = yytable[yyn]; | 1311 | yyn = yytable[yyn]; |
1310 | goto yyreduce; | 1312 | goto yyreduce; |
1311 | } | 1313 | } |
1312 | if (yyerrflag) goto yyinrecovery; | 1314 | if (yyerrflag) goto yyinrecovery; |
1313 | yyerror("syntax error"); | 1315 | yyerror("syntax error"); |
1314 | #ifdef lint | 1316 | #ifdef lint |
1315 | goto yyerrlab; | 1317 | goto yyerrlab; |
1316 | #endif | 1318 | #endif |
1317 | yyerrlab: | 1319 | yyerrlab: |
1318 | ++yynerrs; | 1320 | ++yynerrs; |
1319 | yyinrecovery: | 1321 | yyinrecovery: |
1320 | if (yyerrflag < 3) | 1322 | if (yyerrflag < 3) |
1321 | { | 1323 | { |
1322 | yyerrflag = 3; | 1324 | yyerrflag = 3; |
1323 | for (;;) | 1325 | for (;;) |
1324 | { | 1326 | { |
1325 | if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && | 1327 | if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && |
1326 | yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) | 1328 | yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) |
1327 | { | 1329 | { |
1328 | #if YYDEBUG | 1330 | #if YYDEBUG |
1329 | if (yydebug) | 1331 | if (yydebug) |
1330 | printf("%sdebug: state %d, error recovery shifting\ | 1332 | printf("%sdebug: state %d, error recovery shifting\ |
1331 | to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); | 1333 | to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); |
1332 | #endif | 1334 | #endif |
1333 | if (yyssp >= yyss + yystacksize - 1) | 1335 | if (yyssp >= yyss + yystacksize - 1) |
1334 | { | 1336 | { |
1335 | goto yyoverflow; | 1337 | goto yyoverflow; |
1336 | } | 1338 | } |
1337 | *++yyssp = yystate = yytable[yyn]; | 1339 | *++yyssp = yystate = yytable[yyn]; |
1338 | *++yyvsp = yylval; | 1340 | *++yyvsp = yylval; |
1339 | goto yyloop; | 1341 | goto yyloop; |
1340 | } | 1342 | } |
1341 | else | 1343 | else |
1342 | { | 1344 | { |
1343 | #if YYDEBUG | 1345 | #if YYDEBUG |
1344 | if (yydebug) | 1346 | if (yydebug) |
1345 | printf("%sdebug: error recovery discarding state %d\n", | 1347 | printf("%sdebug: error recovery discarding state %d\n", |
1346 | YYPREFIX, *yyssp); | 1348 | YYPREFIX, *yyssp); |
1347 | #endif | 1349 | #endif |
1348 | if (yyssp <= yyss) goto yyabort; | 1350 | if (yyssp <= yyss) goto yyabort; |
1349 | --yyssp; | 1351 | --yyssp; |
1350 | --yyvsp; | 1352 | --yyvsp; |
1351 | } | 1353 | } |
1352 | } | 1354 | } |
1353 | } | 1355 | } |
1354 | else | 1356 | else |
1355 | { | 1357 | { |
1356 | if (yychar == 0) goto yyabort; | 1358 | if (yychar == 0) goto yyabort; |
1357 | #if YYDEBUG | 1359 | #if YYDEBUG |
1358 | if (yydebug) | 1360 | if (yydebug) |
1359 | { | 1361 | { |
1360 | yys = 0; | 1362 | yys = 0; |
1361 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; | 1363 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
1362 | if (!yys) yys = "illegal-symbol"; | 1364 | if (!yys) yys = "illegal-symbol"; |
1363 | printf("%sdebug: state %d, error recovery discards token %d (%s)\n", | 1365 | printf("%sdebug: state %d, error recovery discards token %d (%s)\n", |
1364 | YYPREFIX, yystate, yychar, yys); | 1366 | YYPREFIX, yystate, yychar, yys); |
1365 | } | 1367 | } |
1366 | #endif | 1368 | #endif |
1367 | yychar = (-1); | 1369 | yychar = (-1); |
1368 | goto yyloop; | 1370 | goto yyloop; |
1369 | } | 1371 | } |
1370 | yyreduce: | 1372 | yyreduce: |
1371 | #if YYDEBUG | 1373 | #if YYDEBUG |
1372 | if (yydebug) | 1374 | if (yydebug) |
1373 | printf("%sdebug: state %d, reducing by rule %d (%s)\n", | 1375 | printf("%sdebug: state %d, reducing by rule %d (%s)\n", |
1374 | YYPREFIX, yystate, yyn, yyrule[yyn]); | 1376 | YYPREFIX, yystate, yyn, yyrule[yyn]); |
1375 | #endif | 1377 | #endif |
1376 | yym = yylen[yyn]; | 1378 | yym = yylen[yyn]; |
1377 | yyval = yyvsp[1-yym]; | 1379 | yyval = yyvsp[1-yym]; |
1378 | switch (yyn) | 1380 | switch (yyn) |
1379 | { | 1381 | { |
1380 | case 2: | 1382 | case 2: |
1381 | #line 221 "backend/vcc.y" | 1383 | #line 221 "backend/vcc.y" |
1382 | { addList(&vObjList, yyvsp[0].vobj); curObj = 0; } | 1384 | { addList(&vObjList, yyvsp[0].vobj); curObj = 0; } |
1383 | break; | 1385 | break; |
1384 | case 3: | 1386 | case 3: |
1385 | #line 223 "backend/vcc.y" | 1387 | #line 223 "backend/vcc.y" |
1386 | { addList(&vObjList, yyvsp[0].vobj); curObj = 0; } | 1388 | { addList(&vObjList, yyvsp[0].vobj); curObj = 0; } |
1387 | break; | 1389 | break; |
1388 | case 6: | 1390 | case 6: |
1389 | #line 232 "backend/vcc.y" | 1391 | #line 232 "backend/vcc.y" |
1390 | { | 1392 | { |
1391 | lexPushMode(L_VCARD); | 1393 | lexPushMode(L_VCARD); |
1392 | if (!pushVObject(VCCardProp)) YYERROR; | 1394 | if (!pushVObject(VCCardProp)) YYERROR; |
1393 | } | 1395 | } |
1394 | break; | 1396 | break; |
1395 | case 7: | 1397 | case 7: |
1396 | #line 237 "backend/vcc.y" | 1398 | #line 237 "backend/vcc.y" |
1397 | { | 1399 | { |
1398 | lexPopMode(0); | 1400 | lexPopMode(0); |
1399 | yyval.vobj = popVObject(); | 1401 | yyval.vobj = popVObject(); |
1400 | } | 1402 | } |
1401 | break; | 1403 | break; |
1402 | case 8: | 1404 | case 8: |
1403 | #line 242 "backend/vcc.y" | 1405 | #line 242 "backend/vcc.y" |
1404 | { | 1406 | { |
1405 | lexPushMode(L_VCARD); | 1407 | lexPushMode(L_VCARD); |
1406 | if (!pushVObject(VCCardProp)) YYERROR; | 1408 | if (!pushVObject(VCCardProp)) YYERROR; |
1407 | } | 1409 | } |
1408 | break; | 1410 | break; |
1409 | case 9: | 1411 | case 9: |
1410 | #line 247 "backend/vcc.y" | 1412 | #line 247 "backend/vcc.y" |
1411 | { | 1413 | { |
1412 | lexPopMode(0); | 1414 | lexPopMode(0); |
1413 | yyval.vobj = popVObject(); | 1415 | yyval.vobj = popVObject(); |
1414 | } | 1416 | } |
1415 | break; | 1417 | break; |
1416 | case 12: | 1418 | case 12: |
1417 | #line 258 "backend/vcc.y" | 1419 | #line 258 "backend/vcc.y" |
1418 | { | 1420 | { |
1419 | lexPushMode(L_VALUES); | 1421 | lexPushMode(L_VALUES); |
1420 | } | 1422 | } |
1421 | break; | 1423 | break; |
1422 | case 13: | 1424 | case 13: |
1423 | #line 262 "backend/vcc.y" | 1425 | #line 262 "backend/vcc.y" |
1424 | { | 1426 | { |
1425 | if (lexWithinMode(L_BASE64) || lexWithinMode(L_QUOTED_PRINTABLE)) | 1427 | if (lexWithinMode(L_BASE64) || lexWithinMode(L_QUOTED_PRINTABLE)) |
1426 | lexPopMode(0); | 1428 | lexPopMode(0); |
1427 | lexPopMode(0); | 1429 | lexPopMode(0); |
1428 | } | 1430 | } |
1429 | break; | 1431 | break; |
1430 | case 15: | 1432 | case 15: |
1431 | #line 271 "backend/vcc.y" | 1433 | #line 271 "backend/vcc.y" |
1432 | { | 1434 | { |
1433 | enterProps(yyvsp[0].str); | 1435 | enterProps(yyvsp[0].str); |
1434 | } | 1436 | } |
1435 | break; | 1437 | break; |
1436 | case 17: | 1438 | case 17: |
1437 | #line 276 "backend/vcc.y" | 1439 | #line 276 "backend/vcc.y" |
1438 | { | 1440 | { |
1439 | enterProps(yyvsp[0].str); | 1441 | enterProps(yyvsp[0].str); |
1440 | } | 1442 | } |
1441 | break; | 1443 | break; |
1442 | case 21: | 1444 | case 21: |
1443 | #line 289 "backend/vcc.y" | 1445 | #line 289 "backend/vcc.y" |
1444 | { | 1446 | { |
1445 | enterAttr(yyvsp[0].str,0); | 1447 | enterAttr(yyvsp[0].str,0); |
1446 | } | 1448 | } |
1447 | break; | 1449 | break; |
1448 | case 22: | 1450 | case 22: |
1449 | #line 293 "backend/vcc.y" | 1451 | #line 293 "backend/vcc.y" |
1450 | { | 1452 | { |
1451 | enterAttr(yyvsp[-2].str,yyvsp[0].str); | 1453 | enterAttr(yyvsp[-2].str,yyvsp[0].str); |
1452 | 1454 | ||
1453 | } | 1455 | } |
1454 | break; | 1456 | break; |
1455 | case 24: | 1457 | case 24: |
1456 | #line 302 "backend/vcc.y" | 1458 | #line 302 "backend/vcc.y" |
1457 | { enterValues(yyvsp[-1].str); } | 1459 | { enterValues(yyvsp[-1].str); } |
1458 | break; | 1460 | break; |
1459 | case 26: | 1461 | case 26: |
1460 | #line 304 "backend/vcc.y" | 1462 | #line 304 "backend/vcc.y" |
1461 | { enterValues(yyvsp[0].str); } | 1463 | { enterValues(yyvsp[0].str); } |
1462 | break; | 1464 | break; |
1463 | case 28: | 1465 | case 28: |
1464 | #line 309 "backend/vcc.y" | 1466 | #line 309 "backend/vcc.y" |
1465 | { yyval.str = 0; } | 1467 | { yyval.str = 0; } |
1466 | break; | 1468 | break; |
1467 | case 29: | 1469 | case 29: |
1468 | #line 314 "backend/vcc.y" | 1470 | #line 314 "backend/vcc.y" |
1469 | { if (!pushVObject(VCCalProp)) YYERROR; } | 1471 | { if (!pushVObject(VCCalProp)) YYERROR; } |
1470 | break; | 1472 | break; |
1471 | case 30: | 1473 | case 30: |
1472 | #line 317 "backend/vcc.y" | 1474 | #line 317 "backend/vcc.y" |
1473 | { yyval.vobj = popVObject(); } | 1475 | { yyval.vobj = popVObject(); } |
1474 | break; | 1476 | break; |
1475 | case 31: | 1477 | case 31: |
1476 | #line 319 "backend/vcc.y" | 1478 | #line 319 "backend/vcc.y" |
1477 | { if (!pushVObject(VCCalProp)) YYERROR; } | 1479 | { if (!pushVObject(VCCalProp)) YYERROR; } |
1478 | break; | 1480 | break; |
1479 | case 32: | 1481 | case 32: |
1480 | #line 321 "backend/vcc.y" | 1482 | #line 321 "backend/vcc.y" |
1481 | { yyval.vobj = popVObject(); } | 1483 | { yyval.vobj = popVObject(); } |
1482 | break; | 1484 | break; |
1483 | case 38: | 1485 | case 38: |
1484 | #line 336 "backend/vcc.y" | 1486 | #line 336 "backend/vcc.y" |
1485 | { | 1487 | { |
1486 | lexPushMode(L_VEVENT); | 1488 | lexPushMode(L_VEVENT); |
1487 | if (!pushVObject(VCEventProp)) YYERROR; | 1489 | if (!pushVObject(VCEventProp)) YYERROR; |
1488 | } | 1490 | } |
1489 | break; | 1491 | break; |
1490 | case 39: | 1492 | case 39: |
1491 | #line 342 "backend/vcc.y" | 1493 | #line 342 "backend/vcc.y" |
1492 | { | 1494 | { |
1493 | lexPopMode(0); | 1495 | lexPopMode(0); |
1494 | popVObject(); | 1496 | popVObject(); |
1495 | } | 1497 | } |
1496 | break; | 1498 | break; |
1497 | case 40: | 1499 | case 40: |
1498 | #line 347 "backend/vcc.y" | 1500 | #line 347 "backend/vcc.y" |
1499 | { | 1501 | { |
1500 | lexPushMode(L_VEVENT); | 1502 | lexPushMode(L_VEVENT); |
1501 | if (!pushVObject(VCEventProp)) YYERROR; | 1503 | if (!pushVObject(VCEventProp)) YYERROR; |
1502 | } | 1504 | } |
1503 | break; | 1505 | break; |
1504 | case 41: | 1506 | case 41: |
1505 | #line 352 "backend/vcc.y" | 1507 | #line 352 "backend/vcc.y" |
1506 | { | 1508 | { |
1507 | lexPopMode(0); | 1509 | lexPopMode(0); |
1508 | popVObject(); | 1510 | popVObject(); |
1509 | } | 1511 | } |
1510 | break; | 1512 | break; |
1511 | case 42: | 1513 | case 42: |
1512 | #line 360 "backend/vcc.y" | 1514 | #line 360 "backend/vcc.y" |
1513 | { | 1515 | { |
1514 | lexPushMode(L_VTODO); | 1516 | lexPushMode(L_VTODO); |
1515 | if (!pushVObject(VCTodoProp)) YYERROR; | 1517 | if (!pushVObject(VCTodoProp)) YYERROR; |
1516 | } | 1518 | } |
1517 | break; | 1519 | break; |
1518 | case 43: | 1520 | case 43: |
1519 | #line 366 "backend/vcc.y" | 1521 | #line 366 "backend/vcc.y" |
1520 | { | 1522 | { |
1521 | lexPopMode(0); | 1523 | lexPopMode(0); |
1522 | popVObject(); | 1524 | popVObject(); |
1523 | } | 1525 | } |
1524 | break; | 1526 | break; |
1525 | case 44: | 1527 | case 44: |
1526 | #line 371 "backend/vcc.y" | 1528 | #line 371 "backend/vcc.y" |
1527 | { | 1529 | { |
1528 | lexPushMode(L_VTODO); | 1530 | lexPushMode(L_VTODO); |
1529 | if (!pushVObject(VCTodoProp)) YYERROR; | 1531 | if (!pushVObject(VCTodoProp)) YYERROR; |
1530 | } | 1532 | } |
1531 | break; | 1533 | break; |
1532 | case 45: | 1534 | case 45: |
1533 | #line 376 "backend/vcc.y" | 1535 | #line 376 "backend/vcc.y" |
1534 | { | 1536 | { |
1535 | lexPopMode(0); | 1537 | lexPopMode(0); |
1536 | popVObject(); | 1538 | popVObject(); |
1537 | } | 1539 | } |
1538 | break; | 1540 | break; |
1539 | #line 1540 "y.tab.c" | 1541 | #line 1540 "y.tab.c" |
1540 | } | 1542 | } |
1541 | yyssp -= yym; | 1543 | yyssp -= yym; |
1542 | yystate = *yyssp; | 1544 | yystate = *yyssp; |
1543 | yyvsp -= yym; | 1545 | yyvsp -= yym; |
1544 | yym = yylhs[yyn]; | 1546 | yym = yylhs[yyn]; |
1545 | if (yystate == 0 && yym == 0) | 1547 | if (yystate == 0 && yym == 0) |
1546 | { | 1548 | { |
1547 | #if YYDEBUG | 1549 | #if YYDEBUG |
1548 | if (yydebug) | 1550 | if (yydebug) |
1549 | printf("%sdebug: after reduction, shifting from state 0 to\ | 1551 | printf("%sdebug: after reduction, shifting from state 0 to\ |
1550 | state %d\n", YYPREFIX, YYFINAL); | 1552 | state %d\n", YYPREFIX, YYFINAL); |
1551 | #endif | 1553 | #endif |
1552 | yystate = YYFINAL; | 1554 | yystate = YYFINAL; |
1553 | *++yyssp = YYFINAL; | 1555 | *++yyssp = YYFINAL; |
1554 | *++yyvsp = yyval; | 1556 | *++yyvsp = yyval; |
1555 | if (yychar < 0) | 1557 | if (yychar < 0) |
1556 | { | 1558 | { |
1557 | if ((yychar = yylex()) < 0) yychar = 0; | 1559 | if ((yychar = yylex()) < 0) yychar = 0; |
1558 | #if YYDEBUG | 1560 | #if YYDEBUG |
1559 | if (yydebug) | 1561 | if (yydebug) |
1560 | { | 1562 | { |
1561 | yys = 0; | 1563 | yys = 0; |
1562 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; | 1564 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
1563 | if (!yys) yys = "illegal-symbol"; | 1565 | if (!yys) yys = "illegal-symbol"; |
1564 | printf("%sdebug: state %d, reading %d (%s)\n", | 1566 | printf("%sdebug: state %d, reading %d (%s)\n", |
1565 | YYPREFIX, YYFINAL, yychar, yys); | 1567 | YYPREFIX, YYFINAL, yychar, yys); |
1566 | } | 1568 | } |
1567 | #endif | 1569 | #endif |
1568 | } | 1570 | } |
1569 | if (yychar == 0) goto yyaccept; | 1571 | if (yychar == 0) goto yyaccept; |
1570 | goto yyloop; | 1572 | goto yyloop; |
1571 | } | 1573 | } |
1572 | if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && | 1574 | if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && |
1573 | yyn <= YYTABLESIZE && yycheck[yyn] == yystate) | 1575 | yyn <= YYTABLESIZE && yycheck[yyn] == yystate) |
1574 | yystate = yytable[yyn]; | 1576 | yystate = yytable[yyn]; |
1575 | else | 1577 | else |
1576 | yystate = yydgoto[yym]; | 1578 | yystate = yydgoto[yym]; |
1577 | #if YYDEBUG | 1579 | #if YYDEBUG |
1578 | if (yydebug) | 1580 | if (yydebug) |
1579 | printf("%sdebug: after reduction, shifting from state %d \ | 1581 | printf("%sdebug: after reduction, shifting from state %d \ |
1580 | to state %d\n", YYPREFIX, *yyssp, yystate); | 1582 | to state %d\n", YYPREFIX, *yyssp, yystate); |
1581 | #endif | 1583 | #endif |
1582 | if (yyssp >= yyss + yystacksize - 1) | 1584 | if (yyssp >= yyss + yystacksize - 1) |
1583 | { | 1585 | { |
1584 | goto yyoverflow; | 1586 | goto yyoverflow; |
1585 | } | 1587 | } |
1586 | *++yyssp = yystate; | 1588 | *++yyssp = yystate; |
1587 | *++yyvsp = yyval; | 1589 | *++yyvsp = yyval; |
1588 | goto yyloop; | 1590 | goto yyloop; |
1589 | yyoverflow: | 1591 | yyoverflow: |
1590 | yyerror("yacc stack overflow"); | 1592 | yyerror("yacc stack overflow"); |
1591 | yyabort: | 1593 | yyabort: |
1592 | return (1); | 1594 | return (1); |
1593 | yyaccept: | 1595 | yyaccept: |
1594 | return (0); | 1596 | return (0); |
1595 | } | 1597 | } |
diff --git a/library/backend/vobject.cpp b/library/backend/vobject.cpp index b6d17dc..4c8de70 100644 --- a/library/backend/vobject.cpp +++ b/library/backend/vobject.cpp | |||
@@ -1,1365 +1,1366 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | (C) Copyright 1996 Apple Computer, Inc., AT&T Corp., International | 2 | (C) Copyright 1996 Apple Computer, Inc., AT&T Corp., International |
3 | Business Machines Corporation and Siemens Rolm Communications Inc. | 3 | Business Machines Corporation and Siemens Rolm Communications Inc. |
4 | 4 | ||
5 | For purposes of this license notice, the term Licensors shall mean, | 5 | For purposes of this license notice, the term Licensors shall mean, |
6 | collectively, Apple Computer, Inc., AT&T Corp., International | 6 | collectively, Apple Computer, Inc., AT&T Corp., International |
7 | Business Machines Corporation and Siemens Rolm Communications Inc. | 7 | Business Machines Corporation and Siemens Rolm Communications Inc. |
8 | The term Licensor shall mean any of the Licensors. | 8 | The term Licensor shall mean any of the Licensors. |
9 | 9 | ||
10 | Subject to acceptance of the following conditions, permission is hereby | 10 | Subject to acceptance of the following conditions, permission is hereby |
11 | granted by Licensors without the need for written agreement and without | 11 | granted by Licensors without the need for written agreement and without |
12 | license or royalty fees, to use, copy, modify and distribute this | 12 | license or royalty fees, to use, copy, modify and distribute this |
13 | software for any purpose. | 13 | software for any purpose. |
14 | 14 | ||
15 | The above copyright notice and the following four paragraphs must be | 15 | The above copyright notice and the following four paragraphs must be |
16 | reproduced in all copies of this software and any software including | 16 | reproduced in all copies of this software and any software including |
17 | this software. | 17 | this software. |
18 | 18 | ||
19 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS AND NO LICENSOR SHALL HAVE | 19 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS AND NO LICENSOR SHALL HAVE |
20 | ANY OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR | 20 | ANY OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR |
21 | MODIFICATIONS. | 21 | MODIFICATIONS. |
22 | 22 | ||
23 | IN NO EVENT SHALL ANY LICENSOR BE LIABLE TO ANY PARTY FOR DIRECT, | 23 | IN NO EVENT SHALL ANY LICENSOR BE LIABLE TO ANY PARTY FOR DIRECT, |
24 | INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT | 24 | INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT |
25 | OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | 25 | OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH |
26 | DAMAGE. | 26 | DAMAGE. |
27 | 27 | ||
28 | EACH LICENSOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, | 28 | EACH LICENSOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, |
29 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF NONINFRINGEMENT OR THE | 29 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF NONINFRINGEMENT OR THE |
30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
31 | PURPOSE. | 31 | PURPOSE. |
32 | 32 | ||
33 | The software is provided with RESTRICTED RIGHTS. Use, duplication, or | 33 | The software is provided with RESTRICTED RIGHTS. Use, duplication, or |
34 | disclosure by the government are subject to restrictions set forth in | 34 | disclosure by the government are subject to restrictions set forth in |
35 | DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. | 35 | DFARS 252.227-7013 or 48 CFR 52.227-19, as applicable. |
36 | 36 | ||
37 | ***************************************************************************/ | 37 | ***************************************************************************/ |
38 | 38 | ||
39 | /* | 39 | /* |
40 | * src: vobject.c | 40 | * src: vobject.c |
41 | * doc: vobject and APIs to construct vobject, APIs pretty print | 41 | * doc: vobject and APIs to construct vobject, APIs pretty print |
42 | * vobject, and convert a vobject into its textual representation. | 42 | * vobject, and convert a vobject into its textual representation. |
43 | */ | 43 | */ |
44 | 44 | ||
45 | #ifndef MWERKS | 45 | #ifndef MWERKS |
46 | #include <malloc.h> | 46 | #include <malloc.h> |
47 | #endif | 47 | #endif |
48 | 48 | ||
49 | #include <qtopia/config.h> | 49 | #include <qtopia/config.h> |
50 | #include "vobject_p.h" | 50 | #include "vobject_p.h" |
51 | #include "qfiledirect_p.h" | 51 | #include "qfiledirect_p.h" |
52 | #include <string.h> | 52 | #include <string.h> |
53 | #include <stdio.h> | 53 | #include <stdio.h> |
54 | #include <fcntl.h> | 54 | #include <fcntl.h> |
55 | //#include <io.h> | 55 | //#include <io.h> |
56 | 56 | ||
57 | 57 | ||
58 | #define NAME_OF(o) o->id | 58 | #define NAME_OF(o) o->id |
59 | #define VALUE_TYPE(o) o->valType | 59 | #define VALUE_TYPE(o) o->valType |
60 | #define STRINGZ_VALUE_OF(o) o->val.strs | 60 | #define STRINGZ_VALUE_OF(o) o->val.strs |
61 | #define INTEGER_VALUE_OF(o) o->val.i | 61 | #define INTEGER_VALUE_OF(o) o->val.i |
62 | #define LONG_VALUE_OF(o) o->val.l | 62 | #define LONG_VALUE_OF(o) o->val.l |
63 | #define ANY_VALUE_OF(o) o->val.any | 63 | #define ANY_VALUE_OF(o) o->val.any |
64 | #define VOBJECT_VALUE_OF(o) o->val.vobj | 64 | #define VOBJECT_VALUE_OF(o) o->val.vobj |
65 | 65 | ||
66 | static char vobj_cs[10]; | 66 | static char vobj_cs[10]; |
67 | static enum { EightBit, QuotedPrintable, Base64 } vobj_enc=EightBit; | 67 | static enum { EightBit, QuotedPrintable, Base64 } vobj_enc=EightBit; |
68 | static const char *vobj_enc_s=0; | 68 | static const char *vobj_enc_s=0; |
69 | 69 | ||
70 | typedef union ValueItem { | 70 | typedef union ValueItem { |
71 | const char *strs; | 71 | const char *strs; |
72 | unsigned int i; | 72 | unsigned int i; |
73 | unsigned long l; | 73 | unsigned long l; |
74 | void *any; | 74 | void *any; |
75 | VObject *vobj; | 75 | VObject *vobj; |
76 | } ValueItem; | 76 | } ValueItem; |
77 | 77 | ||
78 | struct VObject { | 78 | struct VObject { |
79 | VObject *next; | 79 | VObject *next; |
80 | const char *id; | 80 | const char *id; |
81 | VObject *prop; | 81 | VObject *prop; |
82 | unsigned short valType; | 82 | unsigned short valType; |
83 | ValueItem val; | 83 | ValueItem val; |
84 | }; | 84 | }; |
85 | 85 | ||
86 | typedef struct StrItem StrItem; | 86 | typedef struct StrItem StrItem; |
87 | 87 | ||
88 | struct StrItem { | 88 | struct StrItem { |
89 | StrItem *next; | 89 | StrItem *next; |
90 | const char *s; | 90 | const char *s; |
91 | unsigned int refCnt; | 91 | unsigned int refCnt; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | DLLEXPORT(const char**) fieldedProp; | 94 | DLLEXPORT(const char**) fieldedProp; |
95 | 95 | ||
96 | 96 | ||
97 | 97 | ||
98 | /*---------------------------------------------------------------------- | 98 | /*---------------------------------------------------------------------- |
99 | The following functions involve with memory allocation: | 99 | The following functions involve with memory allocation: |
100 | newVObject | 100 | newVObject |
101 | deleteVObject | 101 | deleteVObject |
102 | dupStr | 102 | dupStr |
103 | deleteStr | 103 | deleteStr |
104 | newStrItem | 104 | newStrItem |
105 | deleteStrItem | 105 | deleteStrItem |
106 | ----------------------------------------------------------------------*/ | 106 | ----------------------------------------------------------------------*/ |
107 | 107 | ||
108 | DLLEXPORT(VObject*) newVObject_(const char *id) | 108 | DLLEXPORT(VObject*) newVObject_(const char *id) |
109 | { | 109 | { |
110 | VObject *p = (VObject*)malloc(sizeof(VObject)); | 110 | VObject *p = (VObject*)malloc(sizeof(VObject)); |
111 | p->next = 0; | 111 | p->next = 0; |
112 | p->id = id; | 112 | p->id = id; |
113 | p->prop = 0; | 113 | p->prop = 0; |
114 | VALUE_TYPE(p) = 0; | 114 | VALUE_TYPE(p) = 0; |
115 | ANY_VALUE_OF(p) = 0; | 115 | ANY_VALUE_OF(p) = 0; |
116 | return p; | 116 | return p; |
117 | } | 117 | } |
118 | 118 | ||
119 | DLLEXPORT(VObject*) newVObject(const char *id) | 119 | DLLEXPORT(VObject*) newVObject(const char *id) |
120 | { | 120 | { |
121 | return newVObject_(lookupStr(id)); | 121 | return newVObject_(lookupStr(id)); |
122 | } | 122 | } |
123 | 123 | ||
124 | DLLEXPORT(void) deleteVObject(VObject *p) | 124 | DLLEXPORT(void) deleteVObject(VObject *p) |
125 | { | 125 | { |
126 | unUseStr(p->id); | 126 | unUseStr(p->id); |
127 | free(p); | 127 | free(p); |
128 | } | 128 | } |
129 | 129 | ||
130 | DLLEXPORT(char*) dupStr(const char *s, unsigned int size) | 130 | DLLEXPORT(char*) dupStr(const char *s, unsigned int size) |
131 | { | 131 | { |
132 | char *t; | 132 | char *t; |
133 | if (size == 0) { | 133 | if (size == 0) { |
134 | size = strlen(s); | 134 | size = strlen(s); |
135 | } | 135 | } |
136 | t = (char*)malloc(size+1); | 136 | t = (char*)malloc(size+1); |
137 | if (t) { | 137 | if (t) { |
138 | memcpy(t,s,size); | 138 | memcpy(t,s,size); |
139 | t[size] = 0; | 139 | t[size] = 0; |
140 | return t; | 140 | return t; |
141 | } | 141 | } |
142 | else { | 142 | else { |
143 | return (char*)0; | 143 | return (char*)0; |
144 | } | 144 | } |
145 | } | 145 | } |
146 | 146 | ||
147 | DLLEXPORT(void) deleteStr(const char *p) | 147 | DLLEXPORT(void) deleteStr(const char *p) |
148 | { | 148 | { |
149 | if (p) free((void*)p); | 149 | if (p) free((void*)p); |
150 | } | 150 | } |
151 | 151 | ||
152 | 152 | ||
153 | static StrItem* newStrItem(const char *s, StrItem *next) | 153 | static StrItem* newStrItem(const char *s, StrItem *next) |
154 | { | 154 | { |
155 | StrItem *p = (StrItem*)malloc(sizeof(StrItem)); | 155 | StrItem *p = (StrItem*)malloc(sizeof(StrItem)); |
156 | p->next = next; | 156 | p->next = next; |
157 | p->s = s; | 157 | p->s = s; |
158 | p->refCnt = 1; | 158 | p->refCnt = 1; |
159 | return p; | 159 | return p; |
160 | } | 160 | } |
161 | 161 | ||
162 | static void deleteStrItem(StrItem *p) | 162 | static void deleteStrItem(StrItem *p) |
163 | { | 163 | { |
164 | free((void*)p); | 164 | free((void*)p); |
165 | } | 165 | } |
166 | 166 | ||
167 | 167 | ||
168 | /*---------------------------------------------------------------------- | 168 | /*---------------------------------------------------------------------- |
169 | The following function provide accesses to VObject's value. | 169 | The following function provide accesses to VObject's value. |
170 | ----------------------------------------------------------------------*/ | 170 | ----------------------------------------------------------------------*/ |
171 | 171 | ||
172 | DLLEXPORT(const char*) vObjectName(VObject *o) | 172 | DLLEXPORT(const char*) vObjectName(VObject *o) |
173 | { | 173 | { |
174 | return NAME_OF(o); | 174 | return NAME_OF(o); |
175 | } | 175 | } |
176 | 176 | ||
177 | DLLEXPORT(void) setVObjectName(VObject *o, const char* id) | 177 | DLLEXPORT(void) setVObjectName(VObject *o, const char* id) |
178 | { | 178 | { |
179 | NAME_OF(o) = id; | 179 | NAME_OF(o) = id; |
180 | } | 180 | } |
181 | 181 | ||
182 | DLLEXPORT(const char*) vObjectStringZValue(VObject *o) | 182 | DLLEXPORT(const char*) vObjectStringZValue(VObject *o) |
183 | { | 183 | { |
184 | return STRINGZ_VALUE_OF(o); | 184 | return STRINGZ_VALUE_OF(o); |
185 | } | 185 | } |
186 | 186 | ||
187 | DLLEXPORT(void) setVObjectStringZValue(VObject *o, const char *s) | 187 | DLLEXPORT(void) setVObjectStringZValue(VObject *o, const char *s) |
188 | { | 188 | { |
189 | STRINGZ_VALUE_OF(o) = dupStr(s,0); | 189 | STRINGZ_VALUE_OF(o) = dupStr(s,0); |
190 | VALUE_TYPE(o) = VCVT_STRINGZ; | 190 | VALUE_TYPE(o) = VCVT_STRINGZ; |
191 | } | 191 | } |
192 | 192 | ||
193 | DLLEXPORT(void) setVObjectStringZValue_(VObject *o, const char *s) | 193 | DLLEXPORT(void) setVObjectStringZValue_(VObject *o, const char *s) |
194 | { | 194 | { |
195 | STRINGZ_VALUE_OF(o) = s; | 195 | STRINGZ_VALUE_OF(o) = s; |
196 | VALUE_TYPE(o) = VCVT_STRINGZ; | 196 | VALUE_TYPE(o) = VCVT_STRINGZ; |
197 | } | 197 | } |
198 | 198 | ||
199 | DLLEXPORT(unsigned int) vObjectIntegerValue(VObject *o) | 199 | DLLEXPORT(unsigned int) vObjectIntegerValue(VObject *o) |
200 | { | 200 | { |
201 | return INTEGER_VALUE_OF(o); | 201 | return INTEGER_VALUE_OF(o); |
202 | } | 202 | } |
203 | 203 | ||
204 | DLLEXPORT(void) setVObjectIntegerValue(VObject *o, unsigned int i) | 204 | DLLEXPORT(void) setVObjectIntegerValue(VObject *o, unsigned int i) |
205 | { | 205 | { |
206 | INTEGER_VALUE_OF(o) = i; | 206 | INTEGER_VALUE_OF(o) = i; |
207 | VALUE_TYPE(o) = VCVT_UINT; | 207 | VALUE_TYPE(o) = VCVT_UINT; |
208 | } | 208 | } |
209 | 209 | ||
210 | DLLEXPORT(unsigned long) vObjectLongValue(VObject *o) | 210 | DLLEXPORT(unsigned long) vObjectLongValue(VObject *o) |
211 | { | 211 | { |
212 | return LONG_VALUE_OF(o); | 212 | return LONG_VALUE_OF(o); |
213 | } | 213 | } |
214 | 214 | ||
215 | DLLEXPORT(void) setVObjectLongValue(VObject *o, unsigned long l) | 215 | DLLEXPORT(void) setVObjectLongValue(VObject *o, unsigned long l) |
216 | { | 216 | { |
217 | LONG_VALUE_OF(o) = l; | 217 | LONG_VALUE_OF(o) = l; |
218 | VALUE_TYPE(o) = VCVT_ULONG; | 218 | VALUE_TYPE(o) = VCVT_ULONG; |
219 | } | 219 | } |
220 | 220 | ||
221 | DLLEXPORT(void*) vObjectAnyValue(VObject *o) | 221 | DLLEXPORT(void*) vObjectAnyValue(VObject *o) |
222 | { | 222 | { |
223 | return ANY_VALUE_OF(o); | 223 | return ANY_VALUE_OF(o); |
224 | } | 224 | } |
225 | 225 | ||
226 | DLLEXPORT(void) setVObjectAnyValue(VObject *o, void *t) | 226 | DLLEXPORT(void) setVObjectAnyValue(VObject *o, void *t) |
227 | { | 227 | { |
228 | ANY_VALUE_OF(o) = t; | 228 | ANY_VALUE_OF(o) = t; |
229 | VALUE_TYPE(o) = VCVT_RAW; | 229 | VALUE_TYPE(o) = VCVT_RAW; |
230 | } | 230 | } |
231 | 231 | ||
232 | DLLEXPORT(VObject*) vObjectVObjectValue(VObject *o) | 232 | DLLEXPORT(VObject*) vObjectVObjectValue(VObject *o) |
233 | { | 233 | { |
234 | return VOBJECT_VALUE_OF(o); | 234 | return VOBJECT_VALUE_OF(o); |
235 | } | 235 | } |
236 | 236 | ||
237 | DLLEXPORT(void) setVObjectVObjectValue(VObject *o, VObject *p) | 237 | DLLEXPORT(void) setVObjectVObjectValue(VObject *o, VObject *p) |
238 | { | 238 | { |
239 | VOBJECT_VALUE_OF(o) = p; | 239 | VOBJECT_VALUE_OF(o) = p; |
240 | VALUE_TYPE(o) = VCVT_VOBJECT; | 240 | VALUE_TYPE(o) = VCVT_VOBJECT; |
241 | } | 241 | } |
242 | 242 | ||
243 | DLLEXPORT(int) vObjectValueType(VObject *o) | 243 | DLLEXPORT(int) vObjectValueType(VObject *o) |
244 | { | 244 | { |
245 | return VALUE_TYPE(o); | 245 | return VALUE_TYPE(o); |
246 | } | 246 | } |
247 | 247 | ||
248 | 248 | ||
249 | /*---------------------------------------------------------------------- | 249 | /*---------------------------------------------------------------------- |
250 | The following functions can be used to build VObject. | 250 | The following functions can be used to build VObject. |
251 | ----------------------------------------------------------------------*/ | 251 | ----------------------------------------------------------------------*/ |
252 | 252 | ||
253 | DLLEXPORT(VObject*) addVObjectProp(VObject *o, VObject *p) | 253 | DLLEXPORT(VObject*) addVObjectProp(VObject *o, VObject *p) |
254 | { | 254 | { |
255 | /* circular link list pointed to tail */ | 255 | /* circular link list pointed to tail */ |
256 | /* | 256 | /* |
257 | o {next,id,prop,val} | 257 | o {next,id,prop,val} |
258 | V | 258 | V |
259 | pn {next,id,prop,val} | 259 | pn {next,id,prop,val} |
260 | V | 260 | V |
261 | ... | 261 | ... |
262 | p1 {next,id,prop,val} | 262 | p1 {next,id,prop,val} |
263 | V | 263 | V |
264 | pn | 264 | pn |
265 | --> | 265 | --> |
266 | o {next,id,prop,val} | 266 | o {next,id,prop,val} |
267 | V | 267 | V |
268 | pn {next,id,prop,val} | 268 | pn {next,id,prop,val} |
269 | V | 269 | V |
270 | p {next,id,prop,val} | 270 | p {next,id,prop,val} |
271 | ... | 271 | ... |
272 | p1 {next,id,prop,val} | 272 | p1 {next,id,prop,val} |
273 | V | 273 | V |
274 | pn | 274 | pn |
275 | */ | 275 | */ |
276 | 276 | ||
277 | VObject *tail = o->prop; | 277 | VObject *tail = o->prop; |
278 | if (tail) { | 278 | if (tail) { |
279 | p->next = tail->next; | 279 | p->next = tail->next; |
280 | o->prop = tail->next = p; | 280 | o->prop = tail->next = p; |
281 | } | 281 | } |
282 | else { | 282 | else { |
283 | o->prop = p->next = p; | 283 | o->prop = p->next = p; |
284 | } | 284 | } |
285 | return p; | 285 | return p; |
286 | } | 286 | } |
287 | 287 | ||
288 | DLLEXPORT(VObject*) addProp(VObject *o, const char *id) | 288 | DLLEXPORT(VObject*) addProp(VObject *o, const char *id) |
289 | { | 289 | { |
290 | return addVObjectProp(o,newVObject(id)); | 290 | return addVObjectProp(o,newVObject(id)); |
291 | } | 291 | } |
292 | 292 | ||
293 | DLLEXPORT(VObject*) addProp_(VObject *o, const char *id) | 293 | DLLEXPORT(VObject*) addProp_(VObject *o, const char *id) |
294 | { | 294 | { |
295 | return addVObjectProp(o,newVObject_(id)); | 295 | return addVObjectProp(o,newVObject_(id)); |
296 | } | 296 | } |
297 | 297 | ||
298 | DLLEXPORT(void) addList(VObject **o, VObject *p) | 298 | DLLEXPORT(void) addList(VObject **o, VObject *p) |
299 | { | 299 | { |
300 | p->next = 0; | 300 | p->next = 0; |
301 | if (*o == 0) { | 301 | if (*o == 0) { |
302 | *o = p; | 302 | *o = p; |
303 | } | 303 | } |
304 | else { | 304 | else { |
305 | VObject *t = *o; | 305 | VObject *t = *o; |
306 | while (t->next) { | 306 | while (t->next) { |
307 | t = t->next; | 307 | t = t->next; |
308 | } | 308 | } |
309 | t->next = p; | 309 | t->next = p; |
310 | } | 310 | } |
311 | } | 311 | } |
312 | 312 | ||
313 | DLLEXPORT(VObject*) nextVObjectInList(VObject *o) | 313 | DLLEXPORT(VObject*) nextVObjectInList(VObject *o) |
314 | { | 314 | { |
315 | return o->next; | 315 | return o->next; |
316 | } | 316 | } |
317 | 317 | ||
318 | DLLEXPORT(VObject*) setValueWithSize_(VObject *prop, void *val, unsigned int size) | 318 | DLLEXPORT(VObject*) setValueWithSize_(VObject *prop, void *val, unsigned int size) |
319 | { | 319 | { |
320 | VObject *sizeProp; | 320 | VObject *sizeProp; |
321 | setVObjectAnyValue(prop, val); | 321 | setVObjectAnyValue(prop, val); |
322 | sizeProp = addProp(prop,VCDataSizeProp); | 322 | sizeProp = addProp(prop,VCDataSizeProp); |
323 | setVObjectLongValue(sizeProp, size); | 323 | setVObjectLongValue(sizeProp, size); |
324 | return prop; | 324 | return prop; |
325 | } | 325 | } |
326 | 326 | ||
327 | DLLEXPORT(VObject*) setValueWithSize(VObject *prop, void *val, unsigned int size) | 327 | DLLEXPORT(VObject*) setValueWithSize(VObject *prop, void *val, unsigned int size) |
328 | { | 328 | { |
329 | void *p = dupStr((const char *)val,size); | 329 | void *p = dupStr((const char *)val,size); |
330 | return setValueWithSize_(prop,p,p?size:0); | 330 | return setValueWithSize_(prop,p,p?size:0); |
331 | } | 331 | } |
332 | 332 | ||
333 | DLLEXPORT(void) initPropIterator(VObjectIterator *i, VObject *o) | 333 | DLLEXPORT(void) initPropIterator(VObjectIterator *i, VObject *o) |
334 | { | 334 | { |
335 | i->start = o->prop; | 335 | i->start = o->prop; |
336 | i->next = 0; | 336 | i->next = 0; |
337 | } | 337 | } |
338 | 338 | ||
339 | DLLEXPORT(void) initVObjectIterator(VObjectIterator *i, VObject *o) | 339 | DLLEXPORT(void) initVObjectIterator(VObjectIterator *i, VObject *o) |
340 | { | 340 | { |
341 | i->start = o->next; | 341 | i->start = o->next; |
342 | i->next = 0; | 342 | i->next = 0; |
343 | } | 343 | } |
344 | 344 | ||
345 | DLLEXPORT(int) moreIteration(VObjectIterator *i) | 345 | DLLEXPORT(int) moreIteration(VObjectIterator *i) |
346 | { | 346 | { |
347 | return (i->start && (i->next==0 || i->next!=i->start)); | 347 | return (i->start && (i->next==0 || i->next!=i->start)); |
348 | } | 348 | } |
349 | 349 | ||
350 | DLLEXPORT(VObject*) nextVObject(VObjectIterator *i) | 350 | DLLEXPORT(VObject*) nextVObject(VObjectIterator *i) |
351 | { | 351 | { |
352 | if (i->start && i->next != i->start) { | 352 | if (i->start && i->next != i->start) { |
353 | if (i->next == 0) { | 353 | if (i->next == 0) { |
354 | i->next = i->start->next; | 354 | i->next = i->start->next; |
355 | return i->next; | 355 | return i->next; |
356 | } | 356 | } |
357 | else { | 357 | else { |
358 | i->next = i->next->next; | 358 | i->next = i->next->next; |
359 | return i->next; | 359 | return i->next; |
360 | } | 360 | } |
361 | } | 361 | } |
362 | else return (VObject*)0; | 362 | else return (VObject*)0; |
363 | } | 363 | } |
364 | 364 | ||
365 | DLLEXPORT(VObject*) isAPropertyOf(VObject *o, const char *id) | 365 | DLLEXPORT(VObject*) isAPropertyOf(VObject *o, const char *id) |
366 | { | 366 | { |
367 | VObjectIterator i; | 367 | VObjectIterator i; |
368 | initPropIterator(&i,o); | 368 | initPropIterator(&i,o); |
369 | while (moreIteration(&i)) { | 369 | while (moreIteration(&i)) { |
370 | VObject *each = nextVObject(&i); | 370 | VObject *each = nextVObject(&i); |
371 | if (!qstricmp(id,each->id)) | 371 | if (!qstricmp(id,each->id)) |
372 | return each; | 372 | return each; |
373 | } | 373 | } |
374 | return (VObject*)0; | 374 | return (VObject*)0; |
375 | } | 375 | } |
376 | 376 | ||
377 | DLLEXPORT(VObject*) addGroup(VObject *o, const char *g) | 377 | DLLEXPORT(VObject*) addGroup(VObject *o, const char *g) |
378 | { | 378 | { |
379 | /* | 379 | /* |
380 | a.b.c | 380 | a.b.c |
381 | --> | 381 | --> |
382 | prop(c) | 382 | prop(c) |
383 | prop(VCGrouping=b) | 383 | prop(VCGrouping=b) |
384 | prop(VCGrouping=a) | 384 | prop(VCGrouping=a) |
385 | */ | 385 | */ |
386 | char *dot = strrchr(g,'.'); | 386 | char *dot = strrchr(g,'.'); |
387 | if (dot) { | 387 | if (dot) { |
388 | VObject *p, *t; | 388 | VObject *p, *t; |
389 | char *gs, *n = dot+1; | 389 | char *gs, *n = dot+1; |
390 | gs = dupStr(g,0);/* so we can write to it. */ | 390 | gs = dupStr(g,0);/* so we can write to it. */ |
391 | /* used to be | 391 | /* used to be |
392 | * t = p = addProp_(o,lookupProp_(n)); | 392 | * t = p = addProp_(o,lookupProp_(n)); |
393 | */ | 393 | */ |
394 | t = p = addProp_(o,lookupProp(n)); | 394 | t = p = addProp_(o,lookupProp(n)); |
395 | dot = strrchr(gs,'.'); | 395 | dot = strrchr(gs,'.'); |
396 | *dot = 0; | 396 | *dot = 0; |
397 | do { | 397 | do { |
398 | dot = strrchr(gs,'.'); | 398 | dot = strrchr(gs,'.'); |
399 | if (dot) { | 399 | if (dot) { |
400 | n = dot+1; | 400 | n = dot+1; |
401 | *dot=0; | 401 | *dot=0; |
402 | } | 402 | } |
403 | else | 403 | else |
404 | n = gs; | 404 | n = gs; |
405 | /* property(VCGroupingProp=n); | 405 | /* property(VCGroupingProp=n); |
406 | *and the value may have VCGrouping property | 406 | *and the value may have VCGrouping property |
407 | */ | 407 | */ |
408 | t = addProp(t,VCGroupingProp); | 408 | t = addProp(t,VCGroupingProp); |
409 | setVObjectStringZValue(t,lookupProp_(n)); | 409 | setVObjectStringZValue(t,lookupProp_(n)); |
410 | } while (n != gs); | 410 | } while (n != gs); |
411 | deleteStr(gs); | 411 | deleteStr(gs); |
412 | return p; | 412 | return p; |
413 | } | 413 | } |
414 | else | 414 | else |
415 | return addProp_(o,lookupProp(g)); | 415 | return addProp_(o,lookupProp(g)); |
416 | } | 416 | } |
417 | 417 | ||
418 | DLLEXPORT(VObject*) addPropValue(VObject *o, const char *p, const char *v) | 418 | DLLEXPORT(VObject*) addPropValue(VObject *o, const char *p, const char *v) |
419 | { | 419 | { |
420 | VObject *prop; | 420 | VObject *prop; |
421 | prop = addProp(o,p); | 421 | prop = addProp(o,p); |
422 | setVObjectStringZValue_(prop, strdup( v ) ); | 422 | setVObjectStringZValue_(prop, strdup( v ) ); |
423 | return prop; | 423 | return prop; |
424 | } | 424 | } |
425 | 425 | ||
426 | DLLEXPORT(VObject*) addPropSizedValue_(VObject *o, const char *p, const char *v, | 426 | DLLEXPORT(VObject*) addPropSizedValue_(VObject *o, const char *p, const char *v, |
427 | unsigned int size) | 427 | unsigned int size) |
428 | { | 428 | { |
429 | VObject *prop; | 429 | VObject *prop; |
430 | prop = addProp(o,p); | 430 | prop = addProp(o,p); |
431 | setValueWithSize_(prop, (void*)v, size); | 431 | setValueWithSize_(prop, (void*)v, size); |
432 | return prop; | 432 | return prop; |
433 | } | 433 | } |
434 | 434 | ||
435 | DLLEXPORT(VObject*) addPropSizedValue(VObject *o, const char *p, const char *v, | 435 | DLLEXPORT(VObject*) addPropSizedValue(VObject *o, const char *p, const char *v, |
436 | unsigned int size) | 436 | unsigned int size) |
437 | { | 437 | { |
438 | return addPropSizedValue_(o,p,dupStr(v,size),size); | 438 | return addPropSizedValue_(o,p,dupStr(v,size),size); |
439 | } | 439 | } |
440 | 440 | ||
441 | 441 | ||
442 | DLLEXPORT(void) cleanVObject(VObject *o) | 442 | DLLEXPORT(void) cleanVObject(VObject *o) |
443 | { | 443 | { |
444 | if (o == 0) return; | 444 | if (o == 0) return; |
445 | if (o->prop) { | 445 | if (o->prop) { |
446 | /* destroy time: cannot use the iterator here. | 446 | /* destroy time: cannot use the iterator here. |
447 | Have to break the cycle in the circular link | 447 | Have to break the cycle in the circular link |
448 | list and turns it into regular NULL-terminated | 448 | list and turns it into regular NULL-terminated |
449 | list -- since at some point of destruction, | 449 | list -- since at some point of destruction, |
450 | the reference entry for the iterator to work | 450 | the reference entry for the iterator to work |
451 | will not longer be valid. | 451 | will not longer be valid. |
452 | */ | 452 | */ |
453 | VObject *p; | 453 | VObject *p; |
454 | p = o->prop->next; | 454 | p = o->prop->next; |
455 | o->prop->next = 0; | 455 | o->prop->next = 0; |
456 | do { | 456 | do { |
457 | VObject *t = p->next; | 457 | VObject *t = p->next; |
458 | cleanVObject(p); | 458 | cleanVObject(p); |
459 | p = t; | 459 | p = t; |
460 | } while (p); | 460 | } while (p); |
461 | } | 461 | } |
462 | switch (VALUE_TYPE(o)) { | 462 | switch (VALUE_TYPE(o)) { |
463 | case VCVT_STRINGZ: | 463 | case VCVT_STRINGZ: |
464 | case VCVT_RAW: | 464 | case VCVT_RAW: |
465 | // assume they are all allocated by malloc. | 465 | // assume they are all allocated by malloc. |
466 | free((char*)STRINGZ_VALUE_OF(o)); | 466 | free((char*)STRINGZ_VALUE_OF(o)); |
467 | break; | 467 | break; |
468 | case VCVT_VOBJECT: | 468 | case VCVT_VOBJECT: |
469 | cleanVObject(VOBJECT_VALUE_OF(o)); | 469 | cleanVObject(VOBJECT_VALUE_OF(o)); |
470 | break; | 470 | break; |
471 | } | 471 | } |
472 | deleteVObject(o); | 472 | deleteVObject(o); |
473 | } | 473 | } |
474 | 474 | ||
475 | DLLEXPORT(void) cleanVObjects(VObject *list) | 475 | DLLEXPORT(void) cleanVObjects(VObject *list) |
476 | { | 476 | { |
477 | while (list) { | 477 | while (list) { |
478 | VObject *t = list; | 478 | VObject *t = list; |
479 | list = nextVObjectInList(list); | 479 | list = nextVObjectInList(list); |
480 | cleanVObject(t); | 480 | cleanVObject(t); |
481 | } | 481 | } |
482 | } | 482 | } |
483 | 483 | ||
484 | /*---------------------------------------------------------------------- | 484 | /*---------------------------------------------------------------------- |
485 | The following is a String Table Facilities. | 485 | The following is a String Table Facilities. |
486 | ----------------------------------------------------------------------*/ | 486 | ----------------------------------------------------------------------*/ |
487 | 487 | ||
488 | #define STRTBLSIZE 255 | 488 | #define STRTBLSIZE 255 |
489 | 489 | ||
490 | static StrItem *strTbl[STRTBLSIZE]; | 490 | static StrItem *strTbl[STRTBLSIZE]; |
491 | 491 | ||
492 | static unsigned int hashStr(const char *s) | 492 | static unsigned int hashStr(const char *s) |
493 | { | 493 | { |
494 | unsigned int h = 0; | 494 | unsigned int h = 0; |
495 | int i; | 495 | int i; |
496 | for (i=0;s[i];i++) { | 496 | for (i=0;s[i];i++) { |
497 | h += s[i]*i; | 497 | h += s[i]*i; |
498 | } | 498 | } |
499 | return h % STRTBLSIZE; | 499 | return h % STRTBLSIZE; |
500 | } | 500 | } |
501 | 501 | ||
502 | DLLEXPORT(const char*) lookupStr(const char *s) | 502 | DLLEXPORT(const char*) lookupStr(const char *s) |
503 | { | 503 | { |
504 | StrItem *t; | 504 | StrItem *t; |
505 | unsigned int h = hashStr(s); | 505 | unsigned int h = hashStr(s); |
506 | if ((t = strTbl[h]) != 0) { | 506 | if ((t = strTbl[h]) != 0) { |
507 | do { | 507 | do { |
508 | if (qstricmp(t->s,s) == 0) { | 508 | if (qstricmp(t->s,s) == 0) { |
509 | t->refCnt++; | 509 | t->refCnt++; |
510 | return t->s; | 510 | return t->s; |
511 | } | 511 | } |
512 | t = t->next; | 512 | t = t->next; |
513 | } while (t); | 513 | } while (t); |
514 | } | 514 | } |
515 | s = dupStr(s,0); | 515 | s = dupStr(s,0); |
516 | strTbl[h] = newStrItem(s,strTbl[h]); | 516 | strTbl[h] = newStrItem(s,strTbl[h]); |
517 | return s; | 517 | return s; |
518 | } | 518 | } |
519 | 519 | ||
520 | DLLEXPORT(void) unUseStr(const char *s) | 520 | DLLEXPORT(void) unUseStr(const char *s) |
521 | { | 521 | { |
522 | StrItem *t, *p; | 522 | StrItem *t, *p; |
523 | unsigned int h = hashStr(s); | 523 | unsigned int h = hashStr(s); |
524 | if ((t = strTbl[h]) != 0) { | 524 | if ((t = strTbl[h]) != 0) { |
525 | p = t; | 525 | p = t; |
526 | do { | 526 | do { |
527 | if (qstricmp(t->s,s) == 0) { | 527 | if (qstricmp(t->s,s) == 0) { |
528 | t->refCnt--; | 528 | t->refCnt--; |
529 | if (t->refCnt == 0) { | 529 | if (t->refCnt == 0) { |
530 | if (p == strTbl[h]) { | 530 | if (p == strTbl[h]) { |
531 | strTbl[h] = t->next; | 531 | strTbl[h] = t->next; |
532 | } | 532 | } |
533 | else { | 533 | else { |
534 | p->next = t->next; | 534 | p->next = t->next; |
535 | } | 535 | } |
536 | deleteStr(t->s); | 536 | deleteStr(t->s); |
537 | deleteStrItem(t); | 537 | deleteStrItem(t); |
538 | return; | 538 | return; |
539 | } | 539 | } |
540 | } | 540 | } |
541 | p = t; | 541 | p = t; |
542 | t = t->next; | 542 | t = t->next; |
543 | } while (t); | 543 | } while (t); |
544 | } | 544 | } |
545 | } | 545 | } |
546 | 546 | ||
547 | DLLEXPORT(void) cleanStrTbl() | 547 | DLLEXPORT(void) cleanStrTbl() |
548 | { | 548 | { |
549 | int i; | 549 | int i; |
550 | for (i=0; i<STRTBLSIZE;i++) { | 550 | for (i=0; i<STRTBLSIZE;i++) { |
551 | StrItem *t = strTbl[i]; | 551 | StrItem *t = strTbl[i]; |
552 | while (t) { | 552 | while (t) { |
553 | StrItem *p; | 553 | StrItem *p; |
554 | deleteStr(t->s); | 554 | deleteStr(t->s); |
555 | p = t; | 555 | p = t; |
556 | t = t->next; | 556 | t = t->next; |
557 | deleteStrItem(p); | 557 | deleteStrItem(p); |
558 | } while (t); | 558 | } while (t); |
559 | strTbl[i] = 0; | 559 | strTbl[i] = 0; |
560 | } | 560 | } |
561 | } | 561 | } |
562 | 562 | ||
563 | 563 | ||
564 | struct PreDefProp { | 564 | struct PreDefProp { |
565 | const char *name; | 565 | const char *name; |
566 | const char *alias; | 566 | const char *alias; |
567 | const char** fields; | 567 | const char** fields; |
568 | unsigned int flags; | 568 | unsigned int flags; |
569 | }; | 569 | }; |
570 | 570 | ||
571 | /* flags in PreDefProp */ | 571 | /* flags in PreDefProp */ |
572 | #define PD_BEGIN0x1 | 572 | #define PD_BEGIN0x1 |
573 | #define PD_INTERNAL0x2 | 573 | #define PD_INTERNAL0x2 |
574 | 574 | ||
575 | static const char *adrFields[] = { | 575 | static const char *adrFields[] = { |
576 | VCPostalBoxProp, | 576 | VCPostalBoxProp, |
577 | VCExtAddressProp, | 577 | VCExtAddressProp, |
578 | VCStreetAddressProp, | 578 | VCStreetAddressProp, |
579 | VCCityProp, | 579 | VCCityProp, |
580 | VCRegionProp, | 580 | VCRegionProp, |
581 | VCPostalCodeProp, | 581 | VCPostalCodeProp, |
582 | VCCountryNameProp, | 582 | VCCountryNameProp, |
583 | 0 | 583 | 0 |
584 | }; | 584 | }; |
585 | 585 | ||
586 | static const char *nameFields[] = { | 586 | static const char *nameFields[] = { |
587 | VCFamilyNameProp, | 587 | VCFamilyNameProp, |
588 | VCGivenNameProp, | 588 | VCGivenNameProp, |
589 | VCAdditionalNamesProp, | 589 | VCAdditionalNamesProp, |
590 | VCNamePrefixesProp, | 590 | VCNamePrefixesProp, |
591 | VCNameSuffixesProp, | 591 | VCNameSuffixesProp, |
592 | NULL | 592 | NULL |
593 | }; | 593 | }; |
594 | 594 | ||
595 | static const char *orgFields[] = { | 595 | static const char *orgFields[] = { |
596 | VCOrgNameProp, | 596 | VCOrgNameProp, |
597 | VCOrgUnitProp, | 597 | VCOrgUnitProp, |
598 | VCOrgUnit2Prop, | 598 | VCOrgUnit2Prop, |
599 | VCOrgUnit3Prop, | 599 | VCOrgUnit3Prop, |
600 | VCOrgUnit4Prop, | 600 | VCOrgUnit4Prop, |
601 | NULL | 601 | NULL |
602 | }; | 602 | }; |
603 | 603 | ||
604 | static const char *AAlarmFields[] = { | 604 | static const char *AAlarmFields[] = { |
605 | VCRunTimeProp, | 605 | VCRunTimeProp, |
606 | VCSnoozeTimeProp, | 606 | VCSnoozeTimeProp, |
607 | VCRepeatCountProp, | 607 | VCRepeatCountProp, |
608 | VCAudioContentProp, | 608 | VCAudioContentProp, |
609 | 0 | 609 | 0 |
610 | }; | 610 | }; |
611 | 611 | ||
612 | /* ExDate -- has unamed fields */ | 612 | /* ExDate -- has unamed fields */ |
613 | /* RDate -- has unamed fields */ | 613 | /* RDate -- has unamed fields */ |
614 | 614 | ||
615 | static const char *DAlarmFields[] = { | 615 | static const char *DAlarmFields[] = { |
616 | VCRunTimeProp, | 616 | VCRunTimeProp, |
617 | VCSnoozeTimeProp, | 617 | VCSnoozeTimeProp, |
618 | VCRepeatCountProp, | 618 | VCRepeatCountProp, |
619 | VCDisplayStringProp, | 619 | VCDisplayStringProp, |
620 | 0 | 620 | 0 |
621 | }; | 621 | }; |
622 | 622 | ||
623 | static const char *MAlarmFields[] = { | 623 | static const char *MAlarmFields[] = { |
624 | VCRunTimeProp, | 624 | VCRunTimeProp, |
625 | VCSnoozeTimeProp, | 625 | VCSnoozeTimeProp, |
626 | VCRepeatCountProp, | 626 | VCRepeatCountProp, |
627 | VCEmailAddressProp, | 627 | VCEmailAddressProp, |
628 | VCNoteProp, | 628 | VCNoteProp, |
629 | 0 | 629 | 0 |
630 | }; | 630 | }; |
631 | 631 | ||
632 | static const char *PAlarmFields[] = { | 632 | static const char *PAlarmFields[] = { |
633 | VCRunTimeProp, | 633 | VCRunTimeProp, |
634 | VCSnoozeTimeProp, | 634 | VCSnoozeTimeProp, |
635 | VCRepeatCountProp, | 635 | VCRepeatCountProp, |
636 | VCProcedureNameProp, | 636 | VCProcedureNameProp, |
637 | 0 | 637 | 0 |
638 | }; | 638 | }; |
639 | 639 | ||
640 | static struct PreDefProp propNames[] = { | 640 | static struct PreDefProp propNames[] = { |
641 | { VC7bitProp, 0, 0, 0 }, | 641 | { VC7bitProp, 0, 0, 0 }, |
642 | { VC8bitProp, 0, 0, 0 }, | 642 | { VC8bitProp, 0, 0, 0 }, |
643 | { VCAAlarmProp, 0, AAlarmFields, 0 }, | 643 | { VCAAlarmProp, 0, AAlarmFields, 0 }, |
644 | { VCAdditionalNamesProp, 0, 0, 0 }, | 644 | { VCAdditionalNamesProp, 0, 0, 0 }, |
645 | { VCAdrProp, 0, adrFields, 0 }, | 645 | { VCAdrProp, 0, adrFields, 0 }, |
646 | { VCAgentProp, 0, 0, 0 }, | 646 | { VCAgentProp, 0, 0, 0 }, |
647 | { VCAIFFProp, 0, 0, 0 }, | 647 | { VCAIFFProp, 0, 0, 0 }, |
648 | { VCAOLProp, 0, 0, 0 }, | 648 | { VCAOLProp, 0, 0, 0 }, |
649 | { VCAppleLinkProp, 0, 0, 0 }, | 649 | { VCAppleLinkProp, 0, 0, 0 }, |
650 | { VCAttachProp, 0, 0, 0 }, | 650 | { VCAttachProp, 0, 0, 0 }, |
651 | { VCAttendeeProp, 0, 0, 0 }, | 651 | { VCAttendeeProp, 0, 0, 0 }, |
652 | { VCATTMailProp, 0, 0, 0 }, | 652 | { VCATTMailProp, 0, 0, 0 }, |
653 | { VCAudioContentProp, 0, 0, 0 }, | 653 | { VCAudioContentProp, 0, 0, 0 }, |
654 | { VCAVIProp, 0, 0, 0 }, | 654 | { VCAVIProp, 0, 0, 0 }, |
655 | { VCBase64Prop, 0, 0, 0 }, | 655 | { VCBase64Prop, 0, 0, 0 }, |
656 | { VCBBSProp, 0, 0, 0 }, | 656 | { VCBBSProp, 0, 0, 0 }, |
657 | { VCBirthDateProp, 0, 0, 0 }, | 657 | { VCBirthDateProp, 0, 0, 0 }, |
658 | { VCBMPProp, 0, 0, 0 }, | 658 | { VCBMPProp, 0, 0, 0 }, |
659 | { VCBodyProp, 0, 0, 0 }, | 659 | { VCBodyProp, 0, 0, 0 }, |
660 | { VCBusinessRoleProp, 0, 0, 0 }, | 660 | { VCBusinessRoleProp, 0, 0, 0 }, |
661 | { VCCalProp, 0, 0, PD_BEGIN }, | 661 | { VCCalProp, 0, 0, PD_BEGIN }, |
662 | { VCCaptionProp, 0, 0, 0 }, | 662 | { VCCaptionProp, 0, 0, 0 }, |
663 | { VCCardProp, 0, 0, PD_BEGIN }, | 663 | { VCCardProp, 0, 0, PD_BEGIN }, |
664 | { VCCarProp, 0, 0, 0 }, | 664 | { VCCarProp, 0, 0, 0 }, |
665 | { VCCategoriesProp, 0, 0, 0 }, | 665 | { VCCategoriesProp, 0, 0, 0 }, |
666 | { VCCellularProp, 0, 0, 0 }, | 666 | { VCCellularProp, 0, 0, 0 }, |
667 | { VCCGMProp, 0, 0, 0 }, | 667 | { VCCGMProp, 0, 0, 0 }, |
668 | { VCCharSetProp, 0, 0, 0 }, | 668 | { VCCharSetProp, 0, 0, 0 }, |
669 | { VCCIDProp, VCContentIDProp, 0, 0 }, | 669 | { VCCIDProp, VCContentIDProp, 0, 0 }, |
670 | { VCCISProp, 0, 0, 0 }, | 670 | { VCCISProp, 0, 0, 0 }, |
671 | { VCCityProp, 0, 0, 0 }, | 671 | { VCCityProp, 0, 0, 0 }, |
672 | { VCClassProp, 0, 0, 0 }, | 672 | { VCClassProp, 0, 0, 0 }, |
673 | { VCCommentProp, 0, 0, 0 }, | 673 | { VCCommentProp, 0, 0, 0 }, |
674 | { VCCompletedProp, 0, 0, 0 }, | 674 | { VCCompletedProp, 0, 0, 0 }, |
675 | { VCContentIDProp, 0, 0, 0 }, | 675 | { VCContentIDProp, 0, 0, 0 }, |
676 | { VCCountryNameProp, 0, 0, 0 }, | 676 | { VCCountryNameProp, 0, 0, 0 }, |
677 | { VCDAlarmProp, 0, DAlarmFields, 0 }, | 677 | { VCDAlarmProp, 0, DAlarmFields, 0 }, |
678 | { VCDataSizeProp, 0, 0, PD_INTERNAL }, | 678 | { VCDataSizeProp, 0, 0, PD_INTERNAL }, |
679 | { VCDayLightProp, 0, 0, 0 }, | 679 | { VCDayLightProp, 0, 0, 0 }, |
680 | { VCDCreatedProp, 0, 0, 0 }, | 680 | { VCDCreatedProp, 0, 0, 0 }, |
681 | { VCDeliveryLabelProp, 0, 0, 0 }, | 681 | { VCDeliveryLabelProp, 0, 0, 0 }, |
682 | { VCDescriptionProp, 0, 0, 0 }, | 682 | { VCDescriptionProp, 0, 0, 0 }, |
683 | { VCDIBProp, 0, 0, 0 }, | 683 | { VCDIBProp, 0, 0, 0 }, |
684 | { VCDisplayStringProp, 0, 0, 0 }, | 684 | { VCDisplayStringProp, 0, 0, 0 }, |
685 | { VCDomesticProp, 0, 0, 0 }, | 685 | { VCDomesticProp, 0, 0, 0 }, |
686 | { VCDTendProp, 0, 0, 0 }, | 686 | { VCDTendProp, 0, 0, 0 }, |
687 | { VCDTstartProp, 0, 0, 0 }, | 687 | { VCDTstartProp, 0, 0, 0 }, |
688 | { VCDueProp, 0, 0, 0 }, | 688 | { VCDueProp, 0, 0, 0 }, |
689 | { VCEmailAddressProp, 0, 0, 0 }, | 689 | { VCEmailAddressProp, 0, 0, 0 }, |
690 | { VCEncodingProp, 0, 0, 0 }, | 690 | { VCEncodingProp, 0, 0, 0 }, |
691 | { VCEndProp, 0, 0, 0 }, | 691 | { VCEndProp, 0, 0, 0 }, |
692 | { VCEventProp, 0, 0, PD_BEGIN }, | 692 | { VCEventProp, 0, 0, PD_BEGIN }, |
693 | { VCEWorldProp, 0, 0, 0 }, | 693 | { VCEWorldProp, 0, 0, 0 }, |
694 | { VCExNumProp, 0, 0, 0 }, | 694 | { VCExNumProp, 0, 0, 0 }, |
695 | { VCExpDateProp, 0, 0, 0 }, | 695 | { VCExpDateProp, 0, 0, 0 }, |
696 | { VCExpectProp, 0, 0, 0 }, | 696 | { VCExpectProp, 0, 0, 0 }, |
697 | { VCExtAddressProp, 0, 0, 0 }, | 697 | { VCExtAddressProp, 0, 0, 0 }, |
698 | { VCFamilyNameProp, 0, 0, 0 }, | 698 | { VCFamilyNameProp, 0, 0, 0 }, |
699 | { VCFaxProp, 0, 0, 0 }, | 699 | { VCFaxProp, 0, 0, 0 }, |
700 | { VCFullNameProp, 0, 0, 0 }, | 700 | { VCFullNameProp, 0, 0, 0 }, |
701 | { VCGeoLocationProp, 0, 0, 0 }, | 701 | { VCGeoLocationProp, 0, 0, 0 }, |
702 | { VCGeoProp, 0, 0, 0 }, | 702 | { VCGeoProp, 0, 0, 0 }, |
703 | { VCGIFProp, 0, 0, 0 }, | 703 | { VCGIFProp, 0, 0, 0 }, |
704 | { VCGivenNameProp, 0, 0, 0 }, | 704 | { VCGivenNameProp, 0, 0, 0 }, |
705 | { VCGroupingProp, 0, 0, 0 }, | 705 | { VCGroupingProp, 0, 0, 0 }, |
706 | { VCHomeProp, 0, 0, 0 }, | 706 | { VCHomeProp, 0, 0, 0 }, |
707 | { VCIBMMailProp, 0, 0, 0 }, | 707 | { VCIBMMailProp, 0, 0, 0 }, |
708 | { VCInlineProp, 0, 0, 0 }, | 708 | { VCInlineProp, 0, 0, 0 }, |
709 | { VCInternationalProp, 0, 0, 0 }, | 709 | { VCInternationalProp, 0, 0, 0 }, |
710 | { VCInternetProp, 0, 0, 0 }, | 710 | { VCInternetProp, 0, 0, 0 }, |
711 | { VCISDNProp, 0, 0, 0 }, | 711 | { VCISDNProp, 0, 0, 0 }, |
712 | { VCJPEGProp, 0, 0, 0 }, | 712 | { VCJPEGProp, 0, 0, 0 }, |
713 | { VCLanguageProp, 0, 0, 0 }, | 713 | { VCLanguageProp, 0, 0, 0 }, |
714 | { VCLastModifiedProp, 0, 0, 0 }, | 714 | { VCLastModifiedProp, 0, 0, 0 }, |
715 | { VCLastRevisedProp, 0, 0, 0 }, | 715 | { VCLastRevisedProp, 0, 0, 0 }, |
716 | { VCLocationProp, 0, 0, 0 }, | 716 | { VCLocationProp, 0, 0, 0 }, |
717 | { VCLogoProp, 0, 0, 0 }, | 717 | { VCLogoProp, 0, 0, 0 }, |
718 | { VCMailerProp, 0, 0, 0 }, | 718 | { VCMailerProp, 0, 0, 0 }, |
719 | { VCMAlarmProp, 0, MAlarmFields, 0 }, | 719 | { VCMAlarmProp, 0, MAlarmFields, 0 }, |
720 | { VCMCIMailProp, 0, 0, 0 }, | 720 | { VCMCIMailProp, 0, 0, 0 }, |
721 | { VCMessageProp, 0, 0, 0 }, | 721 | { VCMessageProp, 0, 0, 0 }, |
722 | { VCMETProp, 0, 0, 0 }, | 722 | { VCMETProp, 0, 0, 0 }, |
723 | { VCModemProp, 0, 0, 0 }, | 723 | { VCModemProp, 0, 0, 0 }, |
724 | { VCMPEG2Prop, 0, 0, 0 }, | 724 | { VCMPEG2Prop, 0, 0, 0 }, |
725 | { VCMPEGProp, 0, 0, 0 }, | 725 | { VCMPEGProp, 0, 0, 0 }, |
726 | { VCMSNProp, 0, 0, 0 }, | 726 | { VCMSNProp, 0, 0, 0 }, |
727 | { VCNamePrefixesProp, 0, 0, 0 }, | 727 | { VCNamePrefixesProp, 0, 0, 0 }, |
728 | { VCNameProp, 0, nameFields, 0 }, | 728 | { VCNameProp, 0, nameFields, 0 }, |
729 | { VCNameSuffixesProp, 0, 0, 0 }, | 729 | { VCNameSuffixesProp, 0, 0, 0 }, |
730 | { VCNoteProp, 0, 0, 0 }, | 730 | { VCNoteProp, 0, 0, 0 }, |
731 | { VCOrgNameProp, 0, 0, 0 }, | 731 | { VCOrgNameProp, 0, 0, 0 }, |
732 | { VCOrgProp, 0, orgFields, 0 }, | 732 | { VCOrgProp, 0, orgFields, 0 }, |
733 | { VCOrgUnit2Prop, 0, 0, 0 }, | 733 | { VCOrgUnit2Prop, 0, 0, 0 }, |
734 | { VCOrgUnit3Prop, 0, 0, 0 }, | 734 | { VCOrgUnit3Prop, 0, 0, 0 }, |
735 | { VCOrgUnit4Prop, 0, 0, 0 }, | 735 | { VCOrgUnit4Prop, 0, 0, 0 }, |
736 | { VCOrgUnitProp, 0, 0, 0 }, | 736 | { VCOrgUnitProp, 0, 0, 0 }, |
737 | { VCPagerProp, 0, 0, 0 }, | 737 | { VCPagerProp, 0, 0, 0 }, |
738 | { VCPAlarmProp, 0, PAlarmFields, 0 }, | 738 | { VCPAlarmProp, 0, PAlarmFields, 0 }, |
739 | { VCParcelProp, 0, 0, 0 }, | 739 | { VCParcelProp, 0, 0, 0 }, |
740 | { VCPartProp, 0, 0, 0 }, | 740 | { VCPartProp, 0, 0, 0 }, |
741 | { VCPCMProp, 0, 0, 0 }, | 741 | { VCPCMProp, 0, 0, 0 }, |
742 | { VCPDFProp, 0, 0, 0 }, | 742 | { VCPDFProp, 0, 0, 0 }, |
743 | { VCPGPProp, 0, 0, 0 }, | 743 | { VCPGPProp, 0, 0, 0 }, |
744 | { VCPhotoProp, 0, 0, 0 }, | 744 | { VCPhotoProp, 0, 0, 0 }, |
745 | { VCPICTProp, 0, 0, 0 }, | 745 | { VCPICTProp, 0, 0, 0 }, |
746 | { VCPMBProp, 0, 0, 0 }, | 746 | { VCPMBProp, 0, 0, 0 }, |
747 | { VCPostalBoxProp, 0, 0, 0 }, | 747 | { VCPostalBoxProp, 0, 0, 0 }, |
748 | { VCPostalCodeProp, 0, 0, 0 }, | 748 | { VCPostalCodeProp, 0, 0, 0 }, |
749 | { VCPostalProp, 0, 0, 0 }, | 749 | { VCPostalProp, 0, 0, 0 }, |
750 | { VCPowerShareProp, 0, 0, 0 }, | 750 | { VCPowerShareProp, 0, 0, 0 }, |
751 | { VCPreferredProp, 0, 0, 0 }, | 751 | { VCPreferredProp, 0, 0, 0 }, |
752 | { VCPriorityProp, 0, 0, 0 }, | 752 | { VCPriorityProp, 0, 0, 0 }, |
753 | { VCProcedureNameProp, 0, 0, 0 }, | 753 | { VCProcedureNameProp, 0, 0, 0 }, |
754 | { VCProdIdProp, 0, 0, 0 }, | 754 | { VCProdIdProp, 0, 0, 0 }, |
755 | { VCProdigyProp, 0, 0, 0 }, | 755 | { VCProdigyProp, 0, 0, 0 }, |
756 | { VCPronunciationProp, 0, 0, 0 }, | 756 | { VCPronunciationProp, 0, 0, 0 }, |
757 | { VCPSProp, 0, 0, 0 }, | 757 | { VCPSProp, 0, 0, 0 }, |
758 | { VCPublicKeyProp, 0, 0, 0 }, | 758 | { VCPublicKeyProp, 0, 0, 0 }, |
759 | { VCQPProp, VCQuotedPrintableProp, 0, 0 }, | 759 | { VCQPProp, VCQuotedPrintableProp, 0, 0 }, |
760 | { VCQPProp, VCBase64Prop, 0, 0 }, | ||
760 | { VCQuickTimeProp, 0, 0, 0 }, | 761 | { VCQuickTimeProp, 0, 0, 0 }, |
761 | { VCQuotedPrintableProp, 0, 0, 0 }, | 762 | { VCQuotedPrintableProp, 0, 0, 0 }, |
762 | { VCRDateProp, 0, 0, 0 }, | 763 | { VCRDateProp, 0, 0, 0 }, |
763 | { VCRegionProp, 0, 0, 0 }, | 764 | { VCRegionProp, 0, 0, 0 }, |
764 | { VCRelatedToProp, 0, 0, 0 }, | 765 | { VCRelatedToProp, 0, 0, 0 }, |
765 | { VCRepeatCountProp, 0, 0, 0 }, | 766 | { VCRepeatCountProp, 0, 0, 0 }, |
766 | { VCResourcesProp, 0, 0, 0 }, | 767 | { VCResourcesProp, 0, 0, 0 }, |
767 | { VCRNumProp, 0, 0, 0 }, | 768 | { VCRNumProp, 0, 0, 0 }, |
768 | { VCRoleProp, 0, 0, 0 }, | 769 | { VCRoleProp, 0, 0, 0 }, |
769 | { VCRRuleProp, 0, 0, 0 }, | 770 | { VCRRuleProp, 0, 0, 0 }, |
770 | { VCRSVPProp, 0, 0, 0 }, | 771 | { VCRSVPProp, 0, 0, 0 }, |
771 | { VCRunTimeProp, 0, 0, 0 }, | 772 | { VCRunTimeProp, 0, 0, 0 }, |
772 | { VCSequenceProp, 0, 0, 0 }, | 773 | { VCSequenceProp, 0, 0, 0 }, |
773 | { VCSnoozeTimeProp, 0, 0, 0 }, | 774 | { VCSnoozeTimeProp, 0, 0, 0 }, |
774 | { VCStartProp, 0, 0, 0 }, | 775 | { VCStartProp, 0, 0, 0 }, |
775 | { VCStatusProp, 0, 0, 0 }, | 776 | { VCStatusProp, 0, 0, 0 }, |
776 | { VCStreetAddressProp, 0, 0, 0 }, | 777 | { VCStreetAddressProp, 0, 0, 0 }, |
777 | { VCSubTypeProp, 0, 0, 0 }, | 778 | { VCSubTypeProp, 0, 0, 0 }, |
778 | { VCSummaryProp, 0, 0, 0 }, | 779 | { VCSummaryProp, 0, 0, 0 }, |
779 | { VCTelephoneProp, 0, 0, 0 }, | 780 | { VCTelephoneProp, 0, 0, 0 }, |
780 | { VCTIFFProp, 0, 0, 0 }, | 781 | { VCTIFFProp, 0, 0, 0 }, |
781 | { VCTimeZoneProp, 0, 0, 0 }, | 782 | { VCTimeZoneProp, 0, 0, 0 }, |
782 | { VCTitleProp, 0, 0, 0 }, | 783 | { VCTitleProp, 0, 0, 0 }, |
783 | { VCTLXProp, 0, 0, 0 }, | 784 | { VCTLXProp, 0, 0, 0 }, |
784 | { VCTodoProp, 0, 0, PD_BEGIN }, | 785 | { VCTodoProp, 0, 0, PD_BEGIN }, |
785 | { VCTranspProp, 0, 0, 0 }, | 786 | { VCTranspProp, 0, 0, 0 }, |
786 | { VCUniqueStringProp, 0, 0, 0 }, | 787 | { VCUniqueStringProp, 0, 0, 0 }, |
787 | { VCURLProp, 0, 0, 0 }, | 788 | { VCURLProp, 0, 0, 0 }, |
788 | { VCURLValueProp, 0, 0, 0 }, | 789 | { VCURLValueProp, 0, 0, 0 }, |
789 | { VCValueProp, 0, 0, 0 }, | 790 | { VCValueProp, 0, 0, 0 }, |
790 | { VCVersionProp, 0, 0, 0 }, | 791 | { VCVersionProp, 0, 0, 0 }, |
791 | { VCVideoProp, 0, 0, 0 }, | 792 | { VCVideoProp, 0, 0, 0 }, |
792 | { VCVoiceProp, 0, 0, 0 }, | 793 | { VCVoiceProp, 0, 0, 0 }, |
793 | { VCWAVEProp, 0, 0, 0 }, | 794 | { VCWAVEProp, 0, 0, 0 }, |
794 | { VCWMFProp, 0, 0, 0 }, | 795 | { VCWMFProp, 0, 0, 0 }, |
795 | { VCWorkProp, 0, 0, 0 }, | 796 | { VCWorkProp, 0, 0, 0 }, |
796 | { VCX400Prop, 0, 0, 0 }, | 797 | { VCX400Prop, 0, 0, 0 }, |
797 | { VCX509Prop, 0, 0, 0 }, | 798 | { VCX509Prop, 0, 0, 0 }, |
798 | { VCXRuleProp, 0, 0, 0 }, | 799 | { VCXRuleProp, 0, 0, 0 }, |
799 | { 0,0,0,0 } | 800 | { 0,0,0,0 } |
800 | }; | 801 | }; |
801 | 802 | ||
802 | 803 | ||
803 | static struct PreDefProp* lookupPropInfo(const char* str) | 804 | static struct PreDefProp* lookupPropInfo(const char* str) |
804 | { | 805 | { |
805 | /* brute force for now, could use a hash table here. */ | 806 | /* brute force for now, could use a hash table here. */ |
806 | int i; | 807 | int i; |
807 | 808 | ||
808 | for (i = 0; propNames[i].name; i++) | 809 | for (i = 0; propNames[i].name; i++) |
809 | if (qstricmp(str, propNames[i].name) == 0) { | 810 | if (qstricmp(str, propNames[i].name) == 0) { |
810 | return &propNames[i]; | 811 | return &propNames[i]; |
811 | } | 812 | } |
812 | 813 | ||
813 | return 0; | 814 | return 0; |
814 | } | 815 | } |
815 | 816 | ||
816 | 817 | ||
817 | DLLEXPORT(const char*) lookupProp_(const char* str) | 818 | DLLEXPORT(const char*) lookupProp_(const char* str) |
818 | { | 819 | { |
819 | int i; | 820 | int i; |
820 | 821 | ||
821 | for (i = 0; propNames[i].name; i++) | 822 | for (i = 0; propNames[i].name; i++) |
822 | if (qstricmp(str, propNames[i].name) == 0) { | 823 | if (qstricmp(str, propNames[i].name) == 0) { |
823 | const char* s; | 824 | const char* s; |
824 | s = propNames[i].alias?propNames[i].alias:propNames[i].name; | 825 | s = propNames[i].alias?propNames[i].alias:propNames[i].name; |
825 | return lookupStr(s); | 826 | return lookupStr(s); |
826 | } | 827 | } |
827 | return lookupStr(str); | 828 | return lookupStr(str); |
828 | } | 829 | } |
829 | 830 | ||
830 | 831 | ||
831 | DLLEXPORT(const char*) lookupProp(const char* str) | 832 | DLLEXPORT(const char*) lookupProp(const char* str) |
832 | { | 833 | { |
833 | int i; | 834 | int i; |
834 | 835 | ||
835 | for (i = 0; propNames[i].name; i++) | 836 | for (i = 0; propNames[i].name; i++) |
836 | if (qstricmp(str, propNames[i].name) == 0) { | 837 | if (qstricmp(str, propNames[i].name) == 0) { |
837 | const char *s; | 838 | const char *s; |
838 | fieldedProp = propNames[i].fields; | 839 | fieldedProp = propNames[i].fields; |
839 | s = propNames[i].alias?propNames[i].alias:propNames[i].name; | 840 | s = propNames[i].alias?propNames[i].alias:propNames[i].name; |
840 | return lookupStr(s); | 841 | return lookupStr(s); |
841 | } | 842 | } |
842 | fieldedProp = 0; | 843 | fieldedProp = 0; |
843 | return lookupStr(str); | 844 | return lookupStr(str); |
844 | } | 845 | } |
845 | 846 | ||
846 | 847 | ||
847 | /*---------------------------------------------------------------------- | 848 | /*---------------------------------------------------------------------- |
848 | APIs to Output text form. | 849 | APIs to Output text form. |
849 | ----------------------------------------------------------------------*/ | 850 | ----------------------------------------------------------------------*/ |
850 | #define OFILE_REALLOC_SIZE 256 | 851 | #define OFILE_REALLOC_SIZE 256 |
851 | typedef struct OFile { | 852 | typedef struct OFile { |
852 | FILE *fp; | 853 | FILE *fp; |
853 | char *s; | 854 | char *s; |
854 | int len; | 855 | int len; |
855 | int limit; | 856 | int limit; |
856 | int alloc:1; | 857 | int alloc:1; |
857 | int fail:1; | 858 | int fail:1; |
858 | } OFile; | 859 | } OFile; |
859 | 860 | ||
860 | #if 0 | 861 | #if 0 |
861 | static void appendsOFile(OFile *fp, const char *s) | 862 | static void appendsOFile(OFile *fp, const char *s) |
862 | { | 863 | { |
863 | int slen; | 864 | int slen; |
864 | if (fp->fail) return; | 865 | if (fp->fail) return; |
865 | slen = strlen(s); | 866 | slen = strlen(s); |
866 | if (fp->fp) { | 867 | if (fp->fp) { |
867 | fwrite(s,1,slen,fp->fp); | 868 | fwrite(s,1,slen,fp->fp); |
868 | } | 869 | } |
869 | else { | 870 | else { |
870 | stuff: | 871 | stuff: |
871 | if (fp->len + slen < fp->limit) { | 872 | if (fp->len + slen < fp->limit) { |
872 | memcpy(fp->s+fp->len,s,slen); | 873 | memcpy(fp->s+fp->len,s,slen); |
873 | fp->len += slen; | 874 | fp->len += slen; |
874 | return; | 875 | return; |
875 | } | 876 | } |
876 | else if (fp->alloc) { | 877 | else if (fp->alloc) { |
877 | fp->limit = fp->limit + OFILE_REALLOC_SIZE; | 878 | fp->limit = fp->limit + OFILE_REALLOC_SIZE; |
878 | if (OFILE_REALLOC_SIZE <= slen) fp->limit += slen; | 879 | if (OFILE_REALLOC_SIZE <= slen) fp->limit += slen; |
879 | fp->s = (char *) realloc(fp->s,fp->limit); | 880 | fp->s = (char *) realloc(fp->s,fp->limit); |
880 | if (fp->s) goto stuff; | 881 | if (fp->s) goto stuff; |
881 | } | 882 | } |
882 | if (fp->alloc) | 883 | if (fp->alloc) |
883 | free(fp->s); | 884 | free(fp->s); |
884 | fp->s = 0; | 885 | fp->s = 0; |
885 | fp->fail = 1; | 886 | fp->fail = 1; |
886 | } | 887 | } |
887 | } | 888 | } |
888 | 889 | ||
889 | static void appendcOFile(OFile *fp, char c) | 890 | static void appendcOFile(OFile *fp, char c) |
890 | { | 891 | { |
891 | if (fp->fail) return; | 892 | if (fp->fail) return; |
892 | if (fp->fp) { | 893 | if (fp->fp) { |
893 | fputc(c,fp->fp); | 894 | fputc(c,fp->fp); |
894 | } | 895 | } |
895 | else { | 896 | else { |
896 | stuff: | 897 | stuff: |
897 | if (fp->len+1 < fp->limit) { | 898 | if (fp->len+1 < fp->limit) { |
898 | fp->s[fp->len] = c; | 899 | fp->s[fp->len] = c; |
899 | fp->len++; | 900 | fp->len++; |
900 | return; | 901 | return; |
901 | } | 902 | } |
902 | else if (fp->alloc) { | 903 | else if (fp->alloc) { |
903 | fp->limit = fp->limit + OFILE_REALLOC_SIZE; | 904 | fp->limit = fp->limit + OFILE_REALLOC_SIZE; |
904 | fp->s = (char *) realloc(fp->s,fp->limit); | 905 | fp->s = (char *) realloc(fp->s,fp->limit); |
905 | if (fp->s) goto stuff; | 906 | if (fp->s) goto stuff; |
906 | } | 907 | } |
907 | if (fp->alloc) | 908 | if (fp->alloc) |
908 | free(fp->s); | 909 | free(fp->s); |
909 | fp->s = 0; | 910 | fp->s = 0; |
910 | fp->fail = 1; | 911 | fp->fail = 1; |
911 | } | 912 | } |
912 | } | 913 | } |
913 | #else | 914 | #else |
914 | static void appendcOFile_(OFile *fp, char c) | 915 | static void appendcOFile_(OFile *fp, char c) |
915 | { | 916 | { |
916 | if (fp->fail) return; | 917 | if (fp->fail) return; |
917 | if (fp->fp) { | 918 | if (fp->fp) { |
918 | fputc(c,fp->fp); | 919 | fputc(c,fp->fp); |
919 | } | 920 | } |
920 | else { | 921 | else { |
921 | stuff: | 922 | stuff: |
922 | if (fp->len+1 < fp->limit) { | 923 | if (fp->len+1 < fp->limit) { |
923 | fp->s[fp->len] = c; | 924 | fp->s[fp->len] = c; |
924 | fp->len++; | 925 | fp->len++; |
925 | return; | 926 | return; |
926 | } | 927 | } |
927 | else if (fp->alloc) { | 928 | else if (fp->alloc) { |
928 | fp->limit = fp->limit + OFILE_REALLOC_SIZE; | 929 | fp->limit = fp->limit + OFILE_REALLOC_SIZE; |
929 | fp->s = (char *)realloc(fp->s,fp->limit); | 930 | fp->s = (char *)realloc(fp->s,fp->limit); |
930 | if (fp->s) goto stuff; | 931 | if (fp->s) goto stuff; |
931 | } | 932 | } |
932 | if (fp->alloc) | 933 | if (fp->alloc) |
933 | free(fp->s); | 934 | free(fp->s); |
934 | fp->s = 0; | 935 | fp->s = 0; |
935 | fp->fail = 1; | 936 | fp->fail = 1; |
936 | } | 937 | } |
937 | } | 938 | } |
938 | 939 | ||
939 | static void appendcOFile(OFile *fp, char c) | 940 | static void appendcOFile(OFile *fp, char c) |
940 | { | 941 | { |
941 | if (c == '\n') { | 942 | if (c == '\n') { |
942 | /* write out as <CR><LF> */ | 943 | /* write out as <CR><LF> */ |
943 | appendcOFile_(fp,0xd); | 944 | appendcOFile_(fp,0xd); |
944 | appendcOFile_(fp,0xa); | 945 | appendcOFile_(fp,0xa); |
945 | } | 946 | } |
946 | else | 947 | else |
947 | appendcOFile_(fp,c); | 948 | appendcOFile_(fp,c); |
948 | } | 949 | } |
949 | 950 | ||
950 | static void appendsOFile(OFile *fp, const char *s) | 951 | static void appendsOFile(OFile *fp, const char *s) |
951 | { | 952 | { |
952 | int i, slen; | 953 | int i, slen; |
953 | slen = strlen(s); | 954 | slen = strlen(s); |
954 | for (i=0; i<slen; i++) { | 955 | for (i=0; i<slen; i++) { |
955 | appendcOFile(fp,s[i]); | 956 | appendcOFile(fp,s[i]); |
956 | } | 957 | } |
957 | } | 958 | } |
958 | 959 | ||
959 | #endif | 960 | #endif |
960 | 961 | ||
961 | static void appendsOFileEncCs(OFile *fp) | 962 | static void appendsOFileEncCs(OFile *fp) |
962 | { | 963 | { |
963 | if ( vobj_enc_s ) { | 964 | if ( vobj_enc_s ) { |
964 | appendsOFile(fp, ";" VCEncodingProp "="); | 965 | appendsOFile(fp, ";" VCEncodingProp "="); |
965 | appendsOFile(fp, vobj_enc_s); | 966 | appendsOFile(fp, vobj_enc_s); |
966 | } | 967 | } |
967 | appendsOFile(fp, ";" VCCharSetProp "="); | 968 | appendsOFile(fp, ";" VCCharSetProp "="); |
968 | appendsOFile(fp, vobj_cs); | 969 | appendsOFile(fp, vobj_cs); |
969 | } | 970 | } |
970 | 971 | ||
971 | 972 | ||
972 | static void initOFile(OFile *fp, FILE *ofp) | 973 | static void initOFile(OFile *fp, FILE *ofp) |
973 | { | 974 | { |
974 | fp->fp = ofp; | 975 | fp->fp = ofp; |
975 | fp->s = 0; | 976 | fp->s = 0; |
976 | fp->len = 0; | 977 | fp->len = 0; |
977 | fp->limit = 0; | 978 | fp->limit = 0; |
978 | fp->alloc = 0; | 979 | fp->alloc = 0; |
979 | fp->fail = 0; | 980 | fp->fail = 0; |
980 | } | 981 | } |
981 | 982 | ||
982 | static int writeBase64(OFile *fp, unsigned char *s, long len) | 983 | static int writeBase64(OFile *fp, unsigned char *s, long len) |
983 | { | 984 | { |
984 | long cur = 0; | 985 | long cur = 0; |
985 | int i, numQuads = 0; | 986 | int i, numQuads = 0; |
986 | unsigned long trip; | 987 | unsigned long trip; |
987 | unsigned char b; | 988 | unsigned char b; |
988 | char quad[5]; | 989 | char quad[5]; |
989 | #define MAXQUADS 16 | 990 | #define MAXQUADS 16 |
990 | 991 | ||
991 | quad[4] = 0; | 992 | quad[4] = 0; |
992 | 993 | ||
993 | while (cur < len) { | 994 | while (cur < len) { |
994 | // collect the triplet of bytes into 'trip' | 995 | // collect the triplet of bytes into 'trip' |
995 | trip = 0; | 996 | trip = 0; |
996 | for (i = 0; i < 3; i++) { | 997 | for (i = 0; i < 3; i++) { |
997 | b = (cur < len) ? *(s + cur) : 0; | 998 | b = (cur < len) ? *(s + cur) : 0; |
998 | cur++; | 999 | cur++; |
999 | trip = trip << 8 | b; | 1000 | trip = trip << 8 | b; |
1000 | } | 1001 | } |
1001 | // fill in 'quad' with the appropriate four characters | 1002 | // fill in 'quad' with the appropriate four characters |
1002 | for (i = 3; i >= 0; i--) { | 1003 | for (i = 3; i >= 0; i--) { |
1003 | b = (unsigned char)(trip & 0x3F); | 1004 | b = (unsigned char)(trip & 0x3F); |
1004 | trip = trip >> 6; | 1005 | trip = trip >> 6; |
1005 | if ((3 - i) < (cur - len)) | 1006 | if ((3 - i) < (cur - len)) |
1006 | quad[i] = '='; // pad char | 1007 | quad[i] = '='; // pad char |
1007 | else if (b < 26) quad[i] = (char)b + 'A'; | 1008 | else if (b < 26) quad[i] = (char)b + 'A'; |
1008 | else if (b < 52) quad[i] = (char)(b - 26) + 'a'; | 1009 | else if (b < 52) quad[i] = (char)(b - 26) + 'a'; |
1009 | else if (b < 62) quad[i] = (char)(b - 52) + '0'; | 1010 | else if (b < 62) quad[i] = (char)(b - 52) + '0'; |
1010 | else if (b == 62) quad[i] = '+'; | 1011 | else if (b == 62) quad[i] = '+'; |
1011 | else quad[i] = '/'; | 1012 | else quad[i] = '/'; |
1012 | } | 1013 | } |
1013 | // now output 'quad' with appropriate whitespace and line ending | 1014 | // now output 'quad' with appropriate whitespace and line ending |
1014 | appendsOFile(fp, (numQuads == 0 ? " " : "")); | 1015 | appendsOFile(fp, (numQuads == 0 ? " " : "")); |
1015 | appendsOFile(fp, quad); | 1016 | appendsOFile(fp, quad); |
1016 | appendsOFile(fp, ((cur >= len)?"\n" :(numQuads==MAXQUADS-1?"\n" : ""))); | 1017 | appendsOFile(fp, ((cur >= len)?"\n" :(numQuads==MAXQUADS-1?"\n" : ""))); |
1017 | numQuads = (numQuads + 1) % MAXQUADS; | 1018 | numQuads = (numQuads + 1) % MAXQUADS; |
1018 | } | 1019 | } |
1019 | appendcOFile(fp,'\n'); | 1020 | appendcOFile(fp,'\n'); |
1020 | 1021 | ||
1021 | return 1; | 1022 | return 1; |
1022 | } | 1023 | } |
1023 | 1024 | ||
1024 | static const char *qpReplaceChar(unsigned char c) | 1025 | static const char *qpReplaceChar(unsigned char c) |
1025 | { | 1026 | { |
1026 | if (c == '\n') { | 1027 | if (c == '\n') { |
1027 | return "=0A=\n"; | 1028 | return "=0A=\n"; |
1028 | } else if ( | 1029 | } else if ( |
1029 | // RFC 1521 | 1030 | // RFC 1521 |
1030 | (c >= 32 && c <= 60) // Note: " " not allowed at EOL | 1031 | (c >= 32 && c <= 60) // Note: " " not allowed at EOL |
1031 | || | 1032 | || |
1032 | (c >= 62 && c <= 126) | 1033 | (c >= 62 && c <= 126) |
1033 | ) | 1034 | ) |
1034 | { | 1035 | { |
1035 | return 0; | 1036 | return 0; |
1036 | } | 1037 | } |
1037 | 1038 | ||
1038 | static char trans[4]; | 1039 | static char trans[4]; |
1039 | trans[0] = '='; | 1040 | trans[0] = '='; |
1040 | trans[3] = '\0'; | 1041 | trans[3] = '\0'; |
1041 | int rem = c % 16; | 1042 | int rem = c % 16; |
1042 | int div = c / 16; | 1043 | int div = c / 16; |
1043 | 1044 | ||
1044 | if (div < 10) | 1045 | if (div < 10) |
1045 | trans[1] = '0' + div; | 1046 | trans[1] = '0' + div; |
1046 | else | 1047 | else |
1047 | trans[1] = 'A' + (div - 10); | 1048 | trans[1] = 'A' + (div - 10); |
1048 | 1049 | ||
1049 | if (rem < 10) | 1050 | if (rem < 10) |
1050 | trans[2] = '0' + rem; | 1051 | trans[2] = '0' + rem; |
1051 | else | 1052 | else |
1052 | trans[2] = 'A' + (rem - 10); | 1053 | trans[2] = 'A' + (rem - 10); |
1053 | 1054 | ||
1054 | return trans; | 1055 | return trans; |
1055 | } | 1056 | } |
1056 | 1057 | ||
1057 | static void writeEncString(OFile *fp, const char *s, bool nosemi) | 1058 | static void writeEncString(OFile *fp, const char *s, bool nosemi) |
1058 | { | 1059 | { |
1059 | /* | 1060 | /* |
1060 | only A-Z, 0-9 and | 1061 | only A-Z, 0-9 and |
1061 | "'" (ASCII code 39) | 1062 | "'" (ASCII code 39) |
1062 | "(" (ASCII code 40) | 1063 | "(" (ASCII code 40) |
1063 | ")" (ASCII code 41) | 1064 | ")" (ASCII code 41) |
1064 | "+" (ASCII code 43) | 1065 | "+" (ASCII code 43) |
1065 | "," (ASCII code 44) | 1066 | "," (ASCII code 44) |
1066 | "-" (ASCII code 45) | 1067 | "-" (ASCII code 45) |
1067 | "/" (ASCII code 47) | 1068 | "/" (ASCII code 47) |
1068 | "?" (ASCII code 63) | 1069 | "?" (ASCII code 63) |
1069 | 1070 | ||
1070 | should remain un-encoded. | 1071 | should remain un-encoded. |
1071 | '=' needs to be encoded as it is the escape character. | 1072 | '=' needs to be encoded as it is the escape character. |
1072 | ';' needs to be as it is a field separator. | 1073 | ';' needs to be as it is a field separator. |
1073 | 1074 | ||
1074 | */ | 1075 | */ |
1075 | const char *p = s; | 1076 | const char *p = s; |
1076 | switch ( vobj_enc ) { | 1077 | switch ( vobj_enc ) { |
1077 | case EightBit: | 1078 | case EightBit: |
1078 | while (*p) { | 1079 | while (*p) { |
1079 | if ( *p == '\n' || nosemi && ( *p == '\\' || *p == ';' ) ) | 1080 | if ( *p == '\n' || nosemi && ( *p == '\\' || *p == ';' ) ) |
1080 | appendcOFile(fp, '\\'); | 1081 | appendcOFile(fp, '\\'); |
1081 | appendcOFile(fp, *p); | 1082 | appendcOFile(fp, *p); |
1082 | p++; | 1083 | p++; |
1083 | } | 1084 | } |
1084 | break; | 1085 | break; |
1085 | case QuotedPrintable: | 1086 | case QuotedPrintable: |
1086 | while (*p) { | 1087 | while (*p) { |
1087 | const char *rep = qpReplaceChar(*p); | 1088 | const char *rep = qpReplaceChar(*p); |
1088 | if (rep) | 1089 | if (rep) |
1089 | appendsOFile(fp, rep); | 1090 | appendsOFile(fp, rep); |
1090 | else if ( *p == ';' && nosemi ) | 1091 | else if ( *p == ';' && nosemi ) |
1091 | appendsOFile(fp, "=3B"); | 1092 | appendsOFile(fp, "=3B"); |
1092 | else if ( *p == ' ' ) { | 1093 | else if ( *p == ' ' ) { |
1093 | if ( !p[1] || p[1] == '\n' ) // RFC 1521 | 1094 | if ( !p[1] || p[1] == '\n' ) // RFC 1521 |
1094 | appendsOFile(fp, "=20"); | 1095 | appendsOFile(fp, "=20"); |
1095 | else | 1096 | else |
1096 | appendcOFile(fp, *p); | 1097 | appendcOFile(fp, *p); |
1097 | } else | 1098 | } else |
1098 | appendcOFile(fp, *p); | 1099 | appendcOFile(fp, *p); |
1099 | p++; | 1100 | p++; |
1100 | } | 1101 | } |
1101 | break; | 1102 | break; |
1102 | case Base64: | 1103 | case Base64: |
1103 | writeBase64(fp, (unsigned char*)p, strlen(p)); | 1104 | writeBase64(fp, (unsigned char*)p, strlen(p)); |
1104 | break; | 1105 | break; |
1105 | } | 1106 | } |
1106 | } | 1107 | } |
1107 | 1108 | ||
1108 | static bool includesUnprintable(VObject *o) | 1109 | static bool includesUnprintable(VObject *o) |
1109 | { | 1110 | { |
1110 | if (o) { | 1111 | if (o) { |
1111 | if (VALUE_TYPE(o) == VCVT_STRINGZ) { | 1112 | if (VALUE_TYPE(o) == VCVT_STRINGZ) { |
1112 | const char *p = STRINGZ_VALUE_OF(o); | 1113 | const char *p = STRINGZ_VALUE_OF(o); |
1113 | if (p) { | 1114 | if (p) { |
1114 | while (*p) { | 1115 | while (*p) { |
1115 | if (*p==' ' && (!p[1] || p[1]=='\n') // RFC 1521: spaces at ends need quoting | 1116 | if (*p==' ' && (!p[1] || p[1]=='\n') // RFC 1521: spaces at ends need quoting |
1116 | || qpReplaceChar(*p) ) | 1117 | || qpReplaceChar(*p) ) |
1117 | return TRUE; | 1118 | return TRUE; |
1118 | p++; | 1119 | p++; |
1119 | } | 1120 | } |
1120 | } | 1121 | } |
1121 | } | 1122 | } |
1122 | } | 1123 | } |
1123 | return FALSE; | 1124 | return FALSE; |
1124 | } | 1125 | } |
1125 | 1126 | ||
1126 | static void writeVObject_(OFile *fp, VObject *o); | 1127 | static void writeVObject_(OFile *fp, VObject *o); |
1127 | 1128 | ||
1128 | static void writeValue(OFile *fp, VObject *o, unsigned long size, bool nosemi) | 1129 | static void writeValue(OFile *fp, VObject *o, unsigned long size, bool nosemi) |
1129 | { | 1130 | { |
1130 | if (o == 0) return; | 1131 | if (o == 0) return; |
1131 | switch (VALUE_TYPE(o)) { | 1132 | switch (VALUE_TYPE(o)) { |
1132 | case VCVT_STRINGZ: { | 1133 | case VCVT_STRINGZ: { |
1133 | writeEncString(fp, STRINGZ_VALUE_OF(o), nosemi); | 1134 | writeEncString(fp, STRINGZ_VALUE_OF(o), nosemi); |
1134 | break; | 1135 | break; |
1135 | } | 1136 | } |
1136 | case VCVT_UINT: { | 1137 | case VCVT_UINT: { |
1137 | char buf[16]; | 1138 | char buf[16]; |
1138 | sprintf(buf,"%u", INTEGER_VALUE_OF(o)); | 1139 | sprintf(buf,"%u", INTEGER_VALUE_OF(o)); |
1139 | appendsOFile(fp,buf); | 1140 | appendsOFile(fp,buf); |
1140 | break; | 1141 | break; |
1141 | } | 1142 | } |
1142 | case VCVT_ULONG: { | 1143 | case VCVT_ULONG: { |
1143 | char buf[16]; | 1144 | char buf[16]; |
1144 | sprintf(buf,"%lu", LONG_VALUE_OF(o)); | 1145 | sprintf(buf,"%lu", LONG_VALUE_OF(o)); |
1145 | appendsOFile(fp,buf); | 1146 | appendsOFile(fp,buf); |
1146 | break; | 1147 | break; |
1147 | } | 1148 | } |
1148 | case VCVT_RAW: { | 1149 | case VCVT_RAW: { |
1149 | appendcOFile(fp,'\n'); | 1150 | appendcOFile(fp,'\n'); |
1150 | writeBase64(fp,(unsigned char*)(ANY_VALUE_OF(o)),size); | 1151 | writeBase64(fp,(unsigned char*)(ANY_VALUE_OF(o)),size); |
1151 | break; | 1152 | break; |
1152 | } | 1153 | } |
1153 | case VCVT_VOBJECT: | 1154 | case VCVT_VOBJECT: |
1154 | appendcOFile(fp,'\n'); | 1155 | appendcOFile(fp,'\n'); |
1155 | writeVObject_(fp,VOBJECT_VALUE_OF(o)); | 1156 | writeVObject_(fp,VOBJECT_VALUE_OF(o)); |
1156 | break; | 1157 | break; |
1157 | } | 1158 | } |
1158 | } | 1159 | } |
1159 | 1160 | ||
1160 | static void writeAttrValue(OFile *fp, VObject *o) | 1161 | static void writeAttrValue(OFile *fp, VObject *o) |
1161 | { | 1162 | { |
1162 | if (NAME_OF(o)) { | 1163 | if (NAME_OF(o)) { |
1163 | struct PreDefProp *pi; | 1164 | struct PreDefProp *pi; |
1164 | pi = lookupPropInfo(NAME_OF(o)); | 1165 | pi = lookupPropInfo(NAME_OF(o)); |
1165 | if (pi && ((pi->flags & PD_INTERNAL) != 0)) return; | 1166 | if (pi && ((pi->flags & PD_INTERNAL) != 0)) return; |
1166 | if ( includesUnprintable(o) ) | 1167 | if ( includesUnprintable(o) ) |
1167 | appendsOFileEncCs(fp); | 1168 | appendsOFileEncCs(fp); |
1168 | appendcOFile(fp,';'); | 1169 | appendcOFile(fp,';'); |
1169 | appendsOFile(fp,NAME_OF(o)); | 1170 | appendsOFile(fp,NAME_OF(o)); |
1170 | } else { | 1171 | } else { |
1171 | appendcOFile(fp,';'); | 1172 | appendcOFile(fp,';'); |
1172 | } | 1173 | } |
1173 | if (VALUE_TYPE(o)) { | 1174 | if (VALUE_TYPE(o)) { |
1174 | appendcOFile(fp,'='); | 1175 | appendcOFile(fp,'='); |
1175 | writeValue(fp,o,0,TRUE); | 1176 | writeValue(fp,o,0,TRUE); |
1176 | } | 1177 | } |
1177 | } | 1178 | } |
1178 | 1179 | ||
1179 | static void writeGroup(OFile *fp, VObject *o) | 1180 | static void writeGroup(OFile *fp, VObject *o) |
1180 | { | 1181 | { |
1181 | char buf1[256]; | 1182 | char buf1[256]; |
1182 | char buf2[256]; | 1183 | char buf2[256]; |
1183 | strcpy(buf1,NAME_OF(o)); | 1184 | strcpy(buf1,NAME_OF(o)); |
1184 | while ((o=isAPropertyOf(o,VCGroupingProp)) != 0) { | 1185 | while ((o=isAPropertyOf(o,VCGroupingProp)) != 0) { |
1185 | strcpy(buf2,STRINGZ_VALUE_OF(o)); | 1186 | strcpy(buf2,STRINGZ_VALUE_OF(o)); |
1186 | strcat(buf2,"."); | 1187 | strcat(buf2,"."); |
1187 | strcat(buf2,buf1); | 1188 | strcat(buf2,buf1); |
1188 | strcpy(buf1,buf2); | 1189 | strcpy(buf1,buf2); |
1189 | } | 1190 | } |
1190 | appendsOFile(fp,buf1); | 1191 | appendsOFile(fp,buf1); |
1191 | } | 1192 | } |
1192 | 1193 | ||
1193 | static int inList(const char **list, const char *s) | 1194 | static int inList(const char **list, const char *s) |
1194 | { | 1195 | { |
1195 | if (list == 0) return 0; | 1196 | if (list == 0) return 0; |
1196 | while (*list) { | 1197 | while (*list) { |
1197 | if (qstricmp(*list,s) == 0) return 1; | 1198 | if (qstricmp(*list,s) == 0) return 1; |
1198 | list++; | 1199 | list++; |
1199 | } | 1200 | } |
1200 | return 0; | 1201 | return 0; |
1201 | } | 1202 | } |
1202 | 1203 | ||
1203 | static void writeProp(OFile *fp, VObject *o) | 1204 | static void writeProp(OFile *fp, VObject *o) |
1204 | { | 1205 | { |
1205 | if (NAME_OF(o)) { | 1206 | if (NAME_OF(o)) { |
1206 | struct PreDefProp *pi; | 1207 | struct PreDefProp *pi; |
1207 | VObjectIterator t; | 1208 | VObjectIterator t; |
1208 | const char **fields_ = 0; | 1209 | const char **fields_ = 0; |
1209 | pi = lookupPropInfo(NAME_OF(o)); | 1210 | pi = lookupPropInfo(NAME_OF(o)); |
1210 | if (pi && ((pi->flags & PD_BEGIN) != 0)) { | 1211 | if (pi && ((pi->flags & PD_BEGIN) != 0)) { |
1211 | writeVObject_(fp,o); | 1212 | writeVObject_(fp,o); |
1212 | return; | 1213 | return; |
1213 | } | 1214 | } |
1214 | if (isAPropertyOf(o,VCGroupingProp)) | 1215 | if (isAPropertyOf(o,VCGroupingProp)) |
1215 | writeGroup(fp,o); | 1216 | writeGroup(fp,o); |
1216 | else | 1217 | else |
1217 | appendsOFile(fp,NAME_OF(o)); | 1218 | appendsOFile(fp,NAME_OF(o)); |
1218 | if (pi) fields_ = pi->fields; | 1219 | if (pi) fields_ = pi->fields; |
1219 | initPropIterator(&t,o); | 1220 | initPropIterator(&t,o); |
1220 | while (moreIteration(&t)) { | 1221 | while (moreIteration(&t)) { |
1221 | const char *s; | 1222 | const char *s; |
1222 | VObject *eachProp = nextVObject(&t); | 1223 | VObject *eachProp = nextVObject(&t); |
1223 | s = NAME_OF(eachProp); | 1224 | s = NAME_OF(eachProp); |
1224 | if (qstricmp(VCGroupingProp,s) && !inList(fields_,s)) | 1225 | if (qstricmp(VCGroupingProp,s) && !inList(fields_,s)) |
1225 | writeAttrValue(fp,eachProp); | 1226 | writeAttrValue(fp,eachProp); |
1226 | } | 1227 | } |
1227 | if (fields_) { | 1228 | if (fields_) { |
1228 | int i = 0, n = 0; | 1229 | int i = 0, n = 0; |
1229 | const char** fields = fields_; | 1230 | const char** fields = fields_; |
1230 | /* output prop as fields */ | 1231 | /* output prop as fields */ |
1231 | bool printable = TRUE; | 1232 | bool printable = TRUE; |
1232 | while (*fields && printable) { | 1233 | while (*fields && printable) { |
1233 | VObject *t = isAPropertyOf(o,*fields); | 1234 | VObject *t = isAPropertyOf(o,*fields); |
1234 | if (includesUnprintable(t)) | 1235 | if (includesUnprintable(t)) |
1235 | printable = FALSE; | 1236 | printable = FALSE; |
1236 | fields++; | 1237 | fields++; |
1237 | } | 1238 | } |
1238 | fields = fields_; | 1239 | fields = fields_; |
1239 | if (!printable) | 1240 | if (!printable) |
1240 | appendsOFileEncCs(fp); | 1241 | appendsOFileEncCs(fp); |
1241 | appendcOFile(fp,':'); | 1242 | appendcOFile(fp,':'); |
1242 | while (*fields) { | 1243 | while (*fields) { |
1243 | VObject *t = isAPropertyOf(o,*fields); | 1244 | VObject *t = isAPropertyOf(o,*fields); |
1244 | i++; | 1245 | i++; |
1245 | if (t) n = i; | 1246 | if (t) n = i; |
1246 | fields++; | 1247 | fields++; |
1247 | } | 1248 | } |
1248 | fields = fields_; | 1249 | fields = fields_; |
1249 | for (i=0;i<n;i++) { | 1250 | for (i=0;i<n;i++) { |
1250 | writeValue(fp,isAPropertyOf(o,*fields),0,TRUE); | 1251 | writeValue(fp,isAPropertyOf(o,*fields),0,TRUE); |
1251 | fields++; | 1252 | fields++; |
1252 | if (i<(n-1)) appendcOFile(fp,';'); | 1253 | if (i<(n-1)) appendcOFile(fp,';'); |
1253 | } | 1254 | } |
1254 | } | 1255 | } |
1255 | } | 1256 | } |
1256 | 1257 | ||
1257 | 1258 | ||
1258 | if (VALUE_TYPE(o)) { | 1259 | if (VALUE_TYPE(o)) { |
1259 | if ( includesUnprintable(o) ) | 1260 | if ( includesUnprintable(o) ) |
1260 | appendsOFileEncCs(fp); | 1261 | appendsOFileEncCs(fp); |
1261 | unsigned long size = 0; | 1262 | unsigned long size = 0; |
1262 | VObject *p = isAPropertyOf(o,VCDataSizeProp); | 1263 | VObject *p = isAPropertyOf(o,VCDataSizeProp); |
1263 | if (p) size = LONG_VALUE_OF(p); | 1264 | if (p) size = LONG_VALUE_OF(p); |
1264 | appendcOFile(fp,':'); | 1265 | appendcOFile(fp,':'); |
1265 | writeValue(fp,o,size,FALSE); | 1266 | writeValue(fp,o,size,FALSE); |
1266 | } | 1267 | } |
1267 | 1268 | ||
1268 | appendcOFile(fp,'\n'); | 1269 | appendcOFile(fp,'\n'); |
1269 | } | 1270 | } |
1270 | 1271 | ||
1271 | static void writeVObject_(OFile *fp, VObject *o) | 1272 | static void writeVObject_(OFile *fp, VObject *o) |
1272 | { | 1273 | { |
1273 | if (NAME_OF(o)) { | 1274 | if (NAME_OF(o)) { |
1274 | struct PreDefProp *pi; | 1275 | struct PreDefProp *pi; |
1275 | pi = lookupPropInfo(NAME_OF(o)); | 1276 | pi = lookupPropInfo(NAME_OF(o)); |
1276 | 1277 | ||
1277 | if (pi && ((pi->flags & PD_BEGIN) != 0)) { | 1278 | if (pi && ((pi->flags & PD_BEGIN) != 0)) { |
1278 | VObjectIterator t; | 1279 | VObjectIterator t; |
1279 | const char *begin = NAME_OF(o); | 1280 | const char *begin = NAME_OF(o); |
1280 | appendsOFile(fp,"BEGIN:"); | 1281 | appendsOFile(fp,"BEGIN:"); |
1281 | appendsOFile(fp,begin); | 1282 | appendsOFile(fp,begin); |
1282 | appendcOFile(fp,'\n'); | 1283 | appendcOFile(fp,'\n'); |
1283 | initPropIterator(&t,o); | 1284 | initPropIterator(&t,o); |
1284 | while (moreIteration(&t)) { | 1285 | while (moreIteration(&t)) { |
1285 | VObject *eachProp = nextVObject(&t); | 1286 | VObject *eachProp = nextVObject(&t); |
1286 | writeProp(fp, eachProp); | 1287 | writeProp(fp, eachProp); |
1287 | } | 1288 | } |
1288 | appendsOFile(fp,"END:"); | 1289 | appendsOFile(fp,"END:"); |
1289 | appendsOFile(fp,begin); | 1290 | appendsOFile(fp,begin); |
1290 | appendsOFile(fp,"\n\n"); | 1291 | appendsOFile(fp,"\n\n"); |
1291 | } | 1292 | } |
1292 | } | 1293 | } |
1293 | } | 1294 | } |
1294 | 1295 | ||
1295 | static void initVObjectEncoding() | 1296 | static void initVObjectEncoding() |
1296 | { | 1297 | { |
1297 | Config pimConfig( "Beam" ); | 1298 | Config pimConfig( "Beam" ); |
1298 | pimConfig.setGroup("Send"); | 1299 | pimConfig.setGroup("Send"); |
1299 | Config devcfg(pimConfig.readEntry("DeviceConfig"),Config::File); | 1300 | Config devcfg(pimConfig.readEntry("DeviceConfig"),Config::File); |
1300 | QString enc = "QP"; | 1301 | QString enc = "QP"; |
1301 | QString cs = "UTF-8"; | 1302 | QString cs = "UTF-8"; |
1302 | if ( devcfg.isValid() ) { | 1303 | if ( devcfg.isValid() ) { |
1303 | devcfg.setGroup("Send"); | 1304 | devcfg.setGroup("Send"); |
1304 | enc = devcfg.readEntry("Encoding","QP"); | 1305 | enc = devcfg.readEntry("Encoding","QP"); |
1305 | cs = devcfg.readEntry("CharSet","UTF-8"); | 1306 | cs = devcfg.readEntry("CharSet","UTF-8"); |
1306 | } | 1307 | } |
1307 | strncpy(vobj_cs,cs.latin1(),10); | 1308 | strncpy(vobj_cs,cs.latin1(),10); |
1308 | if ( enc == "QP" ) { | 1309 | if ( enc == "QP" ) { |
1309 | vobj_enc = QuotedPrintable; | 1310 | vobj_enc = QuotedPrintable; |
1310 | vobj_enc_s = VCQuotedPrintableProp; | 1311 | vobj_enc_s = VCQuotedPrintableProp; |
1311 | } else if ( enc == "B64" ) { | 1312 | } else if ( enc == "B64" ) { |
1312 | vobj_enc = Base64; | 1313 | vobj_enc = Base64; |
1313 | vobj_enc_s = VCBase64Prop; | 1314 | vobj_enc_s = VCBase64Prop; |
1314 | } else { | 1315 | } else { |
1315 | vobj_enc = EightBit; | 1316 | vobj_enc = EightBit; |
1316 | vobj_enc_s = 0; | 1317 | vobj_enc_s = 0; |
1317 | } | 1318 | } |
1318 | } | 1319 | } |
1319 | 1320 | ||
1320 | void writeVObject(FILE *fp, VObject *o) | 1321 | void writeVObject(FILE *fp, VObject *o) |
1321 | { | 1322 | { |
1322 | initVObjectEncoding(); | 1323 | initVObjectEncoding(); |
1323 | 1324 | ||
1324 | OFile ofp; | 1325 | OFile ofp; |
1325 | // ##### | 1326 | // ##### |
1326 | //_setmode(_fileno(fp), _O_BINARY); | 1327 | //_setmode(_fileno(fp), _O_BINARY); |
1327 | initOFile(&ofp,fp); | 1328 | initOFile(&ofp,fp); |
1328 | writeVObject_(&ofp,o); | 1329 | writeVObject_(&ofp,o); |
1329 | } | 1330 | } |
1330 | 1331 | ||
1331 | DLLEXPORT(void) writeVObjectToFile(char *fname, VObject *o) | 1332 | DLLEXPORT(void) writeVObjectToFile(char *fname, VObject *o) |
1332 | { | 1333 | { |
1333 | QFileDirect f( fname); | 1334 | QFileDirect f( fname); |
1334 | if ( !f.open( IO_WriteOnly ) ) { | 1335 | if ( !f.open( IO_WriteOnly ) ) { |
1335 | qWarning("Unable to open vobject write %s", fname); | 1336 | qWarning("Unable to open vobject write %s", fname); |
1336 | return; | 1337 | return; |
1337 | } | 1338 | } |
1338 | 1339 | ||
1339 | writeVObject( f.directHandle(),o ); | 1340 | writeVObject( f.directHandle(),o ); |
1340 | } | 1341 | } |
1341 | 1342 | ||
1342 | DLLEXPORT(void) writeVObjectsToFile(char *fname, VObject *list) | 1343 | DLLEXPORT(void) writeVObjectsToFile(char *fname, VObject *list) |
1343 | { | 1344 | { |
1344 | QFileDirect f( fname); | 1345 | QFileDirect f( fname); |
1345 | if ( !f.open( IO_WriteOnly ) ) { | 1346 | if ( !f.open( IO_WriteOnly ) ) { |
1346 | qWarning("Unable to open vobject write %s", fname); | 1347 | qWarning("Unable to open vobject write %s", fname); |
1347 | return; | 1348 | return; |
1348 | } | 1349 | } |
1349 | 1350 | ||
1350 | while (list) { | 1351 | while (list) { |
1351 | writeVObject(f.directHandle(),list); | 1352 | writeVObject(f.directHandle(),list); |
1352 | list = nextVObjectInList(list); | 1353 | list = nextVObjectInList(list); |
1353 | } | 1354 | } |
1354 | } | 1355 | } |
1355 | 1356 | ||
1356 | DLLEXPORT(const char *) vObjectTypeInfo(VObject *o) | 1357 | DLLEXPORT(const char *) vObjectTypeInfo(VObject *o) |
1357 | { | 1358 | { |
1358 | const char *type = vObjectName( o ); | 1359 | const char *type = vObjectName( o ); |
1359 | if ( strcmp( type, "TYPE" ) == 0 ) | 1360 | if ( strcmp( type, "TYPE" ) == 0 ) |
1360 | type = vObjectStringZValue( o ); | 1361 | type = vObjectStringZValue( o ); |
1361 | return type; | 1362 | return type; |
1362 | } | 1363 | } |
1363 | 1364 | ||
1364 | 1365 | ||
1365 | // end of source file vobject.c | 1366 | // end of source file vobject.c |
diff --git a/library/calendar.cpp b/library/calendar.cpp index b9ef585..c7536c3 100644 --- a/library/calendar.cpp +++ b/library/calendar.cpp | |||
@@ -1,66 +1,112 @@ | |||
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 | #include "calendar.h" | 20 | #include "calendar.h" |
21 | 21 | ||
22 | #include <qdatetime.h> | 22 | #include <qdatetime.h> |
23 | #include <qobject.h> | ||
24 | |||
25 | /*! \class Calendar calendar.html | ||
26 | |||
27 | \brief The Calendar class provides programmers with an easy to calculate | ||
28 | and get information about dates, months and years. | ||
29 | |||
30 | \ingroup qtopiaemb | ||
31 | */ | ||
32 | |||
33 | |||
34 | |||
35 | static void never_called_tr_function_um_libqpe_ts_etwas_unter_zu_jubeln() { | ||
36 | (void)QObject::tr("Jan"); | ||
37 | (void)QObject::tr("Feb"); | ||
38 | (void)QObject::tr("Mar"); | ||
39 | (void)QObject::tr("Apr"); | ||
40 | (void)QObject::tr("May"); | ||
41 | (void)QObject::tr("Jun"); | ||
42 | (void)QObject::tr("Jul"); | ||
43 | (void)QObject::tr("Aug"); | ||
44 | (void)QObject::tr("Sep"); | ||
45 | (void)QObject::tr("Oct"); | ||
46 | (void)QObject::tr("Nov"); | ||
47 | (void)QObject::tr("Dec"); | ||
48 | (void)QObject::tr("Mon"); | ||
49 | (void)QObject::tr("Tue"); | ||
50 | (void)QObject::tr("Wed"); | ||
51 | (void)QObject::tr("Thu"); | ||
52 | (void)QObject::tr("Fri"); | ||
53 | (void)QObject::tr("Sat"); | ||
54 | (void)QObject::tr("Sun"); | ||
55 | } | ||
56 | |||
57 | |||
58 | |||
59 | /*! | ||
60 | Returns the name of the month for \a m. | ||
61 | Equivalent to QDate::monthName(). | ||
62 | */ | ||
23 | 63 | ||
24 | QString Calendar::nameOfMonth( int m ) | 64 | QString Calendar::nameOfMonth( int m ) |
25 | { | 65 | { |
26 | QDate d; | 66 | QDate d; |
27 | return d.monthName( m ); | 67 | qDebug( d.monthName( m ) ); |
68 | return QObject::tr( d.monthName( m ) ); | ||
28 | } | 69 | } |
29 | 70 | ||
71 | /*! | ||
72 | Returns the name of the day for \a d. | ||
73 | Equivalent to QDate::dayName(). | ||
74 | */ | ||
30 | QString Calendar::nameOfDay( int d ) | 75 | QString Calendar::nameOfDay( int d ) |
31 | { | 76 | { |
32 | QDate dt; | 77 | QDate dt; |
33 | return dt.dayName( d ); | 78 | return QObject::tr( dt.dayName( d ) ); |
34 | } | 79 | } |
35 | 80 | ||
81 | /*! \obsolete */ | ||
36 | QValueList<Calendar::Day> Calendar::daysOfMonth( int year, int month, | 82 | QValueList<Calendar::Day> Calendar::daysOfMonth( int year, int month, |
37 | bool startWithMonday ) | 83 | bool startWithMonday ) |
38 | { | 84 | { |
39 | QDate temp; | 85 | QDate temp; |
40 | temp.setYMD( year, month, 1 ); | 86 | temp.setYMD( year, month, 1 ); |
41 | int firstDay = temp.dayOfWeek(); | 87 | int firstDay = temp.dayOfWeek(); |
42 | int i; | 88 | int i; |
43 | QDate prev; | 89 | QDate prev; |
44 | QValueList<Day> days; | 90 | QValueList<Day> days; |
45 | 91 | ||
46 | if ( startWithMonday ) | 92 | if ( startWithMonday ) |
47 | i = 1; | 93 | i = 1; |
48 | else | 94 | else |
49 | i = 0; | 95 | i = 0; |
50 | 96 | ||
51 | if ( month > 1 ) | 97 | if ( month > 1 ) |
52 | prev.setYMD( year, month - 1, 1 ); | 98 | prev.setYMD( year, month - 1, 1 ); |
53 | else | 99 | else |
54 | prev.setYMD( year - 1, 12, 1 ); | 100 | prev.setYMD( year - 1, 12, 1 ); |
55 | for ( ; i < firstDay; i++ ) { | 101 | for ( ; i < firstDay; i++ ) { |
56 | days.append( Day( prev.daysInMonth() - ( firstDay - i - 1 ), | 102 | days.append( Day( prev.daysInMonth() - ( firstDay - i - 1 ), |
57 | Day::PrevMonth, FALSE ) ); | 103 | Day::PrevMonth, FALSE ) ); |
58 | } | 104 | } |
59 | for ( i = 1; i <= temp.daysInMonth(); i++ ) | 105 | for ( i = 1; i <= temp.daysInMonth(); i++ ) |
60 | days.append( Day( i, Day::ThisMonth, FALSE ) ); | 106 | days.append( Day( i, Day::ThisMonth, FALSE ) ); |
61 | i = 0; | 107 | i = 0; |
62 | while ( days.count() < 6 * 7 ) | 108 | while ( days.count() < 6 * 7 ) |
63 | days.append( Day( ++i, Day::NextMonth, FALSE ) ); | 109 | days.append( Day( ++i, Day::NextMonth, FALSE ) ); |
64 | 110 | ||
65 | return days; | 111 | return days; |
66 | } | 112 | } |
diff --git a/library/categoryedit_p.cpp b/library/categoryedit_p.cpp index 07e707e..9321259 100644 --- a/library/categoryedit_p.cpp +++ b/library/categoryedit_p.cpp | |||
@@ -1,229 +1,230 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 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 "categoryedit_p.h" | 21 | #include "categoryedit_p.h" |
22 | 22 | ||
23 | #include <qpe/categories.h> | 23 | #include <qpe/categories.h> |
24 | 24 | ||
25 | #include <qdir.h> | 25 | #include <qdir.h> |
26 | #include <qcheckbox.h> | 26 | #include <qcheckbox.h> |
27 | #include <qlineedit.h> | 27 | #include <qlineedit.h> |
28 | #include <qlistview.h> | 28 | #include <qlistview.h> |
29 | #include <qstringlist.h> | 29 | #include <qstringlist.h> |
30 | #include <qtoolbutton.h> | 30 | #include <qtoolbutton.h> |
31 | 31 | ||
32 | #include <sys/types.h> | 32 | #include <sys/types.h> |
33 | #include <sys/stat.h> | 33 | #include <sys/stat.h> |
34 | 34 | ||
35 | #include <stdlib.h> | 35 | #include <stdlib.h> |
36 | 36 | ||
37 | 37 | ||
38 | using namespace Qtopia; | 38 | using namespace Qtopia; |
39 | 39 | ||
40 | class CategoryEditPrivate | 40 | class CategoryEditPrivate |
41 | { | 41 | { |
42 | public: | 42 | public: |
43 | CategoryEditPrivate( QWidget *parent, const QString &appName ) | 43 | CategoryEditPrivate( QWidget *parent, const QString &appName ) |
44 | : mCategories( parent, "" ), | 44 | : mCategories( parent, "" ), |
45 | mStrApp( appName ) | 45 | mStrApp( appName ) |
46 | { | 46 | { |
47 | editItem = 0; | 47 | editItem = 0; |
48 | mCategories.load( categoryFileName() ); | 48 | mCategories.load( categoryFileName() ); |
49 | } | 49 | } |
50 | Categories mCategories; | 50 | Categories mCategories; |
51 | QListViewItem *editItem; | 51 | QListViewItem *editItem; |
52 | QString mStrApp; | 52 | QString mStrApp; |
53 | QString mVisible; | 53 | QString mVisible; |
54 | }; | 54 | }; |
55 | 55 | ||
56 | CategoryEdit::CategoryEdit( QWidget *parent, const char *name ) | 56 | CategoryEdit::CategoryEdit( QWidget *parent, const char *name ) |
57 | : CategoryEditBase( parent, name ) | 57 | : CategoryEditBase( parent, name ) |
58 | { | 58 | { |
59 | d = 0; | 59 | d = 0; |
60 | } | 60 | } |
61 | 61 | ||
62 | CategoryEdit::CategoryEdit( const QArray<int> &recCats, | 62 | CategoryEdit::CategoryEdit( const QArray<int> &recCats, |
63 | const QString &appName, const QString &visibleName, | 63 | const QString &appName, const QString &visibleName, |
64 | QWidget *parent, const char *name ) | 64 | QWidget *parent, const char *name ) |
65 | : CategoryEditBase( parent, name ) | 65 | : CategoryEditBase( parent, name ) |
66 | { | 66 | { |
67 | d = 0; | 67 | d = 0; |
68 | setCategories( recCats, appName, visibleName ); | 68 | setCategories( recCats, appName, visibleName ); |
69 | } | 69 | } |
70 | 70 | ||
71 | void CategoryEdit::setCategories( const QArray<int> &recCats, | 71 | void CategoryEdit::setCategories( const QArray<int> &recCats, |
72 | const QString &appName, const QString &visibleName ) | 72 | const QString &appName, const QString &visibleName ) |
73 | { | 73 | { |
74 | if ( !d ) | 74 | if ( !d ) |
75 | d = new CategoryEditPrivate( (QWidget*)parent(), name() ); | 75 | d = new CategoryEditPrivate( (QWidget*)parent(), name() ); |
76 | d->mStrApp = appName; | 76 | d->mStrApp = appName; |
77 | d->mVisible = visibleName; | 77 | d->mVisible = visibleName; |
78 | 78 | ||
79 | QStringList appCats = d->mCategories.labels( d->mStrApp ); | 79 | QStringList appCats = d->mCategories.labels( d->mStrApp ); |
80 | QArray<int> cats = d->mCategories.ids(d->mStrApp, appCats); | 80 | QArray<int> cats = d->mCategories.ids(d->mStrApp, appCats); |
81 | lvView->clear(); | 81 | lvView->clear(); |
82 | 82 | ||
83 | QStringList::ConstIterator it; | 83 | QStringList::ConstIterator it; |
84 | int i, j; | 84 | int i, j; |
85 | for ( i = 0, it = appCats.begin(); it != appCats.end(); i++, ++it ) { | 85 | for ( i = 0, it = appCats.begin(); it != appCats.end(); i++, ++it ) { |
86 | QCheckListItem *chk; | 86 | QCheckListItem *chk; |
87 | chk = new QCheckListItem( lvView, (*it), QCheckListItem::CheckBox ); | 87 | chk = new QCheckListItem( lvView, (*it), QCheckListItem::CheckBox ); |
88 | if ( !d->mCategories.isGlobal((*it)) ) | 88 | if ( !d->mCategories.isGlobal((*it)) ) |
89 | chk->setText( 1, tr(d->mVisible) ); | 89 | chk->setText( 1, tr(d->mVisible) ); |
90 | else | 90 | else |
91 | chk->setText( 1, tr("All") ); | 91 | chk->setText( 1, tr("All") ); |
92 | // Is this record using this category, then we should check it | 92 | // Is this record using this category, then we should check it |
93 | for ( j = 0; j < int(recCats.count()); j++ ) { | 93 | for ( j = 0; j < int(recCats.count()); j++ ) { |
94 | if ( cats[i] == recCats[j] ) { | 94 | if ( cats[i] == recCats[j] ) { |
95 | chk->setOn( true ); | 95 | chk->setOn( true ); |
96 | break; | 96 | break; |
97 | } | 97 | } |
98 | } | 98 | } |
99 | } | 99 | } |
100 | lvView->setSorting( 0, TRUE ); | 100 | lvView->setSorting( 0, TRUE ); |
101 | lvView->sort(); | 101 | lvView->sort(); |
102 | if ( lvView->childCount() < 1 ) | 102 | if ( lvView->childCount() < 1 ) |
103 | txtCat->setEnabled( FALSE ); | 103 | txtCat->setEnabled( FALSE ); |
104 | else { | 104 | else { |
105 | lvView->setSelected( lvView->firstChild(), true ); | 105 | lvView->setSelected( lvView->firstChild(), true ); |
106 | } | 106 | } |
107 | } | 107 | } |
108 | 108 | ||
109 | CategoryEdit::~CategoryEdit() | 109 | CategoryEdit::~CategoryEdit() |
110 | { | 110 | { |
111 | if ( d ) | 111 | if ( d ) |
112 | delete d; | 112 | delete d; |
113 | } | 113 | } |
114 | 114 | ||
115 | void CategoryEdit::slotSetText( QListViewItem *selected ) | 115 | void CategoryEdit::slotSetText( QListViewItem *selected ) |
116 | { | 116 | { |
117 | d->editItem = selected; | 117 | d->editItem = selected; |
118 | if ( !d->editItem ) | 118 | if ( !d->editItem ) |
119 | return; | 119 | return; |
120 | txtCat->setText( d->editItem->text(0) ); | 120 | txtCat->setText( d->editItem->text(0) ); |
121 | txtCat->setEnabled( true ); | 121 | txtCat->setEnabled( true ); |
122 | if ( d->editItem->text(1) == tr("All") ) | 122 | if ( d->editItem->text(1) == tr("All") ) |
123 | chkGlobal->setChecked( true ); | 123 | chkGlobal->setChecked( true ); |
124 | else | 124 | else |
125 | chkGlobal->setChecked( false ); | 125 | chkGlobal->setChecked( false ); |
126 | } | 126 | } |
127 | 127 | ||
128 | void CategoryEdit::slotAdd() | 128 | void CategoryEdit::slotAdd() |
129 | { | 129 | { |
130 | QString name = tr( "New Category" ); | 130 | QString name = tr( "New Category" ); |
131 | bool insertOk = FALSE; | 131 | bool insertOk = FALSE; |
132 | int num = 0; | 132 | int num = 0; |
133 | while ( !insertOk ) { | 133 | while ( !insertOk ) { |
134 | if ( num++ > 0 ) | 134 | if ( num++ > 0 ) |
135 | name = tr("New Category ") + QString::number(num); | 135 | name = tr("New Category ") + QString::number(num); |
136 | insertOk = d->mCategories.addCategory( d->mStrApp, name ); | 136 | insertOk = d->mCategories.addCategory( d->mStrApp, name ); |
137 | } | 137 | } |
138 | QCheckListItem *chk; | 138 | QCheckListItem *chk; |
139 | chk = new QCheckListItem( lvView, name, QCheckListItem::CheckBox ); | 139 | chk = new QCheckListItem( lvView, name, QCheckListItem::CheckBox ); |
140 | if ( !chkGlobal->isChecked() ) | 140 | if ( !chkGlobal->isChecked() ) |
141 | chk->setText( 1, tr(d->mVisible) ); | 141 | chk->setText( 1, tr(d->mVisible) ); |
142 | else | 142 | else |
143 | chk->setText( 1, tr("All") ); | 143 | chk->setText( 1, tr("All") ); |
144 | 144 | ||
145 | lvView->setSelected( chk, TRUE ); | 145 | lvView->setSelected( chk, TRUE ); |
146 | txtCat->selectAll(); | 146 | txtCat->selectAll(); |
147 | txtCat->setFocus(); | ||
147 | } | 148 | } |
148 | 149 | ||
149 | void CategoryEdit::slotRemove() | 150 | void CategoryEdit::slotRemove() |
150 | { | 151 | { |
151 | d->editItem = lvView->selectedItem(); | 152 | d->editItem = lvView->selectedItem(); |
152 | if ( d->editItem ) { | 153 | if ( d->editItem ) { |
153 | QListViewItem *sibling = d->editItem->nextSibling(); | 154 | QListViewItem *sibling = d->editItem->nextSibling(); |
154 | 155 | ||
155 | d->mCategories.removeCategory( d->mStrApp, d->editItem->text(0) ); | 156 | d->mCategories.removeCategory( d->mStrApp, d->editItem->text(0) ); |
156 | 157 | ||
157 | delete d->editItem; | 158 | delete d->editItem; |
158 | d->editItem = 0; | 159 | d->editItem = 0; |
159 | 160 | ||
160 | if ( sibling ) | 161 | if ( sibling ) |
161 | lvView->setSelected( sibling, TRUE ); | 162 | lvView->setSelected( sibling, TRUE ); |
162 | } | 163 | } |
163 | if ( lvView->childCount() < 1 ) { | 164 | if ( lvView->childCount() < 1 ) { |
164 | txtCat->clear(); | 165 | txtCat->clear(); |
165 | txtCat->setEnabled( FALSE ); | 166 | txtCat->setEnabled( FALSE ); |
166 | } | 167 | } |
167 | } | 168 | } |
168 | 169 | ||
169 | void CategoryEdit::slotSetGlobal( bool isChecked ) | 170 | void CategoryEdit::slotSetGlobal( bool isChecked ) |
170 | { | 171 | { |
171 | if ( d->editItem ) { | 172 | if ( d->editItem ) { |
172 | if ( isChecked ) | 173 | if ( isChecked ) |
173 | d->editItem->setText( 1, tr("All") ); | 174 | d->editItem->setText( 1, tr("All") ); |
174 | else | 175 | else |
175 | d->editItem->setText( 1, tr(d->mVisible) ); | 176 | d->editItem->setText( 1, tr(d->mVisible) ); |
176 | 177 | ||
177 | d->mCategories.setGlobal( d->mStrApp, d->editItem->text( 0 ), isChecked ); | 178 | d->mCategories.setGlobal( d->mStrApp, d->editItem->text( 0 ), isChecked ); |
178 | } | 179 | } |
179 | } | 180 | } |
180 | 181 | ||
181 | void CategoryEdit::slotTextChanged( const QString &strNew ) | 182 | void CategoryEdit::slotTextChanged( const QString &strNew ) |
182 | { | 183 | { |
183 | if ( d->editItem ) { | 184 | if ( d->editItem ) { |
184 | if ( chkGlobal->isChecked() ) | 185 | if ( chkGlobal->isChecked() ) |
185 | d->mCategories.renameGlobalCategory( d->editItem->text(0), strNew ); | 186 | d->mCategories.renameGlobalCategory( d->editItem->text(0), strNew ); |
186 | else | 187 | else |
187 | d->mCategories.renameCategory( d->mStrApp, d->editItem->text(0), strNew ); | 188 | d->mCategories.renameCategory( d->mStrApp, d->editItem->text(0), strNew ); |
188 | d->editItem->setText( 0, strNew ); | 189 | d->editItem->setText( 0, strNew ); |
189 | } | 190 | } |
190 | } | 191 | } |
191 | 192 | ||
192 | QArray<int> CategoryEdit::newCategories() | 193 | QArray<int> CategoryEdit::newCategories() |
193 | { | 194 | { |
194 | QArray<int> a; | 195 | QArray<int> a; |
195 | if ( d ) { | 196 | if ( d ) { |
196 | d->mCategories.save( categoryFileName() ); | 197 | d->mCategories.save( categoryFileName() ); |
197 | QListViewItemIterator it( lvView ); | 198 | QListViewItemIterator it( lvView ); |
198 | QValueList<int> l; | 199 | QValueList<int> l; |
199 | for ( ; it.current(); ++it ) { | 200 | for ( ; it.current(); ++it ) { |
200 | if ( reinterpret_cast<QCheckListItem*>(it.current())->isOn() ) | 201 | if ( reinterpret_cast<QCheckListItem*>(it.current())->isOn() ) |
201 | l.append( d->mCategories.id( d->mStrApp, it.current()->text(0) ) ); | 202 | l.append( d->mCategories.id( d->mStrApp, it.current()->text(0) ) ); |
202 | } | 203 | } |
203 | uint i = 0; | 204 | uint i = 0; |
204 | a.resize( l.count() ); | 205 | a.resize( l.count() ); |
205 | for ( QValueList<int>::Iterator lit = l.begin(); lit != l.end(); ++lit ) | 206 | for ( QValueList<int>::Iterator lit = l.begin(); lit != l.end(); ++lit ) |
206 | a[i++] = *lit; | 207 | a[i++] = *lit; |
207 | } | 208 | } |
208 | return a; | 209 | return a; |
209 | } | 210 | } |
210 | 211 | ||
211 | void CategoryEdit::accept() | 212 | void CategoryEdit::accept() |
212 | { | 213 | { |
213 | // write our categories out... | 214 | // write our categories out... |
214 | d->mCategories.save( categoryFileName() ); | 215 | d->mCategories.save( categoryFileName() ); |
215 | // QDialog::accept(); | 216 | // QDialog::accept(); |
216 | } | 217 | } |
217 | 218 | ||
218 | QString categoryFileName() | 219 | QString categoryFileName() |
219 | { | 220 | { |
220 | QDir dir = (QString(getenv("HOME")) + "/Settings"); | 221 | QDir dir = (QString(getenv("HOME")) + "/Settings"); |
221 | if ( !dir.exists() ) | 222 | if ( !dir.exists() ) |
222 | mkdir( dir.path().local8Bit(), 0700 ); | 223 | mkdir( dir.path().local8Bit(), 0700 ); |
223 | return dir.path() + "/" + "Categories" + ".xml"; | 224 | return dir.path() + "/" + "Categories" + ".xml"; |
224 | } | 225 | } |
225 | 226 | ||
226 | void CategoryEdit::kludge() | 227 | void CategoryEdit::kludge() |
227 | { | 228 | { |
228 | lvView->setMaximumHeight( 130 ); | 229 | lvView->setMaximumHeight( 130 ); |
229 | } | 230 | } |
diff --git a/library/categorymenu.cpp b/library/categorymenu.cpp index e733107..5d7adf7 100644 --- a/library/categorymenu.cpp +++ b/library/categorymenu.cpp | |||
@@ -1,110 +1,162 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 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 "categorymenu.h" | 21 | #include "categorymenu.h" |
22 | #include "backend/categories.h" | 22 | #include "backend/categories.h" |
23 | #include "categoryselect.h" | 23 | #include "categoryselect.h" |
24 | #include <qstring.h> | 24 | #include <qstring.h> |
25 | #include <qmap.h> | 25 | #include <qmap.h> |
26 | 26 | ||
27 | /*! | ||
28 | \class CategoryMenu | ||
29 | \brief The CategoryMenu widget aids in filtering records or files by Category. | ||
30 | |||
31 | The CategoryMenu widget provides a popup menu that will make filtering records | ||
32 | or files by category much easier. The widget will lookup the available | ||
33 | categories for an application, populate the menu, and keep a track of which | ||
34 | categories are being filtered against. A set of categories can be tested | ||
35 | by the isSelected() function to see if a record or file containing those | ||
36 | categories would be allowed through by the filter. | ||
37 | |||
38 | \warning Currently this class is not suitable for extending. | ||
39 | |||
40 | \ingroup qtopiaemb | ||
41 | */ | ||
42 | |||
43 | /*! | ||
44 | \fn void CategoryMenu::categoryChange() | ||
45 | This signal is emitted when the user selects a different category in the | ||
46 | menu, hence changing what records or files should be selected. | ||
47 | */ | ||
48 | |||
49 | /*! | ||
50 | Creates a new CategoryMenu with \a parent and \a name. The menu will be | ||
51 | populated with the available categories for \a application. | ||
52 | |||
53 | If \a globals is TRUE then it will also poplulate the menu with the | ||
54 | global categories. | ||
55 | */ | ||
27 | CategoryMenu::CategoryMenu( const QString &n, bool ig = TRUE, | 56 | CategoryMenu::CategoryMenu( const QString &n, bool ig = TRUE, |
28 | QWidget *parent, const char *name ) : | 57 | QWidget *parent, const char *name ) : |
29 | QPopupMenu(parent, name), | 58 | QPopupMenu(parent, name), |
30 | appName(n), | 59 | appName(n), |
31 | includeGlobal(ig) | 60 | includeGlobal(ig) |
32 | { | 61 | { |
33 | currentMid = 1; | 62 | currentMid = 1; |
34 | reload(); | 63 | reload(); |
35 | connect(this, SIGNAL(activated(int)), this, SLOT(mapMenuId(int))); | 64 | connect(this, SIGNAL(activated(int)), this, SLOT(mapMenuId(int))); |
36 | } | 65 | } |
37 | 66 | ||
38 | CategoryMenu::~CategoryMenu( ) | 67 | /*! |
68 | Destroys a CategoryMenu. | ||
69 | */ | ||
70 | CategoryMenu::~CategoryMenu( ) | ||
39 | { | 71 | { |
40 | } | 72 | } |
41 | 73 | ||
74 | /*! | ||
75 | Repopulates the widget's list of available categories. | ||
76 | */ | ||
42 | void CategoryMenu::reload() | 77 | void CategoryMenu::reload() |
43 | { | 78 | { |
44 | clear(); | 79 | clear(); |
45 | Categories c; | 80 | Categories c; |
46 | 81 | ||
47 | c.load(categoryFileName()); | 82 | c.load(categoryFileName()); |
48 | 83 | ||
49 | QStringList sl = c.labels(appName, includeGlobal); | 84 | QStringList sl = c.labels(appName, includeGlobal); |
50 | int mid = 1; | 85 | int mid = 1; |
51 | 86 | ||
52 | insertItem(tr("All"), mid); | 87 | insertItem(tr("All"), mid); |
53 | mid++; | 88 | mid++; |
54 | insertItem(tr("Unfiled"), mid); | 89 | insertItem(tr("Unfiled"), mid); |
55 | mid++; | 90 | mid++; |
56 | 91 | ||
57 | for (QStringList::Iterator it = sl.begin(); | 92 | for (QStringList::Iterator it = sl.begin(); |
58 | it != sl.end(); ++it ) { | 93 | it != sl.end(); ++it ) { |
59 | int cid = c.id(appName, *it); | 94 | int cid = c.id(appName, *it); |
60 | insertItem(*it, mid); | 95 | insertItem(*it, mid); |
61 | menuToId.insert(mid, cid); | 96 | menuToId.insert(mid, cid); |
62 | idToMenu.insert(cid, mid); | 97 | idToMenu.insert(cid, mid); |
63 | mid++; | 98 | mid++; |
64 | } | 99 | } |
65 | 100 | ||
66 | setItemChecked(currentMid, TRUE ); | 101 | setItemChecked(currentMid, TRUE ); |
67 | } | 102 | } |
68 | 103 | ||
69 | void CategoryMenu::mapMenuId(int id) | 104 | /*! |
105 | \internal | ||
106 | */ | ||
107 | void CategoryMenu::mapMenuId(int id) | ||
70 | { | 108 | { |
71 | if (id == currentMid) | 109 | if (id == currentMid) |
72 | return; | 110 | return; |
73 | setItemChecked( currentMid, FALSE ); | 111 | setItemChecked( currentMid, FALSE ); |
74 | setItemChecked( id, TRUE ); | 112 | setItemChecked( id, TRUE ); |
75 | currentMid = id; | 113 | currentMid = id; |
76 | 114 | ||
77 | emit categoryChange(); | 115 | emit categoryChange(); |
78 | } | 116 | } |
79 | 117 | ||
118 | /*! | ||
119 | Returns TRUE if a record or file with the set of category ids \a cUids | ||
120 | is allowed by the current selection in the CategoryMenu. | ||
121 | Otherwise returns FALSE. | ||
122 | */ | ||
80 | bool CategoryMenu::isSelected(const QArray<int> &cUids) const | 123 | bool CategoryMenu::isSelected(const QArray<int> &cUids) const |
81 | { | 124 | { |
82 | if (currentMid == 1) | 125 | if (currentMid == 1) |
83 | return TRUE; | 126 | return TRUE; |
84 | 127 | ||
85 | if (currentMid == 2 && cUids.count() == 0) | 128 | if (currentMid == 2 && cUids.count() == 0) |
86 | return TRUE; | 129 | return TRUE; |
87 | 130 | ||
88 | if (cUids.contains(menuToId[currentMid])) | 131 | if (cUids.contains(menuToId[currentMid])) |
89 | return TRUE; | 132 | return TRUE; |
90 | 133 | ||
91 | return FALSE; | 134 | return FALSE; |
92 | } | 135 | } |
93 | 136 | ||
137 | /*! | ||
138 | Sets the menu to have \a newCatUid as the currently selected Category. | ||
139 | */ | ||
94 | void CategoryMenu::setCurrentCategory( int newCatUid ) | 140 | void CategoryMenu::setCurrentCategory( int newCatUid ) |
95 | { | 141 | { |
96 | if (!idToMenu.contains(newCatUid)) | 142 | if (!idToMenu.contains(newCatUid)) |
97 | return; | 143 | return; |
98 | 144 | ||
99 | mapMenuId(idToMenu[newCatUid]); | 145 | mapMenuId(idToMenu[newCatUid]); |
100 | } | 146 | } |
101 | 147 | ||
148 | /*! | ||
149 | Sets the menu to allow all category sets. | ||
150 | */ | ||
102 | void CategoryMenu::setCurrentCategoryAll( ) | 151 | void CategoryMenu::setCurrentCategoryAll( ) |
103 | { | 152 | { |
104 | mapMenuId(1); | 153 | mapMenuId(1); |
105 | } | 154 | } |
106 | 155 | ||
156 | /*! | ||
157 | Sets the menu to allow only empty category sets. | ||
158 | */ | ||
107 | void CategoryMenu::setCurrentCategoryUnfiled( ) | 159 | void CategoryMenu::setCurrentCategoryUnfiled( ) |
108 | { | 160 | { |
109 | mapMenuId(2); | 161 | mapMenuId(2); |
110 | } | 162 | } |
diff --git a/library/categoryselect.cpp b/library/categoryselect.cpp index 21b3f91..8473aeb 100644 --- a/library/categoryselect.cpp +++ b/library/categoryselect.cpp | |||
@@ -1,452 +1,560 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** Copyright (C) 2003 zecke introduce a needed symbol | ||
3 | ** | 4 | ** |
4 | ** This file is part of Qtopia Environment. | 5 | ** This file is part of Qtopia Environment. |
5 | ** | 6 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 7 | ** 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 | 8 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 9 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 10 | ** packaging of this file. |
10 | ** | 11 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 12 | ** 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. | 13 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 14 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 15 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 16 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 17 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 18 | ** not clear to you. |
18 | ** | 19 | ** |
19 | **********************************************************************/ | 20 | **********************************************************************/ |
20 | 21 | ||
21 | #include <qpe/categories.h> | 22 | #include <qpe/categories.h> |
22 | #include <qpe/palmtoprecord.h> | 23 | #include <qpe/palmtoprecord.h> |
23 | 24 | ||
24 | #include <qmessagebox.h> | 25 | #include <qmessagebox.h> |
25 | #include <qlayout.h> | 26 | #include <qlayout.h> |
26 | #include <qtoolbutton.h> | 27 | #include <qtoolbutton.h> |
27 | #include <qfile.h> | 28 | #include <qfile.h> |
28 | 29 | ||
29 | #include "categorywidget.h" | 30 | #include "categorywidget.h" |
30 | #include "categoryselect.h" | 31 | #include "categoryselect.h" |
31 | 32 | ||
32 | #include <stdlib.h> | 33 | #include <stdlib.h> |
33 | 34 | ||
35 | |||
36 | /*! \enum CategorySelect::SelectorWidget | ||
37 | Chooses a type of widget to use as the selection widget. | ||
38 | |||
39 | \value ComboBox | ||
40 | \value ListView | ||
41 | */ | ||
42 | |||
43 | /*! | ||
44 | \class CategorySelect | ||
45 | \brief The CategorySelect widget allows users to select Categories with a | ||
46 | combobox interface. | ||
47 | |||
48 | CategorySelect is useful to provide a QComboBox of Categories for | ||
49 | filtering (such as in the Contacts table view) or to allow the user | ||
50 | to select multiple Categories. The allCategories variable sets | ||
51 | whether the CategorySelect is in filtering or selecting mode. | ||
52 | |||
53 | In filtering mode, the All and Unfiled categories are added. The | ||
54 | |||
55 | In selecting mode, the CategorySelect may either be a QComboBox and | ||
56 | a QToolButton or a QListView with checkable items depending on the | ||
57 | screen size. | ||
58 | |||
59 | CategorySelect automatically updates itself if Categories has been | ||
60 | changed elsewhere in the environment. | ||
61 | |||
62 | Signals and slots are provided to notify the application of the users | ||
63 | selections. A QToolButton is also provided so that users can edit the | ||
64 | Categories manually. | ||
65 | |||
66 | \ingroup qtopiaemb | ||
67 | */ | ||
68 | |||
69 | |||
34 | static QString categoryEdittingFileName() | 70 | static QString categoryEdittingFileName() |
35 | { | 71 | { |
36 | QString str = getenv("HOME"); | 72 | QString str = getenv("HOME"); |
37 | str +="/.cateditting"; | 73 | str +="/.cateditting"; |
38 | return str; | 74 | return str; |
39 | } | 75 | } |
40 | 76 | ||
41 | class CategoryComboPrivate | 77 | class CategoryComboPrivate |
42 | { | 78 | { |
43 | public: | 79 | public: |
44 | CategoryComboPrivate(QObject *o) | 80 | CategoryComboPrivate(QObject *o) |
45 | : mCat( o ) | 81 | : mCat( o ) |
46 | { | 82 | { |
47 | } | 83 | } |
48 | QArray<int> mAppCats; | 84 | QArray<int> mAppCats; |
49 | QString mStrAppName; | 85 | QString mStrAppName; |
50 | QString mStrVisibleName; | 86 | QString mStrVisibleName; |
51 | Categories mCat; | 87 | Categories mCat; |
52 | }; | 88 | }; |
53 | 89 | ||
54 | class CategorySelectPrivate | 90 | class CategorySelectPrivate |
55 | { | 91 | { |
56 | public: | 92 | public: |
57 | CategorySelectPrivate( const QArray<int> &cats) | 93 | CategorySelectPrivate( const QArray<int> &cats) |
58 | : mRec( cats ), | 94 | : mRec( cats ), |
59 | usingAll( false ) | 95 | usingAll( false ) |
60 | { | 96 | { |
61 | } | 97 | } |
62 | CategorySelectPrivate() | 98 | CategorySelectPrivate() |
63 | { | 99 | { |
64 | } | 100 | } |
65 | QArray<int> mRec; | 101 | QArray<int> mRec; |
66 | bool usingAll; | 102 | bool usingAll; |
67 | QString mVisibleName; | 103 | QString mVisibleName; |
68 | }; | 104 | }; |
69 | 105 | ||
70 | CategoryCombo::CategoryCombo( QWidget *parent, const char *name , int width) | 106 | CategoryCombo::CategoryCombo( QWidget *parent, const char *name , int width) |
71 | : QComboBox( parent, name ) | 107 | : QComboBox( parent, name ) |
72 | { | 108 | { |
73 | d = new CategoryComboPrivate(this); | 109 | d = new CategoryComboPrivate(this); |
74 | if (width) | 110 | if (width) |
75 | setFixedWidth(width); | 111 | setFixedWidth(width); |
76 | } | 112 | } |
77 | 113 | ||
78 | void CategoryCombo::initCombo( const QArray<int> &recCats, | 114 | void CategoryCombo::initCombo( const QArray<int> &recCats, |
79 | const QString &appName ) | 115 | const QString &appName ) |
80 | { | 116 | { |
81 | initCombo( recCats, appName, appName ); | 117 | initCombo( recCats, appName, appName ); |
82 | } | 118 | } |
83 | 119 | ||
84 | void CategoryCombo::initCombo( const QArray<int> &recCats, | 120 | void CategoryCombo::initCombo( const QArray<int> &recCats, |
85 | const QString &appName, | 121 | const QString &appName, |
86 | const QString &visibleName ) | 122 | const QString &visibleName ) |
87 | { | 123 | { |
88 | d->mStrAppName = appName; | 124 | d->mStrAppName = appName; |
89 | d->mStrVisibleName = visibleName; | 125 | d->mStrVisibleName = visibleName; |
90 | clear(); | 126 | clear(); |
91 | QStringList slApp; | 127 | QStringList slApp; |
92 | 128 | ||
93 | QObject::disconnect( this, SIGNAL(activated(int)), | 129 | QObject::disconnect( this, SIGNAL(activated(int)), |
94 | this, SLOT(slotValueChanged(int)) ); | 130 | this, SLOT(slotValueChanged(int)) ); |
95 | 131 | ||
96 | QObject::connect( this, SIGNAL(activated(int)), | 132 | QObject::connect( this, SIGNAL(activated(int)), |
97 | this, SLOT(slotValueChanged(int)) ); | 133 | this, SLOT(slotValueChanged(int)) ); |
98 | bool loadOk = d->mCat.load( categoryFileName() ); | 134 | bool loadOk = d->mCat.load( categoryFileName() ); |
99 | slApp = d->mCat.labels( d->mStrAppName, TRUE, Categories::UnfiledLabel ); | 135 | slApp = d->mCat.labels( d->mStrAppName, TRUE, Categories::UnfiledLabel ); |
100 | 136 | ||
101 | d->mAppCats = d->mCat.ids( d->mStrAppName, slApp); | 137 | d->mAppCats = d->mCat.ids( d->mStrAppName, slApp); |
102 | 138 | ||
103 | int i, | 139 | int i, |
104 | j, | 140 | j, |
105 | saveMe, | 141 | saveMe, |
106 | recCount; | 142 | recCount; |
107 | QStringList::Iterator it; | 143 | QStringList::Iterator it; |
108 | // now add in all the items... | 144 | // now add in all the items... |
109 | recCount = recCats.count(); | 145 | recCount = recCats.count(); |
110 | saveMe = -1; | 146 | saveMe = -1; |
111 | if ( recCount > 1 && loadOk ) { | 147 | if ( recCount > 1 && loadOk ) { |
112 | it = slApp.begin(); | 148 | it = slApp.begin(); |
113 | for ( j = 0; j< (int)(slApp.count()-1); ++it, j++ ) { | 149 | for ( j = 0; j< (int)(slApp.count()-1); ++it, j++ ) { |
114 | // grr... we have to go through and compare... | 150 | // grr... we have to go through and compare... |
115 | if ( j < int(d->mAppCats.size()) ) { | 151 | if ( j < int(d->mAppCats.size()) ) { |
116 | for ( i = 0; i < recCount; i++ ) { | 152 | for ( i = 0; i < recCount; i++ ) { |
117 | if ( recCats[i] == d->mAppCats[j] ) { | 153 | if ( recCats[i] == d->mAppCats[j] ) { |
118 | (*it).append( tr(" (Multi.)") ); | 154 | (*it).append( tr(" (Multi.)") ); |
119 | if ( saveMe < 0 ) | 155 | if ( saveMe < 0 ) |
120 | saveMe = j; | 156 | saveMe = j; |
121 | // no need to continue through the list. | 157 | // no need to continue through the list. |
122 | break; | 158 | break; |
123 | } | 159 | } |
124 | } | 160 | } |
125 | } | 161 | } |
126 | insertItem( *it ); | 162 | insertItem( *it ); |
127 | } | 163 | } |
128 | insertItem( *it ); | 164 | insertItem( *it ); |
129 | } else | 165 | } else |
130 | insertStringList( slApp ); | 166 | insertStringList( slApp ); |
131 | 167 | ||
132 | if ( recCount > 0 && loadOk ) { | 168 | if ( recCount > 0 && loadOk ) { |
133 | for ( i = 0; i < int(d->mAppCats.size()); i++ ) { | 169 | for ( i = 0; i < int(d->mAppCats.size()); i++ ) { |
134 | if ( d->mAppCats[i] == recCats[0] ) { | 170 | if ( d->mAppCats[i] == recCats[0] ) { |
135 | setCurrentItem( i ); | 171 | setCurrentItem( i ); |
136 | break; | 172 | break; |
137 | } | 173 | } |
138 | } | 174 | } |
139 | } else | 175 | } else |
140 | { | 176 | { |
141 | setCurrentItem( slApp.count()-1 ); // unfiled | 177 | setCurrentItem( slApp.count()-1 ); // unfiled |
142 | } | 178 | } |
143 | } | 179 | } |
144 | 180 | ||
145 | // this is a new function by SHARP instead of initCombo() | 181 | // this is a new function by SHARP instead of initCombo() |
146 | QArray<int> CategoryCombo::initComboWithRefind( const QArray<int> &recCats, | 182 | QArray<int> CategoryCombo::initComboWithRefind( const QArray<int> &recCats, |
147 | const QString &appName) | 183 | const QString &appName) |
148 | { | 184 | { |
149 | QString visibleName = appName; | 185 | QString visibleName = appName; |
150 | d->mStrAppName = appName; | 186 | d->mStrAppName = appName; |
151 | d->mStrVisibleName = visibleName; | 187 | d->mStrVisibleName = visibleName; |
152 | clear(); | 188 | clear(); |
153 | QStringList slApp; | 189 | QStringList slApp; |
154 | QArray<int> results; | 190 | QArray<int> results; |
155 | 191 | ||
156 | QObject::disconnect( this, SIGNAL(activated(int)), | 192 | QObject::disconnect( this, SIGNAL(activated(int)), |
157 | this, SLOT(slotValueChanged(int)) ); | 193 | this, SLOT(slotValueChanged(int)) ); |
158 | 194 | ||
159 | QObject::connect( this, SIGNAL(activated(int)), | 195 | QObject::connect( this, SIGNAL(activated(int)), |
160 | this, SLOT(slotValueChanged(int)) ); | 196 | this, SLOT(slotValueChanged(int)) ); |
161 | bool loadOk = d->mCat.load( categoryFileName() ); | 197 | bool loadOk = d->mCat.load( categoryFileName() ); |
162 | slApp = d->mCat.labels( d->mStrAppName, TRUE, Categories::UnfiledLabel ); | 198 | slApp = d->mCat.labels( d->mStrAppName, TRUE, Categories::UnfiledLabel ); |
163 | 199 | ||
164 | d->mAppCats = d->mCat.ids( d->mStrAppName, slApp); | 200 | d->mAppCats = d->mCat.ids( d->mStrAppName, slApp); |
165 | 201 | ||
166 | // addition part | 202 | // addition part |
167 | // make new recCats | 203 | // make new recCats |
168 | if (loadOk){ | 204 | if (loadOk){ |
169 | int i,j; | 205 | int i,j; |
170 | int value; | 206 | int value; |
171 | int rCount = recCats.count(); | 207 | int rCount = recCats.count(); |
172 | int mCount = d->mAppCats.count(); | 208 | int mCount = d->mAppCats.count(); |
173 | 209 | ||
174 | for (i=0; i<rCount; i++){ | 210 | for (i=0; i<rCount; i++){ |
175 | value = 0; | 211 | value = 0; |
176 | for (j=0; j<mCount; j++){ | 212 | for (j=0; j<mCount; j++){ |
177 | if (recCats[i] == d->mAppCats[j]){ | 213 | if (recCats[i] == d->mAppCats[j]){ |
178 | value = recCats[i]; | 214 | value = recCats[i]; |
179 | break; | 215 | break; |
180 | } | 216 | } |
181 | } | 217 | } |
182 | if (value != 0){ | 218 | if (value != 0){ |
183 | int tmp = results.size(); | 219 | int tmp = results.size(); |
184 | results.resize( tmp + 1 ); | 220 | results.resize( tmp + 1 ); |
185 | results[ tmp ] = value; | 221 | results[ tmp ] = value; |
186 | } | 222 | } |
187 | } | 223 | } |
188 | } | 224 | } |
189 | else{ | 225 | else{ |
190 | results = recCats; | 226 | results = recCats; |
191 | } | 227 | } |
192 | // addition end | 228 | // addition end |
193 | 229 | ||
194 | int i, | 230 | int i, |
195 | j, | 231 | j, |
196 | saveMe, | 232 | saveMe, |
197 | recCount; | 233 | recCount; |
198 | QStringList::Iterator it; | 234 | QStringList::Iterator it; |
199 | // now add in all the items... | 235 | // now add in all the items... |
200 | recCount = results.count(); | 236 | recCount = results.count(); |
201 | saveMe = -1; | 237 | saveMe = -1; |
202 | if ( recCount > 1 && loadOk ) { | 238 | if ( recCount > 1 && loadOk ) { |
203 | it = slApp.begin(); | 239 | it = slApp.begin(); |
204 | for ( j = 0; j< (int)(slApp.count()-1); ++it, j++ ) { | 240 | for ( j = 0; j< (int)(slApp.count()-1); ++it, j++ ) { |
205 | 241 | ||
206 | // grr... we have to go through and compare... | 242 | // grr... we have to go through and compare... |
207 | if ( j < int(d->mAppCats.size()) ) { | 243 | if ( j < int(d->mAppCats.size()) ) { |
208 | for ( i = 0; i < recCount; i++ ) { | 244 | for ( i = 0; i < recCount; i++ ) { |
209 | if ( results[i] == d->mAppCats[j] ) { | 245 | if ( results[i] == d->mAppCats[j] ) { |
210 | (*it).append( tr(" (Multi.)") ); | 246 | (*it).append( tr(" (Multi.)") ); |
211 | if ( saveMe < 0 ) | 247 | if ( saveMe < 0 ) |
212 | saveMe = j; | 248 | saveMe = j; |
213 | // no need to continue through the list. | 249 | // no need to continue through the list. |
214 | break; | 250 | break; |
215 | } | 251 | } |
216 | } | 252 | } |
217 | } | 253 | } |
218 | insertItem( *it ); | 254 | insertItem( *it ); |
219 | } | 255 | } |
220 | insertItem( *it ); | 256 | insertItem( *it ); |
221 | } else | 257 | } else |
222 | insertStringList( slApp ); | 258 | insertStringList( slApp ); |
223 | 259 | ||
224 | if ( recCount > 0 && loadOk ) { | 260 | if ( recCount > 0 && loadOk ) { |
225 | for ( i = 0; i < int(d->mAppCats.size()); i++ ) { | 261 | for ( i = 0; i < int(d->mAppCats.size()); i++ ) { |
226 | if ( d->mAppCats[i] == results[0] ) { | 262 | if ( d->mAppCats[i] == results[0] ) { |
227 | setCurrentItem( i ); | 263 | setCurrentItem( i ); |
228 | break; | 264 | break; |
229 | } | 265 | } |
230 | } | 266 | } |
231 | } else | 267 | } else |
232 | { | 268 | { |
233 | setCurrentItem( slApp.count()-1 ); // unfiled | 269 | setCurrentItem( slApp.count()-1 ); // unfiled |
234 | } | 270 | } |
235 | /* | 271 | /* |
236 | QObject::connect( this, SIGNAL(activated(int)), | 272 | QObject::connect( this, SIGNAL(activated(int)), |
237 | this, SLOT(slotValueChanged(int)) ); | 273 | this, SLOT(slotValueChanged(int)) ); |
238 | */ | 274 | */ |
239 | return results; | 275 | return results; |
240 | } | 276 | } |
241 | 277 | ||
242 | 278 | ||
243 | CategoryCombo::~CategoryCombo() | 279 | CategoryCombo::~CategoryCombo() |
244 | { | 280 | { |
245 | delete d; | 281 | delete d; |
246 | } | 282 | } |
247 | 283 | ||
248 | int CategoryCombo::currentCategory() const | 284 | int CategoryCombo::currentCategory() const |
249 | { | 285 | { |
250 | int returnMe; | 286 | int returnMe; |
251 | returnMe = currentItem(); | 287 | returnMe = currentItem(); |
252 | 288 | ||
253 | if ( returnMe == (int)d->mAppCats.count() ) | 289 | if ( returnMe == (int)d->mAppCats.count() ) |
254 | returnMe = -1; | 290 | returnMe = -1; |
255 | else if ( returnMe > (int)d->mAppCats.count() ) // only happen on "All" | 291 | else if ( returnMe > (int)d->mAppCats.count() ) // only happen on "All" |
256 | returnMe = -2; | 292 | returnMe = -2; |
257 | else | 293 | else |
258 | returnMe = d->mAppCats[returnMe]; | 294 | returnMe = d->mAppCats[returnMe]; |
259 | return returnMe; | 295 | return returnMe; |
260 | } | 296 | } |
261 | 297 | ||
262 | void CategoryCombo::setCurrentCategory( int newCatUid ) | 298 | void CategoryCombo::setCurrentCategory( int newCatUid ) |
263 | { | 299 | { |
264 | int i; | 300 | int i; |
265 | for ( i = 0; i < int(d->mAppCats.size()); i++ ) { | 301 | for ( i = 0; i < int(d->mAppCats.size()); i++ ) { |
266 | if ( d->mAppCats[i] == newCatUid ) | 302 | if ( d->mAppCats[i] == newCatUid ) |
267 | setCurrentItem( i ); | 303 | setCurrentItem( i ); |
268 | } | 304 | } |
269 | } | 305 | } |
270 | 306 | ||
271 | void CategoryCombo::setCurrentText( const QString &str ) | 307 | void CategoryCombo::setCurrentText( const QString &str ) |
272 | { | 308 | { |
273 | int i; | 309 | int i; |
274 | int stop; | 310 | int stop; |
275 | stop = count(); | 311 | stop = count(); |
276 | for ( i = 0; i < stop; i++ ) { | 312 | for ( i = 0; i < stop; i++ ) { |
277 | if ( text( i ) == str ) { | 313 | if ( text( i ) == str ) { |
278 | setCurrentItem( i ); | 314 | setCurrentItem( i ); |
279 | break; | 315 | break; |
280 | } | 316 | } |
281 | } | 317 | } |
282 | } | 318 | } |
283 | 319 | ||
284 | void CategoryCombo::slotValueChanged( int ) | 320 | void CategoryCombo::slotValueChanged( int ) |
285 | { | 321 | { |
286 | emit sigCatChanged( currentCategory() ); | 322 | emit sigCatChanged( currentCategory() ); |
287 | } | 323 | } |
288 | 324 | ||
325 | /*! | ||
326 | Constructs a category selector with parent \a parent, name \a name. | ||
327 | |||
328 | This constructor is provided to make Opie compatible with Sharp ROM. | ||
329 | */ | ||
330 | CategorySelect::CategorySelect( QWidget* parent, const char* name ) | ||
331 | : QHBox( parent, name ), | ||
332 | cmbCat( 0 ), | ||
333 | cmdCat( 0 ), | ||
334 | d( 0 ) | ||
335 | { | ||
336 | d = new CategorySelectPrivate(); | ||
337 | init(0); // default argument | ||
338 | } | ||
339 | /*! | ||
340 | Constructs a category selector with parent \a parent, name \a name and | ||
341 | fixed width \a width. | ||
342 | |||
343 | This constructor is provided to make integration with Qt Designer easier. | ||
344 | */ | ||
289 | CategorySelect::CategorySelect( QWidget *parent, const char *name,int width) | 345 | CategorySelect::CategorySelect( QWidget *parent, const char *name,int width) |
290 | : QHBox( parent, name ), | 346 | : QHBox( parent, name ), |
291 | cmbCat( 0 ), | 347 | cmbCat( 0 ), |
292 | cmdCat( 0 ), | 348 | cmdCat( 0 ), |
293 | d( 0 ) | 349 | d( 0 ) |
294 | { | 350 | { |
295 | d = new CategorySelectPrivate(); | 351 | d = new CategorySelectPrivate(); |
296 | init(width); | 352 | init(width); |
297 | } | 353 | } |
298 | 354 | ||
355 | /*! | ||
356 | \overload | ||
357 | This constructor accepts an array \a vl of integers representing Categories. | ||
358 | \a appName is used as the visible name string. | ||
359 | */ | ||
299 | CategorySelect::CategorySelect( const QArray<int> &vl, | 360 | CategorySelect::CategorySelect( const QArray<int> &vl, |
300 | const QString &appName, QWidget *parent, | 361 | const QString &appName, QWidget *parent, |
301 | const char *name ,int width) | 362 | const char *name ,int width) |
302 | : QHBox( parent, name ) | 363 | : QHBox( parent, name ) |
303 | { | 364 | { |
304 | d = new CategorySelectPrivate( vl ); | 365 | d = new CategorySelectPrivate( vl ); |
305 | 366 | ||
306 | init(width); | 367 | init(width); |
307 | 368 | ||
308 | setCategories( vl, appName, appName ); | 369 | setCategories( vl, appName, appName ); |
309 | } | 370 | } |
310 | 371 | ||
372 | /*! | ||
373 | \overload | ||
374 | |||
375 | This constructor accepts an array \a vl of integers representing Categories. | ||
376 | \a visibleName is the string used when the name of this widget is required | ||
377 | to be displayed. \a width is an integer used as the fixed width of the widget. | ||
378 | */ | ||
311 | CategorySelect::CategorySelect( const QArray<int> &vl, | 379 | CategorySelect::CategorySelect( const QArray<int> &vl, |
312 | const QString &appName, | 380 | const QString &appName, |
313 | const QString &visibleName, | 381 | const QString &visibleName, |
314 | QWidget *parent, const char *name , int width) | 382 | QWidget *parent, const char *name , int width) |
315 | : QHBox( parent, name ) | 383 | : QHBox( parent, name ) |
316 | { | 384 | { |
317 | d = new CategorySelectPrivate( vl ); | 385 | d = new CategorySelectPrivate( vl ); |
318 | init(width); | 386 | init(width); |
319 | setCategories( vl, appName, visibleName ); | 387 | setCategories( vl, appName, visibleName ); |
320 | } | 388 | } |
321 | 389 | ||
390 | /*! | ||
391 | Destructs a CategorySelect widget. | ||
392 | */ | ||
322 | CategorySelect::~CategorySelect() | 393 | CategorySelect::~CategorySelect() |
323 | { | 394 | { |
324 | delete d; | 395 | delete d; |
325 | } | 396 | } |
326 | 397 | ||
398 | /*! | ||
399 | This slot is called when the user pushes the button to edit Categories. | ||
400 | */ | ||
327 | void CategorySelect::slotDialog() | 401 | void CategorySelect::slotDialog() |
328 | { | 402 | { |
329 | if (QFile::exists( categoryEdittingFileName() )){ | 403 | if (QFile::exists( categoryEdittingFileName() )){ |
330 | QMessageBox::warning(this,tr("Error"), | 404 | QMessageBox::warning(this,tr("Error"), |
331 | tr("Sorry, another application is\nediting categories.") ); | 405 | tr("Sorry, another application is\nediting categories.") ); |
332 | return; | 406 | return; |
333 | } | 407 | } |
334 | 408 | ||
335 | QFile f( categoryEdittingFileName() ); | 409 | QFile f( categoryEdittingFileName() ); |
336 | if ( !f.open( IO_WriteOnly) ){ | 410 | if ( !f.open( IO_WriteOnly) ){ |
337 | return; | 411 | return; |
338 | } | 412 | } |
339 | 413 | ||
340 | QDialog editDlg( this, 0, TRUE ); | 414 | QDialog editDlg( this, 0, TRUE ); |
341 | editDlg.setCaption( tr("Edit Categories") ); | 415 | editDlg.setCaption( tr("Edit Categories") ); |
342 | QVBoxLayout *vb = new QVBoxLayout( &editDlg ); | 416 | QVBoxLayout *vb = new QVBoxLayout( &editDlg ); |
343 | QScrollView *sv = new QScrollView( &editDlg ); | 417 | QScrollView *sv = new QScrollView( &editDlg ); |
344 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 418 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
345 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); | 419 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); |
346 | vb->addWidget( sv ); | 420 | vb->addWidget( sv ); |
347 | CategoryWidget ce( d->mRec, mStrAppName, d->mVisibleName, &editDlg ); | 421 | CategoryWidget ce( d->mRec, mStrAppName, d->mVisibleName, &editDlg ); |
348 | sv->addChild( &ce ); | 422 | sv->addChild( &ce ); |
349 | editDlg.showMaximized(); | 423 | editDlg.showMaximized(); |
350 | 424 | ||
351 | if ( editDlg.exec() ) { | 425 | if ( editDlg.exec() ) { |
352 | d->mRec = ce.newCategories(); | 426 | d->mRec = ce.newCategories(); |
353 | cmbCat->initCombo( d->mRec, mStrAppName ); | 427 | cmbCat->initCombo( d->mRec, mStrAppName ); |
354 | } | 428 | } |
355 | 429 | ||
356 | f.close(); | 430 | f.close(); |
357 | QFile::remove( categoryEdittingFileName() ); | 431 | QFile::remove( categoryEdittingFileName() ); |
358 | } | 432 | } |
359 | 433 | ||
434 | |||
435 | /*! | ||
436 | This slot is called when a new Category is available. | ||
437 | */ | ||
360 | void CategorySelect::slotNewCat( int newUid ) | 438 | void CategorySelect::slotNewCat( int newUid ) |
361 | { | 439 | { |
362 | if ( newUid != -1 ) { | 440 | if ( newUid != -1 ) { |
363 | bool alreadyIn = false; | 441 | bool alreadyIn = false; |
364 | for ( uint it = 0; it < d->mRec.count(); ++it ) { | 442 | for ( uint it = 0; it < d->mRec.count(); ++it ) { |
365 | if ( d->mRec[it] == newUid ) { | 443 | if ( d->mRec[it] == newUid ) { |
366 | alreadyIn = true; | 444 | alreadyIn = true; |
367 | break; | 445 | break; |
368 | } | 446 | } |
369 | } | 447 | } |
370 | if ( !alreadyIn ) { | 448 | if ( !alreadyIn ) { |
371 | d->mRec.resize( 1 ); | 449 | d->mRec.resize( 1 ); |
372 | d->mRec[ 0 ] = newUid; | 450 | d->mRec[ 0 ] = newUid; |
373 | } | 451 | } |
374 | } else | 452 | } else |
375 | d->mRec.resize(0); // now Unfiled. | 453 | d->mRec.resize(0); // now Unfiled. |
376 | emit signalSelected( currentCategory() ); | 454 | emit signalSelected( currentCategory() ); |
377 | } | 455 | } |
378 | 456 | ||
457 | /*! | ||
458 | \overload | ||
459 | |||
460 | Resets the CategorySelect to select the \a vlCats for | ||
461 | the Categories assoicated with \a appName. | ||
462 | |||
463 | This function should only be called if <i>filtering</i> | ||
464 | on Categories and not selecting and therefore possibly | ||
465 | allowing the user to edit Categories. | ||
466 | */ | ||
379 | QString CategorySelect::setCategories( const QArray<int> &rec, | 467 | QString CategorySelect::setCategories( const QArray<int> &rec, |
380 | const QString &appName ) | 468 | const QString &appName ) |
381 | { | 469 | { |
382 | return setCategories( rec, appName, appName ); | 470 | return setCategories( rec, appName, appName ); |
383 | } | 471 | } |
384 | 472 | ||
473 | /*! | ||
474 | Resets the CategorySelect to select the \a vlCats for | ||
475 | the Categories assoicated with \a appName and displays | ||
476 | the \a visibleName if the user is selecting and therefore editing | ||
477 | new Categories. | ||
478 | */ | ||
385 | QString CategorySelect::setCategories( const QArray<int> &rec, | 479 | QString CategorySelect::setCategories( const QArray<int> &rec, |
386 | const QString &appName, | 480 | const QString &appName, |
387 | const QString &visibleName ) | 481 | const QString &visibleName ) |
388 | { | 482 | { |
389 | d->mVisibleName = visibleName; | 483 | d->mVisibleName = visibleName; |
390 | mStrAppName = appName; | 484 | mStrAppName = appName; |
391 | d->mRec = cmbCat->initComboWithRefind( rec, appName ); | 485 | d->mRec = cmbCat->initComboWithRefind( rec, appName ); |
392 | return Qtopia::Record::idsToString(d->mRec); | 486 | return Qtopia::Record::idsToString(d->mRec); |
393 | } | 487 | } |
394 | 488 | ||
395 | void CategorySelect::init(int width) | 489 | void CategorySelect::init(int width) |
396 | { | 490 | { |
397 | cmbCat = new CategoryCombo( this, 0, width); | 491 | cmbCat = new CategoryCombo( this, 0, width); |
398 | 492 | ||
399 | QObject::connect( cmbCat, SIGNAL(sigCatChanged(int)), | 493 | QObject::connect( cmbCat, SIGNAL(sigCatChanged(int)), |
400 | this, SLOT(slotNewCat(int)) ); | 494 | this, SLOT(slotNewCat(int)) ); |
401 | cmdCat = new QToolButton( this ); | 495 | cmdCat = new QToolButton( this ); |
402 | QObject::connect( cmdCat, SIGNAL(clicked()), this, SLOT(slotDialog()) ); | 496 | QObject::connect( cmdCat, SIGNAL(clicked()), this, SLOT(slotDialog()) ); |
403 | cmdCat->setTextLabel( "...", FALSE ); | 497 | cmdCat->setTextLabel( "...", FALSE ); |
404 | cmdCat->setUsesTextLabel( true ); | 498 | cmdCat->setUsesTextLabel( true ); |
405 | cmdCat->setMaximumSize( cmdCat->sizeHint() ); | 499 | cmdCat->setMaximumSize( cmdCat->sizeHint() ); |
406 | cmdCat->setFocusPolicy( TabFocus ); | 500 | cmdCat->setFocusPolicy( TabFocus ); |
407 | } | 501 | } |
408 | 502 | ||
409 | 503 | /*! | |
504 | Return the value of the currently selected category. | ||
505 | */ | ||
410 | int CategorySelect::currentCategory() const | 506 | int CategorySelect::currentCategory() const |
411 | { | 507 | { |
412 | return cmbCat->currentCategory(); | 508 | return cmbCat->currentCategory(); |
413 | } | 509 | } |
414 | 510 | ||
511 | |||
415 | void CategorySelect::setCurrentCategory( int newCatUid ) | 512 | void CategorySelect::setCurrentCategory( int newCatUid ) |
416 | { | 513 | { |
417 | cmbCat->setCurrentCategory( newCatUid ); | 514 | cmbCat->setCurrentCategory( newCatUid ); |
418 | } | 515 | } |
419 | 516 | ||
420 | 517 | /*! | |
518 | Returns a shallow copy of the categories in this CategorySelect. | ||
519 | */ | ||
421 | const QArray<int> &CategorySelect::currentCategories() const | 520 | const QArray<int> &CategorySelect::currentCategories() const |
422 | { | 521 | { |
423 | return d->mRec; | 522 | return d->mRec; |
424 | } | 523 | } |
425 | 524 | ||
525 | /*! | ||
526 | Hides the edit section of the CategorySelect widget if \a remove is TRUE. | ||
527 | */ | ||
426 | void CategorySelect::setRemoveCategoryEdit( bool remove ) | 528 | void CategorySelect::setRemoveCategoryEdit( bool remove ) |
427 | { | 529 | { |
428 | if ( remove ) { | 530 | if ( remove ) { |
429 | cmdCat->setEnabled( FALSE ); | 531 | cmdCat->setEnabled( FALSE ); |
430 | cmdCat->hide(); | 532 | cmdCat->hide(); |
431 | } else { | 533 | } else { |
432 | cmdCat->setEnabled( TRUE ); | 534 | cmdCat->setEnabled( TRUE ); |
433 | cmdCat->show(); | 535 | cmdCat->show(); |
434 | } | 536 | } |
435 | } | 537 | } |
436 | 538 | ||
539 | /*! | ||
540 | Changes this CategorySelect to the All category if \a all is TRUE. | ||
541 | */ | ||
437 | void CategorySelect::setAllCategories( bool add ) | 542 | void CategorySelect::setAllCategories( bool add ) |
438 | { | 543 | { |
439 | d->usingAll = add; | 544 | d->usingAll = add; |
440 | if ( add ) { | 545 | if ( add ) { |
441 | cmbCat->insertItem( tr( "All" ), cmbCat->count() ); | 546 | cmbCat->insertItem( tr( "All" ), cmbCat->count() ); |
442 | cmbCat->setCurrentItem( cmbCat->count() - 1 ); | 547 | cmbCat->setCurrentItem( cmbCat->count() - 1 ); |
443 | } else | 548 | } else |
444 | cmbCat->removeItem( cmbCat->count() - 1 ); | 549 | cmbCat->removeItem( cmbCat->count() - 1 ); |
445 | } | 550 | } |
446 | 551 | ||
447 | // 01.12.21 added | 552 | // 01.12.21 added |
553 | /*! | ||
554 | Sets the fixed width of the widget to \a width. | ||
555 | */ | ||
448 | void CategorySelect::setFixedWidth(int width) | 556 | void CategorySelect::setFixedWidth(int width) |
449 | { | 557 | { |
450 | width -= cmdCat->width(); | 558 | width -= cmdCat->width(); |
451 | cmbCat->setFixedWidth(width); | 559 | cmbCat->setFixedWidth(width); |
452 | } | 560 | } |
diff --git a/library/categoryselect.h b/library/categoryselect.h index 7a8e491..8ec1941 100644 --- a/library/categoryselect.h +++ b/library/categoryselect.h | |||
@@ -1,113 +1,121 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** Copyright (C) 2003 zecke Introduce Sharp to the glory of default arguments | ||
3 | ** | 4 | ** |
4 | ** This file is part of Qtopia Environment. | 5 | ** This file is part of Qtopia Environment. |
5 | ** | 6 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 7 | ** 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 | 8 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 9 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 10 | ** packaging of this file. |
10 | ** | 11 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 12 | ** 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. | 13 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 14 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 15 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 16 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 17 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 18 | ** not clear to you. |
18 | ** | 19 | ** |
19 | **********************************************************************/ | 20 | **********************************************************************/ |
20 | 21 | ||
21 | #ifndef __CATEGORYCOMBO_H__ | 22 | #ifndef __CATEGORYCOMBO_H__ |
22 | #define __CATEGORYCOMBO_H__ | 23 | #define __CATEGORYCOMBO_H__ |
23 | 24 | ||
24 | #include <qcombobox.h> | 25 | #include <qcombobox.h> |
25 | #include <qhbox.h> | 26 | #include <qhbox.h> |
26 | #include <qstring.h> | 27 | #include <qstring.h> |
27 | #include <qarray.h> | 28 | #include <qarray.h> |
28 | 29 | ||
29 | extern QString categoryFileName(); | 30 | extern QString categoryFileName(); |
30 | 31 | ||
31 | class QToolButton; | 32 | class QToolButton; |
32 | 33 | ||
33 | class CategoryComboPrivate; | 34 | class CategoryComboPrivate; |
34 | class CategoryCombo : public QComboBox | 35 | class CategoryCombo : public QComboBox |
35 | { | 36 | { |
36 | Q_OBJECT | 37 | Q_OBJECT |
37 | 38 | ||
38 | public: | 39 | public: |
39 | CategoryCombo( QWidget *parent, const char* name = 0, int width=0); | 40 | CategoryCombo( QWidget *parent, const char* name = 0, int width = 0); |
40 | 41 | ||
41 | ~CategoryCombo(); | 42 | ~CategoryCombo(); |
42 | 43 | ||
43 | int currentCategory() const; | 44 | int currentCategory() const; |
44 | void setCurrentCategory( int id ); | 45 | void setCurrentCategory( int id ); |
45 | // depreciated. | 46 | // depreciated. |
46 | void initCombo( const QArray<int> &recCats, const QString &appName ); | 47 | void initCombo( const QArray<int> &recCats, const QString &appName ); |
47 | void initCombo( const QArray<int> &recCats, const QString &appName, | 48 | void initCombo( const QArray<int> &recCats, const QString &appName, |
48 | const QString &visibleName /* = appName */ ); | 49 | const QString &visibleName /* = appName */ ); |
49 | 50 | ||
50 | QArray<int> initComboWithRefind( const QArray<int> &recCats, const QString &appName ); | 51 | QArray<int> initComboWithRefind( const QArray<int> &recCats, const QString &appName ); |
51 | 52 | ||
52 | signals: | 53 | signals: |
53 | void sigCatChanged( int newUid ); | 54 | void sigCatChanged( int newUid ); |
54 | 55 | ||
55 | private slots: | 56 | private slots: |
56 | void slotValueChanged( int ); | 57 | void slotValueChanged( int ); |
57 | 58 | ||
58 | private: | 59 | private: |
59 | void setCurrentText( const QString &str ); | 60 | void setCurrentText( const QString &str ); |
60 | CategoryComboPrivate *d; | 61 | CategoryComboPrivate *d; |
61 | }; | 62 | }; |
62 | 63 | ||
63 | #endif | 64 | #endif |
64 | 65 | ||
65 | class CategorySelectPrivate; | 66 | class CategorySelectPrivate; |
66 | class CategorySelect : public QHBox | 67 | class CategorySelect : public QHBox |
67 | { | 68 | { |
68 | Q_OBJECT | 69 | Q_OBJECT |
69 | public: | 70 | public: |
70 | // we need two constructors, the first gets around designer limitations | 71 | // we need two constructors, the first gets around designer limitations |
71 | 72 | ||
72 | CategorySelect( QWidget *parent = 0, const char *name = 0, int width = 0 ); | 73 | /* |
74 | * The Sharp libqpe does have two c'tor and no default argument for int width | ||
75 | * to stay BC cause the Kompany have the original headers and don't compile | ||
76 | * against the normal SDK we need to provide the two symbols as well | ||
77 | * -zecke | ||
78 | */ | ||
79 | CategorySelect( QWidget* parent = 0, const char* name = 0 ); | ||
80 | CategorySelect( QWidget *parent /*= 0 */, const char *name/* = 0*/ , int width /* = 0 if we break bc -zecke */ ); | ||
73 | 81 | ||
74 | CategorySelect( const QArray<int> &vlCats, const QString &appName, | 82 | CategorySelect( const QArray<int> &vlCats, const QString &appName, |
75 | QWidget *parent = 0, const char *name = 0, | 83 | QWidget *parent = 0, const char *name = 0, |
76 | int width = 0); | 84 | int width = 0); |
77 | CategorySelect( const QArray<int> &vlCats, const QString &appName, | 85 | CategorySelect( const QArray<int> &vlCats, const QString &appName, |
78 | const QString &visibleName, QWidget *parent = 0, | 86 | const QString &visibleName, QWidget *parent = 0, |
79 | const char *name = 0 , int width = 0); | 87 | const char *name = 0 , int width = 0); |
80 | 88 | ||
81 | ~CategorySelect(); | 89 | ~CategorySelect(); |
82 | 90 | ||
83 | const QArray<int> ¤tCategories() const; | 91 | const QArray<int> ¤tCategories() const; |
84 | int currentCategory() const; | 92 | int currentCategory() const; |
85 | void setCurrentCategory( int newCatUid ); | 93 | void setCurrentCategory( int newCatUid ); |
86 | // pretty much if you don't set it the constructor, you need to | 94 | // pretty much if you don't set it the constructor, you need to |
87 | // call it here ASAP! | 95 | // call it here ASAP! |
88 | // however this call is depreciated... | 96 | // however this call is depreciated... |
89 | 97 | ||
90 | QString setCategories( const QArray<int> &vlCats, const QString &appName ); | 98 | QString setCategories( const QArray<int> &vlCats, const QString &appName ); |
91 | QString setCategories( const QArray<int> &vlCats, const QString &appName, | 99 | QString setCategories( const QArray<int> &vlCats, const QString &appName, |
92 | const QString &visibleName ); | 100 | const QString &visibleName ); |
93 | // these were added for find dialog. | 101 | // these were added for find dialog. |
94 | void setRemoveCategoryEdit( bool remove ); | 102 | void setRemoveCategoryEdit( bool remove ); |
95 | void setAllCategories( bool add ); | 103 | void setAllCategories( bool add ); |
96 | 104 | ||
97 | void setFixedWidth(int width); | 105 | void setFixedWidth(int width); |
98 | signals: | 106 | signals: |
99 | void signalSelected( int ); | 107 | void signalSelected( int ); |
100 | 108 | ||
101 | private slots: | 109 | private slots: |
102 | void slotDialog(); | 110 | void slotDialog(); |
103 | 111 | ||
104 | public slots: | 112 | public slots: |
105 | void slotNewCat( int id ); | 113 | void slotNewCat( int id ); |
106 | 114 | ||
107 | private: | 115 | private: |
108 | void init(int width=0); | 116 | void init(int width=0); |
109 | QString mStrAppName; | 117 | QString mStrAppName; |
110 | CategoryCombo *cmbCat; | 118 | CategoryCombo *cmbCat; |
111 | QToolButton *cmdCat; | 119 | QToolButton *cmdCat; |
112 | CategorySelectPrivate *d; | 120 | CategorySelectPrivate *d; |
113 | }; | 121 | }; |
diff --git a/library/config.cpp b/library/config.cpp index b47c620..b28c771 100644 --- a/library/config.cpp +++ b/library/config.cpp | |||
@@ -1,570 +1,580 @@ | |||
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 <qdir.h> | 21 | #include <qdir.h> |
22 | #include <qfile.h> | 22 | #include <qfile.h> |
23 | #include <qfileinfo.h> | 23 | #include <qfileinfo.h> |
24 | #include <qmessagebox.h> | 24 | #include <qmessagebox.h> |
25 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | 25 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) |
26 | #include <qtextcodec.h> | 26 | #include <qtextcodec.h> |
27 | #endif | 27 | #endif |
28 | #include <qtextstream.h> | 28 | #include <qtextstream.h> |
29 | 29 | ||
30 | #include <sys/stat.h> | 30 | #include <sys/stat.h> |
31 | #include <sys/types.h> | 31 | #include <sys/types.h> |
32 | #include <fcntl.h> | 32 | #include <fcntl.h> |
33 | #include <stdlib.h> | 33 | #include <stdlib.h> |
34 | #include <unistd.h> | 34 | #include <unistd.h> |
35 | 35 | ||
36 | #define QTOPIA_INTERNAL_LANGLIST | 36 | #define QTOPIA_INTERNAL_LANGLIST |
37 | #include "config.h" | 37 | #include "config.h" |
38 | #include "global.h" | 38 | #include "global.h" |
39 | 39 | ||
40 | 40 | ||
41 | /*! | 41 | /*! |
42 | \internal | 42 | \internal |
43 | */ | 43 | */ |
44 | QString Config::configFilename(const QString& name, Domain d) | 44 | QString Config::configFilename(const QString& name, Domain d) |
45 | { | 45 | { |
46 | switch (d) { | 46 | switch (d) { |
47 | case File: | 47 | case File: |
48 | return name; | 48 | return name; |
49 | case User: { | 49 | case User: { |
50 | QDir dir = (QString(getenv("HOME")) + "/Settings"); | 50 | QDir dir = (QString(getenv("HOME")) + "/Settings"); |
51 | if ( !dir.exists() ) | 51 | if ( !dir.exists() ) |
52 | mkdir(dir.path().local8Bit(),0700); | 52 | mkdir(dir.path().local8Bit(),0700); |
53 | return dir.path() + "/" + name + ".conf"; | 53 | return dir.path() + "/" + name + ".conf"; |
54 | } | 54 | } |
55 | } | 55 | } |
56 | return name; | 56 | return name; |
57 | } | 57 | } |
58 | 58 | ||
59 | /*! | 59 | /*! |
60 | \class Config config.h | 60 | \class Config config.h |
61 | \brief The Config class provides for saving application cofniguration state. | 61 | \brief The Config class provides for saving application cofniguration state. |
62 | 62 | ||
63 | You should keep a Config in existence only while you do not want others | 63 | You should keep a Config in existence only while you do not want others |
64 | to be able to change the state. There is no locking currently, but there | 64 | to be able to change the state. There is no locking currently, but there |
65 | may be in the future. | 65 | may be in the future. |
66 | */ | 66 | */ |
67 | 67 | ||
68 | /*! | 68 | /*! |
69 | \enum Config::ConfigGroup | 69 | \enum Config::ConfigGroup |
70 | \internal | 70 | \internal |
71 | */ | 71 | */ |
72 | 72 | ||
73 | /*! | 73 | /*! |
74 | \enum Config::Domain | 74 | \enum Config::Domain |
75 | 75 | ||
76 | \value File | 76 | \value File |
77 | \value User | 77 | \value User |
78 | 78 | ||
79 | See Config for details. | 79 | See Config for details. |
80 | */ | 80 | */ |
81 | 81 | ||
82 | /*! | 82 | /*! |
83 | Constructs a config that will load or create a configuration with the | 83 | Constructs a config that will load or create a configuration with the |
84 | given \a name in the given \a domain. | 84 | given \a name in the given \a domain. |
85 | 85 | ||
86 | You must call setGroup() before doing much else with the Config. | 86 | You must call setGroup() before doing much else with the Config. |
87 | 87 | ||
88 | In the default Domain, \e User, | 88 | In the default Domain, \e User, |
89 | the configuration is user-specific. \a name should not contain "/" in | 89 | the configuration is user-specific. \a name should not contain "/" in |
90 | this case, and in general should be the name of the C++ class that is | 90 | this case, and in general should be the name of the C++ class that is |
91 | primarily responsible for maintaining the configuration. | 91 | primarily responsible for maintaining the configuration. |
92 | 92 | ||
93 | In the File Domain, \a name is an absolute filename. | 93 | In the File Domain, \a name is an absolute filename. |
94 | */ | 94 | */ |
95 | Config::Config( const QString &name, Domain domain ) | 95 | Config::Config( const QString &name, Domain domain ) |
96 | : filename( configFilename(name,domain) ) | 96 | : filename( configFilename(name,domain) ) |
97 | { | 97 | { |
98 | git = groups.end(); | 98 | git = groups.end(); |
99 | read(); | 99 | read(); |
100 | QStringList l = Global::languageList(); | 100 | QStringList l = Global::languageList(); |
101 | lang = l[0]; | 101 | lang = l[0]; |
102 | glang = l[1]; | 102 | glang = l[1]; |
103 | } | 103 | } |
104 | 104 | ||
105 | 105 | ||
106 | // Sharp ROM compatibility | 106 | // Sharp ROM compatibility |
107 | Config::Config ( const QString &name, bool what ) | 107 | Config::Config ( const QString &name, bool what ) |
108 | : filename( configFilename(name,what ? User : File) ) | 108 | : filename( configFilename(name,what ? User : File) ) |
109 | { | 109 | { |
110 | git = groups.end(); | 110 | git = groups.end(); |
111 | read(); | 111 | read(); |
112 | QStringList l = Global::languageList(); | 112 | QStringList l = Global::languageList(); |
113 | lang = l[0]; | 113 | lang = l[0]; |
114 | glang = l[1]; | 114 | glang = l[1]; |
115 | } | 115 | } |
116 | 116 | ||
117 | /*! | 117 | /*! |
118 | Writes any changes to disk and destroys the in-memory object. | 118 | Writes any changes to disk and destroys the in-memory object. |
119 | */ | 119 | */ |
120 | Config::~Config() | 120 | Config::~Config() |
121 | { | 121 | { |
122 | if ( changed ) | 122 | if ( changed ) |
123 | write(); | 123 | write(); |
124 | } | 124 | } |
125 | 125 | ||
126 | /*! | 126 | /*! |
127 | Returns whether the current group has an entry called \a key. | 127 | Returns whether the current group has an entry called \a key. |
128 | */ | 128 | */ |
129 | bool Config::hasKey( const QString &key ) const | 129 | bool Config::hasKey( const QString &key ) const |
130 | { | 130 | { |
131 | if ( groups.end() == git ) | 131 | if ( groups.end() == git ) |
132 | return FALSE; | 132 | return FALSE; |
133 | ConfigGroup::ConstIterator it = ( *git ).find( key ); | 133 | ConfigGroup::ConstIterator it = ( *git ).find( key ); |
134 | return it != ( *git ).end(); | 134 | return it != ( *git ).end(); |
135 | } | 135 | } |
136 | 136 | ||
137 | /*! | 137 | /*! |
138 | Sets the current group for subsequent reading and writing of | 138 | Sets the current group for subsequent reading and writing of |
139 | entries to \a gname. Grouping allows the application to partition the namespace. | 139 | entries to \a gname. Grouping allows the application to partition the namespace. |
140 | 140 | ||
141 | This function must be called prior to any reading or writing | 141 | This function must be called prior to any reading or writing |
142 | of entries. | 142 | of entries. |
143 | 143 | ||
144 | The \a gname must not be empty. | 144 | The \a gname must not be empty. |
145 | */ | 145 | */ |
146 | void Config::setGroup( const QString &gname ) | 146 | void Config::setGroup( const QString &gname ) |
147 | { | 147 | { |
148 | QMap< QString, ConfigGroup>::Iterator it = groups.find( gname ); | 148 | QMap< QString, ConfigGroup>::Iterator it = groups.find( gname ); |
149 | if ( it == groups.end() ) { | 149 | if ( it == groups.end() ) { |
150 | git = groups.insert( gname, ConfigGroup() ); | 150 | git = groups.insert( gname, ConfigGroup() ); |
151 | changed = TRUE; | 151 | changed = TRUE; |
152 | return; | 152 | return; |
153 | } | 153 | } |
154 | git = it; | 154 | git = it; |
155 | } | 155 | } |
156 | 156 | ||
157 | /*! | 157 | /*! |
158 | Writes a (\a key, \a value) entry to the current group. | 158 | Writes a (\a key, \a value) entry to the current group. |
159 | 159 | ||
160 | \sa readEntry() | 160 | \sa readEntry() |
161 | */ | 161 | */ |
162 | void Config::writeEntry( const QString &key, const char* value ) | 162 | void Config::writeEntry( const QString &key, const char* value ) |
163 | { | 163 | { |
164 | writeEntry(key,QString(value)); | 164 | writeEntry(key,QString(value)); |
165 | } | 165 | } |
166 | 166 | ||
167 | /*! | 167 | /*! |
168 | Writes a (\a key, \a value) entry to the current group. | 168 | Writes a (\a key, \a value) entry to the current group. |
169 | 169 | ||
170 | \sa readEntry() | 170 | \sa readEntry() |
171 | */ | 171 | */ |
172 | void Config::writeEntry( const QString &key, const QString &value ) | 172 | void Config::writeEntry( const QString &key, const QString &value ) |
173 | { | 173 | { |
174 | if ( git == groups.end() ) { | 174 | if ( git == groups.end() ) { |
175 | qWarning( "no group set" ); | 175 | qWarning( "no group set" ); |
176 | return; | 176 | return; |
177 | } | 177 | } |
178 | if ( (*git)[key] != value ) { | 178 | if ( (*git)[key] != value ) { |
179 | ( *git ).insert( key, value ); | 179 | ( *git ).insert( key, value ); |
180 | changed = TRUE; | 180 | changed = TRUE; |
181 | } | 181 | } |
182 | } | 182 | } |
183 | 183 | ||
184 | /* | 184 | /* |
185 | Note that the degree of protection offered by the encryption here is | 185 | Note that the degree of protection offered by the encryption here is |
186 | only sufficient to avoid the most casual observation of the configuration | 186 | only sufficient to avoid the most casual observation of the configuration |
187 | files. People with access to the files can write down the contents and | 187 | files. People with access to the files can write down the contents and |
188 | decrypt it using this source code. | 188 | decrypt it using this source code. |
189 | 189 | ||
190 | Conceivably, and at some burden to the user, this encryption could | 190 | Conceivably, and at some burden to the user, this encryption could |
191 | be improved. | 191 | be improved. |
192 | */ | 192 | */ |
193 | static QString encipher(const QString& plain) | 193 | static QString encipher(const QString& plain) |
194 | { | 194 | { |
195 | // mainly, we make it long | 195 | // mainly, we make it long |
196 | QString cipher; | 196 | QString cipher; |
197 | int mix=28730492; | 197 | int mix=28730492; |
198 | for (int i=0; i<(int)plain.length(); i++) { | 198 | for (int i=0; i<(int)plain.length(); i++) { |
199 | int u = plain[i].unicode(); | 199 | int u = plain[i].unicode(); |
200 | int c = u ^ mix; | 200 | int c = u ^ mix; |
201 | QString x = QString::number(c,36); | 201 | QString x = QString::number(c,36); |
202 | cipher.append(QChar('a'+x.length())); | 202 | cipher.append(QChar('a'+x.length())); |
203 | cipher.append(x); | 203 | cipher.append(x); |
204 | mix *= u; | 204 | mix *= u; |
205 | } | 205 | } |
206 | return cipher; | 206 | return cipher; |
207 | } | 207 | } |
208 | 208 | ||
209 | static QString decipher(const QString& cipher) | 209 | static QString decipher(const QString& cipher) |
210 | { | 210 | { |
211 | QString plain; | 211 | QString plain; |
212 | int mix=28730492; | 212 | int mix=28730492; |
213 | for (int i=0; i<(int)cipher.length();) { | 213 | for (int i=0; i<(int)cipher.length();) { |
214 | int l = cipher[i].unicode()-'a'; | 214 | int l = cipher[i].unicode()-'a'; |
215 | QString x = cipher.mid(i+1,l); i+=l+1; | 215 | QString x = cipher.mid(i+1,l); i+=l+1; |
216 | int u = x.toInt(0,36) ^ mix; | 216 | int u = x.toInt(0,36) ^ mix; |
217 | plain.append(QChar(u)); | 217 | plain.append(QChar(u)); |
218 | mix *= u; | 218 | mix *= u; |
219 | } | 219 | } |
220 | return plain; | 220 | return plain; |
221 | } | 221 | } |
222 | 222 | ||
223 | /*! | 223 | /*! |
224 | Writes an encrypted (\a key, \a value) entry to the current group. | 224 | Writes an encrypted (\a key, \a value) entry to the current group. |
225 | 225 | ||
226 | Note that the degree of protection offered by the encryption is | 226 | Note that the degree of protection offered by the encryption is |
227 | only sufficient to avoid the most casual observation of the configuration | 227 | only sufficient to avoid the most casual observation of the configuration |
228 | files. | 228 | files. |
229 | 229 | ||
230 | \sa readEntry() | 230 | \sa readEntry() |
231 | */ | 231 | */ |
232 | void Config::writeEntryCrypt( const QString &key, const QString &value ) | 232 | void Config::writeEntryCrypt( const QString &key, const QString &value ) |
233 | { | 233 | { |
234 | if ( git == groups.end() ) { | 234 | if ( git == groups.end() ) { |
235 | qWarning( "no group set" ); | 235 | qWarning( "no group set" ); |
236 | return; | 236 | return; |
237 | } | 237 | } |
238 | QString evalue = encipher(value); | 238 | QString evalue = encipher(value); |
239 | if ( (*git)[key] != evalue ) { | 239 | if ( (*git)[key] != evalue ) { |
240 | ( *git ).insert( key, evalue ); | 240 | ( *git ).insert( key, evalue ); |
241 | changed = TRUE; | 241 | changed = TRUE; |
242 | } | 242 | } |
243 | } | 243 | } |
244 | 244 | ||
245 | /*! | 245 | /*! |
246 | Writes a (\a key, \a num) entry to the current group. | 246 | Writes a (\a key, \a num) entry to the current group. |
247 | 247 | ||
248 | \sa readNumEntry() | 248 | \sa readNumEntry() |
249 | */ | 249 | */ |
250 | void Config::writeEntry( const QString &key, int num ) | 250 | void Config::writeEntry( const QString &key, int num ) |
251 | { | 251 | { |
252 | QString s; | 252 | QString s; |
253 | s.setNum( num ); | 253 | s.setNum( num ); |
254 | writeEntry( key, s ); | 254 | writeEntry( key, s ); |
255 | } | 255 | } |
256 | 256 | ||
257 | #ifdef Q_HAS_BOOL_TYPE | 257 | #ifdef Q_HAS_BOOL_TYPE |
258 | /*! | 258 | /*! |
259 | Writes a (\a key, \a b) entry to the current group. This is equivalent | 259 | Writes a (\a key, \a b) entry to the current group. This is equivalent |
260 | to writing a 0 or 1 as an integer entry. | 260 | to writing a 0 or 1 as an integer entry. |
261 | 261 | ||
262 | \sa readBoolEntry() | 262 | \sa readBoolEntry() |
263 | */ | 263 | */ |
264 | void Config::writeEntry( const QString &key, bool b ) | 264 | void Config::writeEntry( const QString &key, bool b ) |
265 | { | 265 | { |
266 | QString s; | 266 | QString s; |
267 | s.setNum( ( int )b ); | 267 | s.setNum( ( int )b ); |
268 | writeEntry( key, s ); | 268 | writeEntry( key, s ); |
269 | } | 269 | } |
270 | #endif | 270 | #endif |
271 | 271 | ||
272 | /*! | 272 | /*! |
273 | Writes a (\a key, \a lst) entry to the current group. The list | 273 | Writes a (\a key, \a lst) entry to the current group. The list |
274 | is separated by \a sep, so the strings must not contain that character. | 274 | is separated by \a sep, so the strings must not contain that character. |
275 | 275 | ||
276 | \sa readListEntry() | 276 | \sa readListEntry() |
277 | */ | 277 | */ |
278 | void Config::writeEntry( const QString &key, const QStringList &lst, const QChar &sep ) | 278 | void Config::writeEntry( const QString &key, const QStringList &lst, const QChar &sep ) |
279 | { | 279 | { |
280 | QString s; | 280 | QString s; |
281 | QStringList::ConstIterator it = lst.begin(); | 281 | QStringList::ConstIterator it = lst.begin(); |
282 | for ( ; it != lst.end(); ++it ) | 282 | for ( ; it != lst.end(); ++it ) |
283 | s += *it + sep; | 283 | s += *it + sep; |
284 | writeEntry( key, s ); | 284 | writeEntry( key, s ); |
285 | } | 285 | } |
286 | 286 | ||
287 | /*! | 287 | /*! |
288 | Removes the \a key entry from the current group. Does nothing if | 288 | Removes the \a key entry from the current group. Does nothing if |
289 | there is no such entry. | 289 | there is no such entry. |
290 | */ | 290 | */ |
291 | 291 | ||
292 | void Config::removeEntry( const QString &key ) | 292 | void Config::removeEntry( const QString &key ) |
293 | { | 293 | { |
294 | if ( git == groups.end() ) { | 294 | if ( git == groups.end() ) { |
295 | qWarning( "no group set" ); | 295 | qWarning( "no group set" ); |
296 | return; | 296 | return; |
297 | } | 297 | } |
298 | ( *git ).remove( key ); | 298 | ( *git ).remove( key ); |
299 | changed = TRUE; | 299 | changed = TRUE; |
300 | } | 300 | } |
301 | 301 | ||
302 | /*! | 302 | /*! |
303 | \fn bool Config::operator == ( const Config & other ) const | 303 | \fn bool Config::operator == ( const Config & other ) const |
304 | 304 | ||
305 | Tests for equality with \a other. Config objects are equal if they refer to the same filename. | 305 | Tests for equality with \a other. Config objects are equal if they refer to the same filename. |
306 | */ | 306 | */ |
307 | 307 | ||
308 | /*! | 308 | /*! |
309 | \fn bool Config::operator != ( const Config & other ) const | 309 | \fn bool Config::operator != ( const Config & other ) const |
310 | 310 | ||
311 | Tests for inequality with \a other. Config objects are equal if they refer to the same filename. | 311 | Tests for inequality with \a other. Config objects are equal if they refer to the same filename. |
312 | */ | 312 | */ |
313 | 313 | ||
314 | /*! | 314 | /*! |
315 | \fn QString Config::readEntry( const QString &key, const QString &deflt ) const | 315 | \fn QString Config::readEntry( const QString &key, const QString &deflt ) const |
316 | 316 | ||
317 | Reads a string entry stored with \a key, defaulting to \a deflt if there is no entry. | 317 | Reads a string entry stored with \a key, defaulting to \a deflt if there is no entry. |
318 | */ | 318 | */ |
319 | 319 | ||
320 | /*! | 320 | /*! |
321 | \internal | 321 | \internal |
322 | For compatibility, non-const version. | 322 | For compatibility, non-const version. |
323 | */ | 323 | */ |
324 | QString Config::readEntry( const QString &key, const QString &deflt ) | 324 | QString Config::readEntry( const QString &key, const QString &deflt ) |
325 | { | 325 | { |
326 | QString res = readEntryDirect( key+"["+lang+"]" ); | 326 | QString res = readEntryDirect( key+"["+lang+"]" ); |
327 | if ( !res.isNull() ) | 327 | if ( !res.isNull() ) |
328 | return res; | 328 | return res; |
329 | if ( !glang.isEmpty() ) { | 329 | if ( !glang.isEmpty() ) { |
330 | res = readEntryDirect( key+"["+glang+"]" ); | 330 | res = readEntryDirect( key+"["+glang+"]" ); |
331 | if ( !res.isNull() ) | 331 | if ( !res.isNull() ) |
332 | return res; | 332 | return res; |
333 | } | 333 | } |
334 | return readEntryDirect( key, deflt ); | 334 | return readEntryDirect( key, deflt ); |
335 | } | 335 | } |
336 | 336 | ||
337 | /*! | 337 | /*! |
338 | \fn QString Config::readEntryCrypt( const QString &key, const QString &deflt ) const | 338 | \fn QString Config::readEntryCrypt( const QString &key, const QString &deflt ) const |
339 | 339 | ||
340 | Reads an encrypted string entry stored with \a key, defaulting to \a deflt if there is no entry. | 340 | Reads an encrypted string entry stored with \a key, defaulting to \a deflt if there is no entry. |
341 | */ | 341 | */ |
342 | 342 | ||
343 | /*! | 343 | /*! |
344 | \internal | 344 | \internal |
345 | For compatibility, non-const version. | 345 | For compatibility, non-const version. |
346 | */ | 346 | */ |
347 | QString Config::readEntryCrypt( const QString &key, const QString &deflt ) | 347 | QString Config::readEntryCrypt( const QString &key, const QString &deflt ) |
348 | { | 348 | { |
349 | QString res = readEntryDirect( key+"["+lang+"]" ); | 349 | QString res = readEntryDirect( key+"["+lang+"]" ); |
350 | if ( res.isNull() && glang.isEmpty() ) | 350 | if ( res.isNull() && glang.isEmpty() ) |
351 | res = readEntryDirect( key+"["+glang+"]" ); | 351 | res = readEntryDirect( key+"["+glang+"]" ); |
352 | if ( res.isNull() ) | 352 | if ( res.isNull() ) |
353 | res = readEntryDirect( key, QString::null ); | 353 | res = readEntryDirect( key, QString::null ); |
354 | if ( res.isNull() ) | 354 | if ( res.isNull() ) |
355 | return deflt; | 355 | return deflt; |
356 | return decipher(res); | 356 | return decipher(res); |
357 | } | 357 | } |
358 | 358 | ||
359 | /*! | 359 | /*! |
360 | \fn QString Config::readEntryDirect( const QString &key, const QString &deflt ) const | 360 | \fn QString Config::readEntryDirect( const QString &key, const QString &deflt ) const |
361 | \internal | 361 | \internal |
362 | */ | 362 | */ |
363 | 363 | ||
364 | /*! | 364 | /*! |
365 | \internal | 365 | \internal |
366 | For compatibility, non-const version. | 366 | For compatibility, non-const version. |
367 | */ | 367 | */ |
368 | QString Config::readEntryDirect( const QString &key, const QString &deflt ) | 368 | QString Config::readEntryDirect( const QString &key, const QString &deflt ) |
369 | { | 369 | { |
370 | if ( git == groups.end() ) { | 370 | if ( git == groups.end() ) { |
371 | //qWarning( "no group set" ); | 371 | //qWarning( "no group set" ); |
372 | return deflt; | 372 | return deflt; |
373 | } | 373 | } |
374 | ConfigGroup::ConstIterator it = ( *git ).find( key ); | 374 | ConfigGroup::ConstIterator it = ( *git ).find( key ); |
375 | if ( it != ( *git ).end() ) | 375 | if ( it != ( *git ).end() ) |
376 | return *it; | 376 | return *it; |
377 | else | 377 | else |
378 | return deflt; | 378 | return deflt; |
379 | } | 379 | } |
380 | 380 | ||
381 | /*! | 381 | /*! |
382 | \fn int Config::readNumEntry( const QString &key, int deflt ) const | 382 | \fn int Config::readNumEntry( const QString &key, int deflt ) const |
383 | Reads a numeric entry stored with \a key, defaulting to \a deflt if there is no entry. | 383 | Reads a numeric entry stored with \a key, defaulting to \a deflt if there is no entry. |
384 | */ | 384 | */ |
385 | 385 | ||
386 | /*! | 386 | /*! |
387 | \internal | 387 | \internal |
388 | For compatibility, non-const version. | 388 | For compatibility, non-const version. |
389 | */ | 389 | */ |
390 | int Config::readNumEntry( const QString &key, int deflt ) | 390 | int Config::readNumEntry( const QString &key, int deflt ) |
391 | { | 391 | { |
392 | QString s = readEntry( key ); | 392 | QString s = readEntry( key ); |
393 | if ( s.isEmpty() ) | 393 | if ( s.isEmpty() ) |
394 | return deflt; | 394 | return deflt; |
395 | else | 395 | else |
396 | return s.toInt(); | 396 | return s.toInt(); |
397 | } | 397 | } |
398 | 398 | ||
399 | /*! | 399 | /*! |
400 | \fn bool Config::readBoolEntry( const QString &key, bool deflt ) const | 400 | \fn bool Config::readBoolEntry( const QString &key, bool deflt ) const |
401 | Reads a bool entry stored with \a key, defaulting to \a deflt if there is no entry. | 401 | Reads a bool entry stored with \a key, defaulting to \a deflt if there is no entry. |
402 | */ | 402 | */ |
403 | 403 | ||
404 | /*! | 404 | /*! |
405 | \internal | 405 | \internal |
406 | For compatibility, non-const version. | 406 | For compatibility, non-const version. |
407 | */ | 407 | */ |
408 | bool Config::readBoolEntry( const QString &key, bool deflt ) | 408 | bool Config::readBoolEntry( const QString &key, bool deflt ) |
409 | { | 409 | { |
410 | QString s = readEntry( key ); | 410 | QString s = readEntry( key ); |
411 | if ( s.isEmpty() ) | 411 | if ( s.isEmpty() ) |
412 | return deflt; | 412 | return deflt; |
413 | else | 413 | else |
414 | return (bool)s.toInt(); | 414 | return (bool)s.toInt(); |
415 | } | 415 | } |
416 | 416 | ||
417 | /*! | 417 | /*! |
418 | \fn QStringList Config::readListEntry( const QString &key, const QChar &sep ) const | 418 | \fn QStringList Config::readListEntry( const QString &key, const QChar &sep ) const |
419 | Reads a string list entry stored with \a key, and with \a sep as the separator. | 419 | Reads a string list entry stored with \a key, and with \a sep as the separator. |
420 | */ | 420 | */ |
421 | 421 | ||
422 | /*! | 422 | /*! |
423 | \internal | 423 | \internal |
424 | For compatibility, non-const version. | 424 | For compatibility, non-const version. |
425 | */ | 425 | */ |
426 | QStringList Config::readListEntry( const QString &key, const QChar &sep ) | 426 | QStringList Config::readListEntry( const QString &key, const QChar &sep ) |
427 | { | 427 | { |
428 | QString s = readEntry( key ); | 428 | QString s = readEntry( key ); |
429 | if ( s.isEmpty() ) | 429 | if ( s.isEmpty() ) |
430 | return QStringList(); | 430 | return QStringList(); |
431 | else | 431 | else |
432 | return QStringList::split( sep, s ); | 432 | return QStringList::split( sep, s ); |
433 | } | 433 | } |
434 | 434 | ||
435 | /*! | 435 | /*! |
436 | Removes all entries from the current group. | 436 | Removes all entries from the current group. |
437 | */ | 437 | */ |
438 | void Config::clearGroup() | 438 | void Config::clearGroup() |
439 | { | 439 | { |
440 | if ( git == groups.end() ) { | 440 | if ( git == groups.end() ) { |
441 | qWarning( "no group set" ); | 441 | qWarning( "no group set" ); |
442 | return; | 442 | return; |
443 | } | 443 | } |
444 | if ( !(*git).isEmpty() ) { | 444 | if ( !(*git).isEmpty() ) { |
445 | ( *git ).clear(); | 445 | ( *git ).clear(); |
446 | changed = TRUE; | 446 | changed = TRUE; |
447 | } | 447 | } |
448 | } | 448 | } |
449 | 449 | ||
450 | /*! | 450 | /*! |
451 | \internal | 451 | \internal |
452 | */ | 452 | */ |
453 | void Config::write( const QString &fn ) | 453 | void Config::write( const QString &fn ) |
454 | { | 454 | { |
455 | QString strNewFile; | 455 | QString strNewFile; |
456 | if ( !fn.isEmpty() ) | 456 | if ( !fn.isEmpty() ) |
457 | filename = fn; | 457 | filename = fn; |
458 | strNewFile = filename + ".new"; | 458 | strNewFile = filename + ".new"; |
459 | 459 | ||
460 | QFile f( strNewFile ); | 460 | QFile f( strNewFile ); |
461 | if ( !f.open( IO_WriteOnly|IO_Raw ) ) { | 461 | if ( !f.open( IO_WriteOnly|IO_Raw ) ) { |
462 | qWarning( "could not open for writing `%s'", strNewFile.latin1() ); | 462 | qWarning( "could not open for writing `%s'", strNewFile.latin1() ); |
463 | git = groups.end(); | 463 | git = groups.end(); |
464 | return; | 464 | return; |
465 | } | 465 | } |
466 | 466 | ||
467 | QString str; | 467 | QString str; |
468 | QCString cstr; | 468 | QCString cstr; |
469 | QMap< QString, ConfigGroup >::Iterator g_it = groups.begin(); | 469 | QMap< QString, ConfigGroup >::Iterator g_it = groups.begin(); |
470 | 470 | ||
471 | for ( ; g_it != groups.end(); ++g_it ) { | 471 | for ( ; g_it != groups.end(); ++g_it ) { |
472 | str += "[" + g_it.key() + "]\n"; | 472 | str += "[" + g_it.key() + "]\n"; |
473 | ConfigGroup::Iterator e_it = ( *g_it ).begin(); | 473 | ConfigGroup::Iterator e_it = ( *g_it ).begin(); |
474 | for ( ; e_it != ( *g_it ).end(); ++e_it ) | 474 | for ( ; e_it != ( *g_it ).end(); ++e_it ) |
475 | str += e_it.key() + " = " + *e_it + "\n"; | 475 | str += e_it.key() + " = " + *e_it + "\n"; |
476 | } | 476 | } |
477 | cstr = str.utf8(); | 477 | cstr = str.utf8(); |
478 | 478 | ||
479 | int total_length; | 479 | int total_length; |
480 | total_length = f.writeBlock( cstr.data(), cstr.length() ); | 480 | total_length = f.writeBlock( cstr.data(), cstr.length() ); |
481 | if ( total_length != int(cstr.length()) ) { | 481 | if ( total_length != int(cstr.length()) ) { |
482 | QMessageBox::critical( 0, QObject::tr("Out of Space"), | 482 | QMessageBox::critical( 0, QObject::tr("Out of Space"), |
483 | QObject::tr("There was a problem creating\nConfiguration Information \nfor this program.\n\nPlease free up some space and\ntry again.") ); | 483 | QObject::tr("There was a problem creating\nConfiguration Information \nfor this program.\n\nPlease free up some space and\ntry again.") ); |
484 | f.close(); | 484 | f.close(); |
485 | QFile::remove( strNewFile ); | 485 | QFile::remove( strNewFile ); |
486 | return; | 486 | return; |
487 | } | 487 | } |
488 | 488 | ||
489 | f.close(); | 489 | f.close(); |
490 | // now rename the file... | 490 | // now rename the file... |
491 | if ( rename( strNewFile, filename ) < 0 ) { | 491 | if ( rename( strNewFile, filename ) < 0 ) { |
492 | qWarning( "problem renaming the file %s to %s", strNewFile.latin1(), | 492 | qWarning( "problem renaming the file %s to %s", strNewFile.latin1(), |
493 | filename.latin1() ); | 493 | filename.latin1() ); |
494 | QFile::remove( strNewFile ); | 494 | QFile::remove( strNewFile ); |
495 | } | 495 | } |
496 | } | 496 | } |
497 | 497 | ||
498 | /*! | 498 | /*! |
499 | Returns whether the Config is in a valid state. | 499 | Returns whether the Config is in a valid state. |
500 | */ | 500 | */ |
501 | bool Config::isValid() const | 501 | bool Config::isValid() const |
502 | { | 502 | { |
503 | return groups.end() != git; | 503 | return groups.end() != git; |
504 | } | 504 | } |
505 | 505 | ||
506 | /*! | 506 | /*! |
507 | \internal | 507 | \internal |
508 | */ | 508 | */ |
509 | void Config::read() | 509 | void Config::read() |
510 | { | 510 | { |
511 | changed = FALSE; | 511 | changed = FALSE; |
512 | 512 | ||
513 | if ( !QFileInfo( filename ).exists() ) { | 513 | if ( !QFileInfo( filename ).exists() ) { |
514 | git = groups.end(); | 514 | git = groups.end(); |
515 | return; | 515 | return; |
516 | } | 516 | } |
517 | 517 | ||
518 | QFile f( filename ); | 518 | QFile f( filename ); |
519 | if ( !f.open( IO_ReadOnly ) ) { | 519 | if ( !f.open( IO_ReadOnly ) ) { |
520 | git = groups.end(); | 520 | git = groups.end(); |
521 | return; | 521 | return; |
522 | } | 522 | } |
523 | 523 | ||
524 | |||
525 | // hack to avoid problems if big files are passed to test | ||
526 | // if they are valid configs ( like passing a mp3 ... ) | ||
527 | // I just hope that there are no conf files > 100000 byte | ||
528 | // not the best solution, find something else later | ||
529 | if ( f.size() > 100000 ) { | ||
530 | return; | ||
531 | } | ||
532 | |||
533 | |||
524 | QTextStream s( &f ); | 534 | QTextStream s( &f ); |
525 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | 535 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) |
526 | // The below should work, but doesn't in Qt 2.3.0 | 536 | // The below should work, but doesn't in Qt 2.3.0 |
527 | s.setCodec( QTextCodec::codecForMib( 106 ) ); | 537 | s.setCodec( QTextCodec::codecForMib( 106 ) ); |
528 | #else | 538 | #else |
529 | s.setEncoding( QTextStream::UnicodeUTF8 ); | 539 | s.setEncoding( QTextStream::UnicodeUTF8 ); |
530 | #endif | 540 | #endif |
531 | 541 | ||
532 | QStringList list = QStringList::split('\n', s.read() ); | 542 | QStringList list = QStringList::split('\n', s.read() ); |
533 | f.close(); | 543 | f.close(); |
534 | 544 | ||
535 | for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { | 545 | for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { |
536 | if ( !parse( *it ) ) { | 546 | if ( !parse( *it ) ) { |
537 | git = groups.end(); | 547 | git = groups.end(); |
538 | return; | 548 | return; |
539 | } | 549 | } |
540 | } | 550 | } |
541 | } | 551 | } |
542 | 552 | ||
543 | /*! | 553 | /*! |
544 | \internal | 554 | \internal |
545 | */ | 555 | */ |
546 | bool Config::parse( const QString &l ) | 556 | bool Config::parse( const QString &l ) |
547 | { | 557 | { |
548 | QString line = l.stripWhiteSpace(); | 558 | QString line = l.stripWhiteSpace(); |
549 | 559 | ||
550 | if ( line [0] == QChar ( '#' )) | 560 | if ( line [0] == QChar ( '#' )) |
551 | return true; // ignore comments | 561 | return true; // ignore comments |
552 | 562 | ||
553 | if ( line[ 0 ] == QChar( '[' ) ) { | 563 | if ( line[ 0 ] == QChar( '[' ) ) { |
554 | QString gname = line; | 564 | QString gname = line; |
555 | gname = gname.remove( 0, 1 ); | 565 | gname = gname.remove( 0, 1 ); |
556 | if ( gname[ (int)gname.length() - 1 ] == QChar( ']' ) ) | 566 | if ( gname[ (int)gname.length() - 1 ] == QChar( ']' ) ) |
557 | gname = gname.remove( gname.length() - 1, 1 ); | 567 | gname = gname.remove( gname.length() - 1, 1 ); |
558 | git = groups.insert( gname, ConfigGroup() ); | 568 | git = groups.insert( gname, ConfigGroup() ); |
559 | } else if ( !line.isEmpty() ) { | 569 | } else if ( !line.isEmpty() ) { |
560 | if ( git == groups.end() ) | 570 | if ( git == groups.end() ) |
561 | return FALSE; | 571 | return FALSE; |
562 | int eq = line.find( '=' ); | 572 | int eq = line.find( '=' ); |
563 | if ( eq == -1 ) | 573 | if ( eq == -1 ) |
564 | return FALSE; | 574 | return FALSE; |
565 | QString key = line.left(eq).stripWhiteSpace(); | 575 | QString key = line.left(eq).stripWhiteSpace(); |
566 | QString value = line.mid(eq+1).stripWhiteSpace(); | 576 | QString value = line.mid(eq+1).stripWhiteSpace(); |
567 | ( *git ).insert( key, value ); | 577 | ( *git ).insert( key, value ); |
568 | } | 578 | } |
569 | return TRUE; | 579 | return TRUE; |
570 | } | 580 | } |
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp index 2f33255..000ff71 100644 --- a/library/datebookdb.cpp +++ b/library/datebookdb.cpp | |||
@@ -1,1136 +1,1136 @@ | |||
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 <qasciidict.h> | 21 | #include <qasciidict.h> |
22 | #include <qfile.h> | 22 | #include <qfile.h> |
23 | #include <qmessagebox.h> | 23 | #include <qmessagebox.h> |
24 | #include <qstring.h> | 24 | #include <qstring.h> |
25 | #include <qtextcodec.h> | 25 | #include <qtextcodec.h> |
26 | #include <qtextstream.h> | 26 | #include <qtextstream.h> |
27 | #include <qtl.h> | 27 | #include <qtl.h> |
28 | 28 | ||
29 | #include <qpe/alarmserver.h> | 29 | #include <qpe/alarmserver.h> |
30 | #include <qpe/global.h> | 30 | #include <qpe/global.h> |
31 | #include "datebookdb.h" | 31 | #include "datebookdb.h" |
32 | #include <qpe/stringutil.h> | 32 | #include <qpe/stringutil.h> |
33 | #include <qpe/timeconversion.h> | 33 | #include <qpe/timeconversion.h> |
34 | 34 | ||
35 | #include <errno.h> | 35 | #include <errno.h> |
36 | #include <stdlib.h> | 36 | #include <stdlib.h> |
37 | 37 | ||
38 | 38 | ||
39 | class DateBookDBPrivate | 39 | class DateBookDBPrivate |
40 | { | 40 | { |
41 | public: | 41 | public: |
42 | bool clean; // indcate whether we need to write to disk... | 42 | bool clean; // indcate whether we need to write to disk... |
43 | }; | 43 | }; |
44 | 44 | ||
45 | 45 | ||
46 | // Helper functions | 46 | // Helper functions |
47 | 47 | ||
48 | static QString dateBookJournalFile() | 48 | static QString dateBookJournalFile() |
49 | { | 49 | { |
50 | QString str = getenv("HOME"); | 50 | QString str = getenv("HOME"); |
51 | return QString( str +"/.caljournal" ); | 51 | return QString( str +"/.caljournal" ); |
52 | } | 52 | } |
53 | 53 | ||
54 | static QString dateBookFilename() | 54 | static QString dateBookFilename() |
55 | { | 55 | { |
56 | return Global::applicationFileName("datebook","datebook.xml"); | 56 | return Global::applicationFileName("datebook","datebook.xml"); |
57 | } | 57 | } |
58 | 58 | ||
59 | /* Calculating the next event of a recuring event is actually | 59 | /* Calculating the next event of a recuring event is actually |
60 | computationally inexpensive, esp. compared to checking each day | 60 | computationally inexpensive, esp. compared to checking each day |
61 | individually. There are bad worse cases for say the 29th of | 61 | individually. There are bad worse cases for say the 29th of |
62 | february or the 31st of some other months. However | 62 | february or the 31st of some other months. However |
63 | these are still bounded */ | 63 | these are still bounded */ |
64 | bool nextOccurance(const Event &e, const QDate &from, QDateTime &next) | 64 | bool nextOccurance(const Event &e, const QDate &from, QDateTime &next) |
65 | { | 65 | { |
66 | // easy checks, first are we too far in the future or too far in the past? | 66 | // easy checks, first are we too far in the future or too far in the past? |
67 | QDate tmpDate; | 67 | QDate tmpDate; |
68 | int freq = e.repeatPattern().frequency; | 68 | int freq = e.repeatPattern().frequency; |
69 | int diff, diff2, a; | 69 | int diff, diff2, a; |
70 | int iday, imonth, iyear; | 70 | int iday, imonth, iyear; |
71 | int dayOfWeek = 0; | 71 | int dayOfWeek = 0; |
72 | int firstOfWeek = 0; | 72 | int firstOfWeek = 0; |
73 | int weekOfMonth; | 73 | int weekOfMonth; |
74 | 74 | ||
75 | 75 | ||
76 | if (e.repeatPattern().hasEndDate && e.repeatPattern().endDate() < from) | 76 | if (e.repeatPattern().hasEndDate && e.repeatPattern().endDate() < from) |
77 | return FALSE; | 77 | return FALSE; |
78 | 78 | ||
79 | if (e.start() >= from) { | 79 | if (e.start() >= from) { |
80 | next = e.start(); | 80 | next = e.start(); |
81 | return TRUE; | 81 | return TRUE; |
82 | } | 82 | } |
83 | 83 | ||
84 | switch ( e.repeatPattern().type ) { | 84 | switch ( e.repeatPattern().type ) { |
85 | case Event::Weekly: | 85 | case Event::Weekly: |
86 | /* weekly is just daily by 7 */ | 86 | /* weekly is just daily by 7 */ |
87 | /* first convert the repeatPattern.Days() mask to the next | 87 | /* first convert the repeatPattern.Days() mask to the next |
88 | day of week valid after from */ | 88 | day of week valid after from */ |
89 | dayOfWeek = from.dayOfWeek(); | 89 | dayOfWeek = from.dayOfWeek(); |
90 | dayOfWeek--; /* we want 0-6, doco for above specs 1-7 */ | 90 | dayOfWeek--; /* we want 0-6, doco for above specs 1-7 */ |
91 | 91 | ||
92 | /* this is done in case freq > 1 and from in week not | 92 | /* this is done in case freq > 1 and from in week not |
93 | for this round */ | 93 | for this round */ |
94 | // firstOfWeek = 0; this is already done at decl. | 94 | // firstOfWeek = 0; this is already done at decl. |
95 | while(!((1 << firstOfWeek) & e.repeatPattern().days)) | 95 | while(!((1 << firstOfWeek) & e.repeatPattern().days)) |
96 | firstOfWeek++; | 96 | firstOfWeek++; |
97 | 97 | ||
98 | /* there is at least one 'day', or there would be no event */ | 98 | /* there is at least one 'day', or there would be no event */ |
99 | while(!((1 << (dayOfWeek % 7)) & e.repeatPattern().days)) | 99 | while(!((1 << (dayOfWeek % 7)) & e.repeatPattern().days)) |
100 | dayOfWeek++; | 100 | dayOfWeek++; |
101 | 101 | ||
102 | dayOfWeek = dayOfWeek % 7; /* the actual day of week */ | 102 | dayOfWeek = dayOfWeek % 7; /* the actual day of week */ |
103 | dayOfWeek -= e.start().date().dayOfWeek() -1; | 103 | dayOfWeek -= e.start().date().dayOfWeek() -1; |
104 | 104 | ||
105 | firstOfWeek = firstOfWeek % 7; /* the actual first of week */ | 105 | firstOfWeek = firstOfWeek % 7; /* the actual first of week */ |
106 | firstOfWeek -= e.start().date().dayOfWeek() -1; | 106 | firstOfWeek -= e.start().date().dayOfWeek() -1; |
107 | 107 | ||
108 | // dayOfWeek may be negitive now | 108 | // dayOfWeek may be negitive now |
109 | // day of week is number of days to add to start day | 109 | // day of week is number of days to add to start day |
110 | 110 | ||
111 | freq *= 7; | 111 | freq *= 7; |
112 | // FALL-THROUGH !!!!! | 112 | // FALL-THROUGH !!!!! |
113 | case Event::Daily: | 113 | case Event::Daily: |
114 | // the add is for the possible fall through from weekly */ | 114 | // the add is for the possible fall through from weekly */ |
115 | if(e.start().date().addDays(dayOfWeek) > from) { | 115 | if(e.start().date().addDays(dayOfWeek) > from) { |
116 | /* first week exception */ | 116 | /* first week exception */ |
117 | next = QDateTime(e.start().date().addDays(dayOfWeek), | 117 | next = QDateTime(e.start().date().addDays(dayOfWeek), |
118 | e.start().time()); | 118 | e.start().time()); |
119 | if ((next.date() > e.repeatPattern().endDate()) | 119 | if ((next.date() > e.repeatPattern().endDate()) |
120 | && e.repeatPattern().hasEndDate) | 120 | && e.repeatPattern().hasEndDate) |
121 | return FALSE; | 121 | return FALSE; |
122 | return TRUE; | 122 | return TRUE; |
123 | } | 123 | } |
124 | /* if from is middle of a non-week */ | 124 | /* if from is middle of a non-week */ |
125 | 125 | ||
126 | diff = e.start().date().addDays(dayOfWeek).daysTo(from) % freq; | 126 | diff = e.start().date().addDays(dayOfWeek).daysTo(from) % freq; |
127 | diff2 = e.start().date().addDays(firstOfWeek).daysTo(from) % freq; | 127 | diff2 = e.start().date().addDays(firstOfWeek).daysTo(from) % freq; |
128 | 128 | ||
129 | if(diff != 0) | 129 | if(diff != 0) |
130 | diff = freq - diff; | 130 | diff = freq - diff; |
131 | if(diff2 != 0) | 131 | if(diff2 != 0) |
132 | diff2 = freq - diff2; | 132 | diff2 = freq - diff2; |
133 | diff = QMIN(diff, diff2); | 133 | diff = QMIN(diff, diff2); |
134 | 134 | ||
135 | next = QDateTime(from.addDays(diff), e.start().time()); | 135 | next = QDateTime(from.addDays(diff), e.start().time()); |
136 | if ( (next.date() > e.repeatPattern().endDate()) | 136 | if ( (next.date() > e.repeatPattern().endDate()) |
137 | && e.repeatPattern().hasEndDate ) | 137 | && e.repeatPattern().hasEndDate ) |
138 | return FALSE; | 138 | return FALSE; |
139 | return TRUE; | 139 | return TRUE; |
140 | case Event::MonthlyDay: | 140 | case Event::MonthlyDay: |
141 | iday = from.day(); | 141 | iday = from.day(); |
142 | iyear = from.year(); | 142 | iyear = from.year(); |
143 | imonth = from.month(); | 143 | imonth = from.month(); |
144 | /* find equivelent day of month for this month */ | 144 | /* find equivelent day of month for this month */ |
145 | dayOfWeek = e.start().date().dayOfWeek(); | 145 | dayOfWeek = e.start().date().dayOfWeek(); |
146 | weekOfMonth = (e.start().date().day() - 1) / 7; | 146 | weekOfMonth = (e.start().date().day() - 1) / 7; |
147 | 147 | ||
148 | /* work out when the next valid month is */ | 148 | /* work out when the next valid month is */ |
149 | a = from.year() - e.start().date().year(); | 149 | a = from.year() - e.start().date().year(); |
150 | a *= 12; | 150 | a *= 12; |
151 | a = a + (imonth - e.start().date().month()); | 151 | a = a + (imonth - e.start().date().month()); |
152 | /* a is e.start()monthsFrom(from); */ | 152 | /* a is e.start()monthsFrom(from); */ |
153 | if(a % freq) { | 153 | if(a % freq) { |
154 | a = freq - (a % freq); | 154 | a = freq - (a % freq); |
155 | imonth = from.month() + a; | 155 | imonth = from.month() + a; |
156 | if (imonth > 12) { | 156 | if (imonth > 12) { |
157 | imonth--; | 157 | imonth--; |
158 | iyear += imonth / 12; | 158 | iyear += imonth / 12; |
159 | imonth = imonth % 12; | 159 | imonth = imonth % 12; |
160 | imonth++; | 160 | imonth++; |
161 | } | 161 | } |
162 | } | 162 | } |
163 | /* imonth is now the first month after or on | 163 | /* imonth is now the first month after or on |
164 | from that matches the frequency given */ | 164 | from that matches the frequency given */ |
165 | 165 | ||
166 | /* find for this month */ | 166 | /* find for this month */ |
167 | tmpDate = QDate( iyear, imonth, 1 ); | 167 | tmpDate = QDate( iyear, imonth, 1 ); |
168 | 168 | ||
169 | iday = 1; | 169 | iday = 1; |
170 | iday += (7 + dayOfWeek - tmpDate.dayOfWeek()) % 7; | 170 | iday += (7 + dayOfWeek - tmpDate.dayOfWeek()) % 7; |
171 | iday += 7 * weekOfMonth; | 171 | iday += 7 * weekOfMonth; |
172 | while (iday > tmpDate.daysInMonth()) { | 172 | while (iday > tmpDate.daysInMonth()) { |
173 | imonth += freq; | 173 | imonth += freq; |
174 | if (imonth > 12) { | 174 | if (imonth > 12) { |
175 | imonth--; | 175 | imonth--; |
176 | iyear += imonth / 12; | 176 | iyear += imonth / 12; |
177 | imonth = imonth % 12; | 177 | imonth = imonth % 12; |
178 | imonth++; | 178 | imonth++; |
179 | } | 179 | } |
180 | tmpDate = QDate( iyear, imonth, 1 ); | 180 | tmpDate = QDate( iyear, imonth, 1 ); |
181 | /* these loops could go for a while, check end case now */ | 181 | /* these loops could go for a while, check end case now */ |
182 | if ((tmpDate > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 182 | if ((tmpDate > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
183 | return FALSE; | 183 | return FALSE; |
184 | iday = 1; | 184 | iday = 1; |
185 | iday += (7 + dayOfWeek - tmpDate.dayOfWeek()) % 7; | 185 | iday += (7 + dayOfWeek - tmpDate.dayOfWeek()) % 7; |
186 | iday += 7 * weekOfMonth; | 186 | iday += 7 * weekOfMonth; |
187 | } | 187 | } |
188 | tmpDate = QDate(iyear, imonth, iday); | 188 | tmpDate = QDate(iyear, imonth, iday); |
189 | 189 | ||
190 | if (tmpDate >= from) { | 190 | if (tmpDate >= from) { |
191 | next = QDateTime(tmpDate, e.start().time()); | 191 | next = QDateTime(tmpDate, e.start().time()); |
192 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 192 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
193 | return FALSE; | 193 | return FALSE; |
194 | return TRUE; | 194 | return TRUE; |
195 | } | 195 | } |
196 | 196 | ||
197 | /* need to find the next iteration */ | 197 | /* need to find the next iteration */ |
198 | do { | 198 | do { |
199 | imonth += freq; | 199 | imonth += freq; |
200 | if (imonth > 12) { | 200 | if (imonth > 12) { |
201 | imonth--; | 201 | imonth--; |
202 | iyear += imonth / 12; | 202 | iyear += imonth / 12; |
203 | imonth = imonth % 12; | 203 | imonth = imonth % 12; |
204 | imonth++; | 204 | imonth++; |
205 | } | 205 | } |
206 | tmpDate = QDate( iyear, imonth, 1 ); | 206 | tmpDate = QDate( iyear, imonth, 1 ); |
207 | /* these loops could go for a while, check end case now */ | 207 | /* these loops could go for a while, check end case now */ |
208 | if ((tmpDate > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 208 | if ((tmpDate > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
209 | return FALSE; | 209 | return FALSE; |
210 | iday = 1; | 210 | iday = 1; |
211 | iday += (7 + dayOfWeek - tmpDate.dayOfWeek()) % 7; | 211 | iday += (7 + dayOfWeek - tmpDate.dayOfWeek()) % 7; |
212 | iday += 7 * weekOfMonth; | 212 | iday += 7 * weekOfMonth; |
213 | } while (iday > tmpDate.daysInMonth()); | 213 | } while (iday > tmpDate.daysInMonth()); |
214 | tmpDate = QDate(iyear, imonth, iday); | 214 | tmpDate = QDate(iyear, imonth, iday); |
215 | 215 | ||
216 | next = QDateTime(tmpDate, e.start().time()); | 216 | next = QDateTime(tmpDate, e.start().time()); |
217 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 217 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
218 | return FALSE; | 218 | return FALSE; |
219 | return TRUE; | 219 | return TRUE; |
220 | case Event::MonthlyDate: | 220 | case Event::MonthlyDate: |
221 | iday = e.start().date().day(); | 221 | iday = e.start().date().day(); |
222 | iyear = from.year(); | 222 | iyear = from.year(); |
223 | imonth = from.month(); | 223 | imonth = from.month(); |
224 | 224 | ||
225 | a = from.year() - e.start().date().year(); | 225 | a = from.year() - e.start().date().year(); |
226 | a *= 12; | 226 | a *= 12; |
227 | a = a + (imonth - e.start().date().month()); | 227 | a = a + (imonth - e.start().date().month()); |
228 | /* a is e.start()monthsFrom(from); */ | 228 | /* a is e.start()monthsFrom(from); */ |
229 | if(a % freq) { | 229 | if(a % freq) { |
230 | a = freq - (a % freq); | 230 | a = freq - (a % freq); |
231 | imonth = from.month() + a; | 231 | imonth = from.month() + a; |
232 | if (imonth > 12) { | 232 | if (imonth > 12) { |
233 | imonth--; | 233 | imonth--; |
234 | iyear += imonth / 12; | 234 | iyear += imonth / 12; |
235 | imonth = imonth % 12; | 235 | imonth = imonth % 12; |
236 | imonth++; | 236 | imonth++; |
237 | } | 237 | } |
238 | } | 238 | } |
239 | /* imonth is now the first month after or on | 239 | /* imonth is now the first month after or on |
240 | from that matches the frequencey given */ | 240 | from that matches the frequencey given */ |
241 | 241 | ||
242 | /* this could go for a while, worse case, 4*12 iterations, probably */ | 242 | /* this could go for a while, worse case, 4*12 iterations, probably */ |
243 | while(!QDate::isValid(iyear, imonth, iday) ) { | 243 | while(!QDate::isValid(iyear, imonth, iday) ) { |
244 | imonth += freq; | 244 | imonth += freq; |
245 | if (imonth > 12) { | 245 | if (imonth > 12) { |
246 | imonth--; | 246 | imonth--; |
247 | iyear += imonth / 12; | 247 | iyear += imonth / 12; |
248 | imonth = imonth % 12; | 248 | imonth = imonth % 12; |
249 | imonth++; | 249 | imonth++; |
250 | } | 250 | } |
251 | /* these loops could go for a while, check end case now */ | 251 | /* these loops could go for a while, check end case now */ |
252 | if ((QDate(iyear, imonth, 1) > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 252 | if ((QDate(iyear, imonth, 1) > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
253 | return FALSE; | 253 | return FALSE; |
254 | } | 254 | } |
255 | 255 | ||
256 | if(QDate(iyear, imonth, iday) >= from) { | 256 | if(QDate(iyear, imonth, iday) >= from) { |
257 | /* done */ | 257 | /* done */ |
258 | next = QDateTime(QDate(iyear, imonth, iday), | 258 | next = QDateTime(QDate(iyear, imonth, iday), |
259 | e.start().time()); | 259 | e.start().time()); |
260 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 260 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
261 | return FALSE; | 261 | return FALSE; |
262 | return TRUE; | 262 | return TRUE; |
263 | } | 263 | } |
264 | 264 | ||
265 | /* ok, need to cycle */ | 265 | /* ok, need to cycle */ |
266 | imonth += freq; | 266 | imonth += freq; |
267 | imonth--; | 267 | imonth--; |
268 | iyear += imonth / 12; | 268 | iyear += imonth / 12; |
269 | imonth = imonth % 12; | 269 | imonth = imonth % 12; |
270 | imonth++; | 270 | imonth++; |
271 | 271 | ||
272 | while(!QDate::isValid(iyear, imonth, iday) ) { | 272 | while(!QDate::isValid(iyear, imonth, iday) ) { |
273 | imonth += freq; | 273 | imonth += freq; |
274 | imonth--; | 274 | imonth--; |
275 | iyear += imonth / 12; | 275 | iyear += imonth / 12; |
276 | imonth = imonth % 12; | 276 | imonth = imonth % 12; |
277 | imonth++; | 277 | imonth++; |
278 | if ((QDate(iyear, imonth, 1) > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 278 | if ((QDate(iyear, imonth, 1) > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
279 | return FALSE; | 279 | return FALSE; |
280 | } | 280 | } |
281 | 281 | ||
282 | next = QDateTime(QDate(iyear, imonth, iday), e.start().time()); | 282 | next = QDateTime(QDate(iyear, imonth, iday), e.start().time()); |
283 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 283 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
284 | return FALSE; | 284 | return FALSE; |
285 | return TRUE; | 285 | return TRUE; |
286 | case Event::Yearly: | 286 | case Event::Yearly: |
287 | iday = e.start().date().day(); | 287 | iday = e.start().date().day(); |
288 | imonth = e.start().date().month(); | 288 | imonth = e.start().date().month(); |
289 | iyear = from.year(); // after all, we want to start in this year | 289 | iyear = from.year(); // after all, we want to start in this year |
290 | 290 | ||
291 | diff = 1; | 291 | diff = 1; |
292 | if(imonth == 2 && iday > 28) { | 292 | if(imonth == 2 && iday > 28) { |
293 | /* leap year, and it counts, calculate actual frequency */ | 293 | /* leap year, and it counts, calculate actual frequency */ |
294 | if(freq % 4) | 294 | if(freq % 4) |
295 | if (freq % 2) | 295 | if (freq % 2) |
296 | freq = freq * 4; | 296 | freq = freq * 4; |
297 | else | 297 | else |
298 | freq = freq * 2; | 298 | freq = freq * 2; |
299 | /* else divides by 4 already, leave freq alone */ | 299 | /* else divides by 4 already, leave freq alone */ |
300 | diff = 4; | 300 | diff = 4; |
301 | } | 301 | } |
302 | 302 | ||
303 | a = from.year() - e.start().date().year(); | 303 | a = from.year() - e.start().date().year(); |
304 | if(a % freq) { | 304 | if(a % freq) { |
305 | a = freq - (a % freq); | 305 | a = freq - (a % freq); |
306 | iyear = iyear + a; | 306 | iyear = iyear + a; |
307 | } | 307 | } |
308 | 308 | ||
309 | /* under the assumption we won't hit one of the special not-leap years twice */ | 309 | /* under the assumption we won't hit one of the special not-leap years twice */ |
310 | if(!QDate::isValid(iyear, imonth, iday)) { | 310 | if(!QDate::isValid(iyear, imonth, iday)) { |
311 | /* must have been skipping by leap years and hit one that wasn't, (e.g. 2100) */ | 311 | /* must have been skipping by leap years and hit one that wasn't, (e.g. 2100) */ |
312 | iyear += freq; | 312 | iyear += freq; |
313 | } | 313 | } |
314 | 314 | ||
315 | if(QDate(iyear, imonth, iday) >= from) { | 315 | if(QDate(iyear, imonth, iday) >= from) { |
316 | next = QDateTime(QDate(iyear, imonth, iday), | 316 | next = QDateTime(QDate(iyear, imonth, iday), |
317 | e.start().time()); | 317 | e.start().time()); |
318 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 318 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
319 | return FALSE; | 319 | return FALSE; |
320 | return TRUE; | 320 | return TRUE; |
321 | } | 321 | } |
322 | /* iyear == from.year(), need to advance again */ | 322 | /* iyear == from.year(), need to advance again */ |
323 | iyear += freq; | 323 | iyear += freq; |
324 | /* under the assumption we won't hit one of the special not-leap years twice */ | 324 | /* under the assumption we won't hit one of the special not-leap years twice */ |
325 | if(!QDate::isValid(iyear, imonth, iday)) { | 325 | if(!QDate::isValid(iyear, imonth, iday)) { |
326 | /* must have been skipping by leap years and hit one that wasn't, (e.g. 2100) */ | 326 | /* must have been skipping by leap years and hit one that wasn't, (e.g. 2100) */ |
327 | iyear += freq; | 327 | iyear += freq; |
328 | } | 328 | } |
329 | 329 | ||
330 | next = QDateTime(QDate(iyear, imonth, iday), e.start().time()); | 330 | next = QDateTime(QDate(iyear, imonth, iday), e.start().time()); |
331 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) | 331 | if ((next.date() > e.repeatPattern().endDate()) && e.repeatPattern().hasEndDate) |
332 | return FALSE; | 332 | return FALSE; |
333 | return TRUE; | 333 | return TRUE; |
334 | default: | 334 | default: |
335 | return FALSE; | 335 | return FALSE; |
336 | } | 336 | } |
337 | } | 337 | } |
338 | 338 | ||
339 | static bool nextAlarm( const Event &ev, QDateTime& when, int& warn) | 339 | static bool nextAlarm( const Event &ev, QDateTime& when, int& warn) |
340 | { | 340 | { |
341 | QDateTime now = QDateTime::currentDateTime(); | 341 | QDateTime now = QDateTime::currentDateTime(); |
342 | if ( ev.hasRepeat() ) { | 342 | if ( ev.hasRepeat() ) { |
343 | QDateTime ralarm; | 343 | QDateTime ralarm; |
344 | if (nextOccurance(ev, now.date(), ralarm)) { | 344 | if (nextOccurance(ev, now.date(), ralarm)) { |
345 | ralarm = ralarm.addSecs(-ev.alarmTime()*60); | 345 | ralarm = ralarm.addSecs(-ev.alarmTime()*60); |
346 | if ( ralarm > now ) { | 346 | if ( ralarm > now ) { |
347 | when = ralarm; | 347 | when = ralarm; |
348 | warn = ev.alarmTime(); | 348 | warn = ev.alarmTime(); |
349 | } else if ( nextOccurance(ev, now.date().addDays(1), ralarm) ) { | 349 | } else if ( nextOccurance(ev, now.date().addDays(1), ralarm) ) { |
350 | ralarm = ralarm.addSecs( -ev.alarmTime()*60 ); | 350 | ralarm = ralarm.addSecs( -ev.alarmTime()*60 ); |
351 | if ( ralarm > now ) { | 351 | if ( ralarm > now ) { |
352 | when = ralarm; | 352 | when = ralarm; |
353 | warn = ev.alarmTime(); | 353 | warn = ev.alarmTime(); |
354 | } | 354 | } |
355 | } | 355 | } |
356 | } | 356 | } |
357 | } else { | 357 | } else { |
358 | warn = ev.alarmTime(); | 358 | warn = ev.alarmTime(); |
359 | when = ev.start().addSecs( -ev.alarmTime()*60 ); | 359 | when = ev.start().addSecs( -ev.alarmTime()*60 ); |
360 | } | 360 | } |
361 | return when > now; | 361 | return when > now; |
362 | } | 362 | } |
363 | 363 | ||
364 | static void addEventAlarm( const Event &ev ) | 364 | static void addEventAlarm( const Event &ev ) |
365 | { | 365 | { |
366 | QDateTime when; | 366 | QDateTime when; |
367 | int warn; | 367 | int warn; |
368 | if ( nextAlarm(ev,when,warn) ) | 368 | if ( nextAlarm(ev,when,warn) ) |
369 | AlarmServer::addAlarm( when, | 369 | AlarmServer::addAlarm( when, |
370 | "QPE/Application/datebook", | 370 | "QPE/Application/datebook", |
371 | "alarm(QDateTime,int)", warn ); | 371 | "alarm(QDateTime,int)", warn ); |
372 | } | 372 | } |
373 | 373 | ||
374 | static void delEventAlarm( const Event &ev ) | 374 | static void delEventAlarm( const Event &ev ) |
375 | { | 375 | { |
376 | QDateTime when; | 376 | QDateTime when; |
377 | int warn; | 377 | int warn; |
378 | if ( nextAlarm(ev,when,warn) ) | 378 | if ( nextAlarm(ev,when,warn) ) |
379 | AlarmServer::deleteAlarm( when, | 379 | AlarmServer::deleteAlarm( when, |
380 | "QPE/Application/datebook", | 380 | "QPE/Application/datebook", |
381 | "alarm(QDateTime,int)", warn ); | 381 | "alarm(QDateTime,int)", warn ); |
382 | } | 382 | } |
383 | 383 | ||
384 | 384 | ||
385 | DateBookDB::DateBookDB() | 385 | DateBookDB::DateBookDB() |
386 | { | 386 | { |
387 | init(); | 387 | init(); |
388 | } | 388 | } |
389 | 389 | ||
390 | DateBookDB::~DateBookDB() | 390 | DateBookDB::~DateBookDB() |
391 | { | 391 | { |
392 | save(); | 392 | save(); |
393 | eventList.clear(); | 393 | eventList.clear(); |
394 | repeatEvents.clear(); | 394 | repeatEvents.clear(); |
395 | } | 395 | } |
396 | 396 | ||
397 | 397 | ||
398 | //#### Why is this code duplicated in getEffectiveEvents ????? | 398 | //#### Why is this code duplicated in getEffectiveEvents ????? |
399 | //#### Addendum. Don't use this function, lets faze it out if we can. | 399 | //#### Addendum. Don't use this function, lets faze it out if we can. |
400 | QValueList<Event> DateBookDB::getEvents( const QDate &from, const QDate &to ) | 400 | QValueList<Event> DateBookDB::getEvents( const QDate &from, const QDate &to ) |
401 | { | 401 | { |
402 | QValueList<Event> tmpList; | 402 | QValueList<Event> tmpList; |
403 | tmpList = getNonRepeatingEvents( from, to ); | 403 | tmpList = getNonRepeatingEvents( from, to ); |
404 | 404 | ||
405 | // check for repeating events... | 405 | // check for repeating events... |
406 | for (QValueList<Event>::ConstIterator it = repeatEvents.begin(); | 406 | for (QValueList<Event>::ConstIterator it = repeatEvents.begin(); |
407 | it != repeatEvents.end(); ++it) { | 407 | it != repeatEvents.end(); ++it) { |
408 | QDate itDate = from; | 408 | QDate itDate = from; |
409 | QDateTime due; | 409 | QDateTime due; |
410 | 410 | ||
411 | /* create a false end date, to short circuit on hard | 411 | /* create a false end date, to short circuit on hard |
412 | MonthlyDay recurences */ | 412 | MonthlyDay recurences */ |
413 | Event dummy_event = *it; | 413 | Event dummy_event = *it; |
414 | Event::RepeatPattern r = dummy_event.repeatPattern(); | 414 | Event::RepeatPattern r = dummy_event.repeatPattern(); |
415 | if ( !r.hasEndDate || r.endDate() > to ) { | 415 | if ( !r.hasEndDate || r.endDate() > to ) { |
416 | r.setEndDate( to ); | 416 | r.setEndDate( to ); |
417 | r.hasEndDate = TRUE; | 417 | r.hasEndDate = TRUE; |
418 | } | 418 | } |
419 | dummy_event.setRepeat(TRUE, r); | 419 | dummy_event.setRepeat(TRUE, r); |
420 | 420 | ||
421 | while (nextOccurance(dummy_event, itDate, due)) { | 421 | while (nextOccurance(dummy_event, itDate, due)) { |
422 | if (due.date() > to) | 422 | if (due.date() > to) |
423 | break; | 423 | break; |
424 | Event newEvent = *it; | 424 | Event newEvent = *it; |
425 | newEvent.setStart(due); | 425 | newEvent.setStart(due); |
426 | newEvent.setEnd(due.addSecs((*it).start().secsTo((*it).end()))); | 426 | newEvent.setEnd(due.addSecs((*it).start().secsTo((*it).end()))); |
427 | 427 | ||
428 | tmpList.append(newEvent); | 428 | tmpList.append(newEvent); |
429 | itDate = due.date().addDays(1); /* the next event */ | 429 | itDate = due.date().addDays(1); /* the next event */ |
430 | } | 430 | } |
431 | } | 431 | } |
432 | qHeapSort(tmpList); | 432 | qHeapSort(tmpList); |
433 | return tmpList; | 433 | return tmpList; |
434 | } | 434 | } |
435 | 435 | ||
436 | QValueList<Event> DateBookDB::getEvents( const QDateTime &start ) | 436 | QValueList<Event> DateBookDB::getEvents( const QDateTime &start ) |
437 | { | 437 | { |
438 | QValueList<Event> day = getEvents(start.date(),start.date()); | 438 | QValueList<Event> day = getEvents(start.date(),start.date()); |
439 | 439 | ||
440 | QValueListConstIterator<Event> it; | 440 | QValueListConstIterator<Event> it; |
441 | QDateTime dtTmp; | 441 | QDateTime dtTmp; |
442 | QValueList<Event> tmpList; | 442 | QValueList<Event> tmpList; |
443 | for (it = day.begin(); it != day.end(); ++it ) { | 443 | for (it = day.begin(); it != day.end(); ++it ) { |
444 | dtTmp = (*it).start(TRUE); | 444 | dtTmp = (*it).start(TRUE); |
445 | if ( dtTmp == start ) | 445 | if ( dtTmp == start ) |
446 | tmpList.append( *it ); | 446 | tmpList.append( *it ); |
447 | } | 447 | } |
448 | return tmpList; | 448 | return tmpList; |
449 | } | 449 | } |
450 | 450 | ||
451 | //#### Why is this code duplicated in getEvents ????? | 451 | //#### Why is this code duplicated in getEvents ????? |
452 | 452 | ||
453 | QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from, | 453 | QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from, |
454 | const QDate &to ) | 454 | const QDate &to ) |
455 | { | 455 | { |
456 | QValueList<EffectiveEvent> tmpList; | 456 | QValueList<EffectiveEvent> tmpList; |
457 | QValueListIterator<Event> it; | 457 | QValueListIterator<Event> it; |
458 | 458 | ||
459 | EffectiveEvent effEv; | 459 | EffectiveEvent effEv; |
460 | QDateTime dtTmp, | 460 | QDateTime dtTmp, |
461 | dtEnd; | 461 | dtEnd; |
462 | 462 | ||
463 | for (it = eventList.begin(); it != eventList.end(); ++it ) { | 463 | for (it = eventList.begin(); it != eventList.end(); ++it ) { |
464 | if (!(*it).isValidUid()) | 464 | if (!(*it).isValidUid()) |
465 | (*it).assignUid(); // FIXME: Hack to restore cleared uids | 465 | (*it).assignUid(); // FIXME: Hack to restore cleared uids |
466 | 466 | ||
467 | dtTmp = (*it).start(TRUE); | 467 | dtTmp = (*it).start(TRUE); |
468 | dtEnd = (*it).end(TRUE); | 468 | dtEnd = (*it).end(TRUE); |
469 | 469 | ||
470 | if ( dtTmp.date() >= from && dtTmp.date() <= to ) { | 470 | if ( dtTmp.date() >= from && dtTmp.date() <= to ) { |
471 | Event tmpEv = *it; | 471 | Event tmpEv = *it; |
472 | effEv.setEvent(tmpEv); | 472 | effEv.setEvent(tmpEv); |
473 | effEv.setDate( dtTmp.date() ); | 473 | effEv.setDate( dtTmp.date() ); |
474 | effEv.setStart( dtTmp.time() ); | 474 | effEv.setStart( dtTmp.time() ); |
475 | if ( dtTmp.date() != dtEnd.date() ) | 475 | if ( dtTmp.date() != dtEnd.date() ) |
476 | effEv.setEnd( QTime(23, 59, 0) ); | 476 | effEv.setEnd( QTime(23, 59, 0) ); |
477 | else | 477 | else |
478 | effEv.setEnd( dtEnd.time() ); | 478 | effEv.setEnd( dtEnd.time() ); |
479 | tmpList.append( effEv ); | 479 | tmpList.append( effEv ); |
480 | } | 480 | } |
481 | // we must also check for end date information... | 481 | // we must also check for end date information... |
482 | if ( dtEnd.date() != dtTmp.date() && dtEnd.date() >= from ) { | 482 | if ( dtEnd.date() != dtTmp.date() && dtEnd.date() >= from ) { |
483 | QDateTime dt = dtTmp.addDays( 1 ); | 483 | QDateTime dt = dtTmp.addDays( 1 ); |
484 | dt.setTime( QTime(0, 0, 0) ); | 484 | dt.setTime( QTime(0, 0, 0) ); |
485 | QDateTime dtStop; | 485 | QDateTime dtStop; |
486 | if ( dtEnd > to ) { | 486 | if ( dtEnd > to ) { |
487 | dtStop = to; | 487 | dtStop = to; |
488 | } else | 488 | } else |
489 | dtStop = dtEnd; | 489 | dtStop = dtEnd; |
490 | while ( dt <= dtStop ) { | 490 | while ( dt <= dtStop ) { |
491 | Event tmpEv = *it; | 491 | Event tmpEv = *it; |
492 | effEv.setEvent( tmpEv ); | 492 | effEv.setEvent( tmpEv ); |
493 | effEv.setDate( dt.date() ); | 493 | effEv.setDate( dt.date() ); |
494 | if ( dt >= from ) { | 494 | if ( dt >= from ) { |
495 | effEv.setStart( QTime(0, 0, 0) ); | 495 | effEv.setStart( QTime(0, 0, 0) ); |
496 | if ( dt.date() == dtEnd.date() ) | 496 | if ( dt.date() == dtEnd.date() ) |
497 | effEv.setEnd( dtEnd.time() ); | 497 | effEv.setEnd( dtEnd.time() ); |
498 | else | 498 | else |
499 | effEv.setEnd( QTime(23, 59, 59) ); | 499 | effEv.setEnd( QTime(23, 59, 59) ); |
500 | tmpList.append( effEv ); | 500 | tmpList.append( effEv ); |
501 | } | 501 | } |
502 | dt = dt.addDays( 1 ); | 502 | dt = dt.addDays( 1 ); |
503 | } | 503 | } |
504 | } | 504 | } |
505 | } | 505 | } |
506 | // check for repeating events... | 506 | // check for repeating events... |
507 | QDateTime repeat; | 507 | QDateTime repeat; |
508 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { | 508 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { |
509 | if (!(*it).isValidUid()) | 509 | if (!(*it).isValidUid()) |
510 | (*it).assignUid(); // FIXME: Hack to restore cleared uids | 510 | (*it).assignUid(); // FIXME: Hack to restore cleared uids |
511 | 511 | ||
512 | /* create a false end date, to short circuit on hard | 512 | /* create a false end date, to short circuit on hard |
513 | MonthlyDay recurences */ | 513 | MonthlyDay recurences */ |
514 | Event dummy_event = *it; | 514 | Event dummy_event = *it; |
515 | int duration = (*it).start().date().daysTo( (*it).end().date() ); | 515 | int duration = (*it).start().date().daysTo( (*it).end().date() ); |
516 | QDate itDate = from.addDays(-duration); | 516 | QDate itDate = from.addDays(-duration); |
517 | 517 | ||
518 | Event::RepeatPattern r = dummy_event.repeatPattern(); | 518 | Event::RepeatPattern r = dummy_event.repeatPattern(); |
519 | if ( !r.hasEndDate || r.endDate() > to ) { | 519 | if ( !r.hasEndDate || r.endDate() > to ) { |
520 | r.setEndDate( to ); | 520 | r.setEndDate( to ); |
521 | r.hasEndDate = TRUE; | 521 | r.hasEndDate = TRUE; |
522 | } | 522 | } |
523 | dummy_event.setRepeat(TRUE, r); | 523 | dummy_event.setRepeat(TRUE, r); |
524 | 524 | ||
525 | while (nextOccurance(dummy_event, itDate, repeat)) { | 525 | while (nextOccurance(dummy_event, itDate, repeat)) { |
526 | if(repeat.date() > to) | 526 | if(repeat.date() > to) |
527 | break; | 527 | break; |
528 | effEv.setDate( repeat.date() ); | 528 | effEv.setDate( repeat.date() ); |
529 | if ((*it).type() == Event::AllDay) { | 529 | if ((*it).type() == Event::AllDay) { |
530 | effEv.setStart( QTime(0,0,0) ); | 530 | effEv.setStart( QTime(0,0,0) ); |
531 | effEv.setEnd( QTime(23,59,59) ); | 531 | effEv.setEnd( QTime(23,59,59) ); |
532 | } else { | 532 | } else { |
533 | /* we only occur by days, not hours/minutes/seconds. Hence | 533 | /* we only occur by days, not hours/minutes/seconds. Hence |
534 | the actual end and start times will be the same for | 534 | the actual end and start times will be the same for |
535 | every repeated event. For multi day events this is | 535 | every repeated event. For multi day events this is |
536 | fixed up later if on wronge day span */ | 536 | fixed up later if on wronge day span */ |
537 | effEv.setStart( (*it).start().time() ); | 537 | effEv.setStart( (*it).start().time() ); |
538 | effEv.setEnd( (*it).end().time() ); | 538 | effEv.setEnd( (*it).end().time() ); |
539 | } | 539 | } |
540 | if ( duration != 0 ) { | 540 | if ( duration != 0 ) { |
541 | // multi-day repeating events | 541 | // multi-day repeating events |
542 | QDate sub_it = QMAX( repeat.date(), from ); | 542 | QDate sub_it = QMAX( repeat.date(), from ); |
543 | QDate startDate = repeat.date(); | 543 | QDate startDate = repeat.date(); |
544 | QDate endDate = startDate.addDays( duration ); | 544 | QDate endDate = startDate.addDays( duration ); |
545 | 545 | ||
546 | while ( sub_it <= endDate && sub_it <= to ) { | 546 | while ( sub_it <= endDate && sub_it <= to ) { |
547 | EffectiveEvent tmpEffEv = effEv; | 547 | EffectiveEvent tmpEffEv = effEv; |
548 | Event tmpEv = *it; | 548 | Event tmpEv = *it; |
549 | tmpEffEv.setEvent( tmpEv ); | 549 | tmpEffEv.setEvent( tmpEv ); |
550 | 550 | ||
551 | if ( sub_it != startDate ) | 551 | if ( sub_it != startDate ) |
552 | tmpEffEv.setStart( QTime(0,0,0) ); | 552 | tmpEffEv.setStart( QTime(0,0,0) ); |
553 | if ( sub_it != endDate ) | 553 | if ( sub_it != endDate ) |
554 | tmpEffEv.setEnd( QTime(23,59,59) ); | 554 | tmpEffEv.setEnd( QTime(23,59,59) ); |
555 | tmpEffEv.setDate( sub_it ); | 555 | tmpEffEv.setDate( sub_it ); |
556 | tmpEffEv.setEffectiveDates( startDate, endDate ); | 556 | tmpEffEv.setEffectiveDates( startDate, endDate ); |
557 | tmpList.append( tmpEffEv ); | 557 | tmpList.append( tmpEffEv ); |
558 | sub_it = sub_it.addDays( 1 ); | 558 | sub_it = sub_it.addDays( 1 ); |
559 | } | 559 | } |
560 | itDate = endDate; | 560 | itDate = endDate; |
561 | } else { | 561 | } else { |
562 | Event tmpEv = *it; | 562 | Event tmpEv = *it; |
563 | effEv.setEvent( tmpEv ); | 563 | effEv.setEvent( tmpEv ); |
564 | tmpList.append( effEv ); | 564 | tmpList.append( effEv ); |
565 | itDate = repeat.date().addDays( 1 ); | 565 | itDate = repeat.date().addDays( 1 ); |
566 | } | 566 | } |
567 | } | 567 | } |
568 | } | 568 | } |
569 | 569 | ||
570 | qHeapSort( tmpList ); | 570 | qHeapSort( tmpList ); |
571 | return tmpList; | 571 | return tmpList; |
572 | } | 572 | } |
573 | 573 | ||
574 | QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDateTime &dt) | 574 | QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDateTime &dt) |
575 | { | 575 | { |
576 | QValueList<EffectiveEvent> day = getEffectiveEvents(dt.date(), dt.date()); | 576 | QValueList<EffectiveEvent> day = getEffectiveEvents(dt.date(), dt.date()); |
577 | QValueListConstIterator<EffectiveEvent> it; | 577 | QValueListConstIterator<EffectiveEvent> it; |
578 | QValueList<EffectiveEvent> tmpList; | 578 | QValueList<EffectiveEvent> tmpList; |
579 | QDateTime dtTmp; | 579 | QDateTime dtTmp; |
580 | 580 | ||
581 | for (it = day.begin(); it != day.end(); ++it ) { | 581 | for (it = day.begin(); it != day.end(); ++it ) { |
582 | dtTmp = QDateTime( (*it).date(), (*it).start() ); | 582 | dtTmp = QDateTime( (*it).date(), (*it).start() ); |
583 | // at the moment we don't have second granularity, be nice about that.. | 583 | // at the moment we don't have second granularity, be nice about that.. |
584 | if ( QABS(dt.secsTo(dtTmp)) < 60 ) | 584 | if ( QABS(dt.secsTo(dtTmp)) < 60 ) |
585 | tmpList.append( *it ); | 585 | tmpList.append( *it ); |
586 | } | 586 | } |
587 | return tmpList; | 587 | return tmpList; |
588 | } | 588 | } |
589 | 589 | ||
590 | void DateBookDB::addEvent( const Event &ev, bool doalarm ) | 590 | void DateBookDB::addEvent( const Event &ev, bool doalarm ) |
591 | { | 591 | { |
592 | // write to the journal... | 592 | // write to the journal... |
593 | saveJournalEntry( ev, ACTION_ADD, -1, false ); | 593 | saveJournalEntry( ev, ACTION_ADD, -1, false ); |
594 | addJFEvent( ev, doalarm ); | 594 | addJFEvent( ev, doalarm ); |
595 | d->clean = false; | 595 | d->clean = false; |
596 | } | 596 | } |
597 | 597 | ||
598 | void DateBookDB::addJFEvent( const Event &ev, bool doalarm ) | 598 | void DateBookDB::addJFEvent( const Event &ev, bool doalarm ) |
599 | { | 599 | { |
600 | if ( doalarm && ev.hasAlarm() ) | 600 | if ( doalarm && ev.hasAlarm() ) |
601 | addEventAlarm( ev ); | 601 | addEventAlarm( ev ); |
602 | if ( ev.hasRepeat() ) | 602 | if ( ev.hasRepeat() ) |
603 | repeatEvents.append( ev ); | 603 | repeatEvents.append( ev ); |
604 | else | 604 | else |
605 | eventList.append( ev ); | 605 | eventList.append( ev ); |
606 | } | 606 | } |
607 | 607 | ||
608 | void DateBookDB::editEvent( const Event &old, Event &editedEv ) | 608 | void DateBookDB::editEvent( const Event &old, Event &editedEv ) |
609 | { | 609 | { |
610 | int oldIndex=0; | 610 | int oldIndex=0; |
611 | bool oldHadRepeat = old.hasRepeat(); | 611 | bool oldHadRepeat = old.hasRepeat(); |
612 | Event orig; | 612 | Event orig; |
613 | 613 | ||
614 | // write to the journal... | 614 | // write to the journal... |
615 | if ( oldHadRepeat ) { | 615 | if ( oldHadRepeat ) { |
616 | if ( origRepeat( old, orig ) ) // should work always... | 616 | if ( origRepeat( old, orig ) ) // should work always... |
617 | oldIndex = repeatEvents.findIndex( orig ); | 617 | oldIndex = repeatEvents.findIndex( orig ); |
618 | } else | 618 | } else |
619 | oldIndex = eventList.findIndex( old ); | 619 | oldIndex = eventList.findIndex( old ); |
620 | saveJournalEntry( editedEv, ACTION_REPLACE, oldIndex, oldHadRepeat ); | 620 | saveJournalEntry( editedEv, ACTION_REPLACE, oldIndex, oldHadRepeat ); |
621 | 621 | ||
622 | // Delete old event | 622 | // Delete old event |
623 | if ( old.hasAlarm() ) | 623 | if ( old.hasAlarm() ) |
624 | delEventAlarm( old ); | 624 | delEventAlarm( old ); |
625 | if ( oldHadRepeat ) { | 625 | if ( oldHadRepeat ) { |
626 | if ( editedEv.hasRepeat() ) { // This mean that origRepeat was run above and | 626 | if ( editedEv.hasRepeat() ) { // This mean that origRepeat was run above and |
627 | // orig is initialized | 627 | // orig is initialized |
628 | // assumption, when someone edits a repeating event, they | 628 | // assumption, when someone edits a repeating event, they |
629 | // want to change them all, maybe not perfect, but it works | 629 | // want to change them all, maybe not perfect, but it works |
630 | // for the moment... | 630 | // for the moment... |
631 | repeatEvents.remove( orig ); | 631 | repeatEvents.remove( orig ); |
632 | } else | 632 | } else |
633 | removeRepeat( old ); | 633 | removeRepeat( old ); |
634 | } else { | 634 | } else { |
635 | QValueList<Event>::Iterator it = eventList.find( old ); | 635 | QValueList<Event>::Iterator it = eventList.find( old ); |
636 | if ( it != eventList.end() ) | 636 | if ( it != eventList.end() ) |
637 | eventList.remove( it ); | 637 | eventList.remove( it ); |
638 | } | 638 | } |
639 | 639 | ||
640 | // Add new event | 640 | // Add new event |
641 | if ( editedEv.hasAlarm() ) | 641 | if ( editedEv.hasAlarm() ) |
642 | addEventAlarm( editedEv ); | 642 | addEventAlarm( editedEv ); |
643 | if ( editedEv.hasRepeat() ) | 643 | if ( editedEv.hasRepeat() ) |
644 | repeatEvents.append( editedEv ); | 644 | repeatEvents.append( editedEv ); |
645 | else | 645 | else |
646 | eventList.append( editedEv ); | 646 | eventList.append( editedEv ); |
647 | 647 | ||
648 | d->clean = false; | 648 | d->clean = false; |
649 | } | 649 | } |
650 | 650 | ||
651 | void DateBookDB::removeEvent( const Event &ev ) | 651 | void DateBookDB::removeEvent( const Event &ev ) |
652 | { | 652 | { |
653 | // write to the journal... | 653 | // write to the journal... |
654 | saveJournalEntry( ev, ACTION_REMOVE, -1, false ); | 654 | saveJournalEntry( ev, ACTION_REMOVE, -1, false ); |
655 | removeJFEvent( ev ); | 655 | removeJFEvent( ev ); |
656 | d->clean = false; | 656 | d->clean = false; |
657 | } | 657 | } |
658 | 658 | ||
659 | void DateBookDB::removeJFEvent( const Event&ev ) | 659 | void DateBookDB::removeJFEvent( const Event&ev ) |
660 | { | 660 | { |
661 | if ( ev.hasAlarm() ) | 661 | if ( ev.hasAlarm() ) |
662 | delEventAlarm( ev ); | 662 | delEventAlarm( ev ); |
663 | if ( ev.hasRepeat() ) { | 663 | if ( ev.hasRepeat() ) { |
664 | removeRepeat( ev ); | 664 | removeRepeat( ev ); |
665 | } else { | 665 | } else { |
666 | QValueList<Event>::Iterator it = eventList.find( ev ); | 666 | QValueList<Event>::Iterator it = eventList.find( ev ); |
667 | if ( it != eventList.end() ) | 667 | if ( it != eventList.end() ) |
668 | eventList.remove( it ); | 668 | eventList.remove( it ); |
669 | } | 669 | } |
670 | } | 670 | } |
671 | 671 | ||
672 | // also handles journaling... | 672 | // also handles journaling... |
673 | void DateBookDB::loadFile( const QString &strFile ) | 673 | void DateBookDB::loadFile( const QString &strFile ) |
674 | { | 674 | { |
675 | 675 | ||
676 | QFile f( strFile ); | 676 | QFile f( strFile ); |
677 | if ( !f.open( IO_ReadOnly ) ) | 677 | if ( !f.open( IO_ReadOnly ) ) |
678 | return; | 678 | return; |
679 | 679 | ||
680 | enum Attribute { | 680 | enum Attribute { |
681 | FDescription = 0, | 681 | FDescription = 0, |
682 | FLocation, | 682 | FLocation, |
683 | FCategories, | 683 | FCategories, |
684 | FUid, | 684 | FUid, |
685 | FType, | 685 | FType, |
686 | FAlarm, | 686 | FAlarm, |
687 | FSound, | 687 | FSound, |
688 | FRType, | 688 | FRType, |
689 | FRWeekdays, | 689 | FRWeekdays, |
690 | FRPosition, | 690 | FRPosition, |
691 | FRFreq, | 691 | FRFreq, |
692 | FRHasEndDate, | 692 | FRHasEndDate, |
693 | FREndDate, | 693 | FREndDate, |
694 | FRStart, | 694 | FRStart, |
695 | FREnd, | 695 | FREnd, |
696 | FNote, | 696 | FNote, |
697 | FCreated, | 697 | FCreated, |
698 | FAction, | 698 | FAction, |
699 | FActionKey, | 699 | FActionKey, |
700 | FJournalOrigHadRepeat | 700 | FJournalOrigHadRepeat |
701 | }; | 701 | }; |
702 | 702 | ||
703 | QAsciiDict<int> dict( 97 ); | 703 | QAsciiDict<int> dict( 97 ); |
704 | dict.setAutoDelete( TRUE ); | 704 | dict.setAutoDelete( TRUE ); |
705 | dict.insert( "description", new int(FDescription) ); | 705 | dict.insert( "description", new int(FDescription) ); |
706 | dict.insert( "location", new int(FLocation) ); | 706 | dict.insert( "location", new int(FLocation) ); |
707 | dict.insert( "categories", new int(FCategories) ); | 707 | dict.insert( "categories", new int(FCategories) ); |
708 | dict.insert( "uid", new int(FUid) ); | 708 | dict.insert( "uid", new int(FUid) ); |
709 | dict.insert( "type", new int(FType) ); | 709 | dict.insert( "type", new int(FType) ); |
710 | dict.insert( "alarm", new int(FAlarm) ); | 710 | dict.insert( "alarm", new int(FAlarm) ); |
711 | dict.insert( "sound", new int(FSound) ); | 711 | dict.insert( "sound", new int(FSound) ); |
712 | dict.insert( "rtype", new int(FRType) ); | 712 | dict.insert( "rtype", new int(FRType) ); |
713 | dict.insert( "rweekdays", new int(FRWeekdays) ); | 713 | dict.insert( "rweekdays", new int(FRWeekdays) ); |
714 | dict.insert( "rposition", new int(FRPosition) ); | 714 | dict.insert( "rposition", new int(FRPosition) ); |
715 | dict.insert( "rfreq", new int(FRFreq) ); | 715 | dict.insert( "rfreq", new int(FRFreq) ); |
716 | dict.insert( "rhasenddate", new int(FRHasEndDate) ); | 716 | dict.insert( "rhasenddate", new int(FRHasEndDate) ); |
717 | dict.insert( "enddt", new int(FREndDate) ); | 717 | dict.insert( "enddt", new int(FREndDate) ); |
718 | dict.insert( "start", new int(FRStart) ); | 718 | dict.insert( "start", new int(FRStart) ); |
719 | dict.insert( "end", new int(FREnd) ); | 719 | dict.insert( "end", new int(FREnd) ); |
720 | dict.insert( "note", new int(FNote) ); | 720 | dict.insert( "note", new int(FNote) ); |
721 | dict.insert( "created", new int(FCreated) ); | 721 | dict.insert( "created", new int(FCreated) ); |
722 | dict.insert( "action", new int(FAction) ); | 722 | dict.insert( "action", new int(FAction) ); |
723 | dict.insert( "actionkey", new int(FActionKey) ); | 723 | dict.insert( "actionkey", new int(FActionKey) ); |
724 | dict.insert( "actionorig", new int (FJournalOrigHadRepeat) ); | 724 | dict.insert( "actionorig", new int (FJournalOrigHadRepeat) ); |
725 | 725 | ||
726 | 726 | ||
727 | QByteArray ba = f.readAll(); | 727 | QByteArray ba = f.readAll(); |
728 | char* dt = ba.data(); | 728 | char* dt = ba.data(); |
729 | int len = ba.size(); | 729 | int len = ba.size(); |
730 | int currentAction, | 730 | int currentAction, |
731 | journalKey, | 731 | journalKey, |
732 | origHadRepeat; // should be bool, but we need tri-state(not being used) | 732 | origHadRepeat; // should be bool, but we need tri-state(not being used) |
733 | 733 | ||
734 | int i = 0; | 734 | int i = 0; |
735 | char *point; | 735 | char *point; |
736 | // hack to get rid of segfaults after reading </DATEBOOK> | 736 | // hack to get rid of segfaults after reading </DATEBOOK> |
737 | while ( (dt+i != 0) && (( point = strstr( dt+i, "<event " ) ) != 0 )) { | 737 | while ( (dt+i != 0) && (( point = strstr( dt+i, "<event " ) ) != 0 )) { |
738 | i = point - dt; | 738 | i = point - dt; |
739 | // if we are reading in events in the general case, | 739 | // if we are reading in events in the general case, |
740 | // we are just adding them, so let the actions represent that... | 740 | // we are just adding them, so let the actions represent that... |
741 | currentAction = ACTION_ADD; | 741 | currentAction = ACTION_ADD; |
742 | journalKey = -1; | 742 | journalKey = -1; |
743 | origHadRepeat = -1; | 743 | origHadRepeat = -1; |
744 | // some temporary variables for dates and times ... | 744 | // some temporary variables for dates and times ... |
745 | //int startY = 0, startM = 0, startD = 0, starth = 0, startm = 0, starts = 0; | 745 | //int startY = 0, startM = 0, startD = 0, starth = 0, startm = 0, starts = 0; |
746 | //int endY = 0, endM = 0, endD = 0, endh = 0, endm = 0, ends = 0; | 746 | //int endY = 0, endM = 0, endD = 0, endh = 0, endm = 0, ends = 0; |
747 | //int enddtY = 0, enddtM = 0, enddtD = 0; | 747 | //int enddtY = 0, enddtM = 0, enddtD = 0; |
748 | 748 | ||
749 | // ... for the alarm settings ... | 749 | // ... for the alarm settings ... |
750 | int alarmTime = -1; Event::SoundTypeChoice alarmSound = Event::Silent; | 750 | int alarmTime = -1; Event::SoundTypeChoice alarmSound = Event::Silent; |
751 | // ... and for the recurrence | 751 | // ... and for the recurrence |
752 | Event::RepeatPattern rp; | 752 | Event::RepeatPattern rp; |
753 | Event e; | 753 | Event e; |
754 | 754 | ||
755 | i += 7; | 755 | i += 7; |
756 | 756 | ||
757 | while( 1 ) { | 757 | while( 1 ) { |
758 | while ( i < len && (dt[i] == ' ' || dt[i] == '\n' || dt[i] == '\r') ) | 758 | while ( i < len && (dt[i] == ' ' || dt[i] == '\n' || dt[i] == '\r') ) |
759 | ++i; | 759 | ++i; |
760 | if ( i >= len-2 || (dt[i] == '/' && dt[i+1] == '>') ) | 760 | if ( i >= len-2 || (dt[i] == '/' && dt[i+1] == '>') ) |
761 | break; | 761 | break; |
762 | // we have another attribute, read it. | 762 | // we have another attribute, read it. |
763 | int j = i; | 763 | int j = i; |
764 | while ( j < len && dt[j] != '=' ) | 764 | while ( j < len && dt[j] != '=' ) |
765 | ++j; | 765 | ++j; |
766 | char *attr = dt+i; | 766 | char *attr = dt+i; |
767 | dt[j] = '\0'; | 767 | dt[j] = '\0'; |
768 | i = ++j; // skip = | 768 | i = ++j; // skip = |
769 | while ( i < len && dt[i] != '"' ) | 769 | while ( i < len && dt[i] != '"' ) |
770 | ++i; | 770 | ++i; |
771 | j = ++i; | 771 | j = ++i; |
772 | bool haveAmp = FALSE; | 772 | bool haveAmp = FALSE; |
773 | bool haveUtf = FALSE; | 773 | bool haveUtf = FALSE; |
774 | while ( j < len && dt[j] != '"' ) { | 774 | while ( j < len && dt[j] != '"' ) { |
775 | if ( dt[j] == '&' ) | 775 | if ( dt[j] == '&' ) |
776 | haveAmp = TRUE; | 776 | haveAmp = TRUE; |
777 | if ( ((unsigned char)dt[j]) > 0x7f ) | 777 | if ( ((unsigned char)dt[j]) > 0x7f ) |
778 | haveUtf = TRUE; | 778 | haveUtf = TRUE; |
779 | ++j; | 779 | ++j; |
780 | } | 780 | } |
781 | 781 | ||
782 | if ( i == j ) { | 782 | if ( i == j ) { |
783 | // leave out empty attributes | 783 | // leave out empty attributes |
784 | i = j + 1; | 784 | i = j + 1; |
785 | continue; | 785 | continue; |
786 | } | 786 | } |
787 | 787 | ||
788 | QString value = haveUtf ? QString::fromUtf8( dt+i, j-i ) | 788 | QString value = haveUtf ? QString::fromUtf8( dt+i, j-i ) |
789 | : QString::fromLatin1( dt+i, j-i ); | 789 | : QString::fromLatin1( dt+i, j-i ); |
790 | if ( haveAmp ) | 790 | if ( haveAmp ) |
791 | value = Qtopia::plainString( value ); | 791 | value = Qtopia::plainString( value ); |
792 | i = j + 1; | 792 | i = j + 1; |
793 | 793 | ||
794 | //qDebug("attr='%s' value='%s'", attr.data(), value.latin1() ); | 794 | //qDebug("attr='%s' value='%s'", attr.data(), value.latin1() ); |
795 | int * find = dict[ attr ]; | 795 | int * find = dict[ attr ]; |
796 | #if 1 | 796 | #if 1 |
797 | if ( !find ) { | 797 | if ( !find ) { |
798 | // custom field | 798 | // custom field |
799 | e.setCustomField(attr, value); | 799 | e.setCustomField(attr, value); |
800 | continue; | 800 | continue; |
801 | } | 801 | } |
802 | 802 | ||
803 | switch( *find ) { | 803 | switch( *find ) { |
804 | case FDescription: | 804 | case FDescription: |
805 | e.setDescription( value ); | 805 | e.setDescription( value ); |
806 | break; | 806 | break; |
807 | case FLocation: | 807 | case FLocation: |
808 | e.setLocation( value ); | 808 | e.setLocation( value ); |
809 | break; | 809 | break; |
810 | case FCategories: | 810 | case FCategories: |
811 | e.setCategories( Qtopia::Record::idsFromString( value ) ); | 811 | e.setCategories( Qtopia::Record::idsFromString( value ) ); |
812 | break; | 812 | break; |
813 | case FUid: | 813 | case FUid: |
814 | e.setUid( value.toInt() ); | 814 | e.setUid( value.toInt() ); |
815 | break; | 815 | break; |
816 | case FType: | 816 | case FType: |
817 | if ( value == "AllDay" ) | 817 | if ( value == "AllDay" ) |
818 | e.setType( Event::AllDay ); | 818 | e.setType( Event::AllDay ); |
819 | else | 819 | else |
820 | e.setType( Event::Normal ); | 820 | e.setType( Event::Normal ); |
821 | break; | 821 | break; |
822 | case FAlarm: | 822 | case FAlarm: |
823 | alarmTime = value.toInt(); | 823 | alarmTime = value.toInt(); |
824 | break; | 824 | break; |
825 | case FSound: | 825 | case FSound: |
826 | alarmSound = value == "loud" ? Event::Loud : Event::Silent; | 826 | alarmSound = value == "loud" ? Event::Loud : Event::Silent; |
827 | break; | 827 | break; |
828 | // recurrence stuff | 828 | // recurrence stuff |
829 | case FRType: | 829 | case FRType: |
830 | if ( value == "Daily" ) | 830 | if ( value == "Daily" ) |
831 | rp.type = Event::Daily; | 831 | rp.type = Event::Daily; |
832 | else if ( value == "Weekly" ) | 832 | else if ( value == "Weekly" ) |
833 | rp.type = Event::Weekly; | 833 | rp.type = Event::Weekly; |
834 | else if ( value == "MonthlyDay" ) | 834 | else if ( value == "MonthlyDay" ) |
835 | rp.type = Event::MonthlyDay; | 835 | rp.type = Event::MonthlyDay; |
836 | else if ( value == "MonthlyDate" ) | 836 | else if ( value == "MonthlyDate" ) |
837 | rp.type = Event::MonthlyDate; | 837 | rp.type = Event::MonthlyDate; |
838 | else if ( value == "Yearly" ) | 838 | else if ( value == "Yearly" ) |
839 | rp.type = Event::Yearly; | 839 | rp.type = Event::Yearly; |
840 | else | 840 | else |
841 | rp.type = Event::NoRepeat; | 841 | rp.type = Event::NoRepeat; |
842 | break; | 842 | break; |
843 | case FRWeekdays: | 843 | case FRWeekdays: |
844 | // QtopiaDesktop 1.6 sometimes creates 'rweekdays="0"' | 844 | // QtopiaDesktop 1.6 sometimes creates 'rweekdays="0"' |
845 | // when it goes mad. This causes datebook to crash.. (se) | 845 | // when it goes mad. This causes datebook to crash.. (se) |
846 | if ( value.toInt() != 0 ) | 846 | if ( value.toInt() != 0 ) |
847 | rp.days = value.toInt(); | 847 | rp.days = value.toInt(); |
848 | else | 848 | else |
849 | rp.days = 1; | 849 | rp.days = 1; |
850 | break; | 850 | break; |
851 | case FRPosition: | 851 | case FRPosition: |
852 | rp.position = value.toInt(); | 852 | rp.position = value.toInt(); |
853 | break; | 853 | break; |
854 | case FRFreq: | 854 | case FRFreq: |
855 | rp.frequency = value.toInt(); | 855 | rp.frequency = value.toInt(); |
856 | break; | 856 | break; |
857 | case FRHasEndDate: | 857 | case FRHasEndDate: |
858 | rp.hasEndDate = value.toInt(); | 858 | rp.hasEndDate = value.toInt(); |
859 | break; | 859 | break; |
860 | case FREndDate: { | 860 | case FREndDate: { |
861 | rp.endDateUTC = (time_t) value.toLong(); | 861 | rp.endDateUTC = (time_t) value.toLong(); |
862 | break; | 862 | break; |
863 | } | 863 | } |
864 | case FRStart: { | 864 | case FRStart: { |
865 | e.setStart( (time_t) value.toLong() ); | 865 | e.setStart( (time_t) value.toLong() ); |
866 | break; | 866 | break; |
867 | } | 867 | } |
868 | case FREnd: { | 868 | case FREnd: { |
869 | e.setEnd( (time_t) value.toLong() ); | 869 | e.setEnd( (time_t) value.toLong() ); |
870 | break; | 870 | break; |
871 | } | 871 | } |
872 | case FNote: | 872 | case FNote: |
873 | e.setNotes( value ); | 873 | e.setNotes( value ); |
874 | break; | 874 | break; |
875 | case FCreated: | 875 | case FCreated: |
876 | rp.createTime = value.toInt(); | 876 | rp.createTime = value.toInt(); |
877 | break; | 877 | break; |
878 | case FAction: | 878 | case FAction: |
879 | currentAction = value.toInt(); | 879 | currentAction = value.toInt(); |
880 | break; | 880 | break; |
881 | case FActionKey: | 881 | case FActionKey: |
882 | journalKey = value.toInt(); | 882 | journalKey = value.toInt(); |
883 | break; | 883 | break; |
884 | case FJournalOrigHadRepeat: | 884 | case FJournalOrigHadRepeat: |
885 | origHadRepeat = value.toInt(); | 885 | origHadRepeat = value.toInt(); |
886 | break; | 886 | break; |
887 | default: | 887 | default: |
888 | qDebug( "huh??? missing enum? -- attr.: %s", attr ); | 888 | qDebug( "huh??? missing enum? -- attr.: %s", attr ); |
889 | break; | 889 | break; |
890 | } | 890 | } |
891 | #endif | 891 | #endif |
892 | } | 892 | } |
893 | // "post processing" (dates, times, alarm, recurrence) | 893 | // "post processing" (dates, times, alarm, recurrence) |
894 | // start date/time | 894 | // start date/time |
895 | e.setRepeat( rp.type != Event::NoRepeat, rp ); | 895 | e.setRepeat( rp.type != Event::NoRepeat, rp ); |
896 | 896 | ||
897 | if ( alarmTime != -1 ) | 897 | if ( alarmTime != -1 ) |
898 | e.setAlarm( TRUE, alarmTime, alarmSound ); | 898 | e.setAlarm( TRUE, alarmTime, alarmSound ); |
899 | 899 | ||
900 | // now do our action based on the current action... | 900 | // now do our action based on the current action... |
901 | switch ( currentAction ) { | 901 | switch ( currentAction ) { |
902 | case ACTION_ADD: | 902 | case ACTION_ADD: |
903 | addJFEvent( e ); | 903 | addJFEvent( e ); |
904 | break; | 904 | break; |
905 | case ACTION_REMOVE: | 905 | case ACTION_REMOVE: |
906 | removeJFEvent( e ); | 906 | removeJFEvent( e ); |
907 | break; | 907 | break; |
908 | case ACTION_REPLACE: | 908 | case ACTION_REPLACE: |
909 | // be a little bit careful, | 909 | // be a little bit careful, |
910 | // in case of a messed up journal... | 910 | // in case of a messed up journal... |
911 | if ( journalKey > -1 && origHadRepeat > -1 ) { | 911 | if ( journalKey > -1 && origHadRepeat > -1 ) { |
912 | // get the original from proper list... | 912 | // get the original from proper list... |
913 | if ( origHadRepeat ) | 913 | if ( origHadRepeat ) |
914 | removeJFEvent( *(repeatEvents.at(journalKey)) ); | 914 | removeJFEvent( *(repeatEvents.at(journalKey)) ); |
915 | else | 915 | else |
916 | removeJFEvent( *(eventList.at(journalKey)) ); | 916 | removeJFEvent( *(eventList.at(journalKey)) ); |
917 | addJFEvent( e ); | 917 | addJFEvent( e ); |
918 | } | 918 | } |
919 | break; | 919 | break; |
920 | default: | 920 | default: |
921 | break; | 921 | break; |
922 | } | 922 | } |
923 | } | 923 | } |
924 | f.close(); | 924 | f.close(); |
925 | } | 925 | } |
926 | 926 | ||
927 | void DateBookDB::init() | 927 | void DateBookDB::init() |
928 | { | 928 | { |
929 | d = new DateBookDBPrivate; | 929 | d = new DateBookDBPrivate; |
930 | d->clean = false; | 930 | d->clean = false; |
931 | QString str = dateBookFilename(); | 931 | QString str = dateBookFilename(); |
932 | if ( str.isNull() ) { | 932 | if ( str.isNull() ) { |
933 | QMessageBox::warning( 0, QObject::tr("Out of Space"), | 933 | QMessageBox::warning( 0, QObject::tr("Out of Space"), |
934 | QObject::tr("Unable to create start up files\n" | 934 | QObject::tr("Unable to create start up files\n" |
935 | "Please free up some space\n" | 935 | "Please free up some space\n" |
936 | "before entering data") ); | 936 | "before entering data") ); |
937 | } | 937 | } |
938 | // continuing along, we call this datebook filename again, | 938 | // continuing along, we call this datebook filename again, |
939 | // because they may fix it before continuing, though it seems | 939 | // because they may fix it before continuing, though it seems |
940 | // pretty unlikely... | 940 | // pretty unlikely... |
941 | loadFile( dateBookFilename() ); | 941 | loadFile( dateBookFilename() ); |
942 | 942 | ||
943 | if ( QFile::exists( dateBookJournalFile() ) ) { | 943 | if ( QFile::exists( dateBookJournalFile() ) ) { |
944 | // merge the journal | 944 | // merge the journal |
945 | loadFile( dateBookJournalFile() ); | 945 | loadFile( dateBookJournalFile() ); |
946 | // save in our changes and remove the journal... | 946 | // save in our changes and remove the journal... |
947 | save(); | 947 | save(); |
948 | } | 948 | } |
949 | d->clean = true; | 949 | d->clean = true; |
950 | } | 950 | } |
951 | 951 | ||
952 | bool DateBookDB::save() | 952 | bool DateBookDB::save() |
953 | { | 953 | { |
954 | if ( d->clean == true ) | 954 | if ( d->clean == true ) |
955 | return true; | 955 | return true; |
956 | QValueListIterator<Event> it; | 956 | QValueListIterator<Event> it; |
957 | int total_written; | 957 | int total_written; |
958 | QString strFileNew = dateBookFilename() + ".new"; | 958 | QString strFileNew = dateBookFilename() + ".new"; |
959 | 959 | ||
960 | QFile f( strFileNew ); | 960 | QFile f( strFileNew ); |
961 | if ( !f.open( IO_WriteOnly|IO_Raw ) ) | 961 | if ( !f.open( IO_WriteOnly|IO_Raw ) ) |
962 | return FALSE; | 962 | return FALSE; |
963 | 963 | ||
964 | QString buf( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ); | 964 | QString buf( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ); |
965 | buf += "<!DOCTYPE DATEBOOK><DATEBOOK>\n"; | 965 | buf += "<!DOCTYPE DATEBOOK><DATEBOOK>\n"; |
966 | buf += "<events>\n"; | 966 | buf += "<events>\n"; |
967 | QCString str = buf.utf8(); | 967 | QCString str = buf.utf8(); |
968 | total_written = f.writeBlock( str.data(), str.length() ); | 968 | total_written = f.writeBlock( str.data(), str.length() ); |
969 | if ( total_written != int(str.length()) ) { | 969 | if ( total_written != int(str.length()) ) { |
970 | f.close(); | 970 | f.close(); |
971 | QFile::remove( strFileNew ); | 971 | QFile::remove( strFileNew ); |
972 | return false; | 972 | return false; |
973 | } | 973 | } |
974 | 974 | ||
975 | for ( it = eventList.begin(); it != eventList.end(); ++it ) { | 975 | for ( it = eventList.begin(); it != eventList.end(); ++it ) { |
976 | buf = "<event"; | 976 | buf = "<event"; |
977 | (*it).save( buf ); | 977 | (*it).save( buf ); |
978 | buf += " />\n"; | 978 | buf += " />\n"; |
979 | str = buf.utf8(); | 979 | str = buf.utf8(); |
980 | total_written = f.writeBlock( str.data(), str.length() ); | 980 | total_written = f.writeBlock( str.data(), str.length() ); |
981 | if ( total_written != int(str.length()) ) { | 981 | if ( total_written != int(str.length()) ) { |
982 | f.close(); | 982 | f.close(); |
983 | QFile::remove( strFileNew ); | 983 | QFile::remove( strFileNew ); |
984 | return false; | 984 | return false; |
985 | } | 985 | } |
986 | } | 986 | } |
987 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { | 987 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { |
988 | buf = "<event"; | 988 | buf = "<event"; |
989 | (*it).save( buf ); | 989 | (*it).save( buf ); |
990 | buf += " />\n"; | 990 | buf += " />\n"; |
991 | str = buf.utf8(); | 991 | str = buf.utf8(); |
992 | total_written = f.writeBlock( str.data(), str.length() ); | 992 | total_written = f.writeBlock( str.data(), str.length() ); |
993 | if ( total_written != int(str.length()) ) { | 993 | if ( total_written != int(str.length()) ) { |
994 | f.close(); | 994 | f.close(); |
995 | QFile::remove( strFileNew ); | 995 | QFile::remove( strFileNew ); |
996 | return false; | 996 | return false; |
997 | } | 997 | } |
998 | } | 998 | } |
999 | buf = "</events>\n</DATEBOOK>\n"; | 999 | buf = "</events>\n</DATEBOOK>\n"; |
1000 | str = buf.utf8(); | 1000 | str = buf.utf8(); |
1001 | total_written = f.writeBlock( str.data(), str.length() ); | 1001 | total_written = f.writeBlock( str.data(), str.length() ); |
1002 | if ( total_written != int(str.length()) ) { | 1002 | if ( total_written != int(str.length()) ) { |
1003 | f.close(); | 1003 | f.close(); |
1004 | QFile::remove( strFileNew ); | 1004 | QFile::remove( strFileNew ); |
1005 | return false; | 1005 | return false; |
1006 | } | 1006 | } |
1007 | f.close(); | 1007 | f.close(); |
1008 | 1008 | ||
1009 | // now rename... I like to use the systemcall | 1009 | // now rename... I like to use the systemcall |
1010 | if ( ::rename( strFileNew, dateBookFilename() ) < 0 ) { | 1010 | if ( ::rename( strFileNew, dateBookFilename() ) < 0 ) { |
1011 | qWarning( "problem renaming file %s to %s errno %d", | 1011 | qWarning( "problem renaming file %s to %s errno %d", |
1012 | strFileNew.latin1(), dateBookFilename().latin1(), errno ); | 1012 | strFileNew.latin1(), dateBookFilename().latin1(), errno ); |
1013 | // remove the file, otherwise it will just stick around... | 1013 | // remove the file, otherwise it will just stick around... |
1014 | QFile::remove( strFileNew ); | 1014 | QFile::remove( strFileNew ); |
1015 | } | 1015 | } |
1016 | 1016 | ||
1017 | // may as well remove the journal file... | 1017 | // may as well remove the journal file... |
1018 | QFile::remove( dateBookJournalFile() ); | 1018 | QFile::remove( dateBookJournalFile() ); |
1019 | d->clean = true; | 1019 | d->clean = true; |
1020 | return true; | 1020 | return true; |
1021 | } | 1021 | } |
1022 | 1022 | ||
1023 | void DateBookDB::reload() | 1023 | void DateBookDB::reload() |
1024 | { | 1024 | { |
1025 | QValueList<Event>::Iterator it = eventList.begin(); | 1025 | QValueList<Event>::Iterator it = eventList.begin(); |
1026 | for ( ; it != eventList.end(); ++it ) { | 1026 | for ( ; it != eventList.end(); ++it ) { |
1027 | if ( (*it).hasAlarm() ) | 1027 | if ( (*it).hasAlarm() ) |
1028 | delEventAlarm( *it ); | 1028 | delEventAlarm( *it ); |
1029 | if ( (*it).hasRepeat() ) | 1029 | if ( (*it).hasRepeat() ) |
1030 | removeRepeat( *it ); | 1030 | removeRepeat( *it ); |
1031 | } | 1031 | } |
1032 | eventList.clear(); | 1032 | eventList.clear(); |
1033 | repeatEvents.clear(); // should be a NOP | 1033 | repeatEvents.clear(); // should be a NOP |
1034 | init(); | 1034 | init(); |
1035 | } | 1035 | } |
1036 | 1036 | ||
1037 | bool DateBookDB::removeRepeat( const Event &ev ) | 1037 | bool DateBookDB::removeRepeat( const Event &ev ) |
1038 | { | 1038 | { |
1039 | time_t removeMe = ev.repeatPattern().createTime; | 1039 | time_t removeMe = ev.repeatPattern().createTime; |
1040 | QValueListIterator<Event> it; | 1040 | QValueListIterator<Event> it; |
1041 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { | 1041 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { |
1042 | if ( removeMe == (*it).repeatPattern().createTime ) { | 1042 | if ( removeMe == (*it).repeatPattern().createTime ) { |
1043 | repeatEvents.remove( *it ); | 1043 | (void)repeatEvents.remove( it ); |
1044 | // best break, or we are going into undefined territory! | 1044 | // best break, or we are going into undefined territory! |
1045 | return TRUE; | 1045 | return TRUE; |
1046 | } | 1046 | } |
1047 | } | 1047 | } |
1048 | return FALSE; | 1048 | return FALSE; |
1049 | } | 1049 | } |
1050 | 1050 | ||
1051 | bool DateBookDB::origRepeat( const Event &ev, Event &orig ) const | 1051 | bool DateBookDB::origRepeat( const Event &ev, Event &orig ) const |
1052 | { | 1052 | { |
1053 | time_t removeMe = ev.repeatPattern().createTime; | 1053 | time_t removeMe = ev.repeatPattern().createTime; |
1054 | QValueListConstIterator<Event> it; | 1054 | QValueListConstIterator<Event> it; |
1055 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { | 1055 | for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { |
1056 | if ( removeMe == (*it).repeatPattern().createTime ) { | 1056 | if ( removeMe == (*it).repeatPattern().createTime ) { |
1057 | orig = (*it); | 1057 | orig = (*it); |
1058 | return TRUE; | 1058 | return TRUE; |
1059 | } | 1059 | } |
1060 | } | 1060 | } |
1061 | return FALSE; | 1061 | return FALSE; |
1062 | } | 1062 | } |
1063 | 1063 | ||
1064 | void DateBookDB::saveJournalEntry( const Event &ev, journal_action action ) | 1064 | void DateBookDB::saveJournalEntry( const Event &ev, journal_action action ) |
1065 | { | 1065 | { |
1066 | saveJournalEntry( ev, action, -1, false ); | 1066 | saveJournalEntry( ev, action, -1, false ); |
1067 | } | 1067 | } |
1068 | 1068 | ||
1069 | bool DateBookDB::saveJournalEntry( const Event &evOld, journal_action action, | 1069 | bool DateBookDB::saveJournalEntry( const Event &evOld, journal_action action, |
1070 | int key, bool origHadRepeat ) | 1070 | int key, bool origHadRepeat ) |
1071 | { | 1071 | { |
1072 | bool status = false; | 1072 | bool status = false; |
1073 | Event ev = evOld; | 1073 | Event ev = evOld; |
1074 | // write our log based on the action | 1074 | // write our log based on the action |
1075 | QFile f( dateBookJournalFile() ); | 1075 | QFile f( dateBookJournalFile() ); |
1076 | if ( !f.open( IO_WriteOnly|IO_Append ) ) | 1076 | if ( !f.open( IO_WriteOnly|IO_Append ) ) |
1077 | return false; | 1077 | return false; |
1078 | QString buf = "<event"; | 1078 | QString buf = "<event"; |
1079 | ev.save( buf ); | 1079 | ev.save( buf ); |
1080 | buf += " action="; | 1080 | buf += " action="; |
1081 | buf += "\"" + QString::number(action) + "\""; | 1081 | buf += "\"" + QString::number(action) + "\""; |
1082 | buf += " actionkey=\"" + QString::number(key) + "\""; | 1082 | buf += " actionkey=\"" + QString::number(key) + "\""; |
1083 | buf += " actionorig=\"" + QString::number(origHadRepeat) +"\""; | 1083 | buf += " actionorig=\"" + QString::number(origHadRepeat) +"\""; |
1084 | buf += " />\n"; | 1084 | buf += " />\n"; |
1085 | QString str = buf.utf8(); | 1085 | QString str = buf.utf8(); |
1086 | status = ( f.writeBlock( str.data(), str.length() ) == int(str.length()) ); | 1086 | status = ( f.writeBlock( str.data(), str.length() ) == int(str.length()) ); |
1087 | f.close(); | 1087 | f.close(); |
1088 | return status; | 1088 | return status; |
1089 | } | 1089 | } |
1090 | 1090 | ||
1091 | QValueList<Event> DateBookDB::getRawRepeats() const | 1091 | QValueList<Event> DateBookDB::getRawRepeats() const |
1092 | { | 1092 | { |
1093 | return repeatEvents; | 1093 | return repeatEvents; |
1094 | } | 1094 | } |
1095 | 1095 | ||
1096 | QValueList<Event> DateBookDB::getNonRepeatingEvents( const QDate &from, | 1096 | QValueList<Event> DateBookDB::getNonRepeatingEvents( const QDate &from, |
1097 | const QDate &to ) const | 1097 | const QDate &to ) const |
1098 | { | 1098 | { |
1099 | QValueListConstIterator<Event> it; | 1099 | QValueListConstIterator<Event> it; |
1100 | QDateTime dtTmp, dtEnd; | 1100 | QDateTime dtTmp, dtEnd; |
1101 | QValueList<Event> tmpList; | 1101 | QValueList<Event> tmpList; |
1102 | for (it = eventList.begin(); it != eventList.end(); ++it ) { | 1102 | for (it = eventList.begin(); it != eventList.end(); ++it ) { |
1103 | dtTmp = (*it).start(TRUE); | 1103 | dtTmp = (*it).start(TRUE); |
1104 | dtEnd = (*it).end(TRUE); | 1104 | dtEnd = (*it).end(TRUE); |
1105 | 1105 | ||
1106 | if ( dtTmp.date() >= from && dtTmp.date() <= to ) { | 1106 | if ( dtTmp.date() >= from && dtTmp.date() <= to ) { |
1107 | Event e = *it; | 1107 | Event e = *it; |
1108 | if ( dtTmp.date() != dtEnd.date() ) | 1108 | if ( dtTmp.date() != dtEnd.date() ) |
1109 | e.setEnd( QDateTime(dtTmp.date(), QTime(23, 59, 0)) ); | 1109 | e.setEnd( QDateTime(dtTmp.date(), QTime(23, 59, 0)) ); |
1110 | tmpList.append( e ); | 1110 | tmpList.append( e ); |
1111 | } | 1111 | } |
1112 | // we must also check for end date information... | 1112 | // we must also check for end date information... |
1113 | if ( dtEnd.date() != dtTmp.date() && dtEnd.date() >= from ) { | 1113 | if ( dtEnd.date() != dtTmp.date() && dtEnd.date() >= from ) { |
1114 | QDateTime dt = dtTmp.addDays( 1 ); | 1114 | QDateTime dt = dtTmp.addDays( 1 ); |
1115 | dt.setTime( QTime(0, 0, 0) ); | 1115 | dt.setTime( QTime(0, 0, 0) ); |
1116 | QDateTime dtStop; | 1116 | QDateTime dtStop; |
1117 | if ( dtEnd > to ) { | 1117 | if ( dtEnd > to ) { |
1118 | dtStop = to; | 1118 | dtStop = to; |
1119 | } else | 1119 | } else |
1120 | dtStop = dtEnd; | 1120 | dtStop = dtEnd; |
1121 | while ( dt <= dtStop ) { | 1121 | while ( dt <= dtStop ) { |
1122 | Event ev = *it; | 1122 | Event ev = *it; |
1123 | if ( dt >= from ) { | 1123 | if ( dt >= from ) { |
1124 | ev.setStart( QDateTime(dt.date(), QTime(0, 0, 0)) ); | 1124 | ev.setStart( QDateTime(dt.date(), QTime(0, 0, 0)) ); |
1125 | if ( dt.date() == dtEnd.date() ) | 1125 | if ( dt.date() == dtEnd.date() ) |
1126 | ev.setEnd( QDateTime(dt.date(), dtEnd.time()) ); | 1126 | ev.setEnd( QDateTime(dt.date(), dtEnd.time()) ); |
1127 | else | 1127 | else |
1128 | ev.setEnd( QDateTime(dt.date(), QTime(23, 59, 0)) ); | 1128 | ev.setEnd( QDateTime(dt.date(), QTime(23, 59, 0)) ); |
1129 | tmpList.append( ev ); | 1129 | tmpList.append( ev ); |
1130 | } | 1130 | } |
1131 | dt = dt.addDays( 1 ); | 1131 | dt = dt.addDays( 1 ); |
1132 | } | 1132 | } |
1133 | } | 1133 | } |
1134 | } | 1134 | } |
1135 | return tmpList; | 1135 | return tmpList; |
1136 | } | 1136 | } |
diff --git a/library/datebookmonth.cpp b/library/datebookmonth.cpp index e8be313..728045f 100644 --- a/library/datebookmonth.cpp +++ b/library/datebookmonth.cpp | |||
@@ -1,762 +1,767 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #include "config.h" | 20 | #include "config.h" |
21 | #include "datebookmonth.h" | 21 | #include "datebookmonth.h" |
22 | #include "datebookdb.h" | 22 | #include "datebookdb.h" |
23 | #include <qtopia/private/event.h> | 23 | #include <qtopia/private/event.h> |
24 | #include "resource.h" | 24 | #include "resource.h" |
25 | #include <qpe/qpeapplication.h> | 25 | #include <qpe/qpeapplication.h> |
26 | #include "timestring.h" | 26 | #include "timestring.h" |
27 | 27 | ||
28 | #include <qtoolbutton.h> | 28 | #include <qtoolbutton.h> |
29 | #include <qspinbox.h> | 29 | #include <qspinbox.h> |
30 | #include <qcombobox.h> | 30 | #include <qcombobox.h> |
31 | #include <qdatetime.h> | 31 | #include <qdatetime.h> |
32 | #include <qpainter.h> | 32 | #include <qpainter.h> |
33 | #include <qpopupmenu.h> | 33 | #include <qpopupmenu.h> |
34 | #include <qvaluestack.h> | 34 | #include <qvaluestack.h> |
35 | #include <qwhatsthis.h> | 35 | #include <qwhatsthis.h> |
36 | 36 | ||
37 | 37 | ||
38 | DateBookMonthHeader::DateBookMonthHeader( QWidget *parent, const char *name ) | 38 | DateBookMonthHeader::DateBookMonthHeader( QWidget *parent, const char *name ) |
39 | : QHBox( parent, name ) | 39 | : QHBox( parent, name ) |
40 | { | 40 | { |
41 | setBackgroundMode( PaletteButton ); | 41 | setBackgroundMode( PaletteButton ); |
42 | 42 | ||
43 | begin = new QToolButton( this ); | 43 | begin = new QToolButton( this ); |
44 | begin->setFocusPolicy(NoFocus); | 44 | begin->setFocusPolicy(NoFocus); |
45 | begin->setPixmap( Resource::loadPixmap( "start" ) ); | 45 | begin->setPixmap( Resource::loadPixmap( "start" ) ); |
46 | begin->setAutoRaise( TRUE ); | 46 | begin->setAutoRaise( TRUE ); |
47 | begin->setFixedSize( begin->sizeHint() ); | 47 | begin->setFixedSize( begin->sizeHint() ); |
48 | QWhatsThis::add( begin, tr("Show January in the selected year") ); | 48 | QWhatsThis::add( begin, tr("Show January in the selected year") ); |
49 | 49 | ||
50 | back = new QToolButton( this ); | 50 | back = new QToolButton( this ); |
51 | back->setFocusPolicy(NoFocus); | 51 | back->setFocusPolicy(NoFocus); |
52 | back->setPixmap( Resource::loadPixmap( "back" ) ); | 52 | back->setPixmap( Resource::loadPixmap( "back" ) ); |
53 | back->setAutoRaise( TRUE ); | 53 | back->setAutoRaise( TRUE ); |
54 | back->setFixedSize( back->sizeHint() ); | 54 | back->setFixedSize( back->sizeHint() ); |
55 | QWhatsThis::add( back, tr("Show the previous month") ); | 55 | QWhatsThis::add( back, tr("Show the previous month") ); |
56 | 56 | ||
57 | month = new QComboBox( FALSE, this ); | 57 | month = new QComboBox( FALSE, this ); |
58 | for ( int i = 0; i < 12; ++i ) | 58 | for ( int i = 0; i < 12; ++i ) |
59 | month->insertItem( Calendar::nameOfMonth( i + 1 ) ); | 59 | month->insertItem( Calendar::nameOfMonth( i + 1 ) ); |
60 | 60 | ||
61 | year = new QSpinBox( 1752, 8000, 1, this ); | 61 | year = new QSpinBox( 1752, 8000, 1, this ); |
62 | 62 | ||
63 | next = new QToolButton( this ); | 63 | next = new QToolButton( this ); |
64 | next->setFocusPolicy(NoFocus); | 64 | next->setFocusPolicy(NoFocus); |
65 | next->setPixmap( Resource::loadPixmap( "forward" ) ); | 65 | next->setPixmap( Resource::loadPixmap( "forward" ) ); |
66 | next->setAutoRaise( TRUE ); | 66 | next->setAutoRaise( TRUE ); |
67 | next->setFixedSize( next->sizeHint() ); | 67 | next->setFixedSize( next->sizeHint() ); |
68 | QWhatsThis::add( next, tr("Show the next month") ); | 68 | QWhatsThis::add( next, tr("Show the next month") ); |
69 | 69 | ||
70 | end = new QToolButton( this ); | 70 | end = new QToolButton( this ); |
71 | end->setFocusPolicy(NoFocus); | 71 | end->setFocusPolicy(NoFocus); |
72 | end->setPixmap( Resource::loadPixmap( "finish" ) ); | 72 | end->setPixmap( Resource::loadPixmap( "finish" ) ); |
73 | end->setAutoRaise( TRUE ); | 73 | end->setAutoRaise( TRUE ); |
74 | end->setFixedSize( end->sizeHint() ); | 74 | end->setFixedSize( end->sizeHint() ); |
75 | QWhatsThis::add( end, tr("Show December in the selected year") ); | 75 | QWhatsThis::add( end, tr("Show December in the selected year") ); |
76 | 76 | ||
77 | connect( month, SIGNAL( activated( int ) ), | 77 | connect( month, SIGNAL( activated( int ) ), |
78 | this, SLOT( updateDate() ) ); | 78 | this, SLOT( updateDate() ) ); |
79 | connect( year, SIGNAL( valueChanged( int ) ), | 79 | connect( year, SIGNAL( valueChanged( int ) ), |
80 | this, SLOT( updateDate() ) ); | 80 | this, SLOT( updateDate() ) ); |
81 | connect( begin, SIGNAL( clicked() ), | 81 | connect( begin, SIGNAL( clicked() ), |
82 | this, SLOT( firstMonth() ) ); | 82 | this, SLOT( firstMonth() ) ); |
83 | connect( end, SIGNAL( clicked() ), | 83 | connect( end, SIGNAL( clicked() ), |
84 | this, SLOT( lastMonth() ) ); | 84 | this, SLOT( lastMonth() ) ); |
85 | connect( back, SIGNAL( clicked() ), | 85 | connect( back, SIGNAL( clicked() ), |
86 | this, SLOT( monthBack() ) ); | 86 | this, SLOT( monthBack() ) ); |
87 | connect( next, SIGNAL( clicked() ), | 87 | connect( next, SIGNAL( clicked() ), |
88 | this, SLOT( monthForward() ) ); | 88 | this, SLOT( monthForward() ) ); |
89 | back->setAutoRepeat( TRUE ); | 89 | back->setAutoRepeat( TRUE ); |
90 | next->setAutoRepeat( TRUE ); | 90 | next->setAutoRepeat( TRUE ); |
91 | } | 91 | } |
92 | 92 | ||
93 | 93 | ||
94 | DateBookMonthHeader::~DateBookMonthHeader() | 94 | DateBookMonthHeader::~DateBookMonthHeader() |
95 | { | 95 | { |
96 | 96 | ||
97 | } | 97 | } |
98 | 98 | ||
99 | void DateBookMonthHeader::updateDate() | 99 | void DateBookMonthHeader::updateDate() |
100 | { | 100 | { |
101 | emit dateChanged( year->value(), month->currentItem() + 1 ); | 101 | emit dateChanged( year->value(), month->currentItem() + 1 ); |
102 | } | 102 | } |
103 | 103 | ||
104 | void DateBookMonthHeader::firstMonth() | 104 | void DateBookMonthHeader::firstMonth() |
105 | { | 105 | { |
106 | emit dateChanged( year->value(), 1 ); | 106 | emit dateChanged( year->value(), 1 ); |
107 | month->setCurrentItem( 0 ); | 107 | month->setCurrentItem( 0 ); |
108 | } | 108 | } |
109 | 109 | ||
110 | void DateBookMonthHeader::lastMonth() | 110 | void DateBookMonthHeader::lastMonth() |
111 | { | 111 | { |
112 | emit dateChanged( year->value(), 12 ); | 112 | emit dateChanged( year->value(), 12 ); |
113 | month->setCurrentItem( 11 ); | 113 | month->setCurrentItem( 11 ); |
114 | } | 114 | } |
115 | 115 | ||
116 | void DateBookMonthHeader::monthBack() | 116 | void DateBookMonthHeader::monthBack() |
117 | { | 117 | { |
118 | if ( month->currentItem() > 0 ) { | 118 | if ( month->currentItem() > 0 ) { |
119 | emit dateChanged( year->value(), month->currentItem() ); | 119 | emit dateChanged( year->value(), month->currentItem() ); |
120 | month->setCurrentItem( month->currentItem() - 1 ); | 120 | month->setCurrentItem( month->currentItem() - 1 ); |
121 | } else { | 121 | } else { |
122 | emit dateChanged( year->value() - 1, 12 ); | 122 | emit dateChanged( year->value() - 1, 12 ); |
123 | // we have a signal set to a changed value in year so we only need to change | 123 | // we have a signal set to a changed value in year so we only need to change |
124 | // year to get the result... | 124 | // year to get the result... |
125 | month->setCurrentItem( 11 ); | 125 | month->setCurrentItem( 11 ); |
126 | year->setValue( year->value() - 1 ); | 126 | year->setValue( year->value() - 1 ); |
127 | } | 127 | } |
128 | } | 128 | } |
129 | 129 | ||
130 | void DateBookMonthHeader::monthForward() | 130 | void DateBookMonthHeader::monthForward() |
131 | { | 131 | { |
132 | if ( month->currentItem() < 11 ) { | 132 | if ( month->currentItem() < 11 ) { |
133 | emit dateChanged( year->value(), month->currentItem() + 2 ); | 133 | emit dateChanged( year->value(), month->currentItem() + 2 ); |
134 | month->setCurrentItem( month->currentItem() + 1 ); | 134 | month->setCurrentItem( month->currentItem() + 1 ); |
135 | } else { | 135 | } else { |
136 | // we have a signal set to a changed value in year so we only need to change | 136 | // we have a signal set to a changed value in year so we only need to change |
137 | // year to get the result... | 137 | // year to get the result... |
138 | month->setCurrentItem( 0 ); | 138 | month->setCurrentItem( 0 ); |
139 | year->setValue( year->value() + 1 ); | 139 | year->setValue( year->value() + 1 ); |
140 | } | 140 | } |
141 | } | 141 | } |
142 | 142 | ||
143 | void DateBookMonthHeader::setDate( int y, int m ) | 143 | void DateBookMonthHeader::setDate( int y, int m ) |
144 | { | 144 | { |
145 | year->setValue( y ); | 145 | year->setValue( y ); |
146 | month->setCurrentItem( m - 1 ); | 146 | month->setCurrentItem( m - 1 ); |
147 | } | 147 | } |
148 | 148 | ||
149 | //--------------------------------------------------------------------------- | 149 | //--------------------------------------------------------------------------- |
150 | 150 | ||
151 | class DateBookMonthTablePrivate | 151 | class DateBookMonthTablePrivate |
152 | { | 152 | { |
153 | public: | 153 | public: |
154 | DateBookMonthTablePrivate() {}; | 154 | DateBookMonthTablePrivate() {}; |
155 | ~DateBookMonthTablePrivate() { mMonthEvents.clear(); }; | 155 | ~DateBookMonthTablePrivate() { mMonthEvents.clear(); }; |
156 | 156 | ||
157 | QValueList<EffectiveEvent> mMonthEvents; | 157 | QValueList<EffectiveEvent> mMonthEvents; |
158 | bool onMonday; | 158 | bool onMonday; |
159 | }; | 159 | }; |
160 | 160 | ||
161 | DateBookMonthTable::DateBookMonthTable( QWidget *parent, const char *name, | 161 | DateBookMonthTable::DateBookMonthTable( QWidget *parent, const char *name, |
162 | DateBookDB *newDb ) | 162 | DateBookDB *newDb ) |
163 | : QTable( 6, 7, parent, name ), | 163 | : QTable( 6, 7, parent, name ), |
164 | db( newDb ) | 164 | db( newDb ) |
165 | { | 165 | { |
166 | d = new DateBookMonthTablePrivate(); | 166 | d = new DateBookMonthTablePrivate(); |
167 | selYear = -1; | 167 | selYear = -1; |
168 | selMonth = -1; | 168 | selMonth = -1; |
169 | selDay = -1; | 169 | selDay = -1; |
170 | 170 | ||
171 | /* init these as well make valgrind happy and be consistent with Qtopia1.6 -zecke */ | ||
172 | year = -1; | ||
173 | month = -1; | ||
174 | day = -1; | ||
175 | |||
171 | Config cfg( "qpe" ); | 176 | Config cfg( "qpe" ); |
172 | cfg.setGroup( "Time" ); | 177 | cfg.setGroup( "Time" ); |
173 | d->onMonday = cfg.readBoolEntry( "MONDAY" ); | 178 | d->onMonday = cfg.readBoolEntry( "MONDAY" ); |
174 | 179 | ||
175 | horizontalHeader()->setResizeEnabled( FALSE ); | 180 | horizontalHeader()->setResizeEnabled( FALSE ); |
176 | // we have to do this here... or suffer the consequences later... | 181 | // we have to do this here... or suffer the consequences later... |
177 | for ( int i = 0; i < 7; i++ ){ | 182 | for ( int i = 0; i < 7; i++ ){ |
178 | horizontalHeader()->resizeSection( i, 30 ); | 183 | horizontalHeader()->resizeSection( i, 30 ); |
179 | setColumnStretchable( i, TRUE ); | 184 | setColumnStretchable( i, TRUE ); |
180 | } | 185 | } |
181 | setupLabels(); | 186 | setupLabels(); |
182 | 187 | ||
183 | verticalHeader()->hide(); | 188 | verticalHeader()->hide(); |
184 | setLeftMargin( 0 ); | 189 | setLeftMargin( 0 ); |
185 | for ( int i = 0; i < 6; ++i ) | 190 | for ( int i = 0; i < 6; ++i ) |
186 | setRowStretchable( i, TRUE ); | 191 | setRowStretchable( i, TRUE ); |
187 | 192 | ||
188 | setSelectionMode( NoSelection ); | 193 | setSelectionMode( NoSelection ); |
189 | 194 | ||
190 | connect( this, SIGNAL( clicked( int, int, int, const QPoint & ) ), | 195 | connect( this, SIGNAL( clicked( int, int, int, const QPoint & ) ), |
191 | this, SLOT( dayClicked( int, int ) ) ); | 196 | this, SLOT( dayClicked( int, int ) ) ); |
192 | connect( this, SIGNAL( currentChanged( int, int ) ), | 197 | connect( this, SIGNAL( currentChanged( int, int ) ), |
193 | this, SLOT( dragDay( int, int ) ) ); | 198 | this, SLOT( dragDay( int, int ) ) ); |
194 | setVScrollBarMode( AlwaysOff ); | 199 | setVScrollBarMode( AlwaysOff ); |
195 | setHScrollBarMode( AlwaysOff ); | 200 | setHScrollBarMode( AlwaysOff ); |
196 | } | 201 | } |
197 | 202 | ||
198 | DateBookMonthTable::~DateBookMonthTable() | 203 | DateBookMonthTable::~DateBookMonthTable() |
199 | { | 204 | { |
200 | monthsEvents.clear(); | 205 | monthsEvents.clear(); |
201 | delete d; | 206 | delete d; |
202 | } | 207 | } |
203 | 208 | ||
204 | void DateBookMonthTable::setDate(int y, int m, int d) | 209 | void DateBookMonthTable::setDate(int y, int m, int d) |
205 | { | 210 | { |
206 | if (month == m && year == y) { | 211 | if (month == m && year == y) { |
207 | if ( selYear == -1 ) | 212 | if ( selYear == -1 ) |
208 | year = selYear; | 213 | year = selYear; |
209 | if ( selMonth == -1 ) | 214 | if ( selMonth == -1 ) |
210 | month = selMonth; | 215 | month = selMonth; |
211 | int r1, c1, r2, c2; | 216 | int r1, c1, r2, c2; |
212 | findDay(selDay, r1, c1); | 217 | findDay(selDay, r1, c1); |
213 | selDay = day = d; | 218 | selDay = day = d; |
214 | findDay(selDay, r2, c2); | 219 | findDay(selDay, r2, c2); |
215 | setCurrentCell( r2, c2 ); | 220 | setCurrentCell( r2, c2 ); |
216 | //updateCell(r1,c1); | 221 | //updateCell(r1,c1); |
217 | //updateCell(r2,c2); | 222 | //updateCell(r2,c2); |
218 | } else { | 223 | } else { |
219 | selYear = year = y; | 224 | selYear = year = y; |
220 | selMonth = month = m; | 225 | selMonth = month = m; |
221 | selDay = day = d; | 226 | selDay = day = d; |
222 | setupTable(); | 227 | setupTable(); |
223 | } | 228 | } |
224 | } | 229 | } |
225 | 230 | ||
226 | void DateBookMonthTable::redraw() | 231 | void DateBookMonthTable::redraw() |
227 | { | 232 | { |
228 | setupLabels(); | 233 | setupLabels(); |
229 | setupTable(); | 234 | setupTable(); |
230 | } | 235 | } |
231 | 236 | ||
232 | void DateBookMonthTable::setWeekStart( bool onMonday ) | 237 | void DateBookMonthTable::setWeekStart( bool onMonday ) |
233 | { | 238 | { |
234 | d->onMonday = onMonday; | 239 | d->onMonday = onMonday; |
235 | setupLabels(); | 240 | setupLabels(); |
236 | setupTable(); | 241 | setupTable(); |
237 | } | 242 | } |
238 | 243 | ||
239 | void DateBookMonthTable::setupTable() | 244 | void DateBookMonthTable::setupTable() |
240 | { | 245 | { |
241 | QValueList<Calendar::Day> days = Calendar::daysOfMonth( year, month, d->onMonday ); | 246 | QValueList<Calendar::Day> days = Calendar::daysOfMonth( year, month, d->onMonday ); |
242 | QValueList<Calendar::Day>::Iterator it = days.begin(); | 247 | QValueList<Calendar::Day>::Iterator it = days.begin(); |
243 | int row = 0, col = 0; | 248 | int row = 0, col = 0; |
244 | int crow = 0; | 249 | int crow = 0; |
245 | int ccol = 0; | 250 | int ccol = 0; |
246 | for ( ; it != days.end(); ++it ) { | 251 | for ( ; it != days.end(); ++it ) { |
247 | DayItemMonth *i = (DayItemMonth *)item( row, col ); | 252 | DayItemMonth *i = (DayItemMonth *)item( row, col ); |
248 | if ( !i ) { | 253 | if ( !i ) { |
249 | i = new DayItemMonth( this, QTableItem::Never, "" ); | 254 | i = new DayItemMonth( this, QTableItem::Never, "" ); |
250 | setItem( row, col, i ); | 255 | setItem( row, col, i ); |
251 | } | 256 | } |
252 | Calendar::Day calDay = *it; | 257 | Calendar::Day calDay = *it; |
253 | i->clearEffEvents(); | 258 | i->clearEffEvents(); |
254 | i->setDay( calDay.date ); | 259 | i->setDay( calDay.date ); |
255 | i->setType( calDay.type ); | 260 | i->setType( calDay.type ); |
256 | if ( i->day() == day && calDay.type == Calendar::Day::ThisMonth ) { | 261 | if ( i->day() == day && calDay.type == Calendar::Day::ThisMonth ) { |
257 | crow = row; | 262 | crow = row; |
258 | ccol = col; | 263 | ccol = col; |
259 | } | 264 | } |
260 | 265 | ||
261 | updateCell( row, col ); | 266 | updateCell( row, col ); |
262 | 267 | ||
263 | if ( col == 6 ) { | 268 | if ( col == 6 ) { |
264 | ++row; | 269 | ++row; |
265 | col = 0; | 270 | col = 0; |
266 | } else { | 271 | } else { |
267 | ++col; | 272 | ++col; |
268 | } | 273 | } |
269 | } | 274 | } |
270 | setCurrentCell( crow, ccol ); | 275 | setCurrentCell( crow, ccol ); |
271 | getEvents(); | 276 | getEvents(); |
272 | } | 277 | } |
273 | 278 | ||
274 | void DateBookMonthTable::findDay( int day, int &row, int &col ) | 279 | void DateBookMonthTable::findDay( int day, int &row, int &col ) |
275 | { | 280 | { |
276 | QDate dtBegin( year, month, 1 ); | 281 | QDate dtBegin( year, month, 1 ); |
277 | int skips = dtBegin.dayOfWeek(); | 282 | int skips = dtBegin.dayOfWeek(); |
278 | int effective_day = day + skips - 1; // row/columns begin at 0 | 283 | int effective_day = day + skips - 1; // row/columns begin at 0 |
279 | // make an extra adjustment if we start on Mondays. | 284 | // make an extra adjustment if we start on Mondays. |
280 | if ( d->onMonday ) | 285 | if ( d->onMonday ) |
281 | effective_day--; | 286 | effective_day--; |
282 | row = effective_day / 7; | 287 | row = effective_day / 7; |
283 | col = effective_day % 7; | 288 | col = effective_day % 7; |
284 | } | 289 | } |
285 | 290 | ||
286 | void DateBookMonthTable::dayClicked( int row, int col ) | 291 | void DateBookMonthTable::dayClicked( int row, int col ) |
287 | { | 292 | { |
288 | changeDaySelection( row, col ); | 293 | changeDaySelection( row, col ); |
289 | emit dateClicked( selYear, selMonth, selDay ); | 294 | emit dateClicked( selYear, selMonth, selDay ); |
290 | } | 295 | } |
291 | 296 | ||
292 | void DateBookMonthTable::dragDay( int row, int col ) | 297 | void DateBookMonthTable::dragDay( int row, int col ) |
293 | { | 298 | { |
294 | changeDaySelection( row, col ); | 299 | changeDaySelection( row, col ); |
295 | } | 300 | } |
296 | 301 | ||
297 | void DateBookMonthTable::changeDaySelection( int row, int col ) | 302 | void DateBookMonthTable::changeDaySelection( int row, int col ) |
298 | { | 303 | { |
299 | DayItemMonth *i = (DayItemMonth*)item( row, col ); | 304 | DayItemMonth *i = (DayItemMonth*)item( row, col ); |
300 | if ( !i ) | 305 | if ( !i ) |
301 | return; | 306 | return; |
302 | switch ( i->type() ) { | 307 | switch ( i->type() ) { |
303 | case Calendar::Day::ThisMonth: | 308 | case Calendar::Day::ThisMonth: |
304 | selMonth = month; | 309 | selMonth = month; |
305 | break; | 310 | break; |
306 | case Calendar::Day::PrevMonth: | 311 | case Calendar::Day::PrevMonth: |
307 | selMonth = month-1; | 312 | selMonth = month-1; |
308 | break; | 313 | break; |
309 | default: | 314 | default: |
310 | selMonth = month+1; | 315 | selMonth = month+1; |
311 | } | 316 | } |
312 | 317 | ||
313 | selYear = year; | 318 | selYear = year; |
314 | if ( selMonth <= 0 ) { | 319 | if ( selMonth <= 0 ) { |
315 | selMonth = 12; | 320 | selMonth = 12; |
316 | selYear--; | 321 | selYear--; |
317 | } else if ( selMonth > 12 ) { | 322 | } else if ( selMonth > 12 ) { |
318 | selMonth = 1; | 323 | selMonth = 1; |
319 | selYear++; | 324 | selYear++; |
320 | } | 325 | } |
321 | selDay = i->day(); | 326 | selDay = i->day(); |
322 | } | 327 | } |
323 | 328 | ||
324 | 329 | ||
325 | void DateBookMonthTable::viewportMouseReleaseEvent( QMouseEvent * ) | 330 | void DateBookMonthTable::viewportMouseReleaseEvent( QMouseEvent * ) |
326 | { | 331 | { |
327 | dayClicked( currentRow(), currentColumn() ); | 332 | dayClicked( currentRow(), currentColumn() ); |
328 | } | 333 | } |
329 | 334 | ||
330 | void DateBookMonthTable::getEvents() | 335 | void DateBookMonthTable::getEvents() |
331 | { | 336 | { |
332 | if ( !db ) | 337 | if ( !db ) |
333 | return; | 338 | return; |
334 | 339 | ||
335 | QDate dtStart( year, month, 1 ); | 340 | QDate dtStart( year, month, 1 ); |
336 | d->mMonthEvents = db->getEffectiveEvents( dtStart, | 341 | d->mMonthEvents = db->getEffectiveEvents( dtStart, |
337 | QDate( year, month, | 342 | QDate( year, month, |
338 | dtStart.daysInMonth() ) ); | 343 | dtStart.daysInMonth() ) ); |
339 | QValueListIterator<EffectiveEvent> it = d->mMonthEvents.begin(); | 344 | QValueListIterator<EffectiveEvent> it = d->mMonthEvents.begin(); |
340 | // now that the events are sorted, basically go through the list, make | 345 | // now that the events are sorted, basically go through the list, make |
341 | // a small list for every day and set it for each item... | 346 | // a small list for every day and set it for each item... |
342 | // clear all the items... | 347 | // clear all the items... |
343 | while ( it != d->mMonthEvents.end() ) { | 348 | while ( it != d->mMonthEvents.end() ) { |
344 | QValueList<EffectiveEvent> dayEvent; | 349 | QValueList<EffectiveEvent> dayEvent; |
345 | EffectiveEvent e = *it; | 350 | EffectiveEvent e = *it; |
346 | ++it; | 351 | ++it; |
347 | dayEvent.append( e ); | 352 | dayEvent.append( e ); |
348 | while ( it != d->mMonthEvents.end() | 353 | while ( it != d->mMonthEvents.end() |
349 | && e.date() == (*it).date() ) { | 354 | && e.date() == (*it).date() ) { |
350 | dayEvent.append( *it ); | 355 | dayEvent.append( *it ); |
351 | ++it; | 356 | ++it; |
352 | } | 357 | } |
353 | int row, col; | 358 | int row, col; |
354 | findDay( e.date().day(), row, col ); | 359 | findDay( e.date().day(), row, col ); |
355 | DayItemMonth* w = static_cast<DayItemMonth*>( item( row, col ) ); | 360 | DayItemMonth* w = static_cast<DayItemMonth*>( item( row, col ) ); |
356 | w->setEvents( dayEvent ); | 361 | w->setEvents( dayEvent ); |
357 | updateCell( row, col ); | 362 | updateCell( row, col ); |
358 | dayEvent.clear(); | 363 | dayEvent.clear(); |
359 | } | 364 | } |
360 | } | 365 | } |
361 | 366 | ||
362 | 367 | ||
363 | void DateBookMonthTable::setupLabels() | 368 | void DateBookMonthTable::setupLabels() |
364 | { | 369 | { |
365 | for ( int i = 0; i < 7; ++i ) { | 370 | for ( int i = 0; i < 7; ++i ) { |
366 | // horizontalHeader()->resizeSection( i, 30 ); | 371 | // horizontalHeader()->resizeSection( i, 30 ); |
367 | // setColumnStretchable( i, TRUE ); | 372 | // setColumnStretchable( i, TRUE ); |
368 | if ( d->onMonday ) | 373 | if ( d->onMonday ) |
369 | horizontalHeader()->setLabel( i, Calendar::nameOfDay( i + 1 ) ); | 374 | horizontalHeader()->setLabel( i, Calendar::nameOfDay( i + 1 ) ); |
370 | else { | 375 | else { |
371 | if ( i == 0 ) | 376 | if ( i == 0 ) |
372 | horizontalHeader()->setLabel( i, Calendar::nameOfDay( 7 ) ); | 377 | horizontalHeader()->setLabel( i, Calendar::nameOfDay( 7 ) ); |
373 | else | 378 | else |
374 | horizontalHeader()->setLabel( i, Calendar::nameOfDay( i ) ); | 379 | horizontalHeader()->setLabel( i, Calendar::nameOfDay( i ) ); |
375 | } | 380 | } |
376 | } | 381 | } |
377 | } | 382 | } |
378 | 383 | ||
379 | 384 | ||
380 | //--------------------------------------------------------------------------- | 385 | //--------------------------------------------------------------------------- |
381 | 386 | ||
382 | DateBookMonth::DateBookMonth( QWidget *parent, const char *name, bool ac, | 387 | DateBookMonth::DateBookMonth( QWidget *parent, const char *name, bool ac, |
383 | DateBookDB *data ) | 388 | DateBookDB *data ) |
384 | : QVBox( parent, name ), | 389 | : QVBox( parent, name ), |
385 | autoClose( ac ) | 390 | autoClose( ac ) |
386 | { | 391 | { |
387 | setFocusPolicy(StrongFocus); | 392 | setFocusPolicy(StrongFocus); |
388 | year = QDate::currentDate().year(); | 393 | year = QDate::currentDate().year(); |
389 | month = QDate::currentDate().month(); | 394 | month = QDate::currentDate().month(); |
390 | day = QDate::currentDate().day(); | 395 | day = QDate::currentDate().day(); |
391 | header = new DateBookMonthHeader( this, "DateBookMonthHeader" ); | 396 | header = new DateBookMonthHeader( this, "DateBookMonthHeader" ); |
392 | table = new DateBookMonthTable( this, "DateBookMonthTable", data ); | 397 | table = new DateBookMonthTable( this, "DateBookMonthTable", data ); |
393 | header->setDate( year, month ); | 398 | header->setDate( year, month ); |
394 | table->setDate( year, month, QDate::currentDate().day() ); | 399 | table->setDate( year, month, QDate::currentDate().day() ); |
395 | header->setFocusPolicy(NoFocus); | 400 | header->setFocusPolicy(NoFocus); |
396 | table->setFocusPolicy(NoFocus); | 401 | table->setFocusPolicy(NoFocus); |
397 | connect( header, SIGNAL( dateChanged( int, int ) ), | 402 | connect( header, SIGNAL( dateChanged( int, int ) ), |
398 | this, SLOT( setDate( int, int ) ) ); | 403 | this, SLOT( setDate( int, int ) ) ); |
399 | connect( table, SIGNAL( dateClicked( int, int, int ) ), | 404 | connect( table, SIGNAL( dateClicked( int, int, int ) ), |
400 | this, SLOT( finalDate(int, int, int) ) ); | 405 | this, SLOT( finalDate(int, int, int) ) ); |
401 | connect( qApp, SIGNAL(weekChanged(bool)), this, | 406 | connect( qApp, SIGNAL(weekChanged(bool)), this, |
402 | SLOT(slotWeekChange(bool)) ); | 407 | SLOT(slotWeekChange(bool)) ); |
403 | table->setFocus(); | 408 | table->setFocus(); |
404 | } | 409 | } |
405 | 410 | ||
406 | DateBookMonth::~DateBookMonth() | 411 | DateBookMonth::~DateBookMonth() |
407 | { | 412 | { |
408 | 413 | ||
409 | } | 414 | } |
410 | 415 | ||
411 | void DateBookMonth::setDate( int y, int m ) | 416 | void DateBookMonth::setDate( int y, int m ) |
412 | { | 417 | { |
413 | /* only change the date if this is a different date, | 418 | /* only change the date if this is a different date, |
414 | * other wise we may mistakenly overide the day */ | 419 | * other wise we may mistakenly overide the day */ |
415 | if ( (y != year) || (m != month) ) { | 420 | if ( (y != year) || (m != month) ) { |
416 | year = y; | 421 | year = y; |
417 | month = m; | 422 | month = m; |
418 | QDate nd( y, m, 1 ); | 423 | QDate nd( y, m, 1 ); |
419 | if ( nd.daysInMonth() < day ) | 424 | if ( nd.daysInMonth() < day ) |
420 | day = nd.daysInMonth(); | 425 | day = nd.daysInMonth(); |
421 | table->setDate( year, month, day ); | 426 | table->setDate( year, month, day ); |
422 | } | 427 | } |
423 | } | 428 | } |
424 | 429 | ||
425 | void DateBookMonth::setDate( int y, int m, int d ) | 430 | void DateBookMonth::setDate( int y, int m, int d ) |
426 | { | 431 | { |
427 | header->setDate( y, m); | 432 | header->setDate( y, m); |
428 | table->setDate( y, m, d); | 433 | table->setDate( y, m, d); |
429 | year = y; | 434 | year = y; |
430 | month = m; | 435 | month = m; |
431 | day = d; | 436 | day = d; |
432 | } | 437 | } |
433 | 438 | ||
434 | /* called when we wish to close or pass back the date */ | 439 | /* called when we wish to close or pass back the date */ |
435 | void DateBookMonth::finalDate(int y, int m, int d) | 440 | void DateBookMonth::finalDate(int y, int m, int d) |
436 | { | 441 | { |
437 | setDate( y, m, d ); | 442 | setDate( y, m, d ); |
438 | 443 | ||
439 | emit dateClicked(y, m, d); | 444 | emit dateClicked(y, m, d); |
440 | // emit dateClicked(QDate(y, m, d).toString()); | 445 | // emit dateClicked(QDate(y, m, d).toString()); |
441 | 446 | ||
442 | if ( autoClose && parentWidget() ) | 447 | if ( autoClose && parentWidget() ) |
443 | parentWidget()->close(); | 448 | parentWidget()->close(); |
444 | } | 449 | } |
445 | 450 | ||
446 | void DateBookMonth::setDate( QDate d) | 451 | void DateBookMonth::setDate( QDate d) |
447 | { | 452 | { |
448 | setDate(d.year(), d.month(), d.day()); | 453 | setDate(d.year(), d.month(), d.day()); |
449 | } | 454 | } |
450 | 455 | ||
451 | void DateBookMonth::redraw() | 456 | void DateBookMonth::redraw() |
452 | { | 457 | { |
453 | table->setDate( year, month, day ); | 458 | table->setDate( year, month, day ); |
454 | table->redraw(); | 459 | table->redraw(); |
455 | } | 460 | } |
456 | 461 | ||
457 | QDate DateBookMonth::selectedDate() const | 462 | QDate DateBookMonth::selectedDate() const |
458 | { | 463 | { |
459 | if ( !table ) | 464 | if ( !table ) |
460 | return QDate::currentDate(); | 465 | return QDate::currentDate(); |
461 | int y, m, d; | 466 | int y, m, d; |
462 | table->getDate( y, m, d ); | 467 | table->getDate( y, m, d ); |
463 | return QDate( y, m, d ); | 468 | return QDate( y, m, d ); |
464 | } | 469 | } |
465 | 470 | ||
466 | void DateBookMonth::slotWeekChange( bool startOnMonday ) | 471 | void DateBookMonth::slotWeekChange( bool startOnMonday ) |
467 | { | 472 | { |
468 | table->setWeekStart( startOnMonday ); | 473 | table->setWeekStart( startOnMonday ); |
469 | } | 474 | } |
470 | 475 | ||
471 | void DateBookMonth::keyPressEvent( QKeyEvent *e ) | 476 | void DateBookMonth::keyPressEvent( QKeyEvent *e ) |
472 | { | 477 | { |
473 | switch(e->key()) { | 478 | switch(e->key()) { |
474 | case Key_Up: | 479 | case Key_Up: |
475 | setDate(QDate(year, month, day).addDays(-7)); | 480 | setDate(QDate(year, month, day).addDays(-7)); |
476 | break; | 481 | break; |
477 | case Key_Down: | 482 | case Key_Down: |
478 | setDate(QDate(year, month, day).addDays(7)); | 483 | setDate(QDate(year, month, day).addDays(7)); |
479 | break; | 484 | break; |
480 | case Key_Left: | 485 | case Key_Left: |
481 | setDate(QDate(year, month, day).addDays(-1)); | 486 | setDate(QDate(year, month, day).addDays(-1)); |
482 | break; | 487 | break; |
483 | case Key_Right: | 488 | case Key_Right: |
484 | setDate(QDate(year, month, day).addDays(1)); | 489 | setDate(QDate(year, month, day).addDays(1)); |
485 | break; | 490 | break; |
486 | case Key_Space: | 491 | case Key_Space: |
487 | qWarning("space"); | 492 | qWarning("space"); |
488 | emit dateClicked(year, month, day); | 493 | emit dateClicked(year, month, day); |
489 | if ( autoClose && parentWidget() ) | 494 | if ( autoClose && parentWidget() ) |
490 | parentWidget()->close(); | 495 | parentWidget()->close(); |
491 | break; | 496 | break; |
492 | default: | 497 | default: |
493 | qWarning("ignore"); | 498 | qWarning("ignore"); |
494 | e->ignore(); | 499 | e->ignore(); |
495 | break; | 500 | break; |
496 | } | 501 | } |
497 | } | 502 | } |
498 | 503 | ||
499 | //--------------------------------------------------------------------------- | 504 | //--------------------------------------------------------------------------- |
500 | class DayItemMonthPrivate | 505 | class DayItemMonthPrivate |
501 | { | 506 | { |
502 | public: | 507 | public: |
503 | DayItemMonthPrivate() {}; | 508 | DayItemMonthPrivate() {}; |
504 | ~DayItemMonthPrivate() { mDayEvents.clear(); }; | 509 | ~DayItemMonthPrivate() { mDayEvents.clear(); }; |
505 | QValueList<EffectiveEvent> mDayEvents; | 510 | QValueList<EffectiveEvent> mDayEvents; |
506 | }; | 511 | }; |
507 | 512 | ||
508 | DayItemMonth::DayItemMonth( QTable *table, EditType et, const QString &t ) | 513 | DayItemMonth::DayItemMonth( QTable *table, EditType et, const QString &t ) |
509 | : QTableItem( table, et, t ) | 514 | : QTableItem( table, et, t ) |
510 | { | 515 | { |
511 | d = new DayItemMonthPrivate(); | 516 | d = new DayItemMonthPrivate(); |
512 | } | 517 | } |
513 | 518 | ||
514 | DayItemMonth::~DayItemMonth() | 519 | DayItemMonth::~DayItemMonth() |
515 | { | 520 | { |
516 | daysEvents.clear(); | 521 | daysEvents.clear(); |
517 | delete d; | 522 | delete d; |
518 | } | 523 | } |
519 | 524 | ||
520 | void DayItemMonth::setEvents( const QValueList<EffectiveEvent> &effEv ) | 525 | void DayItemMonth::setEvents( const QValueList<EffectiveEvent> &effEv ) |
521 | { | 526 | { |
522 | d->mDayEvents = effEv; | 527 | d->mDayEvents = effEv; |
523 | } | 528 | } |
524 | 529 | ||
525 | void DayItemMonth::clearEffEvents() | 530 | void DayItemMonth::clearEffEvents() |
526 | { | 531 | { |
527 | d->mDayEvents.clear(); | 532 | d->mDayEvents.clear(); |
528 | } | 533 | } |
529 | 534 | ||
530 | void DayItemMonth::paint( QPainter *p, const QColorGroup &cg, | 535 | void DayItemMonth::paint( QPainter *p, const QColorGroup &cg, |
531 | const QRect &cr, bool selected ) | 536 | const QRect &cr, bool selected ) |
532 | { | 537 | { |
533 | p->save(); | 538 | p->save(); |
534 | 539 | ||
535 | QColorGroup g( cg ); | 540 | QColorGroup g( cg ); |
536 | g.setBrush( QColorGroup::Base, back ); | 541 | g.setBrush( QColorGroup::Base, back ); |
537 | g.setColor( QColorGroup::Text, forg ); | 542 | g.setColor( QColorGroup::Text, forg ); |
538 | if ( selected ) | 543 | if ( selected ) |
539 | p->setPen( g.highlightedText() ); | 544 | p->setPen( g.highlightedText() ); |
540 | else | 545 | else |
541 | p->setPen( g.text() ); | 546 | p->setPen( g.text() ); |
542 | 547 | ||
543 | QValueStack<int> normalLine; | 548 | QValueStack<int> normalLine; |
544 | QValueStack<int> repeatLine; | 549 | QValueStack<int> repeatLine; |
545 | QValueStack<int> travelLine; | 550 | QValueStack<int> travelLine; |
546 | 551 | ||
547 | bool normalAllDay = FALSE; | 552 | bool normalAllDay = FALSE; |
548 | bool repeatAllDay = FALSE; | 553 | bool repeatAllDay = FALSE; |
549 | bool travelAllDay = FALSE; | 554 | bool travelAllDay = FALSE; |
550 | 555 | ||
551 | QValueListIterator<EffectiveEvent> itDays = d->mDayEvents.begin(); | 556 | QValueListIterator<EffectiveEvent> itDays = d->mDayEvents.begin(); |
552 | 557 | ||
553 | for ( ; itDays != d->mDayEvents.end(); ++itDays ) { | 558 | for ( ; itDays != d->mDayEvents.end(); ++itDays ) { |
554 | int w = cr.width(); | 559 | int w = cr.width(); |
555 | Event ev = (*itDays).event(); | 560 | Event ev = (*itDays).event(); |
556 | 561 | ||
557 | int f = (*itDays).start().hour(); // assume Effective event | 562 | int f = (*itDays).start().hour(); // assume Effective event |
558 | int t = (*itDays).end().hour(); // is truncated. | 563 | int t = (*itDays).end().hour(); // is truncated. |
559 | 564 | ||
560 | if (ev.isAllDay()) { | 565 | if (ev.isAllDay()) { |
561 | if (!ev.hasRepeat()) | 566 | if (!ev.hasRepeat()) |
562 | normalAllDay = TRUE; | 567 | normalAllDay = TRUE; |
563 | else | 568 | else |
564 | repeatAllDay = TRUE; | 569 | repeatAllDay = TRUE; |
565 | } else { | 570 | } else { |
566 | int sLine, eLine; | 571 | int sLine, eLine; |
567 | if (f == 0) | 572 | if (f == 0) |
568 | sLine = 0; | 573 | sLine = 0; |
569 | else if (f < 8 ) | 574 | else if (f < 8 ) |
570 | sLine = 1; | 575 | sLine = 1; |
571 | else if (f >= 17) | 576 | else if (f >= 17) |
572 | sLine = w - 4; | 577 | sLine = w - 4; |
573 | else { | 578 | else { |
574 | sLine = (f - 8) * (w - 8); | 579 | sLine = (f - 8) * (w - 8); |
575 | if (sLine) | 580 | if (sLine) |
576 | sLine /= 8; | 581 | sLine /= 8; |
577 | sLine += 4; | 582 | sLine += 4; |
578 | } | 583 | } |
579 | if (t == 23) | 584 | if (t == 23) |
580 | eLine = w; | 585 | eLine = w; |
581 | else if (t < 8) | 586 | else if (t < 8) |
582 | eLine = 4; | 587 | eLine = 4; |
583 | else if (t >= 17) | 588 | else if (t >= 17) |
584 | eLine = w - 1; | 589 | eLine = w - 1; |
585 | else { | 590 | else { |
586 | eLine = (t - 8) * (w - 8); | 591 | eLine = (t - 8) * (w - 8); |
587 | if (eLine) | 592 | if (eLine) |
588 | eLine /= 8; | 593 | eLine /= 8; |
589 | eLine += 4; | 594 | eLine += 4; |
590 | } | 595 | } |
591 | if (!ev.hasRepeat()) { | 596 | if (!ev.hasRepeat()) { |
592 | normalLine.push(sLine); | 597 | normalLine.push(sLine); |
593 | normalLine.push(eLine); | 598 | normalLine.push(eLine); |
594 | } else { | 599 | } else { |
595 | repeatLine.push(sLine); | 600 | repeatLine.push(sLine); |
596 | repeatLine.push(eLine); | 601 | repeatLine.push(eLine); |
597 | } | 602 | } |
598 | } | 603 | } |
599 | } | 604 | } |
600 | 605 | ||
601 | // draw the background | 606 | // draw the background |
602 | if (normalAllDay || repeatAllDay || travelAllDay) { | 607 | if (normalAllDay || repeatAllDay || travelAllDay) { |
603 | p->save(); | 608 | p->save(); |
604 | 609 | ||
605 | if (normalAllDay) | 610 | if (normalAllDay) |
606 | if (repeatAllDay) { | 611 | if (repeatAllDay) { |
607 | p->fillRect( 0, 0, cr.width(), cr.height() / 2, | 612 | p->fillRect( 0, 0, cr.width(), cr.height() / 2, |
608 | colorNormalLight ); | 613 | colorNormalLight ); |
609 | p->fillRect( 0, cr.height() / 2, cr.width(), cr.height() / 2, | 614 | p->fillRect( 0, cr.height() / 2, cr.width(), cr.height() / 2, |
610 | colorRepeatLight ); | 615 | colorRepeatLight ); |
611 | } else | 616 | } else |
612 | p->fillRect( 0, 0, cr.width(), cr.height(), | 617 | p->fillRect( 0, 0, cr.width(), cr.height(), |
613 | colorNormalLight ); | 618 | colorNormalLight ); |
614 | else if (repeatAllDay) | 619 | else if (repeatAllDay) |
615 | p->fillRect( 0, 0, cr.width(), cr.height(), | 620 | p->fillRect( 0, 0, cr.width(), cr.height(), |
616 | colorRepeatLight ); | 621 | colorRepeatLight ); |
617 | } else { | 622 | } else { |
618 | p->fillRect( 0, 0, cr.width(), | 623 | p->fillRect( 0, 0, cr.width(), |
619 | cr.height(), selected | 624 | cr.height(), selected |
620 | ? g.brush( QColorGroup::Highlight ) | 625 | ? g.brush( QColorGroup::Highlight ) |
621 | : g.brush( QColorGroup::Base ) ); | 626 | : g.brush( QColorGroup::Base ) ); |
622 | } | 627 | } |
623 | 628 | ||
624 | // The lines | 629 | // The lines |
625 | // now for the lines. | 630 | // now for the lines. |
626 | int h = 5; | 631 | int h = 5; |
627 | int y = cr.height() / 2 - h; | 632 | int y = cr.height() / 2 - h; |
628 | 633 | ||
629 | while(normalLine.count() >= 2) { | 634 | while(normalLine.count() >= 2) { |
630 | int x2 = normalLine.pop(); | 635 | int x2 = normalLine.pop(); |
631 | int x1 = normalLine.pop(); | 636 | int x1 = normalLine.pop(); |
632 | if (x2 < x1 + 2) | 637 | if (x2 < x1 + 2) |
633 | x2 = x1 + 2; | 638 | x2 = x1 + 2; |
634 | p->fillRect(x1, y, x2 - x1, h, colorNormal); | 639 | p->fillRect(x1, y, x2 - x1, h, colorNormal); |
635 | } | 640 | } |
636 | 641 | ||
637 | y += h; | 642 | y += h; |
638 | 643 | ||
639 | while(repeatLine.count() >= 2) { | 644 | while(repeatLine.count() >= 2) { |
640 | int x2 = repeatLine.pop(); | 645 | int x2 = repeatLine.pop(); |
641 | int x1 = repeatLine.pop(); | 646 | int x1 = repeatLine.pop(); |
642 | if (x2 < x1 + 2) | 647 | if (x2 < x1 + 2) |
643 | x2 = x1 + 2; | 648 | x2 = x1 + 2; |
644 | p->fillRect(x1, y, x2 - x1, h, colorRepeat); | 649 | p->fillRect(x1, y, x2 - x1, h, colorRepeat); |
645 | } | 650 | } |
646 | 651 | ||
647 | 652 | ||
648 | // Finally, draw the number. | 653 | // Finally, draw the number. |
649 | QFont f = p->font(); | 654 | QFont f = p->font(); |
650 | f.setPointSize( ( f.pointSize() / 3 ) * 2 ); | 655 | f.setPointSize( ( f.pointSize() / 3 ) * 2 ); |
651 | p->setFont( f ); | 656 | p->setFont( f ); |
652 | QFontMetrics fm( f ); | 657 | QFontMetrics fm( f ); |
653 | p->drawText( 1, 1 + fm.ascent(), QString::number( day() ) ); | 658 | p->drawText( 1, 1 + fm.ascent(), QString::number( day() ) ); |
654 | 659 | ||
655 | p->restore(); | 660 | p->restore(); |
656 | } | 661 | } |
657 | 662 | ||
658 | 663 | ||
659 | 664 | ||
660 | void DayItemMonth::setType( Calendar::Day::Type t ) | 665 | void DayItemMonth::setType( Calendar::Day::Type t ) |
661 | { | 666 | { |
662 | switch ( t ) { | 667 | switch ( t ) { |
663 | case Calendar::Day::PrevMonth: | 668 | case Calendar::Day::PrevMonth: |
664 | case Calendar::Day::NextMonth: | 669 | case Calendar::Day::NextMonth: |
665 | back = QBrush( QColor( 224, 224, 224 ) ); | 670 | back = QBrush( QColor( 224, 224, 224 ) ); |
666 | forg = black; | 671 | forg = black; |
667 | break; | 672 | break; |
668 | case Calendar::Day::ThisMonth: | 673 | case Calendar::Day::ThisMonth: |
669 | back = QBrush( white ); | 674 | back = QBrush( white ); |
670 | forg = black; | 675 | forg = black; |
671 | break; | 676 | break; |
672 | } | 677 | } |
673 | typ = t; | 678 | typ = t; |
674 | } | 679 | } |
675 | 680 | ||
676 | 681 | ||
677 | 682 | ||
678 | DateButton::DateButton( bool longDate, QWidget *parent, const char * name ) | 683 | DateButton::DateButton( bool longDate, QWidget *parent, const char * name ) |
679 | :QPushButton( parent, name ) | 684 | :QPushButton( parent, name ) |
680 | { | 685 | { |
681 | longFormat = longDate; | 686 | longFormat = longDate; |
682 | df = DateFormat('/', DateFormat::MonthDayYear, DateFormat::MonthDayYear); | 687 | df = DateFormat('/', DateFormat::MonthDayYear, DateFormat::MonthDayYear); |
683 | setDate( QDate::currentDate() ); | 688 | setDate( QDate::currentDate() ); |
684 | 689 | ||
685 | connect(this,SIGNAL(pressed()),this,SLOT(pickDate())); | 690 | connect(this,SIGNAL(pressed()),this,SLOT(pickDate())); |
686 | 691 | ||
687 | 692 | ||
688 | } | 693 | } |
689 | 694 | ||
690 | 695 | ||
691 | void DateButton::pickDate() | 696 | void DateButton::pickDate() |
692 | { | 697 | { |
693 | static QPopupMenu *m1 = 0; | 698 | static QPopupMenu *m1 = 0; |
694 | static DateBookMonth *picker = 0; | 699 | static DateBookMonth *picker = 0; |
695 | if ( !m1 ) { | 700 | if ( !m1 ) { |
696 | m1 = new QPopupMenu( this ); | 701 | m1 = new QPopupMenu( this ); |
697 | picker = new DateBookMonth( m1, 0, TRUE ); | 702 | picker = new DateBookMonth( m1, 0, TRUE ); |
698 | m1->insertItem( picker ); | 703 | m1->insertItem( picker ); |
699 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), | 704 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), |
700 | this, SLOT( setDate( int, int, int ) ) ); | 705 | this, SLOT( setDate( int, int, int ) ) ); |
701 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), | 706 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), |
702 | this, SIGNAL( dateSelected( int, int, int ) ) ); | 707 | this, SIGNAL( dateSelected( int, int, int ) ) ); |
703 | connect( m1, SIGNAL( aboutToHide() ), | 708 | connect( m1, SIGNAL( aboutToHide() ), |
704 | this, SLOT( gotHide() ) ); | 709 | this, SLOT( gotHide() ) ); |
705 | } | 710 | } |
706 | picker->slotWeekChange( weekStartsMonday ); | 711 | picker->slotWeekChange( weekStartsMonday ); |
707 | picker->setDate( currDate.year(), currDate.month(), currDate.day() ); | 712 | picker->setDate( currDate.year(), currDate.month(), currDate.day() ); |
708 | m1->popup(mapToGlobal(QPoint(0,height()))); | 713 | m1->popup(mapToGlobal(QPoint(0,height()))); |
709 | picker->setFocus(); | 714 | picker->setFocus(); |
710 | } | 715 | } |
711 | 716 | ||
712 | 717 | ||
713 | void DateButton::gotHide() | 718 | void DateButton::gotHide() |
714 | { | 719 | { |
715 | // we have to redo the button... | 720 | // we have to redo the button... |
716 | setDown( false ); | 721 | setDown( false ); |
717 | } | 722 | } |
718 | 723 | ||
719 | 724 | ||
720 | // void dateSelected( int year, int month, int day ); | 725 | // void dateSelected( int year, int month, int day ); |
721 | 726 | ||
722 | void DateButton::setWeekStartsMonday( int b ) | 727 | void DateButton::setWeekStartsMonday( int b ) |
723 | { | 728 | { |
724 | weekStartsMonday = b; | 729 | weekStartsMonday = b; |
725 | } | 730 | } |
726 | 731 | ||
727 | void DateButton::setDate( int y, int m, int d ) | 732 | void DateButton::setDate( int y, int m, int d ) |
728 | { | 733 | { |
729 | setDate( QDate( y,m,d) ); | 734 | setDate( QDate( y,m,d) ); |
730 | } | 735 | } |
731 | 736 | ||
732 | void DateButton::setDate( QDate d ) | 737 | void DateButton::setDate( QDate d ) |
733 | { | 738 | { |
734 | currDate = d; | 739 | currDate = d; |
735 | setText( longFormat ? TimeString::longDateString( d, df ) : | 740 | setText( longFormat ? TimeString::longDateString( d, df ) : |
736 | TimeString::shortDate( d, df ) ); | 741 | TimeString::shortDate( d, df ) ); |
737 | 742 | ||
738 | } | 743 | } |
739 | 744 | ||
740 | void DateButton::setDateFormat( DateFormat f ) | 745 | void DateButton::setDateFormat( DateFormat f ) |
741 | { | 746 | { |
742 | df = f; | 747 | df = f; |
743 | setDate( currDate ); | 748 | setDate( currDate ); |
744 | } | 749 | } |
745 | 750 | ||
746 | bool DateButton::customWhatsThis() const | 751 | bool DateButton::customWhatsThis() const |
747 | { | 752 | { |
748 | return TRUE; | 753 | return TRUE; |
749 | } | 754 | } |
750 | 755 | ||
751 | 756 | ||
752 | // this class is only here for Sharp ROM compatibility | 757 | // this class is only here for Sharp ROM compatibility |
753 | // I have reverse engineered this class and it seems to | 758 | // I have reverse engineered this class and it seems to |
754 | // work (only qtmail seems to use it) - sandman | 759 | // work (only qtmail seems to use it) - sandman |
755 | // DO NOT USE IT IN NEW CODE !! | 760 | // DO NOT USE IT IN NEW CODE !! |
756 | 761 | ||
757 | DateBookMonthPopup::DateBookMonthPopup ( QWidget *w ) | 762 | DateBookMonthPopup::DateBookMonthPopup ( QWidget *w ) |
758 | : QPopupMenu ( w ) | 763 | : QPopupMenu ( w ) |
759 | { | 764 | { |
760 | m_dbm = new DateBookMonth( this, 0, TRUE ); | 765 | m_dbm = new DateBookMonth( this, 0, TRUE ); |
761 | insertItem( m_dbm ); | 766 | insertItem( m_dbm ); |
762 | } | 767 | } |
diff --git a/library/global.cpp b/library/global.cpp index ce39751..189b830 100644 --- a/library/global.cpp +++ b/library/global.cpp | |||
@@ -1,849 +1,857 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #define QTOPIA_INTERNAL_LANGLIST | 20 | #define QTOPIA_INTERNAL_LANGLIST |
21 | #include <qpe/qpedebug.h> | 21 | #include <qpe/qpedebug.h> |
22 | #include <qpe/global.h> | 22 | #include <qpe/global.h> |
23 | #include <qpe/qdawg.h> | 23 | #include <qpe/qdawg.h> |
24 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
25 | #include <qpe/resource.h> | 25 | #include <qpe/resource.h> |
26 | #include <qpe/storage.h> | 26 | #include <qpe/storage.h> |
27 | #include <qpe/applnk.h> | 27 | #include <qpe/applnk.h> |
28 | #include <qpe/qcopenvelope_qws.h> | 28 | #include <qpe/qcopenvelope_qws.h> |
29 | 29 | ||
30 | #include <qfile.h> | 30 | #include <qfile.h> |
31 | #include <qlabel.h> | 31 | #include <qlabel.h> |
32 | #include <qtimer.h> | 32 | #include <qtimer.h> |
33 | #include <qmap.h> | 33 | #include <qmap.h> |
34 | #include <qdict.h> | 34 | #include <qdict.h> |
35 | #include <qdir.h> | 35 | #include <qdir.h> |
36 | #include <qmessagebox.h> | 36 | #include <qmessagebox.h> |
37 | #include <qregexp.h> | 37 | #include <qregexp.h> |
38 | 38 | ||
39 | #include <stdlib.h> | 39 | #include <stdlib.h> |
40 | #include <sys/stat.h> | 40 | #include <sys/stat.h> |
41 | #include <sys/wait.h> | 41 | #include <sys/wait.h> |
42 | #include <sys/types.h> | 42 | #include <sys/types.h> |
43 | #include <fcntl.h> | 43 | #include <fcntl.h> |
44 | #include <unistd.h> | 44 | #include <unistd.h> |
45 | #include <errno.h> | 45 | #include <errno.h> |
46 | 46 | ||
47 | #include <qwindowsystem_qws.h> // for qwsServer | 47 | #include <qwindowsystem_qws.h> // for qwsServer |
48 | #include <qdatetime.h> | 48 | #include <qdatetime.h> |
49 | 49 | ||
50 | #include <qfile.h> | 50 | #include <qfile.h> |
51 | 51 | ||
52 | namespace { | 52 | namespace { |
53 | // checks if the storage should be searched | 53 | // checks if the storage should be searched |
54 | bool checkStorage(const QString &path ){ // this is a small Config replacement cause config is too limited -zecke | 54 | bool checkStorage(const QString &path ){ // this is a small Config replacement cause config is too limited -zecke |
55 | QFile file(path ); | 55 | QFile file(path ); |
56 | if(!file.open(IO_ReadOnly ) ) | 56 | if(!file.open(IO_ReadOnly ) ) |
57 | return true; | 57 | return true; |
58 | 58 | ||
59 | QByteArray array = file.readAll(); | 59 | QByteArray array = file.readAll(); |
60 | QStringList list = QStringList::split('\n', QString( array ) ); | 60 | QStringList list = QStringList::split('\n', QString( array ) ); |
61 | for(QStringList::Iterator it = list.begin(); it != list.end(); ++it ){ | 61 | for(QStringList::Iterator it = list.begin(); it != list.end(); ++it ){ |
62 | if( (*it).startsWith("autocheck = 0" ) ){ | 62 | if( (*it).startsWith("autocheck = 0" ) ){ |
63 | return false; | 63 | return false; |
64 | }else if( (*it).startsWith("autocheck = 1" ) ){ | 64 | }else if( (*it).startsWith("autocheck = 1" ) ){ |
65 | return true; | 65 | return true; |
66 | } | 66 | } |
67 | } | 67 | } |
68 | return true; | 68 | return true; |
69 | } | 69 | } |
70 | } | 70 | } |
71 | 71 | ||
72 | //#include "quickexec_p.h" | 72 | //#include "quickexec_p.h" |
73 | 73 | ||
74 | class Emitter : public QObject { | 74 | class Emitter : public QObject { |
75 | Q_OBJECT | 75 | Q_OBJECT |
76 | public: | 76 | public: |
77 | Emitter( QWidget* receiver, const QString& document ) | 77 | Emitter( QWidget* receiver, const QString& document ) |
78 | { | 78 | { |
79 | connect(this, SIGNAL(setDocument(const QString&)), | 79 | connect(this, SIGNAL(setDocument(const QString&)), |
80 | receiver, SLOT(setDocument(const QString&))); | 80 | receiver, SLOT(setDocument(const QString&))); |
81 | emit setDocument(document); | 81 | emit setDocument(document); |
82 | disconnect(this, SIGNAL(setDocument(const QString&)), | 82 | disconnect(this, SIGNAL(setDocument(const QString&)), |
83 | receiver, SLOT(setDocument(const QString&))); | 83 | receiver, SLOT(setDocument(const QString&))); |
84 | } | 84 | } |
85 | 85 | ||
86 | signals: | 86 | signals: |
87 | void setDocument(const QString&); | 87 | void setDocument(const QString&); |
88 | }; | 88 | }; |
89 | 89 | ||
90 | 90 | ||
91 | class StartingAppList : public QObject { | 91 | class StartingAppList : public QObject { |
92 | Q_OBJECT | 92 | Q_OBJECT |
93 | public: | 93 | public: |
94 | static void add( const QString& name ); | 94 | static void add( const QString& name ); |
95 | static bool isStarting( const QString name ); | 95 | static bool isStarting( const QString name ); |
96 | private slots: | 96 | private slots: |
97 | void handleNewChannel( const QString &); | 97 | void handleNewChannel( const QString &); |
98 | private: | 98 | private: |
99 | StartingAppList( QObject *parent=0, const char* name=0 ) ; | 99 | StartingAppList( QObject *parent=0, const char* name=0 ) ; |
100 | 100 | ||
101 | QDict<QTime> dict; | 101 | QDict<QTime> dict; |
102 | static StartingAppList *appl; | 102 | static StartingAppList *appl; |
103 | }; | 103 | }; |
104 | 104 | ||
105 | StartingAppList* StartingAppList::appl = 0; | 105 | StartingAppList* StartingAppList::appl = 0; |
106 | 106 | ||
107 | StartingAppList::StartingAppList( QObject *parent, const char* name ) | 107 | StartingAppList::StartingAppList( QObject *parent, const char* name ) |
108 | :QObject( parent, name ) | 108 | :QObject( parent, name ) |
109 | { | 109 | { |
110 | #if QT_VERSION >= 232 && defined(QWS) | 110 | #if QT_VERSION >= 232 && defined(QWS) |
111 | connect( qwsServer, SIGNAL( newChannel(const QString&)), | 111 | connect( qwsServer, SIGNAL( newChannel(const QString&)), |
112 | this, SLOT( handleNewChannel(const QString&)) ); | 112 | this, SLOT( handleNewChannel(const QString&)) ); |
113 | #endif | 113 | #endif |
114 | dict.setAutoDelete( TRUE ); | 114 | dict.setAutoDelete( TRUE ); |
115 | } | 115 | } |
116 | 116 | ||
117 | void StartingAppList::add( const QString& name ) | 117 | void StartingAppList::add( const QString& name ) |
118 | { | 118 | { |
119 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) | 119 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) |
120 | if ( !appl ) | 120 | if ( !appl ) |
121 | appl = new StartingAppList; | 121 | appl = new StartingAppList; |
122 | QTime *t = new QTime; | 122 | QTime *t = new QTime; |
123 | t->start(); | 123 | t->start(); |
124 | appl->dict.insert( "QPE/Application/" + name, t ); | 124 | appl->dict.insert( "QPE/Application/" + name, t ); |
125 | #endif | 125 | #endif |
126 | } | 126 | } |
127 | 127 | ||
128 | bool StartingAppList::isStarting( const QString name ) | 128 | bool StartingAppList::isStarting( const QString name ) |
129 | { | 129 | { |
130 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) | 130 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) |
131 | if ( appl ) { | 131 | if ( appl ) { |
132 | QTime *t = appl->dict.find( "QPE/Application/" + name ); | 132 | QTime *t = appl->dict.find( "QPE/Application/" + name ); |
133 | if ( !t ) | 133 | if ( !t ) |
134 | return FALSE; | 134 | return FALSE; |
135 | if ( t->elapsed() > 10000 ) { | 135 | if ( t->elapsed() > 10000 ) { |
136 | // timeout in case of crash or something | 136 | // timeout in case of crash or something |
137 | appl->dict.remove( "QPE/Application/" + name ); | 137 | appl->dict.remove( "QPE/Application/" + name ); |
138 | return FALSE; | 138 | return FALSE; |
139 | } | 139 | } |
140 | return TRUE; | 140 | return TRUE; |
141 | } | 141 | } |
142 | #endif | 142 | #endif |
143 | return FALSE; | 143 | return FALSE; |
144 | } | 144 | } |
145 | 145 | ||
146 | void StartingAppList::handleNewChannel( const QString & name ) | 146 | void StartingAppList::handleNewChannel( const QString & name ) |
147 | { | 147 | { |
148 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) | 148 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) |
149 | dict.remove( name ); | 149 | dict.remove( name ); |
150 | #endif | 150 | #endif |
151 | } | 151 | } |
152 | 152 | ||
153 | static bool docDirCreated = FALSE; | 153 | static bool docDirCreated = FALSE; |
154 | static QDawg* fixed_dawg = 0; | 154 | static QDawg* fixed_dawg = 0; |
155 | static QDict<QDawg> *named_dawg = 0; | 155 | static QDict<QDawg> *named_dawg = 0; |
156 | 156 | ||
157 | static QString qpeDir() | 157 | static QString qpeDir() |
158 | { | 158 | { |
159 | QString dir = getenv("OPIEDIR"); | 159 | QString dir = getenv("OPIEDIR"); |
160 | if ( dir.isEmpty() ) dir = ".."; | 160 | if ( dir.isEmpty() ) dir = ".."; |
161 | return dir; | 161 | return dir; |
162 | } | 162 | } |
163 | 163 | ||
164 | static QString dictDir() | 164 | static QString dictDir() |
165 | { | 165 | { |
166 | return qpeDir() + "/etc/dict"; | 166 | return qpeDir() + "/etc/dict"; |
167 | } | 167 | } |
168 | 168 | ||
169 | /*! | 169 | /*! |
170 | \class Global global.h | 170 | \class Global global.h |
171 | \brief The Global class provides application-wide global functions. | 171 | \brief The Global class provides application-wide global functions. |
172 | 172 | ||
173 | The Global functions are grouped as follows: | 173 | The Global functions are grouped as follows: |
174 | \tableofcontents | 174 | \tableofcontents |
175 | 175 | ||
176 | \section1 User Interface | 176 | \section1 User Interface |
177 | 177 | ||
178 | The statusMessage() function provides short-duration messages to the | 178 | The statusMessage() function provides short-duration messages to the |
179 | user. The showInputMethod() function shows the current input method, | 179 | user. The showInputMethod() function shows the current input method, |
180 | and hideInputMethod() hides the input method. | 180 | and hideInputMethod() hides the input method. |
181 | 181 | ||
182 | \section1 Document related | 182 | \section1 Document related |
183 | 183 | ||
184 | The findDocuments() function creates a set of \link doclnk.html | 184 | The findDocuments() function creates a set of \link doclnk.html |
185 | DocLnk\endlink objects in a particular folder. | 185 | DocLnk\endlink objects in a particular folder. |
186 | 186 | ||
187 | \section1 Filesystem related | 187 | \section1 Filesystem related |
188 | 188 | ||
189 | Global provides an applicationFileName() function that returns the | 189 | Global provides an applicationFileName() function that returns the |
190 | full path of an application-specific file. | 190 | full path of an application-specific file. |
191 | 191 | ||
192 | The execute() function runs an application. | 192 | The execute() function runs an application. |
193 | 193 | ||
194 | \section1 Word list related | 194 | \section1 Word list related |
195 | 195 | ||
196 | A list of words relevant to the current locale is maintained by the | 196 | A list of words relevant to the current locale is maintained by the |
197 | system. The list is held in a \link qdawg.html DAWG\endlink | 197 | system. The list is held in a \link qdawg.html DAWG\endlink |
198 | (implemented by the QDawg class). This list is used, for example, by | 198 | (implemented by the QDawg class). This list is used, for example, by |
199 | the pickboard input method. | 199 | the pickboard input method. |
200 | 200 | ||
201 | The global QDawg is returned by fixedDawg(); this cannot be updated. | 201 | The global QDawg is returned by fixedDawg(); this cannot be updated. |
202 | An updatable copy of the global QDawg is returned by addedDawg(). | 202 | An updatable copy of the global QDawg is returned by addedDawg(). |
203 | Applications may have their own word lists stored in \l{QDawg}s | 203 | Applications may have their own word lists stored in \l{QDawg}s |
204 | which are returned by dawg(). Use addWords() to add words to the | 204 | which are returned by dawg(). Use addWords() to add words to the |
205 | updateable copy of the global QDawg or to named application | 205 | updateable copy of the global QDawg or to named application |
206 | \l{QDawg}s. | 206 | \l{QDawg}s. |
207 | 207 | ||
208 | \section1 Quoting | 208 | \section1 Quoting |
209 | 209 | ||
210 | The shellQuote() function quotes a string suitable for passing to a | 210 | The shellQuote() function quotes a string suitable for passing to a |
211 | shell. The stringQuote() function backslash escapes '\' and '"' | 211 | shell. The stringQuote() function backslash escapes '\' and '"' |
212 | characters. | 212 | characters. |
213 | 213 | ||
214 | \section1 Hardware | 214 | \section1 Hardware |
215 | 215 | ||
216 | The writeHWClock() function sets the hardware clock to the system | 216 | The writeHWClock() function sets the hardware clock to the system |
217 | clock's date and time. | 217 | clock's date and time. |
218 | 218 | ||
219 | \ingroup qtopiaemb | 219 | \ingroup qtopiaemb |
220 | */ | 220 | */ |
221 | 221 | ||
222 | /*! | 222 | /*! |
223 | \internal | 223 | \internal |
224 | */ | 224 | */ |
225 | Global::Global() | 225 | Global::Global() |
226 | { | 226 | { |
227 | } | 227 | } |
228 | 228 | ||
229 | /*! | 229 | /*! |
230 | Returns the unchangeable QDawg that contains general | 230 | Returns the unchangeable QDawg that contains general |
231 | words for the current locale. | 231 | words for the current locale. |
232 | 232 | ||
233 | \sa addedDawg() | 233 | \sa addedDawg() |
234 | */ | 234 | */ |
235 | const QDawg& Global::fixedDawg() | 235 | const QDawg& Global::fixedDawg() |
236 | { | 236 | { |
237 | if ( !fixed_dawg ) { | 237 | if ( !fixed_dawg ) { |
238 | if ( !docDirCreated ) | 238 | if ( !docDirCreated ) |
239 | createDocDir(); | 239 | createDocDir(); |
240 | 240 | ||
241 | fixed_dawg = new QDawg; | 241 | fixed_dawg = new QDawg; |
242 | QString dawgfilename = dictDir() + "/dawg"; | 242 | QString dawgfilename = dictDir() + "/dawg"; |
243 | QString words_lang; | 243 | QString words_lang; |
244 | QStringList langs = Global::languageList(); | 244 | QStringList langs = Global::languageList(); |
245 | for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) { | 245 | for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) { |
246 | QString lang = *it; | 246 | QString lang = *it; |
247 | words_lang = dictDir() + "/words." + lang; | 247 | words_lang = dictDir() + "/words." + lang; |
248 | QString dawgfilename_lang = dawgfilename + "." + lang; | 248 | QString dawgfilename_lang = dawgfilename + "." + lang; |
249 | if ( QFile::exists(dawgfilename_lang) || | 249 | if ( QFile::exists(dawgfilename_lang) || |
250 | QFile::exists(words_lang) ) { | 250 | QFile::exists(words_lang) ) { |
251 | dawgfilename = dawgfilename_lang; | 251 | dawgfilename = dawgfilename_lang; |
252 | break; | 252 | break; |
253 | } | 253 | } |
254 | } | 254 | } |
255 | QFile dawgfile(dawgfilename); | 255 | QFile dawgfile(dawgfilename); |
256 | 256 | ||
257 | if ( !dawgfile.exists() ) { | 257 | if ( !dawgfile.exists() ) { |
258 | QString fn = dictDir() + "/words"; | 258 | QString fn = dictDir() + "/words"; |
259 | if ( QFile::exists(words_lang) ) | 259 | if ( QFile::exists(words_lang) ) |
260 | fn = words_lang; | 260 | fn = words_lang; |
261 | QFile in(fn); | 261 | QFile in(fn); |
262 | if ( in.open(IO_ReadOnly) ) { | 262 | if ( in.open(IO_ReadOnly) ) { |
263 | fixed_dawg->createFromWords(&in); | 263 | fixed_dawg->createFromWords(&in); |
264 | dawgfile.open(IO_WriteOnly); | 264 | dawgfile.open(IO_WriteOnly); |
265 | fixed_dawg->write(&dawgfile); | 265 | fixed_dawg->write(&dawgfile); |
266 | dawgfile.close(); | 266 | dawgfile.close(); |
267 | } | 267 | } |
268 | } else { | 268 | } else { |
269 | fixed_dawg->readFile(dawgfilename); | 269 | fixed_dawg->readFile(dawgfilename); |
270 | } | 270 | } |
271 | } | 271 | } |
272 | 272 | ||
273 | return *fixed_dawg; | 273 | return *fixed_dawg; |
274 | } | 274 | } |
275 | 275 | ||
276 | /*! | 276 | /*! |
277 | Returns the changeable QDawg that contains general | 277 | Returns the changeable QDawg that contains general |
278 | words for the current locale. | 278 | words for the current locale. |
279 | 279 | ||
280 | \sa fixedDawg() | 280 | \sa fixedDawg() |
281 | */ | 281 | */ |
282 | const QDawg& Global::addedDawg() | 282 | const QDawg& Global::addedDawg() |
283 | { | 283 | { |
284 | return dawg("local"); | 284 | return dawg("local"); |
285 | } | 285 | } |
286 | 286 | ||
287 | /*! | 287 | /*! |
288 | Returns the QDawg with the given \a name. | 288 | Returns the QDawg with the given \a name. |
289 | This is an application-specific word list. | 289 | This is an application-specific word list. |
290 | 290 | ||
291 | \a name should not contain "/". | 291 | \a name should not contain "/". |
292 | */ | 292 | */ |
293 | const QDawg& Global::dawg(const QString& name) | 293 | const QDawg& Global::dawg(const QString& name) |
294 | { | 294 | { |
295 | createDocDir(); | 295 | createDocDir(); |
296 | if ( !named_dawg ) | 296 | if ( !named_dawg ) |
297 | named_dawg = new QDict<QDawg>; | 297 | named_dawg = new QDict<QDawg>; |
298 | QDawg* r = named_dawg->find(name); | 298 | QDawg* r = named_dawg->find(name); |
299 | if ( !r ) { | 299 | if ( !r ) { |
300 | r = new QDawg; | 300 | r = new QDawg; |
301 | named_dawg->insert(name,r); | 301 | named_dawg->insert(name,r); |
302 | QString dawgfilename = applicationFileName("Dictionary", name ) + ".dawg"; | 302 | QString dawgfilename = applicationFileName("Dictionary", name ) + ".dawg"; |
303 | QFile dawgfile(dawgfilename); | 303 | QFile dawgfile(dawgfilename); |
304 | if ( dawgfile.open(IO_ReadOnly) ) | 304 | if ( dawgfile.open(IO_ReadOnly) ) |
305 | r->readFile(dawgfilename); | 305 | r->readFile(dawgfilename); |
306 | } | 306 | } |
307 | return *r; | 307 | return *r; |
308 | } | 308 | } |
309 | 309 | ||
310 | /*! | 310 | /*! |
311 | \overload | 311 | \overload |
312 | Adds \a wordlist to the addedDawg(). | 312 | Adds \a wordlist to the addedDawg(). |
313 | 313 | ||
314 | Note that the addition of words persists between program executions | 314 | Note that the addition of words persists between program executions |
315 | (they are saved in the dictionary files), so you should confirm the | 315 | (they are saved in the dictionary files), so you should confirm the |
316 | words with the user before adding them. | 316 | words with the user before adding them. |
317 | */ | 317 | */ |
318 | void Global::addWords(const QStringList& wordlist) | 318 | void Global::addWords(const QStringList& wordlist) |
319 | { | 319 | { |
320 | addWords("local",wordlist); | 320 | addWords("local",wordlist); |
321 | } | 321 | } |
322 | 322 | ||
323 | /*! | 323 | /*! |
324 | \overload | 324 | \overload |
325 | Adds \a wordlist to the addedDawg(). | 325 | Adds \a wordlist to the addedDawg(). |
326 | 326 | ||
327 | Note that the addition of words persists between program executions | 327 | Note that the addition of words persists between program executions |
328 | (they are saved in the dictionary files), so you should confirm the | 328 | (they are saved in the dictionary files), so you should confirm the |
329 | words with the user before adding them. | 329 | words with the user before adding them. |
330 | */ | 330 | */ |
331 | void Global::addWords(const QString& dictname, const QStringList& wordlist) | 331 | void Global::addWords(const QString& dictname, const QStringList& wordlist) |
332 | { | 332 | { |
333 | QDawg& d = (QDawg&)dawg(dictname); | 333 | QDawg& d = (QDawg&)dawg(dictname); |
334 | QStringList all = d.allWords() + wordlist; | 334 | QStringList all = d.allWords() + wordlist; |
335 | d.createFromWords(all); | 335 | d.createFromWords(all); |
336 | 336 | ||
337 | QString dawgfilename = applicationFileName("Dictionary", dictname) + ".dawg"; | 337 | QString dawgfilename = applicationFileName("Dictionary", dictname) + ".dawg"; |
338 | QFile dawgfile(dawgfilename); | 338 | QFile dawgfile(dawgfilename); |
339 | if ( dawgfile.open(IO_WriteOnly) ) { | 339 | if ( dawgfile.open(IO_WriteOnly) ) { |
340 | d.write(&dawgfile); | 340 | d.write(&dawgfile); |
341 | dawgfile.close(); | 341 | dawgfile.close(); |
342 | } | 342 | } |
343 | 343 | ||
344 | // #### Re-read the dawg here if we use mmap(). | 344 | // #### Re-read the dawg here if we use mmap(). |
345 | 345 | ||
346 | // #### Signal other processes to re-read. | 346 | // #### Signal other processes to re-read. |
347 | } | 347 | } |
348 | 348 | ||
349 | 349 | ||
350 | /*! | 350 | /*! |
351 | Returns the full path for the application called \a appname, with the | 351 | Returns the full path for the application called \a appname, with the |
352 | given \a filename. Returns QString::null if there was a problem creating | 352 | given \a filename. Returns QString::null if there was a problem creating |
353 | the directory tree for \a appname. | 353 | the directory tree for \a appname. |
354 | If \a filename contains "/", it is the caller's responsibility to | 354 | If \a filename contains "/", it is the caller's responsibility to |
355 | ensure that those directories exist. | 355 | ensure that those directories exist. |
356 | */ | 356 | */ |
357 | QString Global::applicationFileName(const QString& appname, const QString& filename) | 357 | QString Global::applicationFileName(const QString& appname, const QString& filename) |
358 | { | 358 | { |
359 | QDir d; | 359 | QDir d; |
360 | QString r = getenv("HOME"); | 360 | QString r = getenv("HOME"); |
361 | r += "/Applications/"; | 361 | r += "/Applications/"; |
362 | if ( !QFile::exists( r ) ) | 362 | if ( !QFile::exists( r ) ) |
363 | if ( d.mkdir(r) == false ) | 363 | if ( d.mkdir(r) == false ) |
364 | return QString::null; | 364 | return QString::null; |
365 | r += appname; | 365 | r += appname; |
366 | if ( !QFile::exists( r ) ) | 366 | if ( !QFile::exists( r ) ) |
367 | if ( d.mkdir(r) == false ) | 367 | if ( d.mkdir(r) == false ) |
368 | return QString::null; | 368 | return QString::null; |
369 | r += "/"; r += filename; | 369 | r += "/"; r += filename; |
370 | return r; | 370 | return r; |
371 | } | 371 | } |
372 | 372 | ||
373 | /*! | 373 | /*! |
374 | \internal | 374 | \internal |
375 | */ | 375 | */ |
376 | void Global::createDocDir() | 376 | void Global::createDocDir() |
377 | { | 377 | { |
378 | if ( !docDirCreated ) { | 378 | if ( !docDirCreated ) { |
379 | docDirCreated = TRUE; | 379 | docDirCreated = TRUE; |
380 | mkdir( QPEApplication::documentDir().latin1(), 0755 ); | 380 | mkdir( QPEApplication::documentDir().latin1(), 0755 ); |
381 | } | 381 | } |
382 | } | 382 | } |
383 | 383 | ||
384 | 384 | ||
385 | /*! | 385 | /*! |
386 | Displays a status \a message to the user. This usually appears | 386 | Displays a status \a message to the user. This usually appears |
387 | in the taskbar for a short amount of time, then disappears. | 387 | in the taskbar for a short amount of time, then disappears. |
388 | */ | 388 | */ |
389 | void Global::statusMessage(const QString& message) | 389 | void Global::statusMessage(const QString& message) |
390 | { | 390 | { |
391 | #if !defined(QT_NO_COP) | 391 | #if !defined(QT_NO_COP) |
392 | QCopEnvelope e( "QPE/TaskBar", "message(QString)" ); | 392 | QCopEnvelope e( "QPE/TaskBar", "message(QString)" ); |
393 | e << message; | 393 | e << message; |
394 | #endif | 394 | #endif |
395 | } | 395 | } |
396 | 396 | ||
397 | /*! | 397 | /*! |
398 | \internal | 398 | \internal |
399 | */ | 399 | */ |
400 | void Global::applyStyle() | 400 | void Global::applyStyle() |
401 | { | 401 | { |
402 | #if !defined(QT_NO_COP) | 402 | #if !defined(QT_NO_COP) |
403 | QCopChannel::send( "QPE/System", "applyStyle()" ); | 403 | QCopChannel::send( "QPE/System", "applyStyle()" ); |
404 | #else | 404 | #else |
405 | ((QPEApplication *)qApp)->applyStyle(); // apply without needing QCop for floppy version | 405 | ((QPEApplication *)qApp)->applyStyle(); // apply without needing QCop for floppy version |
406 | #endif | 406 | #endif |
407 | } | 407 | } |
408 | 408 | ||
409 | /*! | 409 | /*! |
410 | \internal | 410 | \internal |
411 | */ | 411 | */ |
412 | QWidget *Global::shutdown( bool ) | 412 | QWidget *Global::shutdown( bool ) |
413 | { | 413 | { |
414 | #if !defined(QT_NO_COP) | 414 | #if !defined(QT_NO_COP) |
415 | QCopChannel::send( "QPE/System", "shutdown()" ); | 415 | QCopChannel::send( "QPE/System", "shutdown()" ); |
416 | #endif | 416 | #endif |
417 | return 0; | 417 | return 0; |
418 | } | 418 | } |
419 | 419 | ||
420 | /*! | 420 | /*! |
421 | \internal | 421 | \internal |
422 | */ | 422 | */ |
423 | QWidget *Global::restart( bool ) | 423 | QWidget *Global::restart( bool ) |
424 | { | 424 | { |
425 | #if !defined(QT_NO_COP) | 425 | #if !defined(QT_NO_COP) |
426 | QCopChannel::send( "QPE/System", "restart()" ); | 426 | QCopChannel::send( "QPE/System", "restart()" ); |
427 | #endif | 427 | #endif |
428 | return 0; | 428 | return 0; |
429 | } | 429 | } |
430 | 430 | ||
431 | /*! | 431 | /*! |
432 | Explicitly show the current input method. | 432 | Explicitly show the current input method. |
433 | 433 | ||
434 | Input methods are indicated in the taskbar by a small icon. If the | 434 | Input methods are indicated in the taskbar by a small icon. If the |
435 | input method is activated (shown) then it takes up some proportion | 435 | input method is activated (shown) then it takes up some proportion |
436 | of the bottom of the screen, to allow the user to interact (input | 436 | of the bottom of the screen, to allow the user to interact (input |
437 | characters) with it. | 437 | characters) with it. |
438 | 438 | ||
439 | \sa hideInputMethod() | 439 | \sa hideInputMethod() |
440 | */ | 440 | */ |
441 | void Global::showInputMethod() | 441 | void Global::showInputMethod() |
442 | { | 442 | { |
443 | #if !defined(QT_NO_COP) | 443 | #if !defined(QT_NO_COP) |
444 | QCopChannel::send( "QPE/TaskBar", "showInputMethod()" ); | 444 | QCopChannel::send( "QPE/TaskBar", "showInputMethod()" ); |
445 | #endif | 445 | #endif |
446 | } | 446 | } |
447 | 447 | ||
448 | /*! | 448 | /*! |
449 | Explicitly hide the current input method. | 449 | Explicitly hide the current input method. |
450 | 450 | ||
451 | The current input method is still indicated in the taskbar, but no | 451 | The current input method is still indicated in the taskbar, but no |
452 | longer takes up screen space, and can no longer be interacted with. | 452 | longer takes up screen space, and can no longer be interacted with. |
453 | 453 | ||
454 | \sa showInputMethod() | 454 | \sa showInputMethod() |
455 | */ | 455 | */ |
456 | void Global::hideInputMethod() | 456 | void Global::hideInputMethod() |
457 | { | 457 | { |
458 | #if !defined(QT_NO_COP) | 458 | #if !defined(QT_NO_COP) |
459 | QCopChannel::send( "QPE/TaskBar", "hideInputMethod()" ); | 459 | QCopChannel::send( "QPE/TaskBar", "hideInputMethod()" ); |
460 | #endif | 460 | #endif |
461 | } | 461 | } |
462 | 462 | ||
463 | 463 | ||
464 | /*! | 464 | /*! |
465 | \internal | 465 | \internal |
466 | */ | 466 | */ |
467 | bool Global::isBuiltinCommand( const QString &name ) | 467 | bool Global::isBuiltinCommand( const QString &name ) |
468 | { | 468 | { |
469 | if(!builtin) | 469 | if(!builtin) |
470 | return FALSE; // yes, it can happen | 470 | return FALSE; // yes, it can happen |
471 | for (int i = 0; builtin[i].file; i++) { | 471 | for (int i = 0; builtin[i].file; i++) { |
472 | if ( builtin[i].file == name ) { | 472 | if ( builtin[i].file == name ) { |
473 | return TRUE; | 473 | return TRUE; |
474 | } | 474 | } |
475 | } | 475 | } |
476 | return FALSE; | 476 | return FALSE; |
477 | } | 477 | } |
478 | 478 | ||
479 | Global::Command* Global::builtin=0; | 479 | Global::Command* Global::builtin=0; |
480 | QGuardedPtr<QWidget> *Global::running=0; | 480 | QGuardedPtr<QWidget> *Global::running=0; |
481 | 481 | ||
482 | /*! | 482 | /*! |
483 | \class Global::Command | 483 | \class Global::Command |
484 | \brief The Global::Command class is internal. | 484 | \brief The Global::Command class is internal. |
485 | \internal | 485 | \internal |
486 | */ | 486 | */ |
487 | 487 | ||
488 | /*! | 488 | /*! |
489 | \internal | 489 | \internal |
490 | */ | 490 | */ |
491 | void Global::setBuiltinCommands( Command* list ) | 491 | void Global::setBuiltinCommands( Command* list ) |
492 | { | 492 | { |
493 | if ( running ) | 493 | if ( running ) |
494 | delete [] running; | 494 | delete [] running; |
495 | 495 | ||
496 | builtin = list; | 496 | builtin = list; |
497 | int count = 0; | 497 | int count = 0; |
498 | if (!builtin) | 498 | if (!builtin) |
499 | return; | 499 | return; |
500 | while ( builtin[count].file ) | 500 | while ( builtin[count].file ) |
501 | count++; | 501 | count++; |
502 | 502 | ||
503 | running = new QGuardedPtr<QWidget> [ count ]; | 503 | running = new QGuardedPtr<QWidget> [ count ]; |
504 | } | 504 | } |
505 | 505 | ||
506 | /*! | 506 | /*! |
507 | \internal | 507 | \internal |
508 | */ | 508 | */ |
509 | void Global::setDocument( QWidget* receiver, const QString& document ) | 509 | void Global::setDocument( QWidget* receiver, const QString& document ) |
510 | { | 510 | { |
511 | Emitter emitter(receiver,document); | 511 | Emitter emitter(receiver,document); |
512 | } | 512 | } |
513 | 513 | ||
514 | /*! | 514 | /*! |
515 | \internal | 515 | \internal |
516 | */ | 516 | */ |
517 | bool Global::terminateBuiltin( const QString& n ) | 517 | bool Global::terminateBuiltin( const QString& n ) |
518 | { | 518 | { |
519 | if (!builtin) | 519 | if (!builtin) |
520 | return FALSE; | 520 | return FALSE; |
521 | for (int i = 0; builtin[i].file; i++) { | 521 | for (int i = 0; builtin[i].file; i++) { |
522 | if ( builtin[i].file == n ) { | 522 | if ( builtin[i].file == n ) { |
523 | delete running[i]; | 523 | delete running[i]; |
524 | return TRUE; | 524 | return TRUE; |
525 | } | 525 | } |
526 | } | 526 | } |
527 | return FALSE; | 527 | return FALSE; |
528 | } | 528 | } |
529 | 529 | ||
530 | /*! | 530 | /*! |
531 | \internal | 531 | \internal |
532 | */ | 532 | */ |
533 | void Global::terminate( const AppLnk* app ) | 533 | void Global::terminate( const AppLnk* app ) |
534 | { | 534 | { |
535 | //if ( terminateBuiltin(app->exec()) ) return; // maybe? haven't tried this | 535 | //if ( terminateBuiltin(app->exec()) ) return; // maybe? haven't tried this |
536 | 536 | ||
537 | #ifndef QT_NO_COP | 537 | #ifndef QT_NO_COP |
538 | QCString channel = "QPE/Application/" + app->exec().utf8(); | 538 | QCString channel = "QPE/Application/" + app->exec().utf8(); |
539 | if ( QCopChannel::isRegistered(channel) ) { | 539 | if ( QCopChannel::isRegistered(channel) ) { |
540 | QCopEnvelope e(channel, "quit()"); | 540 | QCopEnvelope e(channel, "quit()"); |
541 | } | 541 | } |
542 | #endif | 542 | #endif |
543 | } | 543 | } |
544 | 544 | ||
545 | /*! | 545 | /*! |
546 | Low-level function to run command \a c. | 546 | Low-level function to run command \a c. |
547 | 547 | ||
548 | \warning Do not use this function. Use execute instead. | 548 | \warning Do not use this function. Use execute instead. |
549 | 549 | ||
550 | \sa execute() | 550 | \sa execute() |
551 | */ | 551 | */ |
552 | void Global::invoke(const QString &c) | 552 | void Global::invoke(const QString &c) |
553 | { | 553 | { |
554 | // Convert the command line in to a list of arguments | 554 | // Convert the command line in to a list of arguments |
555 | QStringList list = QStringList::split(QRegExp(" *"),c); | 555 | QStringList list = QStringList::split(QRegExp(" *"),c); |
556 | 556 | ||
557 | #if !defined(QT_NO_COP) | 557 | #if !defined(QT_NO_COP) |
558 | QString ap=list[0]; | 558 | QString ap=list[0]; |
559 | // see if the application is already running | 559 | // see if the application is already running |
560 | // XXX should lock file /tmp/qcop-msg-ap | 560 | // XXX should lock file /tmp/qcop-msg-ap |
561 | if ( QCopChannel::isRegistered( ("QPE/Application/" + ap).latin1() ) ) { | 561 | if ( QCopChannel::isRegistered( ("QPE/Application/" + ap).latin1() ) ) { |
562 | // If the channel is already register, the app is already running, so show it. | 562 | // If the channel is already register, the app is already running, so show it. |
563 | { QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "raise()" ); } | 563 | { QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "raise()" ); } |
564 | 564 | ||
565 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); | 565 | //QCopEnvelope e("QPE/System", "notBusy(QString)" ); |
566 | e << ap; | 566 | //e << ap; |
567 | return; | 567 | return; |
568 | } | 568 | } |
569 | // XXX should unlock file /tmp/qcop-msg-ap | 569 | // XXX should unlock file /tmp/qcop-msg-ap |
570 | //see if it is being started | 570 | //see if it is being started |
571 | if ( StartingAppList::isStarting( ap ) ) { | 571 | if ( StartingAppList::isStarting( ap ) ) { |
572 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); | 572 | // FIXME take it out for now, since it leads to a much to short showing of wait if |
573 | e << ap; | 573 | // some entry is clicked. |
574 | // Real cause is that ::execute is called twice for document tab. But it would need some larger changes | ||
575 | // to fix that, and with future syncs with qtopia 1.6 it will change anyway big time since somebody there | ||
576 | // had the idea that an apploader belongs to the launcher ... | ||
577 | //QCopEnvelope e("QPE/System", "notBusy(QString)" ); | ||
578 | //e << ap; | ||
574 | return; | 579 | return; |
575 | } | 580 | } |
576 | 581 | ||
577 | #endif | 582 | #endif |
578 | 583 | ||
579 | #ifdef QT_NO_QWS_MULTIPROCESS | 584 | #ifdef QT_NO_QWS_MULTIPROCESS |
580 | QMessageBox::warning( 0, "Error", "Could not find the application " + c, "Ok", 0, 0, 0, 1 ); | 585 | QMessageBox::warning( 0, "Error", "Could not find the application " + c, "Ok", 0, 0, 0, 1 ); |
581 | #else | 586 | #else |
582 | 587 | ||
583 | QStrList slist; | 588 | QStrList slist; |
584 | unsigned int j; | 589 | unsigned int j; |
585 | for ( j = 0; j < list.count(); j++ ) | 590 | for ( j = 0; j < list.count(); j++ ) |
586 | slist.append( list[j].utf8() ); | 591 | slist.append( list[j].utf8() ); |
587 | 592 | ||
588 | const char **args = new (const char *)[slist.count() + 1]; | 593 | const char **args = new (const char *)[slist.count() + 1]; |
589 | for ( j = 0; j < slist.count(); j++ ) | 594 | for ( j = 0; j < slist.count(); j++ ) |
590 | args[j] = slist.at(j); | 595 | args[j] = slist.at(j); |
591 | args[j] = NULL; | 596 | args[j] = NULL; |
592 | 597 | ||
593 | #if !defined(QT_NO_COP) | 598 | #if !defined(QT_NO_COP) |
594 | // an attempt to show a wait... | 599 | // an attempt to show a wait... |
595 | // more logic should be used, but this will be fine for the moment... | 600 | // more logic should be used, but this will be fine for the moment... |
596 | QCopEnvelope ( "QPE/System", "busy()" ); | 601 | QCopEnvelope ( "QPE/System", "busy()" ); |
597 | #endif | 602 | #endif |
598 | 603 | ||
599 | #ifdef HAVE_QUICKEXEC | 604 | #ifdef HAVE_QUICKEXEC |
600 | QString libexe = qpeDir()+"/binlib/lib"+args[0] + ".so"; | 605 | QString libexe = qpeDir()+"/binlib/lib"+args[0] + ".so"; |
601 | qDebug("libfile = %s", libexe.latin1() ); | 606 | qDebug("libfile = %s", libexe.latin1() ); |
602 | if ( QFile::exists( libexe ) ) { | 607 | if ( QFile::exists( libexe ) ) { |
603 | qDebug("calling quickexec %s", libexe.latin1() ); | 608 | qDebug("calling quickexec %s", libexe.latin1() ); |
604 | quickexecv( libexe.utf8().data(), (const char **)args ); | 609 | quickexecv( libexe.utf8().data(), (const char **)args ); |
605 | } else | 610 | } else |
606 | #endif | 611 | #endif |
607 | { | 612 | { |
608 | bool success = false; | 613 | bool success = false; |
609 | int pfd [2]; | 614 | int pfd [2]; |
610 | if ( ::pipe ( pfd ) < 0 ) | 615 | if ( ::pipe ( pfd ) < 0 ) |
611 | pfd [0] = pfd [1] = -1; | 616 | pfd [0] = pfd [1] = -1; |
612 | 617 | ||
613 | pid_t pid = ::fork ( ); | 618 | pid_t pid = ::fork ( ); |
614 | 619 | ||
615 | if ( pid == 0 ) { // child | 620 | if ( pid == 0 ) { // child |
616 | for ( int fd = 3; fd < 100; fd++ ) { | 621 | for ( int fd = 3; fd < 100; fd++ ) { |
617 | if ( fd != pfd [1] ) | 622 | if ( fd != pfd [1] ) |
618 | ::close ( fd ); | 623 | ::close ( fd ); |
619 | } | 624 | } |
620 | ::setpgid ( ::getpid ( ), ::getppid ( )); | 625 | ::setpgid ( ::getpid ( ), ::getppid ( )); |
621 | 626 | ||
622 | // Closing of fd[1] indicates that the execvp succeeded! | 627 | // Closing of fd[1] indicates that the execvp succeeded! |
623 | if ( pfd [1] >= 0 ) | 628 | if ( pfd [1] >= 0 ) |
624 | ::fcntl ( pfd [1], F_SETFD, FD_CLOEXEC ); | 629 | ::fcntl ( pfd [1], F_SETFD, FD_CLOEXEC ); |
625 | 630 | ||
626 | // Try bindir first, so that foo/bar works too | 631 | // Try bindir first, so that foo/bar works too |
627 | ::execv ( qpeDir ( ) + "/bin/" + args [0], (char * const *) args ); | 632 | ::execv ( qpeDir ( ) + "/bin/" + args [0], (char * const *) args ); |
628 | ::execvp ( args [0], (char * const *) args ); | 633 | ::execvp ( args [0], (char * const *) args ); |
629 | 634 | ||
630 | char resultByte = 1; | 635 | char resultByte = 1; |
631 | if ( pfd [1] >= 0 ) | 636 | if ( pfd [1] >= 0 ) |
632 | ::write ( pfd [1], &resultByte, 1 ); | 637 | ::write ( pfd [1], &resultByte, 1 ); |
633 | ::_exit ( -1 ); | 638 | ::_exit ( -1 ); |
634 | } | 639 | } |
635 | else if ( pid > 0 ) { | 640 | else if ( pid > 0 ) { |
636 | success = true; | 641 | success = true; |
637 | 642 | ||
638 | if ( pfd [1] >= 0 ) | 643 | if ( pfd [1] >= 0 ) |
639 | ::close ( pfd [1] ); | 644 | ::close ( pfd [1] ); |
640 | if ( pfd [0] >= 0 ) { | 645 | if ( pfd [0] >= 0 ) { |
641 | while ( true ) { | 646 | while ( true ) { |
642 | char resultByte; | 647 | char resultByte; |
643 | int n = ::read ( pfd [0], &resultByte, 1 ); | 648 | int n = ::read ( pfd [0], &resultByte, 1 ); |
644 | if ( n == 1 ) { | 649 | if ( n == 1 ) { |
645 | success = false; | 650 | success = false; |
646 | break; | 651 | break; |
647 | } | 652 | } |
648 | if (( n == -1 ) && (( errno == ECHILD ) || ( errno == EINTR ))) | 653 | if (( n == -1 ) && (( errno == ECHILD ) || ( errno == EINTR ))) |
649 | continue; | 654 | continue; |
650 | 655 | ||
651 | break; // success | 656 | break; // success |
652 | } | 657 | } |
653 | ::close ( pfd [0] ); | 658 | ::close ( pfd [0] ); |
654 | } | 659 | } |
655 | } | 660 | } |
656 | if ( success ) | 661 | if ( success ) |
657 | StartingAppList::add( list[0] ); | 662 | StartingAppList::add( list[0] ); |
658 | else | 663 | else |
659 | QMessageBox::warning( 0, "Error", "Could not start the application " + c, "Ok", 0, 0, 0, 1 ); | 664 | QMessageBox::warning( 0, "Error", "Could not start the application " + c, "Ok", 0, 0, 0, 1 ); |
660 | } | 665 | } |
661 | #endif //QT_NO_QWS_MULTIPROCESS | 666 | #endif //QT_NO_QWS_MULTIPROCESS |
662 | } | 667 | } |
663 | 668 | ||
664 | 669 | ||
665 | /*! | 670 | /*! |
666 | Executes the application identfied by \a c, passing \a | 671 | Executes the application identfied by \a c, passing \a |
667 | document if it isn't null. | 672 | document if it isn't null. |
668 | 673 | ||
669 | Note that a better approach might be to send a QCop message to the | 674 | Note that a better approach might be to send a QCop message to the |
670 | application's QPE/Application/\e{appname} channel. | 675 | application's QPE/Application/\e{appname} channel. |
671 | */ | 676 | */ |
672 | void Global::execute( const QString &c, const QString& document ) | 677 | void Global::execute( const QString &c, const QString& document ) |
673 | { | 678 | { |
674 | if ( qApp->type() != QApplication::GuiServer ) { | 679 | if ( qApp->type() != QApplication::GuiServer ) { |
675 | // ask the server to do the work | 680 | // ask the server to do the work |
676 | #if !defined(QT_NO_COP) | 681 | #if !defined(QT_NO_COP) |
677 | if ( document.isNull() ) { | 682 | if ( document.isNull() ) { |
678 | QCopEnvelope e( "QPE/System", "execute(QString)" ); | 683 | QCopEnvelope e( "QPE/System", "execute(QString)" ); |
679 | e << c; | 684 | e << c; |
680 | } else { | 685 | } else { |
681 | QCopEnvelope e( "QPE/System", "execute(QString,QString)" ); | 686 | QCopEnvelope e( "QPE/System", "execute(QString,QString)" ); |
682 | e << c << document; | 687 | e << c << document; |
683 | } | 688 | } |
684 | #endif | 689 | #endif |
685 | return; | 690 | return; |
686 | } | 691 | } |
687 | 692 | ||
688 | // Attempt to execute the app using a builtin class for the app first | 693 | // Attempt to execute the app using a builtin class for the app first |
689 | // else try and find it in the bin directory | 694 | // else try and find it in the bin directory |
690 | if (builtin) { | 695 | if (builtin) { |
691 | for (int i = 0; builtin[i].file; i++) { | 696 | for (int i = 0; builtin[i].file; i++) { |
692 | if ( builtin[i].file == c ) { | 697 | if ( builtin[i].file == c ) { |
693 | if ( running[i] ) { | 698 | if ( running[i] ) { |
694 | if ( !document.isNull() && builtin[i].documentary ) | 699 | if ( !document.isNull() && builtin[i].documentary ) |
695 | setDocument(running[i], document); | 700 | setDocument(running[i], document); |
696 | running[i]->raise(); | 701 | running[i]->raise(); |
697 | running[i]->show(); | 702 | running[i]->show(); |
698 | running[i]->setActiveWindow(); | 703 | running[i]->setActiveWindow(); |
699 | } else { | 704 | } else { |
700 | running[i] = builtin[i].func( builtin[i].maximized ); | 705 | running[i] = builtin[i].func( builtin[i].maximized ); |
701 | } | 706 | } |
702 | #ifndef QT_NO_COP | 707 | #ifndef QT_NO_COP |
703 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); | 708 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); |
704 | e << c; // that was quick ;-) | 709 | e << c; // that was quick ;-) |
705 | #endif | 710 | #endif |
706 | return; | 711 | return; |
707 | } | 712 | } |
708 | } | 713 | } |
709 | } | 714 | } |
710 | 715 | ||
711 | //Global::invoke(c, document); | 716 | //Global::invoke(c, document); |
712 | 717 | ||
713 | // Convert the command line in to a list of arguments | 718 | // Convert the command line in to a list of arguments |
714 | QStringList list = QStringList::split(QRegExp(" *"),c); | 719 | QStringList list = QStringList::split(QRegExp(" *"),c); |
715 | 720 | ||
716 | #if !defined(QT_NO_COP) | 721 | #if !defined(QT_NO_COP) |
717 | QString ap=list[0]; | 722 | QString ap=list[0]; |
718 | 723 | ||
719 | qDebug("executing %s", ap.latin1() ); | 724 | qDebug("executing %s", ap.latin1() ); |
720 | 725 | ||
721 | /* if need be, sending a qcop message will result in an invoke, see | 726 | /* if need be, sending a qcop message will result in an invoke, see |
722 | preceeding function */ | 727 | preceeding function */ |
723 | invoke( ap ); | 728 | invoke( ap ); |
724 | //{ QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "raise()" ); } | 729 | //{ QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "raise()" ); } |
725 | if ( !document.isEmpty() ) { | 730 | if ( !document.isEmpty() ) { |
726 | QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "setDocument(QString)" ); | 731 | QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "setDocument(QString)" ); |
727 | env << document; | 732 | env << document; |
728 | } | 733 | } |
729 | #endif | 734 | #endif |
730 | } | 735 | } |
731 | 736 | ||
732 | /*! | 737 | /*! |
733 | Returns the string \a s with the characters '\', '"', and '$' quoted | 738 | Returns the string \a s with the characters '\', '"', and '$' quoted |
734 | by a preceeding '\'. | 739 | by a preceeding '\'. |
735 | 740 | ||
736 | \sa stringQuote() | 741 | \sa stringQuote() |
737 | */ | 742 | */ |
738 | QString Global::shellQuote(const QString& s) | 743 | QString Global::shellQuote(const QString& s) |
739 | { | 744 | { |
740 | QString r="\""; | 745 | QString r="\""; |
741 | for (int i=0; i<(int)s.length(); i++) { | 746 | for (int i=0; i<(int)s.length(); i++) { |
742 | char c = s[i].latin1(); | 747 | char c = s[i].latin1(); |
743 | switch (c) { | 748 | switch (c) { |
744 | case '\\': case '"': case '$': | 749 | case '\\': case '"': case '$': |
745 | r+="\\"; | 750 | r+="\\"; |
746 | } | 751 | } |
747 | r += s[i]; | 752 | r += s[i]; |
748 | } | 753 | } |
749 | r += "\""; | 754 | r += "\""; |
750 | return r; | 755 | return r; |
751 | } | 756 | } |
752 | 757 | ||
753 | /*! | 758 | /*! |
754 | Returns the string \a s with the characters '\' and '"' quoted by a | 759 | Returns the string \a s with the characters '\' and '"' quoted by a |
755 | preceeding '\'. | 760 | preceeding '\'. |
756 | 761 | ||
757 | \sa shellQuote() | 762 | \sa shellQuote() |
758 | */ | 763 | */ |
759 | QString Global::stringQuote(const QString& s) | 764 | QString Global::stringQuote(const QString& s) |
760 | { | 765 | { |
761 | QString r="\""; | 766 | QString r="\""; |
762 | for (int i=0; i<(int)s.length(); i++) { | 767 | for (int i=0; i<(int)s.length(); i++) { |
763 | char c = s[i].latin1(); | 768 | char c = s[i].latin1(); |
764 | switch (c) { | 769 | switch (c) { |
765 | case '\\': case '"': | 770 | case '\\': case '"': |
766 | r+="\\"; | 771 | r+="\\"; |
767 | } | 772 | } |
768 | r += s[i]; | 773 | r += s[i]; |
769 | } | 774 | } |
770 | r += "\""; | 775 | r += "\""; |
771 | return r; | 776 | return r; |
772 | } | 777 | } |
773 | 778 | ||
774 | /*! | 779 | /*! |
775 | Finds all documents on the system's document directories which | 780 | Finds all documents on the system's document directories which |
776 | match the filter \a mimefilter, and appends the resulting DocLnk | 781 | match the filter \a mimefilter, and appends the resulting DocLnk |
777 | objects to \a folder. | 782 | objects to \a folder. |
778 | */ | 783 | */ |
779 | void Global::findDocuments(DocLnkSet* folder, const QString &mimefilter) | 784 | void Global::findDocuments(DocLnkSet* folder, const QString &mimefilter) |
780 | { | 785 | { |
781 | QString homedocs = QString(getenv("HOME")) + "/Documents"; | 786 | QString homedocs = QString(getenv("HOME")) + "/Documents"; |
782 | DocLnkSet d(homedocs,mimefilter); | 787 | DocLnkSet d(homedocs,mimefilter); |
783 | folder->appendFrom(d); | 788 | folder->appendFrom(d); |
784 | /** let's do intellegint way of searching these files | 789 | /** let's do intellegint way of searching these files |
785 | * a) the user don't want to check mediums global | 790 | * a) the user don't want to check mediums global |
786 | * b) the user wants to check but use the global options for it | 791 | * b) the user wants to check but use the global options for it |
787 | * c) the user wants to check it but not this medium | 792 | * c) the user wants to check it but not this medium |
788 | * d) the user wants to check and this medium as well | 793 | * d) the user wants to check and this medium as well |
789 | * | 794 | * |
790 | * In all cases we need to apply a different mimefilter to | 795 | * In all cases we need to apply a different mimefilter to |
791 | * the medium. | 796 | * the medium. |
792 | * a) mimefilter.isEmpty() we need to apply the responding filter | 797 | * a) mimefilter.isEmpty() we need to apply the responding filter |
793 | * either the global or the one on the medium | 798 | * either the global or the one on the medium |
794 | * | 799 | * |
795 | * b) mimefilter is set to an application we need to find out if the | 800 | * b) mimefilter is set to an application we need to find out if the |
796 | * mimetypes are included in the mime mask of the medium | 801 | * mimetypes are included in the mime mask of the medium |
797 | */ | 802 | */ |
798 | StorageInfo storage; | 803 | StorageInfo storage; |
799 | const QList<FileSystem> &fs = storage.fileSystems(); | 804 | const QList<FileSystem> &fs = storage.fileSystems(); |
800 | QListIterator<FileSystem> it ( fs ); | 805 | QListIterator<FileSystem> it ( fs ); |
801 | for ( ; it.current(); ++it ) { | 806 | for ( ; it.current(); ++it ) { |
802 | if ( (*it)->isRemovable() ) { // let's find out if we should search on it | 807 | if ( (*it)->isRemovable() ) { // let's find out if we should search on it |
803 | // this is a candidate look at the cf and see if we should search on it | 808 | // this is a candidate look at the cf and see if we should search on it |
804 | QString path = (*it)->path(); | 809 | QString path = (*it)->path(); |
805 | if( !checkStorage((*it)->path() + "/.opiestorage.cf" ) ) | 810 | if( !checkStorage((*it)->path() + "/.opiestorage.cf" ) ) |
806 | continue; | 811 | continue; |
807 | DocLnkSet ide( path, mimefilter ); | 812 | DocLnkSet ide( path, mimefilter ); |
808 | folder->appendFrom(ide); | 813 | folder->appendFrom(ide); |
809 | } else if ( (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) { | 814 | } else if ( (*it)->disk() == "/dev/mtdblock6" || (*it)->disk() == "tmpfs" ) { |
810 | QString path = (*it)->path() + "/Documents"; | 815 | QString path = (*it)->path() + "/Documents"; |
811 | DocLnkSet ide( path, mimefilter ); | 816 | DocLnkSet ide( path, mimefilter ); |
812 | folder->appendFrom(ide); | 817 | folder->appendFrom(ide); |
813 | } | 818 | } |
814 | } | 819 | } |
815 | } | 820 | } |
816 | 821 | ||
817 | QStringList Global::languageList() | 822 | QStringList Global::languageList() |
818 | { | 823 | { |
819 | QString lang = getenv("LANG"); | 824 | QString lang = getenv("LANG"); |
820 | QStringList langs; | 825 | QStringList langs; |
821 | langs.append(lang); | 826 | langs.append(lang); |
822 | int i = lang.find("."); | 827 | int i = lang.find("."); |
823 | if ( i > 0 ) | 828 | if ( i > 0 ) |
824 | lang = lang.left( i ); | 829 | lang = lang.left( i ); |
825 | i = lang.find( "_" ); | 830 | i = lang.find( "_" ); |
826 | if ( i > 0 ) | 831 | if ( i > 0 ) |
827 | langs.append(lang.left(i)); | 832 | langs.append(lang.left(i)); |
828 | return langs; | 833 | return langs; |
829 | } | 834 | } |
830 | 835 | ||
831 | QStringList Global::helpPath() | 836 | QStringList Global::helpPath() |
832 | { | 837 | { |
838 | QString qpeDir = QPEApplication::qpeDir(); | ||
833 | QStringList path; | 839 | QStringList path; |
834 | QStringList langs = Global::languageList(); | 840 | QStringList langs = Global::languageList(); |
835 | for (QStringList::ConstIterator it = langs.fromLast(); it!=langs.end(); --it) { | 841 | for (QStringList::ConstIterator it = langs.fromLast(); it!=langs.end(); --it) { |
836 | QString lang = *it; | 842 | QString lang = *it; |
837 | if ( !lang.isEmpty() ) | 843 | if ( !lang.isEmpty() ) |
838 | path += QPEApplication::qpeDir() + "/help/" + lang + "/html"; | 844 | path += qpeDir + "/help/" + lang + "/html"; |
839 | } | 845 | } |
840 | path += QPEApplication::qpeDir() + "/pics"; | 846 | path += qpeDir + "/pics"; |
841 | path += QPEApplication::qpeDir() + "/help/html"; | 847 | path += qpeDir + "/help/html"; |
842 | path += QPEApplication::qpeDir() + "/docs"; | 848 | /* we even put english into the en dir so try it as fallback as well for opie */ |
849 | path += qpeDir + "/help/en/html"; | ||
850 | path += qpeDir + "/docs"; | ||
843 | 851 | ||
844 | 852 | ||
845 | return path; | 853 | return path; |
846 | } | 854 | } |
847 | 855 | ||
848 | 856 | ||
849 | #include "global.moc" | 857 | #include "global.moc" |
diff --git a/library/inlinepics_p.h b/library/inlinepics_p.h index 8ac1a69..594a0ea 100644 --- a/library/inlinepics_p.h +++ b/library/inlinepics_p.h | |||
@@ -1,3048 +1,3039 @@ | |||
1 | /* Generated by qembed */ | 1 | #ifndef _QEMBED_1804289383 |
2 | #ifndef _667541281 | 2 | #define _QEMBED_1804289383 |
3 | #define _667541281 | ||
4 | #include <qimage.h> | 3 | #include <qimage.h> |
5 | #include <stdlib.h> | 4 | #include <qdict.h> |
6 | static const QRgb _to1_data[] = { | 5 | static const QRgb _to1_data[] = { |
7 | 0x0,0x0,0x1c9191aa,0x7daeaec1,0xaabfbfcd,0xa3c5c5d3,0x63bfbfce,0x8b6b6c7,0x0,0x0,0x0,0x0,0x0,0x0, | 6 | 0x0,0x0,0x1c9191aa,0x7daeaec1,0xaabfbfcd,0xa3c5c5d3,0x63bfbfce,0x8b6b6c7,0x0,0x0,0x0,0x0,0x0,0x0, |
8 | 0x0,0x478c8ca6,0xeca3a9c1,0xf9bbd1e5,0xf7d0e5f5,0xf8d9e7f4,0xfbccd9ea,0xccc9cad8,0x19babaca,0x0,0x0,0x0,0x0,0x0, | 7 | 0x0,0x478c8ca6,0xeca3a9c1,0xf9bbd1e5,0xf7d0e5f5,0xf8d9e7f4,0xfbccd9ea,0xccc9cad8,0x19babaca,0x0,0x0,0x0,0x0,0x0, |
9 | 0x1c747493,0xea8f95b4,0xf4a3d0f4,0xf5c6efff,0xf5d6f4ff,0xf5dbf5ff,0xf5d2f3ff,0xf5b9d8f2,0xbbc9cad8,0x1b8b8c9,0x0,0x0,0x0,0x0, | 8 | 0x1c747493,0xea8f95b4,0xf4a3d0f4,0xf5c6efff,0xf5d6f4ff,0xf5dbf5ff,0xf5d2f3ff,0xf5b9d8f2,0xbbc9cad8,0x1b8b8c9,0x0,0x0,0x0,0x0, |
10 | 0x7d7e7e9a,0xf38881b1,0xf7a8acd4,0xf5b3e3ff,0xf5c2edff,0xf5c6efff,0xf6c1d9ed,0xf7b6a3c3,0xf5b7c7e4,0x31b5b5c6,0x0,0x0,0x0,0x0, | 9 | 0x7d7e7e9a,0xf38881b1,0xf7a8acd4,0xf5b3e3ff,0xf5c2edff,0xf5c6efff,0xf6c1d9ed,0xf7b6a3c3,0xf5b7c7e4,0x31b5b5c6,0x0,0x0,0x0,0x0, |
11 | 0xab7b7b98,0xbc435dbe,0xe6a45a8b,0xdf92cafe,0xf1b495b7,0xdaa4bae3,0xde9cc3f1,0xf9b36189,0xee9dbdeb,0x60b9b9c9,0x0,0x0,0x0,0x0, | 10 | 0xab7b7b98,0xbc435dbe,0xe6a45a8b,0xdf92cafe,0xf1b495b7,0xdaa4bae3,0xde9cc3f1,0xf9b36189,0xee9dbdeb,0x60b9b9c9,0x0,0x0,0x0,0x0, |
12 | 0xa3717190,0xbc4b65bc,0xcea43e71,0x9975b2fc,0xc0ab6592,0xa597a3d9,0x9d7cabf0,0xdba84172,0xe49cb3e1,0x56afafc2,0x0,0x0,0x0,0x0, | 11 | 0xa3717190,0xbc4b65bc,0xcea43e71,0x9975b2fc,0xc0ab6592,0xa597a3d9,0x9d7cabf0,0xdba84172,0xe49cb3e1,0x56afafc2,0x0,0x0,0x0,0x0, |
13 | 0x61636385,0xe97e5c87,0xbb9f699d,0x9ba5d2f9,0xacc9b2c4,0x9fc7dcec,0xa7b3b2d3,0xc0a46a9a,0xf2b5a7be,0x1aa3a3b8,0x0,0x0,0x0,0x0, | 12 | 0x61636385,0xe97e5c87,0xbb9f699d,0x9ba5d2f9,0xacc9b2c4,0x9fc7dcec,0xa7b3b2d3,0xc0a46a9a,0xf2b5a7be,0x1aa3a3b8,0x0,0x0,0x0,0x0, |
14 | 0x857577b,0xc966678a,0xc07d9dca,0x9ac3edfe,0x99eafeff,0x99ecfeff,0x9dc6edfc,0xdca5b5d2,0xdfb2b2c4,0x3b7b7c8,0x0,0x0,0x0,0x0, | 13 | 0x857577b,0xc966678a,0xc07d9dca,0x9ac3edfe,0x99eafeff,0x99ecfeff,0x9dc6edfc,0xdca5b5d2,0xdfb2b2c4,0x3b7b7c8,0x0,0x0,0x0,0x0, |
15 | 0x0,0x1958587c,0xb8696a8b,0xe5878faa,0xceb0b7c8,0xd3b6bbcb,0xeb9ea2b9,0xcd9595ad,0xeea3a3b7,0xb1cb9f58,0x4ee4991e,0x0,0x0,0x0, | 14 | 0x0,0x1958587c,0xb8696a8b,0xe5878faa,0xceb0b7c8,0xd3b6bbcb,0xeb9ea2b9,0xcd9595ad,0xeea3a3b7,0xb1cb9f58,0x4ee4991e,0x0,0x0,0x0, |
16 | 0x0,0x0,0x5b5b7e,0x2f606083,0x5e6e6e8e,0x54747493,0x1a777795,0x0,0xb1a57239,0xfff7d37d,0xf7f7d46f,0x4fe4991e,0x0,0x0, | 15 | 0x0,0x0,0x5b5b7e,0x2f606083,0x5e6e6e8e,0x54747493,0x1a777795,0x0,0xb1a57239,0xfff7d37d,0xf7f7d46f,0x4fe4991e,0x0,0x0, |
17 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xf3dd921d,0xfffddc87,0xf7f7d36f,0x4fe4991e,0x0, | 16 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xf3dd921d,0xfffddc87,0xf7f7d36f,0x4fe4991e,0x0, |
18 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921d,0xfffddc87,0xf6f7d36f,0x4de4991e, | 17 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921d,0xfffddc87,0xf6f7d36f,0x4de4991e, |
19 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921c,0xfff0c975,0xa8cdab7a, | 18 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921c,0xfff0c975,0xa8cdab7a, |
20 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xaa977354,0x4a8787a1 | 19 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xaa977354,0x4a8787a1 |
21 | }; | 20 | }; |
22 | 21 | ||
22 | /* Generated by qembed */ | ||
23 | static const QRgb accessories_data[] = { | ||
24 | 0x0,0x0,0x0,0x2fcac00,0x49feb50d,0xd2ffd436,0x68e2a50e,0x4f7a500,0x8afabb25,0x3edd9508,0x0,0x0,0x0,0x0, | ||
25 | 0x0,0xfdad00,0x31feb007,0xb9ffd147,0xfdfff275,0xffffff72,0xe6f8d235,0xa0f5be35,0xfffff883,0xf3f9dc4d,0x53d6890a,0x301b00,0x0,0x0, | ||
26 | 0x2f3a600,0x97fec53f,0xfcffec94,0xffffffa4,0xffffff87,0xffffe951,0xfffed131,0xfffbc232,0xfffef974,0xfffff55e,0xfaf7cb35,0x6bd27f08,0x1522b00,0x0, | ||
27 | 0x2e09900,0x97f9c240,0xfffffdba,0xfffff082,0xffffcf34,0xffffd534,0xffffed52,0xfffec724,0xfff6bd27,0xfffce047,0xffffd636,0xfdf8b418,0x77c56901,0x1000000, | ||
28 | 0xa3f6ab09,0xbcfac646,0xffffc635,0xffffc01a,0xffffd332,0xffffe649,0xfffff761,0xffffd939,0xffffdd40,0xfff1b92b,0xfff9bd21,0xf1e6960c,0x517a3c00,0x1000000, | ||
29 | 0x12bb8001,0xbcf6c643,0xffffea66,0xfffdc421,0xffffde40,0xfffff057,0xfffffe79,0xffffe94e,0xffffef55,0xfffcea56,0xffe3981c,0xd3cd790b,0x84c75e02,0x279c3d00, | ||
30 | 0x0,0xdb57b00,0xe6f9bb1a,0xfffdd73b,0xfff8c52d,0xfffff865,0xfff8d75b,0xfff9d943,0xfff1cb44,0xffefc33b,0xfff9d03a,0xe7d78b14,0x76904202,0x11260f00, | ||
31 | 0x0,0x2e89700,0xdcfab310,0xfff8b417,0xfff5ac13,0xffea960a,0xffe88f05,0xffecb64c,0xfffaee74,0xffecbc39,0xfada7f0c,0x36512100,0x1000000,0x0, | ||
32 | 0x0,0x2e28d00,0xdcf8bc20,0xffffd635,0xfffed334,0xfff8c631,0xfff2b630,0xffefb22e,0xffedad28,0xfffbc325,0xfae89e19,0x295c2200,0x0,0x0, | ||
33 | 0x0,0x1d88300,0xcdf0b124,0xffffe84e,0xffffeb50,0xffffec54,0xffffe552,0xffffe043,0xffffdf41,0xffffdd3f,0xfae7aa2a,0x295b2200,0x0,0x0, | ||
34 | 0x0,0x0,0x25bc6c02,0xd6e7ac2f,0xfffef667,0xfffffd70,0xfffff668,0xfffff35b,0xfffff158,0xfef5cf47,0xd0c1741d,0x1b3e1700,0x0,0x0, | ||
35 | 0x0,0x0,0x0,0x1aa65600,0xc9dc952f,0xfffdf18f,0xfffffe86,0xfff9e161,0xe1d08d2d,0x70883a06,0x11140700,0x0,0x0,0x0, | ||
36 | 0x0,0x0,0x0,0x0,0x10924200,0xb9cf7a2f,0xedd99445,0x8695420b,0x1b2c1000,0x1000000,0x0,0x0,0x0,0x0, | ||
37 | 0x0,0x0,0x0,0x0,0x0,0xa782e00,0x214b1c00,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | ||
38 | }; | ||
39 | |||
40 | static const QRgb appearance_data[] = { | ||
41 | 0x0,0x0,0x0,0x0,0x0,0x6e5c528,0x95f2e089,0x51d3bf5a,0x0,0x0,0x0,0x0,0x0,0x0, | ||
42 | 0x0,0x0,0x0,0x0,0x0,0x68efd96a,0xfffefae1,0xeef3e9b4,0x20847319,0x0,0x0,0x0,0x0,0x0, | ||
43 | 0x0,0x0,0x0,0x0,0x10e6c626,0xe6f8ecaa,0xfffffcd8,0xfffffbd7,0x9ed6c56a,0x1090909,0x0,0x0,0x0,0x0, | ||
44 | 0x0,0x0,0x1efdf8d,0x11e4c322,0xa6f3e078,0xfffff9c6,0xfffffbc5,0xfffffbc7,0xfaf9f0ae,0x59ceb843,0x5bea322,0x0,0x0,0x0, | ||
45 | 0x41ecd14b,0x93f3df73,0xc9f6e686,0xf1f9ed98,0xfffbf3b3,0xfffbf5d0,0xfffbf296,0xfffbf4bf,0xfffaf2be,0xfefcf4ab,0xe2f6e78e,0xb3f3e17e,0x7debd462,0x18c5aa23, | ||
46 | 0xdef3d84a,0xfffdeb57,0xfffef150,0xfffef345,0xfffbf4ba,0xffffffff,0xffffffff,0xffffffff,0xfffffefc,0xfffbee52,0xfffef24a,0xfffdef54,0xfffde657,0x93bba42f, | ||
47 | 0x57d7b91e,0xfaf9e136,0xfffef142,0xfffff442,0xfff2ebbd,0xff6f6f6f,0xffdedede,0xff858585,0xffbebebd,0xfffbef60,0xfffff343,0xfffded40,0xe6dbc128,0x35483d09, | ||
48 | 0x0,0x6ad5ba27,0xfdfbe84d,0xfffef45a,0xfff9ef7c,0xff8a866f,0xffede7bc,0xff9c987f,0xffd8d196,0xfffef459,0xfffef159,0xede3cc39,0x4654480c,0x0, | ||
49 | 0x0,0x14d420c,0xa4e9d141,0xfffef371,0xffefe58e,0xfff0e8ab,0xfff1eaad,0xfff0e8ab,0xffeee7a9,0xfff8ee71,0xfef9e962,0x69786814,0x1040404,0x0, | ||
50 | 0x0,0x0,0x6bebd142,0xfffef386,0xfff0e9ad,0xffe8e8e8,0xffe7e7e7,0xffe8e8e8,0xffedebe0,0xfffbf288,0xfaf3e26b,0x2b413807,0x0,0x0, | ||
51 | 0x0,0x0,0x82f0d854,0xfffef59f,0xfff9f29e,0xffeae4c3,0xffede7c9,0xffede8c9,0xfff0e8ad,0xfffff9a3,0xfcf7e983,0x376e5e0f,0x0,0x0, | ||
52 | 0x0,0x0,0xa1f4df6f,0xfffef7b5,0xfffef8b4,0xfffcf19c,0xf1e6d776,0xf8f1e383,0xfffef6ab,0xfffef8b7,0xfffdf1a2,0x53927e19,0x0,0x0, | ||
53 | 0x0,0x0,0x9befd761,0xfcf7e896,0xd2cdbc5d,0x6a7f6f1c,0x1c1b1703,0x215e500d,0x80c6b140,0xe5ebda7c,0xfdf9e78f,0x5986741a,0x0,0x0, | ||
54 | 0x0,0x0,0x16937e18,0x456a5b13,0xf050401,0x1b1b1b,0x0,0x0,0x222222,0x11574a0a,0x487b6a18,0xf100e02,0x0,0x0 | ||
55 | }; | ||
56 | |||
23 | static const QRgb AppsIcon_data[] = { | 57 | static const QRgb AppsIcon_data[] = { |
24 | 0xff83acde,0xff8bb5e6,0xff81b0e6,0xff74a9e6,0xff65a2e6,0xff5a9de6,0xff5198e6,0xff4f97e6,0xff4f97e6,0xff4f97e6,0xff4d96e5,0xaa3a8dda,0x0,0x0, | 58 | 0xff83acde,0xff8bb5e6,0xff81b0e6,0xff74a9e6,0xff65a2e6,0xff5a9de6,0xff5198e6,0xff4f97e6,0xff4f97e6,0xff4f97e6,0xff4d96e5,0xaa3a8dda,0x0,0x0, |
25 | 0xff91b8e5,0xffafd2fc,0xff9ac9fc,0xff7ebafc,0xff5fabfc,0xff48a0fc,0xff3597fc,0xff3094fc,0xff2f94fc,0xff2f94fc,0xff2d93fa,0xaa218aea,0x0,0x0, | 59 | 0xff91b8e5,0xffafd2fc,0xff9ac9fc,0xff7ebafc,0xff5fabfc,0xff48a0fc,0xff3597fc,0xff3094fc,0xff2f94fc,0xff2f94fc,0xff2d93fa,0xaa218aea,0x0,0x0, |
26 | 0xffa0c0e5,0xffddebfb,0xffd7e9fb,0xffd0e5fb,0xffc7e1fb,0xffc1defb,0xffbadcfb,0xffb7dafb,0xffb4d9fb,0xffb2d8fb,0xffa8d2f8,0xaa74b3e5,0x0,0x0, | 60 | 0xffa0c0e5,0xffddebfb,0xffd7e9fb,0xffd0e5fb,0xffc7e1fb,0xffc1defb,0xffbadcfb,0xffb7dafb,0xffb4d9fb,0xffb2d8fb,0xffa8d2f8,0xaa74b3e5,0x0,0x0, |
27 | 0xffa9c5e6,0xfff4faff,0xfff2f9ff,0xffeff8ff,0xffebf7ff,0xffe8f6ff,0xffe5f5ff,0xffe0f3ff,0xffddf2ff,0xffdaf1ff,0xffcce8fb,0xaa87bde4,0x0,0x0, | 61 | 0xffa9c5e6,0xfff4faff,0xfff2f9ff,0xffeff8ff,0xffebf7ff,0xffe8f6ff,0xffe5f5ff,0xffe0f3ff,0xffddf2ff,0xffdaf1ff,0xffcce8fb,0xaa87bde4,0x0,0x0, |
28 | 0xffa8c5e6,0xfff2faff,0xfff0f9ff,0xffecf7ff,0xffe2f1fd,0xffdaeefe,0xffd4ecff,0xffc6e5ff,0xffbde1ff,0xffb7deff,0xffabd6fc,0xaa72b2e8,0x0,0x0, | 62 | 0xffa8c5e6,0xfff2faff,0xfff0f9ff,0xffecf7ff,0xffe2f1fd,0xffdaeefe,0xffd4ecff,0xffc6e5ff,0xffbde1ff,0xffb7deff,0xffabd6fc,0xaa72b2e8,0x0,0x0, |
29 | 0xffa7c5e6,0xffeff9ff,0xffedf8ff,0xffe7f5fe,0xffc5ddf4,0xffb5d4f6,0xffadd4fc,0xff8cc4fc,0xff74b8fc,0xff68affc,0xff63acfb,0xd953a2f7,0x8e50a3f8,0x1f48a1f7, | 63 | 0xffa7c5e6,0xffeff9ff,0xffedf8ff,0xffe7f5fe,0xffc5ddf4,0xffb5d4f6,0xffadd4fc,0xff8cc4fc,0xff74b8fc,0xff68affc,0xff63acfb,0xd953a2f7,0x8e50a3f8,0x1f48a1f7, |
30 | 0xffa6c5e6,0xffecf8ff,0xffe9f7ff,0xffe3f4fe,0xffbfd8f0,0xffcbddf3,0xffdcecfc,0xffd1e6fc,0xffc9e3fc,0xffc3e0fc,0xffbfdffc,0xffbcddfc,0xffa5d2f8,0x3991c9f5, | 64 | 0xffa6c5e6,0xffecf8ff,0xffe9f7ff,0xffe3f4fe,0xffbfd8f0,0xffcbddf3,0xffdcecfc,0xffd1e6fc,0xffc9e3fc,0xffc3e0fc,0xffbfdffc,0xffbcddfc,0xffa5d2f8,0x3991c9f5, |
31 | 0xffa4c4e6,0xffe8f6ff,0xffe5f5ff,0xffdef1fe,0xffbfd9f1,0xffd9e7f6,0xfff2faff,0xffecf7ff,0xffe8f6ff,0xffe3f4ff,0xffdff2ff,0xffdbf1ff,0xffbde2fa,0x39a4d5f6, | 65 | 0xffa4c4e6,0xffe8f6ff,0xffe5f5ff,0xffdef1fe,0xffbfd9f1,0xffd9e7f6,0xfff2faff,0xffecf7ff,0xffe8f6ff,0xffe3f4ff,0xffdff2ff,0xffdbf1ff,0xffbde2fa,0x39a4d5f6, |
32 | 0xffa3c3e6,0xffe5f5ff,0xffe1f4ff,0xffdbf0fe,0xffbdd8f1,0xffd6e6f6,0xffedf8ff,0xffe7f6ff,0xffe3f4ff,0xffdef2ff,0xffd9f1ff,0xffd6f0ff,0xffb9e1fa,0x39a1d4f6, | 66 | 0xffa3c3e6,0xffe5f5ff,0xffe1f4ff,0xffdbf0fe,0xffbdd8f1,0xffd6e6f6,0xffedf8ff,0xffe7f6ff,0xffe3f4ff,0xffdef2ff,0xffd9f1ff,0xffd6f0ff,0xffb9e1fa,0x39a1d4f6, |
33 | 0xffa2c3e6,0xffe2f4ff,0xffdef3ff,0xffd7effe,0xffbad7f1,0xffd2e5f6,0xffe9f7ff,0xffe3f4ff,0xffdef2ff,0xffdaf0ff,0xffd4efff,0xffd1eeff,0xffb5dffa,0x399ed3f6, | 67 | 0xffa2c3e6,0xffe2f4ff,0xffdef3ff,0xffd7effe,0xffbad7f1,0xffd2e5f6,0xffe9f7ff,0xffe3f4ff,0xffdef2ff,0xffdaf0ff,0xffd4efff,0xffd1eeff,0xffb5dffa,0x399ed3f6, |
34 | 0xff9abee4,0xffd3ebfb,0xffd0eafb,0xffcae7fa,0xffb3d2ef,0xffcfe4f6,0xffe4f5ff,0xffdef2ff,0xffd9f1ff,0xffd4efff,0xffd0edff,0xffcdecff,0xffb2defa,0x399bd2f6, | 68 | 0xff9abee4,0xffd3ebfb,0xffd0eafb,0xffcae7fa,0xffb3d2ef,0xffcfe4f6,0xffe4f5ff,0xffdef2ff,0xffd9f1ff,0xffd4efff,0xffd0edff,0xffcdecff,0xffb2defa,0x399bd2f6, |
35 | 0xaa6da6d8,0xaa8bbee4,0xaa89bde4,0xaa87bce4,0xc696c0e5,0xffcce3f6,0xffe0f4ff,0xffdaf1ff,0xffd6f0ff,0xffd1eeff,0xffcdecff,0xffc9ecff,0xffafddfa,0x399ad0f6, | 69 | 0xaa6da6d8,0xaa8bbee4,0xaa89bde4,0xaa87bce4,0xc696c0e5,0xffcce3f6,0xffe0f4ff,0xffdaf1ff,0xffd6f0ff,0xffd1eeff,0xffcdecff,0xffc9ecff,0xffafddfa,0x399ad0f6, |
36 | 0x0,0x0,0x0,0x0,0x559bc4ea,0xffb2d7f3,0xffc2e4fa,0xffbce2fa,0xffb9e1fa,0xffb6dffa,0xffb2defa,0xffafddfa,0xff9ad2f8,0x3988c9f6, | 70 | 0x0,0x0,0x0,0x0,0x559bc4ea,0xffb2d7f3,0xffc2e4fa,0xffbce2fa,0xffb9e1fa,0xffb6dffa,0xffb2defa,0xffafddfa,0xff9ad2f8,0x3988c9f6, |
37 | 0x0,0x0,0x0,0x0,0x138bbeea,0x399dccf1,0x39a9d6f6,0x39a4d5f6,0x39a2d4f6,0x399fd3f6,0x399bd1f6,0x399ad1f6,0x3988caf6,0xd79c3f6 | 71 | 0x0,0x0,0x0,0x0,0x138bbeea,0x399dccf1,0x39a9d6f6,0x39a4d5f6,0x39a2d4f6,0x399fd3f6,0x399bd1f6,0x399ad1f6,0x3988caf6,0xd79c3f6 |
38 | }; | 72 | }; |
39 | 73 | ||
74 | static const QRgb back_inactive_data[] = { | ||
75 | 0x0,0x0,0x0,0x0,0x0,0x0,0x1f1f1f1,0x5f1f1f1,0x5f1f1f1,0x4f1f1f1,0x1f1f1f1,0x0,0x0,0x0, | ||
76 | 0x0,0x0,0x0,0x0,0x0,0x2f1f1f1,0x33a7bef1,0x9483a4f1,0x997d9ef1,0x947798f1,0x78668bf1,0xb3a6dbf,0x0,0x0, | ||
77 | 0x0,0x0,0x0,0x0,0x1f1f1f1,0x32a8bff1,0xca8caaec,0xffc5d4e8,0xffc7d5e8,0xffc1d1e8,0xe2738dcc,0x152b4b72,0x0,0x0, | ||
78 | 0x0,0x0,0x0,0x1f1f1f1,0x27a5bdf1,0xc384a4ec,0xfebccbdd,0xffd2d9db,0xffcfd7dd,0xeb8297c7,0x4a34557f,0x2000000,0x0,0x0, | ||
79 | 0x0,0x0,0xf1f1f1,0x18c6d4f1,0xa786a5e5,0xffa9bbd4,0xffc2cbd1,0xffc0cad1,0xf1889cc7,0x5a3a5781,0x5000000,0x0,0x0,0x0, | ||
80 | 0x0,0x0,0xff1f1f1,0x8e82a1e8,0xf99ab1cb,0xffb4c0c6,0xffb4c0c6,0xfb8ca0ca,0x8643669b,0xa172235,0x0,0x0,0x0,0x0, | ||
81 | 0x0,0x0,0x4c7191f1,0xf688a1c7,0xffa7b5bb,0xffa8b5bb,0xff93a7c0,0x983f619a,0xe172a4a,0x0,0x0,0x0,0x0,0x0, | ||
82 | 0x0,0x0,0x1e7692f1,0xcb617fcb,0xff99a8b5,0xff9dacb4,0xff9baab4,0xd25b79c5,0x1e2657c6,0x0,0x0,0x0,0x0,0x0, | ||
83 | 0x0,0x0,0x2f1f1f1,0x234866c1,0xd16580bb,0xff91a2ad,0xff94a4ac,0xff8a9daf,0xb94f71c4,0xe2049a7,0x0,0x0,0x0,0x0, | ||
84 | 0x0,0x0,0x0,0x2aeb5dd,0x433a60ce,0xef667fb9,0xff8c9ca7,0xff8d9da7,0xfb7f92ab,0x8c4367bb,0x41d48ab,0x0,0x0,0x0, | ||
85 | 0x0,0x0,0x0,0xf1f1f1,0x3949cdb,0x59355ad1,0xf36c81b1,0xff8798a1,0xff8799a1,0xfd788ba9,0x83355cc2,0x1173372,0x0,0x0, | ||
86 | 0x0,0x0,0x0,0x0,0xf1f1f1,0x3f1f1f1,0x5e2654ca,0xe95f7bad,0xf0617da7,0xf0617ca7,0xe2486db1,0x1c1a3b8c,0x0,0x0, | ||
87 | 0x0,0x0,0x0,0x0,0x0,0xf1f1f1,0x787878,0x251a3f9d,0x32173b8e,0x32173a8d,0x2b173884,0x50e0e13,0x0,0x0, | ||
88 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
89 | }; | ||
90 | |||
91 | static const QRgb back_data[] = { | ||
92 | 0x0,0x0,0x0,0x0,0x0,0x0,0x1fefefe,0x5fefefe,0x5fefefe,0x4fefefe,0x1fefefe,0x0,0x0,0x0, | ||
93 | 0x0,0x0,0x0,0x0,0x0,0x2fefefe,0x33c7e2fe,0x9488c2fe,0x997ab9fe,0x946daffe,0x784f97fe,0xb175be3,0x0,0x0, | ||
94 | 0x0,0x0,0x0,0x0,0x1fefefe,0x32c8e3fe,0xca99cafd,0xffe8f3fc,0xffeaf4fc,0xffe5f1fc,0xe2659cee,0x150c2863,0x0,0x0, | ||
95 | 0x0,0x0,0x0,0x1fefefe,0x27c4e1fe,0xc38ac2fd,0xfee0edf8,0xfff2f6f7,0xfff0f5f8,0xeb84adea,0x4a12347f,0x2000000,0x0,0x0, | ||
96 | 0x0,0x0,0xfefefe,0x18e9f3fe,0xa78ec4fb,0xffc9dff3,0xffe6edf1,0xffe4ecf1,0xf191b6ea,0x5a173782,0x5000000,0x0,0x0,0x0, | ||
97 | 0x0,0x0,0xffefefe,0x8e85befc,0xf9b3d3ed,0xffd7e4e9,0xffd7e4e9,0xfb9abcec,0x861f4eb4,0xa030713,0x0,0x0,0x0,0x0, | ||
98 | 0x0,0x0,0x4c62a2fe,0xf691beea,0xffc7d8df,0xffc8d8df,0xffa7c6e4,0x981b46b3,0xe030b27,0x0,0x0,0x0,0x0,0x0, | ||
99 | 0x0,0x0,0x1e6ba4fe,0xcb467fed,0xffb0c8d8,0xffb8cdd7,0xffb4cbd7,0xd23d71e8,0x1e0937e9,0x0,0x0,0x0,0x0,0x0, | ||
100 | 0x0,0x0,0x2fefefe,0x23244ee5,0xd14c80df,0xffa2bfcf,0xffa8c2cd,0xff95b7d1,0xb92d62e7,0xe0626c7,0x0,0x0,0x0,0x0, | ||
101 | 0x0,0x0,0x0,0x2d0d8f8,0x431744ef,0xef4f7fdd,0xff99b6c7,0xff9bb7c6,0xfb7fa4cc,0x8c1f50df,0x40524cc,0x0,0x0,0x0, | ||
102 | 0x0,0x0,0x0,0xfefefe,0x3a8b5f7,0x59133bf1,0xf35883d3,0xff90afbe,0xff90b0be,0xfd6f97c9,0x83133ee6,0x1031164,0x0,0x0, | ||
103 | 0x0,0x0,0x0,0x0,0xfefefe,0x3fefefe,0x5e0933ec,0xe94375ce,0xf0467ac7,0xf04679c7,0xe2245ad4,0x1c041899,0x0,0x0, | ||
104 | 0x0,0x0,0x0,0x0,0x0,0xfefefe,0x707070,0x25041bb8,0x3203189d,0x3203179c,0x2b031589,0x5010102,0x0,0x0, | ||
105 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
106 | }; | ||
107 | |||
108 | static const QRgb beam_data[] = { | ||
109 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
110 | 0xdcdcdc,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xdcdcdc, | ||
111 | 0xffc3c3c3,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xffc3c3c3, | ||
112 | 0xdcdcdc,0xdcdcdc,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xdcdcdc,0xdcdcdc, | ||
113 | 0xdcdcdc,0xffa0a0a0,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xffa0a0a0,0xdcdcdc, | ||
114 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
115 | 0xdcdcdc,0xdcdcdc,0xff808080,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff808080,0xdcdcdc,0xdcdcdc, | ||
116 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff585858,0xff585858,0xff585858,0xff585858,0xff585858,0xff585858,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
117 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff585858,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff585858,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
118 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xff303030,0xff303030,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
119 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
120 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
121 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
122 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc | ||
123 | }; | ||
124 | |||
125 | static const QRgb bell_data[] = { | ||
126 | 0xfffffa,0x0,0x1e2e2e1,0x40938117,0x4b8c7c1a,0xa090804,0x7000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
127 | 0x0,0x0,0x31bbb55b,0xdcc0ac29,0xe8bfa51d,0xa5a89226,0x4b807420,0x13000000,0x7000000,0x1000000,0x0,0x0,0x0,0x0, | ||
128 | 0x0,0x488893c,0xb5c0be2f,0xffecd50d,0xffebbf05,0xffbe9a04,0xde96820a,0x43302a10,0x1e000000,0x9000000,0x1000000,0x0,0x0,0x0, | ||
129 | 0x0,0x25a19738,0xead5cc1b,0xfff7e605,0xfff6cb07,0xffddad01,0xffaf8d03,0xba766819,0x430c0a04,0x1c000000,0x6000000,0x0,0x0,0x0, | ||
130 | 0x0,0x30a6943b,0xf0e1d016,0xfffaf007,0xfff4d802,0xfff5c502,0xffcda300,0xf9947e0d,0x89534517,0x3c020201,0x13000000,0x3000000,0x0,0x0, | ||
131 | 0x1000000,0x31b29d54,0xf0e7d61b,0xfffdf703,0xfff8de01,0xfffcca06,0xffecb900,0xffc39d03,0xf49c8222,0x7e4f471f,0x2c010100,0xd000000,0x2000000,0x0, | ||
132 | 0x1000000,0x31b6a257,0xf0e9d71c,0xfffdf801,0xfff9ed01,0xfff5d203,0xfffacc06,0xfff1c407,0xffe5c20a,0xf7cab927,0x717f782f,0x25000000,0xb000000,0x2000000, | ||
133 | 0x1000000,0x31b2a243,0xf0ecdd13,0xfffdf70a,0xfff6ef18,0xffe7d213,0xffcdac0d,0xffb28c07,0xffb28b0a,0xffc8a508,0xfad3b91f,0x72776521,0x23000000,0xa000000, | ||
134 | 0x1000000,0x5ed5c442,0xfaf1df19,0xffd9c508,0xffb49806,0xff9a7c00,0xffb0930f,0xff9b7804,0xff9c7303,0xffd4a508,0xfecca719,0xd08d7422,0x47000000,0x1a000000, | ||
135 | 0x8ac9d4f,0xb4d8bd2a,0xffd2a70a,0xffae8308,0xffa07c01,0xffb89209,0xffcab546,0xffedcf2f,0xffab8706,0xffb69017,0xe479631e,0x93110d05,0x5d000000,0x25000000, | ||
136 | 0x1394822c,0xd8c9a718,0xffe3af0a,0xffddbc07,0xfff2ed07,0xfff3e516,0xffbca716,0xfaab9819,0xd66d5c13,0xb340340d,0x91050401,0x79000000,0x4a000000,0x1c000000, | ||
137 | 0x7221d0b,0x749b8020,0xddaa8a26,0xe2a89523,0xe4a0a61f,0xe87f821a,0xc34d470e,0xa11f1c05,0x8e000000,0x7c000000,0x64000000,0x44000000,0x22000000,0xb000000, | ||
138 | 0x4000000,0x19010100,0x43070603,0x63040301,0x76020200,0x7f000000,0x7d000000,0x6c000000,0x57000000,0x3f000000,0x29000000,0x16000000,0x8000000,0x2000000, | ||
139 | 0x1000000,0xa000000,0x20000000,0x39000000,0x45000000,0x45000000,0x3e000000,0x2e000000,0x1e000000,0x11000000,0x8000000,0x3000000,0x1000000,0x0 | ||
140 | }; | ||
141 | |||
142 | static const QRgb binary_data[] = { | ||
143 | 0x0,0x40d0d0df,0xffd2d2e0,0xffd6d6e3,0xffd6d6e3,0xffd5d5e3,0xffd5d5e3,0xffd3d3e1,0xffc7c7d8,0xaba2a2bb,0x109c9cb6,0x0,0x0,0x0, | ||
144 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffffffff,0xfffbfbfe,0xfff6f6fd,0xffeaeaf3,0xffe4e4ef,0xffc2c2d4,0x9fa7a7bf,0x189c9cb6,0x0,0x0, | ||
145 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffffffff,0xffe2e2ea,0xfff4f4fb,0xffededf5,0xffdfdfeb,0xffbdbdd0,0xffadadc3,0x9b9c9cb6,0x189c9cb6,0x0, | ||
146 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffe0e0e8,0xffa8a8bf,0xffededf5,0xffefeff7,0xffe1e1ec,0xffbebed1,0xffb6b6cb,0xffa4a4bd,0x409c9cb6,0x0, | ||
147 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffe8e8ee,0xffababc1,0xffefeff6,0xfff1f1f8,0xffe9e9f2,0xffdadae6,0xffcecedd,0xffaeaec4,0x409c9cb6,0x0, | ||
148 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffd1d1dd,0xffa2a2bb,0xffb1b1c6,0xfff2f2f8,0xffe6e6f0,0xffd4d4e3,0xffd0d0df,0xffafafc5,0x409c9cb6,0x0, | ||
149 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xfff7f7f9,0xffeeeef5,0xffeaeaf3,0xffe8e8f1,0xffe0e0ec,0xffdbdbe8,0xffd8d8e6,0xffb2b2c8,0x409c9cb6,0x0, | ||
150 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xfffdfdff,0xffefeff7,0xffeeeef5,0xffe6e6f0,0xffe2e2ed,0xffdadae8,0xffddddea,0xffb4b4c9,0x409c9cb6,0x0, | ||
151 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffededf3,0xffbdbdd0,0xffd4d4e1,0xffe8e8f1,0xffc7c7d7,0xffb6b6cb,0xffe1e1ed,0xffb6b6ca,0x409c9cb6,0x0, | ||
152 | 0x0,0x40d0d0df,0xffe2e2eb,0xfffdfdff,0xffc0c0d1,0xffdcdce8,0xffa7a7be,0xffe5e5ef,0xffb2b2c7,0xffb7b7cb,0xffe2e2ed,0xffb6b6ca,0x409c9cb6,0x0, | ||
153 | 0x0,0x40d0d0df,0xffe2e2eb,0xfffbfbfe,0xffdadae6,0xffc7c7d7,0xffc6c6d7,0xffe7e7f1,0xffb9b9cd,0xffaaaac1,0xffd1d1e0,0xffb6b6cb,0x409c9cb6,0x0, | ||
154 | 0x0,0x40d0d0df,0xffe2e2eb,0xfff9f9fd,0xfff3f3f9,0xffd9d9e5,0xffececf3,0xffe9e9f1,0xffccccdc,0xffcacada,0xffd5d5e3,0xffb6b6cb,0x409c9cb6,0x0, | ||
155 | 0x0,0x40d0d0df,0xffe1e1eb,0xfff8f8fc,0xfff3f3f9,0xfff1f1f8,0xffefeff6,0xffebebf4,0xffe9e9f2,0xffe6e6f0,0xffe3e3ee,0xffb6b6cb,0x409c9cb6,0x0, | ||
156 | 0x0,0x40a3a3bb,0xffa5a5bd,0xffa7a7bf,0xffa7a7be,0xffa7a7be,0xffa6a6be,0xffa6a6be,0xffa6a6be,0xffa5a5bd,0xffa5a5bd,0xff9f9fb9,0x409c9cb6,0x0 | ||
157 | }; | ||
158 | |||
159 | static const QRgb bold_data[] = { | ||
160 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
161 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
162 | 0x0,0x0,0x0,0x30000000,0x60000000,0x60000000,0x60000000,0x60000000,0x48000000,0x0,0x0,0x0,0x0,0x0, | ||
163 | 0x0,0x0,0x0,0x40000000,0xcf000000,0xff000000,0x8f000000,0x8f000000,0xdf000000,0x50000000,0x0,0x0,0x0,0x0, | ||
164 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0xc000000,0x87000000,0xdb000000,0x50000000,0x0,0x0,0x0, | ||
165 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x40000000,0xff000000,0x7f000000,0x0,0x0,0x0, | ||
166 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x1c000000,0xe7000000,0xab000000,0x10000000,0x0,0x0,0x0, | ||
167 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0xe3000000,0xdf000000,0xe7000000,0xab000000,0x10000000,0x0,0x0,0x0, | ||
168 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x30000000,0xd7000000,0x9f000000,0x18000000,0x0,0x0, | ||
169 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x0,0x60000000,0xff000000,0x60000000,0x0,0x0, | ||
170 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x20000000,0xaf000000,0xbf000000,0x30000000,0x0,0x0, | ||
171 | 0x0,0x0,0x0,0x50000000,0xdb000000,0xff000000,0xab000000,0x9f000000,0xb7000000,0xc3000000,0x30000000,0x0,0x0,0x0, | ||
172 | 0x0,0x0,0x0,0x20000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x28000000,0x0,0x0,0x0,0x0, | ||
173 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
174 | }; | ||
175 | |||
176 | static const QRgb calculator_data[] = { | ||
177 | 0x2000000,0xfff8f8f8,0xfff1f1f1,0xffe1e1e1,0xffd4d4d4,0xffdfdfdf,0xffeaeaea,0xffeaeaea,0xffeaeaea,0xffeaeaea,0xffeaeaea,0xffeaeaea,0x13000000,0xe000000, | ||
178 | 0x7000000,0xff649c64,0xff549254,0xff3c763c,0xffffffff,0xff3c763c,0xff468946,0xff468946,0xff468946,0xff468946,0xff468946,0xff2e792e,0xff005800,0x2b000000, | ||
179 | 0xe000000,0xff508b50,0xff2c6b2c,0xff134a13,0xffffffff,0xff134a13,0xff185e18,0xff1b691b,0xff1c6e1c,0xff1c6e1c,0xff1c6e1c,0xff005b00,0xff004300,0x55000000, | ||
180 | 0x13000000,0xff3f7c3f,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff005300,0xff005c00,0xff005c00,0xff005c00,0xff005100,0xff003a00,0x71000000, | ||
181 | 0x15000000,0xff438343,0xff185e18,0xff003e00,0xffffffff,0xff003900,0xff004200,0xff004600,0xff004b00,0xff004b00,0xff004f00,0xff004d00,0xff003a00,0x7f000000, | ||
182 | 0x15000000,0xff468946,0xff1c6e1c,0xff004f00,0xffffffff,0xff004600,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff004900,0xff003a00,0x7f000000, | ||
183 | 0x15000000,0xff438343,0xff196419,0xff005300,0xff005300,0xff004f00,0xff004600,0xff004600,0xff004600,0xff004200,0xff004b00,0xff004d00,0xff003a00,0x7f000000, | ||
184 | 0x15000000,0xff3f7c3f,0xffffffff,0xff7fa57f,0xff005300,0xff7fa57f,0xffffffff,0xff005300,0xff7fa97f,0xffffffff,0xff7fa97f,0xff005100,0xff003a00,0x7f000000, | ||
185 | 0x15000000,0xff438343,0xff8bac8b,0xffffffff,0xff7fa07f,0xffffffff,0xff7fa27f,0xff004b00,0xff004600,0xff004200,0xff004600,0xff004600,0xff003700,0x7f000000, | ||
186 | 0x15000000,0xff468946,0xff196419,0xff7fa07f,0xffffffff,0xff7fa07f,0xff004b00,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff003500,0x7f000000, | ||
187 | 0x15000000,0xff438343,0xff8bac8b,0xffffffff,0xff7fa07f,0xffffffff,0xff7fa27f,0xff004b00,0xff004600,0xff004200,0xff004600,0xff004600,0xff003700,0x7f000000, | ||
188 | 0x15000000,0xff2a6e2a,0xffffffff,0xff7fa07f,0xff004900,0xff7fa07f,0xffffffff,0xff004900,0xff7fa47f,0xffffffff,0xff7fa47f,0xff004800,0xff003600,0x7f000000, | ||
189 | 0x13000000,0xff005400,0xff003d00,0xff003700,0xff003a00,0xff003700,0xff003500,0xff003700,0xff003700,0xff003500,0xff003700,0xff003600,0xff003000,0x71000000, | ||
190 | 0xe000000,0x2b000000,0x55000000,0x71000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x71000000,0x55000000 | ||
191 | }; | ||
192 | |||
40 | static const QRgb Calibrate_data[] = { | 193 | static const QRgb Calibrate_data[] = { |
41 | 0xffffff,0xffffff,0x1ffffff,0x3ffffff,0x5ffffff,0x8dfdfdf,0xdc4c4c4,0x13aeaeae,0x1ba1a1a1,0x258a8a8a,0x2f828282,0x39797979,0x41727272,0x486e6e6e, | 194 | 0xffffff,0xffffff,0x1ffffff,0x3ffffff,0x5ffffff,0x8dfdfdf,0xdc4c4c4,0x13aeaeae,0x1ba1a1a1,0x258a8a8a,0x2f828282,0x39797979,0x41727272,0x486e6e6e, |
42 | 0x4d6a6a6a,0x51686868,0x51656565,0x4f646464,0x4b636363,0x45646464,0x3d646464,0x32666666,0x286c6c6c,0x1e6f6f6f,0x15797979,0xd898989,0x104f4f4f,0x4bfbfbf, | 195 | 0x4d6a6a6a,0x51686868,0x51656565,0x4f646464,0x4b636363,0x45646464,0x3d646464,0x32666666,0x286c6c6c,0x1e6f6f6f,0x15797979,0xd898989,0x104f4f4f,0x4bfbfbf, |
43 | 0x1ffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1ffffff,0x3ffffff,0x6d5d5d5,0xacccccc,0x11b4b4b4,0x1aa7a7a7,0x26949494,0x33878787,0x417e7e7e, | 196 | 0x1ffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1ffffff,0x3ffffff,0x6d5d5d5,0xacccccc,0x11b4b4b4,0x1aa7a7a7,0x26949494,0x33878787,0x417e7e7e, |
44 | 0x9c84939a,0xda74889d,0xf461749c,0xfd52659b,0xff48589b,0xff46599e,0xff4c5e9a,0xfd586c99,0xf5657b97,0xdd728791,0xa6758484,0x575e5e5e,0x495e5e5e,0x39626262, | 197 | 0x9c84939a,0xda74889d,0xf461749c,0xfd52659b,0xff48589b,0xff46599e,0xff4c5e9a,0xfd586c99,0xf5657b97,0xdd728791,0xa6758484,0x575e5e5e,0x495e5e5e,0x39626262, |
45 | 0x2a676767,0x4e1f1f1f,0xaa040404,0xffb0b0b0,0x5999999,0x2808080,0xffffff,0xffffff,0x1ffffff,0x3ffffff,0x6d5d5d5,0xbd1d1d1,0x14b3b3b3,0x209f9f9f, | 198 | 0x2a676767,0x4e1f1f1f,0xaa040404,0xffb0b0b0,0x5999999,0x2808080,0xffffff,0xffffff,0x1ffffff,0x3ffffff,0x6d5d5d5,0xbd1d1d1,0x14b3b3b3,0x209f9f9f, |
46 | 0x2e909090,0x3f868686,0xb681939e,0xf365799d,0xff596fa4,0xff6d89ab,0xff84a7af,0xff97c0b4,0xffa2d0b5,0xffa8d7b7,0xffa2d0b4,0xff97c1af,0xff87aeaa,0xff7696a3, | 199 | 0x2e909090,0x3f868686,0xb681939e,0xf365799d,0xff596fa4,0xff6d89ab,0xff84a7af,0xff97c0b4,0xffa2d0b5,0xffa8d7b7,0xffa2d0b4,0xff97c1af,0xff87aeaa,0xff7696a3, |
47 | 0xff658199,0xf4657d8d,0xc3728384,0x5d5a5a5a,0x702e2e2e,0xf0020202,0xffc2c2c2,0xffa7a7a7,0xff636363,0x5999999,0x2808080,0xffffff,0x3ffffff,0x6d5d5d5, | 200 | 0xff658199,0xf4657d8d,0xc3728384,0x5d5a5a5a,0x702e2e2e,0xf0020202,0xffc2c2c2,0xffa7a7a7,0xff636363,0x5999999,0x2808080,0xffffff,0x3ffffff,0x6d5d5d5, |
48 | 0xbd1d1d1,0x16aeaeae,0x229e9e9e,0x348e8e8e,0x8089999b,0xe97186a1,0xff647da7,0xff81a4b0,0xffa4d2ba,0xffb5e8bc,0xffbcf0bf,0xffbef4be,0xffbff6be,0xffbff6bc, | 201 | 0xbd1d1d1,0x16aeaeae,0x229e9e9e,0x348e8e8e,0x8089999b,0xe97186a1,0xff647da7,0xff81a4b0,0xffa4d2ba,0xffb5e8bc,0xffbcf0bf,0xffbef4be,0xffbff6be,0xffbff6bc, |
49 | 0xffbef4bc,0xffb7edb7,0xffb3e7b5,0xffaadcae,0xff98c5a5,0xff7ca197,0xff638086,0xf249595e,0xf7040405,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2e2e2e,0xff0f0f0f, | 202 | 0xffbef4bc,0xffb7edb7,0xffb3e7b5,0xffaadcae,0xff98c5a5,0xff7ca197,0xff638086,0xf249595e,0xf7040405,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2e2e2e,0xff0f0f0f, |
50 | 0x5999999,0x2808080,0x5ffffff,0xacccccc,0x14b3b3b3,0x229e9e9e,0x358c8c8c,0xa48697a0,0xf7687ca2,0xff7c9db0,0xffa4d2b9,0xffbbefc0,0xffc2f9c1,0xffc4fbc1, | 203 | 0x5999999,0x2808080,0x5ffffff,0xacccccc,0x14b3b3b3,0x229e9e9e,0x358c8c8c,0xa48697a0,0xf7687ca2,0xff7c9db0,0xffa4d2b9,0xffbbefc0,0xffc2f9c1,0xffc4fbc1, |
51 | 0xffc3fac0,0xffc3fac0,0xffc1f8be,0xffc0f7bd,0xffbdf4ba,0xffbbf1b8,0xffb6ebb3,0xffaee2ab,0xffa3d4a1,0xff90bc92,0xff050707,0xff060808,0xff8b89b4,0xff9b9ba6, | 204 | 0xffc3fac0,0xffc3fac0,0xffc1f8be,0xffc0f7bd,0xffbdf4ba,0xffbbf1b8,0xffb6ebb3,0xffaee2ab,0xffa3d4a1,0xff90bc92,0xff050707,0xff060808,0xff8b89b4,0xff9b9ba6, |
52 | 0xff6b6b6b,0xff2f2e2e,0xff0b0b0b,0x8c070707,0xb747474,0x4808080,0x8dfdfdf,0x10afafaf,0x1f9c9c9c,0x338c8c8c,0xa38396a0,0xfa6379a2,0xff87aab2,0xffb3e5be, | 205 | 0xff6b6b6b,0xff2f2e2e,0xff0b0b0b,0x8c070707,0xb747474,0x4808080,0x8dfdfdf,0x10afafaf,0x1f9c9c9c,0x338c8c8c,0xa38396a0,0xfa6379a2,0xff87aab2,0xffb3e5be, |
53 | 0xffc3fac2,0xffc6fdc3,0xffc5fcc2,0xffc4fbc1,0xffc2f9bf,0xffc1f8be,0xffc0f7bd,0xffbdf4ba,0xffbbf1b8,0xffb6ebb3,0xffaee2ab,0xffa4d5a1,0xff96c294,0xff919291, | 206 | 0xffc3fac2,0xffc6fdc3,0xffc5fcc2,0xffc4fbc1,0xffc2f9bf,0xffc1f8be,0xffc0f7bd,0xffbdf4ba,0xffbbf1b8,0xffb6ebb3,0xffaee2ab,0xffa4d5a1,0xff96c294,0xff919291, |
54 | 0xff080b08,0xffb8b8c0,0xff8d8ca3,0xff4d4d64,0xff2b2a2d,0xff0b0b0b,0xf1020202,0x541a1a1a,0x14595959,0x8606060,0xcbfbfbf,0x19a3a3a3,0x2c8b8b8b,0x7e88989a, | 207 | 0xff080b08,0xffb8b8c0,0xff8d8ca3,0xff4d4d64,0xff2b2a2d,0xff0b0b0b,0xf1020202,0x541a1a1a,0x14595959,0x8606060,0xcbfbfbf,0x19a3a3a3,0x2c8b8b8b,0x7e88989a, |
55 | 0xf7667ca1,0xff87aab2,0xffb6e9be,0xffc6fdc3,0xffc5fcc2,0xffc5fcc2,0xffc4fbc1,0xffc3fac0,0xffc1f8be,0xffc0f7bd,0xffbdf4ba,0xffbaf0b7,0xffb5eab2,0xffaee2ab, | 208 | 0xf7667ca1,0xff87aab2,0xffb6e9be,0xffc6fdc3,0xffc5fcc2,0xffc5fcc2,0xffc4fbc1,0xffc3fac0,0xffc1f8be,0xffc0f7bd,0xffbdf4ba,0xffbaf0b7,0xffb5eab2,0xffaee2ab, |
56 | 0xffa3d4a0,0xff95c092,0xff0f1210,0xff080b08,0xffc2c2c2,0xffaaaaaa,0xff67676a,0xff27272d,0xff08080a,0xf8040404,0x7f252525,0x374a4a4a,0x1e4d4d4d,0xf555555, | 209 | 0xffa3d4a0,0xff95c092,0xff0f1210,0xff080b08,0xffc2c2c2,0xffaaaaaa,0xff67676a,0xff27272d,0xff08080a,0xf8040404,0x7f252525,0x374a4a4a,0x1e4d4d4d,0xf555555, |
57 | 0x11a5a5a5,0x238a8a8a,0x3c7b7b7b,0xe97184a0,0xff7c9db0,0xffb3e5be,0xffc6fdc3,0xffc6fdc3,0xffc5fcc2,0xffc4fbc1,0xffc2f9bf,0xffc1f8be,0xffbff6bc,0xffbcf3b9, | 210 | 0x11a5a5a5,0x238a8a8a,0x3c7b7b7b,0xe97184a0,0xff7c9db0,0xffb3e5be,0xffc6fdc3,0xffc6fdc3,0xffc5fcc2,0xffc4fbc1,0xffc2f9bf,0xffc1f8be,0xffbff6bc,0xffbcf3b9, |
58 | 0xffb9efb6,0xffb4e9b1,0xfface0a9,0xffa1d29e,0xff95c192,0xff878b85,0xff080b08,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2f2f2f,0xff0b0b0b,0xff020303,0xf72e3a39, | 211 | 0xffb9efb6,0xffb4e9b1,0xfface0a9,0xffa1d29e,0xff95c192,0xff878b85,0xff080b08,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2f2f2f,0xff0b0b0b,0xff020303,0xf72e3a39, |
59 | 0x72414141,0x4c404040,0x2c404040,0x17434343,0x18959595,0x307a7a7a,0xb57f919c,0xff637ca6,0xffa4d1b8,0xffc2f9c1,0xffbdf4ba,0xff96cd93,0xff71a86e,0xff50874d, | 212 | 0x72414141,0x4c404040,0x2c404040,0x17434343,0x18959595,0x307a7a7a,0xb57f919c,0xff637ca6,0xffa4d1b8,0xffc2f9c1,0xffbdf4ba,0xff96cd93,0xff71a86e,0xff50874d, |
60 | 0xff356c32,0xff235a20,0xff2b6228,0xff3f763c,0xff5a9058,0xff7baf78,0xff98c996,0xff93be91,0xff202520,0xff090b08,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2f2e2e, | 213 | 0xff356c32,0xff235a20,0xff2b6228,0xff3f763c,0xff5a9058,0xff7baf78,0xff98c996,0xff93be91,0xff202520,0xff090b08,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2f2e2e, |
61 | 0xff0b0b0b,0xff030403,0xff212d21,0xff33463c,0xd34c5c55,0x643b3b3b,0x3e3a3a3a,0x223c3c3c,0x217c7c7c,0x3c6f6f6f,0xf263779a,0xff80a2af,0xffb9edbe,0xff8ec58b, | 214 | 0xff0b0b0b,0xff030403,0xff212d21,0xff33463c,0xd34c5c55,0x643b3b3b,0x3e3a3a3a,0x223c3c3c,0x217c7c7c,0x3c6f6f6f,0xf263779a,0xff80a2af,0xffb9edbe,0xff8ec58b, |
62 | 0xff5a9157,0xff5f965c,0xff80b77d,0xff9ad197,0xffb0e7ad,0xffb9f0b6,0xffa9dfa6,0xff8ac087,0xff679b64,0xff3c6d39,0xff366134,0xff787f78,0xff080a08,0xffa8a9a8, | 215 | 0xff5a9157,0xff5f965c,0xff80b77d,0xff9ad197,0xffb0e7ad,0xffb9f0b6,0xffa9dfa6,0xff8ac087,0xff679b64,0xff3c6d39,0xff366134,0xff787f78,0xff080a08,0xffa8a9a8, |
63 | 0xffa8a8a8,0xff6b6b6c,0xff2e2f2e,0xff0b0b0b,0xff030403,0xff243123,0xff3b523b,0xff425c48,0xf7475d56,0x7b363636,0x51323232,0x2f363636,0x29707070,0x977b8c93, | 216 | 0xffa8a8a8,0xff6b6b6c,0xff2e2f2e,0xff0b0b0b,0xff030403,0xff243123,0xff3b523b,0xff425c48,0xf7475d56,0x7b363636,0x51323232,0x2f363636,0x29707070,0x977b8c93, |
64 | 0xff576da2,0xff94c1a6,0xff6ea56c,0xff659c62,0xff9ad197,0xffc1f8be,0xffc0f7bd,0xffbef5bb,0xffbbf2b8,0xffb9efb6,0xffb3e8b0,0xfface0a9,0xffa1d29e,0xff94bf91, | 217 | 0xff576da2,0xff94c1a6,0xff6ea56c,0xff659c62,0xff9ad197,0xffc1f8be,0xffc0f7bd,0xffbef5bb,0xffbbf2b8,0xffb9efb6,0xffb3e8b0,0xfface0a9,0xffa1d29e,0xff94bf91, |
65 | 0xff212720,0xff050704,0xffbdbdbd,0xff000000,0xff606160,0xff2e2e2e,0xff0b0b0b,0xff030403,0xff233022,0xff3c543b,0xff4c6b4b,0xff557857,0xff50715d,0xbe48554c, | 218 | 0xff212720,0xff050704,0xffbdbdbd,0xff000000,0xff606160,0xff2e2e2e,0xff0b0b0b,0xff030403,0xff233022,0xff3c543b,0xff4c6b4b,0xff557857,0xff50715d,0xbe48554c, |
66 | 0x622f2f2f,0x3c2f2f2f,0x32616161,0xd8738598,0xff627e98,0xff5b8e5d,0xff7fb67c,0xffc0f7bd,0xffc1f8be,0xffa7dea4,0xff76ad73,0xff487f45,0xff235a20,0xff0b4108, | 219 | 0x622f2f2f,0x3c2f2f2f,0x32616161,0xd8738598,0xff627e98,0xff5b8e5d,0xff7fb67c,0xffc0f7bd,0xffc1f8be,0xffa7dea4,0xff76ad73,0xff487f45,0xff235a20,0xff0b4108, |
67 | 0xff1b5018,0xff366834,0xff588456,0xff778178,0xff080b08,0xffc2c2c2,0xffa9a9a9,0xff686868,0xff000000,0xff111111,0xff030402,0xff222f21,0xff3b533a,0xff4c6a4a, | 220 | 0xff1b5018,0xff366834,0xff588456,0xff778178,0xff080b08,0xffc2c2c2,0xffa9a9a9,0xff686868,0xff000000,0xff111111,0xff030402,0xff222f21,0xff3b533a,0xff4c6a4a, |
68 | 0xff5a7f58,0xff618b60,0xff5c8663,0xe64e6458,0x722b2b2b,0x47282828,0x39555555,0xf35f7397,0xff466b5c,0xff77ab77,0xffc0f7bd,0xffbff6bc,0xff80b77d,0xff3d743a, | 221 | 0xff5a7f58,0xff618b60,0xff5c8663,0xe64e6458,0x722b2b2b,0x47282828,0x39555555,0xf35f7397,0xff466b5c,0xff77ab77,0xffc0f7bd,0xffbff6bc,0xff80b77d,0xff3d743a, |
69 | 0xff60975d,0xff84bb81,0xffa0d69d,0xffaee4ab,0xff93c690,0xff6b9a69,0xff192219,0xff030603,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2f2e2f,0xff0c0c0c,0xff020302, | 222 | 0xff60975d,0xff84bb81,0xffa0d69d,0xffaee4ab,0xff93c690,0xff6b9a69,0xff192219,0xff030603,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b,0xff2f2e2f,0xff0c0c0c,0xff020302, |
70 | 0xff202e1f,0xff395038,0xff486747,0xff587d56,0xff638e60,0xff689766,0xff629167,0xf74d6a5b,0x7f262626,0x53252525,0x3e4e4e4e,0xfd3b4e79,0xff456f51,0xffb9efb9, | 223 | 0xff202e1f,0xff395038,0xff486747,0xff587d56,0xff638e60,0xff689766,0xff629167,0xf74d6a5b,0x7f262626,0x53252525,0x3e4e4e4e,0xfd3b4e79,0xff456f51,0xffb9efb9, |
71 | 0xffbff6bc,0xff73aa70,0xff60975d,0xff9dd49a,0xffb9f0b6,0xffb5ebb2,0xffb1e7af,0xffabdfa8,0xff9ecf9c,0xff87b185,0xff1d261d,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b, | 224 | 0xffbff6bc,0xff73aa70,0xff60975d,0xff9dd49a,0xffb9f0b6,0xffb5ebb2,0xffb1e7af,0xffabdfa8,0xff9ecf9c,0xff87b185,0xff1d261d,0xffc2c2c2,0xffaaaaaa,0xff6b6b6b, |
72 | 0xff2f2f2f,0xff0b0b0b,0xff010201,0xff152214,0xff364d35,0xff456343,0xff537851,0xff608b5d,0xff679765,0xff6a9b67,0xff649665,0xfd51745d,0x8a232323,0x5b222222, | 225 | 0xff2f2f2f,0xff0b0b0b,0xff010201,0xff152214,0xff364d35,0xff456343,0xff537851,0xff608b5d,0xff679765,0xff6a9b67,0xff649665,0xfd51745d,0x8a232323,0x5b222222, |
73 | 0x43484848,0xff1d2f45,0xff7aa888,0xffbbf1b9,0xff7eb57b,0xff60975d,0xffb9f0b6,0xffb9f0b6,0xff8ec58b,0xff548a51,0xff245921,0xff063904,0xff1b4a19,0xff152515, | 226 | 0x43484848,0xff1d2f45,0xff7aa888,0xffbbf1b9,0xff7eb57b,0xff60975d,0xffb9f0b6,0xffb9f0b6,0xff8ec58b,0xff548a51,0xff245921,0xff063904,0xff1b4a19,0xff152515, |
74 | 0xffbfbfbf,0xffaaaaaa,0xff6b6b6b,0xff2e2f2e,0xff0b0b0b,0xff020302,0xff162315,0xff112810,0xff3e5c3c,0xff4f744d,0xff5a8558,0xff639260,0xff679a64,0xff689d65, | 227 | 0xffbfbfbf,0xffaaaaaa,0xff6b6b6b,0xff2e2f2e,0xff0b0b0b,0xff020302,0xff162315,0xff112810,0xff3e5c3c,0xff4f744d,0xff5a8558,0xff639260,0xff679a64,0xff689d65, |
75 | 0xff629761,0xff537f5b,0x92212121,0x61202020,0x45434343,0xff1c2f3e,0xffa3d3b2,0xffa2d99f,0xff3e753b,0xff9cd399,0xffb8efb5,0xff7bb278,0xff356c32,0xff659b62, | 228 | 0xff629761,0xff537f5b,0x92212121,0x61202020,0x45434343,0xff1c2f3e,0xffa3d3b2,0xffa2d99f,0xff3e753b,0xff9cd399,0xffb8efb5,0xff7bb278,0xff356c32,0xff659b62, |
76 | 0xff89be86,0xff97c894,0xff486547,0xff0c140c,0xffb6b6b6,0xff6b6b6b,0xff2e2e2e,0xff0b0b0b,0xff010200,0xff192718,0xff324a31,0xff173616,0xff355a33,0xff558052, | 229 | 0xff89be86,0xff97c894,0xff486547,0xff0c140c,0xffb6b6b6,0xff6b6b6b,0xff2e2e2e,0xff0b0b0b,0xff010200,0xff192718,0xff324a31,0xff173616,0xff355a33,0xff558052, |
77 | 0xff5d8c5a,0xff62955f,0xff659a62,0xff649b61,0xff5e945d,0xff548459,0x961f1f1f,0x651c1c1c,0x443c3c3c,0xff2f4264,0xff9eccaf,0xff73aa71,0xff639a60,0xffb7eeb4, | 230 | 0xff5d8c5a,0xff62955f,0xff659a62,0xff649b61,0xff5e945d,0xff548459,0x961f1f1f,0x651c1c1c,0x443c3c3c,0xff2f4264,0xff9eccaf,0xff73aa71,0xff639a60,0xffb7eeb4, |
78 | 0xff91c88e,0xff397036,0xff96cc93,0xffabe1a8,0xffa2d69f,0xff93c391,0xff040504,0xffbfbfbf,0xff6b6b6b,0xff232423,0xff0b0b0b,0xff0a0e0a,0xff0f1d0e,0xff1c351b, | 231 | 0xff91c88e,0xff397036,0xff96cc93,0xffabe1a8,0xffa2d69f,0xff93c391,0xff040504,0xffbfbfbf,0xff6b6b6b,0xff232423,0xff0b0b0b,0xff0a0e0a,0xff0f1d0e,0xff1c351b, |
79 | 0xff3d5b3b,0xff2b5029,0xff2a5527,0xff588755,0xff5d8f5a,0xff60955d,0xff60975e,0xff5d945a,0xff5a8f59,0xff4e7b53,0x971b1b1b,0x65191919,0x42363636,0xfd465a7f, | 232 | 0xff3d5b3b,0xff2b5029,0xff2a5527,0xff588755,0xff5d8f5a,0xff60955d,0xff60975e,0xff5d945a,0xff5a8f59,0xff4e7b53,0x971b1b1b,0x65191919,0x42363636,0xfd465a7f, |
80 | 0xff92bcaa,0xff497e47,0xff86bd83,0xffb5ecb2,0xff5c9359,0xff6ba268,0xffade3aa,0xff85bb82,0xff3c703a,0xff0a3908,0xff000000,0xff636363,0xff191919,0xff0a120a, | 233 | 0xff92bcaa,0xff497e47,0xff86bd83,0xffb5ecb2,0xff5c9359,0xff6ba268,0xffade3aa,0xff85bb82,0xff3c703a,0xff0a3908,0xff000000,0xff636363,0xff191919,0xff0a120a, |
81 | 0xff040704,0xff273927,0xff253f24,0xff143312,0xff456b43,0xff3c673a,0xff1e4d1b,0xff588b55,0xff5b9058,0xff5d935a,0xff5b9258,0xff598e56,0xff548952,0xfd446a4a, | 234 | 0xff040704,0xff273927,0xff253f24,0xff143312,0xff456b43,0xff3c673a,0xff1e4d1b,0xff588b55,0xff5b9058,0xff5d935a,0xff5b9258,0xff598e56,0xff548952,0xfd446a4a, |
82 | 0x94181818,0x64171717,0x3e313131,0xf45a708a,0xff83a9a4,0xff295e27,0xffa0d79d,0xffb2e9af,0xff336a30,0xff91c88e,0xfface2a9,0xff437940,0xff063903,0xff033201, | 235 | 0x94181818,0x64171717,0x3e313131,0xf45a708a,0xff83a9a4,0xff295e27,0xffa0d79d,0xffb2e9af,0xff336a30,0xff91c88e,0xfface2a9,0xff437940,0xff063903,0xff033201, |
83 | 0xff000000,0xff000000,0xff040504,0xff192719,0xff0b2409,0xff3c593a,0xff395b37,0xff0b3209,0xff4a7648,0xff497946,0xff144711,0xff558a52,0xff578d54,0xff568d53, | 236 | 0xff000000,0xff000000,0xff040504,0xff192719,0xff0b2409,0xff3c593a,0xff395b37,0xff0b3209,0xff4a7648,0xff497946,0xff144711,0xff558a52,0xff578d54,0xff568d53, |
84 | 0xff568c53,0xff538950,0xff4d824b,0xf73d5c43,0x8f151515,0x5e161616,0x372e2e2e,0xd9677d87,0xff72939f,0xff154913,0xffafe6ac,0xffb0e7ad,0xff195016,0xffa8dfa5, | 237 | 0xff568c53,0xff538950,0xff4d824b,0xf73d5c43,0x8f151515,0x5e161616,0x372e2e2e,0xd9677d87,0xff72939f,0xff154913,0xffafe6ac,0xffb0e7ad,0xff195016,0xffa8dfa5, |
85 | 0xffa9dfa6,0xff144911,0xff073a04,0xff043502,0xff022e00,0xff072d05,0xff537551,0xff476845,0xff022300,0xff476c45,0xff487146,0xff043102,0xff4d7d4a,0xff4e824c, | 238 | 0xffa9dfa6,0xff144911,0xff073a04,0xff043502,0xff022e00,0xff072d05,0xff537551,0xff476845,0xff022300,0xff476c45,0xff487146,0xff043102,0xff4d7d4a,0xff4e824c, |
86 | 0xff0e440c,0xff52884f,0xff50874d,0xff51874e,0xff50874d,0xff4c834a,0xff497f48,0xea344d3b,0x86131313,0x57121212,0x302b2b2b,0x9f607273,0xff638096,0xff1f4f1f, | 239 | 0xff0e440c,0xff52884f,0xff50874d,0xff51874e,0xff50874d,0xff4c834a,0xff497f48,0xea344d3b,0x86131313,0x57121212,0x302b2b2b,0x9f607273,0xff638096,0xff1f4f1f, |
87 | 0xff9ad198,0xffade4aa,0xff2f662c,0xff8ec58b,0xffa6dca3,0xff437940,0xff093d06,0xff053803,0xff043302,0xff295427,0xff5d855a,0xff456d43,0xff113a0e,0xff507b4d, | 240 | 0xff9ad198,0xffade4aa,0xff2f662c,0xff8ec58b,0xffa6dca3,0xff437940,0xff093d06,0xff053803,0xff043302,0xff295427,0xff5d855a,0xff456d43,0xff113a0e,0xff507b4d, |
88 | 0xff457442,0xff0e400c,0xff4e824b,0xff487d45,0xff154b12,0xff4d844a,0xff4d834a,0xff4c8349,0xff4a8147,0xff477e45,0xff427342,0xc929382c,0x79111111,0x4e101010, | 241 | 0xff457442,0xff0e400c,0xff4e824b,0xff487d45,0xff154b12,0xff4d844a,0xff4d834a,0xff4c8349,0xff4a8147,0xff477e45,0xff427342,0xc929382c,0x79111111,0x4e101010, |
89 | 0x26282828,0x46212121,0xf2617888,0xff2f5938,0xff77ac77,0xffabe2a8,0xff548b51,0xff659c62,0xffa2d99f,0xff7cb279,0xff3e733b,0xff0f430c,0xff31642f,0xff598956, | 242 | 0x26282828,0x46212121,0xf2617888,0xff2f5938,0xff77ac77,0xffabe2a8,0xff548b51,0xff659c62,0xffa2d99f,0xff7cb279,0xff3e733b,0xff0f430c,0xff31642f,0xff598956, |
90 | 0xff659463,0xff356433,0xff295927,0xff558652,0xff3a6d38,0xff1e521b,0xff4d824a,0xff3c7339,0xff1d531a,0xff4a8047,0xff498046,0xff498046,0xff457c42,0xff427840, | 243 | 0xff659463,0xff356433,0xff295927,0xff558652,0xff3a6d38,0xff1e521b,0xff4d824a,0xff3c7339,0xff1d531a,0xff4a8047,0xff498046,0xff498046,0xff457c42,0xff427840, |
91 | 0xf7335338,0x970f0f0f,0x6b0e0e0e,0x410c0c0c,0x1d232323,0x391f1f1f,0xb8607473,0xff42645d,0xff497a4d,0xffa7dea5,0xff82b97f,0xff31682e,0xff86bd83,0xff96cd93, | 244 | 0xf7335338,0x970f0f0f,0x6b0e0e0e,0x410c0c0c,0x1d232323,0x391f1f1f,0xb8607473,0xff42645d,0xff497a4d,0xffa7dea5,0xff82b97f,0xff31682e,0xff86bd83,0xff96cd93, |
92 | 0xff8fc68c,0xff87bc84,0xff7bb079,0xff73a770,0xff598c56,0xff1b4e18,0xff477b44,0xff588c55,0xff2a5f27,0xff2f652c,0xff4b8148,0xff2f662c,0xff285f25,0xff477e44, | 245 | 0xff8fc68c,0xff87bc84,0xff7bb079,0xff73a770,0xff598c56,0xff1b4e18,0xff477b44,0xff588c55,0xff2a5f27,0xff2f652c,0xff4b8148,0xff2f662c,0xff285f25,0xff477e44, |
93 | 0xff457c42,0xff437a40,0xff42783f,0xff3d6f3d,0xd9283b2d,0x840e0e0e,0x590b0b0b,0x350a0a0a,0x15242424,0x29191919,0x49151515,0xeb5b727b,0xff1e4922,0xff80b483, | 246 | 0xff457c42,0xff437a40,0xff42783f,0xff3d6f3d,0xd9283b2d,0x840e0e0e,0x590b0b0b,0x350a0a0a,0x15242424,0x29191919,0x49151515,0xeb5b727b,0xff1e4922,0xff80b483, |
94 | 0xffa1d89e,0xff689f65,0xff2d642a,0xff568c53,0xff73a970,0xff7eb57c,0xff659b62,0xff42783f,0xff1e541b,0xff41773e,0xff5c9159,0xff477d44,0xff164c13,0xff40773e, | 247 | 0xffa1d89e,0xff689f65,0xff2d642a,0xff568c53,0xff73a970,0xff7eb57c,0xff659b62,0xff42783f,0xff1e541b,0xff41773e,0xff5c9159,0xff477d44,0xff164c13,0xff40773e, |
95 | 0xff497f46,0xff1f561c,0xff31682e,0xff437a40,0xff41783e,0xff40773d,0xff3d743b,0xf32e4b32,0x970c0c0c,0x6e090909,0x470b0b0b,0x27070707,0xd272727,0x1e1a1a1a, | 248 | 0xff497f46,0xff1f561c,0xff31682e,0xff437a40,0xff41783e,0xff40773d,0xff3d743b,0xf32e4b32,0x970c0c0c,0x6e090909,0x470b0b0b,0x27070707,0xd272727,0x1e1a1a1a, |
96 | 0x36131313,0x88495852,0xf948626d,0xff39663f,0xff93c894,0xff94cb91,0xff6fa66c,0xff42793f,0xff1f561c,0xff0b4208,0xff1c5219,0xff356b32,0xff4f864c,0xff5f965c, | 249 | 0x36131313,0x88495852,0xf948626d,0xff39663f,0xff93c894,0xff94cb91,0xff6fa66c,0xff42793f,0xff1f561c,0xff0b4208,0xff1c5219,0xff356b32,0xff4f864c,0xff5f965c, |
97 | 0xff578e54,0xff275e24,0xff31682e,0xff487f45,0xff356c32,0xff195016,0xff3e753b,0xff3f763c,0xff3e753b,0xff3c733a,0xfb335435,0xbd1c241e,0x7d080808,0x57090909, | 250 | 0xff578e54,0xff275e24,0xff31682e,0xff487f45,0xff356c32,0xff195016,0xff3e753b,0xff3f763c,0xff3e753b,0xff3c733a,0xfb335435,0xbd1c241e,0x7d080808,0x57090909, |
98 | 0x350a0a0a,0x1c090909,0x7242424,0x120e0e0e,0x250e0e0e,0x400c0c0c,0xac52625f,0xfb3e5a5f,0xff35633a,0xff70a571,0xff89c087,0xff84bb81,0xff7eb57b,0xff77ae74, | 251 | 0x350a0a0a,0x1c090909,0x7242424,0x120e0e0e,0x250e0e0e,0x400c0c0c,0xac52625f,0xfb3e5a5f,0xff35633a,0xff70a571,0xff89c087,0xff84bb81,0xff7eb57b,0xff77ae74, |
99 | 0xff71a86e,0xff6aa067,0xff62985f,0xff4b8148,0xff265d23,0xff2b6228,0xff4b8248,0xff447b41,0xff1d541a,0xff2c6329,0xff3d743a,0xff3c7339,0xff3b7239,0xfb305531, | 252 | 0xff71a86e,0xff6aa067,0xff62985f,0xff4b8148,0xff265d23,0xff2b6228,0xff4b8248,0xff447b41,0xff1d541a,0xff2c6329,0xff3d743a,0xff3c7339,0xff3b7239,0xfb305531, |
100 | 0xd0213024,0x86060606,0x61050505,0x3f040404,0x24070707,0x11000000,0x3000000,0xb171717,0x170b0b0b,0x2c0c0c0c,0x47070707,0xae4b5b56,0xf9425d5f,0xff174518, | 253 | 0xd0213024,0x86060606,0x61050505,0x3f040404,0x24070707,0x11000000,0x3000000,0xb171717,0x170b0b0b,0x2c0c0c0c,0x47070707,0xae4b5b56,0xf9425d5f,0xff174518, |
101 | 0xff386b38,0xff568c55,0xff6aa067,0xff70a76d,0xff5e955b,0xff467d43,0xff2d642a,0xff144b11,0xff32692f,0xff4c8349,0xff487f45,0xff285f25,0xff1d541a,0xff3d743a, | 254 | 0xff386b38,0xff568c55,0xff6aa067,0xff70a76d,0xff5e955b,0xff467d43,0xff2d642a,0xff144b11,0xff32692f,0xff4c8349,0xff487f45,0xff285f25,0xff1d541a,0xff3d743a, |
102 | 0xff3b7138,0xff397037,0xfa2e5131,0xd0202d24,0x89040404,0x67050505,0x47040404,0x2b060606,0x16000000,0xa000000,0x1000000,0x5000000,0xd000000,0x1b090909, | 255 | 0xff3b7138,0xff397037,0xfa2e5131,0xd0202d24,0x89040404,0x67050505,0x47040404,0x2b060606,0x16000000,0xa000000,0x1000000,0x5000000,0xd000000,0x1b090909, |
103 | 0x2f050505,0x49030303,0x9236423d,0xed4b6461,0xff3a6346,0xff215122,0xff0f430d,0xff033900,0xff0e440b,0xff1e551b,0xff32692f,0xff467d43,0xff4d844a,0xff487f45, | 256 | 0x2f050505,0x49030303,0x9236423d,0xed4b6461,0xff3a6346,0xff215122,0xff0f430d,0xff033900,0xff0e440b,0xff1e551b,0xff32692f,0xff467d43,0xff4d844a,0xff487f45, |
104 | 0xff275e24,0xff194f16,0xff356c33,0xff3a7038,0xff376835,0xf22a462d,0xbc18221a,0x85020202,0x67020202,0x49030303,0x2e000000,0x1a000000,0xd000000,0x5000000, | 257 | 0xff275e24,0xff194f16,0xff356c33,0xff3a7038,0xff376835,0xf22a462d,0xbc18221a,0x85020202,0x67020202,0x49030303,0x2e000000,0x1a000000,0xd000000,0x5000000, |
105 | 0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x2e000000,0x47040404,0x61030303,0xc3415249,0xf349675a,0xff578063,0xff5a8a61,0xff598b5c,0xff568a57, | 258 | 0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x2e000000,0x47040404,0x61030303,0xc3415249,0xf349675a,0xff578063,0xff5a8a61,0xff598b5c,0xff568a57, |
106 | 0xff538851,0xff4e844d,0xff366c34,0xff194f17,0xff1c511a,0xff376d36,0xff3a6a39,0xf72b4b2f,0xd8223426,0x94020202,0x7c020202,0x60000000,0x46000000,0x2e000000, | 259 | 0xff538851,0xff4e844d,0xff366c34,0xff194f17,0xff1c511a,0xff376d36,0xff3a6a39,0xf72b4b2f,0xd8223426,0x94020202,0x7c020202,0x60000000,0x46000000,0x2e000000, |
107 | 0x1b000000,0xe000000,0x6000000,0x2000000,0xffffff,0x1000000,0x2000000,0x7000000,0xe000000,0x1a000000,0x2a000000,0x3e000000,0x55000000,0x6c000000, | 260 | 0x1b000000,0xe000000,0x6000000,0x2000000,0xffffff,0x1000000,0x2000000,0x7000000,0xe000000,0x1a000000,0x2a000000,0x3e000000,0x55000000,0x6c000000, |
108 | 0xb6314039,0xe23e5648,0xf63d5a4b,0xfd355a44,0xff295432,0xff174817,0xff15421e,0xfd284f34,0xf7315236,0xe82b422e,0xc71d2c20,0x93000000,0x81000000,0x6c000000, | 261 | 0xb6314039,0xe23e5648,0xf63d5a4b,0xfd355a44,0xff295432,0xff174817,0xff15421e,0xfd284f34,0xf7315236,0xe82b422e,0xc71d2c20,0x93000000,0x81000000,0x6c000000, |
109 | 0x55000000,0x3e000000,0x2a000000,0x1a000000,0xe000000,0x7000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | 262 | 0x55000000,0x3e000000,0x2a000000,0x1a000000,0xe000000,0x7000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, |
110 | 0x16000000,0x23000000,0x33000000,0x45000000,0x56000000,0x67000000,0x75000000,0x81000000,0x89000000,0x8e000000,0x90000000,0x8e000000,0x89000000,0x81000000, | 263 | 0x16000000,0x23000000,0x33000000,0x45000000,0x56000000,0x67000000,0x75000000,0x81000000,0x89000000,0x8e000000,0x90000000,0x8e000000,0x89000000,0x81000000, |
111 | 0x75000000,0x67000000,0x56000000,0x45000000,0x33000000,0x23000000,0x16000000,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff, | 264 | 0x75000000,0x67000000,0x56000000,0x45000000,0x33000000,0x23000000,0x16000000,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff, |
112 | 0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000,0x33000000,0x3f000000,0x4a000000,0x53000000,0x59000000,0x5e000000, | 265 | 0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000,0x33000000,0x3f000000,0x4a000000,0x53000000,0x59000000,0x5e000000, |
113 | 0x5f000000,0x5e000000,0x59000000,0x53000000,0x4a000000,0x3f000000,0x33000000,0x26000000,0x1b000000,0x11000000,0xa000000,0x5000000,0x2000000,0x1000000, | 266 | 0x5f000000,0x5e000000,0x59000000,0x53000000,0x4a000000,0x3f000000,0x33000000,0x26000000,0x1b000000,0x11000000,0xa000000,0x5000000,0x2000000,0x1000000, |
114 | 0xffffff,0xffffff | 267 | 0xffffff,0xffffff |
115 | }; | 268 | }; |
116 | 269 | ||
270 | static const QRgb center_data[] = { | ||
271 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
272 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
273 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | ||
274 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | ||
275 | 0x0,0x0,0x3c000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x3c000000,0x0,0x0, | ||
276 | 0x0,0x0,0x18000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x18000000,0x0,0x0, | ||
277 | 0x1c000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0x1c000000, | ||
278 | 0x0,0x0,0xc000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0xc000000,0x0,0x0, | ||
279 | 0x0,0x0,0x48000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x48000000,0x0,0x0, | ||
280 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | ||
281 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | ||
282 | 0x0,0x0,0x3c000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x3c000000,0x0,0x0, | ||
283 | 0x0,0x0,0x18000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x18000000,0x0,0x0, | ||
284 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
285 | }; | ||
286 | |||
287 | static const QRgb citytime_icon_data[] = { | ||
288 | 0x0,0x0,0x0,0x1b9ebfb,0x2ca9e0fc,0x7688c4f8,0x8f75b7f8,0x856cb1f7,0x4b68b0f5,0x75c9ed8,0x0,0x0,0x0,0x0, | ||
289 | 0x0,0x0,0xed3fcfd,0xa2b8e6fc,0xfbb6e0f9,0xffc5eafe,0xffd1eefe,0xffb9e4fe,0xff89c7fc,0xd46db2f7,0x38509ae6,0x0,0x0,0x0, | ||
290 | 0x0,0xaecfcfd,0xc2bde5fd,0xffade3ff,0xffccf7ff,0xffebfeff,0xffdffdff,0xffb8ecff,0xff97d7ff,0xff76c1ff,0xf14e9ff8,0x3d408ada,0x0,0x0, | ||
291 | 0x0,0x84aed3f9,0xff8dccfe,0xffc8edff,0xffe9f9ff,0xfff2fbff,0xffddfcff,0xffbbedff,0xff9cd8ff,0xff74bfff,0xff55aaff,0xdd3b89ec,0xe295582,0x0, | ||
292 | 0xfd8fdfd,0xed77b7f7,0xffb7e2ff,0xffddf5ff,0xffe4f7ff,0xffd3f3ff,0xffbbedff,0xfface2ff,0xff95d2ff,0xff6ab9ff,0xff53a9ff,0xff2e76e9,0x653b82d1,0x0, | ||
293 | 0x45b4e5fa,0xff4f96f0,0xffc2eafe,0xffd6f3ff,0xffdaf4ff,0xffa4ddff,0xff99d8ff,0xff8aceff,0xff74bfff,0xff5eb0ff,0xff55aaff,0xff1a56da,0xae2b70d5,0x1000000, | ||
294 | 0x6399d1f8,0xff4088eb,0xff57adf7,0xffabe3ff,0xffd3f2ff,0xffc6ebff,0xffafdfff,0xff6cbaff,0xff5bafff,0xff53a9ff,0xff529af5,0xff1f59db,0xcb2d70d7,0x5000000, | ||
295 | 0x5b90caf7,0xff2c6de0,0xff3b83e9,0xff56a6f4,0xffbce6fe,0xffcaeeff,0xffcbefff,0xff62b2ff,0xff4ca1fb,0xff5299f3,0xff5991ec,0xff3a76e4,0xc54287dc,0x5000000, | ||
296 | 0x2d91cdf5,0xfd265fda,0xff2763dd,0xff7baff2,0xffb7e1fc,0xffc8ecfe,0xffccefff,0xff619bed,0xff2663dd,0xff80b2f1,0xff5386e6,0xff0e43d2,0x9c4081cd,0x1000000, | ||
297 | 0x376add3,0xcc4983e4,0xff5383e4,0xffb2dcfc,0xffcceeff,0xffdcf4ff,0xffe1f6ff,0xffb9d7f8,0xffa5ccf6,0xff9ac6f6,0xff71a3ee,0xfd407ce5,0x49306294,0x0, | ||
298 | 0x0,0x456eb0ec,0xfb669aec,0xffbbe3fd,0xffd5f3ff,0xffe9f9ff,0xfff4fcff,0xffe6f8ff,0xffd2f1ff,0xffb6dffc,0xff95c7f9,0xb15592d3,0x903070b,0x0, | ||
299 | 0x0,0x12f516f,0x6d6eafea,0xfaaad9fc,0xffceedfe,0xffe6f7ff,0xfff0fbff,0xffe4f7ff,0xffd1f1ff,0xffb0dcfc,0xc668a4df,0x1e18334d,0x0,0x0, | ||
300 | 0x0,0x0,0x10b151f,0x435094d5,0xc34c8ae0,0xf73c74e0,0xff4a7be2,0xfc5286e5,0xe37db3ea,0x88528bc2,0x150e1e2d,0x0,0x0,0x0, | ||
301 | 0x0,0x0,0x0,0x0,0x4000000,0x202a5885,0x35306498,0x302a5886,0x130b1824,0x2000000,0x0,0x0,0x0,0x0 | ||
302 | }; | ||
303 | |||
117 | static const QRgb Clock_data[] = { | 304 | static const QRgb Clock_data[] = { |
118 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20b4b4c3,0x70b2b2c1,0xbfb0b0c0,0xefaeaebe,0xffababbd, | 305 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20b4b4c3,0x70b2b2c1,0xbfb0b0c0,0xefaeaebe,0xffababbd, |
119 | 0xffa9a9bb,0xffa6a6b9,0xffa4a4b7,0xefa2a2b5,0xbf9f9fb3,0x709d9db1,0x209b9bb0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 306 | 0xffa9a9bb,0xffa6a6b9,0xffa4a4b7,0xefa2a2b5,0xbf9f9fb3,0x709d9db1,0x209b9bb0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
120 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30b6b6c5,0xafb5b5c4,0xffb3b3c2, | 307 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30b6b6c5,0xafb5b5c4,0xffb3b3c2, |
121 | 0xffbabac8,0xffd1d1db,0xffe4e4ea,0xffe8e8ed,0xfffcfcfd,0xfffbfbfc,0xffe4e4e9,0xffdddde4,0xffc4c4d0,0xffa7a7b9,0xff9999ae,0xc19595aa,0x309595ab,0x0, | 308 | 0xffbabac8,0xffd1d1db,0xffe4e4ea,0xffe8e8ed,0xfffcfcfd,0xfffbfbfc,0xffe4e4e9,0xffdddde4,0xffc4c4d0,0xffa7a7b9,0xff9999ae,0xc19595aa,0x309595ab,0x0, |
122 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | 309 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, |
123 | 0x8fb8b8c6,0xffb6b6c5,0xffc7c7d2,0xffececf0,0xfffefeff,0xfffefefe,0xffefeff2,0xffe8e8ed,0xffd8d8e0,0xffd1d1da,0xffe3e3e9,0xffe7e7ec,0xfff5f5f7,0xfff3f3f5, | 310 | 0x8fb8b8c6,0xffb6b6c5,0xffc7c7d2,0xffececf0,0xfffefeff,0xfffefefe,0xffefeff2,0xffe8e8ed,0xffd8d8e0,0xffd1d1da,0xffe3e3e9,0xffe7e7ec,0xfff5f5f7,0xfff3f3f5, |
124 | 0xffdadae2,0xffababbd,0xff9393a9,0x938c8ca2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0, | 311 | 0xffdadae2,0xffababbd,0xff9393a9,0x938c8ca2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0, |
125 | 0x0,0x0,0x10babac8,0xcfb8b8c7,0xffbbbbc9,0xffe8e8ed,0xffffffff,0xfff5f5f8,0xffd0d0d9,0xffb6b6c5,0xffafb4ca,0xffa6b5d6,0xff9aafd7,0xff97add6, | 312 | 0x0,0x0,0x10babac8,0xcfb8b8c7,0xffbbbbc9,0xffe8e8ed,0xffffffff,0xfff5f5f8,0xffd0d0d9,0xffb6b6c5,0xffafb4ca,0xffa6b5d6,0xff9aafd7,0xff97add6, |
126 | 0xffa4b2cf,0xffa1a8c0,0xffa2a2b5,0xffbbbbc9,0xffe4e4e9,0xffececf0,0xffceced8,0xff9494aa,0xd48989a0,0x108a8aa2,0x0,0x0,0x0,0x0, | 313 | 0xffa4b2cf,0xffa1a8c0,0xffa2a2b5,0xffbbbbc9,0xffe4e4e9,0xffececf0,0xffceced8,0xff9494aa,0xd48989a0,0x108a8aa2,0x0,0x0,0x0,0x0, |
127 | 0x0,0xffffff,0x0,0x0,0x0,0x10babac8,0xcfb9b9c7,0xffc5c5d1,0xfff6f6f8,0xfffbfbfc,0xffd7d7df,0xffb8b9c7,0xffb8c8e2,0xffdfedfa, | 314 | 0x0,0xffffff,0x0,0x0,0x0,0x10babac8,0xcfb9b9c7,0xffc5c5d1,0xfff6f6f8,0xfffbfbfc,0xffd7d7df,0xffb8b9c7,0xffb8c8e2,0xffdfedfa, |
128 | 0xfff6fcff,0xfffafeff,0xffbabee7,0xffb5bce7,0xffebf9ff,0xffe5f7ff,0xffc2dff7,0xffadbed5,0xff999bb0,0xffb9b9c7,0xffe2e2e8,0xffd9d9e1,0xff9b9baf,0xd783839a, | 315 | 0xfff6fcff,0xfffafeff,0xffbabee7,0xffb5bce7,0xffebf9ff,0xffe5f7ff,0xffc2dff7,0xffadbed5,0xff999bb0,0xffb9b9c7,0xffe2e2e8,0xffd9d9e1,0xff9b9baf,0xd783839a, |
129 | 0x13717186,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0xcfb9b9c8,0xffc5c5d1,0xfffafafb,0xfff2f2f5,0xffc1c1ce, | 316 | 0x13717186,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0xcfb9b9c8,0xffc5c5d1,0xfffafafb,0xfff2f2f5,0xffc1c1ce, |
130 | 0xffafc0dc,0xffdff2fb,0xffe7f8ff,0xffedfaff,0xfff1fbff,0xfff4fcff,0xff797dcf,0xff777dcf,0xffe9f9ff,0xffe3f7ff,0xffddf5ff,0xffd7f3ff,0xffc1e3f8,0xff89a1c9, | 317 | 0xffafc0dc,0xffdff2fb,0xffe7f8ff,0xffedfaff,0xfff1fbff,0xfff4fcff,0xff797dcf,0xff777dcf,0xffe9f9ff,0xffe3f7ff,0xffddf5ff,0xffd7f3ff,0xffc1e3f8,0xff89a1c9, |
131 | 0xff9898ad,0xffd1d1db,0xffd9d9e1,0xff9696ac,0xd77f7f97,0x3000000,0x0,0x0,0x0,0xffffff,0x0,0x0,0x8fbabac8,0xffbcbcca, | 318 | 0xff9898ad,0xffd1d1db,0xffd9d9e1,0xff9696ac,0xd77f7f97,0x3000000,0x0,0x0,0x0,0xffffff,0x0,0x0,0x8fbabac8,0xffbcbcca, |
132 | 0xfff6f6f8,0xfff2f2f5,0xffbdbdcb,0xff9bbae4,0xffd9f4ff,0xffdef5ff,0xffe4f7ff,0xffe8f8ff,0xffecf9ff,0xffedfaff,0xffcedaf3,0xffccd9f3,0xffe5f7ff,0xffe0f6ff, | 319 | 0xfff6f6f8,0xfff2f2f5,0xffbdbdcb,0xff9bbae4,0xffd9f4ff,0xffdef5ff,0xffe4f7ff,0xffe8f8ff,0xffecf9ff,0xffedfaff,0xffcedaf3,0xffccd9f3,0xffe5f7ff,0xffe0f6ff, |
133 | 0xffdaf4ff,0xffd4f2ff,0xffcef1ff,0xffc6ebfe,0xff83a5d6,0xff8e8ea5,0xffccccd6,0xffceced8,0xff8787a0,0xa1717188,0x0,0x0,0x0,0xffffff, | 320 | 0xffdaf4ff,0xffd4f2ff,0xffcef1ff,0xffc6ebfe,0xff83a5d6,0xff8e8ea5,0xffccccd6,0xffceced8,0xff8787a0,0xa1717188,0x0,0x0,0x0,0xffffff, |
134 | 0x0,0x30babac8,0xffb8b8c7,0xffe9e9ed,0xfffbfbfc,0xffc2c2ce,0xff98b9e4,0xffd0f1ff,0xffd5f3ff,0xffdaf4ff,0xffdff6ff,0xffe3f7ff,0xffe5f7ff,0xffe6f8ff, | 321 | 0x0,0x30babac8,0xffb8b8c7,0xffe9e9ed,0xfffbfbfc,0xffc2c2ce,0xff98b9e4,0xffd0f1ff,0xffd5f3ff,0xffdaf4ff,0xffdff6ff,0xffe3f7ff,0xffe5f7ff,0xffe6f8ff, |
135 | 0xffe6f8ff,0xffe4f7ff,0xffe0f6ff,0xffdcf5ff,0xffd7f3ff,0xffd1f2ff,0xffcbefff,0xffc2e9fe,0xffb9e2fd,0xff7ca0d4,0xff8e8ea5,0xffd0d0da,0xffb8b8c7,0xff7e7e98, | 322 | 0xffe6f8ff,0xffe4f7ff,0xffe0f6ff,0xffdcf5ff,0xffd7f3ff,0xffd1f2ff,0xffcbefff,0xffc2e9fe,0xffb9e2fd,0xff7ca0d4,0xff8e8ea5,0xffd0d0da,0xffb8b8c7,0xff7e7e98, |
136 | 0x48535365,0x0,0x0,0xffffff,0x0,0xbfb9b9c7,0xffc9c9d4,0xffffffff,0xffd8d8e0,0xff92add9,0xffc4eafe,0xffccefff,0xffd1f1ff,0xffd6f3ff, | 323 | 0x48535365,0x0,0x0,0xffffff,0x0,0xbfb9b9c7,0xffc9c9d4,0xffffffff,0xffd8d8e0,0xff92add9,0xffc4eafe,0xffccefff,0xffd1f1ff,0xffd6f3ff, |
137 | 0xffdaf4ff,0xffddf5ff,0xffdff6ff,0xffe0f6ff,0xffe0f6ff,0xffdef5ff,0xffdbf4ff,0xffd7f3ff,0xffd2f2ff,0xff81969f,0xff0c0f10,0xff9abace,0xffb5dffc,0xffacd8fb, | 324 | 0xffdaf4ff,0xffddf5ff,0xffdff6ff,0xffe0f6ff,0xffe0f6ff,0xffdef5ff,0xffdbf4ff,0xffd7f3ff,0xffd2f2ff,0xff81969f,0xff0c0f10,0xff9abace,0xffb5dffc,0xffacd8fb, |
138 | 0xff6f8bc0,0xffa3a3b6,0xffceced8,0xff9090a7,0xbf707089,0xa000000,0x0,0xffffff,0x20b8b8c7,0xffb7b7c6,0xffededf1,0xfff6f6f8,0xffafb3c9,0xff9ac8f5, | 325 | 0xff6f8bc0,0xffa3a3b6,0xffceced8,0xff9090a7,0xbf707089,0xa000000,0x0,0xffffff,0x20b8b8c7,0xffb7b7c6,0xffededf1,0xfff6f6f8,0xffafb3c9,0xff9ac8f5, |
139 | 0xffbee5fd,0xffc5ebfe,0xffccf0ff,0xffd1f1ff,0xffd4f2ff,0xffd7f3ff,0xffd9f4ff,0xffd9f4ff,0xffd9f4ff,0xffd7f3ff,0xffd5f3ff,0xffd2f2ff,0xff81969f,0xff000000, | 326 | 0xffbee5fd,0xffc5ebfe,0xffccf0ff,0xffd1f1ff,0xffd4f2ff,0xffd7f3ff,0xffd9f4ff,0xffd9f4ff,0xffd9f4ff,0xffd7f3ff,0xffd5f3ff,0xffd2f2ff,0xff81969f,0xff000000, |
140 | 0xff000000,0xff455560,0xffabd5f4,0xffa8d4fa,0xff85b7f0,0xff767b9c,0xffc1c1cd,0xffb4b4c3,0xff787894,0x3f3d3d4b,0x0,0xffffff,0x70b7b7c6,0xffbfbfcc, | 327 | 0xff000000,0xff455560,0xffabd5f4,0xffa8d4fa,0xff85b7f0,0xff767b9c,0xffc1c1cd,0xffb4b4c3,0xff787894,0x3f3d3d4b,0x0,0xffffff,0x70b7b7c6,0xffbfbfcc, |
141 | 0xffffffff,0xffd2d2dc,0xff7ea3dd,0xffb0dbfc,0xffb7e0fc,0xffbee6fd,0xffc5eafe,0xffcaefff,0xffcef1ff,0xffd1f1ff,0xffd2f2ff,0xffd3f2ff,0xffd2f2ff,0xffd1f2ff, | 328 | 0xffffffff,0xffd2d2dc,0xff7ea3dd,0xffb0dbfc,0xffb7e0fc,0xffbee6fd,0xffc5eafe,0xffcaefff,0xffcef1ff,0xffd1f1ff,0xffd2f2ff,0xffd3f2ff,0xffd2f2ff,0xffd1f2ff, |
142 | 0xffcff1ff,0xff80969f,0xff000000,0xff000000,0xff3a4750,0xff99bed8,0xffa6d1f4,0xffa2d1fa,0xff9acaf9,0xff5d84c7,0xff9595ab,0xffc3c3cf,0xff7f7f9a,0x8d5c5c73, | 329 | 0xffcff1ff,0xff80969f,0xff000000,0xff000000,0xff3a4750,0xff99bed8,0xffa6d1f4,0xffa2d1fa,0xff9acaf9,0xff5d84c7,0xff9595ab,0xffc3c3cf,0xff7f7f9a,0x8d5c5c73, |
143 | 0x6000000,0xffffff,0xbfb6b6c5,0xffd5d5dd,0xffffffff,0xffbbbbc9,0xff79aff1,0xffa9d6fb,0xffb0dbfc,0xffb7e0fc,0xffbde5fd,0xffc2e8fe,0xffc6ecfe,0xffc9eeff, | 330 | 0x6000000,0xffffff,0xbfb6b6c5,0xffd5d5dd,0xffffffff,0xffbbbbc9,0xff79aff1,0xffa9d6fb,0xffb0dbfc,0xffb7e0fc,0xffbde5fd,0xffc2e8fe,0xffc6ecfe,0xffc9eeff, |
144 | 0xffcbefff,0xffccefff,0xffcbefff,0xffcaeeff,0xff7d959f,0xff000000,0xff000000,0xff3a4750,0xff99bed8,0xffa7d1f4,0xffa4d2fa,0xff9dccf9,0xff95c6f8,0xff619beb, | 331 | 0xffcbefff,0xffccefff,0xffcbefff,0xffcaeeff,0xff7d959f,0xff000000,0xff000000,0xff3a4750,0xff99bed8,0xffa7d1f4,0xffa4d2fa,0xff9dccf9,0xff95c6f8,0xff619beb, |
145 | 0xff7a7a95,0xffbfbfcc,0xff9393a9,0xcc6c6c86,0x16000000,0xffffff,0xefb4b4c3,0xffe7e7ec,0xfff1f1f4,0xff9dabcb,0xff83b9f6,0xffa2d1fa,0xffa9d6fb,0xffafdafb, | 332 | 0xff7a7a95,0xffbfbfcc,0xff9393a9,0xcc6c6c86,0x16000000,0xffffff,0xefb4b4c3,0xffe7e7ec,0xfff1f1f4,0xff9dabcb,0xff83b9f6,0xffa2d1fa,0xffa9d6fb,0xffafdafb, |
146 | 0xffb4defc,0xffb9e2fd,0xffbde5fd,0xffc0e7fe,0xffc2e8fe,0xffc2e9fe,0xffc2e8fe,0xff79919f,0xff000000,0xff000000,0xff394750,0xff98bdd8,0xffa6d1f4,0xffa4d2fa, | 333 | 0xffb4defc,0xffb9e2fd,0xffbde5fd,0xffc0e7fe,0xffc2e8fe,0xffc2e9fe,0xffc2e8fe,0xff79919f,0xff000000,0xff000000,0xff394750,0xff98bdd8,0xffa6d1f4,0xffa4d2fa, |
147 | 0xff9dcdf9,0xff96c7f8,0xff85bbf6,0xff458aee,0xff6674a0,0xffadadbe,0xffa2a2b5,0xf26f6f8c,0x26000000,0xffffff,0xffb2b2c2,0xffebebef,0xffebebef,0xff88a2d2, | 334 | 0xff9dcdf9,0xff96c7f8,0xff85bbf6,0xff458aee,0xff6674a0,0xffadadbe,0xffa2a2b5,0xf26f6f8c,0x26000000,0xffffff,0xffb2b2c2,0xffebebef,0xffebebef,0xff88a2d2, |
148 | 0xff94c6f8,0xff9bcbf9,0xffa1d0fa,0xffa7d4fa,0xffacd8fb,0xffb0dbfc,0xffb4defc,0xffb6dffc,0xff96b7cd,0xff3b474f,0xff2f393f,0xff000000,0xff000000,0xff384650, | 335 | 0xff94c6f8,0xff9bcbf9,0xffa1d0fa,0xffa7d4fa,0xffacd8fb,0xffb0dbfc,0xffb4defc,0xffb6dffc,0xff96b7cd,0xff3b474f,0xff2f393f,0xff000000,0xff000000,0xff384650, |
149 | 0xff95bad8,0xffa3cff4,0xffa3d1fa,0xff9dccf9,0xff90c3f7,0xff6ea9f3,0xff498def,0xff3f86ed,0xff5877b7,0xffa5a5b8,0xffa3a3b6,0xff6f6f8c,0x30000000,0xffffff, | 336 | 0xff95bad8,0xffa3cff4,0xffa3d1fa,0xff9dccf9,0xff90c3f7,0xff6ea9f3,0xff498def,0xff3f86ed,0xff5877b7,0xffa5a5b8,0xffa3a3b6,0xff6f6f8c,0x30000000,0xffffff, |
150 | 0xffb1b1c0,0xfffefefe,0xffd8d8e0,0xff7d9fd7,0xff6990e1,0xff4962cb,0xff86b0ed,0xff9ecef9,0xffa3d1fa,0xffa2d0fa,0xff9acaf9,0xff93c5f8,0xff13191f,0xff505050, | 337 | 0xffb1b1c0,0xfffefefe,0xffd8d8e0,0xff7d9fd7,0xff6990e1,0xff4962cb,0xff86b0ed,0xff9ecef9,0xffa3d1fa,0xffa2d0fa,0xff9acaf9,0xff93c5f8,0xff13191f,0xff505050, |
151 | 0xff707070,0xff000000,0xff1b2228,0xff6c88a0,0xff7798b5,0xff799cbb,0xff7daad8,0xff7cb3f5,0xff65a3f2,0xff5189e7,0xff294ac7,0xff3669db,0xff577abc,0xff9494aa, | 338 | 0xff707070,0xff000000,0xff1b2228,0xff6c88a0,0xff7798b5,0xff799cbb,0xff7daad8,0xff7cb3f5,0xff65a3f2,0xff5189e7,0xff294ac7,0xff3669db,0xff577abc,0xff9494aa, |
152 | 0xffafafc0,0xff6d6d8b,0x33000000,0xffffff,0xffafafbf,0xfffdfdfe,0xffd6d6de,0xff81a2d7,0xff638ce0,0xff455fcb,0xff7fabed,0xff90c2f8,0xff88bcf6,0xff86bbf6, | 339 | 0xffafafc0,0xff6d6d8b,0x33000000,0xffffff,0xffafafbf,0xfffdfdfe,0xffd6d6de,0xff81a2d7,0xff638ce0,0xff455fcb,0xff7fabed,0xff90c2f8,0xff88bcf6,0xff86bbf6, |
153 | 0xff8cc0f7,0xff91c4f8,0xff000000,0xffafafaf,0xffefefef,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff3a5471,0xff76aef0,0xff70abf3,0xff5a90e8, | 340 | 0xff8cc0f7,0xff91c4f8,0xff000000,0xffafafaf,0xffefefef,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff3a5471,0xff76aef0,0xff70abf3,0xff5a90e8, |
154 | 0xff2e4ec8,0xff3d6fdb,0xff5b7dbc,0xff8c8ca4,0xffababbc,0xff6b6b8a,0x33000000,0xffffff,0xffadadbe,0xffe8e8ed,0xffe8e8ed,0xff89a5d4,0xff77b0f4,0xff80b6f5, | 341 | 0xff2e4ec8,0xff3d6fdb,0xff5b7dbc,0xff8c8ca4,0xffababbc,0xff6b6b8a,0x33000000,0xffffff,0xffadadbe,0xffe8e8ed,0xffe8e8ed,0xff89a5d4,0xff77b0f4,0xff80b6f5, |
155 | 0xff7eb5f5,0xff82b8f6,0xff8abff7,0xff92c4f8,0xff99caf9,0xff9ecef9,0xff485c6d,0xff000000,0xff202020,0xff1b2228,0xff475a6b,0xff45596a,0xff43576a,0xff40556a, | 342 | 0xff7eb5f5,0xff82b8f6,0xff8abff7,0xff92c4f8,0xff99caf9,0xff9ecef9,0xff485c6d,0xff000000,0xff202020,0xff1b2228,0xff475a6b,0xff45596a,0xff43576a,0xff40556a, |
156 | 0xff5a7b9e,0xff7fb3ed,0xff7ab2f5,0xff70abf4,0xff66a3f2,0xff5b9bf1,0xff6179af,0xff9a9aaf,0xff9898ad,0xff696988,0x33000000,0xffffff,0xefababbc,0xffe2e2e8, | 343 | 0xff5a7b9e,0xff7fb3ed,0xff7ab2f5,0xff70abf4,0xff66a3f2,0xff5b9bf1,0xff6179af,0xff9a9aaf,0xff9898ad,0xff696988,0x33000000,0xffffff,0xefababbc,0xffe2e2e8, |
157 | 0xffececf0,0xff9ca8c5,0xff6ea9f3,0xff77b0f4,0xff82b8f6,0xff8cc0f7,0xff95c7f8,0xff9ecdf9,0xffa5d3fa,0xffabd7fb,0xffb0dbfc,0xff7e9aaf,0xff748fa1,0xff8fb1c9, | 344 | 0xffececf0,0xff9ca8c5,0xff6ea9f3,0xff77b0f4,0xff82b8f6,0xff8cc0f7,0xff95c7f8,0xff9ecdf9,0xffa5d3fa,0xffabd7fb,0xffb0dbfc,0xff7e9aaf,0xff748fa1,0xff8fb1c9, |
158 | 0xffa5cdeb,0xffa6d0f2,0xffa1ccf1,0xff9ac7f0,0xff92c1ef,0xff8dbff5,0xff84baf6,0xff7ab2f5,0xff6faaf3,0xff64a1f2,0xff65719a,0xff9b9bb0,0xff9191a8,0xf2676784, | 345 | 0xffa5cdeb,0xffa6d0f2,0xffa1ccf1,0xff9ac7f0,0xff92c1ef,0xff8dbff5,0xff84baf6,0xff7ab2f5,0xff6faaf3,0xff64a1f2,0xff65719a,0xff9b9bb0,0xff9191a8,0xf2676784, |
159 | 0x33000000,0xffffff,0xbfa9a9ba,0xffccccd6,0xfffafafb,0xffacacbd,0xff77adf0,0xff80b7f5,0xff8bbff7,0xff96c7f8,0xffa0cff9,0xffa9d6fb,0xffb1dcfc,0xffb8e1fd, | 346 | 0x33000000,0xffffff,0xbfa9a9ba,0xffccccd6,0xfffafafb,0xffacacbd,0xff77adf0,0xff80b7f5,0xff8bbff7,0xff96c7f8,0xffa0cff9,0xffa9d6fb,0xffb1dcfc,0xffb8e1fd, |
160 | 0xffbde5fd,0xffc1e8fe,0xffc2e9fe,0xffc1e8fe,0xffbee6fd,0xffb9e2fd,0xffb3ddfc,0xffabd7fb,0xffa2d0fa,0xff98c9f8,0xff8dc1f7,0xff82b8f6,0xff77b0f4,0xff6ba3ec, | 347 | 0xffbde5fd,0xffc1e8fe,0xffc2e9fe,0xffc1e8fe,0xffbee6fd,0xffb9e2fd,0xffb3ddfc,0xffabd7fb,0xffa2d0fa,0xff98c9f8,0xff8dc1f7,0xff82b8f6,0xff77b0f4,0xff6ba3ec, |
161 | 0xff696988,0xffa3a3b6,0xff80809a,0xcc60607d,0x30000000,0xffffff,0x70a7a7b9,0xffb0b0c0,0xfff8f8fa,0xffc3c3d0,0xff8eadd9,0xff87bcf6,0xff93c5f8,0xff9fcef9, | 348 | 0xff696988,0xffa3a3b6,0xff80809a,0xcc60607d,0x30000000,0xffffff,0x70a7a7b9,0xffb0b0c0,0xfff8f8fa,0xffc3c3d0,0xff8eadd9,0xff87bcf6,0xff93c5f8,0xff9fcef9, |
162 | 0xffaad6fb,0xffb4ddfc,0xffbce4fd,0xffc4eafe,0xffcaeeff,0xffcdf0ff,0xffcff1ff,0xffcef0ff,0xffcbefff,0xffc6ebfe,0xffbee6fd,0xffb6dffc,0xffacd8fb,0xffa1d0fa, | 349 | 0xffaad6fb,0xffb4ddfc,0xffbce4fd,0xffc4eafe,0xffcaeeff,0xffcdf0ff,0xffcff1ff,0xffcef0ff,0xffcbefff,0xffc6ebfe,0xffbee6fd,0xffb6dffc,0xffacd8fb,0xffa1d0fa, |
163 | 0xff96c7f8,0xff8abef7,0xff7eb5f5,0xff6c89bc,0xff7b7b96,0xff9f9fb3,0xff6d6d8b,0x8d505069,0x26000000,0xffffff,0x20a5a5b8,0xffa3a3b6,0xffe2e2e8,0xffebebef, | 350 | 0xff96c7f8,0xff8abef7,0xff7eb5f5,0xff6c89bc,0xff7b7b96,0xff9f9fb3,0xff6d6d8b,0x8d505069,0x26000000,0xffffff,0x20a5a5b8,0xffa3a3b6,0xffe2e2e8,0xffebebef, |
164 | 0xff9ea1b7,0xff8fbff3,0xff9acbf9,0xffa6d4fa,0xffb2dcfc,0xffbde5fd,0xffc7ecfe,0xffcff1ff,0xffd4f2ff,0xffd6f3ff,0xffd8f3ff,0xffd7f3ff,0xffd4f2ff,0xffd0f1ff, | 351 | 0xff9ea1b7,0xff8fbff3,0xff9acbf9,0xffa6d4fa,0xffb2dcfc,0xffbde5fd,0xffc7ecfe,0xffcff1ff,0xffd4f2ff,0xffd6f3ff,0xffd8f3ff,0xffd7f3ff,0xffd4f2ff,0xffd0f1ff, |
165 | 0xffc9edff,0xffbfe6fd,0xffb4defc,0xffa9d6fb,0xff9dccf9,0xff90c3f8,0xff82b4ef,0xff65698b,0xff9898ad,0xff8e8ea5,0xff646484,0x4d292936,0x16000000,0xffffff, | 352 | 0xffc9edff,0xffbfe6fd,0xffb4defc,0xffa9d6fb,0xff9dccf9,0xff90c3f8,0xff82b4ef,0xff65698b,0xff9898ad,0xff8e8ea5,0xff646484,0x4d292936,0x16000000,0xffffff, |
166 | 0x0,0xb19f9fb2,0xffb5b5c4,0xfff4f4f6,0xffc2c2cf,0xff99aecf,0xffa0cffa,0xffadd9fb,0xffb9e2fd,0xffc5ebfe,0xffcff1ff,0xffd6f3ff,0xffdbf5ff,0xffdff6ff, | 353 | 0x0,0xb19f9fb2,0xffb5b5c4,0xfff4f4f6,0xffc2c2cf,0xff99aecf,0xffa0cffa,0xffadd9fb,0xffb9e2fd,0xffc5ebfe,0xffcff1ff,0xffd6f3ff,0xffdbf5ff,0xffdff6ff, |
167 | 0xffe1f6ff,0xffe0f6ff,0xffdcf5ff,0xffd7f3ff,0xffd1f1ff,0xffc8edff,0xffbce4fd,0xffb0dbfc,0xffa3d1fa,0xff96c7f8,0xff758cb6,0xff7d7d98,0xff9b9bb0,0xff71718f, | 354 | 0xffe1f6ff,0xffe0f6ff,0xffdcf5ff,0xffd7f3ff,0xffd1f1ff,0xffc8edff,0xffbce4fd,0xffb0dbfc,0xffa3d1fa,0xff96c7f8,0xff758cb6,0xff7d7d98,0xff9b9bb0,0xff71718f, |
168 | 0xbf5b5b78,0x33000000,0x6000000,0xffffff,0x0,0x309f9fb3,0xff9d9db1,0xffd7d7df,0xffebebef,0xffa3a3b6,0xffa0bcdd,0xffb2dcfc,0xffbfe7fd,0xffccefff, | 355 | 0xbf5b5b78,0x33000000,0x6000000,0xffffff,0x0,0x309f9fb3,0xff9d9db1,0xffd7d7df,0xffebebef,0xffa3a3b6,0xffa0bcdd,0xffb2dcfc,0xffbfe7fd,0xffccefff, |
169 | 0xffd4f2ff,0xffdcf5ff,0xffe2f7ff,0xffe8f8ff,0xffeaf9ff,0xffe8f8ff,0xffe4f7ff,0xffddf5ff,0xffd6f3ff,0xffcdf0ff,0xffc2e8fe,0xffb5dffc,0xffa8d5fa,0xff87a5cd, | 356 | 0xffd4f2ff,0xffdcf5ff,0xffe2f7ff,0xffe8f8ff,0xffeaf9ff,0xffe8f8ff,0xffe4f7ff,0xffddf5ff,0xffd6f3ff,0xffcdf0ff,0xffc2e8fe,0xffb5dffc,0xffa8d5fa,0xff87a5cd, |
170 | 0xff6a6a89,0xff9898ae,0xff8888a0,0xff636383,0x59353546,0x23000000,0x0,0xffffff,0x0,0x0,0x939797ab,0xff9e9eb2,0xffe3e3e9,0xffdbdbe3, | 357 | 0xff6a6a89,0xff9898ae,0xff8888a0,0xff636383,0x59353546,0x23000000,0x0,0xffffff,0x0,0x0,0x939797ab,0xff9e9eb2,0xffe3e3e9,0xffdbdbe3, |
171 | 0xff9999ae,0xffa9c2dc,0xffc3e9fe,0xffcff1ff,0xffd8f3ff,0xffe0f6ff,0xffe8f8ff,0xffeffaff,0xfff3fbff,0xfff0fbff,0xffeaf9ff,0xffe2f7ff,0xffdaf4ff,0xffd1f1ff, | 358 | 0xff9999ae,0xffa9c2dc,0xffc3e9fe,0xffcff1ff,0xffd8f3ff,0xffe0f6ff,0xffe8f8ff,0xffeffaff,0xfff3fbff,0xfff0fbff,0xffeaf9ff,0xffe2f7ff,0xffdaf4ff,0xffd1f1ff, |
172 | 0xffc6ecfe,0xffb8e1fd,0xff92adcf,0xff676786,0xff9292a8,0xff9292a8,0xff676786,0xa5555571,0x33000000,0xa000000,0x0,0xffffff,0x0,0x0, | 359 | 0xffc6ecfe,0xffb8e1fd,0xff92adcf,0xff676786,0xff9292a8,0xff9292a8,0xff676786,0xa5555571,0x33000000,0xa000000,0x0,0xffffff,0x0,0x0, |
173 | 0x0,0xd49393a9,0xffa5a5b8,0xffe4e4e9,0xffd6d6df,0xff9999ae,0xffa5b6cb,0xffccebf9,0xffdaf4ff,0xffe3f7ff,0xffecf9ff,0xfff4fcff,0xff7d7fcf,0xff7b7ecf, | 360 | 0x0,0xd49393a9,0xffa5a5b8,0xffe4e4e9,0xffd6d6df,0xff9999ae,0xffa5b6cb,0xffccebf9,0xffdaf4ff,0xffe3f7ff,0xffecf9ff,0xfff4fcff,0xff7d7fcf,0xff7b7ecf, |
174 | 0xffedfaff,0xffe4f7ff,0xffdcf5ff,0xffd2f2ff,0xffc2e5f7,0xff8b9db9,0xff6b6b8a,0xff9393a9,0xff9696ac,0xff6d6d8b,0xd95d5d7c,0x33000000,0x1d000000,0x0, | 361 | 0xffedfaff,0xffe4f7ff,0xffdcf5ff,0xffd2f2ff,0xffc2e5f7,0xff8b9db9,0xff6b6b8a,0xff9393a9,0xff9696ac,0xff6d6d8b,0xd95d5d7c,0x33000000,0x1d000000,0x0, |
175 | 0x0,0xffffff,0x0,0x0,0x0,0x109595ab,0xd78e8ea3,0xffa1a1b4,0xffdadae1,0xffdcdce3,0xffaeaebf,0xff8b8da5,0xffafbcce,0xffdceff9, | 362 | 0x0,0xffffff,0x0,0x0,0x0,0x109595ab,0xd78e8ea3,0xffa1a1b4,0xffdadae1,0xffdcdce3,0xffaeaebf,0xff8b8da5,0xffafbcce,0xffdceff9, |
176 | 0xffebf9ff,0xfff3fcff,0xff9b9edb,0xff989ddb,0xffecfaff,0xffe4f7ff,0xffd4ecf8,0xff9eaec3,0xff6d708e,0xff80809a,0xff9b9bb0,0xff9494aa,0xff6e6e8c,0xd95e5e7d, | 363 | 0xffebf9ff,0xfff3fcff,0xff9b9edb,0xff989ddb,0xffecfaff,0xffe4f7ff,0xffd4ecf8,0xff9eaec3,0xff6d708e,0xff80809a,0xff9b9bb0,0xff9494aa,0xff6e6e8c,0xd95e5e7d, |
177 | 0x40181821,0x29000000,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x137a7a8e,0xd78a8aa0,0xff9292a8,0xffc4c4d0, | 364 | 0x40181821,0x29000000,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x137a7a8e,0xd78a8aa0,0xff9292a8,0xffc4c4d0, |
178 | 0xffdbdbe3,0xffcdcdd8,0xffa0a0b4,0xff83839d,0xff9093aa,0xffa5a9bc,0xffb4b8c8,0xffb1b7c7,0xff9ea3b8,0xff8387a1,0xff6f6f8d,0xff81819b,0xff9e9eb2,0xffa0a0b4, | 365 | 0xffdbdbe3,0xffcdcdd8,0xffa0a0b4,0xff83839d,0xff9093aa,0xffa5a9bc,0xffb4b8c8,0xffb1b7c7,0xff9ea3b8,0xff8387a1,0xff6f6f8d,0xff81819b,0xff9e9eb2,0xffa0a0b4, |
179 | 0xff8b8ba3,0xff686887,0xd95e5e7d,0x40191921,0x29000000,0x3000000,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0, | 366 | 0xff8b8ba3,0xff686887,0xd95e5e7d,0x40191921,0x29000000,0x3000000,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0, |
180 | 0x0,0x3000000,0xa17b7b90,0xff8888a1,0xff9b9baf,0xffc0c0cd,0xffd1d1da,0xffcdcdd7,0xffbabac8,0xffb1b1c1,0xff9e9eb2,0xff9a9aaf,0xffa4a4b7,0xffa4a4b7, | 367 | 0x0,0x3000000,0xa17b7b90,0xff8888a1,0xff9b9baf,0xffc0c0cd,0xffd1d1da,0xffcdcdd7,0xffbabac8,0xffb1b1c1,0xff9e9eb2,0xff9a9aaf,0xffa4a4b7,0xffa4a4b7, |
181 | 0xffacacbd,0xffa7a7b9,0xff9494aa,0xff757592,0xff666685,0xa5575772,0x33000000,0x29000000,0x3000000,0x0,0x0,0x0,0x0,0xffffff, | 368 | 0xffacacbd,0xffa7a7b9,0xff9494aa,0xff757592,0xff666685,0xa5575772,0x33000000,0x29000000,0x3000000,0x0,0x0,0x0,0x0,0xffffff, |
182 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x485a5a6a,0xbf7a7a91,0xff82829c,0xff8a8aa2,0xff9f9fb2,0xffaeaebf,0xffafafbf, | 369 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x485a5a6a,0xbf7a7a91,0xff82829c,0xff8a8aa2,0xff9f9fb2,0xffaeaebf,0xffafafbf, |
183 | 0xffbcbcca,0xffb7b7c6,0xffa2a2b5,0xff9a9aaf,0xff8787a0,0xff72728f,0xff696987,0xbf5f5f7b,0x59373748,0x33000000,0x1d000000,0x0,0x0,0x0, | 370 | 0xffbcbcca,0xffb7b7c6,0xffa2a2b5,0xff9a9aaf,0xff8787a0,0xff72728f,0xff696987,0xbf5f5f7b,0x59373748,0x33000000,0x1d000000,0x0,0x0,0x0, |
184 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa000000,0x3f42424f, | 371 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa000000,0x3f42424f, |
185 | 0x8d64647a,0xcc74748e,0xf2787893,0xff777793,0xff757591,0xff72728f,0xff70708d,0xf26d6d8a,0xcc656581,0x8d54546c,0x4d2b2b38,0x33000000,0x23000000,0xa000000, | 372 | 0x8d64647a,0xcc74748e,0xf2787893,0xff777793,0xff757591,0xff72728f,0xff70708d,0xf26d6d8a,0xcc656581,0x8d54546c,0x4d2b2b38,0x33000000,0x23000000,0xa000000, |
186 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | 373 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, |
187 | 0x0,0x0,0x0,0x0,0x6000000,0x16000000,0x26000000,0x30000000,0x33000000,0x33000000,0x33000000,0x33000000,0x30000000,0x26000000, | 374 | 0x0,0x0,0x0,0x0,0x6000000,0x16000000,0x26000000,0x30000000,0x33000000,0x33000000,0x33000000,0x33000000,0x30000000,0x26000000, |
188 | 0x16000000,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff, | 375 | 0x16000000,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff, |
189 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 376 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
190 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 377 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
191 | 0xffffff,0xffffff | 378 | 0xffffff,0xffffff |
192 | }; | 379 | }; |
193 | 380 | ||
194 | static const QRgb CloseButton_data[] = { | 381 | static const QRgb CloseButton_data[] = { |
195 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 382 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
196 | 0xffffff,0xffffff,0xffffff,0x3edcdcdc,0x93dbdbdb,0xd5dedede,0xfadcdcdc,0xd8d1d1d1,0x9ec8c8c8,0x509d9d9d,0xc000000,0x3000000,0xffffff,0xffffff, | 383 | 0xffffff,0xffffff,0xffffff,0x3ed5d5d5,0x93d4d4d4,0xd5d8d8d8,0xfad5d5d5,0xd8c8c8c8,0x9ebebebe,0x508e8e8e,0xc000000,0x3000000,0xffffff,0xffffff, |
197 | 0xffffff,0xffffff,0x60dcdcdc,0xdbe3e3e3,0xffe2e2e2,0xffd3d3d3,0xffcecece,0xffcdcdcd,0xffd7d7d7,0xe6c5c5c5,0x838d8d8d,0x18000000,0x4000000,0xffffff, | 384 | 0xffffff,0xffffff,0x60d5d5d5,0xdbdddddd,0xffdcdcdc,0xffcbcbcb,0xffc5c5c5,0xffc4c4c4,0xffd0d0d0,0xe6bbbbbb,0x837d7d7d,0x18000000,0x4000000,0xffffff, |
198 | 0xffffff,0x3edddcdc,0xdbdadada,0xffcbcbcb,0xff353535,0xff888888,0xffc2c1c2,0xff878687,0xff343434,0xffb1b2b1,0xec9e9d9e,0x75595959,0x18000000,0x3000000, | 385 | 0xffffff,0x3ed6d5d5,0xdbd3d3d3,0xffc1c1c1,0xff262626,0xff777777,0xffb7b6b7,0xff767576,0xff252525,0xffa4a5a4,0xec8f8e8f,0x75474747,0x18000000,0x3000000, |
199 | 0xffffff,0x94d5d6d5,0xffd1d0d0,0xff8c8c8c,0xff000000,0xff000000,0xff5a5a5a,0xff000000,0xff000000,0xff868786,0xffabaaaa,0xc8616161,0x3d000000,0xc000000, | 386 | 0xffffff,0x94cdcecd,0xffc8c7c7,0xff7b7b7b,0xff000000,0xff000000,0xff484848,0xff000000,0xff000000,0xff757675,0xff9d9c9c,0xc84f4f4f,0x3d000000,0xc000000, |
200 | 0xffffff,0xd5cbcbcb,0xffbbbbbb,0xffadadad,0xff7a7a7a,0xff000000,0xff000000,0xff000000,0xff777777,0xffb1b1b1,0xffb1b1b1,0xef616161,0x61000000,0x1a000000, | 387 | 0xffffff,0xd5c2c2c2,0xffafafaf,0xffa0a0a0,0xff686868,0xff000000,0xff000000,0xff000000,0xff656565,0xffa4a4a4,0xffa4a4a4,0xef4f4f4f,0x61000000,0x1a000000, |
201 | 0xffffff,0xfabfbfbf,0xffababab,0xffa4a4a4,0xff7a7a7a,0xff000000,0xff000000,0xff000000,0xff747474,0xffaeaeae,0xffa2a2a2,0xfd5d5d5d,0x7c000000,0x25000000, | 388 | 0xffffff,0xfab4b4b4,0xff9d9d9d,0xff959595,0xff696969,0xff000000,0xff000000,0xff000000,0xff626262,0xffa1a1a1,0xff939393,0xfd4b4b4b,0x7c000000,0x25000000, |
202 | 0xffffff,0xd9b0b0b0,0xffa0a0a0,0xff7d7d7d,0xff000000,0xff000000,0xff4a4a4a,0xff000000,0xff000000,0xff7a7a7a,0xff8c8c8c,0xf2484848,0x85000000,0x2b000000, | 389 | 0xffffff,0xd9a3a3a3,0xff919191,0xff6c6c6c,0xff000000,0xff000000,0xff393939,0xff000000,0xff000000,0xff696969,0xff7b7b7b,0xf2373737,0x85000000,0x2b000000, |
203 | 0xffffff,0xa0949494,0xff9b9b9a,0xff959696,0xff383838,0xff6a6a6a,0xffa1a1a0,0xff6e6e6e,0xff353535,0xff969796,0xff6a696a,0xdf363636,0x7c000000,0x25000000, | 390 | 0xffffff,0xa0848484,0xff8c8c8b,0xff858686,0xff292929,0xff585858,0xff929291,0xff5c5c5c,0xff262626,0xff868786,0xff585758,0xdf272727,0x7c000000,0x25000000, |
204 | 0xffffff,0x516f6f6f,0xe7818181,0xff8d8d8d,0xff949494,0xff999a9a,0xff9b9b9b,0xff9e9e9e,0xff8f8f8f,0xff737273,0xf5414141,0xbb1a1a1a,0x61000000,0x1a000000, | 391 | 0xffffff,0x515d5d5d,0xe7707070,0xff7c7c7c,0xff848484,0xff898a8a,0xff8c8c8c,0xff8f8f8f,0xff7f7f7f,0xff616061,0xf5313131,0xbb101010,0x61000000,0x1a000000, |
205 | 0xffffff,0xc000000,0x84505050,0xed626262,0xff6f6e6e,0xff7b7b7a,0xff7d7d7d,0xff767576,0xff636263,0xf5414140,0xcd1f1f1f,0x83000000,0x3d000000,0xc000000, | 392 | 0xffffff,0xc000000,0x843f3f3f,0xed505050,0xff5d5c5c,0xff6a6a69,0xff6c6c6c,0xff646364,0xff515051,0xf5313130,0xcd141414,0x83000000,0x3d000000,0xc000000, |
206 | 0xffffff,0x3000000,0x18000000,0x762f2f2f,0xc93b3b3b,0xf0404040,0xfd464646,0xf3393939,0xdf2a2a2a,0xbb161616,0x83000000,0x4b000000,0x18000000,0x3000000, | 393 | 0xffffff,0x3000000,0x18000000,0x76212121,0xc92b2b2b,0xf0303030,0xfd353535,0xf32a2a2a,0xdf1d1d1d,0xbb0d0d0d,0x83000000,0x4b000000,0x18000000,0x3000000, |
207 | 0xffffff,0xffffff,0x4000000,0x18000000,0x3d000000,0x61000000,0x7c000000,0x85000000,0x7c000000,0x61000000,0x3d000000,0x18000000,0x4000000,0xffffff, | 394 | 0xffffff,0xffffff,0x4000000,0x18000000,0x3d000000,0x61000000,0x7c000000,0x85000000,0x7c000000,0x61000000,0x3d000000,0x18000000,0x4000000,0xffffff, |
208 | 0xffffff,0xffffff,0xffffff,0x3000000,0xc000000,0x1a000000,0x25000000,0x2b000000,0x25000000,0x1a000000,0xc000000,0x3000000,0xffffff,0xffffff | 395 | 0xffffff,0xffffff,0xffffff,0x3000000,0xc000000,0x1a000000,0x25000000,0x2b000000,0x25000000,0x1a000000,0xc000000,0x3000000,0xffffff,0xffffff |
209 | }; | 396 | }; |
210 | 397 | ||
398 | static const QRgb close_data[] = { | ||
399 | 0x0,0x0,0x0,0x2c90000,0x1fc80000,0x5bc60000,0x83c50000,0x83c20000,0x5bbb0000,0x1fb70000,0x2b50000,0x0,0x0,0x0, | ||
400 | 0x0,0x0,0xdcb0000,0x87cb0000,0xecd51313,0xffe44a4a,0xffed6f6f,0xffec7070,0xffe05050,0xecc91a1a,0x87b30000,0xdad0000,0x0,0x0, | ||
401 | 0x0,0xdca0000,0xaacd0000,0xfee53b3b,0xfffbb1b1,0xffffd6d6,0xffffd9d9,0xffffd9d9,0xffffd7d7,0xfffbbcbc,0xfedb4c4c,0xaab00000,0xda70000,0x0, | ||
402 | 0x2c90000,0x87ca0000,0xfee52f2f,0xfffeadad,0xffffd6d6,0xffffbdbd,0xffffb3b3,0xffffb3b3,0xffffbdbd,0xffffd6d6,0xfffeb1b1,0xfed84343,0x87a60000,0x2a00000, | ||
403 | 0x1fc80000,0xecd50808,0xfffb7272,0xffffbcbc,0xffffffff,0xffffe7e7,0xffff9b9b,0xffff9b9b,0xffffe7e7,0xffffffff,0xffffbbbb,0xfffa7171,0xecb90c0c,0x1f9d0000, | ||
404 | 0x5bc50000,0xffe41b1b,0xffff6464,0xffff7474,0xffffd9d9,0xffffffff,0xffffe0e0,0xffffe0e0,0xffffffff,0xfffcc6c6,0xfff63535,0xfff30e0e,0xffd00202,0x5b9a0000, | ||
405 | 0x83c50000,0xffec1c1c,0xffff3f3f,0xffff3f3f,0xffff5252,0xffffd2d2,0xffffffff,0xffffffff,0xfffcc6c6,0xfff31c1c,0xfff20000,0xfff20000,0xffdc0000,0x839b0000, | ||
406 | 0x83c10000,0xffec0a0a,0xffff1616,0xffff1616,0xffff3131,0xffffcece,0xffffffff,0xffffffff,0xfffcc6c6,0xfff41c1c,0xfff40000,0xfff40000,0xffdc0000,0x83970000, | ||
407 | 0x5bbb0000,0xffe10000,0xfffe0101,0xfffe1b1b,0xffffc5c5,0xffffffff,0xffffc6c6,0xffffc6c6,0xffffffff,0xfffdc4c4,0xfffa1a1a,0xfffa0000,0xffcf0000,0x5b900000, | ||
408 | 0x1fb70000,0xeccb0202,0xfffc0909,0xffff6d6d,0xffffffff,0xffffc8c8,0xffff2525,0xffff2525,0xffffc8c8,0xffffffff,0xffff6d6d,0xfffb0909,0xecae0202,0x1f8c0000, | ||
409 | 0x2b40000,0x87b30101,0xfede1313,0xffff2828,0xffff7e7e,0xffff3a3a,0xffff2323,0xffff2323,0xffff3a3a,0xffff7e7e,0xfffe2828,0xfed01313,0x878e0101,0x28b0000, | ||
410 | 0x0,0xdac0000,0xaab00404,0xfedb2121,0xfffc3b3b,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xfffb3b3b,0xfed02121,0xaa930404,0xd890000,0x0, | ||
411 | 0x0,0x0,0xda60000,0x87a50202,0xecbb1616,0xffd73131,0xffe63f3f,0xffe53f3f,0xffd33131,0xecaf1616,0x878e0202,0xd890000,0x0,0x0, | ||
412 | 0x0,0x0,0x0,0x29f0000,0x1d9c0000,0x59990101,0x839b0505,0x83970505,0x5b8f0101,0x1f8c0000,0x28a0000,0x0,0x0,0x0 | ||
413 | }; | ||
414 | |||
415 | static const QRgb copy_inactive_data[] = { | ||
416 | 0x2bbc6d1,0x7b9c4cf,0xebfc8d3,0x1fc2cbd6,0x31c0c9d4,0x209fadbf,0x98494ac,0x17e8fa9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
417 | 0x21bfc9d4,0x48c8d1da,0x5cced5dd,0x73d0d8df,0x7eced6de,0x6da6b3c3,0x498b9bb1,0x168090a9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
418 | 0x42c4cdd7,0x7ee0e5ea,0x7ee3e7ec,0x7ed7dee4,0x7ed7dde4,0x7eadbac8,0x7d9eadbd,0x538394ab,0x47d8da8,0x0,0x0,0x0,0x0,0x0, | ||
419 | 0x2dc4cdd7,0x7be2e6eb,0x7ee6eaed,0x7ed7dee4,0x7edde3e8,0x7ec9d2da,0x7eb9c4cf,0x7394a3b5,0x44a0a2b0,0x3ec0bbc6,0x35cac4d2,0x13a39cab,0x22b2b2b,0x2b2b2b, | ||
420 | 0x17c2cbd5,0x6bd8dee4,0x7eeaeef0,0x7edbe1e6,0x7ed5dce2,0x7ec9d1da,0x7ec0c9d4,0x7eafbac7,0x7e9ea1af,0x7ebebac2,0x76d2cdd9,0x50b2aaba,0x1877707f,0x336343a, | ||
421 | 0xbbec8d3,0x57d0d7df,0x7ee8ecef,0x7edae1e6,0x7eced5dd,0x7ec3ccd6,0x7ec1c9d4,0x7ec0cad3,0x7e99a1af,0x7eb9b6bd,0x7ec4bdcb,0x79b2a7bb,0x599c92a5,0x145f5a63, | ||
422 | 0x6b7c1ce,0x42cdd4dd,0x7ce7ecef,0x7edce2e7,0x7ecbd2db,0x7ec9d1da,0x7ec6cfd9,0x7ec7d0d8,0x7e9fa8b7,0x7eb2b0b9,0x7ecbc5cf,0x7ecfc7d6,0x7bb5abbe,0x2b59555c, | ||
423 | 0x2b7c2ce,0x25ccd3dc,0x73dee3e8,0x7edee3e8,0x7ecdd5dd,0x7ecad2db,0x7ec7cfd9,0x7ed2d8e0,0x7eafb8c5,0x7ea6a7b1,0x7ebeb9c4,0x7ed7d1de,0x7dbbb2c4,0x36514e54, | ||
424 | 0x0,0x16c4cdd7,0x67d8dee4,0x7ee6eaed,0x7edbe1e7,0x7edae0e6,0x7ed2d9e0,0x7ec5ccd7,0x7ea1abbb,0x7e9d9fad,0x7eb4afba,0x7ed5d0dc,0x7dbdb4c5,0x39504d52, | ||
425 | 0x0,0xebbc4d1,0x53cbd3dc,0x7ad5dbe2,0x6fc6ced8,0x79b3bbc8,0x7ea5adba,0x7e9ea5b4,0x7ea9abb9,0x7eb5b2be,0x7ec0bbc6,0x7ed9d4df,0x7ebeb5c6,0x39504d53, | ||
426 | 0x0,0x59baabc,0x2b9facbf,0x469ca9bc,0x2e8999b0,0x67b0b2c0,0x7ec9c9d0,0x7ec9c5ce,0x7ed1ccd6,0x7ed5d0db,0x7ed8d2de,0x7ee0dbe6,0x7ebeb6c6,0x39504d52, | ||
427 | 0x0,0x17d8ea8,0x67d8ca8,0x97d8ba8,0x27d8aa8,0x5ddbd6e1,0x7ef2f1f4,0x7fe9e6ed,0x7ee9e5ed,0x7ee8e3ec,0x7ee5e1ea,0x7fe8e4ed,0x7fc0b8c8,0x3a504d53, | ||
428 | 0x0,0x0,0x0,0x0,0x0,0x5dbdb5c6,0x7ec6bfcc,0x7fc3bbca,0x7fc2bac9,0x7fc2b9c9,0x80c1b8c8,0x81c0b8c8,0x81b0a6b9,0x3b4e4b51, | ||
429 | 0x0,0x0,0x0,0x0,0x0,0x137e7783,0x2c5c595f,0x39514e53,0x3a504d52,0x3a504d53,0x3b504d52,0x3c4f4c51,0x3e4c494f,0x2f303031 | ||
430 | }; | ||
431 | |||
432 | static const QRgb copy_data[] = { | ||
433 | 0x5bbc5d1,0xdb9c4cf,0x1cbfc8d3,0x40c2cbd6,0x64c0c9d4,0x419fadbf,0x128494ac,0x27e8fa9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
434 | 0x41bfc9d4,0x90c9d1da,0xbaced5dd,0xe9d0d8df,0xffced6de,0xdca6b3c3,0x958b9bb1,0x2d8090a9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
435 | 0x84c4cdd7,0xffe0e5ea,0xffe3e7ec,0xffd7dee4,0xffd7dde4,0xffadbac8,0xfd9eadbd,0xa88394ab,0x97d8da8,0x0,0x0,0x0,0x0,0x0, | ||
436 | 0x5bc4cdd7,0xf8e2e6eb,0xffe6eaed,0xffd7dee4,0xffdde3e8,0xffc9d2da,0xffb9c4cf,0xe894a3b5,0x8aa0a2b0,0x7fc0bbc6,0x6bcac4d2,0x26a39cab,0x42b2b2b,0x2b2b2b, | ||
437 | 0x2fc2cbd5,0xd9d8dee4,0xffeaeef0,0xffdbe1e6,0xffd5dce2,0xffc9d1da,0xffc0c9d4,0xffafbac7,0xfe9ea1af,0xfebebac2,0xf0d2cdd9,0xa1b2aaba,0x3178717f,0x637343a, | ||
438 | 0x15bec8d3,0xb0d0d7df,0xffe8ecef,0xffdbe1e6,0xffced6dd,0xffc3ccd6,0xffc1c9d4,0xffc0cad3,0xff99a1af,0xffb9b6bd,0xffc5becb,0xf4b2a7bb,0xb59c92a5,0x2a5e5a63, | ||
439 | 0xcb7c1ce,0x86cdd4dd,0xfce7ecef,0xffdce2e7,0xffcbd3db,0xffc9d1da,0xffc6cfd9,0xffc7d0d8,0xff9fa8b7,0xffb2b0b9,0xffcbc5cf,0xffcfc7d6,0xf9b5abbe,0x5659555d, | ||
440 | 0x3b7c2ce,0x4cccd3dc,0xeadee3e8,0xffdee3e8,0xffcdd5dd,0xffcad2db,0xffc7cfd9,0xffd2d8e0,0xffafb8c5,0xffa6a7b1,0xffbeb9c4,0xffd7d1de,0xfebbb2c4,0x6f514e54, | ||
441 | 0x0,0x2dc4cdd7,0xd0d8dee4,0xffe6eaed,0xffdbe1e7,0xffdae0e6,0xffd2d9e0,0xffc5ccd7,0xffa1abbb,0xff9c9fad,0xffb4afba,0xffd5d0dc,0xfebdb4c5,0x73504d52, | ||
442 | 0x0,0x1dbbc4d1,0xa7cbd3dc,0xf7d5dbe2,0xe1c6ced8,0xf5b3bbc8,0xffa5adba,0xff9ea5b4,0xffa9abb9,0xffb5b2be,0xffc0bbc6,0xffd9d4df,0xfebeb6c6,0x73504d53, | ||
443 | 0x0,0xb9baabc,0x56a0acbf,0x8e9ca9bc,0x5e8999b0,0xd0b0b2c0,0xffc9c9d0,0xffc9c5ce,0xffd1ccd6,0xffd5d0db,0xffd8d2de,0xffe0dbe6,0xfebfb6c7,0x73504d53, | ||
444 | 0x0,0x17d8ea8,0xc7d8ca8,0x137d8ba8,0x57d8aa8,0xbcdbd6e0,0xfef2f1f4,0xffe9e6ed,0xffe9e5ed,0xffe8e3ec,0xffe5e1ea,0xffe8e4ed,0xfec0b8c8,0x73504d53, | ||
445 | 0x0,0x0,0x0,0x0,0x0,0xbbbdb5c6,0xfcc6bfcc,0xfdc3bbca,0xfdc2bac9,0xfdc2bac9,0xfdc1b8c8,0xfdc0b8c8,0xfcb0a6b9,0x724e4b51, | ||
446 | 0x0,0x0,0x0,0x0,0x0,0x267c7682,0x585c595f,0x72504e53,0x73504d53,0x73504d53,0x73504d53,0x73504d52,0x724e4b51,0x4e313132 | ||
447 | }; | ||
448 | |||
449 | static const QRgb c_src_data[] = { | ||
450 | 0x0,0x0,0x14d3d3d4,0x2fcdcdd1,0x2fc8c8cf,0x2fc4c4cc,0x2fbfbfc9,0x2fbabac7,0x17adadbc,0x0,0x0,0x0,0x0,0x0, | ||
451 | 0x0,0x0,0x7cd6d6d9,0xfff4f4f5,0xfff5f5f6,0xfff3f3f5,0xffeeeef2,0xffe6e6ed,0xe3bebecd,0x289393a5,0x0,0x0,0x0,0x0, | ||
452 | 0x0,0x0,0x7dd2d2d7,0xfffdfdfe,0xfff3f3f3,0xfffdfdfe,0xfff0f0f2,0xffececf1,0xffdedee7,0xddc9c9d7,0x2489899f,0x0,0x0,0x0, | ||
453 | 0x0,0x0,0x7dcdcdd5,0xfffdfdfe,0xfff4f4f4,0xfffefefe,0xfff4f4f5,0xfff1f1f6,0xffdddde6,0xfff3f3f7,0xdcbabace,0x207b7b94,0x0,0x0, | ||
454 | 0x0,0x0,0x7dc8c8d2,0xfffdfdfd,0xffebebeb,0xfffcfcfd,0xffebebec,0xffececf1,0xffd3d3e0,0xffc9c9da,0xffc6c6d8,0x8d8d8da6,0x0,0x0, | ||
455 | 0x0,0x0,0x7dc3c3d0,0xfffdfdfd,0xfffcfcfc,0xffffffff,0xfff6f6f8,0xfff2f2f7,0xffe8e8f1,0xffe0e0ec,0xffdfdfec,0x938e8ea6,0x0,0x0, | ||
456 | 0x0,0x0,0x7dbebecd,0xfffdfdfd,0xffffffff,0xffffffff,0xffe8e8ea,0xffeaeaf0,0xffd9d9e1,0xffe0e0e9,0xffe1e1ed,0x938a8aa5,0x0,0x0, | ||
457 | 0x0,0x0,0x7db9b9cb,0xfffcfcfd,0xffececee,0xfff0f0f6,0xffe3e3e9,0xffe6e6ee,0xffe9e9f2,0xffe6e6f0,0xffe3e3ef,0x938888a3,0x0,0x0, | ||
458 | 0x0,0x0,0x7db4b4c8,0xfff8f8fa,0xffefeff1,0xfff3f3f7,0xffebebf0,0xffededf3,0xffebebf3,0xffe9e9f2,0xffe6e6f0,0x938585a2,0x0,0x0, | ||
459 | 0x0,0x0,0x7db5b5ca,0xffe2d9e9,0xffccbcd8,0xffbba5cb,0xffad93c0,0xffa588ba,0xff8b67a6,0xff7f579d,0xff9779b1,0x938282a1,0x0,0x0, | ||
460 | 0x0,0x0,0x7db2b2c9,0xffddd3e5,0xffc2aed0,0xffad93c0,0xffbca7cc,0xffa082b6,0xff754894,0xff663589,0xff8560a2,0x937f7f9f,0x0,0x0, | ||
461 | 0x0,0x0,0x7daeaec6,0xffddd3e5,0xffc2aed0,0xffb69ec6,0xffb59dc6,0xffad92bf,0xff764a95,0xff663589,0xff8661a3,0x937d7d9e,0x0,0x0, | ||
462 | 0x0,0x0,0x7ca5a5c1,0xffddd8e7,0xffd0c7dd,0xffc5b9d5,0xffbaabcc,0xffaf9dc5,0xffa591bd,0xff9d86b7,0xffaa99c2,0x92747499,0x0,0x0, | ||
463 | 0x0,0x0,0x1a6d6d8a,0x455b5b76,0x45585873,0x45545472,0x45515170,0x454d4d6e,0x454a4a6d,0x4547476b,0x45434369,0x2831314e,0x0,0x0 | ||
464 | }; | ||
465 | |||
466 | static const QRgb cut_inactive_data[] = { | ||
467 | 0x0,0x0,0x0,0x1b9b9b9,0x13c3c3c3,0x6bcbcbcb,0x97d3d3d3,0x568d8d8d,0xb0b0b0b,0x2000000,0x0,0x0,0x0,0x0, | ||
468 | 0x0,0x0,0x0,0x8b9b9b9,0x5acdcdcd,0x93c8c8c8,0x8eb1b1b1,0x8c9f9f9f,0x271b1b1b,0xb333333,0x7a5a5a5,0x2808080,0x0,0x0, | ||
469 | 0x0,0x0,0x0,0xeb6b6b6,0x6bd4d4d4,0x909e9e9e,0x68707070,0x8e9d9d9d,0x331e1e1e,0x30a0a0a0,0x46bebebe,0x21878787,0x6212121,0x1000000, | ||
470 | 0x0,0x0,0x0,0xdb0b0b0,0x69cccccc,0x94afafaf,0x7b8f8f8f,0x8e9d9d9d,0x4e6d6d6d,0x76b7b7b7,0x8facacac,0x6a909090,0x21515151,0x5000000, | ||
471 | 0x0,0x0,0x0,0x59a9a9a,0x3bb0b0b0,0x86bababa,0x96c7c7c7,0x96a2a2a2,0x82acacac,0x75979797,0x6c8d8d8d,0x8d9b9b9b,0x40545454,0xe000000, | ||
472 | 0x0,0x0,0x0,0x1000000,0xc5c5c5c,0x679d9d9d,0x97b7b7b7,0x9a9a9a9a,0x95b0b0b0,0x7ea4a4a4,0x80c1c1c1,0x93a5a5a5,0x4a474747,0x15000000, | ||
473 | 0x0,0x0,0x0,0x8d8d8d,0x39b0b0b0,0x889d9d9d,0x9acccccc,0x968d8d8d,0x8d888888,0x98b1b1b1,0x94a8a8a8,0x6c6e6e6e,0x38181818,0x13000000, | ||
474 | 0x0,0xa1a1a1,0x5aeaeae,0x3bb9b9b9,0x88dddddd,0x9ab3b3b3,0x9ad3d3d3,0x8f888888,0x52252525,0x55434343,0x4f3a3a3a,0x38161616,0x1e000000,0x8000000, | ||
475 | 0x0,0x7afafaf,0x3ebebebe,0x88d8d8d8,0x96c7c7c7,0x96919191,0x9ad4d4d4,0x8e898989,0x3c0d0d0d,0x1f000000,0x19000000,0x14000000,0x9000000,0x1000000, | ||
476 | 0x0,0x1eb7b7b7,0x86cacaca,0x96c7c7c7,0x77737373,0x806b6b6b,0x98d4d4d4,0x8e8a8a8a,0x370e0e0e,0x10000000,0x4000000,0x3000000,0x1000000,0x0, | ||
477 | 0x0,0x26b2b2b2,0x93ababab,0x78787878,0x48212121,0x6f6e6e6e,0x97d5d5d5,0x8e8a8a8a,0x370e0e0e,0xe000000,0x1000000,0x0,0x0,0x0, | ||
478 | 0x0,0x20818181,0x6e6f6f6f,0x43272727,0x27010101,0x65797979,0x96d4d4d4,0x8b909090,0x37101010,0xe000000,0x1000000,0x0,0x0,0x0, | ||
479 | 0x0,0x94c4c4c,0x23323232,0x1e030303,0xf000000,0x60858585,0x94989898,0x5e4c4c4c,0x2d050505,0xc000000,0x0,0x0,0x0,0x0, | ||
480 | 0x0,0x1000000,0x6000000,0x8000000,0x3000000,0x57696969,0x564a4a4a,0x35070707,0x1a000000,0x6000000,0x0,0x0,0x0,0x0 | ||
481 | }; | ||
482 | |||
483 | static const QRgb cut_data[] = { | ||
484 | 0x0,0x0,0x0,0x1f2bf00,0x20f9cd00,0xb1fdd900,0xfbfbe601,0x8edd8000,0x13170800,0x4000000,0x0,0x0,0x0,0x0, | ||
485 | 0x0,0x0,0x0,0xdf3bf00,0x96fddc00,0xf3eddb02,0xebcfc305,0xe8ee9600,0x41361200,0x12403600,0xbdab102,0x4a77e05,0x0,0x0, | ||
486 | 0x0,0x0,0x0,0x17f0bb00,0xb1fee600,0xeec9a607,0xad897905,0xebec9300,0x54331b00,0x51c0ad00,0x74e8cc03,0x37b28906,0x93e1a02,0x1000000, | ||
487 | 0x0,0x0,0x0,0x16e7b600,0xaefcda00,0xf5dab905,0xccac9a06,0xebec9300,0x81917000,0xc3dfc503,0xecd5b606,0xb0cf8b04,0x37884600,0x7000000, | ||
488 | 0x0,0x0,0x0,0x9c49b00,0x62e2b800,0xdff1c201,0xf9eada03,0xf8f39900,0xd8dcb502,0xc2bba105,0xb2ad9705,0xe9e49301,0x6a8a4800,0x17000000, | ||
489 | 0x0,0x0,0x0,0x1000000,0x15775f00,0xabd9961e,0xfafbb509,0xffed8b0a,0xf7ddbb05,0xd1c3b204,0xd4e3d400,0xf4f09e00,0x7b763d00,0x23000000, | ||
490 | 0x0,0x0,0x0,0x1739ed6,0x5f92b5e6,0xe17ea5ce,0xfec5cfdb,0xf97393b6,0xead07c09,0xfbf7af00,0xf6f2a300,0xb4b16200,0x5e2c1300,0x1f000000, | ||
491 | 0x0,0x7fa9da,0x995b4dc,0x63a0bfe1,0xe1c7e5f5,0xff89c0e7,0xffbcd8fa,0xed4798e4,0x8935201a,0x8d862f00,0x82702a00,0x5d2a1000,0x31000000,0xd000000, | ||
492 | 0x0,0xc95b6de,0x67a7c5e4,0xe1c1e0f3,0xf8a0d3f6,0xf85ca0dd,0xfebed8fa,0xec4899e6,0x64021020,0x33000000,0x29000000,0x21000000,0xf000000,0x2000000, | ||
493 | 0x0,0x329abee2,0xddafd3ed,0xf8a1d3f6,0xc63e80bf,0xd43578b9,0xfbbfd8f8,0xeb4e99e1,0x5c001226,0x1b000000,0x7000000,0x5000000,0x2000000,0x0, | ||
494 | 0x0,0x3f8fbbe4,0xf481b6e7,0xc74385c4,0x77072749,0xb74479a8,0xfac1d9f8,0xeb4f99e1,0x5b001225,0x18000000,0x2000000,0x0,0x0,0x0, | ||
495 | 0x0,0x354590dc,0xb5367dc6,0x6f0a2f55,0x40000204,0xa74b86bb,0xf9bed9f9,0xe65e9cd6,0x5a041321,0x18000000,0x1000000,0x0,0x0,0x0, | ||
496 | 0x0,0xf0e59a4,0x3a093c6f,0x31000407,0x19000000,0x9f5592c8,0xf560a6ee,0x9b2f5475,0x4a020609,0x14000000,0x1000000,0x0,0x0,0x0, | ||
497 | 0x0,0x2000000,0xa000000,0xc000000,0x4000000,0x8f1d7dd3,0x8e11579e,0x5603080c,0x29000000,0x9000000,0x1000000,0x0,0x0,0x0 | ||
498 | }; | ||
499 | |||
500 | static const QRgb datebook_icon_data[] = { | ||
501 | 0x343b98e5,0x7254a9e9,0x7b52a5e3,0x7b50a4e3,0x7b4fa4e3,0x7b4ea3e2,0x7b4da3e2,0x7b4ba2e2,0x7b4aa1e2,0x7b49a1e2,0x7b47a0e1,0x7a479fe1,0x492c7cbc,0xe00162b, | ||
502 | 0xc767bcf7,0xf766bef6,0xf94fb5f3,0xf94eb5f3,0xf94cb5f3,0xf94bb5f2,0xf94ab4f3,0xf948b4f3,0xf947b4f3,0xf946b4f3,0xf944b3f3,0xf94bb5f4,0xd352aae5,0x4b033c65, | ||
503 | 0xe94db4f6,0xff16a6e9,0xff04a1e4,0xff05a2e4,0xff07a3e5,0xff09a4e5,0xff0ba5e5,0xff0da6e6,0xff0fa8e6,0xff12a8e7,0xff14a9e7,0xff15a9e9,0xef34a1e4,0x74083858, | ||
504 | 0xe96cbff6,0xff84cdf6,0xff71c6f4,0xff71c6f5,0xff70c5f5,0xff6fc4f5,0xff6ec3f4,0xff6ec3f4,0xff6ec2f5,0xff6ec2f5,0xff6dc2f4,0xff71c2f5,0xf05fafe4,0x79013455, | ||
505 | 0xe96eb7e7,0xffd8dee3,0xffdbe0e4,0xffd3d8dd,0xffdae1e6,0xffced5da,0xffd8e0e6,0xffced6dc,0xffd4dde3,0xffced7de,0xffcfd8df,0xffd3dbe1,0xf07ab1d5,0x79003453, | ||
506 | 0xe96ab4e3,0xffe8ebed,0xfff1f1f1,0xffe3e2e2,0xfff5f5f5,0xffe0e0df,0xfff6f6f5,0xffe4e4e5,0xffeff0f1,0xffe7e8e8,0xffeaeaea,0xfff1efee,0xf080b3d3,0x79013454, | ||
507 | 0xe966b0df,0xffd5d8d9,0xffdbdbdb,0xffd3d2d2,0xffe0e0e0,0xffd0d0d0,0xffe0e0e0,0xffd3d4d6,0xffdbdcdd,0xffd4d5d6,0xffd9d6d5,0xffdddbda,0xf07fb0cf,0x79013554, | ||
508 | 0xe966b2e2,0xffeceff1,0xfff5f5f5,0xffe8e8e8,0xfffdfdfd,0xffe5e5e5,0xfffdfdfd,0xffeaebeb,0xfff8f8f8,0xffececec,0xfff2efec,0xfff6f5f4,0xf086b6d5,0x79013454, | ||
509 | 0xe962aedf,0xffd8dbdd,0xffdfdede,0xffd6d5d5,0xffe4e4e4,0xffd3d3d3,0xffe4e4e4,0xffd6d7d9,0xffe0e0e1,0xffd8d9d9,0xffdddad8,0xffe1dfde,0xf084b3d0,0x79013554, | ||
510 | 0xe962b0e1,0xffe6eaec,0xffefefef,0xffe2e2e2,0xfff4f4f4,0xffdfdfdf,0xfff5f5f4,0xffe2e3e4,0xffeef0f0,0xffe6e6e7,0xffeaeaea,0xfff1efee,0xf089b7d4,0x79023554, | ||
511 | 0xea5eaee2,0xffd5dce1,0xffdde0e3,0xffd5d8da,0xffe2e5e7,0xffd3d6d8,0xffe4e6e7,0xffd9dadb,0xffe2e3e4,0xffdcddde,0xffdfdfe0,0xffe6e4e3,0xf08cb8d4,0x78023554, | ||
512 | 0xbb449edd,0xf87cbde9,0xfd81c0ea,0xfd84c2eb,0xfd88c3eb,0xfd8bc5ec,0xfd90c7ec,0xfd96caed,0xfd9acced,0xfd9fceee,0xfda4d0ee,0xfca8d2ee,0xdc649cc3,0x63001f36, | ||
513 | 0x360f466e,0x75164e74,0x89154769,0x8a154768,0x8a164768,0x8a164868,0x8a174868,0x8a184868,0x8a194968,0x8a1a4969,0x8a1b4969,0x891b4a68,0x6a0e2b41,0x28000306, | ||
514 | 0x4000000,0xf000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0xf000000,0x4000000 | ||
515 | }; | ||
516 | |||
517 | static const QRgb day_data[] = { | ||
518 | 0x343b98e5,0x7254a9e9,0x7b52a5e3,0x7b50a4e3,0x7b4fa4e3,0x7b4ea3e2,0x7b4da3e2,0x7b4ba2e2,0x7b4aa1e2,0x7b49a1e2,0x7b47a0e1,0x7a479fe1,0x492c7cbc,0xe00162b, | ||
519 | 0xc767bcf7,0xf766bef6,0xf94fb5f3,0xf94eb5f3,0xf94cb5f3,0xf94bb5f2,0xf94ab4f3,0xf948b4f3,0xf947b4f3,0xf946b4f3,0xf944b3f3,0xf94bb5f4,0xd352aae5,0x4b033c65, | ||
520 | 0xe94db4f6,0xff16a6e9,0xff04a1e4,0xff05a2e4,0xff07a3e5,0xff09a4e5,0xff0ba5e5,0xff0da6e6,0xff0fa8e6,0xff12a8e7,0xff14a9e7,0xff15a9e9,0xef34a1e4,0x74083858, | ||
521 | 0xe96cbff6,0xff84cdf6,0xff71c6f4,0xff71c6f5,0xff70c5f5,0xff6fc4f5,0xff6ec3f4,0xff6ec3f4,0xff6ec2f5,0xff6ec2f5,0xff6dc2f4,0xff71c2f5,0xf05fafe4,0x79013455, | ||
522 | 0xe96eb7e7,0xffd8dee3,0xffdbe0e4,0xffd3d8dd,0xffdae1e6,0xffced5da,0xffd8e0e6,0xffced6dc,0xffd4dde3,0xffced7de,0xffcfd8df,0xffd3dbe1,0xf07ab1d5,0x79003453, | ||
523 | 0xe96ab4e3,0xffe8ebed,0xfff1f1f1,0xffe3e2e2,0xfff5f5f5,0xffe0e0df,0xfff6f6f5,0xffe5e4e3,0xfff2f0ee,0xffeae7e6,0xffeaeae9,0xfff1efee,0xf080b3d3,0x79013454, | ||
524 | 0xe966b0df,0xffd5d8d9,0xffdbdbdb,0xffd3d2d2,0xffe0e0e0,0xffd0d0d0,0xffe0e0e0,0xffe4d1ab,0xfff6d477,0xfff1c87d,0xffddd5cc,0xffdddbda,0xf07fb0cf,0x79013554, | ||
525 | 0xe966b2e2,0xffeceff1,0xfff5f5f5,0xffe8e8e8,0xfffdfdfd,0xffe5e5e5,0xfffdfdfd,0xfffee192,0xffffcf1c,0xfffdb436,0xfff9eada,0xfff6f5f4,0xf086b6d5,0x79013454, | ||
526 | 0xe962aedf,0xffd8dbdd,0xffdfdede,0xffd6d5d5,0xffe4e4e4,0xffd3d3d3,0xffe4e4e4,0xffeccd9d,0xfffbb954,0xfff7ab61,0xffe3d7cb,0xffe1dfde,0xf084b3d0,0x79013554, | ||
527 | 0xe962b0e1,0xffe6eaec,0xffefefef,0xffe2e2e2,0xfff4f4f4,0xffdfdfdf,0xfff5f5f4,0xffe5e3e2,0xfff3f0eb,0xffebe7e2,0xffeaeae9,0xfff1efee,0xf089b7d4,0x79023554, | ||
528 | 0xea5eaee2,0xffd5dce1,0xffdde0e3,0xffd5d8da,0xffe2e5e7,0xffd3d6d8,0xffe4e6e7,0xffd9dadb,0xffe2e3e4,0xffdcddde,0xffdfdfe0,0xffe6e4e3,0xf08cb8d4,0x78023554, | ||
529 | 0xbb449edd,0xf87cbde9,0xfd81c0ea,0xfd84c2eb,0xfd88c3eb,0xfd8bc5ec,0xfd90c7ec,0xfd96caed,0xfd9acced,0xfd9fceee,0xfda4d0ee,0xfca8d2ee,0xdc649cc3,0x63001f36, | ||
530 | 0x360f466e,0x75164e74,0x89154769,0x8a154768,0x8a164768,0x8a164868,0x8a174868,0x8a184868,0x8a194968,0x8a1a4969,0x8a1b4969,0x891b4a68,0x6a0e2b41,0x28000306, | ||
531 | 0x4000000,0xf000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0xf000000,0x4000000 | ||
532 | }; | ||
533 | |||
211 | static const QRgb DocsIcon_data[] = { | 534 | static const QRgb DocsIcon_data[] = { |
212 | 0x0,0x0,0x16d3d3d5,0x3dceced1,0x3dc8c8cf,0x3dc4c4cc,0x3dbfbfc9,0x3dbabac7,0x29b0b0be,0x0,0x0,0x0,0x0,0x0, | 535 | 0x0,0x0,0x16d3d3d5,0x3dceced1,0x3dc8c8cf,0x3dc4c4cc,0x3dbfbfc9,0x3dbabac7,0x29b0b0be,0x0,0x0,0x0,0x0,0x0, |
213 | 0x0,0x0,0x60d6d6d9,0xfff6f6f7,0xfff7f7f8,0xfff7f7f8,0xfff2f2f5,0xffebebf1,0xf6c7c7d5,0x489e9eaf,0x0,0x0,0x0,0x0, | 536 | 0x0,0x0,0x60d6d6d9,0xfff6f6f7,0xfff7f7f8,0xfff7f7f8,0xfff2f2f5,0xffebebf1,0xf6c7c7d5,0x489e9eaf,0x0,0x0,0x0,0x0, |
214 | 0x0,0x0,0x60d1d1d7,0xfffdfdfd,0xffffffff,0xffffffff,0xfffbfbfc,0xfff4f4f8,0xffdcdce6,0xf3d5d5e1,0x469595ab,0x0,0x0,0x0, | 537 | 0x0,0x0,0x60d1d1d7,0xfffdfdfd,0xffffffff,0xffffffff,0xfffbfbfc,0xfff4f4f8,0xffdcdce6,0xf3d5d5e1,0x469595ab,0x0,0x0,0x0, |
215 | 0x0,0x0,0x60ccccd4,0xfffcfcfd,0xffffffff,0xffffffff,0xfffbfbfc,0xfff4f4f8,0xffd9d9e4,0xfff6f6f9,0xf1cbcbda,0x3c8686a0,0x0,0x0, | 538 | 0x0,0x0,0x60ccccd4,0xfffcfcfd,0xffffffff,0xffffffff,0xfffbfbfc,0xfff4f4f8,0xffd9d9e4,0xfff6f6f9,0xf1cbcbda,0x3c8686a0,0x0,0x0, |
216 | 0x0,0x0,0x60c7c7d2,0xfffcfcfd,0xffffffff,0xffffffff,0xfffbfbfc,0xfff4f4f8,0xffd8d8e4,0xffcbcbdb,0xffc6c6d7,0xb79e9eb5,0x2000000,0x0, | 539 | 0x0,0x0,0x60c7c7d2,0xfffcfcfd,0xffffffff,0xffffffff,0xfffbfbfc,0xfff4f4f8,0xffd8d8e4,0xffcbcbdb,0xffc6c6d7,0xb79e9eb5,0x2000000,0x0, |
217 | 0x0,0x0,0x60c2c2cf,0xfffcfcfc,0xffffffff,0xffffffff,0xfffafafc,0xfff4f4f8,0xffececf3,0xffe2e2ee,0xffd3d5e2,0xbaa3a3b9,0x2000000,0x0, | 540 | 0x0,0x0,0x60c2c2cf,0xfffcfcfc,0xffffffff,0xffffffff,0xfffafafc,0xfff4f4f8,0xffececf3,0xffe2e2ee,0xffd3d5e2,0xbaa3a3b9,0x2000000,0x0, |
218 | 0x0,0x0,0x60bcbccc,0xfffbfbfc,0xffffffff,0xffffffff,0xfff9f9fc,0xfff0f0f6,0xffe7e7f1,0xffe4e4ef,0xffd8dae7,0xbaa0a0b7,0x2000000,0x0, | 541 | 0x0,0x0,0x60bcbccc,0xfffbfbfc,0xffffffff,0xffffffff,0xfff9f9fc,0xfff0f0f6,0xffe7e7f1,0xffe4e4ef,0xffd8dae7,0xbaa0a0b7,0x2000000,0x0, |
219 | 0x0,0x0,0x60b7b7ca,0xfffbfbfc,0xfffbfbfd,0xfff3f3f8,0xffeeeef5,0xffececf3,0xffe9e9f2,0xffe6e6f0,0xffd7d9e6,0xba9f9fb7,0x2000000,0x0, | 542 | 0x0,0x0,0x60b7b7ca,0xfffbfbfc,0xfffbfbfd,0xfff3f3f8,0xffeeeef5,0xffececf3,0xffe9e9f2,0xffe6e6f0,0xffd7d9e6,0xba9f9fb7,0x2000000,0x0, |
220 | 0x0,0x0,0x60b1b1c7,0xfff7f7fa,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffeeeef5,0xffececf3,0xffe9e9f2,0xffd6d8e6,0xba9d9db6,0x2000000,0x0, | 543 | 0x0,0x0,0x60b1b1c7,0xfff7f7fa,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffeeeef5,0xffececf3,0xffe9e9f2,0xffd6d8e6,0xba9d9db6,0x2000000,0x0, |
221 | 0x0,0x0,0x60acacc4,0xfff7f7f9,0xfff8f8fb,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffeeeef5,0xffebebf3,0xffdbdde9,0xba9b9bb5,0x2000000,0x0, | 544 | 0x0,0x0,0x60acacc4,0xfff7f7f9,0xfff8f8fb,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffeeeef5,0xffebebf3,0xffdbdde9,0xba9b9bb5,0x2000000,0x0, |
222 | 0x0,0x0,0x60a7a7c1,0xfff9f9fb,0xfffbfbfc,0xfff8f8fb,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffeeeef5,0xffd4d7e5,0xba9a9ab5,0x2000000,0x0, | 545 | 0x0,0x0,0x60a7a7c1,0xfff9f9fb,0xfffbfbfc,0xfff8f8fb,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffeeeef5,0xffd4d7e5,0xba9a9ab5,0x2000000,0x0, |
223 | 0x0,0x0,0x60a1a1bf,0xfffafafc,0xfffdfdfe,0xfffbfbfc,0xfff8f8fb,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffdbdeea,0xba9898b4,0x2000000,0x0, | 546 | 0x0,0x0,0x60a1a1bf,0xfffafafc,0xfffdfdfe,0xfffbfbfc,0xfff8f8fb,0xfff6f6f9,0xfff3f3f8,0xfff1f1f6,0xffdbdeea,0xba9898b4,0x2000000,0x0, |
224 | 0x0,0x0,0x609b9bbc,0xfff2f2f6,0xfff6f6f9,0xfff4f4f8,0xfff2f2f7,0xffefeff5,0xffececf3,0xffeaeaf2,0xffd4d6e6,0xba9292b0,0x2000000,0x0, | 547 | 0x0,0x0,0x609b9bbc,0xfff2f2f6,0xfff6f6f9,0xfff4f4f8,0xfff2f2f7,0xffefeff5,0xffececf3,0xffeaeaf2,0xffd4d6e6,0xba9292b0,0x2000000,0x0, |
225 | 0x0,0x0,0x1d7c7c9c,0x6072728d,0x616f6f8b,0x616b6b89,0x61686887,0x61646485,0x61606083,0x615d5d82,0x61595980,0x47444468,0x1000000,0x0 | 548 | 0x0,0x0,0x1d7c7c9c,0x6072728d,0x616f6f8b,0x616b6b89,0x61686887,0x61646485,0x61606083,0x615d5d82,0x61595980,0x47444468,0x1000000,0x0 |
226 | }; | 549 | }; |
227 | 550 | ||
228 | static const QRgb DocumentTypeExcel_data[] = { | 551 | static const QRgb DocumentTypeExcel_data[] = { |
229 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5, | 552 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5, |
230 | 0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xde9daac1,0x0,0x0,0x0,0x0,0x0, | 553 | 0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xde9daac1,0x0,0x0,0x0,0x0,0x0, |
231 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffbffff,0xffffffff, | 554 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffbffff,0xffffffff, |
232 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff5faff,0xffedf3fe,0xffe4ebf9,0xffd8e1f2,0xffc2d0e9,0xe0a7b2c4, | 555 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff5faff,0xffedf3fe,0xffe4ebf9,0xffd8e1f2,0xffc2d0e9,0xe0a7b2c4, |
233 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | 556 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, |
234 | 0x0,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff,0xfff2f7ff,0xffeaf1fd, | 557 | 0x0,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff,0xfff2f7ff,0xffeaf1fd, |
235 | 0xffe1e9f7,0xffd5dff0,0xffbfcce3,0xffebf4ff,0xe6a2aec1,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0, | 558 | 0xffe1e9f7,0xffd5dff0,0xffbfcce3,0xffebf4ff,0xe6a2aec1,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0, |
236 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffe5e5e5,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, | 559 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffe5e5e5,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, |
237 | 0xffdcdcdc,0xffd8dcdc,0xffc6cace,0xffedf4fe,0xffe6edfa,0xffd9e2f2,0xffc2cee5,0xfff0f6ff,0xffdce7f9,0xe3a1adc3,0x0,0x0,0x0,0x0, | 560 | 0xffdcdcdc,0xffd8dcdc,0xffc6cace,0xffedf4fe,0xffe6edfa,0xffd9e2f2,0xffc2cee5,0xfff0f6ff,0xffdce7f9,0xe3a1adc3,0x0,0x0,0x0,0x0, |
238 | 0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff, | 561 | 0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff, |
239 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xffc4c7ca,0xfff1f7ff,0xffe9effc,0xffdce5f4,0xffc4d0e6,0xffffffff,0xffe8eefb,0xffdbe5f9, | 562 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xffc4c7ca,0xfff1f7ff,0xffe9effc,0xffdce5f4,0xffc4d0e6,0xffffffff,0xffe8eefb,0xffdbe5f9, |
240 | 0xe8a4afc5,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, | 563 | 0xe8a4afc5,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, |
241 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffc5c9ca,0xfff3f9ff,0xffebf1fd,0xffdfe7f6, | 564 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffc5c9ca,0xfff3f9ff,0xffebf1fd,0xffdfe7f6, |
242 | 0xffc6d1e5,0xffffffff,0xfffdffff,0xffecf2fd,0xffdee9fb,0xe3a4b0c4,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0, | 565 | 0xffc6d1e5,0xffffffff,0xfffdffff,0xffecf2fd,0xffdee9fb,0xe3a4b0c4,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0, |
243 | 0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 566 | 0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
244 | 0xffc7caca,0xfff5f9ff,0xffedf3fe,0xffe3ebf9,0xffbecbe1,0xfff3f5fb,0xffecf2f9,0xffe4ebf7,0xffd8e1f0,0xffd0dcf1,0xe99eabc1,0x0,0x0,0xffffff, | 567 | 0xffc7caca,0xfff5f9ff,0xffedf3fe,0xffe3ebf9,0xffbecbe1,0xfff3f5fb,0xffecf2f9,0xffe4ebf7,0xffd8e1f0,0xffd0dcf1,0xe99eabc1,0x0,0x0,0xffffff, |
245 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, | 568 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, |
246 | 0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffbfc1c1,0xffc3c6ca,0xffbec2ca,0xffb7bdc7,0xff9ea8b7,0xff78869c,0xff78869c,0xff78869c,0xff78869c,0xff808fa6, | 569 | 0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffbfc1c1,0xffc3c6ca,0xffbec2ca,0xffb7bdc7,0xff9ea8b7,0xff78869c,0xff78869c,0xff78869c,0xff78869c,0xff808fa6, |
247 | 0xff98a9c5,0xff98a9c5,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc, | 570 | 0xff98a9c5,0xff98a9c5,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc, |
248 | 0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc3c8cc,0xffccd4e0,0xffc6d0e0,0xffc1cbdf,0xffbcc8dc,0xffb9c5d9, | 571 | 0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc3c8cc,0xffccd4e0,0xffc6d0e0,0xffc1cbdf,0xffbcc8dc,0xffb9c5d9, |
249 | 0xffb1bdd4,0xff9faec8,0xff96a5c2,0xff93a0b7,0xffaebedb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | 572 | 0xffb1bdd4,0xff9faec8,0xff96a5c2,0xff93a0b7,0xffaebedb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, |
250 | 0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffccd5e0, | 573 | 0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffccd5e0, |
251 | 0xffc7d2e0,0xffc2cddf,0xffbcc8dc,0xffb7c3d8,0xffa8b4ce,0xff9caac7,0xff99a9c5,0xff97a3b9,0xffb5c5e0,0xff8495b1,0x33000000,0xffffff,0x0,0x0, | 574 | 0xffc7d2e0,0xffc2cddf,0xffbcc8dc,0xffb7c3d8,0xffa8b4ce,0xff9caac7,0xff99a9c5,0xff97a3b9,0xffb5c5e0,0xff8495b1,0x33000000,0xffffff,0x0,0x0, |
252 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0, | 575 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0, |
253 | 0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffcdd7e0,0xffc7d2e0,0xffc4cfe0,0xffbec9dd,0xffafbcd2,0xffa3b2cc,0xffa2b0ca,0xff9fafc9,0xff9da8bd,0xffbdcbe5,0xff8495b1, | 576 | 0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffcdd7e0,0xffc7d2e0,0xffc4cfe0,0xffbec9dd,0xffafbcd2,0xffa3b2cc,0xffa2b0ca,0xff9fafc9,0xff9da8bd,0xffbdcbe5,0xff8495b1, |
254 | 0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffc5c8cc,0xffc5c8cc, | 577 | 0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffc5c8cc,0xffc5c8cc, |
255 | 0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffbfc0c2,0xffc3c8cc,0xffbdc4cc,0xffb4bcca,0xffa8b1c2,0xffa1abbe,0xff9ea9bb,0xff9ba6bb, | 578 | 0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffbfc0c2,0xffc3c8cc,0xffbdc4cc,0xffb4bcca,0xffa8b1c2,0xffa1abbe,0xff9ea9bb,0xff9ba6bb, |
256 | 0xff9aa4b9,0xff9fa9bb,0xffc3d0e8,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, | 579 | 0xff9aa4b9,0xff9fa9bb,0xffc3d0e8,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, |
257 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffdadcdc,0xfff5faff,0xffeaf0fd,0xffdce5f5, | 580 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffdadcdc,0xfff5faff,0xffeaf0fd,0xffdce5f5, |
258 | 0xffd6e0f1,0xffd3ddee,0xffd0dbed,0xffced9ec,0xffccd7ea,0xffafb9ca,0xffc8d5ec,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0, | 581 | 0xffd6e0f1,0xffd3ddee,0xffd0dbed,0xffced9ec,0xffccd7ea,0xffafb9ca,0xffc8d5ec,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0, |
259 | 0x0,0x506ab5e6,0x8f52b2ec,0xff66baec,0xff60c5f8,0xff1bb1f9,0xff3abdf9,0xff54cafb,0xff50ceff,0xff7fdeff,0xffcff3ff,0xffffffff,0xffffffff,0xfffcffff, | 582 | 0x0,0x506ab5e6,0x8f52b2ec,0xff66baec,0xff60c5f8,0xff1bb1f9,0xff3abdf9,0xff54cafb,0xff50ceff,0xff7fdeff,0xffcff3ff,0xffffffff,0xffffffff,0xfffcffff, |
260 | 0xffd1d6dc,0xffe9effc,0xffdfe8f6,0xffdbe4f3,0xffdae3f3,0xffd7e0f1,0xffd5dff0,0xffd2dcef,0xffd0dbed,0xffb3bdcc,0xffcedaf0,0xff8495b1,0x33000000,0xffffff, | 583 | 0xffd1d6dc,0xffe9effc,0xffdfe8f6,0xffdbe4f3,0xffdae3f3,0xffd7e0f1,0xffd5dff0,0xffd2dcef,0xffd0dbed,0xffb3bdcc,0xffcedaf0,0xff8495b1,0x33000000,0xffffff, |
261 | 0x0,0x0,0x106ab0e6,0x806ab2e6,0xef40aaf0,0xff21a7f7,0xff00a4ff,0xff00a8ff,0xff00acff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff, | 584 | 0x0,0x0,0x106ab0e6,0x806ab2e6,0xef40aaf0,0xff21a7f7,0xff00a4ff,0xff00a8ff,0xff00acff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff, |
262 | 0xff00c2ff,0xff30d1ff,0xffbceffc,0xfff4f9ff,0xffc9cfd9,0xffe4ecf9,0xffe1e9f7,0xffdfe7f6,0xffdde5f4,0xffdbe4f3,0xffd9e2f3,0xffd7e1f2,0xffd4def0,0xffb7bece, | 585 | 0xff00c2ff,0xff30d1ff,0xffbceffc,0xfff4f9ff,0xffc9cfd9,0xffe4ecf9,0xffe1e9f7,0xffdfe7f6,0xffdde5f4,0xffdbe4f3,0xffd9e2f3,0xffd7e1f2,0xffd4def0,0xffb7bece, |
263 | 0xffd2def2,0xff8495b1,0x33000000,0xffffff,0x0,0x306aafe6,0xdf53aceb,0xff14a0fa,0xff009fff,0xff00a3ff,0xff00a7ff,0xff00aaff,0xff00aeff,0xff00b2ff, | 586 | 0xffd2def2,0xff8495b1,0x33000000,0xffffff,0x0,0x306aafe6,0xdf53aceb,0xff14a0fa,0xff009fff,0xff00a3ff,0xff00a7ff,0xff00aaff,0xff00aeff,0xff00b2ff, |
264 | 0xff00b6ff,0xff00b9ff,0xff00bdff,0xff00c1ff,0xff00c5ff,0xff00c8ff,0xff14ccfa,0xff74d0e7,0xffb2bec9,0xffc6ccd7,0xffc5ccd7,0xffc3cad6,0xffc2c9d5,0xffbfc6d3, | 587 | 0xff00b6ff,0xff00b9ff,0xff00bdff,0xff00c1ff,0xff00c5ff,0xff00c8ff,0xff14ccfa,0xff74d0e7,0xffb2bec9,0xffc6ccd7,0xffc5ccd7,0xffc3cad6,0xffc2c9d5,0xffbfc6d3, |
265 | 0xffbec5d2,0xffbdc4d1,0xffbac2d0,0xffb2bac7,0xffd5e0f4,0xff8495b1,0x33000000,0xffffff,0x3047a6ee,0xef55abeb,0xff079bfd,0xff009eff,0xff00a1ff,0xff00a5ff, | 588 | 0xffbec5d2,0xffbdc4d1,0xffbac2d0,0xffb2bac7,0xffd5e0f4,0xff8495b1,0x33000000,0xffffff,0x3047a6ee,0xef55abeb,0xff079bfd,0xff009eff,0xff00a1ff,0xff00a5ff, |
266 | 0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bcff,0xff00c0ff,0xff00c3ff,0xff00c7ff,0xff00cbff,0xff00cfff,0xff07d2fd,0xff7cd2e5,0xffeaf1fc, | 589 | 0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bcff,0xff00c0ff,0xff00c3ff,0xff00c7ff,0xff00cbff,0xff00cfff,0xff07d2fd,0xff7cd2e5,0xffeaf1fc, |
267 | 0xffe7eefb,0xffe4ecf9,0xffe2eaf8,0xffe1e9f8,0xffdee6f5,0xffdde6f4,0xffdce5f4,0xffbcc4d1,0xffd9e3f6,0xff8495b1,0x33000000,0xffffff,0xbf6aafe6,0xff0d9cfc, | 590 | 0xffe7eefb,0xffe4ecf9,0xffe2eaf8,0xffe1e9f8,0xffdee6f5,0xffdde6f4,0xffdce5f4,0xffbcc4d1,0xffd9e3f6,0xff8495b1,0x33000000,0xffffff,0xbf6aafe6,0xff0d9cfc, |
268 | 0xff009cff,0xff00a0ff,0xff00a4ff,0xff00a8ff,0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff,0xff00c2ff,0xff00c6ff,0xff00caff,0xff00cdff, | 591 | 0xff009cff,0xff00a0ff,0xff00a4ff,0xff00a8ff,0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff,0xff00c2ff,0xff00c6ff,0xff00caff,0xff00cdff, |
269 | 0xff00d1ff,0xff00d5ff,0xff28d7f6,0xffbbe7f4,0xffe9f0fc,0xffe7eefb,0xffe4ebf9,0xffe4ebf8,0xffe2eaf8,0xffdfe7f7,0xffdee6f5,0xffbec6d2,0xffdbe5f7,0xff8495b1, | 592 | 0xff00d1ff,0xff00d5ff,0xff28d7f6,0xffbbe7f4,0xffe9f0fc,0xffe7eefb,0xffe4ebf9,0xffe4ebf8,0xffe2eaf8,0xffdfe7f7,0xffdee6f5,0xffbec6d2,0xffdbe5f7,0xff8495b1, |
270 | 0x33000000,0xffffff,0xff42a7ef,0xff009bff,0xff009fff,0xff00a3ff,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b2ff,0xff00b5ff,0xff00b9ff,0xff00bdff,0xff00c1ff, | 593 | 0x33000000,0xffffff,0xff42a7ef,0xff009bff,0xff009fff,0xff00a3ff,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b2ff,0xff00b5ff,0xff00b9ff,0xff00bdff,0xff00c1ff, |
271 | 0xff00c4ff,0xff00c8ff,0xff00ccff,0xff00d0ff,0xff00d4ff,0xff00d7ff,0xff00dbff,0xff93dfec,0xffebf1fd,0xffe8effc,0xffe7eefb,0xffe5ecf9,0xffe3ebf9,0xffe2eaf8, | 594 | 0xff00c4ff,0xff00c8ff,0xff00ccff,0xff00d0ff,0xff00d4ff,0xff00d7ff,0xff00dbff,0xff93dfec,0xffebf1fd,0xffe8effc,0xffe7eefb,0xffe5ecf9,0xffe3ebf9,0xffe2eaf8, |
272 | 0xffe0e7f6,0xffc0c7d4,0xffdce6f8,0xff8495b1,0x33000000,0xffffff,0xff3ca7f1,0xff009dff,0xff00a1ff,0xff00a5ff,0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff, | 595 | 0xffe0e7f6,0xffc0c7d4,0xffdce6f8,0xff8495b1,0x33000000,0xffffff,0xff3ca7f1,0xff009dff,0xff00a1ff,0xff00a5ff,0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff, |
273 | 0xff00b8ff,0xff00d0af,0xff9f7751,0xffbf5d53,0xffbf5951,0xffbf554f,0xffbf524d,0xffbf4e4b,0xffbf4b49,0xffbf4747,0xffbf4345,0xffd19596,0xffcad1db,0xffcacfd9, | 596 | 0xff00b8ff,0xff00d0af,0xff9f7751,0xffbf5d53,0xffbf5951,0xffbf554f,0xffbf524d,0xffbf4e4b,0xffbf4b49,0xffbf4747,0xffbf4345,0xffd19596,0xffcad1db,0xffcacfd9, |
274 | 0xffc8ced8,0xffc6ccd8,0xffc4cbd6,0xffc3c9d5,0xffc1c8d5,0xffb9c0cb,0xffdee8fa,0xff8495b1,0x33000000,0xffffff,0xff5ab0e8,0xff00a0ff,0xff00a4ff,0xff00a8ff, | 597 | 0xffc8ced8,0xffc6ccd8,0xffc4cbd6,0xffc3c9d5,0xffc1c8d5,0xffb9c0cb,0xffdee8fa,0xff8495b1,0x33000000,0xffffff,0xff5ab0e8,0xff00a0ff,0xff00a4ff,0xff00a8ff, |
275 | 0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00baff,0xff00ee40,0xff40d208,0xffff4d21,0xffff471f,0xffff411c,0xffff3b19,0xffff3517,0xffff2e14,0xffff2812, | 598 | 0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00baff,0xff00ee40,0xff40d208,0xffff4d21,0xffff471f,0xffff411c,0xffff3b19,0xffff3517,0xffff2e14,0xffff2812, |
276 | 0xfffd3523,0xffde8179,0xffc4cee0,0xffc1cbdf,0xffbfc9de,0xffbdc8dc,0xffbbc7db,0xffbbc6db,0xffb8c4d9,0xffb6becd,0xffdfe9fa,0xff8495b1,0x33000000,0xffffff, | 599 | 0xfffd3523,0xffde8179,0xffc4cee0,0xffc1cbdf,0xffbfc9de,0xffbdc8dc,0xffbbc7db,0xffbbc6db,0xffb8c4d9,0xffb6becd,0xffdfe9fa,0xff8495b1,0x33000000,0xffffff, |
277 | 0xff53acd7,0xff2eabf4,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b1ff,0xff00b5ff,0xff00b9ff,0xff00c5df,0xff00fe00,0xff00fe00,0xffbf871f,0xffff5c28,0xffff5625, | 600 | 0xff53acd7,0xff2eabf4,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b1ff,0xff00b5ff,0xff00b9ff,0xff00c5df,0xff00fe00,0xff00fe00,0xffbf871f,0xffff5c28,0xffff5625, |
278 | 0xffff4f22,0xffff4920,0xffff431d,0xfffe411f,0xfff86a53,0xffb77064,0xffc3cddf,0xffc1ccdf,0xffbfcade,0xffbec9dc,0xffbdc8dc,0xffbbc6da,0xffbac5da,0xffb7bfce, | 601 | 0xffff4f22,0xffff4920,0xffff431d,0xfffe411f,0xfff86a53,0xffb77064,0xffc3cddf,0xffc1ccdf,0xffbfcade,0xffbec9dc,0xffbdc8dc,0xffbbc6da,0xffbac5da,0xffb7bfce, |
279 | 0xffdfe9fa,0xff8495b1,0x33000000,0xffffff,0xcc3495b9,0xff53b0e2,0xff28aff6,0xff00acff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bbff,0xff00d790,0xff00f802, | 602 | 0xffdfe9fa,0xff8495b1,0x33000000,0xffffff,0xcc3495b9,0xff53b0e2,0xff28aff6,0xff00acff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bbff,0xff00d790,0xff00f802, |
280 | 0xff00f702,0xff20e308,0xffff7031,0xffff6a2e,0xffff642b,0xffff5e29,0xfffe5b2b,0xfff87f5f,0xffbb5c45,0xffa38486,0xffc4cfe0,0xffc2ccdf,0xffbfcade,0xffbec9de, | 603 | 0xff00f702,0xff20e308,0xffff7031,0xffff6a2e,0xffff642b,0xffff5e29,0xfffe5b2b,0xfff87f5f,0xffbb5c45,0xffa38486,0xffc4cfe0,0xffc2ccdf,0xffbfcade,0xffbec9de, |
281 | 0xffbdc8dc,0xffbbc7db,0xffb9c5d9,0xffb8c0ce,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x5c236a91,0xff3097b8,0xff4faad0,0xff35b6f3,0xff00b3ff,0xff00b6ff, | 604 | 0xffbdc8dc,0xffbbc7db,0xffb9c5d9,0xffb8c0ce,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x5c236a91,0xff3097b8,0xff4faad0,0xff35b6f3,0xff00b3ff,0xff00b6ff, |
282 | 0xff00baff,0xff00beff,0xff00d137,0xff00d50a,0xff00d30a,0xff00d10a,0xff80a722,0xffff7f37,0xffff7934,0xfffc814a,0xfff1906b,0xffb15b41,0xff8b4d40,0xff9eabb9, | 605 | 0xff00baff,0xff00beff,0xff00d137,0xff00d50a,0xff00d30a,0xff00d10a,0xff80a722,0xffff7f37,0xffff7934,0xfffc814a,0xfff1906b,0xffb15b41,0xff8b4d40,0xff9eabb9, |
283 | 0xffb8bfcc,0xffb6becb,0xffb4bcca,0xffb3bac8,0xffb2bac8,0xffafb7c7,0xffaeb7c6,0xffb6bdc9,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xd000030,0x891f6788, | 606 | 0xffb8bfcc,0xffb6becb,0xffb4bcca,0xffb3bac8,0xffb2bac8,0xffafb7c7,0xffaeb7c6,0xffb6bdc9,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xd000030,0x891f6788, |
284 | 0xff288fae,0xff2e93b1,0xff41aad1,0xff2ab9f0,0xff0dbefc,0xff00bde2,0xff00b112,0xff00af12,0xff00ad13,0xff07ad18,0xff31ae2f,0xfff1a160,0xffed9a6a,0xffc77453, | 607 | 0xff288fae,0xff2e93b1,0xff41aad1,0xff2ab9f0,0xff0dbefc,0xff00bde2,0xff00b112,0xff00af12,0xff00ad13,0xff07ad18,0xff31ae2f,0xfff1a160,0xffed9a6a,0xffc77453, |
285 | 0xff95452f,0xff8f5548,0xffa298a0,0xffedf3fd,0xffeff5ff,0xffebf2fd,0xffeaf1fd,0xffe7eefa,0xffe6edfa,0xffe3eaf8,0xffe2eaf8,0xffc3cad6,0xffdfe9fa,0xff8495b1, | 608 | 0xff95452f,0xff8f5548,0xffa298a0,0xffedf3fd,0xffeff5ff,0xffebf2fd,0xffeaf1fd,0xffe7eefa,0xffe6edfa,0xffe3eaf8,0xffe2eaf8,0xffc3cad6,0xffdfe9fa,0xff8495b1, |
286 | 0x33000000,0xffffff,0x0,0x16000029,0x6a103f5f,0xd61e7a96,0xff1d85a0,0xff1a829c,0xff208ca8,0xff279797,0xff3c9d40,0xff429c48,0xff489b51,0xff41974f, | 609 | 0x33000000,0xffffff,0x0,0x16000029,0x6a103f5f,0xd61e7a96,0xff1d85a0,0xff1a829c,0xff208ca8,0xff279797,0xff3c9d40,0xff429c48,0xff489b51,0xff41974f, |
287 | 0xff2f8d48,0xff8a623e,0xff97432d,0xff893d29,0xff9e7773,0xffc4c3d0,0xffc8cdd5,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8, | 610 | 0xff2f8d48,0xff8a623e,0xff97432d,0xff893d29,0xff9e7773,0xffc4c3d0,0xffc8cdd5,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8, |
288 | 0xffe2eaf8,0xffc2c9d5,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0xe000022,0x35000022,0x740b3551,0xb812627c,0xe1117189,0xff1d807b, | 611 | 0xffe2eaf8,0xffc2c9d5,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0xe000022,0x35000022,0x740b3551,0xb812627c,0xe1117189,0xff1d807b, |
289 | 0xff3d9540,0xff2f8e3c,0xff218739,0xff147f36,0xff0b7a34,0xff866e58,0xffab8c8a,0xffb2b8c4,0xffd5dae5,0xffeff5fd,0xffd0d5dc,0xfff0f6ff,0xffedf3fe,0xffeaf1fd, | 612 | 0xff3d9540,0xff2f8e3c,0xff218739,0xff147f36,0xff0b7a34,0xff866e58,0xffab8c8a,0xffb2b8c4,0xffd5dae5,0xffeff5fd,0xffd0d5dc,0xfff0f6ff,0xffedf3fe,0xffeaf1fd, |
290 | 0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x2000000, | 613 | 0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x2000000, |
291 | 0x1200001b,0x2d00001f,0x4200001c,0xff9da6c1,0xffafc1ba,0xff94ac9f,0xff8ba599,0xff8ea6a1,0xffaeb2bc,0xffb6bac2,0xffc3c6cd,0xffcdd1d8,0xffd2d6dc,0xffd0d6dc, | 614 | 0x1200001b,0x2d00001f,0x4200001c,0xff9da6c1,0xffafc1ba,0xff94ac9f,0xff8ba599,0xff8ea6a1,0xffaeb2bc,0xffb6bac2,0xffc3c6cd,0xffcdd1d8,0xffd2d6dc,0xffd0d6dc, |
292 | 0xffc7ccd3,0xffcfd4dc,0xffccd1db,0xffcad0da,0xffc9cfd9,0xffc6ccd7,0xffc4cbd6,0xffc3cad6,0xffc3cad6,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff, | 615 | 0xffc7ccd3,0xffcfd4dc,0xffccd1db,0xffcad0da,0xffc9cfd9,0xffc6ccd7,0xffc4cbd6,0xffc3cad6,0xffc3cad6,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff, |
293 | 0x0,0x0,0x0,0x0,0x0,0x2000000,0x6000000,0xffc4d0e5,0xfff4fdff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff, | 616 | 0x0,0x0,0x0,0x0,0x0,0x2000000,0x6000000,0xffc4d0e5,0xfff4fdff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff, |
294 | 0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7, | 617 | 0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7, |
295 | 0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xff8495b1,0xff8495b1, | 618 | 0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xff8495b1,0xff8495b1, |
296 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1, | 619 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1, |
297 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | 620 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, |
298 | 0x0,0x0,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000, | 621 | 0x0,0x0,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000, |
299 | 0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0xffffff,0xffffff,0xffffff, | 622 | 0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0xffffff,0xffffff,0xffffff, |
300 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 623 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
301 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 624 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
302 | 0xffffff,0xffffff | 625 | 0xffffff,0xffffff |
303 | }; | 626 | }; |
304 | 627 | ||
305 | static const QRgb DocumentTypeNone_data[] = { | 628 | static const QRgb DocumentTypeNone_data[] = { |
306 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5, | 629 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5, |
307 | 0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xde9daac1,0x0,0x0,0x0,0x0,0x0, | 630 | 0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xde9daac1,0x0,0x0,0x0,0x0,0x0, |
308 | 0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffbffff,0xffffffff, | 631 | 0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffbffff,0xffffffff, |
309 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff5faff,0xffedf3fe,0xffe4ebf9,0xffd8e1f2,0xffc2d0e9,0xe0a7b2c4, | 632 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff5faff,0xffedf3fe,0xffe4ebf9,0xffd8e1f2,0xffc2d0e9,0xe0a7b2c4, |
310 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 633 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
311 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff,0xfff2f7ff,0xffeaf1fd, | 634 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff,0xfff2f7ff,0xffeaf1fd, |
312 | 0xffe1e9f7,0xffd5dff0,0xffbfcce3,0xffebf4ff,0xe6a2aec1,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff, | 635 | 0xffe1e9f7,0xffd5dff0,0xffbfcce3,0xffebf4ff,0xe6a2aec1,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff, |
313 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 636 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
314 | 0xffffffff,0xfffbffff,0xfff5faff,0xffedf4fe,0xffe6edfa,0xffd9e2f2,0xffc2cee5,0xfff0f6ff,0xffdce7f9,0xe3a1adc3,0x0,0x0,0x0,0x0, | 637 | 0xffffffff,0xfffbffff,0xfff5faff,0xffedf4fe,0xffe6edfa,0xffd9e2f2,0xffc2cee5,0xfff0f6ff,0xffdce7f9,0xe3a1adc3,0x0,0x0,0x0,0x0, |
315 | 0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff, | 638 | 0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff, |
316 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff8fcff,0xfff1f7ff,0xffe9effc,0xffdce5f4,0xffc4d0e6,0xffffffff,0xffe8eefb,0xffdbe5f9, | 639 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff8fcff,0xfff1f7ff,0xffe9effc,0xffdce5f4,0xffc4d0e6,0xffffffff,0xffe8eefb,0xffdbe5f9, |
317 | 0xe8a4afc5,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, | 640 | 0xe8a4afc5,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, |
318 | 0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffafeff,0xfff3f9ff,0xffebf1fd,0xffdfe7f6, | 641 | 0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffafeff,0xfff3f9ff,0xffebf1fd,0xffdfe7f6, |
319 | 0xffc6d1e5,0xffffffff,0xfffdffff,0xffecf2fd,0xffdee9fb,0xe3a4b0c4,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 642 | 0xffc6d1e5,0xffffffff,0xfffdffff,0xffecf2fd,0xffdee9fb,0xe3a4b0c4,0x0,0x0,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
320 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 643 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
321 | 0xfffcffff,0xfff5f9ff,0xffedf3fe,0xffe3ebf9,0xffbecbe1,0xfff3f5fb,0xffecf2f9,0xffe4ebf7,0xffd8e1f0,0xffd0dcf1,0xe99eabc1,0x0,0x0,0xffffff, | 644 | 0xfffcffff,0xfff5f9ff,0xffedf3fe,0xffe3ebf9,0xffbecbe1,0xfff3f5fb,0xffecf2f9,0xffe4ebf7,0xffd8e1f0,0xffd0dcf1,0xe99eabc1,0x0,0x0,0xffffff, |
322 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 645 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
323 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff7fbff,0xfff0f6ff,0xffe8effc,0xffc8d4e7,0xff98a9c5,0xff98a9c5,0xff98a9c5,0xff98a9c5,0xff98a9c5, | 646 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff7fbff,0xfff0f6ff,0xffe8effc,0xffc8d4e7,0xff98a9c5,0xff98a9c5,0xff98a9c5,0xff98a9c5,0xff98a9c5, |
324 | 0xff98a9c5,0xff98a9c5,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff, | 647 | 0xff98a9c5,0xff98a9c5,0x0,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff, |
325 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff8fcff,0xfff1f6ff,0xffebf1fe,0xffe5edfa,0xffe1e9f7, | 648 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff8fcff,0xfff1f6ff,0xffebf1fe,0xffe5edfa,0xffe1e9f7, |
326 | 0xffd7e0f1,0xffc1cee4,0xffb6c4dd,0xffb4c3dc,0xffaebedb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 649 | 0xffd7e0f1,0xffc1cee4,0xffb6c4dd,0xffb4c3dc,0xffaebedb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
327 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff, | 650 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff, |
328 | 0xfff3f9ff,0xffecf3fe,0xffe5edfa,0xffdfe7f6,0xffccd6ea,0xffbecae2,0xffbbc9e0,0xffb9c6df,0xffb5c5e0,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff, | 651 | 0xfff3f9ff,0xffecf3fe,0xffe5edfa,0xffdfe7f6,0xffccd6ea,0xffbecae2,0xffbbc9e0,0xffb9c6df,0xffb5c5e0,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff, |
329 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 652 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
330 | 0xffffffff,0xffffffff,0xffffffff,0xfffaffff,0xfff3f9ff,0xffeff5ff,0xffe7eefb,0xffd5dfef,0xffc7d3e8,0xffc5d1e6,0xffc2cfe5,0xffc1cde4,0xffbdcbe5,0xff8495b1, | 653 | 0xffffffff,0xffffffff,0xffffffff,0xfffaffff,0xfff3f9ff,0xffeff5ff,0xffe7eefb,0xffd5dfef,0xffc7d3e8,0xffc5d1e6,0xffc2cfe5,0xffc1cde4,0xffbdcbe5,0xff8495b1, |
331 | 0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff, | 654 | 0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff, |
332 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff5faff,0xffe9f0fc,0xffdae2f2,0xffd0daed,0xffccd7ea,0xffc9d4e9, | 655 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff5faff,0xffe9f0fc,0xffdae2f2,0xffd0daed,0xffccd7ea,0xffc9d4e9, |
333 | 0xffc7d2e7,0xffc6d2e6,0xffc3d0e8,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, | 656 | 0xffc7d2e7,0xffc6d2e6,0xffc3d0e8,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, |
334 | 0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff5faff,0xffeaf0fd,0xffdce5f5, | 657 | 0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff5faff,0xffeaf0fd,0xffdce5f5, |
335 | 0xffd6e0f1,0xffd3ddee,0xffd0dbed,0xffced9ec,0xffccd7ea,0xffcbd7ea,0xffc8d5ec,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 658 | 0xffd6e0f1,0xffd3ddee,0xffd0dbed,0xffced9ec,0xffccd7ea,0xffcbd7ea,0xffc8d5ec,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
336 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff, | 659 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff, |
337 | 0xfff3f8ff,0xffe9effc,0xffdfe8f6,0xffdbe4f3,0xffdae3f3,0xffd7e0f1,0xffd5dff0,0xffd2dcef,0xffd0dbed,0xffd0dbed,0xffcedaf0,0xff8495b1,0x33000000,0xffffff, | 660 | 0xfff3f8ff,0xffe9effc,0xffdfe8f6,0xffdbe4f3,0xffdae3f3,0xffd7e0f1,0xffd5dff0,0xffd2dcef,0xffd0dbed,0xffd0dbed,0xffcedaf0,0xff8495b1,0x33000000,0xffffff, |
338 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 661 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
339 | 0xffffffff,0xffffffff,0xffffffff,0xfff4f9ff,0xffe9f0fc,0xffe4ecf9,0xffe1e9f7,0xffdfe7f6,0xffdde5f4,0xffdbe4f3,0xffd9e2f3,0xffd7e1f2,0xffd4def0,0xffd4ddef, | 662 | 0xffffffff,0xffffffff,0xffffffff,0xfff4f9ff,0xffe9f0fc,0xffe4ecf9,0xffe1e9f7,0xffdfe7f6,0xffdde5f4,0xffdbe4f3,0xffd9e2f3,0xffd7e1f2,0xffd4def0,0xffd4ddef, |
340 | 0xffd2def2,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff, | 663 | 0xffd2def2,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff, |
341 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff0f6ff,0xffebf1fd,0xffe8effc,0xffe6edfa,0xffe5edfa,0xffe2eaf8,0xffe1e9f7,0xffdee6f5, | 664 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff0f6ff,0xffebf1fd,0xffe8effc,0xffe6edfa,0xffe5edfa,0xffe2eaf8,0xffe1e9f7,0xffdee6f5, |
342 | 0xffdde5f4,0xffdbe4f3,0xffd8e1f2,0xffd8e1f1,0xffd5e0f4,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 665 | 0xffdde5f4,0xffdbe4f3,0xffd8e1f2,0xffd8e1f1,0xffd5e0f4,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
343 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff2f7ff,0xfff0f6ff,0xffedf4ff,0xffecf2fe,0xffeaf1fc, | 666 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff2f7ff,0xfff0f6ff,0xffedf4ff,0xffecf2fe,0xffeaf1fc, |
344 | 0xffe7eefb,0xffe4ecf9,0xffe2eaf8,0xffe1e9f8,0xffdee6f5,0xffdde6f4,0xffdce5f4,0xffdae4f3,0xffd9e3f6,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff, | 667 | 0xffe7eefb,0xffe4ecf9,0xffe2eaf8,0xffe1e9f8,0xffdee6f5,0xffdde6f4,0xffdce5f4,0xffdae4f3,0xffd9e3f6,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff, |
345 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff6fbff,0xfff4f9ff, | 668 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff6fbff,0xfff4f9ff, |
346 | 0xfff1f7ff,0xffeef4ff,0xffeef4ff,0xffecf2fd,0xffe9f0fc,0xffe7eefb,0xffe4ebf9,0xffe4ebf8,0xffe2eaf8,0xffdfe7f7,0xffdee6f5,0xffdde6f4,0xffdbe5f7,0xff8495b1, | 669 | 0xfff1f7ff,0xffeef4ff,0xffeef4ff,0xffecf2fd,0xffe9f0fc,0xffe7eefb,0xffe4ebf9,0xffe4ebf8,0xffe2eaf8,0xffdfe7f7,0xffdee6f5,0xffdde6f4,0xffdbe5f7,0xff8495b1, |
347 | 0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff, | 670 | 0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff, |
348 | 0xffffffff,0xfff9feff,0xfff8fdff,0xfff5faff,0xfff3f8ff,0xfff1f7ff,0xffeff5ff,0xffedf3fe,0xffebf1fd,0xffe8effc,0xffe7eefb,0xffe5ecf9,0xffe3ebf9,0xffe2eaf8, | 671 | 0xffffffff,0xfff9feff,0xfff8fdff,0xfff5faff,0xfff3f8ff,0xfff1f7ff,0xffeff5ff,0xffedf3fe,0xffebf1fd,0xffe8effc,0xffe7eefb,0xffe5ecf9,0xffe3ebf9,0xffe2eaf8, |
349 | 0xffe0e7f6,0xffdfe7f6,0xffdce6f8,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, | 672 | 0xffe0e7f6,0xffdfe7f6,0xffdce6f8,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, |
350 | 0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff9fdff,0xfff8fdff,0xfff6fbff,0xfff4f9ff,0xfff2f7ff,0xfff0f6ff,0xffeef4ff,0xffebf3fe,0xffeaf0fc, | 673 | 0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff9fdff,0xfff8fdff,0xfff6fbff,0xfff4f9ff,0xfff2f7ff,0xfff0f6ff,0xffeef4ff,0xffebf3fe,0xffeaf0fc, |
351 | 0xffe8effb,0xffe6edfb,0xffe4ecf9,0xffe2e9f7,0xffe0e8f7,0xffe0e8f6,0xffdee8fa,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 674 | 0xffe8effb,0xffe6edfb,0xffe4ecf9,0xffe2e9f7,0xffe0e8f7,0xffe0e8f6,0xffdee8fa,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
352 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff9feff,0xfff9feff,0xfff6fbff,0xfff4f9ff,0xfff2f8ff, | 675 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff9feff,0xfff9feff,0xfff6fbff,0xfff4f9ff,0xfff2f8ff, |
353 | 0xfff1f7ff,0xfff0f6ff,0xffeef4ff,0xffebf1fd,0xffe9effc,0xffe6edfa,0xffe4ecf9,0xffe3ebf9,0xffe0e8f7,0xffdfe7f7,0xffdfe9fa,0xff8495b1,0x33000000,0xffffff, | 676 | 0xfff1f7ff,0xfff0f6ff,0xffeef4ff,0xffebf1fd,0xffe9effc,0xffe6edfa,0xffe4ecf9,0xffe3ebf9,0xffe0e8f7,0xffdfe7f7,0xffdfe9fa,0xff8495b1,0x33000000,0xffffff, |
354 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff9feff, | 677 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff9feff, |
355 | 0xfff8fdff,0xfff6fbff,0xfff4f9ff,0xfff3f8ff,0xfff2f7ff,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8,0xffe2eaf8,0xffe1e9f8, | 678 | 0xfff8fdff,0xfff6fbff,0xfff4f9ff,0xfff3f8ff,0xfff2f7ff,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8,0xffe2eaf8,0xffe1e9f8, |
356 | 0xffdfe9fa,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff, | 679 | 0xffdfe9fa,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff, |
357 | 0xffffffff,0xffffffff,0xfffbffff,0xfff9feff,0xfff7fdff,0xfff7fcff,0xfff4f9ff,0xfff3f8ff,0xfff2f8ff,0xfff0f6ff,0xffeff5ff,0xffecf2fe,0xffe9f0fc,0xffe8effc, | 680 | 0xffffffff,0xffffffff,0xfffbffff,0xfff9feff,0xfff7fdff,0xfff7fcff,0xfff4f9ff,0xfff3f8ff,0xfff2f8ff,0xfff0f6ff,0xffeff5ff,0xffecf2fe,0xffe9f0fc,0xffe8effc, |
358 | 0xffe6edfa,0xffe4ecf9,0xffe1e9f7,0xffe2eaf8,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 681 | 0xffe6edfa,0xffe4ecf9,0xffe1e9f7,0xffe2eaf8,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
359 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfffeffff,0xfffafeff,0xfff9feff,0xfff8fdff,0xfff6fbff,0xfff5faff,0xfff3f8ff,0xfff1f7ff,0xfff0f6ff, | 682 | 0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfffeffff,0xfffafeff,0xfff9feff,0xfff8fdff,0xfff6fbff,0xfff5faff,0xfff3f8ff,0xfff1f7ff,0xfff0f6ff, |
360 | 0xffeef4ff,0xffecf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3eaf9,0xffe1e9f7,0xffe2eaf8,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff, | 683 | 0xffeef4ff,0xffecf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3eaf9,0xffe1e9f7,0xffe2eaf8,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff, |
361 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfffeffff,0xfffafeff,0xfff9feff,0xfff8fdff,0xfff5faff, | 684 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfffeffff,0xfffafeff,0xfff9feff,0xfff8fdff,0xfff5faff, |
362 | 0xfff5faff,0xfff3f8ff,0xfff1f7ff,0xfff0f6ff,0xffeff5ff,0xffebf2fd,0xffeaf1fd,0xffe7eefa,0xffe6edfa,0xffe3eaf8,0xffe2eaf8,0xffe2eaf8,0xffdfe9fa,0xff8495b1, | 685 | 0xfff5faff,0xfff3f8ff,0xfff1f7ff,0xfff0f6ff,0xffeff5ff,0xffebf2fd,0xffeaf1fd,0xffe7eefa,0xffe6edfa,0xffe3eaf8,0xffe2eaf8,0xffe2eaf8,0xffdfe9fa,0xff8495b1, |
363 | 0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfffcffff, | 686 | 0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfffcffff, |
364 | 0xfffafeff,0xfff8fdff,0xfff7fcff,0xfff5faff,0xfff4f9ff,0xfff2f7ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8, | 687 | 0xfffafeff,0xfff8fdff,0xfff7fcff,0xfff5faff,0xfff4f9ff,0xfff2f7ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8, |
365 | 0xffe2eaf8,0xffe1e9f7,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, | 688 | 0xffe2eaf8,0xffe1e9f7,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5, |
366 | 0xfffcffff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff,0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd, | 689 | 0xfffcffff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff,0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd, |
367 | 0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7,0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 690 | 0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7,0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
368 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff,0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff, | 691 | 0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff,0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff, |
369 | 0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7,0xffe0eafc,0xff8495b1,0x33000000,0xffffff, | 692 | 0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7,0xffe0eafc,0xff8495b1,0x33000000,0xffffff, |
370 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfff4fdff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff, | 693 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xfff4fdff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff, |
371 | 0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7, | 694 | 0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7, |
372 | 0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xff8495b1,0xff8495b1, | 695 | 0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffc4d0e5,0xff8495b1,0xff8495b1, |
373 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1, | 696 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1, |
374 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 697 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0x33000000,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
375 | 0xffffff,0x0,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000, | 698 | 0xffffff,0x0,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000, |
376 | 0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0xffffff,0xffffff,0xffffff, | 699 | 0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0xffffff,0xffffff,0xffffff, |
377 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 700 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
378 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 701 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
379 | 0xffffff,0xffffff | 702 | 0xffffff,0xffffff |
380 | }; | 703 | }; |
381 | 704 | ||
382 | static const QRgb DocumentTypePowerPoint_data[] = { | 705 | static const QRgb DocumentTypePowerPoint_data[] = { |
383 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 706 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
384 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 707 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
385 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000500,0x2000500,0x5000500,0x9000500,0x10000500,0x18000500,0x22000500, | 708 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000200,0x2000200,0x5000200,0x9000200,0x10000200,0x18000200,0x22000200, |
386 | 0x2c000500,0x36000500,0x3f000500,0x45000500,0x4a000500,0x4d000500,0x4e000500,0x4e000500,0x4e000500,0x4c000500,0x49000500,0x45000500,0x3f000500,0x37000500, | 709 | 0x2c000200,0x36000200,0x3f000200,0x45000200,0x4a000200,0x4d000200,0x4e000200,0x4e000200,0x4e000200,0x4c000200,0x49000200,0x45000200,0x3f000200,0x37000200, |
387 | 0x2e000500,0x25000500,0x1c000500,0x13000500,0xd000500,0x8000500,0x4000500,0x2000500,0xffffff,0xffffff,0xffffff,0x1000500,0x3000500,0x7000500, | 710 | 0x2e000200,0x25000200,0x1c000200,0x13000200,0xd000200,0x8000200,0x4000200,0x2000200,0xffffff,0xffffff,0xffffff,0x1000200,0x3000200,0x7000200, |
388 | 0xd000500,0x16000500,0x22000500,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000, | 711 | 0xd000200,0x16000200,0x22000200,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000, |
389 | 0xff000000,0xff000000,0xfd373737,0x72545754,0x44000500,0x37000500,0x2b000500,0x1f000500,0x15000500,0xd000500,0x8000500,0x4000500,0xffffff,0xffffff, | 712 | 0xff000000,0xff000000,0xfd282828,0x72434543,0x44000200,0x37000200,0x2b000200,0x1f000200,0x15000200,0xd000200,0x8000200,0x4000200,0xffffff,0xffffff, |
390 | 0xffffff,0x1000500,0x4000500,0x9000500,0x11000500,0x1d000500,0x2c000500,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffefefe, | 713 | 0xffffff,0x1000200,0x4000200,0x9000200,0x11000200,0x1d000200,0x2c000200,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffefefe, |
391 | 0xfffefefe,0xfffdfdfd,0xfffafafa,0xfff5f5f5,0xffededed,0xffe3e3e3,0xffd1d1d1,0xfd363636,0x76404240,0x4e000500,0x3d000500,0x2e000500,0x21000500,0x16000500, | 714 | 0xfffefefe,0xfffcfcfc,0xfff9f9f9,0xfff3f3f3,0xffe9e9e9,0xffdedede,0xffc8c8c8,0xfd272727,0x76303230,0x4e000200,0x3d000200,0x2e000200,0x21000200,0x16000200, |
392 | 0xe000500,0x8000500,0xffffff,0xffffff,0xffffff,0x2000500,0x5000500,0xb000500,0x15000500,0x24000500,0x36000500,0xff000000,0xffffffff,0xffffffff, | 715 | 0xe000200,0x8000200,0xffffff,0xffffff,0xffffff,0x2000200,0x5000200,0xb000200,0x15000200,0x24000200,0x36000200,0xff000000,0xffffffff,0xffffffff, |
393 | 0xffffffff,0xffffffff,0xfffefefe,0xfffefefe,0xfffdfdfd,0xfffdfdfd,0xfff8f8f8,0xfff0f0f0,0xffe3e3e3,0xffd4d4d4,0xfffefefe,0xffbebebe,0xfd383838,0x803e403e, | 716 | 0xffffffff,0xffffffff,0xfffefefe,0xfffefefe,0xfffdfdfd,0xfffcfcfc,0xfff6f6f6,0xffededed,0xffdedede,0xffcccccc,0xfffefefe,0xffb3b3b3,0xfd292929,0x802e302e, |
394 | 0x53000500,0x40000500,0x2f000500,0x21000500,0x16000500,0xd000500,0xffffff,0xffffff,0xffffff,0x2000500,0x6000500,0xd000500,0x18000500,0x29000500, | 717 | 0x53000200,0x40000200,0x2f000200,0x21000200,0x16000200,0xd000200,0xffffff,0xffffff,0xffffff,0x2000200,0x6000200,0xd000200,0x18000200,0x29000200, |
395 | 0x3f000500,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffefefe,0xfffdfdfd,0xfffdfdfd,0xfffbfbfb,0xfff6f6f6,0xffededed,0xffdbdbdb,0xffc6c6c6, | 718 | 0x3f000200,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffefefe,0xfffdfdfd,0xfffcfcfc,0xfffafafa,0xfff4f4f4,0xffe9e9e9,0xffd4d4d4,0xffbcbcbc, |
396 | 0xffffffff,0xfffdfdfd,0xffaeaeae,0xfd3b3b3b,0x7e353735,0x55000500,0x41000500,0x2f000500,0x20000500,0x15000500,0xffffff,0xffffff,0x1000500,0x2000500, | 719 | 0xffffffff,0xfffcfcfc,0xffa1a1a1,0xfd2b2b2b,0x7e262826,0x55000200,0x41000200,0x2f000200,0x20000200,0x15000200,0xffffff,0xffffff,0x1000200,0x2000200, |
397 | 0x6000500,0xe000500,0x1b000500,0x2d000500,0x45000500,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfd,0xfffdfdfd,0xfffcfcfc,0xfffafafa, | 720 | 0x6000200,0xe000200,0x1b000200,0x2d000200,0x45000200,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfd,0xfffdfdfd,0xfffbfbfb,0xfff9f9f9, |
398 | 0xfff4f4f4,0xffe8e8e8,0xffd5d5d5,0xffbababa,0xffffffff,0xffffffff,0xfffdfdfd,0xffa3a3a3,0xfd3e3e3e,0x7a2a2d2a,0x55000500,0x40000500,0x2d000500,0x1e000500, | 721 | 0xfff2f2f2,0xffe4e4e4,0xffcdcdcd,0xffaeaeae,0xffffffff,0xffffffff,0xfffcfcfc,0xff949494,0xfd2e2e2e,0x7a1d1f1d,0x55000200,0x40000200,0x2d000200,0x1e000200, |
399 | 0xffffff,0xffffff,0x1000500,0x2000500,0x7000500,0xf000500,0x1d000500,0x30000500,0x4a000500,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 722 | 0xffffff,0xffffff,0x1000200,0x2000200,0x7000200,0xf000200,0x1d000200,0x30000200,0x4a000200,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
400 | 0xfffdfdfd,0xfffdfdfd,0xfffcfcfc,0xfff8f8f8,0xfff3f3f3,0xffe7e7e7,0xffd1d1d1,0xffb4b4b4,0xffffffff,0xffffffff,0xffffffff,0xfffafafa,0xff9d9d9d,0xfd454545, | 723 | 0xfffdfdfd,0xfffcfcfc,0xfffbfbfb,0xfff7f7f7,0xfff0f0f0,0xffe2e2e2,0xffc8c8c8,0xffa7a7a7,0xffffffff,0xffffffff,0xffffffff,0xfff9f9f9,0xff8e8e8e,0xfd343434, |
401 | 0x782b2b2b,0x52000500,0x3c000500,0x29000500,0xffffff,0xffffff,0x1000500,0x3000500,0x7000500,0x10000500,0x1e000500,0x32000500,0x4d000500,0xff000000, | 724 | 0x781e1e1e,0x52000200,0x3c000200,0x29000200,0xffffff,0xffffff,0x1000200,0x3000200,0x7000200,0x10000200,0x1e000200,0x32000200,0x4d000200,0xff000000, |
402 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfd,0xfffcfcfc,0xfffbfbfb,0xfff8f8f8,0xfff3f3f3,0xffe6e6e6,0xffd1d1d1,0xffb3b3b3,0xffffffff,0xffffffff, | 725 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcfcfc,0xfffbfbfb,0xfffafafa,0xfff7f7f7,0xfff0f0f0,0xffe1e1e1,0xffc8c8c8,0xffa6a6a6,0xffffffff,0xffffffff, |
403 | 0xffffffff,0xffffffff,0xfff9f9f9,0xff9e9e9e,0xfc4c4c4c,0x701f231f,0x4c000500,0x36000500,0x1000000,0x2000000,0x5000000,0x9000000,0xf000000,0x18000000, | 726 | 0xffffffff,0xffffffff,0xfff8f8f8,0xff8f8f8f,0xfc3b3b3b,0x70141714,0x4c000200,0x36000200,0x1000000,0x2000000,0x5000000,0x9000000,0xf000000,0x18000000, |
404 | 0x27000000,0x3b000000,0x55000600,0xff000000,0xfff7f7f7,0xfff7f7f7,0xfff7f7f7,0xfff8f8f8,0xfff6f6f6,0xfff7f7f7,0xfff7f7f7,0xfff6f6f6,0xfff2f2f2,0xffe8e8e8, | 727 | 0x27000000,0x3b000000,0x55000300,0xff000000,0xfff5f5f5,0xfff5f5f5,0xfff5f5f5,0xfff6f6f6,0xfff4f4f4,0xfff5f5f5,0xfff5f5f5,0xfff4f4f4,0xffefefef,0xffe4e4e4, |
405 | 0xffd4d4d4,0xffb9b9b9,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffbfbfb,0xffa1a1a1,0xfb545454,0x5c000500,0x42000500,0x4000000,0x7000000, | 728 | 0xffcccccc,0xffadadad,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffafafa,0xff929292,0xfb434343,0x5c000200,0x42000200,0x4000000,0x7000000, |
406 | 0xd000000,0x15000000,0x1d000000,0x29000000,0x38000000,0x4c000000,0x64000000,0xff000000,0xffe5e5e5,0xffe5e5e5,0xffe7e7e7,0xffe8e8e8,0xffe8e8e8,0xffececec, | 729 | 0xd000000,0x15000000,0x1d000000,0x29000000,0x38000000,0x4c000000,0x64000000,0xff000000,0xffe0e0e0,0xffe0e0e0,0xffe2e2e2,0xffe4e4e4,0xffe4e4e4,0xffe8e8e8, |
407 | 0xffefefef,0xfff3f3f3,0xfff0f0f0,0xffeaeaea,0xffdddddd,0xffc9c9c9,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffbfbfb,0xff3e3e3e, | 730 | 0xffececec,0xfff0f0f0,0xffededed,0xffe6e6e6,0xffd7d7d7,0xffbfbfbf,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffafafa,0xff2e2e2e, |
408 | 0x6a000500,0x4e000500,0x7000000,0xf000000,0x19000000,0x28000000,0x34000000,0x43000000,0x52000000,0x64000000,0x79000500,0xff000000,0xffcbcbcb,0xffcbcbcb, | 731 | 0x6a000200,0x4e000200,0x7000000,0xf000000,0x19000000,0x28000000,0x34000000,0x43000000,0x52000000,0x64000000,0x79000200,0xff000000,0xffc2c2c2,0xffc2c2c2, |
409 | 0xffcdcdcd,0xffd1d1d1,0xffd6d6d6,0xffdddddd,0xffe7e7e7,0xffececec,0xffefefef,0xffefefef,0xffe7e7e7,0xffc5c5c5,0xff9f9f9f,0xff7f7f7f,0xff6f6f6f,0xff6b6b6b, | 732 | 0xffc4c4c4,0xffc9c9c9,0xffcecece,0xffd6d6d6,0xffe2e2e2,0xffe8e8e8,0xffececec,0xffececec,0xffe2e2e2,0xffbbbbbb,0xff909090,0xff6e6e6e,0xff5d5d5d,0xff595959, |
410 | 0xff717171,0xff8c8c8c,0xffb5b5b5,0xff000000,0x76000500,0x58000500,0xc000000,0x19000000,0xff78cf7b,0xff75cd78,0xff71cb75,0xff6ec872,0xff69c56d,0xff67c56b, | 733 | 0xff5f5f5f,0xff7b7b7b,0xffa8a8a8,0xff000000,0x76000200,0x58000200,0xc000000,0x19000000,0xff66c66a,0xff63c466,0xff5fc163,0xff5cbe60,0xff57bb5b,0xff55bb59, |
411 | 0xff62c466,0xff5ec463,0xff58c15d,0xff51bf57,0xff4dbd50,0xff45bc4a,0xff42b948,0xffc6c6c6,0xffd7d7d7,0xffe5e5e5,0xffeeeeee,0xfff2f2f2,0xffcfcfcf,0xffa0a0a0, | 734 | 0xff50ba54,0xff4cba51,0xff46b64b,0xff40b445,0xff3cb13f,0xff34b039,0xff32ad37,0xffbcbcbc,0xffd0d0d0,0xffe0e0e0,0xffebebeb,0xffefefef,0xffc6c6c6,0xff919191, |
412 | 0xff8d8d8d,0xff828282,0xff828282,0xff7d7d7d,0xff717171,0xff707070,0xff747474,0xff000000,0x80000500,0x60000500,0x12000000,0x27000000,0xff74cb77,0xff6fc673, | 735 | 0xff7c7c7c,0xff717171,0xff717171,0xff6c6c6c,0xff5f5f5f,0xff5e5e5e,0xff626262,0xff000000,0x80000200,0x60000200,0x12000000,0x27000000,0xff62c265,0xff5dbc61, |
413 | 0xff6ac16d,0xff64bc68,0xff61ba65,0xff5db860,0xff59b95d,0xff53b757,0xff4db552,0xff48b24c,0xff41b047,0xff3ead43,0xff3ead42,0xffa7a7a7,0xffc4c4c4,0xffdbdbdb, | 736 | 0xff58b65b,0xff52b056,0xff4fae53,0xff4bac4e,0xff47ad4b,0xff42ab45,0xff3ca841,0xff37a53b,0xff31a336,0xff2ea033,0xff2e9f32,0xff999999,0xffb9b9b9,0xffd4d4d4, |
414 | 0xffececec,0xffd9d9d9,0xffababab,0xff9a9a9a,0xffa4a4a4,0xffc0c0c0,0xffcecece,0xffcfcfcf,0xffc4c4c4,0xff919191,0xff6e6e6e,0xff000000,0x87000500,0x66000500, | 737 | 0xffe8e8e8,0xffd2d2d2,0xff9d9d9d,0xff8b8b8b,0xff959595,0xffb5b5b5,0xffc5c5c5,0xffc6c6c6,0xffbababa,0xff818181,0xff5c5c5c,0xff000000,0x87000200,0x66000200, |
415 | 0x17000000,0x31000000,0xff6fc673,0xffffffff,0xffffffff,0xffffffff,0xfff4f9f5,0xffa5d1a7,0xff4ca74f,0xffffffff,0xffffffff,0xffffffff,0xfff3f9f3,0xff9acb9c, | 738 | 0x17000000,0x31000000,0xff5dbc61,0xffffffff,0xffffffff,0xffffffff,0xfff2f8f3,0xff97c899,0xff3b993e,0xffffffff,0xffffffff,0xffffffff,0xfff1f8f1,0xff8bc28d, |
416 | 0xff399e3d,0xff8d8d8d,0xffb1b1b1,0xffd3d3d3,0xffdddddd,0xffbdbdbd,0xffa8a8a8,0xffb5b5b5,0xffe6e6e6,0xfff3f3f3,0xfff7f7f7,0xfff3f3f3,0xffd1d1d1,0xffe7e7e7, | 739 | 0xff2a8f2d,0xff7c7c7c,0xffa4a4a4,0xffcbcbcb,0xffd7d7d7,0xffb1b1b1,0xff9a9a9a,0xffa8a8a8,0xffe1e1e1,0xfff1f1f1,0xfff5f5f5,0xfff0f0f0,0xffc9c9c9,0xffe2e2e2, |
417 | 0xff9f9f9f,0xff000000,0x8b000500,0x6a000500,0x1b000000,0x3c000000,0xff69bf6c,0xffffffff,0xffe0eee1,0xff7fb582,0xffc6ddc7,0xffffffff,0xff78b07a,0xffffffff, | 740 | 0xff909090,0xff000000,0x8b000200,0x6a000200,0x1b000000,0x3c000000,0xff57b45a,0xffffffff,0xffdaeadb,0xff6ea871,0xffbcd6bd,0xffffffff,0xff66a369,0xffffffff, |
418 | 0xffdceadd,0xff6fa972,0xffc0d9c1,0xffffffff,0xff70ad73,0xff767676,0xffa2a2a2,0xffc8c8c8,0xffcacaca,0xffb3b3b3,0xffb1b1b1,0xffe3e3e3,0xfffafafa,0xfff8f8f8, | 741 | 0xffd5e6d6,0xff5d9b60,0xffb5d2b6,0xffffffff,0xff5e9f61,0xff646464,0xff939393,0xffbebebe,0xffc0c0c0,0xffa6a6a6,0xffa4a4a4,0xffdedede,0xfff9f9f9,0xfff6f6f6, |
419 | 0xfff7f7f7,0xffafafaf,0xff7a7a7a,0xffb6b6b6,0xffe1e1e1,0xff000000,0x8e000500,0x6d000500,0x1d000000,0x43000000,0xff62ba66,0xffffffff,0xffd1e3d2,0xff418943, | 742 | 0xfff5f5f5,0xffa2a2a2,0xff686868,0xffa9a9a9,0xffdbdbdb,0xff000000,0x8e000200,0x6d000200,0x1d000000,0x43000000,0xff50ae54,0xffffffff,0xffc9deca,0xff317833, |
420 | 0xff77a778,0xffffffff,0xff99bd9a,0xffffffff,0xffcbddcc,0xff2a772e,0xff6b9f6d,0xffffffff,0xff96bc98,0xff666666,0xff979797,0xffbfbfbf,0xffbfbfbf,0xffb2b2b2, | 743 | 0xff659966,0xffffffff,0xff89b18a,0xffffffff,0xffc2d6c3,0xff1d6520,0xff59905b,0xffffffff,0xff86b088,0xff545454,0xff878787,0xffb4b4b4,0xffb4b4b4,0xffa5a5a5, |
421 | 0xffc5c5c5,0xfff5f5f5,0xfffbfbfb,0xfffafafa,0xffb6b6b6,0xff7c7c7c,0xff777777,0xff9b9b9b,0xffefefef,0xff000000,0x8f000500,0x6e000500,0x1f000000,0x45000000, | 744 | 0xffbbbbbb,0xfff3f3f3,0xfffafafa,0xfff9f9f9,0xffaaaaaa,0xff6b6b6b,0xff656565,0xff8c8c8c,0xffececec,0xff000000,0x8f000200,0x6e000200,0x1f000000,0x45000000, |
422 | 0xff5eb661,0xffffffff,0xffd1e2d1,0xff3b803d,0xff9abc9a,0xffffffff,0xff88af8a,0xffffffff,0xffcbdacb,0xff276c29,0xff93b495,0xffffffff,0xff88b089,0xff606060, | 745 | 0xff4caa4f,0xffffffff,0xffc8dcc9,0xff2b6f2d,0xff8ab08b,0xffffffff,0xff77a279,0xffffffff,0xffc1d3c2,0xff1a5a1c,0xff83a785,0xffffffff,0xff77a378,0xff4e4e4e, |
423 | 0xff919191,0xffbcbcbc,0xffb8b8b8,0xffb2b2b2,0xffcecece,0xfffdfdfd,0xfffcfcfc,0xffbababa,0xff828282,0xff7a7a7a,0xff808080,0xffe4e4e4,0xffffffff,0xff000000, | 746 | 0xff818181,0xffb0b0b0,0xffacacac,0xffa5a5a5,0xffc5c5c5,0xfffcfcfc,0xfffbfbfb,0xffaeaeae,0xff717171,0xff696969,0xff6f6f6f,0xffdfdfdf,0xffffffff,0xff000000, |
424 | 0x90000500,0x6e000500,0x1f000000,0x46000000,0xff58b35d,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffdbe7dc,0xff397e3d,0xffffffff,0xffffffff,0xffffffff, | 747 | 0x90000200,0x6e000200,0x1f000000,0x46000000,0xff46a64b,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffd4e2d5,0xff2a6d2d,0xffffffff,0xffffffff,0xffffffff, |
425 | 0xffffffff,0xffdae5db,0xff3b803e,0xff616161,0xff929292,0xffbdbdbd,0xffbbbbbb,0xffaeaeae,0xffc6c6c6,0xfff9f9f9,0xffbcbcbc,0xff868686,0xff7e7e7e,0xff777777, | 748 | 0xffffffff,0xffd3e0d4,0xff2b6f2e,0xff4f4f4f,0xff828282,0xffb2b2b2,0xffafafaf,0xffa1a1a1,0xffbcbcbc,0xfff8f8f8,0xffb0b0b0,0xff757575,0xff6d6d6d,0xff656565, |
426 | 0xff747474,0xffa4a4a4,0xfff4f4f4,0xff000000,0x90000500,0x6f000500,0x1f000000,0x46000000,0xff53b257,0xffffffff,0xffdde9dd,0xff70a473,0xff5d9a5f,0xff2d7d30, | 749 | 0xff626262,0xff959595,0xfff2f2f2,0xff000000,0x90000200,0x6f000200,0x1f000000,0x46000000,0xff42a545,0xffffffff,0xffd6e5d7,0xff5e9561,0xff4b8a4d,0xff1f6c22, |
427 | 0xff2b7a2f,0xffffffff,0xffdae4da,0xff68936a,0xff578c5a,0xff29722b,0xff2b7a2f,0xff656565,0xff969696,0xffc2c2c2,0xffc5c5c5,0xffa8a8a8,0xffadadad,0xffeaeaea, | 750 | 0xff1e6921,0xffffffff,0xffd3dfd3,0xff568358,0xff457b48,0xff1c601e,0xff1e6921,0xff535353,0xff868686,0xffb7b7b7,0xffbbbbbb,0xff9a9a9a,0xff9f9f9f,0xffe6e6e6, |
428 | 0xffb9b9b9,0xff7e7e7e,0xff9b9b9b,0xff9a9a9a,0xff696969,0xff676767,0xff939393,0xff000000,0x90000500,0x6f000500,0x1f000000,0x46000000,0xff4eaf51,0xffffffff, | 751 | 0xffadadad,0xff6d6d6d,0xff8c8c8c,0xff8b8b8b,0xff575757,0xff555555,0xff838383,0xff000000,0x90000200,0x6f000200,0x1f000000,0x46000000,0xff3da240,0xffffffff, |
429 | 0xffcee1ce,0xff2f8334,0xff308734,0xff2f8634,0xff2f8433,0xffffffff,0xffcbdbcb,0xff286f2a,0xff29732b,0xff2b7a2f,0xff2f8233,0xff6b6b6b,0xff9b9b9b,0xffc5c5c5, | 752 | 0xffc5dbc5,0xff217225,0xff227625,0xff217525,0xff217324,0xffffffff,0xffc1d4c2,0xff1b5d1d,0xff1c611e,0xff1e6821,0xff217124,0xff595959,0xff8c8c8c,0xffbbbbbb, |
430 | 0xffd3d3d3,0xffa8a8a8,0xff949494,0xffb5b5b5,0xfff0f0f0,0xffc5c5c5,0xffebebeb,0xfffcfcfc,0xff9e9e9e,0xff686868,0xff686868,0xff000000,0x90000500,0x6f000500, | 753 | 0xffcbcbcb,0xff9a9a9a,0xff848484,0xffa8a8a8,0xffededed,0xffbbbbbb,0xffe7e7e7,0xfffbfbfb,0xff8f8f8f,0xff565656,0xff565656,0xff000000,0x90000200,0x6f000200, |
431 | 0x1d000000,0x43000000,0xff49b04e,0xffffffff,0xffcde2ce,0xff318834,0xff338d37,0xff348e37,0xff318c36,0xffffffff,0xffcbdccc,0xff29752d,0xff2b7a2f,0xff2e7f31, | 754 | 0x1d000000,0x43000000,0xff38a33d,0xffffffff,0xffc4dcc5,0xff237725,0xff247d28,0xff257e28,0xff237b27,0xffffffff,0xffc2d5c3,0xff1c631f,0xff1e6921,0xff206e23, |
432 | 0xff318834,0xff757575,0xffa4a4a4,0xffc7c7c7,0xffe3e3e3,0xffc5c5c5,0xff8d8d8d,0xff818181,0xffa5a5a5,0xffdddddd,0xffe8e8e8,0xffeaeaea,0xffcbcbcb,0xff707070, | 755 | 0xff237725,0xff636363,0xff959595,0xffbdbdbd,0xffdddddd,0xffbbbbbb,0xff7c7c7c,0xff707070,0xff979797,0xffd6d6d6,0xffe3e3e3,0xffe6e6e6,0xffc2c2c2,0xff5e5e5e, |
433 | 0xff696969,0xff000000,0x90000500,0x6f000500,0x1b000000,0x3e000000,0xff45b148,0xffffffff,0xffcde3ce,0xff348f37,0xff359439,0xff359539,0xff349138,0xffffffff, | 756 | 0xff575757,0xff000000,0x90000200,0x6f000200,0x1b000000,0x3e000000,0xff34a437,0xffffffff,0xffc4ddc5,0xff257f28,0xff26842a,0xff26852a,0xff258129,0xffffffff, |
434 | 0xffcbddcc,0xff2d7b30,0xff2e8031,0xff308734,0xff338d37,0xff858585,0xffadadad,0xffcbcbcb,0xffe4e4e4,0xffeeeeee,0xffb7b7b7,0xff7d7d7d,0xff767676,0xff797979, | 757 | 0xffc2d7c3,0xff1f6a22,0xff206f23,0xff227625,0xff247c28,0xff747474,0xff9f9f9f,0xffc1c1c1,0xffdfdfdf,0xffebebeb,0xffababab,0xff6c6c6c,0xff646464,0xff676767, |
435 | 0xff868686,0xff868686,0xff7c7c7c,0xff6d6d6d,0xff6d6d6d,0xff000000,0x90000500,0x6f000500,0x17000000,0x34000000,0xff3fb245,0xff3ba43f,0xff36993b,0xff369639, | 758 | 0xff757575,0xff757575,0xff6b6b6b,0xff5b5b5b,0xff5b5b5b,0xff000000,0x90000200,0x6f000200,0x17000000,0x34000000,0xff2fa534,0xff2b952f,0xff27892b,0xff27862a, |
436 | 0xff369a3c,0xff36993b,0xff359539,0xff338e37,0xff2f8433,0xff2f8331,0xff308634,0xff318a35,0xff338e37,0xff979797,0xffb8b8b8,0xffd2d2d2,0xffe3e3e3,0xfff3f3f3, | 759 | 0xff278a2c,0xff27892b,0xff26852a,0xff247e28,0xff217324,0xff217223,0xff227525,0xff237926,0xff247e28,0xff878787,0xffacacac,0xffcacaca,0xffdedede,0xfff0f0f0, |
437 | 0xfff5f5f5,0xffc7c7c7,0xff969696,0xff727272,0xff727272,0xff727272,0xff727272,0xff939393,0xffbebebe,0xff000000,0x90000500,0x6e000500,0x12000000,0x28000000, | 760 | 0xfff3f3f3,0xffbdbdbd,0xff868686,0xff606060,0xff606060,0xff606060,0xff606060,0xff838383,0xffb3b3b3,0xff000000,0x90000200,0x6e000200,0x12000000,0x28000000, |
438 | 0x47000000,0x6b000000,0x87000000,0x9a000000,0xa7000000,0xb2000000,0xbc000000,0xff000000,0xff6d6d6d,0xff6e6e6e,0xff767676,0xff848484,0xff969696,0xffadadad, | 761 | 0x47000000,0x6b000000,0x87000000,0x9a000000,0xa7000000,0xb2000000,0xbc000000,0xff000000,0xff5b5b5b,0xff5c5c5c,0xff646464,0xff737373,0xff868686,0xff9f9f9f, |
439 | 0xffc6c6c6,0xffd9d9d9,0xffe8e8e8,0xffefefef,0xfff7f7f7,0xfff9f9f9,0xffebebeb,0xffd7d7d7,0xffc9c9c9,0xffc9c9c9,0xffd6d6d6,0xffeaeaea,0xfffafafa,0xff000000, | 762 | 0xffbcbcbc,0xffd2d2d2,0xffe4e4e4,0xffececec,0xfff5f5f5,0xfff8f8f8,0xffe7e7e7,0xffcfcfcf,0xffbfbfbf,0xffbfbfbf,0xffcecece,0xffe6e6e6,0xfff9f9f9,0xff000000, |
440 | 0x8e000500,0x6d000500,0xc000000,0x1a000000,0x2f000000,0x47000000,0x5b000000,0x6c000000,0x79000000,0x87000000,0x97000000,0xff000000,0xffa0a0a0,0xffa0a0a0, | 763 | 0x8e000200,0x6d000200,0xc000000,0x1a000000,0x2f000000,0x47000000,0x5b000000,0x6c000000,0x79000000,0x87000000,0x97000000,0xff000000,0xff919191,0xff919191, |
441 | 0xffa5a5a5,0xffafafaf,0xffbababa,0xffc7c7c7,0xffd7d7d7,0xffe4e4e4,0xffededed,0xfff2f2f2,0xfff4f4f4,0xfff5f5f5,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8, | 764 | 0xff979797,0xffa2a2a2,0xffaeaeae,0xffbdbdbd,0xffd0d0d0,0xffdfdfdf,0xffe9e9e9,0xffefefef,0xfff2f2f2,0xfff3f3f3,0xfff6f6f6,0xfff7f7f7,0xfff7f7f7,0xfff7f7f7, |
442 | 0xfff8f8f8,0xfff7f7f7,0xfff4f4f4,0xff000000,0x8c000500,0x6b000500,0x7000000,0x10000000,0x1b000000,0x2a000000,0x37000000,0x45000000,0x53000000,0x63000000, | 765 | 0xfff7f7f7,0xfff5f5f5,0xfff2f2f2,0xff000000,0x8c000200,0x6b000200,0x7000000,0x10000000,0x1b000000,0x2a000000,0x37000000,0x45000000,0x53000000,0x63000000, |
443 | 0x76000000,0xff000000,0xffc9c9c9,0xffc9c9c9,0xffcbcbcb,0xffd1d1d1,0xffd5d5d5,0xffdcdcdc,0xffe6e6e6,0xffececec,0xfff2f2f2,0xfff5f5f5,0xfff6f6f6,0xfff6f6f6, | 766 | 0x76000000,0xff000000,0xffbfbfbf,0xffbfbfbf,0xffc2c2c2,0xffc8c8c8,0xffcdcdcd,0xffd5d5d5,0xffe1e1e1,0xffe8e8e8,0xffefefef,0xfff3f3f3,0xfff4f4f4,0xfff4f4f4, |
444 | 0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xff000000,0x87000500,0x68000500,0x4000000,0x7000000,0xd000000,0x14000000, | 767 | 0xfff4f4f4,0xfff4f4f4,0xfff4f4f4,0xfff4f4f4,0xfff4f4f4,0xfff4f4f4,0xfff4f4f4,0xff000000,0x87000200,0x68000200,0x4000000,0x7000000,0xd000000,0x14000000, |
445 | 0x1c000000,0x28000000,0x35000000,0x47000000,0x5c000600,0xff000000,0xffe5e5e5,0xffe5e5e5,0xffe7e7e7,0xffe8e8e8,0xffe8e8e8,0xffececec,0xfff1f1f1,0xfff3f3f3, | 768 | 0x1c000000,0x28000000,0x35000000,0x47000000,0x5c000300,0xff000000,0xffe0e0e0,0xffe0e0e0,0xffe2e2e2,0xffe4e4e4,0xffe4e4e4,0xffe8e8e8,0xffeeeeee,0xfff1f1f1, |
446 | 0xfff5f5f5,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xfff8f8f8,0xff000000,0x7f000500,0x61000500, | 769 | 0xfff3f3f3,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xfff6f6f6,0xff000000,0x7f000200,0x61000200, |
447 | 0x1000000,0x2000000,0x4000000,0x8000000,0xe000000,0x16000000,0x21000000,0x31000000,0x47000000,0xff000000,0xfff7f7f7,0xfff7f7f7,0xfff7f7f7,0xfff8f8f8, | 770 | 0x1000000,0x2000000,0x4000000,0x8000000,0xe000000,0x16000000,0x21000000,0x31000000,0x47000000,0xff000000,0xfff5f5f5,0xfff5f5f5,0xfff5f5f5,0xfff6f6f6, |
448 | 0xfff8f8f8,0xfffafafa,0xfffcfcfc,0xfffdfdfd,0xfffefefe,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 771 | 0xfff7f7f7,0xfff9f9f9,0xfffbfbfb,0xfffdfdfd,0xfffefefe,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
449 | 0xffffffff,0xff000000,0x73000500,0x58000500,0xffffff,0xffffff,0xffffff,0x2000500,0x5000500,0xb000500,0x15000500,0x24000500,0x36000500,0xff000000, | 772 | 0xffffffff,0xff000000,0x73000200,0x58000200,0xffffff,0xffffff,0xffffff,0x2000200,0x5000200,0xb000200,0x15000200,0x24000200,0x36000200,0xff000000, |
450 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000, | 773 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000, |
451 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0x63000500,0x4c000500,0xffffff,0xffffff,0xffffff,0x1000500,0x4000500,0x9000500, | 774 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0x63000200,0x4c000200,0xffffff,0xffffff,0xffffff,0x1000200,0x4000200,0x9000200, |
452 | 0x11000500,0x1d000500,0x2c000500,0x3e000500,0x51000500,0x63000500,0x73000500,0x7f000500,0x87000500,0x8c000500,0x8e000500,0x90000500,0x90000500,0x90000500, | 775 | 0x11000200,0x1d000200,0x2c000200,0x3e000200,0x51000200,0x63000200,0x73000200,0x7f000200,0x87000200,0x8c000200,0x8e000200,0x90000200,0x90000200,0x90000200, |
453 | 0x90000500,0x90000500,0x90000500,0x90000500,0x8e000500,0x8c000500,0x87000500,0x7f000500,0x73000500,0x63000500,0x51000500,0x3e000500,0xffffff,0xffffff, | 776 | 0x90000200,0x90000200,0x90000200,0x90000200,0x8e000200,0x8c000200,0x87000200,0x7f000200,0x73000200,0x63000200,0x51000200,0x3e000200,0xffffff,0xffffff, |
454 | 0xffffff,0x1000500,0x3000500,0x7000500,0xd000500,0x16000500,0x22000500,0x30000500,0x3e000500,0x4c000500,0x58000500,0x61000500,0x68000500,0x6b000500, | 777 | 0xffffff,0x1000200,0x3000200,0x7000200,0xd000200,0x16000200,0x22000200,0x30000200,0x3e000200,0x4c000200,0x58000200,0x61000200,0x68000200,0x6b000200, |
455 | 0x6d000500,0x6e000500,0x6f000500,0x6f000500,0x6f000500,0x6f000500,0x6f000500,0x6e000500,0x6d000500,0x6b000500,0x68000500,0x61000500,0x58000500,0x4c000500, | 778 | 0x6d000200,0x6e000200,0x6f000200,0x6f000200,0x6f000200,0x6f000200,0x6f000200,0x6e000200,0x6d000200,0x6b000200,0x68000200,0x61000200,0x58000200,0x4c000200, |
456 | 0x3e000500,0x30000500 | 779 | 0x3e000200,0x30000200 |
457 | }; | 780 | }; |
458 | 781 | ||
459 | static const QRgb DocumentTypeWord_data[] = { | 782 | static const QRgb DocumentTypeWord_data[] = { |
460 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db, | 783 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db, |
461 | 0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xffb9c5db,0xde929fb6,0x1d17191a,0xc0b0a,0x111111,0x111111,0x111111, | 784 | 0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xffbac6db,0xde93a0b7,0x1d181a1b,0xc0b0a,0x111111,0x111111,0x111111, |
462 | 0x111111,0x111111,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff1f6ff,0xffffffff, | 785 | 0x111111,0x111111,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff1f6ff,0xffffffff, |
463 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff9fdff,0xfff4f7fe,0xffebf0f9,0xffe3e9f4,0xffdae1ef,0xffced7e8,0xffb7c5df,0xdaa1acbf, | 786 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff9fdff,0xfff4f7fe,0xffebf0f9,0xffe3e9f4,0xffdae1ef,0xffced7e8,0xffb8c6df,0xdaa2adc0, |
464 | 0x1d141518,0xa0a09,0x121212,0x111111,0x111111,0x111111,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 787 | 0x1d151619,0xa0a09,0x121212,0x111111,0x111111,0x111111,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
465 | 0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff9fdff,0xfff5f9ff,0xffeef3fc,0xffe8edf7,0xffe0e7f3, | 788 | 0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff9fdff,0xfff5f9ff,0xffeef3fc,0xffe8edf7,0xffe0e7f3, |
466 | 0xffd7dfed,0xffcbd5e6,0xffb4c1d9,0xffe1eaf9,0xe19ba7bb,0x2418191b,0xb0a09,0x111111,0x111111,0x111111,0x111111,0xffffff,0xffffff,0xffffff, | 789 | 0xffd7dfed,0xffcbd5e6,0xffb5c2d9,0xffe1eaf9,0xe19ca8bc,0x24191a1c,0xb0a09,0x111111,0x111111,0x111111,0x111111,0xffffff,0xffffff,0xffffff, |
467 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc3c4c4,0xffbfc3c4, | 790 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc4c5c5,0xffc0c4c5, |
468 | 0xffbabec4,0xfff1f5fe,0xffebf0f9,0xffe3eaf4,0xffdce3f0,0xffcfd8e8,0xffb7c3db,0xffe6ecf7,0xffd2ddef,0xdd9ba7bd,0x2017181b,0xa0908,0x111212,0x111111, | 791 | 0xffbbbfc5,0xfff1f5fe,0xffebf0f9,0xffe3eaf4,0xffdce3f0,0xffcfd8e8,0xffb8c4db,0xffe6ecf7,0xffd2ddef,0xdd9ca8be,0x2018191c,0xa0908,0x111212,0x111111, |
469 | 0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff, | 792 | 0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff, |
470 | 0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff8fbff,0xfff4f8fe,0xffeef2fb,0xffe7edf7,0xffdfe5f2,0xffd2dbea,0xffb9c5dc,0xfff5f8ff,0xffdee4f1,0xffd1dbef, | 793 | 0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff8fbff,0xfff4f8fe,0xffeef2fb,0xffe7edf7,0xffdfe5f2,0xffd2dbea,0xffbac6dc,0xfff5f8ff,0xffdee4f1,0xffd1dbef, |
471 | 0xe39ca8be,0x2318181b,0xb0a09,0x121212,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db, | 794 | 0xe39da9bf,0x2319191c,0xb0a09,0x121212,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db, |
472 | 0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff9fcff,0xfff5f8ff,0xfff0f4fd,0xffe9eff8,0xffe1e7f3,0xffd5ddec, | 795 | 0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfff9fcff,0xfff5f8ff,0xfff0f4fd,0xffe9eff8,0xffe1e7f3,0xffd5ddec, |
473 | 0xffbbc7db,0xffffffff,0xfff3f7fe,0xffe2e8f3,0xffd4dff1,0xdd9eaabf,0x231b1d1f,0xa0908,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 796 | 0xffbcc7db,0xffffffff,0xfff3f7fe,0xffe2e8f3,0xffd4dff1,0xdd9fabc0,0x231c1e20,0xa0908,0x111111,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
474 | 0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc2c4c4,0xffbec2c4,0xffbcbec4, | 797 | 0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc3c5c5,0xffbfc3c5,0xffbdbfc5, |
475 | 0xffb5b9c2,0xffadb2bd,0xffe3e9f4,0xffd9e1ef,0xffb3c0d7,0xffe9ebf1,0xffe2e8ef,0xffdae1ed,0xffced7e6,0xffc5d2e7,0xe496a3ba,0x29202124,0xf0f0e,0xffffff, | 798 | 0xffb6bac3,0xffaeb3be,0xffe3e9f4,0xffd9e1ef,0xffb4c1d7,0xffe9ebf1,0xffe2e8ef,0xffdae1ed,0xffced7e6,0xffc6d2e7,0xe497a4bb,0x29212225,0xf0f0e,0xffffff, |
476 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | 799 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, |
477 | 0xffffffff,0xfffeffff,0xfffcffff,0xfff7fbff,0xfff2f6fd,0xffedf1fb,0xffe6ecf6,0xffdee5f2,0xffbdcadd,0xff8d9eba,0xff8d9eba,0xff8d9eba,0xff8d9eba,0xff8d9eba, | 800 | 0xffffffff,0xfffeffff,0xfffcffff,0xfff7fbff,0xfff2f6fd,0xffedf1fb,0xffe6ecf6,0xffdee5f2,0xffbecadd,0xff8e9fbb,0xff8e9fbb,0xff8e9fbb,0xff8e9fbb,0xff8e9fbb, |
478 | 0xff8d9eba,0xff8d9eba,0x90805,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff, | 801 | 0xff8e9fbb,0xff8e9fbb,0x90805,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff, |
479 | 0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc3c4c4,0xffbfc3c4,0xffbdbfc4,0xffb6bbc4,0xffb1b5bf,0xffe7ecf7,0xffe1e7f4,0xffdbe3f0,0xffd7dfed, | 802 | 0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc4c5c5,0xffc0c4c5,0xffbec0c5,0xffb7bcc5,0xffb2b6c0,0xffe7ecf7,0xffe1e7f4,0xffdbe3f0,0xffd7dfed, |
480 | 0xffcdd6e7,0xffb6c3da,0xffabb9d3,0xffa9b8d2,0xffa3b3d1,0xff798aa6,0x150b0a08,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 803 | 0xffcdd6e7,0xffb7c4da,0xffacbad3,0xffaab9d2,0xffa4b4d1,0xff7a8ba7,0x150b0a08,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
481 | 0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfffafdff,0xfff5f8fe,0xffeef3fc, | 804 | 0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfffafdff,0xfff5f8fe,0xffeef3fc, |
482 | 0xffe9eff8,0xffe2e9f4,0xffdbe3f0,0xffd5ddec,0xffc1cce0,0xffb3bfd8,0xffb0bed6,0xffaebbd5,0xffaabad6,0xff798aa6,0x210b0a07,0xffffff,0xffffff,0xffffff, | 805 | 0xffe9eff8,0xffe2e9f4,0xffdbe3f0,0xffd5ddec,0xffc2cce0,0xffb4c0d8,0xffb1bfd6,0xffafbcd5,0xffabbbd6,0xff7a8ba7,0x210b0a07,0xffffff,0xffffff,0xffffff, |
483 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4, | 806 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5, |
484 | 0xffc2c4c4,0xffbdc2c4,0xfff5f8ff,0xfff0f5fd,0xffe9eff9,0xffe5ebf6,0xffdde4f1,0xffcbd5e5,0xffbcc9de,0xffbac7dc,0xffb7c4db,0xffb6c2da,0xffb2c0db,0xff798aa6, | 807 | 0xffc3c5c5,0xffbec3c5,0xfff5f8ff,0xfff0f5fd,0xffe9eff9,0xffe5ebf6,0xffdde4f1,0xffcbd5e5,0xffbdc9de,0xffbbc7dc,0xffb8c5db,0xffb7c3da,0xffb3c1db,0xff7a8ba7, |
485 | 0x230b0907,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff, | 808 | 0x230b0907,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff, |
486 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfffafdff,0xfff7faff,0xfff3f7fe,0xffebf0fa,0xffdfe6f2,0xffd0d8e8,0xffc5d0e3,0xffc1cde0,0xffbecadf, | 809 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfffafdff,0xfff7faff,0xfff3f7fe,0xffebf0fa,0xffdfe6f2,0xffd0d8e8,0xffc6d0e3,0xffc2cde0,0xffbfcadf, |
487 | 0xffbcc8dd,0xffbbc8dc,0xffb8c5de,0xff798aa6,0x230a0907,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db, | 810 | 0xffbdc8dd,0xffbcc8dc,0xffb9c6de,0xff7a8ba7,0x230a0907,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db, |
488 | 0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc4c4c4,0xffc2c4c4,0xffbdc2c4,0xffb6bbc3,0xffadb3bd,0xffa3aab8,0xff949eb2, | 811 | 0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc5c5c5,0xffc3c5c5,0xffbec3c5,0xffb7bcc4,0xffaeb4be,0xffa4abb9,0xff959fb3, |
489 | 0xff8f9cb0,0xff909eb2,0xff8c9cb1,0xff8c9bb0,0xff8f9fb3,0xffc0cde0,0xffbdcbe2,0xff798aa6,0x230a0907,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 812 | 0xff909db1,0xff919fb3,0xff8d9db2,0xff8d9cb1,0xff90a0b4,0xffc1cde0,0xffbecbe2,0xff7a8ba7,0x230a0907,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
490 | 0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfffafcff,0xfff6faff,0xfff2f6fe, | 813 | 0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfffafcff,0xfff6faff,0xfff2f6fe, |
491 | 0xffe9eef8,0xffdfe5f2,0xffd5deec,0xffd1dae9,0xffd0d9e9,0xffcdd6e7,0xffcbd5e6,0xffc8d2e5,0xffc5d1e3,0xffc5d1e3,0xffc3d0e6,0xff798aa6,0x230a0906,0xffffff, | 814 | 0xffe9eef8,0xffdfe5f2,0xffd5deec,0xffd1dae9,0xffd0d9e9,0xffcdd6e7,0xffcbd5e6,0xffc8d2e5,0xffc6d1e3,0xffc6d1e3,0xffc4d0e6,0xff7a8ba7,0x230a0906,0xffffff, |
492 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc2c4c4, | 815 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc3c5c5, |
493 | 0xffbfc3c4,0xffbdc2c4,0xffb9bdc4,0xffacb2bc,0xffa2aab7,0xff9ca7b5,0xff9aa5b7,0xff9aa4b7,0xff99a4b6,0xff98a4b6,0xff9aa8ba,0xff98a7b9,0xff97a5b8,0xffcad3e5, | 816 | 0xffc0c4c5,0xffbec3c5,0xffbabec5,0xffadb3bd,0xffa3abb8,0xff9da8b6,0xff9ba6b8,0xff9ba5b8,0xff9aa5b7,0xff99a5b7,0xff9ba9bb,0xff99a8ba,0xff98a6b9,0xffcad3e5, |
494 | 0xffc8d4e8,0xff798aa6,0x230a0806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff, | 817 | 0xffc8d4e8,0xff7a8ba7,0x230a0806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff, |
495 | 0xffffffff,0xffffffff,0xfffeffff,0xfffdffff,0xfffcffff,0xfff3f7fd,0xffe6ecf6,0xffe1e7f3,0xffdee5f2,0xffdce3f0,0xffdbe3f0,0xffd8e0ee,0xffd7dfed,0xffd4dceb, | 818 | 0xffffffff,0xffffffff,0xfffeffff,0xfffdffff,0xfffcffff,0xfff3f7fd,0xffe6ecf6,0xffe1e7f3,0xffdee5f2,0xffdce3f0,0xffdbe3f0,0xffd8e0ee,0xffd7dfed,0xffd4dceb, |
496 | 0xffd3dbea,0xffd1dae9,0xffced7e8,0xffced7e7,0xffcbd6ea,0xff798aa6,0x230a0806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 819 | 0xffd3dbea,0xffd1dae9,0xffced7e8,0xffced7e7,0xffcbd6ea,0xff7a8ba7,0x230a0806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
497 | 0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4,0xffc4c4c4,0xffc3c4c4,0xffb5b9c2,0xffabb0bd,0xffaab1bd,0xffa7b0bc,0xffa6b0bc,0xffa5afbc, | 820 | 0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5,0xffc5c5c5,0xffc4c5c5,0xffb6bac3,0xffacb1be,0xffabb2be,0xffa8b1bd,0xffa7b1bd,0xffa6b0bd, |
498 | 0xffa3acbe,0xffa1adbd,0xff9fabbd,0xff9faabe,0xff9cabbf,0xffa1afc0,0xffa0aec0,0xffd0dae9,0xffcfd9ec,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff, | 821 | 0xffa4adbf,0xffa2aebe,0xffa0acbe,0xffa0abbf,0xff9dacc0,0xffa2b0c1,0xffa1afc1,0xffd0dae9,0xffcfd9ec,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff, |
499 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff5f9fe,0xffecf1fa,0xffeaeff9, | 822 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff5f9fe,0xffecf1fa,0xffeaeff9, |
500 | 0xffe7edf7,0xffe4eaf5,0xffe4eaf5,0xffe2e8f3,0xffdfe6f2,0xffdde4f1,0xffdae1ef,0xffdae1ee,0xffd8e0ee,0xffd5dded,0xffd4dceb,0xffd3dcea,0xffd1dbed,0xff798aa6, | 823 | 0xffe7edf7,0xffe4eaf5,0xffe4eaf5,0xffe2e8f3,0xffdfe6f2,0xffdde4f1,0xffdae1ef,0xffdae1ee,0xffd8e0ee,0xffd5dded,0xffd4dceb,0xffd3dcea,0xffd1dbed,0xff7a8ba7, |
501 | 0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c4c4, | 824 | 0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc5c5c5, |
502 | 0xffbfc2c4,0xffb4b9c2,0xffb2b9c2,0xffb0b6c3,0xffadb4c2,0xffacb5c2,0xffabb3c3,0xffa9b4c1,0xffa8b3c2,0xffa6b2c1,0xffa5b2c4,0xffa4b0c3,0xffa3b2c4,0xffa2b2c5, | 825 | 0xffc0c3c5,0xffb5bac3,0xffb3bac3,0xffb1b7c4,0xffaeb5c3,0xffadb6c3,0xffacb4c4,0xffaab5c2,0xffa9b4c3,0xffa7b3c2,0xffa6b3c5,0xffa5b1c4,0xffa4b3c5,0xffa3b3c6, |
503 | 0xffa5b3c8,0xffd5ddec,0xffd2dcee,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db, | 826 | 0xffa6b4c8,0xffd5ddec,0xffd2dcee,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db, |
504 | 0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xfff5f9fe,0xffeff3fc,0xffeef3fb,0xffecf1f9,0xffeaeff9,0xffe8edf7,0xffe6ecf7,0xffe4eaf5,0xffe1e9f4,0xffe0e6f2, | 827 | 0xfff2f7ff,0xffffffff,0xffffffff,0xffffffff,0xfff5f9fe,0xffeff3fc,0xffeef3fb,0xffecf1f9,0xffeaeff9,0xffe8edf7,0xffe6ecf7,0xffe4eaf5,0xffe1e9f4,0xffe0e6f2, |
505 | 0xffdee5f1,0xffdce3f1,0xffdae2ef,0xffd8dfed,0xffd6deed,0xffd6deec,0xffd4def0,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 828 | 0xffdee5f1,0xffdce3f1,0xffdae2ef,0xffd8dfed,0xffd6deed,0xffd6deec,0xffd4def0,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
506 | 0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc3c4c5,0xffb6bcc4,0xffb4bbc5,0xffb4bcc7,0xffb2b9c5,0xffb1b8c5,0xffb0b8c5, | 829 | 0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffc4c5c6,0xffb7bdc5,0xffb5bcc6,0xffb5bdc7,0xffb3bac6,0xffb2b9c6,0xffb1b9c6, |
507 | 0xffaeb8c5,0xffafb8c5,0xffacb6c5,0xffaab7c8,0xffaab6c8,0xffa8b5c8,0xffa6b4c9,0xffa6b6cb,0xffa4b4ca,0xffd5dded,0xffd5dff0,0xff798aa6,0x23090806,0xffffff, | 830 | 0xffafb9c6,0xffb0b9c6,0xffadb7c6,0xffabb8c8,0xffabb7c8,0xffa9b6c8,0xffa7b5c9,0xffa7b7cb,0xffa5b5ca,0xffd5dded,0xffd5dff0,0xff7a8ba7,0x23090806,0xffffff, |
508 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xfffafdff,0xfff2f6fd,0xffeff4fc, | 831 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xfffafdff,0xfff2f6fd,0xffeff4fc, |
509 | 0xffeef3fb,0xffecf1fa,0xffeaeff9,0xffe9eef8,0xffe8edf7,0xffe6ecf6,0xffe3e9f4,0xffe1e8f3,0xffdfe6f2,0xffdde4f0,0xffdce3f0,0xffd9e1ee,0xffd8e0ee,0xffd7dfee, | 832 | 0xffeef3fb,0xffecf1fa,0xffeaeff9,0xffe9eef8,0xffe8edf7,0xffe6ecf6,0xffe3e9f4,0xffe1e8f3,0xffdfe6f2,0xffdde4f0,0xffdce3f0,0xffd9e1ee,0xffd8e0ee,0xffd7dfee, |
510 | 0xffd5dff0,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff, | 833 | 0xffd5dff0,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff, |
511 | 0xffffffff,0xffbcbfc8,0xffb6bcc7,0xffb4bcc8,0xffb3bcc7,0xffb4bbc8,0xffb2b9c8,0xffb1b9c8,0xffb1bcc8,0xffafbbca,0xffaebacb,0xffadb9cb,0xffaab8cb,0xffa9b8cc, | 834 | 0xffffffff,0xffbdc0c8,0xffb7bdc7,0xffb5bdc8,0xffb4bdc7,0xffb5bcc8,0xffb3bac8,0xffb2bac8,0xffb2bdc8,0xffb0bcca,0xffafbbcb,0xffaebacb,0xffabb9cb,0xffaab9cc, |
512 | 0xffa8b9cd,0xffaab8cd,0xffa7b8cd,0xffd8e0ee,0xffd6dff1,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 835 | 0xffa9bacd,0xffabb9cd,0xffa8b9cd,0xffd8e0ee,0xffd6dff1,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
513 | 0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xfff4f8fe,0xfff0f4fc,0xffeff4fc,0xffeef3fb,0xffecf1fa,0xffebf0f9,0xffe9eef8,0xffe7edf7,0xffe6ecf6, | 836 | 0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xfff4f8fe,0xfff0f4fc,0xffeff4fc,0xffeef3fb,0xffecf1fa,0xffebf0f9,0xffe9eef8,0xffe7edf7,0xffe6ecf6, |
514 | 0xffe4eaf5,0xffe2e8f3,0xffdfe6f2,0xffdde4f0,0xffdce3f0,0xffd9e0ef,0xffd7dfed,0xffd8e0ee,0xffd6dff1,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff, | 837 | 0xffe4eaf5,0xffe2e8f3,0xffdfe6f2,0xffdde4f0,0xffdce3f0,0xffd9e0ef,0xffd7dfed,0xffd8e0ee,0xffd6dff1,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff, |
515 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xffffffff,0xffbbbfca,0xffb7bcc8,0xffb6bdca,0xffb6bdc9,0xffb2bbc9, | 838 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xffffffff,0xffbcc0ca,0xffb8bdc8,0xffb7beca,0xffb7bec9,0xffb3bcc9, |
516 | 0xffb3beca,0xffb2bdca,0xffb0bccc,0xffb0bccd,0xffafbccd,0xffacbccd,0xffaebcce,0xffacbace,0xffabb9cf,0xffa9bbd0,0xffa8bbd1,0xffd8e0ee,0xffd5dff0,0xff798aa6, | 839 | 0xffb4bfca,0xffb3beca,0xffb1bdcc,0xffb1bdcd,0xffb0bdcd,0xffadbdcd,0xffafbdce,0xffadbbce,0xffacbacf,0xffaabcd0,0xffa9bcd1,0xffd8e0ee,0xffd5dff0,0xff7a8ba7, |
517 | 0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xfffcfeff,0xfff2f6fd, | 840 | 0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xfffcfeff,0xfff2f6fd, |
518 | 0xfff0f4fc,0xffeef3fb,0xffedf2fb,0xffebf0f9,0xffeaeff9,0xffe8edf7,0xffe7edf7,0xffe6ecf6,0xffe3e9f4,0xffe1e8f3,0xffdfe6f2,0xffdde4f0,0xffdce3f0,0xffd9e1ee, | 841 | 0xfff0f4fc,0xffeef3fb,0xffedf2fb,0xffebf0f9,0xffeaeff9,0xffe8edf7,0xffe7edf7,0xffe6ecf6,0xffe3e9f4,0xffe1e8f3,0xffdfe6f2,0xffdde4f0,0xffdce3f0,0xffd9e1ee, |
519 | 0xffd8e0ee,0xffd7dfed,0xffd6dff1,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db, | 842 | 0xffd8e0ee,0xffd7dfed,0xffd6dff1,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db, |
520 | 0xfff2f7ff,0xffffffff,0xfff8fafe,0xffeff4fc,0xffeff4fc,0xffeef3fb,0xffedf2fb,0xffeaeff9,0xffeaeff9,0xffe8eef8,0xffe7edf7,0xffe6ecf6,0xffe3e9f4,0xffe0e7f3, | 843 | 0xfff2f7ff,0xffffffff,0xfff8fafe,0xffeff4fc,0xffeff4fc,0xffeef3fb,0xffedf2fb,0xffeaeff9,0xffeaeff9,0xffe8eef8,0xffe7edf7,0xffe6ecf6,0xffe3e9f4,0xffe0e7f3, |
521 | 0xffdfe6f2,0xffdce3f0,0xffdae2ef,0xffd8e0ee,0xffd8e0ee,0xffd7deed,0xffd6e0f2,0xff798aa6,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 844 | 0xffdfe6f2,0xffdce3f0,0xffdae2ef,0xffd8e0ee,0xffd8e0ee,0xffd7deed,0xffd6e0f2,0xff7a8ba7,0x23090806,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
522 | 0xffffff,0xffffff,0xffffff,0xffb9c5db,0xfff2f7ff,0xffffffff,0xfff8fafe,0xffeff4fc,0xffeff4fc,0xffeef3fb,0xffedf2fb,0xffeaeff9,0xffeaeff9,0xffe8eef8, | 845 | 0xffffff,0xffffff,0xffffff,0xffbac6db,0xfff2f7ff,0xffffffff,0xfff8fafe,0xffeff4fc,0xffeff4fc,0xffeef3fb,0xffedf2fb,0xffeaeff9,0xffeaeff9,0xffe8eef8, |
523 | 0xffb3becf,0xffb3c0d0,0xffe3e9f4,0xffe0e7f3,0xffdfe6f2,0xffdce3f0,0xffdae2ef,0xffd8e0ee,0xffd8e0ee,0xffd7deed,0xffd6e0f2,0xff798aa6,0x23090806,0xffffff, | 846 | 0xffb4bfcf,0xffb4c1d0,0xffe3e9f4,0xffe0e7f3,0xffdfe6f2,0xffdce3f0,0xffdae2ef,0xffd8e0ee,0xffd8e0ee,0xffd7deed,0xffd6e0f2,0xff7a8ba7,0x23090806,0xffffff, |
524 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xffeaf3ff,0xffffffff,0xfff8fafe,0xffeff4fc,0xffeff4fc,0xffeef3fb, | 847 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xffeaf3ff,0xffffffff,0xfff8fafe,0xffeff4fc,0xffeff4fc,0xffeef3fb, |
525 | 0xffedf2fb,0xffeaeff9,0xffeaeff9,0xffe8eef8,0xffe7edf7,0xffe6ecf6,0xffe3e9f4,0xffe0e7f3,0xffdfe6f2,0xffdce3f0,0xffdae2ef,0xffd8e0ee,0xffd8e0ee,0xffd7deed, | 848 | 0xffedf2fb,0xffeaeff9,0xffeaeff9,0xffe8eef8,0xffe7edf7,0xffe6ecf6,0xffe3e9f4,0xffe0e7f3,0xffdfe6f2,0xffdce3f0,0xffdae2ef,0xffd8e0ee,0xffd8e0ee,0xffd7deed, |
526 | 0xffd6e0f2,0xff798aa6,0x23080705,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffb9c5db,0xff798aa6,0xff798aa6, | 849 | 0xffd6e0f2,0xff7a8ba7,0x23080705,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffbac6db,0xff7a8ba7,0xff7a8ba7, |
527 | 0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6, | 850 | 0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7, |
528 | 0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0xff798aa6,0x280f0f0e,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 851 | 0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0xff7a8ba7,0x280f0f0e,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
529 | 0xffffff,0x60f0f0e,0x1b090808,0x340c0b0a,0x3b0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a, | 852 | 0xffffff,0x60f0f0e,0x1b090808,0x340c0b0a,0x3b0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a, |
530 | 0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x310e0e0d,0x1b111112,0xffffff,0xffffff,0xffffff, | 853 | 0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x3a0c0c0a,0x310e0e0d,0x1b111112,0xffffff,0xffffff,0xffffff, |
531 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x2111111,0xa111111,0x10111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111, | 854 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x2111111,0xa111111,0x10111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111, |
532 | 0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0xe111111, | 855 | 0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0xe111111, |
533 | 0x7111111,0xffffff | 856 | 0x7111111,0xffffff |
534 | }; | 857 | }; |
535 | 858 | ||
536 | static const QRgb Games_data[] = { | ||
537 | 0x0,0x0,0x0,0x186b7bdd,0xd77387d0,0x25101320,0x0,0x65060a2,0x3e4e5d9f,0x4d495794,0x3273052,0x0,0x0,0x0, | ||
538 | 0x0,0x0,0x0,0x2e6778cf,0xdc7386c8,0x4c434f89,0x635a6ab2,0xd37989c5,0xfdaabbe0,0xfdacbbdc,0x93505c93,0x51d2348,0x0,0x0, | ||
539 | 0x0,0x0,0x0,0x286472d0,0xfa7184d4,0xff7a8cce,0xffaec4ee,0xff96a5ff,0xffc0d4fd,0xffb7dfd9,0xffbac6de,0x80424c80,0x1050509,0x0, | ||
540 | 0x0,0x6674d6,0x306472ce,0xc47485d6,0xffa6bdef,0xffcbe5ff,0xffcdd7ed,0xffb2b6f0,0xffb5dade,0xff79c382,0xfff0fbfd,0xfba3acc9,0x452e3668,0x0, | ||
541 | 0x56876dd,0x7c6b7adc,0xf58399e1,0xff9ab1d2,0xffb9d3f2,0xffcbe5ff,0xffed9172,0xffe0c3b3,0xfff1cf6b,0xffebf6f9,0xfff4fcff,0xfff7fbfd,0xd1656d97,0x90f1228, | ||
542 | 0x9a6e80e5,0xff8ca7df,0xff9a9ea4,0xff979797,0xff75797f,0xffcde5fd,0xffd6ebff,0xffddeefa,0xffe0eceb,0xffd9edff,0xfff5fdff,0xfffcffff,0xffc5c9db,0x5c2d3667, | ||
543 | 0xbf738deb,0xff899fbc,0xff959595,0xff717171,0xff7d8083,0xffd0e7fe,0xffd2e8ff,0xffbcdbff,0xffa0c0f3,0xf66f84ba,0xfeacbadb,0xfff6fbff,0xffedf6ff,0xc0515e8f, | ||
544 | 0xa86c7fe0,0xff9fc1ed,0xff959ea9,0xff98a1ab,0xffbdd5ef,0xffabd0ff,0xff96bef9,0xfa738fcc,0xb0404d80,0x3d191e3a,0x81384378,0xfa7f93c3,0xff9db5e1,0xb93e497a, | ||
545 | 0x7c6574d3,0xff9ec4fe,0xffbcdbff,0xffc4dfff,0xff92baf8,0xf96c88cf,0xbb475690,0x50242b4c,0xb000000,0x0,0x1000000,0x45272e5c,0x76272e5c,0x280f1225, | ||
546 | 0x4a616fc8,0xff8eaff4,0xffbddcff,0xffc6e0ff,0xf77992d4,0x5122294a,0xd020205,0x1000000,0x0,0x0,0x0,0x0,0x1000000,0x0, | ||
547 | 0x125767b0,0xfb7997e6,0xffbfdcff,0xffc5e0ff,0xf06e89cb,0x1705060c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
548 | 0x14d5d9b,0xc56980d3,0xffb4d5ff,0xffb3d5ff,0xe05f77bc,0xf000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
549 | 0x0,0x675969b7,0xff7ca1ed,0xff7ba4ee,0xba4c5c99,0x7000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
550 | 0x0,0x6303c6d,0x72495694,0x813e4a7f,0x2715192e,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
551 | }; | ||
552 | |||
553 | static const QRgb Go_black_highlight_data[] = { | ||
554 | 0x28999b9c,0x2d949697,0x32959798,0x43868788,0x776f6f70,0x9a626263,0x93606060,0x60646565,0x31818384,0x22969899,0x1e939596,0x1b919394,0x2e9a9b9c,0x369c9d9f, | ||
555 | 0x6b7c7d7e,0xbc737474,0xe2696a6a,0xed656565,0xed616162,0xe35a5a5a,0xb24b4c4c,0x51555555,0x25818384,0x1c919394,0x34949697,0x6a848586,0xce7d7e7e,0xf97b7c7d, | ||
556 | 0xff767777,0xff767777,0xff727373,0xff5e5e5f,0xfa494a4a,0xcd393939,0x5b414243,0x237d7e7f,0x409c9e9f,0xb97f8080,0xf9838484,0xffaaabac,0xffa6a7a8,0xff9b9c9c, | ||
557 | 0xff717272,0xff5e5e5e,0xff505151,0xfc3f3f3f,0xb62e2f2f,0x46464748,0x68848585,0xde828283,0xffa0a1a2,0xffe5e6e6,0xffffffff,0xffa6a8a8,0xff7b7c7c,0xff666666, | ||
558 | 0xff545555,0xff434343,0xeb2d2d2e,0x7a2d2d2e,0x82777878,0xea757676,0xff919292,0xffbdbebe,0xffe6e6e7,0xffa2a3a4,0xff7f8080,0xff646565,0xff515152,0xff404040, | ||
559 | 0xfa2d2d2d,0xa3232324,0x766f7071,0xea6e6f6f,0xff787a7a,0xff7e8080,0xff949595,0xff757676,0xff646464,0xff575858,0xff4d4d4e,0xff404040,0xfc2d2d2d,0xb2202020, | ||
560 | 0x4a7c7e7e,0xda59595a,0xfe565757,0xff6c6d6d,0xff787878,0xff626262,0xff525354,0xff484849,0xff3c3c3c,0xff373838,0xfa242424,0xa91e1e1e,0x2e8d8f90,0x9b464747, | ||
561 | 0xf7484949,0xff5a5a5b,0xff636364,0xff515152,0xff454545,0xff3c3c3c,0xff373838,0xff2a2a2a,0xee191919,0x871e1f1f,0x26909293,0x4b585859,0xc0393939,0xfa414141, | ||
562 | 0xff4e4e4f,0xff434343,0xff3b3c3c,0xff333334,0xff2a2b2b,0xf81b1b1c,0xc0171717,0x572b2b2c,0x218e9091,0x28818384,0x5d444445,0xb52d2d2d,0xeb2e2f2f,0xfa2d2d2d, | ||
563 | 0xfd272728,0xfb1f2020,0xf1181818,0xc4171717,0x6f232424,0x2e4b4c4d,0x1e8e9091,0x1f929495,0x28787a7b,0x4b434445,0x842c2c2c,0xaf232323,0xc01c1d1d,0xb71a1a1b, | ||
564 | 0x931c1c1c,0x5c282929,0x2f4a4b4c,0x1b7c7e7e | ||
565 | }; | ||
566 | |||
567 | static const QRgb Go_black_data[] = { | ||
568 | 0x0,0x0,0x0,0x184a4a4a,0x664a4a4a,0x89454545,0x763c3c3c,0x302d2d2d,0x2000000,0x0,0x0,0x0,0x0,0x0, | ||
569 | 0x6d505050,0xf5535353,0xff525252,0xff4d4d4d,0xff454545,0xfd393939,0xb3272727,0x18080808,0x1000000,0x0,0x0,0x64505050,0xfe575757,0xff595959, | ||
570 | 0xff585858,0xff4d4d4d,0xff464646,0xff3d3d3d,0xff313131,0xce1a1a1a,0x1d000000,0x1000000,0xb474747,0xec525252,0xff575757,0xff989898,0xffa2a2a2,0xff4f4f4f, | ||
571 | 0xff434343,0xff3b3b3b,0xff313131,0xff212121,0x98090909,0x12000000,0x48474747,0xff515151,0xff545454,0xff888888,0xff787878,0xff474747,0xff3f3f3f,0xff373737, | ||
572 | 0xff2d2d2d,0xff212121,0xe80f0f0f,0x3f000000,0x64424242,0xff4b4b4b,0xff4c4c4c,0xff4c4c4c,0xff474747,0xff404040,0xff3a3a3a,0xff323232,0xff282828,0xff1e1e1e, | ||
573 | 0xf8111111,0x6e000000,0x4b363636,0xff434343,0xff444444,0xff424242,0xff3f3f3f,0xff3a3a3a,0xff333333,0xff2b2b2b,0xff222222,0xff1b1b1b,0xfa0e0e0e,0x82000000, | ||
574 | 0x101b1b1b,0xf1343434,0xff3b3b3b,0xff3a3a3a,0xff363636,0xff313131,0xff2b2b2b,0xff232323,0xff1c1c1c,0xff1a1a1a,0xf3050505,0x75000000,0x2000000,0x861d1d1d, | ||
575 | 0xff2d2d2d,0xff2f2f2f,0xff2c2c2c,0xff282828,0xff212121,0xff1c1c1c,0xff1b1b1b,0xfe0f0f0f,0xd8000000,0x4a000000,0x0,0x15000000,0xb4101010,0xfe1e1e1e, | ||
576 | 0xff1f1f1f,0xff1d1d1d,0xff1b1b1b,0xff1a1a1a,0xfe0e0e0e,0xed000000,0x8f000000,0x18000000,0x0,0x2000000,0x28000000,0x97020202,0xe90a0a0a,0xf90d0d0d, | ||
577 | 0xfb0a0a0a,0xf6030303,0xdf000000,0x95000000,0x2c000000,0x3000000,0x0,0x0,0x2000000,0x1b000000,0x55000000,0x89000000,0x9c000000,0x8b000000, | ||
578 | 0x58000000,0x1d000000,0x3000000,0x0 | ||
579 | }; | ||
580 | |||
581 | static const QRgb Go_white_data[] = { | ||
582 | 0x0,0x0,0x0,0x0,0x10d0d0d,0x730302c,0xb282825,0x7000000,0x2000000,0x0,0x0,0x0,0x0,0x0, | ||
583 | 0x1000000,0x50bdbdac,0xc7cecebb,0xf5d3d3c0,0xf8c3c3b1,0xde99998b,0x875b5b52,0x17030303,0x2000000,0x0,0x0,0x0,0x86cdcdba,0xfef7f7e2, | ||
584 | 0xfffdfde8,0xfff8f8e1,0xffe7e7d2,0xffcdcdba,0xffa6a697,0xd355554d,0x2a020202,0x2000000,0x0,0x4dc5c5b2,0xfef7f7e2,0xfffffff0,0xfffffff1,0xfffdfde9, | ||
585 | 0xffeeeed8,0xffd7d7c3,0xffb7b7a6,0xff87877a,0xbf2b2b27,0x1a000000,0x1000000,0xc4d1d1be,0xfffdfde8,0xfffffff1,0xfffffffd,0xfffffff7,0xffececd6,0xffd5d5c1, | ||
586 | 0xffb7b7a6,0xff8e8e81,0xfa474740,0x51000000,0x53e3e38,0xf4d4d4c0,0xfff8f8e1,0xfffdfde9,0xfffffff7,0xfffafaec,0xffe2e2cd,0xffcbcbb8,0xffafaf9e,0xff88887b, | ||
587 | 0xff4c4c45,0x8b070706,0x8383833,0xf7c3c3b2,0xffe7e7d2,0xffeeeed8,0xffececd6,0xffe2e2cd,0xffd1d1be,0xffbcbcaa,0xff9f9f90,0xff79796d,0xff40403a,0x9d070706, | ||
588 | 0x3000000,0xd89d9d8f,0xffcdcdba,0xffd7d7c3,0xffd5d5c1,0xffcbcbb8,0xffbcbcaa,0xffa6a697,0xff89897c,0xff616158,0xfe2c2c28,0x87010101,0x1000000,0x7a65655b, | ||
589 | 0xffa6a697,0xffb7b7a6,0xffb7b7a6,0xffafaf9e,0xff9f9f90,0xff89897c,0xff6a6a60,0xff3f3f39,0xf2161613,0x5b000000,0x0,0xe060605,0xca585851,0xff87877a, | ||
590 | 0xff8e8e81,0xff88887b,0xff79796d,0xff616158,0xff3f3f39,0xfc1e1e1b,0xa7010101,0x23000000,0x0,0x1000000,0x1f030303,0xb62d2d29,0xfa474740,0xff4c4c45, | ||
591 | 0xff40403a,0xfe2c2c28,0xf2161613,0xa7010101,0x39000000,0x5000000,0x0,0x0,0x1000000,0x14000000,0x44010100,0x7e080807,0x8e080807,0x7a010101, | ||
592 | 0x55000000,0x22000000,0x5000000,0x0 | ||
593 | }; | ||
594 | |||
595 | static const QRgb HelpButton_data[] = { | ||
596 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
597 | 0xffffff,0xffffff,0xffffff,0x3edcdcdc,0x93dbdbdb,0xd5dedede,0xfadcdcdc,0xd8d1d1d1,0x9ec8c8c8,0x509d9d9d,0xc000000,0x3000000,0xffffff,0xffffff, | ||
598 | 0xffffff,0xffffff,0x60dcdcdc,0xdbe3e3e3,0xffe2e2e2,0xffd3d3d3,0xffcecece,0xffcdcdcd,0xffd7d7d7,0xe6c5c5c5,0x838d8d8d,0x18000000,0x4000000,0xffffff, | ||
599 | 0xffffff,0x3edddcdc,0xdbdadada,0xffd8d8d8,0xffaaa9a9,0xff434343,0xff424142,0xff686768,0xffc4c4c4,0xffbdbdbd,0xec9e9d9e,0x75595959,0x18000000,0x3000000, | ||
600 | 0xffffff,0x94d5d6d5,0xffd1d0d0,0xffbdbdbd,0xff000000,0xff737373,0xffbdbdbd,0xff000000,0xff717171,0xffb6b7b6,0xffabaaaa,0xc8616161,0x3d000000,0xc000000, | ||
601 | 0xffffff,0xd5cbcbcb,0xffbbbbbb,0xffadadad,0xff6d6d6d,0xff868686,0xffb5b5b5,0xff000000,0xff6a6a6a,0xffb1b1b1,0xffb1b1b1,0xef616161,0x61000000,0x1a000000, | ||
602 | 0xffffff,0xfabfbfbf,0xffababab,0xffa4a4a4,0xffb2b2b2,0xffa6a6a6,0xff545454,0xff2a2a2a,0xff979797,0xffaeaeae,0xffa2a2a2,0xfd5d5d5d,0x7c000000,0x25000000, | ||
603 | 0xffffff,0xd9b0b0b0,0xffa0a0a0,0xffa6a6a6,0xff9f9f9f,0xff606060,0xff000000,0xffa0a0a0,0xffa6a6a6,0xffa3a3a3,0xff8c8c8c,0xf2484848,0x85000000,0x2b000000, | ||
604 | 0xffffff,0xa0949494,0xff9b9b9a,0xff9a9a9a,0xffa5a5a5,0xff9d9d9d,0xffa1a1a0,0xffa4a4a4,0xff9b9b9b,0xff9a9b9a,0xff6a696a,0xdf363636,0x7c000000,0x25000000, | ||
605 | 0xffffff,0x516f6f6f,0xe7818181,0xff8d8d8d,0xff949494,0xff545454,0xff353535,0xff9e9e9e,0xff8f8f8f,0xff737273,0xf5414141,0xbb1a1a1a,0x61000000,0x1a000000, | ||
606 | 0xffffff,0xc000000,0x84505050,0xed626262,0xff6f6e6e,0xff656565,0xff353535,0xff767576,0xff636263,0xf5414140,0xcd1f1f1f,0x83000000,0x3d000000,0xc000000, | ||
607 | 0xffffff,0x3000000,0x18000000,0x762f2f2f,0xc93b3b3b,0xf0404040,0xfd464646,0xf3393939,0xdf2a2a2a,0xbb161616,0x83000000,0x4b000000,0x18000000,0x3000000, | ||
608 | 0xffffff,0xffffff,0x4000000,0x18000000,0x3d000000,0x61000000,0x7c000000,0x85000000,0x7c000000,0x61000000,0x3d000000,0x18000000,0x4000000,0xffffff, | ||
609 | 0xffffff,0xffffff,0xffffff,0x3000000,0xc000000,0x1a000000,0x25000000,0x2b000000,0x25000000,0x1a000000,0xc000000,0x3000000,0xffffff,0xffffff | ||
610 | }; | ||
611 | |||
612 | static const QRgb Language_data[] = { | ||
613 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
614 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
615 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
616 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
617 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
618 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
619 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
620 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x411d62c2,0x431b5ebb,0x441859b7, | ||
621 | 0x441858b5,0x4000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
622 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x31216bc7,0x822069c7,0xc12068c6,0xf01f67c6, | ||
623 | 0xff1d65c6,0xff1c63c4,0xff1b60c2,0xff195ec1,0xff185cc0,0xff175abe,0xf01658bc,0xc31453b7,0x87124eb0,0x370f46a1,0x4000000,0x1000000,0x0,0x0, | ||
624 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x61246fcb,0xe0236ecb, | ||
625 | 0xff216cca,0xff387fda,0xff609de7,0xff85b7f1,0xffaad3ff,0xffacd4ff,0xffc4e2ff,0xffc3e2ff,0xffaad3ff,0xffa7d2ff,0xff80b2ee,0xff5993e1,0xff2e6ecf,0xff114fb7, | ||
626 | 0xe20f4cb4,0x6b0d42a2,0x8000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
627 | 0x512571cc,0xe02471cc,0xff2c77d2,0xff68a6eb,0xff7c9ebc,0xff737b7f,0xff505052,0xff2c2c2c,0xffb6bec2,0xffe6eef3,0xffe6edf3,0xffe4ecf2,0xffa9b1b7,0xff4f5355, | ||
628 | 0xff6e7a7f,0xffd7f3ff,0xffc9edff,0xff9fd0fa,0xff5d98e3,0xff1855bc,0xe30c45ae,0x5c093b99,0x7000000,0x2000000,0x0,0x0,0x0,0x0, | ||
629 | 0x0,0x0,0x0,0x902572cd,0xff2471cd,0xff579be6,0xffacddff,0xff161616,0xffa8a8a8,0xffffffff,0xffc8b8b9,0xffef0030,0xff503020,0xff484849, | ||
630 | 0xff606060,0xff808080,0xffb0b0b0,0xff989899,0xff4d5254,0xffd9f4ff,0xffd1f2ff,0xffc9efff,0xffc1edff,0xffa5dbff,0xff4883d8,0xff0942af,0x9d073a9d,0xd000000, | ||
631 | 0x2000000,0x0,0x0,0x0,0x0,0x0,0xa02672cd,0xff2976d1,0xff72b2f6,0xffb4e7ff,0xffc0edff,0xff404040,0xffc8c8c9,0xffffffff, | ||
632 | 0xffe06090,0xffff0000,0xff923822,0xffff0000,0xffef3060,0xffef97da,0xffffffff,0xffc8c8c9,0xff404040,0xffc8dbe5,0xffd1f2ff,0xffc9efff,0xffc1edff,0xffb9ebff, | ||
633 | 0xffb1e8ff,0xff70adf0,0xff0d45b1,0xae05379b,0x10000000,0x3000000,0x0,0x0,0x0,0x812673cd,0xff2a76d1,0xff6aacf6,0xffabe4ff,0xffb7eaff, | ||
634 | 0xffbfecff,0xff363636,0xffa0a0a0,0xffffffff,0xffff6060,0xffff0000,0xffef0000,0xffbc220c,0xffff0000,0xffff0000,0xffffcad5,0xffe0e0e0,0xff8c8c8c,0xff59626a, | ||
635 | 0xffcbecfa,0xffc8efff,0xffc0edff,0xffb8eaff,0xffb0e8ff,0xffa5e2ff,0xff5f9eef,0xff0b41ae,0x87022f8c,0xf000000,0x2000000,0x0,0x21256fc9,0xff2572ce, | ||
636 | 0xff5fa3f3,0xff8bcaff,0xffade7ff,0xffb5eaff,0xffbdecff,0xff222222,0xffa0a0a0,0xffffffff,0xffff8a76,0xffff0000,0xffd51616,0xff661616,0xff961616,0xffff0000, | ||
637 | 0xffff0000,0xffffffff,0xffa0a0a2,0xff3d4147,0xff56636d,0xffc5eeff,0xffbdecff,0xffb6eaff,0xffaee8ff,0xffa7e4ff,0xff89c8ff,0xff5290e9,0xff0236a6,0x3f011b54, | ||
638 | 0xa000000,0x1000000,0x912470cb,0xff3882da,0xff76b7ff,0xff90cfff,0xffabe6ff,0xffb2e9ff,0xffbaebff,0xff0c1c0c,0xff989899,0xffffffff,0xff806070,0xff384848, | ||
639 | 0xff585858,0xff262616,0xff000000,0xff6c3c3c,0xff800000,0xffb0b0b0,0xff646455,0xff223232,0xff101000,0xff60767f,0xffbbebff,0xffb3e9ff,0xfface7ff,0xffa6e3ff, | ||
640 | 0xff8bcaff,0xff70b1ff,0xff1c53bc,0xa8002b8c,0x18000000,0x4000000,0xe02470cc,0xff5da1ef,0xff7bbbff,0xff8dccff,0xffa8e5ff,0xffafe8ff,0xffb6eaff,0xff000000, | ||
641 | 0xff7e7e7f,0xffe0e0e0,0xff000000,0xff324222,0xff585858,0xff3c3c2c,0xff000000,0xff202010,0xff324232,0xff585858,0xff4e4e4e,0xff102010,0xff000000,0xff000000, | ||
642 | 0xffb6eaff,0xffb0e8ff,0xffa9e5ff,0xffa4e1ff,0xff8ac9ff,0xff74b5ff,0xff4d8ae3,0xe800309e,0x28000000,0xa000000,0xff236fcc,0xff70b2f9,0xff7fbfff,0xff84c3ff, | ||
643 | 0xffa0deff,0xffabe6ff,0xffb1e8ff,0xff000000,0xff747475,0xffe0e0e0,0xff000000,0xff201010,0xff8c2c2c,0xffd00000,0xff900000,0xff3c1c0c,0xff183828,0xff525242, | ||
644 | 0xff585858,0xff262616,0xff000000,0xff100000,0xffb2e9ff,0xffabe7ff,0xffa6e3ff,0xff9cdaff,0xff7fbfff,0xff78b9ff,0xff65a4f4,0xff0032a4,0x33000000,0x10000000, | ||
645 | 0xff226dcb,0xff7ebeff,0xff83c3ff,0xff88c7ff,0xff8ecdff,0xffa3e1ff,0xfface7ff,0xff000000,0xff586859,0xffc8c8c9,0xff100000,0xff900000,0xffef0000,0xffff0000, | ||
646 | 0xffb00000,0xff700000,0xff501000,0xff7c2c2c,0xff7c422c,0xff961616,0xffa00000,0xff800000,0xff56737f,0xffa7e4ff,0xff9fddff,0xff87c7ff,0xff81c1ff,0xff7cbcff, | ||
647 | 0xff77b7ff,0xff0032a4,0x38000000,0x12000000,0xf0216bc8,0xff6aacf1,0xff87c6ff,0xff8ccbff,0xff91cfff,0xff95d4ff,0xffa0ddff,0xff000000,0xff2c2c2c,0xff9aa6b2, | ||
648 | 0xff400000,0xffa00000,0xffe00000,0xffff0000,0xffe02000,0xffa02000,0xff5c0c0c,0xffd00000,0xffff0000,0xffff0000,0xffc00000,0xff800000,0xff53717f,0xff9cdaff, | ||
649 | 0xff8fceff,0xff8ac9ff,0xff85c4ff,0xff7fbfff,0xff5c99e8,0xf40031a1,0x39000000,0x13000000,0xb41f66c3,0xff4c91df,0xff8acaff,0xff90ceff,0xff95d3ff,0xff9ad8ff, | ||
650 | 0xff9edcff,0xff000000,0xffa9e5ff,0xffb7d1e6,0xff200000,0xff900000,0xffd04600,0xffffdf00,0xffffff00,0xffefb000,0xff763c16,0xffd02c00,0xffff0000,0xffff0000, | ||
651 | 0xffd03600,0xffb02c00,0xff4d6c7f,0xff97d6ff,0xff92d1ff,0xff8dccff,0xff88c7ff,0xff83c2ff,0xff3770cc,0xc7002c90,0x35000000,0x11000000,0x491b5aaf,0xff246bc9, | ||
652 | 0xff87c6fb,0xff93d2ff,0xff98d7ff,0xff9ddbff,0xffa2e0ff,0xff53717f,0xffade7ff,0xffb8d0e6,0xff000000,0xffdf6000,0xffffa000,0xffffff00,0xffffff00,0xffffc000, | ||
653 | 0xff9c4c0c,0xffd0b020,0xffffc000,0xffffc000,0xffffc000,0xffff8000,0xff4f6e7f,0xff9bd9ff,0xff96d4ff,0xff91cfff,0xff8bcaff,0xff7dbcf9,0xff083baa,0x74001c5b, | ||
654 | 0x2c000000,0xc000000,0x5000000,0xc61b60bd,0xff397dd2,0xff96d5ff,0xff9cdaff,0xffa1dfff,0xffa6e3ff,0xfface7ff,0xffb3e9ff,0xffb9d0e6,0xff000000,0xffff8000, | ||
655 | 0xffefb000,0xffa08600,0xff707020,0xffa6602c,0xff7c480c,0xffb09020,0xffffff00,0xffffff00,0xffffdf00,0xffef7600,0xff51707f,0xff9fdcff,0xff99d7ff,0xff94d2ff, | ||
656 | 0xff8ecdff,0xff2258bb,0xd2002d95,0x3d000000,0x1d000000,0x5000000,0x1000000,0x1d0f366c,0xf21a5ebf,0xff498bd8,0xff9fdcff,0xffa4e2ff,0xffaae6ff,0xffb2e9ff, | ||
657 | 0xffbaebff,0xffbbd0e5,0xff000000,0xffdf8000,0xff705030,0xffa4a7ac,0xffadb2b9,0xff705600,0xff564626,0xffefb000,0xffb09000,0xff808000,0xff806000,0xff4b5a40, | ||
658 | 0xffa7e4ff,0xffa2dfff,0xff9cdaff,0xff96d5ff,0xff366dc6,0xe900309d,0x51000a20,0x2c000000,0xe000000,0x1000000,0x0,0x4000000,0x4311438a,0xe61658b9, | ||
659 | 0xff3072c9,0xff95d2f7,0xffafe8ff,0xffb7eaff,0xffbfedff,0xffbad0e4,0xff000000,0xff505356,0xffbfc9d9,0xffbdc7d8,0xffbbc6d7,0xffa9afba,0xff7d838e,0xff565c66, | ||
660 | 0xff838c9b,0xffb1bdd2,0xff8fabc1,0xffb3e9ff,0xffabe6ff,0xffa4e2ff,0xff8bc7f4,0xff1d51b5,0xdd002f9a,0x6900174b,0x33000000,0x16000000,0x4000000,0x0, | ||
661 | 0x0,0x0,0x7000000,0x2809244c,0xbf1350ad,0xff1d5dbf,0xff629ddc,0xffb1e2fb,0xffc4eeff,0xffc8ebfa,0xff000000,0xffb9ced8,0xffbed0d8,0xffc1d0d8, | ||
662 | 0xffc2d0d8,0xffbfd0d8,0xffbbcfd8,0xffb6cdd8,0xffb0ccd8,0xffaac9d8,0xffacd4e4,0xffb7eaff,0xffa3dcf9,0xff538bd2,0xff0a3daa,0xc7002c90,0x50000a21,0x32000000, | ||
663 | 0x19000000,0x6000000,0x0,0x0,0x0,0x0,0x1000000,0x6000000,0x16000000,0x600d377c,0xce104aaa,0xff104eb6,0xff5489d1,0xffa0c7ec, | ||
664 | 0xffd9f4ff,0xffe1f6ff,0xffe9f9ff,0xffeefaff,0xfff0fbff,0xffecfaff,0xffe6f8ff,0xffdef5ff,0xffd5f3ff,0xffc0e4f9,0xff86b3e3,0xff4677c6,0xff0032a4,0xd2002d95, | ||
665 | 0x75001b59,0x3d000000,0x2b000000,0x15000000,0x6000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0xe000000, | ||
666 | 0x1e000000,0x56082a65,0xda0d46aa,0xff3f72c5,0xffdcf5ff,0xffe5f8ff,0xffeefaff,0xffe7f0fa,0xff8ea8da,0xff7b9ad4,0xff7698d3,0xff3965bc,0xff2957b6,0xff0032a4, | ||
667 | 0xe900309d,0xbb002b8c,0x6800174c,0x3c000000,0x2f000000,0x1e000000,0xe000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
668 | 0x0,0x0,0x0,0x1000000,0x6000000,0xf000000,0xe30c47af,0xff89b2e2,0xffddf5ff,0xffe6f8ff,0xffa6bfe5,0xff1548b0,0xdd05379f,0xa4032c83, | ||
669 | 0xa2022b84,0xa1012983,0x71001c5d,0x5700123c,0x3b000000,0x34000000,0x29000000,0x1b000000,0xf000000,0x6000000,0x1000000,0x0,0x0,0x0, | ||
670 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x410c46af,0xff1751b6,0xffc6e7fa,0xffc0def5,0xff3e6dc1, | ||
671 | 0xf4063ca8,0x99042b7d,0x41000000,0x33000000,0x29000000,0x26000000,0x24000000,0x1e000000,0x17000000,0x11000000,0xb000000,0x5000000,0x1000000,0x0, | ||
672 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa10b45af, | ||
673 | 0xff5284ce,0xff6c99d6,0xff083fad,0xc7063697,0x5c02153c,0x38000000,0x24000000,0x13000000,0xb000000,0xa000000,0x8000000,0x5000000,0x2000000,0x1000000, | ||
674 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
675 | 0x0,0x0,0x100b45b0,0xff0a44b0,0xff154db3,0xe8083da6,0x8104266b,0x3e000000,0x2c000000,0x19000000,0xa000000,0x2000000,0x0,0x0, | ||
676 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
677 | 0x0,0x0,0x0,0x0,0x0,0x0,0x720a43ad,0xff0942af,0x9b073690,0x4d020d24,0x34000000,0x20000000,0xf000000,0x4000000, | ||
678 | 0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
679 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15083385,0x35052869,0x2c000000,0x27000000, | ||
680 | 0x15000000,0x8000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
681 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
682 | 0x3000000,0xb000000,0x11000000,0xb000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
683 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
684 | 0x0,0x0,0x0,0x0,0x0,0x1000000,0x2000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
685 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
686 | 0x0,0x0 | ||
687 | }; | ||
688 | |||
689 | static const QRgb MPEGPlayer_data[] = { | ||
690 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2a4a6dc, | ||
691 | 0xfa4a6dc,0x18a4a6dc,0x18a4a6dc,0x26a4a6dc,0x27a4a6dc,0x14a4a6dc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
692 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
693 | 0x2a0a1b6,0x1fa3a4bb,0x579d9fba,0x979a9bbc,0xb6989ac1,0xc29698c3,0xc29698c4,0xd09698c8,0xd0989acb,0xb18f91bc,0x708486a5,0x2885869e,0x8727496,0x0, | ||
694 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
695 | 0x0,0x0,0x6a5a6b6,0x419e9fbd,0x95a9aac6,0xefb8b9d1,0xfecbcce0,0xffe4e5f1,0xffefeff9,0xfff4f5ff,0xfff3f3ff,0xffefeffe,0xffe5e6f7,0xffd2d3ec, | ||
696 | 0xffb9bbdf,0xf59c9ec7,0xb98688b3,0x5174779f,0x156b6d91,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0xcc917107,0xcd876b09, | ||
697 | 0xf4a5a293,0xffb1b1b1,0xffcbcbcb,0xf4a4a4a4,0x339e9e9e,0x11a7a7b5,0x70a3a3bc,0xe0bebfd4,0xfce0e0eb,0xfff6f6fa,0xfffcfcfe,0xfff9f9ff,0xfff6f7ff,0xfff3f4ff, | ||
698 | 0xfff1f1ff,0xffedeeff,0xffebecff,0xffe8e9ff,0xffe6e7fe,0xffd9dbf6,0xffc3c5e7,0xea989ac4,0xa27c7fac,0x1f66678b,0x320212f,0x0,0x0,0x0, | ||
699 | 0x0,0x0,0xcc6b5803,0xcc5f5103,0xd25c541a,0xf497968b,0xffa4a4a4,0xffcacaca,0xe39a9a9a,0xc9ababb7,0xfcd5d6e3,0xfffcfcff,0xfffefeff,0xffffffff, | ||
700 | 0xfffdfdff,0xfff9faff,0xfff7f7ff,0xfff4f4ff,0xfff1f1ff,0xffedeeff,0xffebecff,0xffe7e9ff,0xffe5e6ff,0xffe2e3ff,0xffdfe1ff,0xffd7d9fa,0xffaaaddf,0xd77e7fb3, | ||
701 | 0x576b6c99,0x6222332,0x1000000,0x0,0x0,0x0,0xcc413f01,0xcc474201,0xcc514903,0xcd74600b,0xf4a19a84,0xff9a9a9a,0xffa5a5a5,0xff9e9e9e, | ||
702 | 0xffe0e1e5,0xfffbfbff,0xfffdfdff,0xffffffff,0xfffefeff,0xfffbfbff,0xfff8f8ff,0xfff4f5ff,0xfff2f2ff,0xffedeeff,0xffeaebff,0xffe6e8ff,0xffe4e5ff,0xffe1e2ff, | ||
703 | 0xffdee0ff,0xffd3d5ff,0xffbbbef6,0xfe9396cf,0xe07274aa,0x425c5d88,0x71b1b27,0x0,0x0,0x0,0xcc756006,0xcc8d720a,0xcca5850f,0xccb59415, | ||
704 | 0xd5bda42f,0xfca09b81,0xff9d9d9d,0xff949494,0xff979798,0xffe3e3e7,0xfffbfbff,0xfffefeff,0xfffefeff,0xfffcfcff,0xfff9f9ff,0xfff4f5ff,0xfff2f2ff,0xffedeeff, | ||
705 | 0xffeaebff,0xffe5e6ff,0xffe3e4ff,0xffdfe1ff,0xffd8daff,0xffbec1f7,0xffa7aae4,0xff8f92cc,0xff787bb4,0xdb5f6197,0x4c53547e,0x5000000,0x0,0x0, | ||
706 | 0xccbe9f19,0xcccaac1f,0xccd2b726,0xcdd6be2b,0xe1d6c23a,0xfed8c955,0xff9e9a80,0xff8c8c8c,0xffababab,0xff838384,0xffdddde1,0xfffdfdff,0xfffefeff,0xfffdfdff, | ||
707 | 0xfffafaff,0xfff4f5ff,0xfff2f2ff,0xffecedff,0xffe9eaff,0xffe4e5ff,0xffe1e3ff,0xffdcdeff,0xffc9cbfc,0xffa9ace6,0xff9598d2,0xff7e81bb,0xff6f72ac,0xfd6567a0, | ||
708 | 0xbd5b5d8f,0x17242534,0x3000000,0x0,0xccd8c12d,0xccdbc630,0xccdfcb35,0xd8dbc738,0xf8d5c247,0xffdbc556,0xffcbb757,0xff8e8976,0xff7b7b7b,0xffb2b2b2, | ||
709 | 0xff808081,0xffdedfe2,0xfffdfdff,0xfffefeff,0xfffbfbff,0xfff5f5ff,0xfff0f1ff,0xffebecff,0xffe7e8ff,0xffe2e4ff,0xffdee0ff,0xffcbcdfd,0xffadb0ea,0xff8f92cc, | ||
710 | 0xff7b7eb8,0xff6d70aa,0xff7174ae,0xff777ab4,0xfe686aa3,0x764f517a,0x12181924,0x1000000,0xccddc834,0xccdac130,0xccd3b728,0xe8c8ad30,0xfec5ad41,0xffc7af47, | ||
711 | 0xffb7a34d,0xff878370,0xff85826c,0xff707070,0xff878787,0xff7e7e7f,0xffd9d9dc,0xfffefeff,0xfffcfcff,0xfff8f8ff,0xfff3f4ff,0xffeeeeff,0xffe7e8ff,0xffe0e2ff, | ||
712 | 0xffd7daff,0xffb1b4ed,0xff9497d1,0xff787bb5,0xff6e71ab,0xff7477b1,0xff7d80ba,0xff8588c2,0xff7c7fb9,0xc7575a8d,0x3434364f,0x4000000,0xccc9ac23,0xccc3a51e, | ||
713 | 0xd1bb9e1a,0xfbbda433,0xffc6ae45,0xffc2ac4d,0xff898571,0xffb2a863,0xffc7be5e,0xff89866a,0xff777777,0xff6b6b6b,0xff757576,0xffd9d9de,0xffeeefff,0xffd6d8fe, | ||
714 | 0xffcccefb,0xffc9ccf7,0xffd4d6fa,0xffd9dbff,0xffbbbef3,0xff8e91cb,0xff7679b3,0xff6f72ac,0xff7a7db7,0xff8588c2,0xff8c8fc9,0xff9396d0,0xff9295cf,0xf56a6da4, | ||
715 | 0x7945476e,0xd000000,0xccbd9c17,0xccc2a31a,0xdbc7aa24,0xffceb843,0xffc8b85b,0xff8c8874,0xffc3bb6c,0xffe8dc65,0xffe5e16e,0xffece26f,0xff848165,0xff686868, | ||
716 | 0xff878787,0xff5d5d60,0xffb6b8d8,0xffc7c9fe,0xffbabdf7,0xffabaee8,0xffaeb1eb,0xffb2b5ec,0xff9497d1,0xff7376b0,0xff7275af,0xff8083bd,0xff8a8dc7,0xff9396d0, | ||
717 | 0xff989bd5,0xff9da0da,0xff9fa2dc,0xff7a7db6,0xae4d4f7e,0x18000000,0xd0cbb130,0xccd9c22e,0xe7dac83d,0xffd6cb5e,0xff8e8b76,0xffc2bd74,0xfff2e971,0xffede46e, | ||
718 | 0xffe6e06f,0xfff2e46c,0xffdbcd65,0xff767257,0xff515151,0xff9a9a9a,0xff59595b,0xffb5b8d9,0xffbbbef5,0xffacafe9,0xffb5b8f2,0xffb7baf4,0xff8c8fc9,0xff7a7db7, | ||
719 | 0xff8b8ec8,0xff9699d3,0xff9c9fd9,0xffa1a4de,0xffa5a8e2,0xffa9ace6,0xffabaee8,0xff9294ce,0xe1525588,0x27000000,0xf699967e,0xd3ded251,0xeed6cc58,0xff8f8d77, | ||
720 | 0xffc7bf72,0xffeee26e,0xffe9db69,0xffe1d262,0xffd3c65c,0xffd8c556,0xffceb94e,0xffbca848,0xff645f48,0xff474747,0xff6d6d6d,0xff55555a,0xff72749f,0xff9294ca, | ||
721 | 0xffb8bbf4,0xffc5c8fe,0xffbbbef5,0xff9295cf,0xff9ea1db,0xffa5a8e2,0xffa9ace6,0xffaeb1eb,0xffb1b4ee,0xffb3b6f0,0xffb5b8f2,0xffa1a4dd,0xf551538a,0x30000000, | ||
722 | 0xff909090,0xf88e8d7b,0xfc8c8a72,0xffbaaf6c,0xffe0d061,0xffdac85b,0xffd0bc53,0xffc4b04a,0xffb5a546,0xffbca441,0xffb1993d,0xffa8903a,0xff94803a,0xff534f3f, | ||
723 | 0xff505050,0xff424242,0xf63e3e40,0xbf3f3f51,0xf29798c2,0xffd3d5ff,0xffd4d6ff,0xffb0b3ed,0xffb5b8f2,0xffb9bcf6,0xffbbbef7,0xffbec1f9,0xffc0c3fb,0xffc1c4fc, | ||
724 | 0xffc2c5fd,0xffafb2e9,0xff4e518a,0x39000000,0xffababab,0xff7b7b7b,0xfc86826b,0xffbdab55,0xffbea848,0xffb69f43,0xffac953e,0xffa28a39,0xff988639,0xff9d8737, | ||
725 | 0xff917f36,0xff867836,0xff7b7135,0xff6b6635,0xff3f4036,0xff454545,0xff606060,0xec262627,0xd76a6a82,0xffe1e2ff,0xffe0e1ff,0xffc2c5fc,0xffcbcdfe,0xffcccfff, | ||
726 | 0xffcdd0ff,0xffcdd0ff,0xffcdd0ff,0xffced1ff,0xffced1ff,0xffb7baea,0xff4d5088,0x3e000000,0xe47b7b7b,0xffb2b2b2,0xff707070,0xff767263,0xff978039,0xff927a31, | ||
727 | 0xff86722f,0xff7a6a2b,0xff766f35,0xff797035,0xff6e6934,0xff686534,0xff626234,0xff6b6734,0xff4d4a32,0xff3c392f,0xff272727,0xff828282,0xfc2a2a2c,0xffc1c3ce, | ||
728 | 0xffebecfe,0xffced0ff,0xffdee0ff,0xffdddfff,0xffdddeff,0xffdcddff,0xffdbddff,0xffdadcff,0xffd9dbff,0xffc0c2ea,0xfe4f5187,0x3f000000,0x2b757575,0xd6707070, | ||
729 | 0xff878787,0xff7d7d7d,0xff666256,0xff695d2f,0xff5d5526,0xff504c24,0xff565a34,0xff6b6734,0xff736c35,0xff887a37,0xff9d8a3b,0xff695e35,0xff555035,0xffac9a44, | ||
730 | 0xff4b472d,0xff1d1d1d,0xff585858,0xff383839,0xffb6b8c7,0xffd3d5fe,0xffe4e5ff,0xffe2e3ff,0xffe1e3ff,0xffdfe1ff,0xffdfe1ff,0xffdee0ff,0xffdee0ff,0xffbbbee6, | ||
731 | 0xf64e5186,0x3f000000,0x0,0x1f6d6d6d,0xef706f6f,0xff6a6a6a,0xff6e6e6e,0xff54544e,0xff4a4928,0xff655b26,0xff867a39,0xffa6903c,0xffb59d40,0xffbda644, | ||
732 | 0xff7a6e3b,0xff5d5938,0xffc9ba52,0xffd6c858,0xffc8bc56,0xff444127,0xff272727,0xff1b1b1b,0xff2d2e30,0xffb7bacb,0xffe8eafe,0xffe7e8ff,0xffe5e6ff,0xffe4e5ff, | ||
733 | 0xffe3e4ff,0xffe1e3ff,0xffe1e3ff,0xffaaacd7,0xe24a4c7c,0x3b000000,0x0,0x0,0x6371625c,0xff636166,0xff878787,0xff515151,0xff575245,0xff978137, | ||
734 | 0xffbaa747,0xffcfb84c,0xffd6c251,0xff867b41,0xff5a573a,0xffcec359,0xffd9cc5c,0xffd7c95b,0xffd2c157,0xffb9a94c,0xff38331c,0xff232323,0xff363636,0xff1b1c1e, | ||
735 | 0xffb5b7c6,0xffeaebfe,0xffe9eaff,0xffe6e8ff,0xffe6e7ff,0xffe4e5ff,0xffe2e3fe,0xff9193c1,0xc33d3f67,0x35000000,0x0,0x0,0xf735b4c,0xda796d76, | ||
736 | 0xff57575d,0xff9a9a9a,0xff464646,0xff555242,0xffc0b453,0xffdccc59,0xff877f45,0xff5e5939,0xffcfbf56,0xffd3c155,0xffccb951,0xffc5b24c,0xffbfac48,0xffbba746, | ||
737 | 0xffb09e42,0xff302c14,0xff000000,0xff6f6f6f,0xff121213,0xffbcbecc,0xffebecfe,0xffeaebff,0xffe8eaff,0xffe7e9ff,0xffd1d2ef,0xf46b6da1,0x9123243f,0x2a000000, | ||
738 | 0x0,0x0,0x24f3f2f,0x83816f6e,0xfc7f7a96,0xff52525b,0xff6c6c6c,0xff575757,0xff59573f,0xff787243,0xff555035,0xffc1ac4b,0xffc7b14a,0xffc1ac48, | ||
739 | 0xffbfaa46,0xffc0aa46,0xffc4b049,0xffc9b54d,0xffcebd53,0xffbeb350,0xff343217,0xff000000,0xff525252,0xff262628,0xffb6b8c7,0xffecedfe,0xffebecff,0xffe7e8fd, | ||
740 | 0xffb2b4dc,0xd8444674,0x6510111d,0x1e000000,0x0,0x0,0x0,0x2b796651,0xc68c7e80,0xff9192be,0xff53535b,0xff414141,0xff4c4c4c,0xff38362e, | ||
741 | 0xffa69440,0xffc6ae46,0xffc5af48,0xffc9b34b,0xffcdbb50,0xffd2c456,0xffd7cc5c,0xffddd362,0xffe2da67,0xffe6df6c,0xffdad569,0xff35341a,0xff111111,0xff121212, | ||
742 | 0xff262628,0xffbbbdcc,0xffecedfe,0xffd0d2ed,0xfa777bad,0x951b1d35,0x3e030304,0x10000000,0x0,0x0,0x0,0x73f3427,0x6082715e,0xfc9793ae, | ||
743 | 0xff9497c4,0xff4b4c54,0xff5f5f5f,0xff272727,0xff433e29,0xffbeac4b,0xffd6c657,0xffdbce5c,0xffe0d663,0xffe4dc69,0xffe9e36e,0xffebe470,0xffebe571,0xffeae370, | ||
744 | 0xffe5dd6e,0xffa8a14f,0xff000000,0xff1e1e1e,0xff2b2b2b,0xff1c1d1f,0xffafb3c3,0xfe989cc7,0xd740446e,0x5a07070c,0x28000000,0x7000000,0x0,0x0, | ||
745 | 0x0,0x1000000,0x91a170d,0x9a8b8073,0xf6a3a1bc,0xffa6a9da,0xff3c3d45,0xff828282,0xff1d1d1d,0xff383623,0xffcbc55e,0xffebe46e,0xffeee772,0xffece571, | ||
746 | 0xffe9e16d,0xffe5db6b,0xffdfd365,0xffd6c95e,0xffb4a74d,0xff262310,0xff73682c,0xff26220e,0xff000000,0xff6f6f6f,0xff0a0a0d,0xe743476a,0x8116182b,0x31000000, | ||
747 | 0x12000000,0x2000000,0x0,0x0,0x0,0x0,0x2000000,0x285e5542,0xa88d8579,0xfeafaed2,0xffa2a9d5,0xff35353b,0xff575757,0xff2f2f2f, | ||
748 | 0xff3a3821,0xffd3cb64,0xffe6db6a,0xffe0d364,0xffd7ca5e,0xffcebf56,0xffc4b44e,0xffa3943f,0xff221f0e,0xff675a26,0xff9f8b3b,0xff837333,0xff1f1c0c,0xff000000, | ||
749 | 0xff606060,0xf308090c,0x7c0c1422,0x1b000000,0x7000000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x171f1c12,0x9f837e71, | ||
750 | 0xefa3a3b6,0xffb7b8d3,0xff37373c,0xff191919,0xff2b2b2b,0xff252312,0xffb1a248,0xffc1af4b,0xffb7a545,0xffae9a40,0xff8f7e34,0xff1e1b0b,0xff5a4f24,0xff857736, | ||
751 | 0xff7c7136,0xff706a35,0xff5f5e32,0xff11120b,0xff0b0b0b,0xff171717,0xf6181819,0x7000000,0x1000000,0x0,0x0,0x0,0x0,0x0, | ||
752 | 0x0,0x1000000,0x5000000,0x25373426,0x7a6a685e,0xe89999a2,0xfe999ab0,0xff2e2f32,0xff353535,0xff000000,0xff231f0d,0xff958236,0xff9c873a,0xff827231, | ||
753 | 0xff1b170a,0xff4a4522,0xff716b35,0xff656334,0xff5a5c34,0xff525833,0xff5f6034,0xff645f30,0xff201c0d,0xff1f1f1f,0xff222222,0x1000000,0x0,0x0, | ||
754 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5000000,0x11000000,0x3f2b2b24,0x8d5e5e5b,0xdc717282,0xfd16171a,0xff6f6f6f, | ||
755 | 0xff000000,0xff151309,0xff595126,0xff15140a,0xff3b3d22,0xff5b5d33,0xff5c5d34,0xff656335,0xff7d7337,0xff91823b,0xffa18f3e,0xffb09c43,0xffb5a446,0xff2c2912, | ||
756 | 0xff000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0xe010101, | ||
757 | 0x21090909,0x5031312f,0x922f2f35,0xf4050607,0xff515151,0xff1a1a1a,0xff000000,0xff3d3d21,0xff6c6835,0xff7f7437,0xff93833a,0xffa5923f,0xffb39f43,0xffbdaa48, | ||
758 | 0xffc4b44d,0xffcabc52,0xffcec257,0xffb9b051,0xff7c7b3b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
759 | 0x0,0x0,0x0,0x1000000,0x4000000,0xd000000,0x18000000,0x40000000,0xde020202,0xf3000000,0xe1000000,0xff181509,0xff8f7e36,0xffb2a044, | ||
760 | 0xffbbab49,0xffc1b44f,0xffc5bb53,0xffc9c058,0xffcbc359,0xffcac25b,0xffcac05a,0xffc4b855,0xffb4a94e,0x0,0x0,0x0,0x0,0x0, | ||
761 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x4000000,0x21000000,0x50000000,0x6e000000, | ||
762 | 0x57000000,0x7f000000,0x7f3f3a19,0x7d777131,0x7c7c7735,0x7983803a,0x7688863e,0x748c8b42,0x748c8a41,0x738a853e,0x7388803c,0x73827a37,0x668c843b,0x0, | ||
763 | 0x0,0x0 | ||
764 | }; | ||
765 | |||
766 | static const QRgb OKButton_data[] = { | ||
767 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
768 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
769 | 0xffffff,0xffffff,0xffffff,0xffffff,0x3edcdcdc,0x93dbdbdb,0xd5dfdfdf,0xfededede,0xf8d9d9d9,0xeedcdcdc,0xe1d8d8d8,0xdcdadada,0xe1dadada,0xe6dbdbdb, | ||
770 | 0xecdddddd,0xf1dcdcdc,0xf6dcdcdc,0xfbdddddd,0xfedddddd,0xffdedede,0xffdddddd,0xd9d2d2d2,0xa1c8c8c8,0x519e9e9e,0xc000000,0x3000000,0xffffff,0xffffff, | ||
771 | 0xffffff,0xffffff,0xffffff,0x5fdcdcdc,0xdbe3e3e3,0xffe2e2e2,0xffd3d3d3,0xffcecece,0xffcccccc,0xffd5d5d5,0xffd0d0d0,0xffcdcdcd,0xffcecece,0xffcecece, | ||
772 | 0xffcdcdcd,0xffcccccc,0xffcdcdcd,0xffcecece,0xffd1d1d1,0xffd2d2d2,0xffd3d3d3,0xffd4d4d4,0xffdcdcdc,0xe7c7c7c7,0x848e8e8e,0x18000000,0x4000000,0xffffff, | ||
773 | 0xffffff,0xffffff,0x3edddcdc,0xdbdadada,0xffd8d8d8,0xffcac9c9,0xffc6c6c6,0xffc2c1c2,0xffc4c3c4,0xffa6a6a6,0xff414141,0xff424242,0xff676767,0xffc4c4c4, | ||
774 | 0xffa4a4a4,0xff424242,0xffa6a5a6,0xffcbcacb,0xff8a898a,0xffb3b2b3,0xffd6d5d6,0xffd6d5d6,0xffd3d3d3,0xffc5c6c5,0xeda2a1a2,0x765a5a5a,0x18000000,0x3000000, | ||
775 | 0xffffff,0xffffff,0x93d4d5d4,0xffd1d0d0,0xffbcbcbc,0xffbab9b9,0xffbdbdbd,0xffbcbcbc,0xffbbbaba,0xff000000,0xff6d6e6d,0xffbdbdbd,0xff000000,0xff727272, | ||
776 | 0xff929292,0xff000000,0xff979797,0xff7b7b7b,0xff272727,0xffb1b1b1,0xffd1d1d1,0xffd1d1d1,0xffd0d0d0,0xffc7c8c7,0xffb3b2b2,0xc9626262,0x3d000000,0xc000000, | ||
777 | 0xffffff,0xffffff,0xd5cbcbcb,0xffb8b8b8,0xffa7a7a7,0xffaeaeae,0xffa9a8a8,0xffb1b1b1,0xffa6a6a6,0xff000000,0xff686868,0xffb6b6b6,0xff000000,0xff686868, | ||
778 | 0xff868686,0xff000000,0xff595959,0xff252525,0xff9d9d9d,0xffc4c4c4,0xffc0c0c0,0xffbcbcbc,0xffc6c6c6,0xffc5c5c5,0xffbbbbbb,0xf0666666,0x61000000,0x1a000000, | ||
779 | 0xffffff,0xffffff,0xfabebebe,0xffa4a4a4,0xff979797,0xffa8a8a8,0xffa0a0a0,0xff9b9b9b,0xffa1a1a1,0xff000000,0xff636363,0xffa4a4a4,0xff000000,0xff5f5f5f, | ||
780 | 0xff7a7a7a,0xff000000,0xff000000,0xff9f9f9f,0xffbbbbbb,0xffadadad,0xffa7a7a7,0xffb2b2b2,0xffbcbcbc,0xffc2c2c2,0xffadadad,0xfd626262,0x7c000000,0x25000000, | ||
781 | 0xffffff,0xffffff,0xd8adadad,0xff989898,0xff959595,0xff8b8b8b,0xff939393,0xff9a9a9a,0xff939393,0xff000000,0xff585858,0xff979797,0xff000000,0xff5b5b5b, | ||
782 | 0xff757575,0xff000000,0xff2b2b2b,0xff2f2f2f,0xffa9a9a9,0xffb3b3b3,0xffadadad,0xffadadad,0xffb8b8b8,0xffb4b4b4,0xff959595,0xf24a4a4a,0x85000000,0x2b000000, | ||
783 | 0xffffff,0xffffff,0x9e919191,0xff949493,0xff868787,0xff8c8c8c,0xff818181,0xff888887,0xff8a8a8a,0xff000000,0xff545654,0xff848384,0xff000000,0xff4f4f4f, | ||
784 | 0xff676766,0xff000000,0xff737372,0xff4e4e4d,0xff3c3c3c,0xff9e9e9e,0xffaeaeae,0xffb2b2b2,0xffacacac,0xffa5a6a5,0xff706f70,0xdf373737,0x7c000000,0x25000000, | ||
785 | 0xffffff,0xffffff,0x506d6d6d,0xe67b7b7b,0xff7d7d7d,0xff7a7a7a,0xff777878,0xff777777,0xff7d7e7d,0xff484848,0xff161616,0xff292929,0xff1e1f1f,0xff6a6b6b, | ||
786 | 0xff5c5c5c,0xff000000,0xff616161,0xff838383,0xff484848,0xff7e7e7e,0xffa5a5a5,0xffa6a7a6,0xff979797,0xff787778,0xf5434343,0xbb1a1a1a,0x61000000,0x1a000000, | ||
787 | 0xffffff,0xffffff,0xc000000,0x834d4d4d,0xec595959,0xff5e5d5d,0xff656564,0xff696969,0xff696869,0xff6b6a6b,0xff6a6a69,0xff666665,0xff646463,0xff656564, | ||
788 | 0xff666666,0xff686868,0xff6c6c6c,0xff727272,0xff7a7a7a,0xff828282,0xff818181,0xff787778,0xff656465,0xf5424241,0xce222222,0x83000000,0x3d000000,0xc000000, | ||
789 | 0xffffff,0xffffff,0x3000000,0x18000000,0x752d2d2d,0xc8353535,0xef363636,0xff3e3e3e,0xfd373737,0xfa353535,0xf5333333,0xf3313131,0xf5353535,0xf7353535, | ||
790 | 0xf9373737,0xfa383838,0xfc3c3c3c,0xfe3d3d3d,0xff424242,0xff454545,0xff454545,0xf3383838,0xdf2a2a2a,0xbb161616,0x83000000,0x4b000000,0x18000000,0x3000000, | ||
791 | 0xffffff,0xffffff,0xffffff,0x4000000,0x18000000,0x3d000000,0x61000000,0x7c000000,0x8a000000,0x8b000000,0x87000000,0x82000000,0x81000000,0x82000000, | ||
792 | 0x84000000,0x87000000,0x89000000,0x8b000000,0x8e000000,0x8e000000,0x8f000000,0x8b000000,0x7c000000,0x61000000,0x3d000000,0x18000000,0x4000000,0xffffff, | ||
793 | 0xffffff,0xffffff,0xffffff,0xffffff,0x3000000,0xc000000,0x1a000000,0x26000000,0x2d000000,0x2e000000,0x2b000000,0x29000000,0x28000000,0x29000000, | ||
794 | 0x2a000000,0x2b000000,0x2d000000,0x2e000000,0x2e000000,0x2f000000,0x30000000,0x2e000000,0x26000000,0x1a000000,0xc000000,0x3000000,0xffffff,0xffffff | ||
795 | }; | ||
796 | |||
797 | static const QRgb Rotation_data[] = { | ||
798 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x3000000,0x6000000,0xb000000,0x12000000,0x19000000,0x21000000,0x29000000,0x2f000000, | ||
799 | 0x35000000,0x38000000,0x3b040404,0x4d535353,0x5a828282,0x3d3f3f3f,0x2d060606,0x24070707,0x1b090909,0x140d0d0d,0xc151515,0x7242424,0x3000000,0x1000000, | ||
800 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000, | ||
801 | 0x6e647e80,0xab7da6a7,0xd387b7b9,0xeb8bc0c2,0xf98dc6c8,0xfe8ac8ca,0xf97ec0c2,0xed6fb6b7,0xd8629ea2,0xcc90aeb0,0xa1849698,0x460b0b0b,0x390d0d0d,0x2b0c0c0c, | ||
802 | 0x1f101010,0x130d0d0d,0xb171717,0x5000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | ||
803 | 0x16000000,0x23000000,0x84759496,0xd091b9bb,0xfaabcecf,0xffa9d0d2,0xffa1ccce,0xff9acacc,0xff90c6c8,0xff89c4c6,0xff7fc1c3,0xff74bfc1,0xff69bcbe,0xff60b9bc, | ||
804 | 0xfd88c1c4,0xe78bb4b7,0xa0395f62,0x4f101010,0x3a121212,0x28131313,0x19141414,0xe121212,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000, | ||
805 | 0x2000000,0x7000000,0xe000000,0x1a000000,0x545f7474,0xc08eb5b6,0xfaafcfd1,0xffafcfd0,0xffadcccd,0xffa3c8ca,0xff9ac4c6,0xff93c0c2,0xff8abfbf,0xff80bbbd, | ||
806 | 0xff79babc,0xff6fb8bb,0xff65b8ba,0xff5cb6b9,0xff50b2b5,0xff69a2a7,0xfe76b0b5,0xd2377579,0x7f293d3d,0x47121212,0x2f101010,0x1d121212,0xf111111,0x7000000, | ||
807 | 0x2000000,0x1000000,0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x73728f8f,0xda9fc1c3,0xffb6d1d3,0xffb0cdce,0xffaac6c8,0xffa2bfc1,0xff96b8b9, | ||
808 | 0xff8db3b5,0xff84adaf,0xff7cabac,0xff76aaac,0xff6fadae,0xff6ab1b3,0xff63b4b5,0xff58b4b6,0xff4eadb3,0xff61a1a6,0xff4f8a8f,0xff5f9ea3,0xe82d777c,0x9d2a4a4c, | ||
809 | 0x50131313,0x33141414,0x1e111111,0xf111111,0x7242424,0x2000000,0x1000000,0x5000000,0xd000000,0x1a000000,0x736f8f8f,0xe2a1c3c5,0xffb5cfd1,0xffaec9cb, | ||
810 | 0xffa2bec0,0xff98b4b5,0xff8ba6a8,0xff7e9a9d,0xff739395,0xff6b8c8e,0xff658c8d,0xff639092,0xff70a1a4,0xff88b3b6,0xff5aadaf,0xff53adb3,0xff4ba9b2,0xff40a0a8, | ||
811 | 0xff5c9398,0xff4a8488,0xff418d95,0xef2b7378,0xa2294449,0x53161616,0x33141414,0x1e1a1a1a,0xe121212,0x62b2b2b,0x3000000,0xa000000,0x16000000,0x545c7174, | ||
812 | 0xda9abec2,0xffb2cfd2,0xffacc8cb,0xffa2bdc0,0xff91abae,0xff80989b,0xff788e90,0xff9dadae,0xffa9babb,0xffb6c9ca,0xffc0d5d7,0xffb9d2d4,0xffb3cdce,0xff8fb4b7, | ||
813 | 0xff52a4a7,0xff4da8b1,0xff45a6ad,0xff3b9da6,0xff6fa2a7,0xff5b9095,0xff498086,0xff297e86,0xec2a676e,0x91243537,0x4e141414,0x2f161616,0x18151515,0xb171717, | ||
814 | 0x6000000,0x11000000,0x23000000,0xbf88b0b4,0xffafced2,0xffaac9cd,0xffa2bfc3,0xff92adb0,0xffb0c7c9,0xffc0d5d6,0xffcadcde,0xffd1e1e1,0xffd4e3e4,0xffd2e3e4, | ||
815 | 0xffcedfe1,0xffc7dcdd,0xffbfd6d7,0xff4c8b8f,0xff4c9ca2,0xff47a2ab,0xff40a0ab,0xff399aa4,0xff6aa2a9,0xff6b9da1,0xff598c91,0xff427d83,0xff28767e,0xdd2a585d, | ||
816 | 0x6c151515,0x45161616,0x27141414,0x120e0e0e,0xb000000,0x1b000000,0x846f8e93,0xfaa3c7cd,0xffa5c9cd,0xff9fc2c6,0xff92b2b6,0xff7f9a9e,0xff667e80,0xffd0dfe0, | ||
817 | 0xffd9e6e6,0xffe0eaea,0xffe2eced,0xffe0eced,0xffdbe8e9,0xffd3e3e3,0xffa4bcbe,0xff43868c,0xff44969f,0xff429da8,0xff3a9ea8,0xff3796a1,0xff45949c,0xff77a6a9, | ||
818 | 0xff65979b,0xff5c888b,0xff296c73,0xfc276b74,0xbb284146,0x5f151515,0x39161616,0x1d121212,0x12000000,0x26000000,0xd085afb6,0xff9dc7cd,0xff9dc3c9,0xff94b8be, | ||
819 | 0xff84a4aa,0xff6d898d,0xff687b7e,0xffd9e6e8,0xffe4eded,0xffecf2f3,0xffeef3f4,0xffebf3f3,0xffe4eef0,0xffdbe8ea,0xff628a8e,0xff3f848c,0xff3c919d,0xff3796a2, | ||
820 | 0xff3396a2,0xff36929d,0xff45919a,0xff7eabaf,0xff6e9ea2,0xff5c8e92,0xff2b646c,0xff28676e,0xe9285659,0x79171717,0x4b141414,0x2a121212,0x19000000,0x6e59747b, | ||
821 | 0xfa93c0c7,0xff98c2ca,0xff92bbc3,0xff87acb3,0xff73959b,0xff5c767b,0xffd2e2e2,0xffdfeaeb,0xffebf2f3,0xfff4f7f8,0xfff8fafb,0xfff4f8f8,0xffebf2f3,0xffe1ebec, | ||
822 | 0xff356f76,0xff37848e,0xff348e99,0xff2c909d,0xff308f9c,0xff328c98,0xff72a3a9,0xff83aeb2,0xff75a4a8,0xff639598,0xff2e5e65,0xff295f66,0xfc266069,0xb0233437, | ||
823 | 0x5e161616,0x37131313,0x21000000,0xab6b969e,0xff8ebec7,0xff8bbbc3,0xff84b1ba,0xff779fa7,0xff62858c,0xffaabcbe,0xffd5e4e5,0xffe3eded,0xffedf4f4,0xfff7fafa, | ||
824 | 0xffffffff,0xfff8fafa,0xffedf4f4,0xff8fa8ab,0xff30727c,0xff2e808e,0xff288795,0xff278795,0xff2b8795,0xff2f8491,0xff88aeb2,0xff85b0b3,0xff7aa7ab,0xff69999e, | ||
825 | 0xff305960,0xff2b5a61,0xff265e66,0xd6264448,0x71171717,0x45121212,0x29000000,0xd370a1ac,0xff83b9c4,0xff80b4be,0xff78a8b2,0xff68939c,0xff54767d,0xffc4d8da, | ||
826 | 0xffd3e2e3,0xffe0ecec,0xffebf2f2,0xfff3f8f8,0xfff7fafb,0xfff4f8f8,0xffebf2f3,0xff2b656f,0xff2a7481,0xff257d8e,0xff1f808e,0xff23818e,0xff277e8d,0xff2c7c87, | ||
827 | 0xff8fb6ba,0xff86b1b4,0xff7aa8ab,0xff6c9b9f,0xff32545a,0xff2e545b,0xff285961,0xed264d51,0x80181818,0x4f131313,0x2f000000,0xeb70a7b3,0xff79b3bf,0xff75aeb9, | ||
828 | 0xff6c9fa9,0xff5b858f,0xff81989c,0xffc1d7d8,0xffd0e1e1,0xffdbe8e9,0xffe5eeef,0xffebf2f3,0xff98a8ab,0xffd7e1e3,0xffe4edee,0xff276c7a,0xff237585,0xff1b7787, | ||
829 | 0xff1e7888,0xff1e7585,0xff227382,0xff5c8f98,0xff8db6b8,0xff84b0b3,0xff7aa8ac,0xff6d9da2,0xff345056,0xff2f5056,0xff2a555c,0xf7264f57,0x8d191919,0x5a141414, | ||
830 | 0x34000000,0xf96da9b8,0xff6dacba,0xff69a5b3,0xff5f95a1,0xff507b85,0xffa7c1c3,0xffbcd3d6,0xffc9dbdd,0xffd2e3e4,0xffdbe8e9,0xffb3c2c5,0xff28525c,0xff29606c, | ||
831 | 0xff64929d,0xff206f7f,0xff187283,0xff1a7183,0xff1a6f81,0xff1a6b7c,0xff1f6978,0xff92b9bb,0xff8ab3b7,0xff82afb2,0xff79a8ab,0xff6e9ea2,0xff364c51,0xff324d53, | ||
832 | 0xff2b5157,0xfc265259,0x961a1a1a,0x61181818,0x37000000,0xfe65a7b7,0xff64a6b6,0xff5f9ead,0xff558d9b,0xff47737e,0xffa7c5c7,0xffb4ced0,0xffc0d6d9,0xffc9dbdd, | ||
833 | 0xffcfe1e2,0xff26535e,0xff28616e,0xff266a7a,0xff1f6e7f,0xff166e80,0xff166e80,0xff548d9a,0xff186677,0xff196071,0xff87abae,0xff8db6b9,0xff87b2b4,0xff7facb0, | ||
834 | 0xff77a6a9,0xff749c9f,0xff36494d,0xff324b50,0xff2c4e56,0xfe25515b,0x9a1a1a1a,0x66171717,0x39040404,0xf9599daf,0xff5a9fb1,0xff5596a8,0xff4c8795,0xff3e6d78, | ||
835 | 0xffa0c0c3,0xffabc8ca,0xffb6cfd2,0xffbdd5d7,0xff5c7b82,0xff265d6b,0xff25687a,0xff206d81,0xff176e81,0xff166c7f,0xff166a7d,0xffa9c7c9,0xff9ab9be,0xff769aa1, | ||
836 | 0xff8fb7ba,0xff88b3b6,0xff83afb2,0xff7babae,0xff74a5a8,0xff6d7e80,0xff37484c,0xff334a4f,0xff2c4c52,0xfc244a53,0x9c1a1a1a,0x66171717,0x38050505,0xed4d8fa2, | ||
837 | 0xff5099ac,0xff4c91a4,0xff448091,0xff396a77,0xff97bbbd,0xffa3c2c5,0xffabc8cb,0xffb1cccf,0xff235362,0xff216172,0xff1e687e,0xff176a80,0xff166a7e,0xff15667b, | ||
838 | 0xff156175,0xff9fc1c4,0xff97bcbf,0xff90b8bb,0xff8ab4b7,0xff83afb3,0xff7eacb0,0xff79a9ab,0xff71a3a7,0xff394649,0xff39484c,0xff32494e,0xff2c4c53,0xf924444b, | ||
839 | 0x98191919,0x64141414,0x35050505,0xd7447d90,0xff4691a7,0xff428a9f,0xff3d7b8e,0xff336675,0xff8fb4b8,0xff99bec1,0xffa0c1c3,0xff8ca6ab,0xff215667,0xff1c6274, | ||
840 | 0xff19667b,0xff19677d,0xff16637b,0xff166074,0xff7097a1,0xff96bbbe,0xff8fb7ba,0xff88b4b7,0xff84b1b3,0xff7eadaf,0xff7aa9ac,0xff75a6a9,0xff7a9799,0xff3b4649, | ||
841 | 0xff38474c,0xff32494f,0xff294851,0xf1233d44,0x931a1a1a,0x5f151515,0x30050505,0xb5366775,0xff3d88a2,0xff39829a,0xff36778c,0xff2e6376,0xff85aeb1,0xff8fb7b9, | ||
842 | 0xff96bcbe,0xff6a878f,0xff1e5769,0xff1c6073,0xff1b6478,0xff196378,0xff185f74,0xff175a6e,0xff92b9bb,0xff8db6b8,0xff87b3b6,0xff82afb2,0xff7eadb0,0xff7aa9ad, | ||
843 | 0xff77a6aa,0xff71a2a6,0xff3c4346,0xff3c4649,0xff37474c,0xff30474e,0xff274650,0xe121353b,0x89181818,0x59141414,0x2a060606,0x81294953,0xfb357e99,0xff337c97, | ||
844 | 0xff30738b,0xff2c6377,0xff79a6aa,0xff85afb3,0xff8cb6b8,0xff315966,0xff225869,0xff215e72,0xff206177,0xff1c5f74,0xff1b5c72,0xff467483,0xff89b4b7,0xff85b1b4, | ||
845 | 0xff81afb2,0xff7eacaf,0xff7aaaad,0xff76a7a9,0xff73a4a7,0xff545a5b,0xff3e4447,0xff3b464a,0xff36474d,0xff2d464f,0xfd25434c,0xc51f2a2d,0x7d181818,0x4f131313, | ||
846 | 0x22080808,0x420c0c0c,0xd92c647a,0xff2d7593,0xff2a6d88,0xff276177,0xff6f9399,0xff78a6aa,0xff82adb2,0xff365b69,0xff265769,0xff265d72,0xff256074,0xff245e73, | ||
847 | 0xff225a6f,0xff7e9fa5,0xff82afb2,0xff7fadb0,0xff7cabaf,0xff79a8ac,0xff75a6aa,0xff72a3a7,0xff6ea0a4,0xff3f4446,0xff3e4649,0xff3a474b,0xff33464c,0xff2a444c, | ||
848 | 0xf2223940,0x9d1a1a1a,0x6d151515,0x420f0f0f,0x1a0a0a0a,0x350e0e0e,0x9d244b57,0xfb256b88,0xff246985,0xff236078,0xff456d7c,0xff6c9b9f,0xff76a5a8,0xff69858d, | ||
849 | 0xff2b5769,0xff2a5d70,0xff295e73,0xff295d72,0xff295a6e,0xff7eacb0,0xff7cabaf,0xff78a9ad,0xff76a6a9,0xff74a5a9,0xff71a2a6,0xff6ca0a4,0xff689b9e,0xff6b9395, | ||
850 | 0xff3b4549,0xff36454c,0xff2d434c,0xfd254049,0xd31f2c30,0x89181818,0x5c131313,0x350e0e0e,0x130d0d0d,0x280d0d0d,0x490e0e0e,0xd1215669,0xff1e6581,0xff1e5e7a, | ||
851 | 0xff21576d,0xff5c8e93,0xff68999e,0xff74949a,0xff2e5768,0xff2f5c6d,0xff305e72,0xff2f5d71,0xff77959d,0xff76a7ab,0xff75a6a9,0xff73a5a8,0xff7a9fa3,0xff7b969a, | ||
852 | 0xff788a8d,0xff4e5558,0xff3f474a,0xff3d474b,0xff36454b,0xff30434b,0xff28404b,0xec20343a,0x9e1b1b1b,0x73161616,0x49111111,0x280d0d0d,0xc151515,0x1d121212, | ||
853 | 0x36131313,0x7b193339,0xe71a556a,0xff1c5b77,0xff20576f,0xff486b7a,0xff588a8f,0xff619497,0xff2e5465,0xff30596a,0xff325c6e,0xff335d6f,0xff718d95,0xff516d7b, | ||
854 | 0xff375663,0xff39515c,0xff3b4e56,0xff3d4b52,0xff3e4b50,0xff3e4a4e,0xff3b484d,0xff38464e,0xff32434c,0xff29404b,0xf522383f,0xbe1e2528,0x83171717,0x5b141414, | ||
855 | 0x350e0e0e,0x1c090909,0x7242424,0x120e0e0e,0x26141414,0x43131313,0x97173a46,0xee1a5167,0xff1c5670,0xff21526a,0xff507981,0xff508389,0xff638089,0xff315567, | ||
856 | 0xff335a6b,0xff355b6c,0xff385b6c,0xff395a69,0xff3b5765,0xff3c555f,0xff3d515b,0xff3d4e56,0xff3c4c53,0xff394951,0xff364850,0xff2f434c,0xff29404b,0xf8233841, | ||
857 | 0xcc1e282c,0x8e191919,0x66141414,0x42131313,0x250e0e0e,0x120e0e0e,0x3000000,0xb171717,0x18151515,0x2d111111,0x4b141414,0x9e193642,0xea1a4a5f,0xff1c4f6a, | ||
858 | 0xff1f4e64,0xff3c6e75,0xff46787e,0xff2d5164,0xff315365,0xff345668,0xff365868,0xff375666,0xff395563,0xff3a5360,0xff3a505d,0xff384d57,0xff354a55,0xff324750, | ||
859 | 0xff2d444f,0xff273f4b,0xf521363f,0xcc1e282c,0x921a1a1a,0x6c151515,0x4b111111,0x2d111111,0x170b0b0b,0xa000000,0x1000000,0x5000000,0xe121212,0x1c121212, | ||
860 | 0x31151515,0x4e171717,0x8b182c33,0xdb194251,0xfc1c4b64,0xff1f4a62,0xff39666d,0xff386a70,0xff2b4e60,0xff2d4f61,0xff305062,0xff325161,0xff33505e,0xff324d5c, | ||
861 | 0xff324b59,0xff2f4855,0xff2c4653,0xff28414e,0xfd243d49,0xeb1f323a,0xbc1e2526,0x8e191919,0x6c151515,0x4d111111,0x30101010,0x1b090909,0xd000000,0x5000000, | ||
862 | 0xffffff,0x2000000,0x6000000,0xf111111,0x1d121212,0x31151515,0x4b141414,0x68161616,0xb719333e,0xe81c404f,0xfc1c465b,0xff5b7984,0xff50727b,0xff25485c, | ||
863 | 0xff27495a,0xff29495a,0xff294658,0xff294757,0xff274252,0xff264251,0xfd223f4c,0xf1213640,0xd11e2b30,0x9d1c1c1c,0x82181818,0x66141414,0x4a111111,0x30101010, | ||
864 | 0x1c090909,0xe000000,0x6000000,0x2000000,0xffffff,0x1000000,0x2000000,0x7000000,0x10202020,0x1d1a1a1a,0x2d171717,0x44171717,0x5c161616,0x75181818, | ||
865 | 0xad192b32,0xd41a3841,0xed39555f,0xfa6f858f,0xfd466371,0xfe214253,0xfc20404f,0xf81f3c4a,0xef1f3842,0xde1e3139,0xc31c282e,0x9b1a1a1a,0x87191919,0x73161616, | ||
866 | 0x5a141414,0x42131313,0x2d111111,0x1b090909,0xe000000,0x7000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000,0x2000000,0x7242424,0xe121212, | ||
867 | 0x18151515,0x26141414,0x38171717,0x4a151515,0x5d161616,0x6f171717,0x7e181818,0x8b1a1a1a,0x9c3a3a3a,0xa9575757,0xa74c4c4c,0x9f3a3a3a,0x98353535,0x8a252525, | ||
868 | 0x7d181818,0x6c151515,0x5b141414,0x49111111,0x350e0e0e,0x250e0e0e,0x170b0b0b,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff, | ||
869 | 0xffffff,0x1000000,0x2000000,0x62b2b2b,0xb171717,0x120e0e0e,0x1d121212,0x29131313,0x37131313,0x44131313,0x4f131313,0x59141414,0x60181818,0x65171717, | ||
870 | 0x66171717,0x64141414,0x5f151515,0x58141414,0x4e141414,0x420f0f0f,0x350e0e0e,0x280d0d0d,0x1c090909,0x120e0e0e,0xa000000,0x5000000,0x2000000,0x1000000, | ||
871 | 0xffffff,0xffffff | ||
872 | }; | ||
873 | |||
874 | static const QRgb SettingsIcon_data[] = { | ||
875 | 0x0,0x0,0x67bbbbc8,0xc6e3e3e9,0xbddfdfe6,0x61bdbdc8,0x36f6f78,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
876 | 0x0,0x0,0x1b91919e,0xd2d0d0d8,0xfffefefe,0xfef6f6f7,0x85b2b2be,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
877 | 0x429494a9,0x661616f,0x0,0x1d858594,0xedd1d1da,0xfffefeff,0xf9d8d8e0,0x1a474750,0x0,0x0,0x0,0x0,0x0,0x0, | ||
878 | 0xc5c1c1ce,0xa1a6a6b6,0x8626274,0x92a9a9bb,0xffe9e9ee,0xfff5f5f7,0xffdfdfe6,0x405c5c6b,0x0,0x0,0x0,0x0,0x0,0x0, | ||
879 | 0xbab5b5c4,0xffe0e0e7,0xd8a8a8b9,0xffdddde4,0xffe9e9ee,0xffe9e9ee,0xffc5c5d1,0x303d3d4a,0x0,0x0,0x0,0x0,0x0,0x0, | ||
880 | 0x5c818198,0xfecacad5,0xffdddde4,0xffdedee5,0xffdddde5,0xffd4d4dd,0xffc1c1cd,0xb7a39388,0x8fd79c2d,0x7895d1c,0x0,0x0,0x0,0x0, | ||
881 | 0x33f3f51,0x7f74748c,0xf7a0a0b3,0xffb4b4c3,0xffafafbf,0xffcacad5,0xffcfc4bc,0xffe0ab39,0xffeeb524,0xa7d09b2c,0x67a521a,0x0,0x0,0x0, | ||
882 | 0x0,0x1000000,0x192a2a39,0x403b3b50,0x3d39394d,0xd59a8c8b,0xffdea939,0xfff6a014,0xfffd9f12,0xfff1b523,0xa8c8922a,0x87e541b,0x0,0x0, | ||
883 | 0x0,0x0,0x0,0x0,0x0,0x87ba8128,0xfff1b423,0xffffb71f,0xffffb71f,0xfffdb51f,0xfff2b824,0xa7c08827,0x76f4919,0x0, | ||
884 | 0x0,0x0,0x0,0x0,0x0,0x5644217,0x9bb57e26,0xfff3bb27,0xffffcd2d,0xffffcb2b,0xfffebe24,0xfff5b622,0xa5b87d25,0x5533614, | ||
885 | 0x0,0x0,0x0,0x0,0x0,0x0,0x4563814,0x9dae7524,0xfff1be2b,0xffffc528,0xffffa515,0xffff9c0f,0xfeeca21d,0x50825420, | ||
886 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x55b3a17,0x9ca56b22,0xfff3a018,0xffffad1a,0xffff9a0e,0xfff49b14,0x69794d1e, | ||
887 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x54e3115,0x9ba1631e,0xfee68912,0xfff28f0e,0xe2b06b1a,0x2637230f, | ||
888 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5472c15,0x4f6c421f,0x696b411d,0x2634200f,0x1000000 | ||
889 | }; | ||
890 | |||
891 | static const QRgb Shutdown_data[] = { | ||
892 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x3000000,0x6000000,0xb000000,0x12000000,0x19000000,0x21000000,0x29000000,0x2f000000, | ||
893 | 0x34000000,0x37000000,0x38000000,0x37000000,0x34000000,0x2f000000,0x29000000,0x21000000,0x19000000,0x12000000,0xb000000,0x6000000,0x3000000,0x1000000, | ||
894 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000, | ||
895 | 0x5d9a5254,0x93c36569,0xbed86d71,0xdee47175,0xf3ec7075,0xfef16f73,0xf3eb6669,0xe0e25d5f,0xc4d04f53,0x9fb44042,0x70832a2e,0x3f000000,0x33000000,0x26000000, | ||
896 | 0x1b000000,0x11000000,0xa000000,0x5000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | ||
897 | 0x16000000,0x23000000,0x6fb26366,0xbad9787b,0xf5f18388,0xfff38386,0xfff27e82,0xffee797b,0xffed7276,0xffec6d70,0xffec656a,0xffed6065,0xffef5a5e,0xfff05258, | ||
898 | 0xf7ec4a4f,0xc6cb393e,0x88942529,0x45000000,0x33000000,0x23000000,0x16000000,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000, | ||
899 | 0x2000000,0x7000000,0xe000000,0x1a000000,0x478a4e4f,0xa7d4787a,0xf5f38a8d,0xfff6898d,0xfff5888c,0xfff28285,0xffed7b7f,0xffe87578,0xffe36d71,0xffe1666a, | ||
900 | 0xffe36165,0xffe75b60,0xffeb545a,0xffee4e53,0xfff1484d,0xfff24047,0xf8eb373e,0xbcbc272b,0x6c5f1013,0x3e000000,0x2a000000,0x1a000000,0xe000000,0x7000000, | ||
901 | 0x2000000,0x1000000,0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x5fa96163,0xc6e18183,0xfff78d90,0xfff78c8e,0xfff68b8d,0xfff3868a,0xffee7f82, | ||
902 | 0xffe7797b,0xffde7073,0xffd76669,0xffd46063,0xffd75a5d,0xffdd5659,0xffe34f54,0xffeb4a4e,0xffee4248,0xfff03b41,0xfff13338,0xfff02a31,0xd7cb1f25,0x85791216, | ||
903 | 0x46000000,0x2e000000,0x1b000000,0xe000000,0x6000000,0x2000000,0x1000000,0x5000000,0xd000000,0x1a000000,0x5fa96163,0xd0e58387,0xfff78d91,0xfff68d8f, | ||
904 | 0xfff68c8e,0xfff48a8d,0xffef8488,0xffe87c7f,0xffdc7175,0xffd1686b,0xffffffff,0xffffffff,0xffffffff,0xffcf4d51,0xffd9484c,0xffe34248,0xffec3d41,0xffee3539, | ||
905 | 0xffef2b33,0xffee242b,0xffe9232a,0xe0c71e24,0x8a701214,0x48000000,0x2e000000,0x1a000000,0xd000000,0x5000000,0x3000000,0xa000000,0x16000000,0x478a4e4f, | ||
906 | 0xc6e18183,0xfff78d91,0xfff68d90,0xfff58d8f,0xfff38a8d,0xfff0878a,0xffe87e82,0xffdd7779,0xffd06a6d,0xffc46063,0xffffffff,0xffffffff,0xffffffff,0xffc24549, | ||
907 | 0xffcd4045,0xffda3b41,0xffe3343b,0xffeb2d34,0xffec252b,0xffe8232a,0xffe32329,0xffdf2228,0xdbb61b22,0x7b4c0c0d,0x46000000,0x2a000000,0x16000000,0xa000000, | ||
908 | 0x6000000,0x11000000,0x23000000,0xa7d4787a,0xfff78d90,0xfff68d8f,0xfff48d8e,0xfff18b8d,0xffed8588,0xffe78084,0xffdd787b,0xffd16e71,0xffc16164,0xffb5575a, | ||
909 | 0xffffffff,0xffffffff,0xffffffff,0xffb33d40,0xffbe373c,0xffcd3337,0xffd92d33,0xffe1252d,0xffe02229,0xffdf2228,0xffdd2228,0xffd92028,0xffd52027,0xc89a171b, | ||
910 | 0x60000000,0x3e000000,0x23000000,0x11000000,0xb000000,0x1b000000,0x6fb26366,0xf5f38a8d,0xfff68c8e,0xfff58b8d,0xfff1898c,0xffec8487,0xffe27d81,0xffda777a, | ||
911 | 0xffcf6f72,0xffcb7f82,0xffd5a7a8,0xffa74e51,0xffffffff,0xffffffff,0xffffffff,0xffa63437,0xffd39496,0xffc85156,0xffca2429,0xffd22027,0xffd32025,0xffd52027, | ||
912 | 0xffd31f25,0xffd22027,0xffcd1f25,0xf9c41d23,0xa2691013,0x55000000,0x33000000,0x1b000000,0x12000000,0x26000000,0xbad9787b,0xfff6898d,0xfff68b8d,0xfff3898c, | ||
913 | 0xffed8588,0xffe27d81,0xffd67578,0xffcb6e70,0xffd9a7a8,0xfff0e2e2,0xffffffff,0xff9b4749,0xffffffff,0xffffffff,0xffffffff,0xff9a2e31,0xffffffff,0xfff0d9da, | ||
914 | 0xffd68486,0xffbf1d23,0xffc21e24,0xffc81e24,0xffcb1f25,0xffcb1f25,0xffc71e24,0xffc31e23,0xd796161b,0x6c000000,0x45000000,0x26000000,0x19000000,0x5d9a5254, | ||
915 | 0xf5f28488,0xfff5888c,0xfff3868a,0xffee8387,0xffe47c80,0xffd87579,0xffc86c6e,0xffddb3b5,0xfffefefe,0xffffffff,0xffffffff,0xff974245,0xffffffff,0xffffffff, | ||
916 | 0xffffffff,0xff95282b,0xffffffff,0xffffffff,0xfffefdfd,0xffd69597,0xffb21a20,0xffba1d22,0xffbd1d23,0xffc11d23,0xffbf1e23,0xffbd1d22,0xfab31b20,0x9b4c0c0f, | ||
917 | 0x56000000,0x33000000,0x21000000,0x93c4676a,0xfff68487,0xfff58487,0xfff18184,0xffe97d80,0xffdd7679,0xffcc6c6f,0xffd7a5a7,0xfffefefe,0xffffffff,0xffffffff, | ||
918 | 0xffefe4e4,0xff963e41,0xffffffff,0xffffffff,0xffffffff,0xff942327,0xffefe0e0,0xffffffff,0xffffffff,0xfffefdfd,0xffc88284,0xffa91a1f,0xffb11b20,0xffb61b22, | ||
919 | 0xffb71d20,0xffb51b20,0xffb21b20,0xc2711214,0x67000000,0x3f000000,0x29000000,0xbeda6f73,0xfff68084,0xfff47f83,0xffee7c80,0xffe47679,0xffd56d70,0xffcb7c7e, | ||
920 | 0xfff0e1e2,0xffffffff,0xffffffff,0xffd8b9ba,0xffae6b6c,0xff9b3c3e,0xffffffff,0xffffffff,0xffffffff,0xff9a1e23,0xffaa4d50,0xffd4aaac,0xffffffff,0xffffffff, | ||
921 | 0xffebd7d8,0xffab4548,0xffa4191e,0xffab1a1f,0xffad1a1f,0xffad1a1f,0xffac1a1f,0xde841419,0x75000000,0x4a000000,0x2f000000,0xdee77376,0xfff57b7e,0xfff27a7c, | ||
922 | 0xffeb7779,0xffdd6e72,0xffcb6468,0xffd8a7a8,0xffffffff,0xffffffff,0xfff1e4e5,0xffb56c6e,0xffa43f42,0xffa6393d,0xffffffff,0xffffffff,0xffffffff,0xffa3191e, | ||
923 | 0xff9a171b,0xffa64d4f,0xffeedfdf,0xffffffff,0xffffffff,0xffc28a8c,0xff97171b,0xffa0191e,0xffa4191e,0xffa4191e,0xffa4191e,0xef91161a,0x81000000,0x53000000, | ||
924 | 0x34000000,0xf3ef7377,0xfff5767a,0xfff27478,0xffe86e72,0xffda666a,0xffc65b5e,0xffe7cccd,0xffffffff,0xffffffff,0xffd7b0b1,0xffac4045,0xffb03d40,0xffb4373b, | ||
925 | 0xffffffff,0xffffffff,0xffffffff,0xffa91a1e,0xff9e171d,0xff93161a,0xffcba1a3,0xffffffff,0xffffffff,0xffdabebf,0xff8c1419,0xff95171a,0xff9c171d,0xff9e191d, | ||
926 | 0xff9d171d,0xf997161b,0x89000000,0x59000000,0x37000000,0xfef47175,0xfff57175,0xfff06d71,0xffe6686b,0xffd65e62,0xffc25357,0xfff5ebeb,0xffffffff,0xffffffff, | ||
927 | 0xffc47f81,0xffb43c3f,0xffbc383c,0xffc13136,0xffffffff,0xffffffff,0xffffffff,0xffae1a20,0xffa2191d,0xff93161b,0xffac696b,0xffffffff,0xffffffff,0xfff0e6e7, | ||
928 | 0xff831317,0xff8c1619,0xff93161b,0xff97171d,0xff98171b,0xfe97171b,0x8e000000,0x5e000000,0x38000000,0xf3ee676b,0xfff4696e,0xfff0676b,0xffe56063,0xffd3565b, | ||
929 | 0xffc04b4f,0xfffefdfd,0xffffffff,0xffffffff,0xffb65256,0xffb93538,0xffc53135,0xffcd2a30,0xffce1f25,0xffc71e23,0xffbe1d23,0xffb31a20,0xffa3191e,0xff91161a, | ||
930 | 0xff91383b,0xffffffff,0xffffffff,0xfffdfdfd,0xff7b1216,0xff851419,0xff8d161a,0xff90161b,0xff92161a,0xfa8c1419,0x90000000,0x5f000000,0x37000000,0xe0e45e61, | ||
931 | 0xfff36368,0xffef5e63,0xffe5595c,0xffd54f53,0xffc14348,0xfff5e9ea,0xffffffff,0xffffffff,0xffc57679,0xffb92b30,0xffc7272d,0xffd12027,0xffcd1f25,0xffc61e24, | ||
932 | 0xffbd1d22,0xffaf1a20,0xff9d171d,0xff8a1419,0xffa5686a,0xffffffff,0xffffffff,0xffeee6e6,0xff771316,0xff801317,0xff871419,0xff8c161a,0xff8d161a,0xf27b1317, | ||
933 | 0x8e000000,0x5e000000,0x34000000,0xc4d15054,0xfff35b60,0xfff0575c,0xffe65054,0xffd7484c,0xffc43e41,0xffe7c5c6,0xffffffff,0xffffffff,0xffd7a6a7,0xffb21f24, | ||
934 | 0xffbd1d22,0xffc41d23,0xffc41d24,0xffbd1d22,0xffb21b20,0xffa4191d,0xff90161a,0xff7e1317,0xffc2a0a1,0xffffffff,0xffffffff,0xffd3bebe,0xff741214,0xff7d1317, | ||
935 | 0xff831317,0xff871419,0xff881419,0xe56a1013,0x89000000,0x59000000,0x2f000000,0x9fb64045,0xfff35359,0xffef4e53,0xffe8494e,0xffdb4045,0xffc9363c,0xffd79395, | ||
936 | 0xffffffff,0xffffffff,0xfff1dfe0,0xffb74e51,0xffad1a1f,0xffb11a1f,0xffb21b20,0xffad1a1f,0xffa2191d,0xff93161a,0xff821417,0xff8f4a4c,0xffe8dedf,0xffffffff, | ||
937 | 0xffffffff,0xffb08889,0xff721214,0xff7a1316,0xff7f1317,0xff811417,0xff851419,0xd1510c0f,0x81000000,0x53000000,0x29000000,0x70832a2e,0xf7ed4a4f,0xfff0484d, | ||
938 | 0xffeb4147,0xffe0393f,0xffd13036,0xffc84f53,0xffefd9d9,0xffffffff,0xffffffff,0xffd6abac,0xffae4d51,0xff9d171d,0xff9d171d,0xff97171b,0xff8e161a,0xff821317, | ||
939 | 0xff904a4d,0xffc4a9a9,0xffffffff,0xffffffff,0xffe3d7d7,0xff844041,0xff731216,0xff791216,0xff7d1317,0xff801317,0xfc7d1216,0xb5300808,0x75000000,0x4a000000, | ||
940 | 0x21000000,0x3f000000,0xc6cb393e,0xfff14047,0xffec3940,0xffe43337,0xffd8292f,0xffc82227,0xffd28385,0xfffefdfd,0xffffffff,0xffffffff,0xffeedfdf,0xffcca1a3, | ||
941 | 0xffae696b,0xff92383c,0xffa5686a,0xffc2a0a1,0xffe8dedf,0xffffffff,0xffffffff,0xfffefdfd,0xffa87e80,0xff6d1213,0xff741214,0xff7a1216,0xff7b1317,0xff7e1317, | ||
942 | 0xe6600f12,0x93000000,0x67000000,0x3f000000,0x19000000,0x33000000,0x88942529,0xf8ea373e,0xffee3137,0xffe82a31,0xffdf2329,0xffce1f25,0xffbc1d22,0xffd39597, | ||
943 | 0xfffefdfd,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffefdfd,0xffb49193,0xff6b1013,0xff721014, | ||
944 | 0xff761216,0xff7a1316,0xff7b1317,0xfc7a1216,0xc33b080a,0x81000000,0x56000000,0x33000000,0x12000000,0x26000000,0x45000000,0xbcbc272b,0xffef2a31,0xffeb242a, | ||
945 | 0xffe02229,0xffd12025,0xffc21e24,0xffb21a20,0xffc88284,0xffebd7d8,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffe3d7d7, | ||
946 | 0xffa87e80,0xff6b1013,0xff701014,0xff741216,0xff781216,0xff7a1316,0xff7b1316,0xdf540d10,0x94000000,0x6c000000,0x45000000,0x26000000,0xb000000,0x1b000000, | ||
947 | 0x33000000,0x6c5f1013,0xd7ca1f25,0xffe8232a,0xffdf2228,0xffd52027,0xffc71e23,0xffba1d22,0xffaa1a1f,0xffac4548,0xffc38a8c,0xffdabebf,0xfff0e6e7,0xfffdfdfd, | ||
948 | 0xffeee6e6,0xffd4bebe,0xffb18889,0xff854041,0xff6f1214,0xff721014,0xff741216,0xff781216,0xff791316,0xff7a1316,0xed620f12,0xae220506,0x7b000000,0x55000000, | ||
949 | 0x33000000,0x1b000000,0x6000000,0x11000000,0x23000000,0x3e000000,0x85791216,0xe0c61e24,0xffdd2228,0xffd51f27,0xffcb1f25,0xffbf1d23,0xffb31b20,0xffa5191e, | ||
950 | 0xff9a171d,0xff8f161a,0xff851417,0xff7e1316,0xff7a1317,0xff771216,0xff761216,0xff741216,0xff751214,0xff771216,0xff781216,0xff791316,0xff7a1316,0xf0660f12, | ||
951 | 0xbc300608,0x85000000,0x60000000,0x3e000000,0x23000000,0x11000000,0x3000000,0xa000000,0x16000000,0x2a000000,0x46000000,0x8a701214,0xdbb61b22,0xffd22027, | ||
952 | 0xffcb1f25,0xffc21d23,0xffb81d22,0xffad1a1f,0xffa2191e,0xff99171b,0xff90161a,0xff881419,0xff831417,0xff7f1317,0xff7d1316,0xff7b1317,0xff7a1216,0xff7a1316, | ||
953 | 0xff7b1317,0xff7a1316,0xed620f12,0xbc300608,0x88000000,0x66000000,0x46000000,0x2a000000,0x16000000,0xa000000,0x1000000,0x5000000,0xd000000,0x1a000000, | ||
954 | 0x2e000000,0x48000000,0x7b4c0c0d,0xc89a171b,0xf9c31d23,0xffc01e23,0xffba1d20,0xffb01a1f,0xffa7191e,0xff9d171d,0xff97171b,0xff90161b,0xff8b141a,0xff861419, | ||
955 | 0xff831317,0xff7f1417,0xff7e1317,0xff7c1317,0xfc7a1216,0xdf540d10,0xae220506,0x85000000,0x66000000,0x48000000,0x2e000000,0x1a000000,0xd000000,0x5000000, | ||
956 | 0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x2e000000,0x46000000,0x60000000,0xa2691013,0xd795161b,0xfab21b20,0xffb11b20,0xffaa1a1f,0xffa3191e, | ||
957 | 0xff9a171d,0xff95171b,0xff8f161a,0xff8c161a,0xff861419,0xff841419,0xfc7d1216,0xe6600f12,0xc33b080a,0x94000000,0x7b000000,0x60000000,0x46000000,0x2e000000, | ||
958 | 0x1b000000,0xe000000,0x6000000,0x2000000,0xffffff,0x1000000,0x2000000,0x7000000,0xe000000,0x1a000000,0x2a000000,0x3e000000,0x55000000,0x6c000000, | ||
959 | 0x9b4c0c0f,0xc2711214,0xde841419,0xef91161a,0xf997161b,0xfe97171b,0xfa8c1419,0xf27b1317,0xe56a1013,0xd1510c0f,0xb5300808,0x93000000,0x81000000,0x6c000000, | ||
960 | 0x55000000,0x3e000000,0x2a000000,0x1a000000,0xe000000,0x7000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | ||
961 | 0x16000000,0x23000000,0x33000000,0x45000000,0x56000000,0x67000000,0x75000000,0x81000000,0x89000000,0x8e000000,0x90000000,0x8e000000,0x89000000,0x81000000, | ||
962 | 0x75000000,0x67000000,0x56000000,0x45000000,0x33000000,0x23000000,0x16000000,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff, | ||
963 | 0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000,0x33000000,0x3f000000,0x4a000000,0x53000000,0x59000000,0x5e000000, | ||
964 | 0x5f000000,0x5e000000,0x59000000,0x53000000,0x4a000000,0x3f000000,0x33000000,0x26000000,0x1b000000,0x11000000,0xa000000,0x5000000,0x2000000,0x1000000, | ||
965 | 0xffffff,0xffffff | ||
966 | }; | ||
967 | |||
968 | static const QRgb Sound_data[] = { | ||
969 | 0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00c600,0xaf00cc00,0xe600d400,0xf600dc00,0xff00e400, | ||
970 | 0xff00ec00,0xff00f400,0xff00fc00,0xff00f800,0xff00ee00,0xfe00e300,0xef00d800,0xc000ce00,0x5700c400,0x0,0x0,0x0,0x0,0x0, | ||
971 | 0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x0,0x9c00b500,0xef00bd00,0xff00c400, | ||
972 | 0xff00cc00,0xff00d400,0xff00dc00,0xff00d400,0xff00d900,0xff00d700,0xff00db00,0xff00dd00,0xff00d300,0xff00d600,0xff00d800,0xff00ce00,0xff00c300,0xfc00b701, | ||
973 | 0xc200ac01,0x23009106,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x5700a600, | ||
974 | 0xf600ad00,0xff00b400,0xff00bc00,0xff00bd00,0xf100b303,0xcd009c06,0x9d007808,0x6000350d,0x4300000e,0x4300000e,0x4300000e,0x4300000e,0x4300000e,0x8d006400, | ||
975 | 0xb4007302,0xe2009b00,0xfc00a900,0xff00b300,0xff00ae00,0xfe00a200,0xa9008904,0x4000030,0x0,0x0,0x0,0x0,0xffffff,0xffffff, | ||
976 | 0x0,0x0,0x9c009e00,0xff00a400,0xff00aa00,0xfd00a401,0xc3008108,0x67003110,0x3b000008,0x2f000000,0x26000000,0x1a000000,0xb000000,0x4000000, | ||
977 | 0x4000000,0x4000000,0x4000000,0x4000000,0x16000000,0x20000000,0x2c000000,0x8c005400,0xeb008900,0xff009b00,0xff009800,0xe7008303,0xf00002d,0x0, | ||
978 | 0x0,0x0,0xffffff,0xffffff,0x0,0x9c009600,0xff009c00,0xfe009c00,0xc3007108,0x51000016,0x35000004,0x24000000,0xd000000,0x2000000, | ||
979 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x16000000,0x8a005d00, | ||
980 | 0xf8008500,0xff008e00,0xea007704,0x1700002a,0x0,0x0,0xffffff,0xffffff,0x3c008e00,0xff009400,0xf9008d02,0x85003511,0x3e00000b,0x24000000, | ||
981 | 0x7000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
982 | 0x0,0x0,0x0,0x0,0x16000000,0xe2007600,0xff008300,0xce006307,0x8000018,0x0,0xffffff,0xffffff,0xdb008d00,0xf8008402, | ||
983 | 0x73001c16,0x35000004,0x15000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
984 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe1007000,0xfd007601,0x4e00001c,0x1000000, | ||
985 | 0xffffff,0xffffff,0xff008900,0x97003c0f,0x3a000008,0x10000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
986 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
987 | 0x1f006000,0xfc007400,0xa900460c,0x9000000,0xffffff,0xffffff,0xe2007803,0x51000016,0x1a000000,0x2000000,0x0,0x0,0x0,0x0, | ||
988 | 0x0,0x0,0x5700d500,0x9c00de00,0xc000e800,0xc000f200,0xc000fc00,0xc000f700,0xc000e900,0x7000dc00,0x1f00d400,0x0,0x0,0x0, | ||
989 | 0x0,0x0,0x0,0x0,0x0,0x9e006f00,0xa900460c,0x1e000000,0xffffff,0xffffff,0x93006505,0x35000009,0x7000000,0x0, | ||
990 | 0x0,0x0,0x0,0x7000b800,0xdb00c100,0xfe00ca00,0xff00d400,0xff00de00,0xff00e800,0xff00f200,0xff00fc00,0xff00f700,0xff00e900,0xff00dc00, | ||
991 | 0xff00cf00,0xf600c200,0xaf00b500,0x23009606,0x0,0x0,0x0,0x0,0x0,0x1f006700,0x90005407,0x1e000000,0xffffff,0xffffff, | ||
992 | 0x4000030,0x1d000000,0x2000000,0x0,0x0,0x3c00a500,0xef00ad00,0xff00b600,0xff00bf00,0xf900bd02,0xe300ac05,0xbd009605,0x9a007307,0x97006f05, | ||
993 | 0x97006905,0x97006205,0x97005d05,0xcd00a000,0xed00a801,0xfe00a900,0xff00b500,0xfe00a600,0xb8009103,0xa000030,0x0,0x0,0x0,0x0, | ||
994 | 0xa000013,0x1a000000,0xffffff,0xffffff,0x0,0x1000000,0x0,0x0,0x87009a00,0xfe00a200,0xff00a800,0xea009a04,0x8300490f,0x45000010, | ||
995 | 0x32000000,0x2c000000,0x23000000,0x1a000000,0x19000000,0x19000000,0x19000000,0x19000000,0x26000000,0x2e000000,0xb0007200,0xfc009300,0xff009a00,0xe7008303, | ||
996 | 0x32005011,0x0,0x0,0x0,0x0,0x1000000,0xffffff,0xffffff,0x0,0x0,0x0,0x57009100,0xff009800,0xf9009102, | ||
997 | 0x85003b11,0x4300000e,0x2e000000,0x14000000,0x5000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
998 | 0x0,0x1f000000,0xbf006e00,0xff008700,0xea007504,0x1d000021,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0, | ||
999 | 0x0,0xf6008f00,0xe7007e04,0x58000019,0x35000004,0x15000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1000 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6e005600,0xfe007d00,0xa6004c0b,0x8000018,0x0,0x0,0x0, | ||
1001 | 0xffffff,0xffffff,0x0,0x0,0x57008b00,0xf8008202,0x72001a16,0x2e000000,0x9000000,0x1000000,0x0,0x0,0x0,0x70bababa, | ||
1002 | 0x70bcbcbc,0x70bebebe,0x70c0c0c0,0x70c3c3c3,0x70c5c5c5,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb4006d00,0xea006904, | ||
1003 | 0x35000018,0x1000000,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x70008b00,0xa6005b09,0x3a000008,0x10000000,0x1fb4b4b4,0x9cababab, | ||
1004 | 0xe69f9f9f,0xfb959595,0xff8f8f8f,0xff959595,0xff9b9b9b,0xffa2a2a2,0xffa7a7a7,0xffacacac,0xffafafaf,0xffb1b1b1,0xfbb8b8b8,0xe6c0c0c0,0x9cc9c9c9,0x23b4b4ba, | ||
1005 | 0x0,0x0,0x0,0xe3006c01,0x4c000017,0x5000000,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x57007400,0x2b00001a, | ||
1006 | 0x547d7d7d,0xdb999999,0xff7d7d7d,0xff7f7f7f,0xff767676,0xff6e6e6e,0xff686868,0xff626262,0xff626262,0xff636363,0xff6a6a6a,0xff737373,0xff7b7b7b,0xff8a8a8a, | ||
1007 | 0xff9c9c9c,0xffababab,0xffb8b8b8,0xffbcbcbc,0xe0c1c1c3,0x45b5b5bb,0x0,0x70006e00,0x40000011,0x7000000,0x0,0x0,0xffffff,0xffffff, | ||
1008 | 0x0,0x0,0x0,0xc4969696,0xff747474,0xff797979,0xff6b6b6b,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff686868, | ||
1009 | 0xff707070,0xff797979,0xff818181,0xff8a8a8a,0xff929292,0xff9a9a9a,0xffa3a3a3,0xffb0b0b0,0xffbababa,0xffc0c0c0,0xcbbcbcbf,0xa000030,0x16000000,0x5000000, | ||
1010 | 0x0,0x0,0xffffff,0xffffff,0x0,0x0,0xdb8f8f8f,0xff737373,0xff6c6c6c,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262, | ||
1011 | 0xff626262,0xff626262,0xff666666,0xff6e6e6e,0xff777777,0xff7f7f7f,0xff888888,0xff909090,0xff989898,0xffa1a1a1,0xffa9a9a9,0xffb1b1b1,0xffb9b9b9,0xffbfbfbf, | ||
1012 | 0xffc1c1c1,0xe7bcbcbf,0x1000002a,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x9c9c9c9c,0xff6f6f6f,0xff696969,0xff626262,0xff626262, | ||
1013 | 0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff646464,0xff6c6c6c,0xff757575,0xff7d7d7d,0xff868686,0xff8e8e8e,0xff969696,0xff9f9f9f,0xffa7a7a7, | ||
1014 | 0xffb0b0b0,0xffb7b7b7,0xffbfbfbf,0xffc8c8c8,0xffcbcbcb,0xffc3c3c3,0xc1a0a0a7,0x700001b,0x0,0x0,0xffffff,0xffffff,0x0,0xf67b7b7b, | ||
1015 | 0xff717171,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff909090,0xffc0c0c0,0xffd7d7d7,0xffe7e7e7,0xffeeeeee,0xffdcdcdc, | ||
1016 | 0xffc7c7c7,0xffb4b4b4,0xffa5a5a5,0xffaeaeae,0xffb5b5b5,0xffbdbdbd,0xffc6c6c6,0xffcecece,0xffd6d6d6,0xffcacaca,0xf9c6c6c8,0x40000019,0x1000000,0x0, | ||
1017 | 0xffffff,0xffffff,0x0,0xff646464,0xff747474,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff737373,0xffaaaaaa,0xffc1c1c1,0xffc6c6c6, | ||
1018 | 0xffbdbdbd,0xffb4b4b4,0xffaaaaaa,0xffb9b9b9,0xffd7d7d7,0xffcfcfcf,0xffbababa,0xffb5b5b5,0xffbbbbbb,0xffc4c4c4,0xffcccccc,0xffd4d4d4,0xffdcdcdc,0xffcccccc, | ||
1019 | 0xffcecece,0x5e00001c,0x7000000,0x0,0xffffff,0xffffff,0x0,0xff5f5f5f,0xff727272,0xff626262,0xff626262,0xff626262,0xff626262,0xff656565, | ||
1020 | 0xff929292,0xff787878,0xff868686,0xff919191,0xff8b8b8b,0xff808080,0xff787878,0xff787878,0xff7b7b7b,0xff9c9c9c,0xffa1a1a1,0xff989898,0xffbfbfbf,0xffcacaca, | ||
1021 | 0xffd2d2d2,0xffdadada,0xffe3e3e3,0xffd0d0d0,0xffc2c2c2,0x5f00001c,0xb000000,0x0,0xffffff,0xffffff,0x0,0xfe4d4d4d,0xff747474,0xff646464, | ||
1022 | 0xff626262,0xff626262,0xff626262,0xff686868,0xff656565,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff5d5d5d, | ||
1023 | 0xff6a6a6a,0xff656565,0xffb5b5b5,0xffd0d0d0,0xffd8d8d8,0xffe1e1e1,0xffe6e6e6,0xffcccccc,0xf9acacad,0x5a00001a,0xb000000,0x0,0xffffff,0xffffff, | ||
1024 | 0x0,0xdb3c3c3c,0xff686868,0xff757575,0xff626262,0xff626262,0xff626262,0xff616161,0xff505050,0xff373737,0xff353535,0xff353535,0xff353535,0xff353535, | ||
1025 | 0xff353535,0xff373737,0xff3e3e3e,0xff474747,0xff3d3d3d,0xff505050,0xffc0c0c0,0xffd6d6d6,0xffdfdfdf,0xffe5e5e5,0xffd4d4d4,0xffc2c2c2,0xd1606068,0x48000012, | ||
1026 | 0xa000000,0x0,0xffffff,0xffffff,0x0,0x1f424242,0xfc2a2a2a,0xff696969,0xff7a7a7a,0xff6b6b6b,0xff626262,0xff686868,0xff5c5c5c,0xff494949, | ||
1027 | 0xff3d3d3d,0xff353535,0xff353535,0xff353535,0xff353535,0xff3a3a3a,0xff393939,0xff3d3d3d,0xff4a4a4a,0xff9e9e9e,0xffd4d4d4,0xffdddddd,0xffe1e1e1,0xffd9d9d9, | ||
1028 | 0xffc5c5c5,0xf9767678,0x6100001d,0x27000000,0x5000000,0x0,0xffffff,0xffffff,0x0,0x0,0x5b3b3b3b,0xf8252525,0xff4c4c4c,0xff838383, | ||
1029 | 0xff7f7f7f,0xff787878,0xff7b7b7b,0xff737373,0xff606060,0xff4c4c4c,0xff474747,0xff474747,0xff474747,0xff474747,0xff4c4c4c,0xff727272,0xffacacac,0xffd6d6d6, | ||
1030 | 0xffe1e1e1,0xffe0e0e0,0xffd5d5d5,0xffa3a3a3,0xf66f6f72,0x731b1b31,0x35000004,0xc000000,0x0,0x0,0xffffff,0xffffff,0x0,0x0, | ||
1031 | 0x0,0x2e2f2f2f,0xcc343434,0xff242424,0xff535353,0xff818181,0xff959595,0xff999999,0xff9f9f9f,0xffa2a2a2,0xff989898,0xffa0a0a0,0xffa7a7a7,0xffaeaeae, | ||
1032 | 0xffc9c9c9,0xffdadada,0xffdcdcdc,0xffdcdcdc,0xffc1c1c1,0xff9a9a9a,0xfe727273,0xd158585f,0x53000017,0x34000004,0x10000000,0x1000000,0x0,0x0, | ||
1033 | 0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x6000000,0x40252525,0xbf3c3c3c,0xf9313131,0xff373737,0xff515151,0xff6b6b6b,0xff7f7f7f, | ||
1034 | 0xff939393,0xff989898,0xff9e9e9e,0xffa4a4a4,0xff949494,0xff929292,0xff828282,0xff6a6a6a,0xf6646466,0xc352525a,0x6a1f1f31,0x3b000008,0x27000000,0x8000000, | ||
1035 | 0x1000000,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x57262626, | ||
1036 | 0xff393939,0xff505050,0xff444444,0xff3e3e3e,0xff404040,0xff454545,0xff4d4d4d,0xff565656,0xff696969,0xff7e7e7e,0xff737373,0xf95f5f60,0x5f00001c,0x31000000, | ||
1037 | 0x24000000,0xe000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x0, | ||
1038 | 0x0,0x0,0x0,0x0,0xa13d3d3d,0xfe444444,0xff4b4b4b,0xff464646,0xff434343,0xff444444,0xff535353,0xff646464,0xff737373,0xff6e6e6e, | ||
1039 | 0xf9646466,0x99373745,0x3a000008,0xb000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff, | ||
1040 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3a272727,0xbf474747,0xeb515151,0xf6535356,0xff5e5e5e, | ||
1041 | 0xfe626262,0xf6616163,0xea5f5f63,0xb04f4f56,0x4d000015,0x35000004,0x19000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1042 | 0x0,0x0 | ||
1043 | }; | ||
1044 | |||
1045 | static const QRgb SoundPlayer_data[] = { | ||
1046 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x318091d7,0x537c8dd0,0x847c8ace, | ||
1047 | 0x867987c9,0x867784c5,0x586e7cb9,0x27626ea4,0x4000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1048 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x218597de,0xa18598df, | ||
1049 | 0xf08496de,0xff95a4e2,0xffa5b0e7,0xffafb7ea,0xffacb5e9,0xffaab2e7,0xff9ca6df,0xff838fcf,0xe37381c1,0x8b6b77b2,0x2a566091,0x5000000,0x1000000,0x0, | ||
1050 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1051 | 0x108da0eb,0xa1899de6,0xff90a1e7,0xffb8c2f1,0xffdde1fb,0xffe9edff,0xffe8edff,0xffe8eeff,0xffe6edff,0xffc7d6ff,0xffc7d4ff,0xffc9d4ff,0xffc1cbf8,0xff9ba3dc, | ||
1052 | 0xff7783c1,0x90636da6,0x1d3c4365,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1053 | 0x0,0x0,0x0,0x318ca0e9,0xf08ca0eb,0xffb6c2f3,0xffe9ecfe,0xfff0f3ff,0xffeef3ff,0xffedf1ff,0xffebf0ff,0xffe9efff,0xffe8eeff,0xffc9d8ff, | ||
1054 | 0xffc7d6ff,0xffc3d4ff,0xffcfdbff,0xffd4deff,0xffc9d0fb,0xff8b94d0,0xd96873ae,0x454b527d,0x8000000,0x1000000,0x0,0x0,0x0,0x0, | ||
1055 | 0x0,0x0,0x0,0x0,0x0,0x0,0x318ea2ec,0xf095a8f0,0xffd4dbf9,0xfff5f7ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff,0xffeef3ff, | ||
1056 | 0xffedf1ff,0xffebf0ff,0xffe4ebff,0xffccdaff,0xffc9d8ff,0xffc8d7ff,0xffd6e1ff,0xffd6e0ff,0xffd4e0ff,0xffe6eaff,0xffa8ade4,0xf36974b1,0x4c434970,0xa000000, | ||
1057 | 0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3190a5f0,0xf097abf2,0xffe3e7fc,0xfff9fbff,0xfff9fbff, | ||
1058 | 0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff,0xffeef3ff,0xffedf1ff,0xffe4ebff,0xffcfdcff,0xffccdaff,0xffd0dcff,0xffd9e3ff,0xffd7e2ff,0xffe7edff,0xfff6f9ff, | ||
1059 | 0xfff0f3ff,0xffabb1e3,0xf46771ae,0x40343957,0xa000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x1095aaf8,0xe092a8f5, | ||
1060 | 0xffd1d9fb,0xfff9fbff,0xfffdfeff,0xfffafcff,0xfff9fbff,0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff,0xffeef3ff,0xffe7edff,0xffd3dfff,0xffcfdcff,0xffd8e3ff, | ||
1061 | 0xffdbe4ff,0xffdfe7ff,0xfff7f9ff,0xfff7f9ff,0xfff6f9ff,0xffedefff,0xff9ea4dd,0xdc616aa3,0x21000000,0x6000000,0x0,0x0,0x0,0x0, | ||
1062 | 0x0,0x0,0x9193a8f5,0xffb9c8fa,0xffeff4ff,0xfff3f7ff,0xfff9fbff,0xfffdfeff,0xfffbfcff,0xfffafbff,0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff, | ||
1063 | 0xffe4ebff,0xffd7e1ff,0xffd5e0ff,0xffdee7ff,0xffdce6ff,0xfff2f5ff,0xfff8f9ff,0xfff7f9ff,0xfff7f9ff,0xfff6f9ff,0xffe5e8ff,0xff7d85c1,0x934d5481,0x17000000, | ||
1064 | 0x3000000,0x0,0x0,0x0,0x0,0x2192a8f3,0xff9cb0fa,0xffeaefff,0xffe8efff,0xffedf3ff,0xfff3f7ff,0xfff9fbff,0xfffdfeff,0xfffcfdff, | ||
1065 | 0xfffafbff,0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xffe7eeff,0xffdbe4ff,0xffdee6ff,0xffe1e9ff,0xffedf2ff,0xfff8faff,0xfff8f9ff,0xfff8f9ff,0xfff7f9ff,0xfff7f9ff, | ||
1066 | 0xfff6f9ff,0xffc4c9f5,0xf4636ca7,0x3d1a1c2b,0xc000000,0x0,0x0,0x0,0x0,0x8295abf8,0xffc2cffc,0xffe0eaff,0xffe3ecff,0xffe8efff, | ||
1067 | 0xffedf3ff,0xfff3f7ff,0xfff9fbff,0xfffdfeff,0xfffcfdff,0xfffafbff,0xfff7f9ff,0xfff5f7ff,0xffebf0ff,0xffdfe8ff,0xffe5ecff,0xffe9efff,0xfff9fbff,0xfff9faff, | ||
1068 | 0xfff8faff,0xfff8f9ff,0xfff8f9ff,0xfff7f9ff,0xfff5f7ff,0xffecefff,0xff868cca,0x8c444a73,0x1b000000,0x3000000,0x0,0x0,0x0,0xe196adfa, | ||
1069 | 0xffe1e9fe,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffe8efff,0xffedf3ff,0xfff3f7ff,0xfff8fbff,0xfffdfeff,0xfffdfdff,0xfffafbff,0xfff3f5fe,0xffe8edfd,0xffe2e9fd, | ||
1070 | 0xffeaf0ff,0xfff7faff,0xfff9fbff,0xffaae0ae,0xff7bdb7e,0xff7be37e,0xff7adb7e,0xffc5eccf,0xfff3f6ff,0xfff3f6ff,0xffabafe4,0xca565d91,0x2c000000,0x9000000, | ||
1071 | 0x0,0x0,0x2194aaf7,0xffaabdfd,0xffdfe9ff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffe8efff,0xffedf3ff,0xfff3f7ff,0xfff8fbff,0xfffafcff, | ||
1072 | 0xffeef1fc,0xffe8ecfa,0xffdfe5f9,0xffdce2f7,0xffe5e9f7,0xffe8f3ed,0xff3eba3f,0xff5dc55f,0xff7adf7e,0xff5cd55f,0xff1ed01f,0xff00e300,0xff1ee01f,0xff97ea9e, | ||
1073 | 0xffdbdeff,0xff6971ac,0x3e000000,0x12000000,0x0,0x0,0x5394aaf6,0xffbecdfe,0xffd0dfff,0xffd1e0ff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff, | ||
1074 | 0xffe8efff,0xffedf3ff,0xfff1f6ff,0xffeaeffe,0xffeef1fc,0xffe7ebfa,0xffd3d9f2,0xffdde1f3,0xffe9ebf6,0xffbbd2c7,0xffe8efee,0xfff8faff,0xfff7f9ff,0xfff6f9ff, | ||
1075 | 0xffecf1ff,0xffa8dcbe,0xff35db3f,0xff00ee00,0xff30e43f,0xff6a8ca4,0x77343858,0x1b000000,0x2000000,0x0,0x8494aaf7,0xffcbd7fe,0xffc9daff,0xffcdddff, | ||
1076 | 0xffd1dfff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffe8efff,0xffe6edff,0xffe5ebfe,0xffd5dffc,0xf7889be3,0xc96875ab,0xf57783bc,0xffd1d4e8,0xffe3e6f4, | ||
1077 | 0xffe9ecf9,0xffe9efff,0xffe1e9ff,0xffd7e2ff,0xffd3dfff,0xffd0dcff,0xffccdaff,0xff89d5ae,0xff0cea10,0xff09ef0d,0x9b206e36,0x24000000,0x5000000,0x0, | ||
1078 | 0x8692a8f4,0xffbfcffe,0xffc4d8ff,0xffc9daff,0xffcdddff,0xffd1dfff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffdfe8ff,0xffe6ecfe,0xffaebffc,0x914b5475, | ||
1079 | 0x51000000,0x8c4a527d,0xff9199c5,0xffdce1f4,0xffdde3f7,0xffe4ebff,0xffdfe8ff,0xffdbe5ff,0xffd7e2ff,0xffd3dfff,0xffd0dcff,0xffccdaff,0xffa3d3cf,0xff1ad527, | ||
1080 | 0xfa03f605,0x52009000,0x8000000,0x0,0x8692a8f4,0xffbfcffe,0xffc1d6ff,0xffc4d8ff,0xffc9daff,0xffcdddff,0xffd6e3ff,0xffe2ebff,0xffebf1ff,0xfff2f6ff, | ||
1081 | 0xffeff3ff,0xffeff2fe,0xffafc1fc,0x84485275,0x35000000,0x75596296,0xff6e9f93,0xff37c03c,0xff00ba00,0xff1cd11f,0xff47dd4f,0xff8add9e,0xffdbe5ff,0xffd7e2ff, | ||
1082 | 0xffd3dfff,0xffd0dcff,0xffccdaff,0xff7c94b8,0xfa03df05,0xe500ec00,0x1a008900,0x0,0x8692a8f4,0xffcbd7fe,0xffccdcff,0xffdbe6ff,0xffe8efff,0xfff2f6ff, | ||
1083 | 0xfff5f8ff,0xfff6f9ff,0xfff7f9ff,0xfff8fbff,0xfff2f5ff,0xffecf0fe,0xffd8e0fc,0xf5889be4,0xcc7685c5,0xff6b7da9,0xff86ca92,0xffd6dee5,0xffeceffa,0xffc0e4cf, | ||
1084 | 0xff65db6f,0xff0ee810,0xff29e82f,0xffb1e4cf,0xffd7e2ff,0xffd3dfff,0xffd0dcff,0xff898fcd,0xa01f5635,0xff00e100,0xa300dc00,0x0,0x588ba0e8,0xffbecdfe, | ||
1085 | 0xfff2f6ff,0xfff2f6ff,0xfff3f7ff,0xfff3f7ff,0xfff4f8ff,0xfff7f9ff,0xfff8fbff,0xfff9fbff,0xfff8fbff,0xffecf0fe,0xffe0e3f3,0xffa2a3b0,0xff8b8a93,0xff949298, | ||
1086 | 0xffa7a6ad,0xffcfd0d7,0xfff8fafe,0xfff4f7ff,0xffeef3ff,0xffdaecef,0xff47e44f,0xff00f400,0xff88eb9e,0xffd7e2ff,0xffcdd7ff,0xff7980bc,0x842f334f,0x95009500, | ||
1087 | 0xff00de00,0x2000cb00,0x277d90d1,0xffa4b8fd,0xfff5f8ff,0xfff2f6ff,0xfff2f6ff,0xfff5f8ff,0xfff7f9ff,0xfff8faff,0xfff8faff,0xfff9fbff,0xfff9fbff,0xfff5f9ff, | ||
1088 | 0xff7b7880,0xff736e73,0xff6a656a,0xff686368,0xff706c70,0xff787378,0xffa29ea3,0xffdedee2,0xfff4f7ff,0xffeef3ff,0xffe9efff,0xff71e77e,0xff00fc00,0xff95ecae, | ||
1089 | 0xffcbd3ff,0xff636ca7,0x59010101,0x33002300,0xef00c200,0x9f00c200,0x4000000,0xe395abf8,0xffecf0fe,0xfff3f7ff,0xfff5f9ff,0xfff6f9ff,0xfff7f9ff,0xfff7f9ff, | ||
1090 | 0xfff8faff,0xfff8faff,0xfff9fbff,0xff9397a0,0xff746f74,0xff686368,0xff686368,0xff686368,0xff686368,0xff686368,0xff6c676c,0xff837e83,0xffc8c5ca,0xfff4f7ff, | ||
1091 | 0xffeef3ff,0xffe9efff,0xff63df6f,0xff0ef110,0xff91b3c7,0xd6525989,0x4b000000,0x1c000000,0x8100a600,0xdf00be00,0x1000000,0x8b8ba0e8,0xffc2cffc,0xfff6f8ff, | ||
1092 | 0xfff5f9ff,0xfff6f9ff,0xfff6f9ff,0xfff7f9ff,0xfff7f9ff,0xfff8faff,0xffeef3ff,0xff818591,0xff777377,0xff686368,0xff686368,0xff686368,0xff686368,0xff686368, | ||
1093 | 0xff686368,0xff686368,0xff827e82,0xffc0bfc2,0xfff4f7ff,0xffeef3ff,0xffe9efff,0xff36d43f,0xff27c03d,0xa33b4062,0x3e000000,0x13000000,0x30006300,0xff00bb00, | ||
1094 | 0x0,0x1b596694,0xf29aaff7,0xfff1f4ff,0xfff5f8ff,0xfff5f9ff,0xfff6f9ff,0xfff6f9ff,0xfff7f9ff,0xfff3f6ff,0xffdce7ff,0xff757b87,0xff7b777b,0xff686368, | ||
1095 | 0xff696469,0xff7b777b,0xff8d898d,0xff7e7a7e,0xff696469,0xff696469,0xff6b666b,0xff837f83,0xffc7c5c9,0xfff4f7ff,0xffeff3ff,0xff95b6c2,0xff00cf00,0x73013501, | ||
1096 | 0x2e000000,0xa000000,0x0,0xff00a400,0x0,0x4000000,0x8e869ae1,0xffb3c2f9,0xfff6f8ff,0xfff5f8ff,0xfff5f9ff,0xfff6f9ff,0xfff6f9ff,0xffdee9ff, | ||
1097 | 0xffd7e4ff,0xff8c95a7,0xff656265,0xff6c676c,0xff635e63,0xff595359,0xff7e7a7e,0xffb9b6b9,0xffafacaf,0xff7e7a7e,0xff787478,0xff7a767a,0xffa09ca0,0xffdedee1, | ||
1098 | 0xffe4e7ff,0xff7d85c1,0xe90ba512,0x98008700,0x1c000000,0x3000000,0x0,0xff009b00,0x0,0x0,0x1c55618d,0xd88da2eb,0xffd1d9fb,0xfff5f8ff, | ||
1099 | 0xfff5f8ff,0xfff5f9ff,0xffe6eeff,0xffd3e1ff,0xffd5e3ff,0xffbecef1,0xff59575d,0xff837f83,0xff635f63,0xff423c42,0xff575257,0xff8f8a8f,0xffbebbbe,0xffc5c3c5, | ||
1100 | 0xff878387,0xff898589,0xff8b878b,0xffb7b4b8,0xff9aa0d6,0xde5a6397,0xa2017201,0x98009b00,0xc000000,0x0,0x20008800,0xbf00a000,0x0,0x0, | ||
1101 | 0x4000000,0x456674a9,0xf38fa3ee,0xffdbe1fb,0xfff5f8ff,0xffeef3ff,0xffd0dfff,0xffd2e0ff,0xffd1e0ff,0xffc1d5ff,0xff5d5c6a,0xff868286,0xff797479,0xff464046, | ||
1102 | 0xff423c42,0xff585258,0xff817c81,0xffb5b3b5,0xffb2afb2,0xff999599,0xff9b979b,0xffa6a3a6,0xfb9195b4,0x7113141c,0x6f006800,0x8b00a100,0x3000000,0x0, | ||
1103 | 0x7000ab00,0x30009400,0x0,0x0,0x0,0x8000000,0x4c5b6897,0xf48ca1ea,0xffcdd5f8,0xffdbe6ff,0xffceddff,0xffd0dfff,0xffc5d8ff,0xffbed3ff, | ||
1104 | 0xff6c6c79,0xff534e53,0xffa09da0,0xff5a555a,0xff423c42,0xff423c42,0xff554f55,0xff858085,0xffb5b3b5,0xffa8a5a8,0xffaaa7aa,0xffaca9ac,0xf7b8b7b9,0x48000000, | ||
1105 | 0x75008400,0x64009900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0xa000000,0x4e586492,0xe8879be3,0xffaab8f0, | ||
1106 | 0xffdae2fe,0xffd2dfff,0xffbbd2ff,0xffbbd1ff,0xff7f8294,0xff4f4a4f,0xff6e6a6e,0xffa3a0a3,0xff575257,0xff443e44,0xff464046,0xff5d585d,0xff908d90,0xffb7b4b7, | ||
1107 | 0xffb9b7b9,0xffbbb8bb,0xffbfbdbf,0x4f767476,0xa3009900,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1108 | 0x1000000,0xa000000,0x322d334b,0xac7384c1,0xff90a1e7,0xffb2bcef,0xffccd6fb,0xffcad8ff,0xffc1cdea,0xff615d63,0xff4d474d,0xff7a757a,0xffb7b4b7,0xff716d71, | ||
1109 | 0xff4d474d,0xff4e494e,0xff827e82,0xffc7c4c7,0xffc9c7c9,0xffcbc9cb,0xffc7c4c7,0x48b0aeb0,0x1000000,0x0,0x0,0x0,0x0,0x0, | ||
1110 | 0x0,0x0,0x0,0x0,0x0,0x1000000,0x8000000,0x1b000000,0x4e38405d,0xa66877ae,0xea7f90d5,0xff8f9fe0,0xff9fabe5,0xff9294b6, | ||
1111 | 0xff625c62,0xff625d62,0xff7e7a7e,0xffcdcbcd,0xffc7c4c7,0xffb4b1b4,0xffd4d2d4,0xffd6d5d6,0xffd8d7d8,0xffdbd9db,0xffcdcbcd,0x31c4c2c4,0x0,0x0, | ||
1112 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0xf000000,0x20000000, | ||
1113 | 0x33000000,0x5b2e344c,0x7a434c71,0x9f596595,0xbb61688f,0xf36d6972,0xff767176,0xff706b70,0xffb1aeb1,0xffe1e0e1,0xffe0dfe0,0xffe3e2e3,0xffe2e1e2,0xffd8d6d8, | ||
1114 | 0xcfcdcbcd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1115 | 0x0,0x0,0x1000000,0x5000000,0xc000000,0x16000000,0x1f000000,0x27000000,0x2e000000,0x32000000,0x634b474b,0x5d504d50,0x735c585c,0xd37e7b7e, | ||
1116 | 0xffa09da0,0xffb8b6b8,0xffbbb8bb,0xbfb0adb0,0x10d1cfd1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1117 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x3000000,0x7000000,0xa000000,0xc000000, | ||
1118 | 0xa000000,0x7000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1119 | 0x0,0x0 | ||
1120 | }; | ||
1121 | |||
1122 | static const QRgb Spreadsheet_data[] = { | ||
1123 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5, | ||
1124 | 0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xde9daac1,0x0,0x0,0x0,0x0,0x0, | ||
1125 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffbffff,0xffffffff, | ||
1126 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff5faff,0xffedf3fe,0xffe4ebf9,0xffd8e1f2,0xffc2d0e9,0xe0a7b2c4, | ||
1127 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1128 | 0x0,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff,0xfff2f7ff,0xffeaf1fd, | ||
1129 | 0xffe1e9f7,0xffd5dff0,0xffbfcce3,0xffebf4ff,0xe6a2aec1,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0, | ||
1130 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffe5e5e5,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, | ||
1131 | 0xffdcdcdc,0xffd8dcdc,0xffc6cace,0xffedf4fe,0xffe6edfa,0xffd9e2f2,0xffc2cee5,0xfff0f6ff,0xffdce7f9,0xe3a1adc3,0x0,0x0,0x0,0x0, | ||
1132 | 0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff, | ||
1133 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xffc4c7ca,0xfff1f7ff,0xffe9effc,0xffdce5f4,0xffc4d0e6,0xffffffff,0xffe8eefb,0xffdbe5f9, | ||
1134 | 0xe8a4afc5,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, | ||
1135 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffc5c9ca,0xfff3f9ff,0xffebf1fd,0xffdfe7f6, | ||
1136 | 0xffc6d1e5,0xffffffff,0xfffdffff,0xffecf2fd,0xffdee9fb,0xe3a4b0c4,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0, | ||
1137 | 0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | ||
1138 | 0xffc7caca,0xfff5f9ff,0xffedf3fe,0xffe3ebf9,0xffbecbe1,0xfff3f5fb,0xffecf2f9,0xffe4ebf7,0xffd8e1f0,0xffd0dcf1,0xe99eabc1,0x0,0x0,0xffffff, | ||
1139 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, | ||
1140 | 0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffbfc1c1,0xffc3c6ca,0xffbec2ca,0xffb7bdc7,0xff9ea8b7,0xff78869c,0xff78869c,0xff78869c,0xff78869c,0xff808fa6, | ||
1141 | 0xff98a9c5,0xff98a9c5,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc, | ||
1142 | 0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc3c8cc,0xffccd4e0,0xffc6d0e0,0xffc1cbdf,0xffbcc8dc,0xffb9c5d9, | ||
1143 | 0xffb1bdd4,0xff9faec8,0xff96a5c2,0xff93a0b7,0xffaebedb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1144 | 0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffccd5e0, | ||
1145 | 0xffc7d2e0,0xffc2cddf,0xffbcc8dc,0xffb7c3d8,0xffa8b4ce,0xff9caac7,0xff99a9c5,0xff97a3b9,0xffb5c5e0,0xff8495b1,0x33000000,0xffffff,0x0,0x0, | ||
1146 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0, | ||
1147 | 0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffcdd7e0,0xffc7d2e0,0xffc4cfe0,0xffbec9dd,0xffafbcd2,0xffa3b2cc,0xffa2b0ca,0xff9fafc9,0xff9da8bd,0xffbdcbe5,0xff8495b1, | ||
1148 | 0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffc5c8cc,0xffc5c8cc, | ||
1149 | 0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffbfc0c2,0xffc3c8cc,0xffbdc4cc,0xffb4bcca,0xffa8b1c2,0xffa1abbe,0xff9ea9bb,0xff9ba6bb, | ||
1150 | 0xff9aa4b9,0xff9fa9bb,0xffc3d0e8,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, | ||
1151 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffdadcdc,0xfff5faff,0xffeaf0fd,0xffdce5f5, | ||
1152 | 0xffd6e0f1,0xffd3ddee,0xffd0dbed,0xffced9ec,0xffccd7ea,0xffafb9ca,0xffc8d5ec,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0, | ||
1153 | 0x0,0x506ab5e6,0x8f52b2ec,0xff66baec,0xff60c5f8,0xff1bb1f9,0xff3abdf9,0xff54cafb,0xff50ceff,0xff7fdeff,0xffcff3ff,0xffffffff,0xffffffff,0xfffcffff, | ||
1154 | 0xffd1d6dc,0xffe9effc,0xffdfe8f6,0xffdbe4f3,0xffdae3f3,0xffd7e0f1,0xffd5dff0,0xffd2dcef,0xffd0dbed,0xffb3bdcc,0xffcedaf0,0xff8495b1,0x33000000,0xffffff, | ||
1155 | 0x0,0x0,0x106ab0e6,0x806ab2e6,0xef40aaf0,0xff21a7f7,0xff00a4ff,0xff00a8ff,0xff00acff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff, | ||
1156 | 0xff00c2ff,0xff30d1ff,0xffbceffc,0xfff4f9ff,0xffc9cfd9,0xffe4ecf9,0xffe1e9f7,0xffdfe7f6,0xffdde5f4,0xffdbe4f3,0xffd9e2f3,0xffd7e1f2,0xffd4def0,0xffb7bece, | ||
1157 | 0xffd2def2,0xff8495b1,0x33000000,0xffffff,0x0,0x306aafe6,0xdf53aceb,0xff14a0fa,0xff009fff,0xff00a3ff,0xff00a7ff,0xff00aaff,0xff00aeff,0xff00b2ff, | ||
1158 | 0xff00b6ff,0xff00b9ff,0xff00bdff,0xff00c1ff,0xff00c5ff,0xff00c8ff,0xff14ccfa,0xff74d0e7,0xffb2bec9,0xffc6ccd7,0xffc5ccd7,0xffc3cad6,0xffc2c9d5,0xffbfc6d3, | ||
1159 | 0xffbec5d2,0xffbdc4d1,0xffbac2d0,0xffb2bac7,0xffd5e0f4,0xff8495b1,0x33000000,0xffffff,0x3047a6ee,0xef55abeb,0xff079bfd,0xff009eff,0xff00a1ff,0xff00a5ff, | ||
1160 | 0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bcff,0xff00c0ff,0xff00c3ff,0xff00c7ff,0xff00cbff,0xff00cfff,0xff07d2fd,0xff7cd2e5,0xffeaf1fc, | ||
1161 | 0xffe7eefb,0xffe4ecf9,0xffe2eaf8,0xffe1e9f8,0xffdee6f5,0xffdde6f4,0xffdce5f4,0xffbcc4d1,0xffd9e3f6,0xff8495b1,0x33000000,0xffffff,0xbf6aafe6,0xff0d9cfc, | ||
1162 | 0xff009cff,0xff00a0ff,0xff00a4ff,0xff00a8ff,0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff,0xff00c2ff,0xff00c6ff,0xff00caff,0xff00cdff, | ||
1163 | 0xff00d1ff,0xff00d5ff,0xff28d7f6,0xffbbe7f4,0xffe9f0fc,0xffe7eefb,0xffe4ebf9,0xffe4ebf8,0xffe2eaf8,0xffdfe7f7,0xffdee6f5,0xffbec6d2,0xffdbe5f7,0xff8495b1, | ||
1164 | 0x33000000,0xffffff,0xff42a7ef,0xff009bff,0xff009fff,0xff00a3ff,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b2ff,0xff00b5ff,0xff00b9ff,0xff00bdff,0xff00c1ff, | ||
1165 | 0xff00c4ff,0xff00c8ff,0xff00ccff,0xff00d0ff,0xff00d4ff,0xff00d7ff,0xff00dbff,0xff93dfec,0xffebf1fd,0xffe8effc,0xffe7eefb,0xffe5ecf9,0xffe3ebf9,0xffe2eaf8, | ||
1166 | 0xffe0e7f6,0xffc0c7d4,0xffdce6f8,0xff8495b1,0x33000000,0xffffff,0xff3ca7f1,0xff009dff,0xff00a1ff,0xff00a5ff,0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff, | ||
1167 | 0xff00b8ff,0xff00d0af,0xff9f7751,0xffbf5d53,0xffbf5951,0xffbf554f,0xffbf524d,0xffbf4e4b,0xffbf4b49,0xffbf4747,0xffbf4345,0xffd19596,0xffcad1db,0xffcacfd9, | ||
1168 | 0xffc8ced8,0xffc6ccd8,0xffc4cbd6,0xffc3c9d5,0xffc1c8d5,0xffb9c0cb,0xffdee8fa,0xff8495b1,0x33000000,0xffffff,0xff5ab0e8,0xff00a0ff,0xff00a4ff,0xff00a8ff, | ||
1169 | 0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00baff,0xff00ee40,0xff40d208,0xffff4d21,0xffff471f,0xffff411c,0xffff3b19,0xffff3517,0xffff2e14,0xffff2812, | ||
1170 | 0xfffd3523,0xffde8179,0xffc4cee0,0xffc1cbdf,0xffbfc9de,0xffbdc8dc,0xffbbc7db,0xffbbc6db,0xffb8c4d9,0xffb6becd,0xffdfe9fa,0xff8495b1,0x33000000,0xffffff, | ||
1171 | 0xff53acd7,0xff2eabf4,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b1ff,0xff00b5ff,0xff00b9ff,0xff00c5df,0xff00fe00,0xff00fe00,0xffbf871f,0xffff5c28,0xffff5625, | ||
1172 | 0xffff4f22,0xffff4920,0xffff431d,0xfffe411f,0xfff86a53,0xffb77064,0xffc3cddf,0xffc1ccdf,0xffbfcade,0xffbec9dc,0xffbdc8dc,0xffbbc6da,0xffbac5da,0xffb7bfce, | ||
1173 | 0xffdfe9fa,0xff8495b1,0x33000000,0xffffff,0xcc3495b9,0xff53b0e2,0xff28aff6,0xff00acff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bbff,0xff00d790,0xff00f802, | ||
1174 | 0xff00f702,0xff20e308,0xffff7031,0xffff6a2e,0xffff642b,0xffff5e29,0xfffe5b2b,0xfff87f5f,0xffbb5c45,0xffa38486,0xffc4cfe0,0xffc2ccdf,0xffbfcade,0xffbec9de, | ||
1175 | 0xffbdc8dc,0xffbbc7db,0xffb9c5d9,0xffb8c0ce,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x5c236a91,0xff3097b8,0xff4faad0,0xff35b6f3,0xff00b3ff,0xff00b6ff, | ||
1176 | 0xff00baff,0xff00beff,0xff00d137,0xff00d50a,0xff00d30a,0xff00d10a,0xff80a722,0xffff7f37,0xffff7934,0xfffc814a,0xfff1906b,0xffb15b41,0xff8b4d40,0xff9eabb9, | ||
1177 | 0xffb8bfcc,0xffb6becb,0xffb4bcca,0xffb3bac8,0xffb2bac8,0xffafb7c7,0xffaeb7c6,0xffb6bdc9,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xd000030,0x891f6788, | ||
1178 | 0xff288fae,0xff2e93b1,0xff41aad1,0xff2ab9f0,0xff0dbefc,0xff00bde2,0xff00b112,0xff00af12,0xff00ad13,0xff07ad18,0xff31ae2f,0xfff1a160,0xffed9a6a,0xffc77453, | ||
1179 | 0xff95452f,0xff8f5548,0xffa298a0,0xffedf3fd,0xffeff5ff,0xffebf2fd,0xffeaf1fd,0xffe7eefa,0xffe6edfa,0xffe3eaf8,0xffe2eaf8,0xffc3cad6,0xffdfe9fa,0xff8495b1, | ||
1180 | 0x33000000,0xffffff,0x0,0x16000029,0x6a103f5f,0xd61e7a96,0xff1d85a0,0xff1a829c,0xff208ca8,0xff279797,0xff3c9d40,0xff429c48,0xff489b51,0xff41974f, | ||
1181 | 0xff2f8d48,0xff8a623e,0xff97432d,0xff893d29,0xff9e7773,0xffc4c3d0,0xffc8cdd5,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8, | ||
1182 | 0xffe2eaf8,0xffc2c9d5,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0xe000022,0x35000022,0x740b3551,0xb812627c,0xe1117189,0xff1d807b, | ||
1183 | 0xff3d9540,0xff2f8e3c,0xff218739,0xff147f36,0xff0b7a34,0xff866e58,0xffab8c8a,0xffb2b8c4,0xffd5dae5,0xffeff5fd,0xffd0d5dc,0xfff0f6ff,0xffedf3fe,0xffeaf1fd, | ||
1184 | 0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x2000000, | ||
1185 | 0x1200001b,0x2d00001f,0x4200001c,0xff9da6c1,0xffafc1ba,0xff94ac9f,0xff8ba599,0xff8ea6a1,0xffaeb2bc,0xffb6bac2,0xffc3c6cd,0xffcdd1d8,0xffd2d6dc,0xffd0d6dc, | ||
1186 | 0xffc7ccd3,0xffcfd4dc,0xffccd1db,0xffcad0da,0xffc9cfd9,0xffc6ccd7,0xffc4cbd6,0xffc3cad6,0xffc3cad6,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff, | ||
1187 | 0x0,0x0,0x0,0x0,0x0,0x2000000,0x6000000,0xffc4d0e5,0xfff4fdff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff, | ||
1188 | 0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7, | ||
1189 | 0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xff8495b1,0xff8495b1, | ||
1190 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1, | ||
1191 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1192 | 0x0,0x0,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000, | ||
1193 | 0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0xffffff,0xffffff,0xffffff, | ||
1194 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
1195 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
1196 | 0xffffff,0xffffff | ||
1197 | }; | ||
1198 | |||
1199 | static const QRgb Tux_data[] = { | ||
1200 | 0x4000000,0x7000000,0xc000000,0x12000000,0x17000000,0x1b000000,0x1d000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000, | ||
1201 | 0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1d000000,0x1b000000, | ||
1202 | 0x17000000,0x12000000,0xc000000,0x7000000,0x7000000,0xf000000,0x18000000,0x25000000,0x2e000000,0x36000000,0x3b000000,0x3d000000,0x3d000000,0x3d000000, | ||
1203 | 0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000, | ||
1204 | 0x3d000000,0x3d000000,0x3b000000,0x36000000,0x2e000000,0x25000000,0x18000000,0xf000000,0xc000000,0x18000000,0xff090684,0xff090682,0xff090680,0xff090680, | ||
1205 | 0xff090681,0xff090681,0xff090682,0xff090683,0xff060456,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454, | ||
1206 | 0xff060454,0xff060454,0xff060454,0xff060457,0xff070465,0xff070467,0xff060456,0xff06034d,0xff04033a,0x3d000000,0x29000000,0x18000000,0x12000000,0x25000000, | ||
1207 | 0xff090682,0xffe4f8f0,0xffd2f3e7,0xffccf1e2,0xffcdf1e2,0xffd2f3e4,0xffd9f4e7,0xffafafae,0xff9b9b9b,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c, | ||
1208 | 0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9d9d9d,0xffb1b1b1,0xffb4b4b5,0xffa1a1a1,0xff8f8f8f,0xff04033a,0x5c000000, | ||
1209 | 0x3d000000,0x25000000,0x17000000,0x2e000000,0xff08067f,0xffcff2e5,0xff97e3c7,0xff7ddcb8,0xff7fdcb7,0xff8ee0bc,0xffa1e5c3,0xff565656,0xff4f4f4f,0xff4f4f4f, | ||
1210 | 0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff505050,0xff595858,0xff525253, | ||
1211 | 0xff4e4e4e,0xff494949,0xff02011d,0x74000000,0x4e000000,0x2e000000,0x1b000000,0x36000000,0xff08067e,0xffc4efdf,0xff76d9b5,0xff50cfa0,0xff53d09f,0xff69d6a7, | ||
1212 | 0xff605f5c,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616, | ||
1213 | 0xff161616,0xff161616,0xff161616,0xff161616,0xff151515,0xff131313,0xff010008,0x87000000,0x5a000000,0x36000000,0x1d000000,0x3b000000,0xff08067e,0xffc0eede, | ||
1214 | 0xff6ad6af,0xff43cc99,0xff46cd98,0xff5fd3a0,0xff3a3937,0xff030303,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404, | ||
1215 | 0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff030303,0xff040404,0xff030303,0xff030303,0xff000001,0x93000000,0x62000000,0x3b000000, | ||
1216 | 0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff46cc97,0xff61d4a1,0xff2a2928,0xff000000,0xff020202,0xff020202,0xff020202,0xff020202, | ||
1217 | 0xff010101,0xff000201,0xff020202,0xff020202,0xff020202,0xff020202,0xff020202,0xff020202,0xff010101,0xff050505,0xff0f0e0e,0xff060606,0xff010101,0xff010101, | ||
1218 | 0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff47cc97,0xff63d4a1,0xff242523,0xff000000, | ||
1219 | 0xff020202,0xff010101,0xff020202,0xff131111,0xff171515,0xff020202,0xff000201,0xff020202,0xff020202,0xff020202,0xff010101,0xff030303,0xff060606,0xff060606, | ||
1220 | 0xff161615,0xff383535,0xff050505,0xff010101,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98, | ||
1221 | 0xff48cd98,0xff64d5a1,0xff20201f,0xff000000,0xff010101,0xff090909,0xff1b1918,0xff0e0e0d,0xff141414,0xff100f0f,0xff020202,0xff020202,0xff020202,0xff010101, | ||
1222 | 0xff252220,0xff716d6c,0xff73706f,0xff565352,0xff1b1b1b,0xff090908,0xff0c0c0c,0xff010101,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000, | ||
1223 | 0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff20201f,0xff000000,0xff090909,0xff7f7c7b,0xff888888,0xff797979,0xff2f2d2b,0xff020202, | ||
1224 | 0xff020202,0xff020202,0xff010101,0xff181717,0xffb2b2b2,0xffa9a9a9,0xffa4a4a4,0xff9a9a9a,0xff9e9e9e,0xff383534,0xff010101,0xff010101,0xff000001,0x99000000, | ||
1225 | 0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff252423,0xff000000,0xff2e2c2a,0xffdddddd, | ||
1226 | 0xffefefef,0xfff3f3f3,0xffe1e1e1,0xff1e1c1b,0xff000101,0xff020202,0xff010101,0xff6f6866,0xfff3f3f3,0xffeaeaea,0xff7d7d7d,0xff8a8a8a,0xffdcdcdc,0xffbcbcbe, | ||
1227 | 0xff0d0c0c,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2, | ||
1228 | 0xff252624,0xff000000,0xff5f5856,0xfff3f3f3,0xff868686,0xff8b8b8b,0xfffefefe,0xff6a6663,0xff010101,0xff010101,0xff030303,0xffb9b3b0,0xffffffff,0xff595959, | ||
1229 | 0xff000000,0xff050505,0xff949494,0xffebebee,0xff2f2c2d,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd, | ||
1230 | 0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff282826,0xff000000,0xff837c78,0xff6d6d6d,0xff050505,0xff202020,0xff868686,0xff908c88,0xff020202,0xff060606, | ||
1231 | 0xff0b0a09,0xffbfbab8,0xffd4d4d4,0xff070707,0xff030303,0xff282828,0xff3f3f3f,0xffebebee,0xff504c4e,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000, | ||
1232 | 0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff2b2c2a,0xff000000,0xff837c7a,0xff484848,0xff020202,0xff1b1b1b, | ||
1233 | 0xff525252,0xff757072,0xff020202,0xff050505,0xff070707,0xff837d7f,0xffc7c7c7,0xff090909,0xff080808,0xff0b0b0b,0xff1c1c1c,0xffeaeaed,0xff575255,0xff000000, | ||
1234 | 0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff31302f,0xff000000, | ||
1235 | 0xff6d6765,0xff636363,0xff020202,0xff000000,0xff524f47,0xff9f8948,0xff7e6717,0xff8b741b,0xff5f4f20,0xff968343,0xffddd3a1,0xff101010,0xff050505,0xff020202, | ||
1236 | 0xff383838,0xffebebee,0xff443f42,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98, | ||
1237 | 0xff48cd98,0xff64d5a2,0xff363634,0xff000000,0xff44403e,0xffa1a1a1,0xff020202,0xff39362b,0xffb89421,0xffc7a21f,0xfff2c711,0xfff0c915,0xffd1b333,0xffc2a228, | ||
1238 | 0xffe8bf12,0xff97833d,0xff353229,0xff0e0e0e,0xffa8a8a8,0xffebebee,0xff1d1b1c,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000, | ||
1239 | 0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff3a3937,0xff000000,0xff0b0b0b,0xffc6c7cd,0xffa28f5a,0xffd3a200,0xffe4b200,0xffe7bb10, | ||
1240 | 0xffe9c51f,0xffeac827,0xffedcc2c,0xffefcd2e,0xffedcc2c,0xffe9bf0c,0xffe2b70b,0xffcda833,0xffeccd91,0xff938577,0xff030304,0xff000000,0xff000001,0x99000000, | ||
1241 | 0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a1,0xff42413e,0xff000101,0xff000000,0xff564a2d, | ||
1242 | 0xffd6a200,0xffdca900,0xffe4b600,0xffe6be14,0xffe9c521,0xffedcc2d,0xffeed436,0xfff2d949,0xfff5e164,0xfff3dc51,0xffeecc27,0xffe6b700,0xffd5a200,0xff9d6d05, | ||
1243 | 0xff241c0f,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff47cc98,0xff64d5a1, | ||
1244 | 0xff474642,0xff000000,0xff14110d,0xffa07300,0xffcd9800,0xffddaa00,0xffe6b300,0xffe7bb10,0xffe9c51f,0xffecca28,0xffedce2e,0xfff4db58,0xfffae97f,0xfff0d547, | ||
1245 | 0xffeec310,0xffae8a0e,0xff564214,0xffa37605,0xff3c2f11,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd, | ||
1246 | 0xff69d6ae,0xff41cb98,0xff47cc97,0xff62d4a1,0xff4b4a47,0xff000000,0xff3c2e17,0xffbe8600,0xffc79400,0xffd9a700,0xffe3b200,0xffe6b90d,0xffe9c018,0xffe9c51f, | ||
1247 | 0xffefd135,0xfff5e462,0xfff3d644,0xffeec30c,0xffb08c14,0xff624e17,0xffa2780b,0xffb68400,0xff2e2411,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000, | ||
1248 | 0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff46cc97,0xff62d4a1,0xff504f4c,0xff010101,0xff2d2414,0xff815c0e,0xffb68700,0xffd5a100, | ||
1249 | 0xffe2b100,0xffe7b700,0xffe9bc0f,0xffecc214,0xfff8d625,0xfff2cf26,0xffb6941c,0xff6e561b,0xff785d18,0xffd3a100,0xffcb9700,0xffaf7b00,0xff1f1a0e,0xff000000, | ||
1250 | 0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff46cc98,0xff61d4a1,0xff595854,0xff020202, | ||
1251 | 0xff070706,0xff523f20,0xff755414,0xff7f6213,0xffac8408,0xffbf9500,0xffc09809,0xffba9413,0xff886d1b,0xff5c4b1a,0xff5f4918,0xff9d7610,0xffe2ae00,0xffce9d00, | ||
1252 | 0xffc6992b,0xffbfa262,0xff242120,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffc0eedd,0xff6ad7ae,0xff44cc99, | ||
1253 | 0xff48cd98,0xff64d5a1,0xff82ddad,0xff030303,0xff020202,0xff96928d,0xffbe9643,0xff926407,0xff795d15,0xff7b6820,0xff7c661f,0xff7e681f,0xff957819,0xffbc920e, | ||
1254 | 0xffe3af00,0xffe0ac00,0xffcf9d00,0xffd0b262,0xffcecbc3,0xffc3c3c6,0xff716f77,0xff020203,0xff000000,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000, | ||
1255 | 0xff08067e,0xffc0eddd,0xff6cd5af,0xff49cb99,0xff4ecd9a,0xff69d4a3,0xff494845,0xff010101,0xff090908,0xffcbcbce,0xffdad2c5,0xffba8d2a,0xffb77f00,0xffd8a90b, | ||
1256 | 0xffecc110,0xffeaba00,0xffdcad00,0xffd3a100,0xffcc9800,0xffcb9b15,0xffd4bf87,0xffd2d2d2,0xffd3d3d3,0xffc9c9cc,0xff9696a0,0xff08080a,0xff000000,0x99000000, | ||
1257 | 0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067c,0xffbee8da,0xff6dcdaa,0xff4bc094,0xff53c293,0xff6cc89d,0xff0f0f0f,0xff000000,0xff060606,0xffbab6b8, | ||
1258 | 0xffd0d0d3,0xffcbc3ba,0xffaf8735,0xffa07100,0xffaa7a00,0xffad7e00,0xffb08000,0xffb88d22,0xffcaaf71,0xffcfc8be,0xffcbcbcd,0xffcdcdcf,0xffdedee1,0xffd8d8de, | ||
1259 | 0xffa0a0ac,0xff1d1c21,0xff000000,0x99000000,0x66000000,0x3d000000,0x1d000000,0x3b000000,0xff080577,0xffb7d6cd,0xff69af98,0xff45987c,0xff489579,0xff1a1a1b, | ||
1260 | 0xff000000,0xff010101,0xff080707,0xffa0a0a9,0xffababb5,0xff9e9ea7,0xffa0a0a9,0xff95866e,0xff907b52,0xff927d55,0xff9a8c75,0xff9e9da2,0xff9e9ea7,0xff9e9ea7, | ||
1261 | 0xffa2a2ac,0xffacacb7,0xffafafba,0xffa3a3b0,0xff7c7c8f,0xff3e3d4f,0xff000002,0x93000000,0x62000000,0x3b000000,0x1b000000,0x36000000,0xff070568,0xff98b4ae, | ||
1262 | 0xff59736d,0xff314e48,0xff202025,0xff010101,0xff000000,0xff000000,0xff232227,0xff65657a,0xff65657a,0xff616174,0xff5f5f72,0xff5e5e71,0xff5e5e71,0xff5e5e71, | ||
1263 | 0xff5e5e71,0xff5f5f72,0xff5f5f72,0xff616174,0xff646478,0xff656579,0xff646479,0xff5e5e74,0xff4d4d65,0xff40405a,0xff01000c,0x87000000,0x5a000000,0x36000000, | ||
1264 | 0x17000000,0x2e000000,0xff050451,0xff050343,0xff030226,0xff020117,0xff000005,0xff000000,0xff000000,0xff000002,0xff030238,0xff040242,0xff040241,0xff040241, | ||
1265 | 0xff040240,0xff040240,0xff040240,0xff040240,0xff040240,0xff040240,0xff040241,0xff040241,0xff040241,0xff040241,0xff040241,0xff040241,0xff040240,0xff040242, | ||
1266 | 0xff03022c,0x74000000,0x4e000000,0x2e000000,0x12000000,0x25000000,0x3d000000,0x5c000000,0x74000000,0x87000000,0x93000000,0x99000000,0x99000000,0x99000000, | ||
1267 | 0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000, | ||
1268 | 0x99000000,0x99000000,0x93000000,0x87000000,0x74000000,0x5c000000,0x3d000000,0x25000000,0xc000000,0x18000000,0x29000000,0x3d000000,0x4d000000,0x5a000000, | ||
1269 | 0x62000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000, | ||
1270 | 0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x62000000,0x5a000000,0x4d000000,0x3d000000,0x29000000,0x18000000,0x7000000,0xf000000, | ||
1271 | 0x18000000,0x25000000,0x2e000000,0x36000000,0x3b000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000, | ||
1272 | 0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3b000000,0x36000000,0x2e000000,0x25000000, | ||
1273 | 0x18000000,0xf000000 | ||
1274 | }; | ||
1275 | |||
1276 | static const QRgb UtilsIcon_data[] = { | ||
1277 | 0x0,0xf0f0f0,0x42f7eb5,0x1c3889c3,0x4c3988ca,0x7a3a8cd4,0xa43995e3,0x9d1e93ed,0x721290f2,0x430888f5,0x120162d6,0x20a162b,0xa0a0a,0xa0a0a, | ||
1278 | 0xf0f0f0,0x82e85c2,0x453994d2,0xa53fa8e9,0xea63c1fc,0xff8bd2ff,0xff96d4ff,0xff75c3ff,0xf94eb0ff,0xd6228ef6,0x700558bd,0x21031d43,0x7050b17,0x10a0a0a, | ||
1279 | 0x43b79af,0x444594d0,0xcc61b5f0,0xff91d7ff,0xffb8e7ff,0xffbde7ff,0xffabdfff,0xff8cceff,0xff6eb9ff,0xff3f9aff,0xdc0d65d4,0x7c002e77,0x24011235,0x607090d, | ||
1280 | 0x1c4587bb,0xa050a4e5,0xff9fd8ff,0xffd4f0ff,0xffdcf3ff,0xffc2eaff,0xffc9ebfe,0xffb2ddfe,0xff52a9ff,0xff3691ff,0xfa0c6bef,0xcd0041ad,0x62001e59,0x19070c18, | ||
1281 | 0x4c418cc4,0xe36bc1fa,0xffc2e9ff,0xffe4f5ff,0xffe9f7ff,0xffceeeff,0xfff6fbfd,0xffe5f1fd,0xff3397ff,0xfe177bfd,0xfe035eec,0xef0043bb,0xa7002570,0x3b070f22, | ||
1282 | 0x9f1e96ea,0xfd87d1ff,0xffc6ecff,0xffd0efff,0xffd9f2ff,0xffc9eaff,0xffb5e0ff,0xff85c2ff,0xff338dfe,0xfe0e6bf6,0xfe0050e0,0xfc003fb6,0xd600287e,0x69081022, | ||
1283 | 0xf317a4fe,0xff88d1ff,0xffb0e3ff,0xff9bdeff,0xffaae1ff,0xffe3f4fe,0xfff1f8fd,0xffd4e7fd,0xff2c82fc,0xfe0c5eed,0xfe0047d7,0xfe003bb4,0xf1002986,0x85081023, | ||
1284 | 0xda0d96e0,0xff6ec3ff,0xff8dd3ff,0xff61c4ff,0xff6dc3ff,0xff6ebcff,0xffebf5fd,0xffe0ebfc,0xff186af8,0xfe014fe9,0xfe003dc8,0xff0034ac,0xf4002683,0x87080f23, | ||
1285 | 0x860b81c1,0xfe3ba8fc,0xff60bcff,0xff3cacff,0xff3ba4ff,0xff3b9afe,0xffe4effc,0xffdee8fb,0xff0857ec,0xfe0045d3,0xfe0037b7,0xff002e9c,0xd0001e6b,0x6e080d1b, | ||
1286 | 0x330c70ae,0xda0e87e1,0xfd2b9ffc,0xff1a93ff,0xff2e91f4,0xff64a8f7,0xffebf2fc,0xffe8effa,0xff4c7fe4,0xfe0d43be,0xfe0030a3,0xf0002588,0x9a021547,0x4b080b11, | ||
1287 | 0x904507e,0x700265a5,0xec037ad9,0xff0474ec,0xff2675db,0xff6e9ae1,0xff7ea2e2,0xff7e9ddd,0xff6586ce,0xfe113fab,0xf2002788,0xbd00175b,0x6a060c21,0x2b0a0a0a, | ||
1288 | 0x2121a20,0x23073d63,0x81014c8f,0xd100479f,0xf40046a9,0xfe0045b4,0xff003eb6,0xff0039ae,0xff00329b,0xf500298a,0xbe001b63,0x79030d2d,0x42080a12,0x120a0a0a, | ||
1289 | 0xa0a0a,0x60a0a0a,0x2006172c,0x64011f4b,0xa9002663,0xd5002c7a,0xfa002f8a,0xe700297e,0xc9001f66,0xa7001851,0x71000d31,0x3f050712,0x1b0a0a0a,0x30a0a0a, | ||
1290 | 0xa0a0a,0x10a0a0a,0x60a0a0a,0x19070c17,0x39070f1f,0x67081021,0x87081225,0x89080f1f,0x78070b19,0x4f02061a,0x24070911,0xb07070d,0x40a0a0a,0xa0a0a | ||
1291 | }; | ||
1292 | |||
1293 | static const QRgb accessories_data[] = { | ||
1294 | 0x0,0x0,0x0,0x2fcac00,0x49feb50d,0xd2ffd436,0x68e2a50e,0x4f7a500,0x8afabb25,0x3edd9508,0x0,0x0,0x0,0x0, | ||
1295 | 0x0,0xfdad00,0x31feb007,0xb9ffd147,0xfdfff275,0xffffff72,0xe6f8d235,0xa0f5be35,0xfffff883,0xf3f9dc4d,0x53d6890a,0x301b00,0x0,0x0, | ||
1296 | 0x2f3a600,0x97fec53f,0xfcffec94,0xffffffa4,0xffffff87,0xffffe951,0xfffed131,0xfffbc232,0xfffef974,0xfffff55e,0xfaf7cb35,0x6bd27f08,0x1522b00,0x0, | ||
1297 | 0x2e09900,0x97f9c240,0xfffffdba,0xfffff082,0xffffcf34,0xffffd534,0xffffed52,0xfffec724,0xfff6bd27,0xfffce047,0xffffd636,0xfdf8b418,0x77c56901,0x1000000, | ||
1298 | 0xa3f6ab09,0xbcfac646,0xffffc635,0xffffc01a,0xffffd332,0xffffe649,0xfffff761,0xffffd939,0xffffdd40,0xfff1b92b,0xfff9bd21,0xf1e6960c,0x517a3c00,0x1000000, | ||
1299 | 0x12bb8001,0xbcf6c643,0xffffea66,0xfffdc421,0xffffde40,0xfffff057,0xfffffe79,0xffffe94e,0xffffef55,0xfffcea56,0xffe3981c,0xd3cd790b,0x84c75e02,0x279c3d00, | ||
1300 | 0x0,0xdb57b00,0xe6f9bb1a,0xfffdd73b,0xfff8c52d,0xfffff865,0xfff8d75b,0xfff9d943,0xfff1cb44,0xffefc33b,0xfff9d03a,0xe7d78b14,0x76904202,0x11260f00, | ||
1301 | 0x0,0x2e89700,0xdcfab310,0xfff8b417,0xfff5ac13,0xffea960a,0xffe88f05,0xffecb64c,0xfffaee74,0xffecbc39,0xfada7f0c,0x36512100,0x1000000,0x0, | ||
1302 | 0x0,0x2e28d00,0xdcf8bc20,0xffffd635,0xfffed334,0xfff8c631,0xfff2b630,0xffefb22e,0xffedad28,0xfffbc325,0xfae89e19,0x295c2200,0x0,0x0, | ||
1303 | 0x0,0x1d88300,0xcdf0b124,0xffffe84e,0xffffeb50,0xffffec54,0xffffe552,0xffffe043,0xffffdf41,0xffffdd3f,0xfae7aa2a,0x295b2200,0x0,0x0, | ||
1304 | 0x0,0x0,0x25bc6c02,0xd6e7ac2f,0xfffef667,0xfffffd70,0xfffff668,0xfffff35b,0xfffff158,0xfef5cf47,0xd0c1741d,0x1b3e1700,0x0,0x0, | ||
1305 | 0x0,0x0,0x0,0x1aa65600,0xc9dc952f,0xfffdf18f,0xfffffe86,0xfff9e161,0xe1d08d2d,0x70883a06,0x11140700,0x0,0x0,0x0, | ||
1306 | 0x0,0x0,0x0,0x0,0x10924200,0xb9cf7a2f,0xedd99445,0x8695420b,0x1b2c1000,0x1000000,0x0,0x0,0x0,0x0, | ||
1307 | 0x0,0x0,0x0,0x0,0x0,0xa782e00,0x214b1c00,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1308 | }; | ||
1309 | |||
1310 | static const QRgb appearance_data[] = { | ||
1311 | 0x0,0x0,0x0,0x0,0x0,0x6e5c528,0x95f2e089,0x51d3bf5a,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1312 | 0x0,0x0,0x0,0x0,0x0,0x68efd96a,0xfffefae1,0xeef3e9b4,0x20847319,0x0,0x0,0x0,0x0,0x0, | ||
1313 | 0x0,0x0,0x0,0x0,0x10e6c626,0xe6f8ecaa,0xfffffcd8,0xfffffbd7,0x9ed6c56a,0x1090909,0x0,0x0,0x0,0x0, | ||
1314 | 0x0,0x0,0x1efdf8d,0x11e4c322,0xa6f3e078,0xfffff9c6,0xfffffbc5,0xfffffbc7,0xfaf9f0ae,0x59ceb843,0x5bea322,0x0,0x0,0x0, | ||
1315 | 0x41ecd14b,0x93f3df73,0xc9f6e686,0xf1f9ed98,0xfffbf3b3,0xfffbf5d0,0xfffbf296,0xfffbf4bf,0xfffaf2be,0xfefcf4ab,0xe2f6e78e,0xb3f3e17e,0x7debd462,0x18c5aa23, | ||
1316 | 0xdef3d84a,0xfffdeb57,0xfffef150,0xfffef345,0xfffbf4ba,0xffffffff,0xffffffff,0xffffffff,0xfffffefc,0xfffbee52,0xfffef24a,0xfffdef54,0xfffde657,0x93bba42f, | ||
1317 | 0x57d7b91e,0xfaf9e136,0xfffef142,0xfffff442,0xfff2ebbd,0xff6f6f6f,0xffdedede,0xff858585,0xffbebebd,0xfffbef60,0xfffff343,0xfffded40,0xe6dbc128,0x35483d09, | ||
1318 | 0x0,0x6ad5ba27,0xfdfbe84d,0xfffef45a,0xfff9ef7c,0xff8a866f,0xffede7bc,0xff9c987f,0xffd8d196,0xfffef459,0xfffef159,0xede3cc39,0x4654480c,0x0, | ||
1319 | 0x0,0x14d420c,0xa4e9d141,0xfffef371,0xffefe58e,0xfff0e8ab,0xfff1eaad,0xfff0e8ab,0xffeee7a9,0xfff8ee71,0xfef9e962,0x69786814,0x1040404,0x0, | ||
1320 | 0x0,0x0,0x6bebd142,0xfffef386,0xfff0e9ad,0xffe8e8e8,0xffe7e7e7,0xffe8e8e8,0xffedebe0,0xfffbf288,0xfaf3e26b,0x2b413807,0x0,0x0, | ||
1321 | 0x0,0x0,0x82f0d854,0xfffef59f,0xfff9f29e,0xffeae4c3,0xffede7c9,0xffede8c9,0xfff0e8ad,0xfffff9a3,0xfcf7e983,0x376e5e0f,0x0,0x0, | ||
1322 | 0x0,0x0,0xa1f4df6f,0xfffef7b5,0xfffef8b4,0xfffcf19c,0xf1e6d776,0xf8f1e383,0xfffef6ab,0xfffef8b7,0xfffdf1a2,0x53927e19,0x0,0x0, | ||
1323 | 0x0,0x0,0x9befd761,0xfcf7e896,0xd2cdbc5d,0x6a7f6f1c,0x1c1b1703,0x215e500d,0x80c6b140,0xe5ebda7c,0xfdf9e78f,0x5986741a,0x0,0x0, | ||
1324 | 0x0,0x0,0x16937e18,0x456a5b13,0xf050401,0x1b1b1b,0x0,0x0,0x222222,0x11574a0a,0x487b6a18,0xf100e02,0x0,0x0 | ||
1325 | }; | ||
1326 | |||
1327 | static const QRgb back_data[] = { | ||
1328 | 0x0,0x0,0x0,0x0,0x0,0x0,0x1fefefe,0x5fefefe,0x5fefefe,0x4fefefe,0x1fefefe,0x0,0x0,0x0, | ||
1329 | 0x0,0x0,0x0,0x0,0x0,0x2fefefe,0x33c7e2fe,0x9488c2fe,0x997ab9fe,0x946daffe,0x784f97fe,0xb175be3,0x0,0x0, | ||
1330 | 0x0,0x0,0x0,0x0,0x1fefefe,0x32c8e3fe,0xca99cafd,0xffe8f3fc,0xffeaf4fc,0xffe5f1fc,0xe2659cee,0x150c2863,0x0,0x0, | ||
1331 | 0x0,0x0,0x0,0x1fefefe,0x27c4e1fe,0xc38ac2fd,0xfee0edf8,0xfff2f6f7,0xfff0f5f8,0xeb84adea,0x4a12347f,0x2000000,0x0,0x0, | ||
1332 | 0x0,0x0,0xfefefe,0x18e9f3fe,0xa78ec4fb,0xffc9dff3,0xffe6edf1,0xffe4ecf1,0xf191b6ea,0x5a173782,0x5000000,0x0,0x0,0x0, | ||
1333 | 0x0,0x0,0xffefefe,0x8e85befc,0xf9b3d3ed,0xffd7e4e9,0xffd7e4e9,0xfb9abcec,0x861f4eb4,0xa030713,0x0,0x0,0x0,0x0, | ||
1334 | 0x0,0x0,0x4c62a2fe,0xf691beea,0xffc7d8df,0xffc8d8df,0xffa7c6e4,0x981b46b3,0xe030b27,0x0,0x0,0x0,0x0,0x0, | ||
1335 | 0x0,0x0,0x1e6ba4fe,0xcb467fed,0xffb0c8d8,0xffb8cdd7,0xffb4cbd7,0xd23d71e8,0x1e0937e9,0x0,0x0,0x0,0x0,0x0, | ||
1336 | 0x0,0x0,0x2fefefe,0x23244ee5,0xd14c80df,0xffa2bfcf,0xffa8c2cd,0xff95b7d1,0xb92d62e7,0xe0626c7,0x0,0x0,0x0,0x0, | ||
1337 | 0x0,0x0,0x0,0x2d0d8f8,0x431744ef,0xef4f7fdd,0xff99b6c7,0xff9bb7c6,0xfb7fa4cc,0x8c1f50df,0x40524cc,0x0,0x0,0x0, | ||
1338 | 0x0,0x0,0x0,0xfefefe,0x3a8b5f7,0x59133bf1,0xf35883d3,0xff90afbe,0xff90b0be,0xfd6f97c9,0x83133ee6,0x1031164,0x0,0x0, | ||
1339 | 0x0,0x0,0x0,0x0,0xfefefe,0x3fefefe,0x5e0933ec,0xe94375ce,0xf0467ac7,0xf04679c7,0xe2245ad4,0x1c041899,0x0,0x0, | ||
1340 | 0x0,0x0,0x0,0x0,0x0,0xfefefe,0x707070,0x25041bb8,0x3203189d,0x3203179c,0x2b031589,0x5010102,0x0,0x0, | ||
1341 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1342 | }; | ||
1343 | |||
1344 | static const QRgb back_inactive_data[] = { | ||
1345 | 0x0,0x0,0x0,0x0,0x0,0x0,0x1f1f1f1,0x5f1f1f1,0x5f1f1f1,0x4f1f1f1,0x1f1f1f1,0x0,0x0,0x0, | ||
1346 | 0x0,0x0,0x0,0x0,0x0,0x2f1f1f1,0x33a7bef1,0x9483a4f1,0x997d9ef1,0x947798f1,0x78668bf1,0xb3a6dbf,0x0,0x0, | ||
1347 | 0x0,0x0,0x0,0x0,0x1f1f1f1,0x32a8bff1,0xca8caaec,0xffc5d4e8,0xffc7d5e8,0xffc1d1e8,0xe2738dcc,0x152b4b72,0x0,0x0, | ||
1348 | 0x0,0x0,0x0,0x1f1f1f1,0x27a5bdf1,0xc384a4ec,0xfebccbdd,0xffd2d9db,0xffcfd7dd,0xeb8297c7,0x4a34557f,0x2000000,0x0,0x0, | ||
1349 | 0x0,0x0,0xf1f1f1,0x18c6d4f1,0xa786a5e5,0xffa9bbd4,0xffc2cbd1,0xffc0cad1,0xf1889cc7,0x5a3a5781,0x5000000,0x0,0x0,0x0, | ||
1350 | 0x0,0x0,0xff1f1f1,0x8e82a1e8,0xf99ab1cb,0xffb4c0c6,0xffb4c0c6,0xfb8ca0ca,0x8643669b,0xa172235,0x0,0x0,0x0,0x0, | ||
1351 | 0x0,0x0,0x4c7191f1,0xf688a1c7,0xffa7b5bb,0xffa8b5bb,0xff93a7c0,0x983f619a,0xe172a4a,0x0,0x0,0x0,0x0,0x0, | ||
1352 | 0x0,0x0,0x1e7692f1,0xcb617fcb,0xff99a8b5,0xff9dacb4,0xff9baab4,0xd25b79c5,0x1e2657c6,0x0,0x0,0x0,0x0,0x0, | ||
1353 | 0x0,0x0,0x2f1f1f1,0x234866c1,0xd16580bb,0xff91a2ad,0xff94a4ac,0xff8a9daf,0xb94f71c4,0xe2049a7,0x0,0x0,0x0,0x0, | ||
1354 | 0x0,0x0,0x0,0x2aeb5dd,0x433a60ce,0xef667fb9,0xff8c9ca7,0xff8d9da7,0xfb7f92ab,0x8c4367bb,0x41d48ab,0x0,0x0,0x0, | ||
1355 | 0x0,0x0,0x0,0xf1f1f1,0x3949cdb,0x59355ad1,0xf36c81b1,0xff8798a1,0xff8799a1,0xfd788ba9,0x83355cc2,0x1173372,0x0,0x0, | ||
1356 | 0x0,0x0,0x0,0x0,0xf1f1f1,0x3f1f1f1,0x5e2654ca,0xe95f7bad,0xf0617da7,0xf0617ca7,0xe2486db1,0x1c1a3b8c,0x0,0x0, | ||
1357 | 0x0,0x0,0x0,0x0,0x0,0xf1f1f1,0x787878,0x251a3f9d,0x32173b8e,0x32173a8d,0x2b173884,0x50e0e13,0x0,0x0, | ||
1358 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1359 | }; | ||
1360 | |||
1361 | static const QRgb beam_data[] = { | ||
1362 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1363 | 0xdcdcdc,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xffc3c3c3,0xdcdcdc, | ||
1364 | 0xffc3c3c3,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xffc3c3c3, | ||
1365 | 0xdcdcdc,0xdcdcdc,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xffa0a0a0,0xdcdcdc,0xdcdcdc, | ||
1366 | 0xdcdcdc,0xffa0a0a0,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xffa0a0a0,0xdcdcdc, | ||
1367 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xff808080,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1368 | 0xdcdcdc,0xdcdcdc,0xff808080,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff808080,0xdcdcdc,0xdcdcdc, | ||
1369 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff585858,0xff585858,0xff585858,0xff585858,0xff585858,0xff585858,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1370 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff585858,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff585858,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1371 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xff303030,0xff303030,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1372 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1373 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1374 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xff303030,0xff303030,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc, | ||
1375 | 0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc,0xdcdcdc | ||
1376 | }; | ||
1377 | |||
1378 | static const QRgb bell_data[] = { | ||
1379 | 0xfffffa,0x0,0x1e2e2e1,0x40938117,0x4b8c7c1a,0xa090804,0x7000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1380 | 0x0,0x0,0x31bbb55b,0xdcc0ac29,0xe8bfa51d,0xa5a89226,0x4b807420,0x13000000,0x7000000,0x1000000,0x0,0x0,0x0,0x0, | ||
1381 | 0x0,0x488893c,0xb5c0be2f,0xffecd50d,0xffebbf05,0xffbe9a04,0xde96820a,0x43302a10,0x1e000000,0x9000000,0x1000000,0x0,0x0,0x0, | ||
1382 | 0x0,0x25a19738,0xead5cc1b,0xfff7e605,0xfff6cb07,0xffddad01,0xffaf8d03,0xba766819,0x430c0a04,0x1c000000,0x6000000,0x0,0x0,0x0, | ||
1383 | 0x0,0x30a6943b,0xf0e1d016,0xfffaf007,0xfff4d802,0xfff5c502,0xffcda300,0xf9947e0d,0x89534517,0x3c020201,0x13000000,0x3000000,0x0,0x0, | ||
1384 | 0x1000000,0x31b29d54,0xf0e7d61b,0xfffdf703,0xfff8de01,0xfffcca06,0xffecb900,0xffc39d03,0xf49c8222,0x7e4f471f,0x2c010100,0xd000000,0x2000000,0x0, | ||
1385 | 0x1000000,0x31b6a257,0xf0e9d71c,0xfffdf801,0xfff9ed01,0xfff5d203,0xfffacc06,0xfff1c407,0xffe5c20a,0xf7cab927,0x717f782f,0x25000000,0xb000000,0x2000000, | ||
1386 | 0x1000000,0x31b2a243,0xf0ecdd13,0xfffdf70a,0xfff6ef18,0xffe7d213,0xffcdac0d,0xffb28c07,0xffb28b0a,0xffc8a508,0xfad3b91f,0x72776521,0x23000000,0xa000000, | ||
1387 | 0x1000000,0x5ed5c442,0xfaf1df19,0xffd9c508,0xffb49806,0xff9a7c00,0xffb0930f,0xff9b7804,0xff9c7303,0xffd4a508,0xfecca719,0xd08d7422,0x47000000,0x1a000000, | ||
1388 | 0x8ac9d4f,0xb4d8bd2a,0xffd2a70a,0xffae8308,0xffa07c01,0xffb89209,0xffcab546,0xffedcf2f,0xffab8706,0xffb69017,0xe479631e,0x93110d05,0x5d000000,0x25000000, | ||
1389 | 0x1394822c,0xd8c9a718,0xffe3af0a,0xffddbc07,0xfff2ed07,0xfff3e516,0xffbca716,0xfaab9819,0xd66d5c13,0xb340340d,0x91050401,0x79000000,0x4a000000,0x1c000000, | ||
1390 | 0x7221d0b,0x749b8020,0xddaa8a26,0xe2a89523,0xe4a0a61f,0xe87f821a,0xc34d470e,0xa11f1c05,0x8e000000,0x7c000000,0x64000000,0x44000000,0x22000000,0xb000000, | ||
1391 | 0x4000000,0x19010100,0x43070603,0x63040301,0x76020200,0x7f000000,0x7d000000,0x6c000000,0x57000000,0x3f000000,0x29000000,0x16000000,0x8000000,0x2000000, | ||
1392 | 0x1000000,0xa000000,0x20000000,0x39000000,0x45000000,0x45000000,0x3e000000,0x2e000000,0x1e000000,0x11000000,0x8000000,0x3000000,0x1000000,0x0 | ||
1393 | }; | ||
1394 | |||
1395 | static const QRgb binary_data[] = { | ||
1396 | 0x0,0x40d0d0df,0xffd2d2e0,0xffd6d6e3,0xffd6d6e3,0xffd5d5e3,0xffd5d5e3,0xffd3d3e1,0xffc7c7d8,0xaba2a2bb,0x109c9cb6,0x0,0x0,0x0, | ||
1397 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffffffff,0xfffbfbfe,0xfff6f6fd,0xffeaeaf3,0xffe4e4ef,0xffc2c2d4,0x9fa7a7bf,0x189c9cb6,0x0,0x0, | ||
1398 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffffffff,0xffe2e2ea,0xfff4f4fb,0xffededf5,0xffdfdfeb,0xffbdbdd0,0xffadadc3,0x9b9c9cb6,0x189c9cb6,0x0, | ||
1399 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffe0e0e8,0xffa8a8bf,0xffededf5,0xffefeff7,0xffe1e1ec,0xffbebed1,0xffb6b6cb,0xffa4a4bd,0x409c9cb6,0x0, | ||
1400 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffe8e8ee,0xffababc1,0xffefeff6,0xfff1f1f8,0xffe9e9f2,0xffdadae6,0xffcecedd,0xffaeaec4,0x409c9cb6,0x0, | ||
1401 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffd1d1dd,0xffa2a2bb,0xffb1b1c6,0xfff2f2f8,0xffe6e6f0,0xffd4d4e3,0xffd0d0df,0xffafafc5,0x409c9cb6,0x0, | ||
1402 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xfff7f7f9,0xffeeeef5,0xffeaeaf3,0xffe8e8f1,0xffe0e0ec,0xffdbdbe8,0xffd8d8e6,0xffb2b2c8,0x409c9cb6,0x0, | ||
1403 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xfffdfdff,0xffefeff7,0xffeeeef5,0xffe6e6f0,0xffe2e2ed,0xffdadae8,0xffddddea,0xffb4b4c9,0x409c9cb6,0x0, | ||
1404 | 0x0,0x40d0d0df,0xffe2e2eb,0xffffffff,0xffededf3,0xffbdbdd0,0xffd4d4e1,0xffe8e8f1,0xffc7c7d7,0xffb6b6cb,0xffe1e1ed,0xffb6b6ca,0x409c9cb6,0x0, | ||
1405 | 0x0,0x40d0d0df,0xffe2e2eb,0xfffdfdff,0xffc0c0d1,0xffdcdce8,0xffa7a7be,0xffe5e5ef,0xffb2b2c7,0xffb7b7cb,0xffe2e2ed,0xffb6b6ca,0x409c9cb6,0x0, | ||
1406 | 0x0,0x40d0d0df,0xffe2e2eb,0xfffbfbfe,0xffdadae6,0xffc7c7d7,0xffc6c6d7,0xffe7e7f1,0xffb9b9cd,0xffaaaac1,0xffd1d1e0,0xffb6b6cb,0x409c9cb6,0x0, | ||
1407 | 0x0,0x40d0d0df,0xffe2e2eb,0xfff9f9fd,0xfff3f3f9,0xffd9d9e5,0xffececf3,0xffe9e9f1,0xffccccdc,0xffcacada,0xffd5d5e3,0xffb6b6cb,0x409c9cb6,0x0, | ||
1408 | 0x0,0x40d0d0df,0xffe1e1eb,0xfff8f8fc,0xfff3f3f9,0xfff1f1f8,0xffefeff6,0xffebebf4,0xffe9e9f2,0xffe6e6f0,0xffe3e3ee,0xffb6b6cb,0x409c9cb6,0x0, | ||
1409 | 0x0,0x40a3a3bb,0xffa5a5bd,0xffa7a7bf,0xffa7a7be,0xffa7a7be,0xffa6a6be,0xffa6a6be,0xffa6a6be,0xffa5a5bd,0xffa5a5bd,0xff9f9fb9,0x409c9cb6,0x0 | ||
1410 | }; | ||
1411 | |||
1412 | static const QRgb bold_data[] = { | ||
1413 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1414 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1415 | 0x0,0x0,0x0,0x30000000,0x60000000,0x60000000,0x60000000,0x60000000,0x48000000,0x0,0x0,0x0,0x0,0x0, | ||
1416 | 0x0,0x0,0x0,0x40000000,0xcf000000,0xff000000,0x8f000000,0x8f000000,0xdf000000,0x50000000,0x0,0x0,0x0,0x0, | ||
1417 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0xc000000,0x87000000,0xdb000000,0x50000000,0x0,0x0,0x0, | ||
1418 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x40000000,0xff000000,0x7f000000,0x0,0x0,0x0, | ||
1419 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x1c000000,0xe7000000,0xab000000,0x10000000,0x0,0x0,0x0, | ||
1420 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0xe3000000,0xdf000000,0xe7000000,0xab000000,0x10000000,0x0,0x0,0x0, | ||
1421 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x30000000,0xd7000000,0x9f000000,0x18000000,0x0,0x0, | ||
1422 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x0,0x60000000,0xff000000,0x60000000,0x0,0x0, | ||
1423 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0x20000000,0x0,0x20000000,0xaf000000,0xbf000000,0x30000000,0x0,0x0, | ||
1424 | 0x0,0x0,0x0,0x50000000,0xdb000000,0xff000000,0xab000000,0x9f000000,0xb7000000,0xc3000000,0x30000000,0x0,0x0,0x0, | ||
1425 | 0x0,0x0,0x0,0x20000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x28000000,0x0,0x0,0x0,0x0, | ||
1426 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1427 | }; | ||
1428 | |||
1429 | static const QRgb c_src_data[] = { | ||
1430 | 0x0,0x0,0x14d3d3d4,0x2fcdcdd1,0x2fc8c8cf,0x2fc4c4cc,0x2fbfbfc9,0x2fbabac7,0x17adadbc,0x0,0x0,0x0,0x0,0x0, | ||
1431 | 0x0,0x0,0x7cd6d6d9,0xfff4f4f5,0xfff5f5f6,0xfff3f3f5,0xffeeeef2,0xffe6e6ed,0xe3bebecd,0x289393a5,0x0,0x0,0x0,0x0, | ||
1432 | 0x0,0x0,0x7dd2d2d7,0xfffdfdfe,0xfff3f3f3,0xfffdfdfe,0xfff0f0f2,0xffececf1,0xffdedee7,0xddc9c9d7,0x2489899f,0x0,0x0,0x0, | ||
1433 | 0x0,0x0,0x7dcdcdd5,0xfffdfdfe,0xfff4f4f4,0xfffefefe,0xfff4f4f5,0xfff1f1f6,0xffdddde6,0xfff3f3f7,0xdcbabace,0x207b7b94,0x0,0x0, | ||
1434 | 0x0,0x0,0x7dc8c8d2,0xfffdfdfd,0xffebebeb,0xfffcfcfd,0xffebebec,0xffececf1,0xffd3d3e0,0xffc9c9da,0xffc6c6d8,0x8d8d8da6,0x0,0x0, | ||
1435 | 0x0,0x0,0x7dc3c3d0,0xfffdfdfd,0xfffcfcfc,0xffffffff,0xfff6f6f8,0xfff2f2f7,0xffe8e8f1,0xffe0e0ec,0xffdfdfec,0x938e8ea6,0x0,0x0, | ||
1436 | 0x0,0x0,0x7dbebecd,0xfffdfdfd,0xffffffff,0xffffffff,0xffe8e8ea,0xffeaeaf0,0xffd9d9e1,0xffe0e0e9,0xffe1e1ed,0x938a8aa5,0x0,0x0, | ||
1437 | 0x0,0x0,0x7db9b9cb,0xfffcfcfd,0xffececee,0xfff0f0f6,0xffe3e3e9,0xffe6e6ee,0xffe9e9f2,0xffe6e6f0,0xffe3e3ef,0x938888a3,0x0,0x0, | ||
1438 | 0x0,0x0,0x7db4b4c8,0xfff8f8fa,0xffefeff1,0xfff3f3f7,0xffebebf0,0xffededf3,0xffebebf3,0xffe9e9f2,0xffe6e6f0,0x938585a2,0x0,0x0, | ||
1439 | 0x0,0x0,0x7db5b5ca,0xffe2d9e9,0xffccbcd8,0xffbba5cb,0xffad93c0,0xffa588ba,0xff8b67a6,0xff7f579d,0xff9779b1,0x938282a1,0x0,0x0, | ||
1440 | 0x0,0x0,0x7db2b2c9,0xffddd3e5,0xffc2aed0,0xffad93c0,0xffbca7cc,0xffa082b6,0xff754894,0xff663589,0xff8560a2,0x937f7f9f,0x0,0x0, | ||
1441 | 0x0,0x0,0x7daeaec6,0xffddd3e5,0xffc2aed0,0xffb69ec6,0xffb59dc6,0xffad92bf,0xff764a95,0xff663589,0xff8661a3,0x937d7d9e,0x0,0x0, | ||
1442 | 0x0,0x0,0x7ca5a5c1,0xffddd8e7,0xffd0c7dd,0xffc5b9d5,0xffbaabcc,0xffaf9dc5,0xffa591bd,0xff9d86b7,0xffaa99c2,0x92747499,0x0,0x0, | ||
1443 | 0x0,0x0,0x1a6d6d8a,0x455b5b76,0x45585873,0x45545472,0x45515170,0x454d4d6e,0x454a4a6d,0x4547476b,0x45434369,0x2831314e,0x0,0x0 | ||
1444 | }; | ||
1445 | |||
1446 | static const QRgb calculator_data[] = { | ||
1447 | 0x2000000,0xfff9f9f9,0xfff3f3f3,0xffe6e6e6,0xffdbdbdb,0xffe4e4e4,0xffeeeeee,0xffeeeeee,0xffeeeeee,0xffeeeeee,0xffeeeeee,0xffeeeeee,0x13000000,0xe000000, | ||
1448 | 0x7000000,0xff76aa76,0xff66a166,0xff4d874d,0xffffffff,0xff4d874d,0xff589958,0xff589958,0xff589958,0xff589958,0xff589958,0xff3e8a3e,0xff006a00,0x2b000000, | ||
1449 | 0xe000000,0xff629a62,0xff3c7c3c,0xff1e5c1e,0xffffffff,0xff1e5c1e,0xff247024,0xff287a28,0xff297f29,0xff297f29,0xff297f29,0xff006d00,0xff005400,0x55000000, | ||
1450 | 0x13000000,0xff508d50,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff006500,0xff006e00,0xff006e00,0xff006e00,0xff006300,0xff004b00,0x71000000, | ||
1451 | 0x15000000,0xff549354,0xff247024,0xff004f00,0xffffffff,0xff004a00,0xff005300,0xff005800,0xff005d00,0xff005d00,0xff006100,0xff005f00,0xff004b00,0x7f000000, | ||
1452 | 0x15000000,0xff589958,0xff297f29,0xff006100,0xffffffff,0xff005800,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff005b00,0xff004b00,0x7f000000, | ||
1453 | 0x15000000,0xff549354,0xff257625,0xff006500,0xff006500,0xff006100,0xff005800,0xff005800,0xff005800,0xff005300,0xff005d00,0xff005f00,0xff004b00,0x7f000000, | ||
1454 | 0x15000000,0xff508d50,0xffffffff,0xff8fb28f,0xff006500,0xff8fb28f,0xffffffff,0xff006500,0xff8fb68f,0xffffffff,0xff8fb68f,0xff006300,0xff004b00,0x7f000000, | ||
1455 | 0x15000000,0xff549354,0xff9ab89a,0xffffffff,0xff8fad8f,0xffffffff,0xff8faf8f,0xff005d00,0xff005800,0xff005300,0xff005800,0xff005800,0xff004800,0x7f000000, | ||
1456 | 0x15000000,0xff589958,0xff257625,0xff8fad8f,0xffffffff,0xff8fad8f,0xff005d00,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff004600,0x7f000000, | ||
1457 | 0x15000000,0xff549354,0xff9ab89a,0xffffffff,0xff8fad8f,0xffffffff,0xff8faf8f,0xff005d00,0xff005800,0xff005300,0xff005800,0xff005800,0xff004800,0x7f000000, | ||
1458 | 0x15000000,0xff397f39,0xffffffff,0xff8fad8f,0xff005b00,0xff8fad8f,0xffffffff,0xff005b00,0xff8fb18f,0xffffffff,0xff8fb18f,0xff005a00,0xff004700,0x7f000000, | ||
1459 | 0x13000000,0xff006600,0xff004e00,0xff004800,0xff004b00,0xff004800,0xff004600,0xff004800,0xff004800,0xff004600,0xff004800,0xff004700,0xff004000,0x71000000, | ||
1460 | 0xe000000,0x2b000000,0x55000000,0x71000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x7f000000,0x71000000,0x55000000 | ||
1461 | }; | ||
1462 | |||
1463 | static const QRgb center_data[] = { | ||
1464 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1465 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1466 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | ||
1467 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | ||
1468 | 0x0,0x0,0x3c000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x3c000000,0x0,0x0, | ||
1469 | 0x0,0x0,0x18000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x18000000,0x0,0x0, | ||
1470 | 0x1c000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0x1c000000, | ||
1471 | 0x0,0x0,0xc000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0xc000000,0x0,0x0, | ||
1472 | 0x0,0x0,0x48000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x48000000,0x0,0x0, | ||
1473 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | ||
1474 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | ||
1475 | 0x0,0x0,0x3c000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x3c000000,0x0,0x0, | ||
1476 | 0x0,0x0,0x18000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x18000000,0x0,0x0, | ||
1477 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1478 | }; | ||
1479 | |||
1480 | static const QRgb citytime_icon_data[] = { | ||
1481 | 0x0,0x0,0x0,0x1b9ebfb,0x2ca9e0fc,0x7688c4f8,0x8f75b7f8,0x856cb1f7,0x4b68b0f5,0x75c9ed8,0x0,0x0,0x0,0x0, | ||
1482 | 0x0,0x0,0xed3fcfd,0xa2b8e6fc,0xfbb6e0f9,0xffc5eafe,0xffd1eefe,0xffb9e4fe,0xff89c7fc,0xd46db2f7,0x38509ae6,0x0,0x0,0x0, | ||
1483 | 0x0,0xaecfcfd,0xc2bde5fd,0xffade3ff,0xffccf7ff,0xffebfeff,0xffdffdff,0xffb8ecff,0xff97d7ff,0xff76c1ff,0xf14e9ff8,0x3d408ada,0x0,0x0, | ||
1484 | 0x0,0x84aed3f9,0xff8dccfe,0xffc8edff,0xffe9f9ff,0xfff2fbff,0xffddfcff,0xffbbedff,0xff9cd8ff,0xff74bfff,0xff55aaff,0xdd3b89ec,0xe295582,0x0, | ||
1485 | 0xfd8fdfd,0xed77b7f7,0xffb7e2ff,0xffddf5ff,0xffe4f7ff,0xffd3f3ff,0xffbbedff,0xfface2ff,0xff95d2ff,0xff6ab9ff,0xff53a9ff,0xff2e76e9,0x653b82d1,0x0, | ||
1486 | 0x45b4e5fa,0xff4f96f0,0xffc2eafe,0xffd6f3ff,0xffdaf4ff,0xffa4ddff,0xff99d8ff,0xff8aceff,0xff74bfff,0xff5eb0ff,0xff55aaff,0xff1a56da,0xae2b70d5,0x1000000, | ||
1487 | 0x6399d1f8,0xff4088eb,0xff57adf7,0xffabe3ff,0xffd3f2ff,0xffc6ebff,0xffafdfff,0xff6cbaff,0xff5bafff,0xff53a9ff,0xff529af5,0xff1f59db,0xcb2d70d7,0x5000000, | ||
1488 | 0x5b90caf7,0xff2c6de0,0xff3b83e9,0xff56a6f4,0xffbce6fe,0xffcaeeff,0xffcbefff,0xff62b2ff,0xff4ca1fb,0xff5299f3,0xff5991ec,0xff3a76e4,0xc54287dc,0x5000000, | ||
1489 | 0x2d91cdf5,0xfd265fda,0xff2763dd,0xff7baff2,0xffb7e1fc,0xffc8ecfe,0xffccefff,0xff619bed,0xff2663dd,0xff80b2f1,0xff5386e6,0xff0e43d2,0x9c4081cd,0x1000000, | ||
1490 | 0x376add3,0xcc4983e4,0xff5383e4,0xffb2dcfc,0xffcceeff,0xffdcf4ff,0xffe1f6ff,0xffb9d7f8,0xffa5ccf6,0xff9ac6f6,0xff71a3ee,0xfd407ce5,0x49306294,0x0, | ||
1491 | 0x0,0x456eb0ec,0xfb669aec,0xffbbe3fd,0xffd5f3ff,0xffe9f9ff,0xfff4fcff,0xffe6f8ff,0xffd2f1ff,0xffb6dffc,0xff95c7f9,0xb15592d3,0x903070b,0x0, | ||
1492 | 0x0,0x12f516f,0x6d6eafea,0xfaaad9fc,0xffceedfe,0xffe6f7ff,0xfff0fbff,0xffe4f7ff,0xffd1f1ff,0xffb0dcfc,0xc668a4df,0x1e18334d,0x0,0x0, | ||
1493 | 0x0,0x0,0x10b151f,0x435094d5,0xc34c8ae0,0xf73c74e0,0xff4a7be2,0xfc5286e5,0xe37db3ea,0x88528bc2,0x150e1e2d,0x0,0x0,0x0, | ||
1494 | 0x0,0x0,0x0,0x0,0x4000000,0x202a5885,0x35306498,0x302a5886,0x130b1824,0x2000000,0x0,0x0,0x0,0x0 | ||
1495 | }; | ||
1496 | |||
1497 | static const QRgb close_data[] = { | ||
1498 | 0x0,0x0,0x0,0x2c90000,0x1fc80000,0x5bc60000,0x83c50000,0x83c20000,0x5bbb0000,0x1fb70000,0x2b50000,0x0,0x0,0x0, | ||
1499 | 0x0,0x0,0xdcb0000,0x87cb0000,0xecd51313,0xffe44a4a,0xffed6f6f,0xffec7070,0xffe05050,0xecc91a1a,0x87b30000,0xdad0000,0x0,0x0, | ||
1500 | 0x0,0xdca0000,0xaacd0000,0xfee53b3b,0xfffbb1b1,0xffffd6d6,0xffffd9d9,0xffffd9d9,0xffffd7d7,0xfffbbcbc,0xfedb4c4c,0xaab00000,0xda70000,0x0, | ||
1501 | 0x2c90000,0x87ca0000,0xfee52f2f,0xfffeadad,0xffffd6d6,0xffffbdbd,0xffffb3b3,0xffffb3b3,0xffffbdbd,0xffffd6d6,0xfffeb1b1,0xfed84343,0x87a60000,0x2a00000, | ||
1502 | 0x1fc80000,0xecd50808,0xfffb7272,0xffffbcbc,0xffffffff,0xffffe7e7,0xffff9b9b,0xffff9b9b,0xffffe7e7,0xffffffff,0xffffbbbb,0xfffa7171,0xecb90c0c,0x1f9d0000, | ||
1503 | 0x5bc50000,0xffe41b1b,0xffff6464,0xffff7474,0xffffd9d9,0xffffffff,0xffffe0e0,0xffffe0e0,0xffffffff,0xfffcc6c6,0xfff63535,0xfff30e0e,0xffd00202,0x5b9a0000, | ||
1504 | 0x83c50000,0xffec1c1c,0xffff3f3f,0xffff3f3f,0xffff5252,0xffffd2d2,0xffffffff,0xffffffff,0xfffcc6c6,0xfff31c1c,0xfff20000,0xfff20000,0xffdc0000,0x839b0000, | ||
1505 | 0x83c10000,0xffec0a0a,0xffff1616,0xffff1616,0xffff3131,0xffffcece,0xffffffff,0xffffffff,0xfffcc6c6,0xfff41c1c,0xfff40000,0xfff40000,0xffdc0000,0x83970000, | ||
1506 | 0x5bbb0000,0xffe10000,0xfffe0101,0xfffe1b1b,0xffffc5c5,0xffffffff,0xffffc6c6,0xffffc6c6,0xffffffff,0xfffdc4c4,0xfffa1a1a,0xfffa0000,0xffcf0000,0x5b900000, | ||
1507 | 0x1fb70000,0xeccb0202,0xfffc0909,0xffff6d6d,0xffffffff,0xffffc8c8,0xffff2525,0xffff2525,0xffffc8c8,0xffffffff,0xffff6d6d,0xfffb0909,0xecae0202,0x1f8c0000, | ||
1508 | 0x2b40000,0x87b30101,0xfede1313,0xffff2828,0xffff7e7e,0xffff3a3a,0xffff2323,0xffff2323,0xffff3a3a,0xffff7e7e,0xfffe2828,0xfed01313,0x878e0101,0x28b0000, | ||
1509 | 0x0,0xdac0000,0xaab00404,0xfedb2121,0xfffc3b3b,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xfffb3b3b,0xfed02121,0xaa930404,0xd890000,0x0, | ||
1510 | 0x0,0x0,0xda60000,0x87a50202,0xecbb1616,0xffd73131,0xffe63f3f,0xffe53f3f,0xffd33131,0xecaf1616,0x878e0202,0xd890000,0x0,0x0, | ||
1511 | 0x0,0x0,0x0,0x29f0000,0x1d9c0000,0x59990101,0x839b0505,0x83970505,0x5b8f0101,0x1f8c0000,0x28a0000,0x0,0x0,0x0 | ||
1512 | }; | ||
1513 | |||
1514 | static const QRgb copy_data[] = { | ||
1515 | 0x5bbc5d1,0xdb9c4cf,0x1cbfc8d3,0x40c2cbd6,0x64c0c9d4,0x419fadbf,0x128494ac,0x27e8fa9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1516 | 0x41bfc9d4,0x90c9d1da,0xbaced5dd,0xe9d0d8df,0xffced6de,0xdca6b3c3,0x958b9bb1,0x2d8090a9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1517 | 0x84c4cdd7,0xffe0e5ea,0xffe3e7ec,0xffd7dee4,0xffd7dde4,0xffadbac8,0xfd9eadbd,0xa88394ab,0x97d8da8,0x0,0x0,0x0,0x0,0x0, | ||
1518 | 0x5bc4cdd7,0xf8e2e6eb,0xffe6eaed,0xffd7dee4,0xffdde3e8,0xffc9d2da,0xffb9c4cf,0xe894a3b5,0x8aa0a2b0,0x7fc0bbc6,0x6bcac4d2,0x26a39cab,0x42b2b2b,0x2b2b2b, | ||
1519 | 0x2fc2cbd5,0xd9d8dee4,0xffeaeef0,0xffdbe1e6,0xffd5dce2,0xffc9d1da,0xffc0c9d4,0xffafbac7,0xfe9ea1af,0xfebebac2,0xf0d2cdd9,0xa1b2aaba,0x3178717f,0x637343a, | ||
1520 | 0x15bec8d3,0xb0d0d7df,0xffe8ecef,0xffdbe1e6,0xffced6dd,0xffc3ccd6,0xffc1c9d4,0xffc0cad3,0xff99a1af,0xffb9b6bd,0xffc5becb,0xf4b2a7bb,0xb59c92a5,0x2a5e5a63, | ||
1521 | 0xcb7c1ce,0x86cdd4dd,0xfce7ecef,0xffdce2e7,0xffcbd3db,0xffc9d1da,0xffc6cfd9,0xffc7d0d8,0xff9fa8b7,0xffb2b0b9,0xffcbc5cf,0xffcfc7d6,0xf9b5abbe,0x5659555d, | ||
1522 | 0x3b7c2ce,0x4cccd3dc,0xeadee3e8,0xffdee3e8,0xffcdd5dd,0xffcad2db,0xffc7cfd9,0xffd2d8e0,0xffafb8c5,0xffa6a7b1,0xffbeb9c4,0xffd7d1de,0xfebbb2c4,0x6f514e54, | ||
1523 | 0x0,0x2dc4cdd7,0xd0d8dee4,0xffe6eaed,0xffdbe1e7,0xffdae0e6,0xffd2d9e0,0xffc5ccd7,0xffa1abbb,0xff9c9fad,0xffb4afba,0xffd5d0dc,0xfebdb4c5,0x73504d52, | ||
1524 | 0x0,0x1dbbc4d1,0xa7cbd3dc,0xf7d5dbe2,0xe1c6ced8,0xf5b3bbc8,0xffa5adba,0xff9ea5b4,0xffa9abb9,0xffb5b2be,0xffc0bbc6,0xffd9d4df,0xfebeb6c6,0x73504d53, | ||
1525 | 0x0,0xb9baabc,0x56a0acbf,0x8e9ca9bc,0x5e8999b0,0xd0b0b2c0,0xffc9c9d0,0xffc9c5ce,0xffd1ccd6,0xffd5d0db,0xffd8d2de,0xffe0dbe6,0xfebfb6c7,0x73504d53, | ||
1526 | 0x0,0x17d8ea8,0xc7d8ca8,0x137d8ba8,0x57d8aa8,0xbcdbd6e0,0xfef2f1f4,0xffe9e6ed,0xffe9e5ed,0xffe8e3ec,0xffe5e1ea,0xffe8e4ed,0xfec0b8c8,0x73504d53, | ||
1527 | 0x0,0x0,0x0,0x0,0x0,0xbbbdb5c6,0xfcc6bfcc,0xfdc3bbca,0xfdc2bac9,0xfdc2bac9,0xfdc1b8c8,0xfdc0b8c8,0xfcb0a6b9,0x724e4b51, | ||
1528 | 0x0,0x0,0x0,0x0,0x0,0x267c7682,0x585c595f,0x72504e53,0x73504d53,0x73504d53,0x73504d53,0x73504d52,0x724e4b51,0x4e313132 | ||
1529 | }; | ||
1530 | |||
1531 | static const QRgb copy_inactive_data[] = { | ||
1532 | 0x2bbc6d1,0x7b9c4cf,0xebfc8d3,0x1fc2cbd6,0x31c0c9d4,0x209fadbf,0x98494ac,0x17e8fa9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1533 | 0x21bfc9d4,0x48c8d1da,0x5cced5dd,0x73d0d8df,0x7eced6de,0x6da6b3c3,0x498b9bb1,0x168090a9,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1534 | 0x42c4cdd7,0x7ee0e5ea,0x7ee3e7ec,0x7ed7dee4,0x7ed7dde4,0x7eadbac8,0x7d9eadbd,0x538394ab,0x47d8da8,0x0,0x0,0x0,0x0,0x0, | ||
1535 | 0x2dc4cdd7,0x7be2e6eb,0x7ee6eaed,0x7ed7dee4,0x7edde3e8,0x7ec9d2da,0x7eb9c4cf,0x7394a3b5,0x44a0a2b0,0x3ec0bbc6,0x35cac4d2,0x13a39cab,0x22b2b2b,0x2b2b2b, | ||
1536 | 0x17c2cbd5,0x6bd8dee4,0x7eeaeef0,0x7edbe1e6,0x7ed5dce2,0x7ec9d1da,0x7ec0c9d4,0x7eafbac7,0x7e9ea1af,0x7ebebac2,0x76d2cdd9,0x50b2aaba,0x1877707f,0x336343a, | ||
1537 | 0xbbec8d3,0x57d0d7df,0x7ee8ecef,0x7edae1e6,0x7eced5dd,0x7ec3ccd6,0x7ec1c9d4,0x7ec0cad3,0x7e99a1af,0x7eb9b6bd,0x7ec4bdcb,0x79b2a7bb,0x599c92a5,0x145f5a63, | ||
1538 | 0x6b7c1ce,0x42cdd4dd,0x7ce7ecef,0x7edce2e7,0x7ecbd2db,0x7ec9d1da,0x7ec6cfd9,0x7ec7d0d8,0x7e9fa8b7,0x7eb2b0b9,0x7ecbc5cf,0x7ecfc7d6,0x7bb5abbe,0x2b59555c, | ||
1539 | 0x2b7c2ce,0x25ccd3dc,0x73dee3e8,0x7edee3e8,0x7ecdd5dd,0x7ecad2db,0x7ec7cfd9,0x7ed2d8e0,0x7eafb8c5,0x7ea6a7b1,0x7ebeb9c4,0x7ed7d1de,0x7dbbb2c4,0x36514e54, | ||
1540 | 0x0,0x16c4cdd7,0x67d8dee4,0x7ee6eaed,0x7edbe1e7,0x7edae0e6,0x7ed2d9e0,0x7ec5ccd7,0x7ea1abbb,0x7e9d9fad,0x7eb4afba,0x7ed5d0dc,0x7dbdb4c5,0x39504d52, | ||
1541 | 0x0,0xebbc4d1,0x53cbd3dc,0x7ad5dbe2,0x6fc6ced8,0x79b3bbc8,0x7ea5adba,0x7e9ea5b4,0x7ea9abb9,0x7eb5b2be,0x7ec0bbc6,0x7ed9d4df,0x7ebeb5c6,0x39504d53, | ||
1542 | 0x0,0x59baabc,0x2b9facbf,0x469ca9bc,0x2e8999b0,0x67b0b2c0,0x7ec9c9d0,0x7ec9c5ce,0x7ed1ccd6,0x7ed5d0db,0x7ed8d2de,0x7ee0dbe6,0x7ebeb6c6,0x39504d52, | ||
1543 | 0x0,0x17d8ea8,0x67d8ca8,0x97d8ba8,0x27d8aa8,0x5ddbd6e1,0x7ef2f1f4,0x7fe9e6ed,0x7ee9e5ed,0x7ee8e3ec,0x7ee5e1ea,0x7fe8e4ed,0x7fc0b8c8,0x3a504d53, | ||
1544 | 0x0,0x0,0x0,0x0,0x0,0x5dbdb5c6,0x7ec6bfcc,0x7fc3bbca,0x7fc2bac9,0x7fc2b9c9,0x80c1b8c8,0x81c0b8c8,0x81b0a6b9,0x3b4e4b51, | ||
1545 | 0x0,0x0,0x0,0x0,0x0,0x137e7783,0x2c5c595f,0x39514e53,0x3a504d52,0x3a504d53,0x3b504d52,0x3c4f4c51,0x3e4c494f,0x2f303031 | ||
1546 | }; | ||
1547 | |||
1548 | static const QRgb cut_data[] = { | ||
1549 | 0x0,0x0,0x0,0x1f2bf00,0x20f9cd00,0xb1fdd900,0xfbfbe601,0x8edd8000,0x13170800,0x4000000,0x0,0x0,0x0,0x0, | ||
1550 | 0x0,0x0,0x0,0xdf3bf00,0x96fddc00,0xf3eddb02,0xebcfc305,0xe8ee9600,0x41361200,0x12403600,0xbdab102,0x4a77e05,0x0,0x0, | ||
1551 | 0x0,0x0,0x0,0x17f0bb00,0xb1fee600,0xeec9a607,0xad897905,0xebec9300,0x54331b00,0x51c0ad00,0x74e8cc03,0x37b28906,0x93e1a02,0x1000000, | ||
1552 | 0x0,0x0,0x0,0x16e7b600,0xaefcda00,0xf5dab905,0xccac9a06,0xebec9300,0x81917000,0xc3dfc503,0xecd5b606,0xb0cf8b04,0x37884600,0x7000000, | ||
1553 | 0x0,0x0,0x0,0x9c49b00,0x62e2b800,0xdff1c201,0xf9eada03,0xf8f39900,0xd8dcb502,0xc2bba105,0xb2ad9705,0xe9e49301,0x6a8a4800,0x17000000, | ||
1554 | 0x0,0x0,0x0,0x1000000,0x15775f00,0xabd9961e,0xfafbb509,0xffed8b0a,0xf7ddbb05,0xd1c3b204,0xd4e3d400,0xf4f09e00,0x7b763d00,0x23000000, | ||
1555 | 0x0,0x0,0x0,0x1739ed6,0x5f92b5e6,0xe17ea5ce,0xfec5cfdb,0xf97393b6,0xead07c09,0xfbf7af00,0xf6f2a300,0xb4b16200,0x5e2c1300,0x1f000000, | ||
1556 | 0x0,0x7fa9da,0x995b4dc,0x63a0bfe1,0xe1c7e5f5,0xff89c0e7,0xffbcd8fa,0xed4798e4,0x8935201a,0x8d862f00,0x82702a00,0x5d2a1000,0x31000000,0xd000000, | ||
1557 | 0x0,0xc95b6de,0x67a7c5e4,0xe1c1e0f3,0xf8a0d3f6,0xf85ca0dd,0xfebed8fa,0xec4899e6,0x64021020,0x33000000,0x29000000,0x21000000,0xf000000,0x2000000, | ||
1558 | 0x0,0x329abee2,0xddafd3ed,0xf8a1d3f6,0xc63e80bf,0xd43578b9,0xfbbfd8f8,0xeb4e99e1,0x5c001226,0x1b000000,0x7000000,0x5000000,0x2000000,0x0, | ||
1559 | 0x0,0x3f8fbbe4,0xf481b6e7,0xc74385c4,0x77072749,0xb74479a8,0xfac1d9f8,0xeb4f99e1,0x5b001225,0x18000000,0x2000000,0x0,0x0,0x0, | ||
1560 | 0x0,0x354590dc,0xb5367dc6,0x6f0a2f55,0x40000204,0xa74b86bb,0xf9bed9f9,0xe65e9cd6,0x5a041321,0x18000000,0x1000000,0x0,0x0,0x0, | ||
1561 | 0x0,0xf0e59a4,0x3a093c6f,0x31000407,0x19000000,0x9f5592c8,0xf560a6ee,0x9b2f5475,0x4a020609,0x14000000,0x1000000,0x0,0x0,0x0, | ||
1562 | 0x0,0x2000000,0xa000000,0xc000000,0x4000000,0x8f1d7dd3,0x8e11579e,0x5603080c,0x29000000,0x9000000,0x1000000,0x0,0x0,0x0 | ||
1563 | }; | ||
1564 | |||
1565 | static const QRgb cut_inactive_data[] = { | ||
1566 | 0x0,0x0,0x0,0x1b9b9b9,0x13c3c3c3,0x6bcbcbcb,0x97d3d3d3,0x568d8d8d,0xb0b0b0b,0x2000000,0x0,0x0,0x0,0x0, | ||
1567 | 0x0,0x0,0x0,0x8b9b9b9,0x5acdcdcd,0x93c8c8c8,0x8eb1b1b1,0x8c9f9f9f,0x271b1b1b,0xb333333,0x7a5a5a5,0x2808080,0x0,0x0, | ||
1568 | 0x0,0x0,0x0,0xeb6b6b6,0x6bd4d4d4,0x909e9e9e,0x68707070,0x8e9d9d9d,0x331e1e1e,0x30a0a0a0,0x46bebebe,0x21878787,0x6212121,0x1000000, | ||
1569 | 0x0,0x0,0x0,0xdb0b0b0,0x69cccccc,0x94afafaf,0x7b8f8f8f,0x8e9d9d9d,0x4e6d6d6d,0x76b7b7b7,0x8facacac,0x6a909090,0x21515151,0x5000000, | ||
1570 | 0x0,0x0,0x0,0x59a9a9a,0x3bb0b0b0,0x86bababa,0x96c7c7c7,0x96a2a2a2,0x82acacac,0x75979797,0x6c8d8d8d,0x8d9b9b9b,0x40545454,0xe000000, | ||
1571 | 0x0,0x0,0x0,0x1000000,0xc5c5c5c,0x679d9d9d,0x97b7b7b7,0x9a9a9a9a,0x95b0b0b0,0x7ea4a4a4,0x80c1c1c1,0x93a5a5a5,0x4a474747,0x15000000, | ||
1572 | 0x0,0x0,0x0,0x8d8d8d,0x39b0b0b0,0x889d9d9d,0x9acccccc,0x968d8d8d,0x8d888888,0x98b1b1b1,0x94a8a8a8,0x6c6e6e6e,0x38181818,0x13000000, | ||
1573 | 0x0,0xa1a1a1,0x5aeaeae,0x3bb9b9b9,0x88dddddd,0x9ab3b3b3,0x9ad3d3d3,0x8f888888,0x52252525,0x55434343,0x4f3a3a3a,0x38161616,0x1e000000,0x8000000, | ||
1574 | 0x0,0x7afafaf,0x3ebebebe,0x88d8d8d8,0x96c7c7c7,0x96919191,0x9ad4d4d4,0x8e898989,0x3c0d0d0d,0x1f000000,0x19000000,0x14000000,0x9000000,0x1000000, | ||
1575 | 0x0,0x1eb7b7b7,0x86cacaca,0x96c7c7c7,0x77737373,0x806b6b6b,0x98d4d4d4,0x8e8a8a8a,0x370e0e0e,0x10000000,0x4000000,0x3000000,0x1000000,0x0, | ||
1576 | 0x0,0x26b2b2b2,0x93ababab,0x78787878,0x48212121,0x6f6e6e6e,0x97d5d5d5,0x8e8a8a8a,0x370e0e0e,0xe000000,0x1000000,0x0,0x0,0x0, | ||
1577 | 0x0,0x20818181,0x6e6f6f6f,0x43272727,0x27010101,0x65797979,0x96d4d4d4,0x8b909090,0x37101010,0xe000000,0x1000000,0x0,0x0,0x0, | ||
1578 | 0x0,0x94c4c4c,0x23323232,0x1e030303,0xf000000,0x60858585,0x94989898,0x5e4c4c4c,0x2d050505,0xc000000,0x0,0x0,0x0,0x0, | ||
1579 | 0x0,0x1000000,0x6000000,0x8000000,0x3000000,0x57696969,0x564a4a4a,0x35070707,0x1a000000,0x6000000,0x0,0x0,0x0,0x0 | ||
1580 | }; | ||
1581 | |||
1582 | static const QRgb datebook_icon_data[] = { | ||
1583 | 0xe483addd,0xf18cb5e6,0xf181b0e6,0xf175aae6,0xf169a4e6,0xf15c9ee6,0xf1549ae6,0xf15297e6,0xf15298e6,0xf15298e6,0xf15599e7,0xf14597e8,0xa315588d,0x17002741, | ||
1584 | 0xf592b8e5,0xffafd4fd,0xff90c6fd,0xff70b6fd,0xff57a9fd,0xff3499fc,0xff258efd,0xff2388fd,0xff2189fc,0xff2388fd,0xff2389fe,0xff1d8afb,0xc208518c,0x30001827, | ||
1585 | 0xf19fbfe5,0xffddebfa,0xffb7daf7,0xffa6d3f6,0xffc5dffa,0xff93cbf4,0xffb0d7f9,0xffadd5f9,0xff8ec9f4,0xffaed6fa,0xffb1d7fb,0xff8bc6f6,0xc4255e89,0x34001525, | ||
1586 | 0xf1a9c5e6,0xfffbfefe,0xffcbe6fa,0xffbbdff8,0xfff2fafe,0xff9fd1f5,0xffe0f3fd,0xffdef1fd,0xff9bd0f5,0xffe4f5fe,0xffe6f6fe,0xffadd9f6,0xc42d6189,0x34001425, | ||
1587 | 0xfa91c4ee,0xffb0daf7,0xff9ed1f5,0xff97cef4,0xffabd8f7,0xff8dc9f3,0xffa4d5f6,0xffa3d4f6,0xff8cc8f3,0xffa5d5f7,0xffa6d6f7,0xff91cbf4,0xc42b6089,0x34001425, | ||
1588 | 0xf49dc5e9,0xffd9effc,0xffb6ddf8,0xffa9d7f7,0xffceeafc,0xff96cdf4,0xffc0e4fb,0xffbfe2fb,0xff93ccf4,0xffc1e5fc,0xffc2e6fc,0xff9bd1f6,0xc42a6089,0x34001425, | ||
1589 | 0xf1a6c4e6,0xfff2fcff,0xffc5e5fa,0xffb5def9,0xffe5f6ff,0xff9bd0f5,0xffd2edfd,0xffd0ebfd,0xff97cff5,0xffd3efff,0xffd5f1ff,0xffa1d5f7,0xc42a6089,0x34001425, | ||
1590 | 0xf3a0c4e7,0xffe2f3fd,0xffbbe0f9,0xffadd9f8,0xffd6eefd,0xff98cef5,0xffc6e6fc,0xffc3e5fc,0xff94cdf5,0xffc7e8fd,0xffc8e9fd,0xff9bd1f6,0xc4296089,0x34001425, | ||
1591 | 0xfc8bc4ef,0xff9cd1f5,0xff92ccf4,0xff8ecaf4,0xff99cff5,0xff88c7f3,0xff94cef5,0xff94cdf5,0xff87c7f3,0xff95cef5,0xff95cef5,0xff86c7f3,0xc4285f89,0x34001425, | ||
1592 | 0xf1a3c3e6,0xffe8f8ff,0xffbfe2fa,0xffb0dbf9,0xffdaf1ff,0xff99cff5,0xffc9eafd,0xffc6e8fd,0xff95cef5,0xffc9ecff,0xffcbedff,0xff9ad2f7,0xc4285f89,0x34001525, | ||
1593 | 0xf1a6c5e7,0xffeaf9ff,0xffc0e3fa,0xffb1dcf9,0xffdcf3ff,0xff99d0f5,0xffcbebfd,0xffc8e9fd,0xff95cef5,0xffcbedff,0xffcdeeff,0xff9dd3f8,0xc4296089,0x34001525, | ||
1594 | 0xfa80b6e6,0xffafdbf7,0xff9cd1f5,0xff95cdf4,0xffa6d6f7,0xff8bc8f3,0xff9dd2f6,0xff9bd1f6,0xff89c8f3,0xff9ad2f7,0xff9dd4f8,0xff7bc4f7,0xc7205f8d,0x34001728, | ||
1595 | 0xa628618e,0xc12e628a,0xc42b6089,0xc42b6089,0xc42b6089,0xc42a6089,0xc42a6089,0xc4296089,0xc42a6089,0xc4285f89,0xc4296089,0xc421608d,0x9e083656,0x30000d16, | ||
1596 | 0x14002b4a,0x30001627,0x34001424,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001626,0x30000d16,0x16000204 | ||
1597 | }; | ||
1598 | |||
1599 | static const QRgb day_data[] = { | ||
1600 | 0xe483addd,0xf18cb5e6,0xf181b0e6,0xf175aae6,0xf169a4e6,0xf15c9ee6,0xf1549ae6,0xf15297e6,0xf15298e6,0xf15298e6,0xf15599e7,0xf14597e8,0xa315588d,0x17002741, | ||
1601 | 0xf592b8e5,0xffafd4fd,0xff95c7fd,0xff77b9fd,0xff57a9fd,0xff389afd,0xff268efd,0xff2388fd,0xff2388fd,0xff2388fd,0xff2389fe,0xff1d8afb,0xc208518c,0x30001827, | ||
1602 | 0xf19fbfe5,0xffddebfa,0xffd4e6fa,0xffcde3fa,0xffc5dffa,0xffbedcfa,0xffb7dafa,0xffb3d8fa,0xffb1d7fa,0xffaed6fa,0xffb1d7fb,0xff8bc6f6,0xc4255e89,0x34001525, | ||
1603 | 0xf1a9c5e6,0xfffbfefe,0xfff5fbfe,0xfff4fbfe,0xfff2fafe,0xfff0fafe,0xffedfafe,0xffeaf7fe,0xffe7f6fe,0xffe4f5fe,0xffe6f6fe,0xffadd9f6,0xc42d6189,0x34001425, | ||
1604 | 0xf1a8c5e6,0xfff9fdff,0xfff2faff,0xffeff9ff,0xffecf8ff,0xffe9f7ff,0xffe5f6ff,0xffe2f4ff,0xffdef3ff,0xffdbf2ff,0xffddf3ff,0xffa6d6f7,0xc42b6089,0x34001425, | ||
1605 | 0xf1a7c5e6,0xfff6fdff,0xffeff9ff,0xffecf8ff,0xffe8f7ff,0xffe5f6ff,0xffe1f4ff,0xffdef2ff,0xffdaf1ff,0xffd7f0ff,0xffd8f2ff,0xffa3d5f7,0xc42a6089,0x34001425, | ||
1606 | 0xf1a6c4e6,0xfff2fcff,0xffebf8ff,0xffe8f7ff,0xffe5f6ff,0xffe1f4ff,0xffdef3ff,0xffdaf1ff,0xffd6f0ff,0xffd3efff,0xffd5f1ff,0xffa1d5f7,0xc42a6089,0x34001425, | ||
1607 | 0xf1a4c3e6,0xffeffaff,0xffe8f6ff,0xffe5f5ff,0xffe2f4ff,0xffdef2ff,0xffdaf1ff,0xffd6efff,0xffd2efff,0xffd0eeff,0xffd2eeff,0xff9ed3f7,0xc4296089,0x34001425, | ||
1608 | 0xf1a3c3e6,0xffebfaff,0xffe5f5ff,0xffe1f4ff,0xffddf3ff,0xffdaf1ff,0xffd6f1ff,0xffd3efff,0xffcfeeff,0xffccecff,0xffceeeff,0xff9cd3f7,0xc4285f89,0x34001425, | ||
1609 | 0xf1a3c3e6,0xffe8f8ff,0xffe1f4ff,0xffdef3ff,0xffdaf1ff,0xffd7f0ff,0xffd3f0ff,0xffcfeeff,0xffccecff,0xffc9ecff,0xffcbedff,0xff9ad2f7,0xc4285f89,0x34001525, | ||
1610 | 0xf1a6c5e7,0xffeaf9ff,0xffe3f5ff,0xffe0f4ff,0xffdcf3ff,0xffd9f2ff,0xffd5f1ff,0xffd1eeff,0xffceeeff,0xffcbedff,0xffcdeeff,0xff9dd3f8,0xc4296089,0x34001525, | ||
1611 | 0xfa80b6e6,0xffafdbf7,0xffaad8f7,0xffa8d7f7,0xffa6d6f7,0xffa3d5f7,0xffa1d5f7,0xff9ed3f7,0xff9cd2f7,0xff9ad2f7,0xff9dd4f8,0xff7bc4f7,0xc7205f8d,0x34001728, | ||
1612 | 0xa628618e,0xc12e628a,0xc42c6189,0xc42b6089,0xc42b6089,0xc42a6089,0xc42a6089,0xc4296089,0xc4285f89,0xc4285f89,0xc4296089,0xc421608d,0x9e083656,0x30000d16, | ||
1613 | 0x14002b4a,0x30001627,0x34001424,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001626,0x30000d16,0x16000204 | ||
1614 | }; | ||
1615 | |||
1616 | static const QRgb done_data[] = { | 859 | static const QRgb done_data[] = { |
1617 | 0x0,0x0,0x0,0x5179f1b,0x4709990e,0x96049709,0xbd039708,0xbf039708,0x9f039607,0x54049708,0x709990d,0x0,0x0,0x0, | 860 | 0x0,0x0,0x0,0x5179f1b,0x4709990e,0x96049709,0xbd039708,0xbf039708,0x9f039607,0x54049708,0x709990d,0x0,0x0,0x0, |
1618 | 0x0,0x1ba21f,0x230e9b12,0xb7059709,0xf8029607,0xfc039608,0xfe029608,0xfe019506,0xff009606,0xff009506,0xd0019606,0x32039607,0x8990c,0x0, | 861 | 0x0,0x1ba21f,0x230e9b12,0xb7059709,0xf8029607,0xfc039608,0xfe029608,0xfe019506,0xff009606,0xff009506,0xd0019606,0x32039607,0x8990c,0x0, |
1619 | 0x0,0x230d9b12,0xd7049708,0xf908980d,0xfc119b15,0xfe129c16,0xfe0b9910,0xff05970a,0xff019507,0xff009506,0xff009506,0xef009606,0x36019606,0x0, | 862 | 0x0,0x230d9b12,0xd7049708,0xf908980d,0xfc119b15,0xfe129c16,0xfe0b9910,0xff05970a,0xff019507,0xff009506,0xff009506,0xef009606,0x36019606,0x0, |
1620 | 0x5179f1b,0xb6059709,0xf908980d,0xfc1fa124,0xfe39ab3c,0xfe35a939,0xff1b9f20,0xff0a990f,0xff039608,0xff029607,0xff169d1c,0xff109b17,0xda009507,0xd009605, | 863 | 0x5179f1b,0xb6059709,0xf908980d,0xfc1fa124,0xfe39ab3c,0xfe35a939,0xff1b9f20,0xff0a990f,0xff039608,0xff029607,0xff169d1c,0xff109b17,0xda009507,0xd009605, |
1621 | 0x460a990e,0xf8039608,0xfc2ba52f,0xfe67bd6a,0xff87ca8a,0xff6fc071,0xff2ca630,0xff0e9b13,0xff0e9a13,0xff70c274,0xffe2f1e2,0xff91cf94,0xff019508,0x69009605, | 864 | 0x460a990e,0xf8039608,0xfc2ba52f,0xfe67bd6a,0xff87ca8a,0xff6fc071,0xff2ca630,0xff0e9b13,0xff0e9a13,0xff70c274,0xffe2f1e2,0xff91cf94,0xff019508,0x69009605, |
1622 | 0x96049709,0xfc05970a,0xfe78c57b,0xffeff6ef,0xffb6ddb7,0xff61ba64,0xff29a52d,0xff24a228,0xffa0d6a2,0xfff6faf7,0xffd0ead2,0xff3cac41,0xff009507,0xbb009507, | 865 | 0x96049709,0xfc05970a,0xfe78c57b,0xffeff6ef,0xffb6ddb7,0xff61ba64,0xff29a52d,0xff24a228,0xffa0d6a2,0xfff6faf7,0xffd0ead2,0xff3cac41,0xff009507,0xbb009507, |
1623 | 0xbd039708,0xfe039608,0xfe3ead42,0xffeef7ef,0xffe9f4e9,0xff4db351,0xff27a42b,0xffa7d8a9,0xfff6faf6,0xff94d197,0xff179e1d,0xff009507,0xff009508,0xe0009507, | 866 | 0xbd039708,0xfe039608,0xfe3ead42,0xffeef7ef,0xffe9f4e9,0xff4db351,0xff27a42b,0xffa7d8a9,0xfff6faf6,0xff94d197,0xff179e1d,0xff009507,0xff009508,0xe0009507, |
1624 | 0xbf039708,0xfe019506,0xff07970c,0xff7fc882,0xfffbfdfb,0xffa0d5a2,0xffa1d6a4,0xfff9fcf9,0xff8fcf93,0xff08980e,0xff009506,0xff009507,0xff009508,0xe3009507, | 867 | 0xbf039708,0xfe019506,0xff07970c,0xff7fc882,0xfffbfdfb,0xffa0d5a2,0xffa1d6a4,0xfff9fcf9,0xff8fcf93,0xff08980e,0xff009506,0xff009507,0xff009508,0xe3009507, |
1625 | 0x9f039607,0xff009606,0xff019507,0xff159d1b,0xffcee9cf,0xfff8fbf8,0xfffafcfa,0xffbae0bc,0xff129c18,0xff009506,0xff009506,0xff009507,0xff009508,0xc6009507, | 868 | 0x9f039607,0xff009606,0xff019507,0xff159d1b,0xffcee9cf,0xfff8fbf8,0xfffafcfa,0xffbae0bc,0xff129c18,0xff009506,0xff009506,0xff009507,0xff009508,0xc6009507, |
1626 | 0x53049708,0xfe009506,0xff009506,0xff019506,0xff56b75a,0xfffafcfa,0xffddf0de,0xff26a32c,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0x7c009506, | 869 | 0x53049708,0xfe009506,0xff009506,0xff019506,0xff56b75a,0xfffafcfa,0xffddf0de,0xff26a32c,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0x7c009506, |
1627 | 0x809990d,0xd0019606,0xff009506,0xff009506,0xff07970d,0xff75c379,0xff3cac41,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0xeb009507,0x17009605, | 870 | 0x809990d,0xd0019606,0xff009506,0xff009506,0xff07970d,0xff75c379,0xff3cac41,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0xeb009507,0x17009605, |
1628 | 0x0,0x32039607,0xef009606,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009508,0xff009508,0xfa009408,0x53009606,0x0, | 871 | 0x0,0x32039607,0xef009606,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009508,0xff009508,0xfa009408,0x53009606,0x0, |
1629 | 0x0,0x8990c,0x36019606,0xda009606,0xff009507,0xff009507,0xff009508,0xff009508,0xff009508,0xff009508,0xeb009507,0x53009606,0x9604,0x0, | 872 | 0x0,0x8990c,0x36019606,0xda009606,0xff009507,0xff009507,0xff009508,0xff009508,0xff009508,0xff009508,0xeb009507,0x53009606,0x9604,0x0, |
1630 | 0x0,0x0,0x0,0xd009605,0x69009605,0xbb009507,0xe1009507,0xe3009507,0xc6009507,0x7c009506,0x17009605,0x0,0x0,0x0 | 873 | 0x0,0x0,0x0,0xd009605,0x69009605,0xbb009507,0xe1009507,0xe3009507,0xc6009507,0x7c009506,0x17009605,0x0,0x0,0x0 |
1631 | }; | 874 | }; |
1632 | 875 | ||
1633 | static const QRgb down_data[] = { | 876 | static const QRgb down_data[] = { |
1634 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 877 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
1635 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 878 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
1636 | 0x1fefefe,0x1ba5cdfe,0x167ab7fe,0xfefefe,0x0,0x0,0x0,0x0,0x0,0xfefefe,0xef3f9fe,0x2163a6fe,0x7fadfe,0x0, | 879 | 0x1fefefe,0x1ba5cdfe,0x167ab7fe,0xfefefe,0x0,0x0,0x0,0x0,0x0,0xfefefe,0xef3f9fe,0x2163a6fe,0x7fadfe,0x0, |
1637 | 0x5fefefe,0x9289c2fe,0xdd7ab3fd,0x31236ff3,0x0,0x0,0x0,0x0,0x1fefefe,0x1feaf4fe,0xa385bffe,0xdf77b2fb,0x231553d0,0x0, | 880 | 0x5fefefe,0x9289c2fe,0xdd7ab3fd,0x31236ff3,0x0,0x0,0x0,0x0,0x1fefefe,0x1feaf4fe,0xa385bffe,0xdf77b2fb,0x231553d0,0x0, |
1638 | 0x7fefefe,0xa288c1fd,0xffe6f1fb,0xe58bb8f9,0x3e2569ea,0x21252e9,0x0,0x3fefefe,0x2fc3e1fe,0xb099cbfd,0xfdd9eafb,0xf09ec3f2,0x320e369f,0x0, | 881 | 0x7fefefe,0xa288c1fd,0xffe6f1fb,0xe58bb8f9,0x3e2569ea,0x21252e9,0x0,0x3fefefe,0x2fc3e1fe,0xb099cbfd,0xfdd9eafb,0xf09ec3f2,0x320e369f,0x0, |
1639 | 0x7fefefe,0xa077b5fb,0xffd8e7f2,0xffe5edf2,0xeb92bbf2,0x71276af7,0x98da9f5,0x43a7d1fe,0xd087bff9,0xfdd3e5f3,0xffe8eff1,0xf090b8eb,0x320b2f9c,0x0, | 882 | 0x7fefefe,0xa077b5fb,0xffd8e7f2,0xffe5edf2,0xeb92bbf2,0x71276af7,0x98da9f5,0x43a7d1fe,0xd087bff9,0xfdd3e5f3,0xffe8eff1,0xf090b8eb,0x320b2f9c,0x0, |
1640 | 0x4fefefe,0x8b4f98f9,0xffbad3ea,0xffd2e0e7,0xffd0dfe7,0xf994b9ec,0x913776f5,0xe075b2f5,0xffc5dae9,0xffd2e0e7,0xffd2e0e7,0xec75a4e3,0x2d092380,0x0, | 883 | 0x4fefefe,0x8b4f98f9,0xffbad3ea,0xffd2e0e7,0xffd0dfe7,0xf994b9ec,0x913776f5,0xe075b2f5,0xffc5dae9,0xffd2e0e7,0xffd2e0e7,0xec75a4e3,0x2d092380,0x0, |
1641 | 0x1fefefe,0x174c77f4,0xb2366eed,0xfea4c0de,0xffbdd0d9,0xffbdd0d9,0xffa1c1de,0xffbbcfda,0xffbdd0d9,0xffbacfd9,0xf6789fdf,0x760c34a1,0x8000000,0x0, | 884 | 0x1fefefe,0x174c77f4,0xb2366eed,0xfea4c0de,0xffbdd0d9,0xffbdd0d9,0xffa1c1de,0xffbbcfda,0xffbdd0d9,0xffbacfd9,0xf6789fdf,0x760c34a1,0x8000000,0x0, |
1642 | 0x0,0xfefefe,0x100f37df,0xa8285bed,0xff81a8d7,0xffa8c2ce,0xffa8c2ce,0xffa8c2ce,0xffa1bed0,0xf35885db,0x6d0c2e9d,0x8000000,0x0,0x0, | 885 | 0x0,0xfefefe,0x100f37df,0xa8285bed,0xff81a8d7,0xffa8c2ce,0xffa8c2ce,0xffa8c2ce,0xffa1bed0,0xf35885db,0x6d0c2e9d,0x8000000,0x0,0x0, |
1643 | 0x0,0x0,0xfefefe,0xc0e33e5,0x811d4ddf,0xf66a95d0,0xff95b5c3,0xff8eb0c6,0xdc3f6cc2,0x580a2482,0x6010411,0x0,0x0,0x0, | 886 | 0x0,0x0,0xfefefe,0xc0e33e5,0x811d4ddf,0xf66a95d0,0xff95b5c3,0xff8eb0c6,0xdc3f6cc2,0x580a2482,0x6010411,0x0,0x0,0x0, |
1644 | 0x0,0x0,0x0,0xfefefe,0x31f39c8,0x630f39e4,0xf14e7cd1,0xd32a53c9,0x37041461,0x4010103,0x0,0x0,0x0,0x0, | 887 | 0x0,0x0,0x0,0xfefefe,0x31f39c8,0x630f39e4,0xf14e7cd1,0xd32a53c9,0x37041461,0x4010103,0x0,0x0,0x0,0x0, |
1645 | 0x0,0x0,0x0,0x0,0xfefefe,0x494949,0x350421de,0x1f030d4c,0x2000000,0x0,0x0,0x0,0x0,0x0, | 888 | 0x0,0x0,0x0,0x0,0xfefefe,0x494949,0x350421de,0x1f030d4c,0x2000000,0x0,0x0,0x0,0x0,0x0, |
1646 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 889 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
1647 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 890 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
1648 | }; | 891 | }; |
1649 | 892 | ||
893 | static const QRgb editdelete_data[] = { | ||
894 | 0x0,0x261818,0x8d5858,0xdd000000,0x0,0x5000000,0x0,0x0,0x0,0x0,0xde000000,0x663a3a,0x5000000,0x1000000, | ||
895 | 0x0,0x261818,0x8e201313,0xdf764747,0x90000000,0x0,0x4000000,0x0,0x0,0x8b000000,0xdf795353,0x93150d0d,0x4000000,0xa000000, | ||
896 | 0x0,0x8f261818,0xff8b5f5f,0xf7e08383,0xf37e3f3f,0xa2000000,0x1000000,0x0,0x98000000,0xec946c6c,0xf6e79696,0xff824141,0xaa000000,0x18100808, | ||
897 | 0xdc000000,0xdf764848,0xf6e08383,0xffd37171,0xf7cf6767,0xf8783c3c,0x8b020101,0x8a040303,0xed946c6c,0xf4e89b9b,0xffca6969,0xfa944a4a,0xfc412121,0x88020101, | ||
898 | 0x1000000,0x90000000,0xf37f3f3f,0xf8cf6868,0xffcd6666,0xf6d46c6c,0xf1683838,0xea795757,0xf1e99a9a,0xffca6969,0xfb8a4444,0xfb3d1e1e,0xbe000000,0x2e000000, | ||
899 | 0x3000000,0x0,0xa2000000,0xf9763b3b,0xf6d46d6d,0xffcd6969,0xfdd77878,0xfedb8383,0xffc76868,0xf98f4646,0xfb3b1d1d,0xc5000000,0x48000000,0x22000000, | ||
900 | 0x0,0x4000000,0x1000000,0x8a000000,0xf2683737,0xfcd77777,0xffd06c6c,0xffce6666,0xfdab5555,0xf6361b1b,0xb8000000,0x4e000000,0x29000000,0xb000000, | ||
901 | 0x0,0x0,0x0,0x88000000,0xea785858,0xfcdb8282,0xffce6767,0xffc86363,0xfdb95c5c,0xf5572c2c,0xb6000000,0x27000000,0x11000000,0x1000000, | ||
902 | 0x0,0x0,0x95000000,0xed926b6b,0xf2ea9b9b,0xffc86868,0xfeab5454,0xfeb95c5c,0xffc86464,0xf8c66363,0xf5723939,0xa8000000,0x2000000,0x4000000, | ||
903 | 0x0,0x8e000000,0xec956c6c,0xf4e89b9b,0xffca6969,0xf98f4646,0xf6361b1b,0xf6572c2c,0xf9c76363,0xffd06868,0xf9ca6565,0xf6713939,0xa2000000,0x2000000, | ||
904 | 0xdc000000,0xd7785050,0xf3e79595,0xffca6969,0xfa8a4444,0xfa3c1e1e,0xb8000000,0xb6020101,0xf6743a3a,0xf9ca6565,0xffbd5e5e,0xf8a15151,0xf64e2727,0x81000000, | ||
905 | 0x0,0x8d000000,0xff884444,0xfa964a4a,0xfa3d1f1f,0xc5000000,0x4e000000,0x28000000,0xa8000000,0xf6713838,0xf9a25050,0xff542929,0xbc000000,0x29000000, | ||
906 | 0x2000000,0x0,0xa5000000,0xf6412121,0xbc000000,0x46000000,0x29000000,0x10000000,0x2000000,0xa3000000,0xf74b2525,0xbc000000,0x4c000000,0x2a000000, | ||
907 | 0x1000000,0x7000000,0xb000000,0x84000000,0x28000000,0x21000000,0xb000000,0x0,0x3000000,0x3000000,0x81000000,0x29000000,0x29000000,0x11000000 | ||
908 | }; | ||
909 | |||
1650 | static const QRgb edit_data[] = { | 910 | static const QRgb edit_data[] = { |
1651 | 0xffd6dfed,0xffe5eaf4,0xffe5eaf4,0xffe5eaf4,0xffe3eaf4,0xffdae3f2,0xf9c5cedc,0x49c3b4a9,0x8d28357,0x0,0x0,0x0,0x0,0x0, | 911 | 0xffd6dfed,0xffe5eaf4,0xffe5eaf4,0xffe5eaf4,0xffe3eaf4,0xffdae3f2,0xf9c5cedc,0x49c3b4a9,0x8d28357,0x0,0x0,0x0,0x0,0x0, |
1652 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffbfeff,0xffedf3fd,0xffe5ce80,0xfbf8cf69,0xafebb785,0x14a74a17,0x0,0x0,0x0,0x0, | 912 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffbfeff,0xffedf3fd,0xffe5ce80,0xfbf8cf69,0xafebb785,0x14a74a17,0x0,0x0,0x0,0x0, |
1653 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff3f1ed,0xfff8d625,0xfffeb006,0xfbe99141,0x5c9f8f93,0x0,0x0,0x0,0x0, | 913 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff3f1ed,0xfff8d625,0xfffeb006,0xfbe99141,0x5c9f8f93,0x0,0x0,0x0,0x0, |
1654 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8e59f,0xfffdcd09,0xfffc9e10,0xffc49277,0xf89dadc9,0x1a515b6b,0x0,0x0,0x0, | 914 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8e59f,0xfffdcd09,0xfffc9e10,0xffc49277,0xf89dadc9,0x1a515b6b,0x0,0x0,0x0, |
1655 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffefaf3,0xfffcdb44,0xfffec219,0xffef9234,0xffc1bfcc,0xffa7b6d0,0x26373e4a,0x0,0x0,0x0, | 915 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffefaf3,0xfffcdb44,0xfffec219,0xffef9234,0xffc1bfcc,0xffa7b6d0,0x26373e4a,0x0,0x0,0x0, |
1656 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffdedbb,0xfffdd82e,0xfffeb832,0xffdaa27b,0xffccd8eb,0xffafbed6,0x26373e4a,0x0,0x0,0x0, | 916 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffdedbb,0xfffdd82e,0xfffeb832,0xffdaa27b,0xffccd8eb,0xffafbed6,0x26373e4a,0x0,0x0,0x0, |
1657 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfffefdfb,0xfffbe072,0xfffed342,0xfff6a845,0xffd7d0d7,0xffd6e0f1,0xffb6c3d9,0x26373e4a,0x100001f,0x800001f,0x600001e, | 917 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfffefdfb,0xfffbe072,0xfffed342,0xfff6a845,0xffd7d0d7,0xffd6e0f1,0xffb6c3d9,0x26373e4a,0x100001f,0x800001f,0x600001e, |
1658 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfff7eed3,0xfffde35e,0xfffecd5c,0xffe4b184,0xffe1e9f7,0xffdce4f3,0xffb5c1d7,0x35262b3d,0x1a00001d,0x1d00001b,0x1b00001a, | 918 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfff7eed3,0xfffde35e,0xfffecd5c,0xffe4b184,0xffe1e9f7,0xffdce4f3,0xffb5c1d7,0x35262b3d,0x1a00001d,0x1d00001b,0x1b00001a, |
1659 | 0xffe4eaf4,0xffffffff,0xfffcfeff,0xfff7dead,0xfffee483,0xfff6c471,0xffdecdc9,0xffd7deec,0xffcdd4e5,0xffaab5cb,0x3e1f2236,0x1e00001a,0x1e00001a,0x1c00001a, | 919 | 0xffe4eaf4,0xffffffff,0xfffcfeff,0xfff7dead,0xfffee483,0xfff6c471,0xffdecdc9,0xffd7deec,0xffcdd4e5,0xffaab5cb,0x3e1f2236,0x1e00001a,0x1e00001a,0x1c00001a, |
1660 | 0xffe4eaf4,0xffffffff,0xfffbffff,0xffecd3b7,0xfff7dfc0,0xffd6baa9,0xffd3d7e4,0xffcfd6e5,0xffccd3e3,0xffabb6cc,0x3d1f2336,0x17000018,0xf000016,0x7000010, | 920 | 0xffe4eaf4,0xffffffff,0xfffbffff,0xffecd3b7,0xfff7dfc0,0xffd6baa9,0xffd3d7e4,0xffcfd6e5,0xffccd3e3,0xffabb6cc,0x3d1f2336,0x17000018,0xf000016,0x7000010, |
1661 | 0xffe4eaf4,0xffffffff,0xfffafeff,0xffc8b7af,0xffc2aea9,0xffd7dce6,0xffd4dae7,0xffd0d7e6,0xffd1d8e7,0xffb5c0d6,0x2a303643,0x2000007,0x0,0x0, | 921 | 0xffe4eaf4,0xffffffff,0xfffafeff,0xffc8b7af,0xffc2aea9,0xffd7dce6,0xffd4dae7,0xffd0d7e6,0xffd1d8e7,0xffb5c0d6,0x2a303643,0x2000007,0x0,0x0, |
1662 | 0xffe4eaf4,0xfffeffff,0xfff9feff,0xffece9eb,0xffeaf0f7,0xffe6ecf6,0xffe0e6f3,0xffe2e9f6,0xffe2eaf8,0xffbecadf,0x26373e4a,0x0,0x0,0x0, | 922 | 0xffe4eaf4,0xfffeffff,0xfff9feff,0xffece9eb,0xffeaf0f7,0xffe6ecf6,0xffe0e6f3,0xffe2e9f6,0xffe2eaf8,0xffbecadf,0x26373e4a,0x0,0x0,0x0, |
1663 | 0xffcdd7e6,0xffd8dee7,0xffd4dde7,0xffd2dbe7,0xffd0d9e7,0xffced7e6,0xffcad4e5,0xffc6d1e3,0xffc4cfe2,0xffacb9d1,0x26373e4a,0x0,0x0,0x0, | 923 | 0xffcdd7e6,0xffd8dee7,0xffd4dde7,0xffd2dbe7,0xffd0d9e7,0xffced7e6,0xffcad4e5,0xffc6d1e3,0xffc4cfe2,0xffacb9d1,0x26373e4a,0x0,0x0,0x0, |
1664 | 0x2c737d8f,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x10111316,0x0,0x0,0x0 | 924 | 0x2c737d8f,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x10111316,0x0,0x0,0x0 |
1665 | }; | 925 | }; |
1666 | 926 | ||
1667 | static const QRgb editdelete_data[] = { | ||
1668 | 0x0,0x352424,0x9c6a6a,0xdd000000,0x0,0x5000000,0x0,0x0,0x0,0x0,0xde000000,0x784b4b,0x5000000,0x1000000, | ||
1669 | 0x0,0x352424,0x8e2e1e1e,0xdf875959,0x90000000,0x0,0x4000000,0x0,0x0,0x8b000000,0xdf8a6565,0x93201616,0x4000000,0xa000000, | ||
1670 | 0x0,0x8f352424,0xff9a7171,0xf7e59393,0xf38e5050,0xa2000000,0x1000000,0x0,0x98000000,0xeca37d7d,0xf6eba4a4,0xff925252,0xaa000000,0x181a0f0f, | ||
1671 | 0xdc000000,0xdf875a5a,0xf6e59393,0xffda8282,0xf7d77979,0xf8894d4d,0x8b050303,0x8a080606,0xeda37d7d,0xf4eca9a9,0xffd27a7a,0xfaa35c5c,0xfc522f2f,0x88050303, | ||
1672 | 0x1000000,0x90000000,0xf38f5050,0xf8d77a7a,0xffd57878,0xf6db7d7d,0xf17a4949,0xea8a6969,0xf1eda8a8,0xffd27a7a,0xfb9a5656,0xfb4e2b2b,0xbe000000,0x2e000000, | ||
1673 | 0x3000000,0x0,0xa2000000,0xf9874c4c,0xf6db7e7e,0xffd57a7a,0xfddd8989,0xfee19393,0xffd07a7a,0xf99e5858,0xfb4c2a2a,0xc5000000,0x48000000,0x22000000, | ||
1674 | 0x0,0x4000000,0x1000000,0x8a000000,0xf27a4848,0xfcdd8888,0xffd77d7d,0xffd67878,0xfdb76767,0xf6472828,0xb8000000,0x4e000000,0x29000000,0xb000000, | ||
1675 | 0x0,0x0,0x0,0x88000000,0xea896a6a,0xfce19292,0xffd67979,0xffd17575,0xfdc46e6e,0xf5693c3c,0xb6000000,0x27000000,0x11000000,0x1000000, | ||
1676 | 0x0,0x0,0x95000000,0xeda17c7c,0xf2eea9a9,0xffd17a7a,0xfeb76666,0xfec46e6e,0xffd17676,0xf8cf7575,0xf5834a4a,0xa8000000,0x2000000,0x4000000, | ||
1677 | 0x0,0x8e000000,0xeca47d7d,0xf4eca9a9,0xffd27a7a,0xf99e5858,0xf6472828,0xf6693c3c,0xf9d07575,0xffd77a7a,0xf9d27777,0xf6824a4a,0xa2000000,0x2000000, | ||
1678 | 0xdc000000,0xd7896262,0xf3eba4a4,0xffd27a7a,0xfa9a5656,0xfa4d2b2b,0xb8000000,0xb6050303,0xf6854b4b,0xf9d27777,0xffc77070,0xf8ae6363,0xf6603636,0x81000000, | ||
1679 | 0x0,0x8d000000,0xff985656,0xfaa45c5c,0xfa4e2d2d,0xc5000000,0x4e000000,0x28000000,0xa8000000,0xf6824949,0xf9af6262,0xff663838,0xbc000000,0x29000000, | ||
1680 | 0x2000000,0x0,0xa5000000,0xf6522f2f,0xbc000000,0x46000000,0x29000000,0x10000000,0x2000000,0xa3000000,0xf75d3434,0xbc000000,0x4c000000,0x2a000000, | ||
1681 | 0x1000000,0x7000000,0xb000000,0x84000000,0x28000000,0x21000000,0xb000000,0x0,0x3000000,0x3000000,0x81000000,0x29000000,0x29000000,0x11000000 | ||
1682 | }; | ||
1683 | |||
1684 | static const QRgb enter_data[] = { | 927 | static const QRgb enter_data[] = { |
1685 | 0x0,0x0,0x0,0x5179f1b,0x4709990e,0x96049709,0xbd039708,0xbf039708,0x9f039607,0x54049708,0x709990d,0x0,0x0,0x0, | 928 | 0x0,0x0,0x0,0x5179f1b,0x4709990e,0x96049709,0xbd039708,0xbf039708,0x9f039607,0x54049708,0x709990d,0x0,0x0,0x0, |
1686 | 0x0,0x1ba21f,0x230e9b12,0xb7059709,0xf8029607,0xfc039608,0xfe029608,0xfe019506,0xff009606,0xff009506,0xd0019606,0x32039607,0x8990c,0x0, | 929 | 0x0,0x1ba21f,0x230e9b12,0xb7059709,0xf8029607,0xfc039608,0xfe029608,0xfe019506,0xff009606,0xff009506,0xd0019606,0x32039607,0x8990c,0x0, |
1687 | 0x0,0x230d9b12,0xd7049708,0xf908980d,0xfc119b15,0xfe129c16,0xfe0b9910,0xff05970a,0xff019507,0xff009506,0xff009506,0xef009606,0x36019606,0x0, | 930 | 0x0,0x230d9b12,0xd7049708,0xf908980d,0xfc119b15,0xfe129c16,0xfe0b9910,0xff05970a,0xff019507,0xff009506,0xff009506,0xef009606,0x36019606,0x0, |
1688 | 0x5179f1b,0xb6059709,0xf908980d,0xfc1fa124,0xfe39ab3c,0xfe35a939,0xff1b9f20,0xff0a990f,0xff039608,0xff029607,0xff169d1c,0xff109b17,0xda009507,0xd009605, | 931 | 0x5179f1b,0xb6059709,0xf908980d,0xfc1fa124,0xfe39ab3c,0xfe35a939,0xff1b9f20,0xff0a990f,0xff039608,0xff029607,0xff169d1c,0xff109b17,0xda009507,0xd009605, |
1689 | 0x460a990e,0xf8039608,0xfc2ba52f,0xfe67bd6a,0xff87ca8a,0xff6fc071,0xff2ca630,0xff0e9b13,0xff0e9a13,0xff70c274,0xffe2f1e2,0xff91cf94,0xff019508,0x69009605, | 932 | 0x460a990e,0xf8039608,0xfc2ba52f,0xfe67bd6a,0xff87ca8a,0xff6fc071,0xff2ca630,0xff0e9b13,0xff0e9a13,0xff70c274,0xffe2f1e2,0xff91cf94,0xff019508,0x69009605, |
1690 | 0x96049709,0xfc05970a,0xfe78c57b,0xffeff6ef,0xffb6ddb7,0xff61ba64,0xff29a52d,0xff24a228,0xffa0d6a2,0xfff6faf7,0xffd0ead2,0xff3cac41,0xff009507,0xbb009507, | 933 | 0x96049709,0xfc05970a,0xfe78c57b,0xffeff6ef,0xffb6ddb7,0xff61ba64,0xff29a52d,0xff24a228,0xffa0d6a2,0xfff6faf7,0xffd0ead2,0xff3cac41,0xff009507,0xbb009507, |
1691 | 0xbd039708,0xfe039608,0xfe3ead42,0xffeef7ef,0xffe9f4e9,0xff4db351,0xff27a42b,0xffa7d8a9,0xfff6faf6,0xff94d197,0xff179e1d,0xff009507,0xff009508,0xe0009507, | 934 | 0xbd039708,0xfe039608,0xfe3ead42,0xffeef7ef,0xffe9f4e9,0xff4db351,0xff27a42b,0xffa7d8a9,0xfff6faf6,0xff94d197,0xff179e1d,0xff009507,0xff009508,0xe0009507, |
1692 | 0xbf039708,0xfe019506,0xff07970c,0xff7fc882,0xfffbfdfb,0xffa0d5a2,0xffa1d6a4,0xfff9fcf9,0xff8fcf93,0xff08980e,0xff009506,0xff009507,0xff009508,0xe3009507, | 935 | 0xbf039708,0xfe019506,0xff07970c,0xff7fc882,0xfffbfdfb,0xffa0d5a2,0xffa1d6a4,0xfff9fcf9,0xff8fcf93,0xff08980e,0xff009506,0xff009507,0xff009508,0xe3009507, |
1693 | 0x9f039607,0xff009606,0xff019507,0xff159d1b,0xffcee9cf,0xfff8fbf8,0xfffafcfa,0xffbae0bc,0xff129c18,0xff009506,0xff009506,0xff009507,0xff009508,0xc6009507, | 936 | 0x9f039607,0xff009606,0xff019507,0xff159d1b,0xffcee9cf,0xfff8fbf8,0xfffafcfa,0xffbae0bc,0xff129c18,0xff009506,0xff009506,0xff009507,0xff009508,0xc6009507, |
1694 | 0x53049708,0xfe009506,0xff009506,0xff019506,0xff56b75a,0xfffafcfa,0xffddf0de,0xff26a32c,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0x7c009506, | 937 | 0x53049708,0xfe009506,0xff009506,0xff019506,0xff56b75a,0xfffafcfa,0xffddf0de,0xff26a32c,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0x7c009506, |
1695 | 0x809990d,0xd0019606,0xff009506,0xff009506,0xff07970d,0xff75c379,0xff3cac41,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0xeb009507,0x17009605, | 938 | 0x809990d,0xd0019606,0xff009506,0xff009506,0xff07970d,0xff75c379,0xff3cac41,0xff009506,0xff009506,0xff009507,0xff009508,0xff009508,0xeb009507,0x17009605, |
1696 | 0x0,0x32039607,0xef009606,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009508,0xff009508,0xfa009408,0x53009606,0x0, | 939 | 0x0,0x32039607,0xef009606,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009507,0xff009508,0xff009508,0xfa009408,0x53009606,0x0, |
1697 | 0x0,0x8990c,0x36019606,0xda009606,0xff009507,0xff009507,0xff009508,0xff009508,0xff009508,0xff009508,0xeb009507,0x53009606,0x9604,0x0, | 940 | 0x0,0x8990c,0x36019606,0xda009606,0xff009507,0xff009507,0xff009508,0xff009508,0xff009508,0xff009508,0xeb009507,0x53009606,0x9604,0x0, |
1698 | 0x0,0x0,0x0,0xd009605,0x69009605,0xbb009507,0xe1009507,0xe3009507,0xc6009507,0x7c009506,0x17009605,0x0,0x0,0x0 | 941 | 0x0,0x0,0x0,0xd009605,0x69009605,0xbb009507,0xe1009507,0xe3009507,0xc6009507,0x7c009506,0x17009605,0x0,0x0,0x0 |
1699 | }; | 942 | }; |
1700 | 943 | ||
1701 | static const QRgb exec_data[] = { | 944 | static const QRgb exec_data[] = { |
1702 | 0x0,0x0,0x0,0x643db5f6,0xa324c2f7,0x243d95ee,0x4c31a3f7,0x572a95ec,0xc2c70e3,0x0,0x0,0x0,0x0,0x0, | 945 | 0x0,0x0,0x0,0x643db5f6,0xa324c2f7,0x243d95ee,0x4c31a3f7,0x572a95ec,0xc2c70e3,0x0,0x0,0x0,0x0,0x0, |
1703 | 0x0,0x513fb3f5,0x7337b7f4,0xce46b4f2,0xff03e2ff,0xe914cbf9,0xec0fc9f9,0xfe03d5fe,0x7b1f87df,0xe1f6cf0,0x41c64e6,0x0,0x0,0x0, | 946 | 0x0,0x513fb3f5,0x7337b7f4,0xce46b4f2,0xff03e2ff,0xe914cbf9,0xec0fc9f9,0xfe03d5fe,0x7b1f87df,0xe1f6cf0,0x41c64e6,0x0,0x0,0x0, |
1704 | 0x1254b7ff,0xea34cbfa,0xfe06e2ff,0xfd08dcfd,0xff06d4f9,0xff16a9e8,0xff1aa2e6,0xff10b6f2,0xfa0bbef9,0xed0eacf5,0xb81296ed,0x110e4fcf,0x0,0x0, | 947 | 0x1254b7ff,0xea34cbfa,0xfe06e2ff,0xfd08dcfd,0xff06d4f9,0xff16a9e8,0xff1aa2e6,0xff10b6f2,0xfa0bbef9,0xed0eacf5,0xb81296ed,0x110e4fcf,0x0,0x0, |
1705 | 0x1e4fafff,0xed56b0f4,0xff2ed6fc,0xff05d8fb,0xf6318edc,0xd23283d4,0xe63387d8,0xfe3488d7,0xff2e98e1,0xff0ab9fc,0xf50ba2f4,0x2709328c,0x0,0x0, | 948 | 0x1e4fafff,0xed56b0f4,0xff2ed6fc,0xff05d8fb,0xf6318edc,0xd23283d4,0xe63387d8,0xfe3488d7,0xff2e98e1,0xff0ab9fc,0xf50ba2f4,0x2709328c,0x0,0x0, |
1706 | 0x9436befb,0xf51fc6f6,0xfe10defe,0xde0dc9f7,0x2f246088,0xc000000,0xa112e40,0x563ea3e4,0xeb41ace8,0xff3bafeb,0xfe06b0fd,0xb50d84eb,0x500861de,0x0, | 949 | 0x9436befb,0xf51fc6f6,0xfe10defe,0xde0dc9f7,0x2f246088,0xc000000,0xa112e40,0x563ea3e4,0xeb41ace8,0xff3bafeb,0xfe06b0fd,0xb50d84eb,0x500861de,0x0, |
1707 | 0xd043bbf4,0xfd0cddfd,0xfe09dcff,0xe608cdfc,0xb235488,0x0,0x0,0x0,0x354ecdf6,0xf94fd1f5,0xff23b8fc,0xff00a5ff,0xee078cf2,0x150030b1, | 950 | 0xd043bbf4,0xfd0cddfd,0xfe09dcff,0xe608cdfc,0xb235488,0x0,0x0,0x0,0x354ecdf6,0xf94fd1f5,0xff23b8fc,0xff00a5ff,0xee078cf2,0x150030b1, |
1708 | 0xd74792e8,0xfc357fe0,0xfd54bbf4,0xff04d0ff,0x761bbbfb,0x0,0x0,0x0,0x6bffff,0xaa5aebff,0xff30c3fe,0xfc13a1fa,0xc51662d4,0x27002377, | 951 | 0xd74792e8,0xfc357fe0,0xfd54bbf4,0xff04d0ff,0x761bbbfb,0x0,0x0,0x0,0x6bffff,0xaa5aebff,0xff30c3fe,0xfc13a1fa,0xc51662d4,0x27002377, |
1709 | 0x7f3584e4,0xd4317ede,0xfd57abf0,0xfe1ecdfe,0xfd03c2fe,0x761cb7fc,0x751bbfe,0x0,0x0,0x7758e5ff,0xff15aaff,0xfd0399fd,0xb5086de0,0x140239b6, | 952 | 0x7f3584e4,0xd4317ede,0xfd57abf0,0xfe1ecdfe,0xfd03c2fe,0x761cb7fc,0x751bbfe,0x0,0x0,0x7758e5ff,0xff15aaff,0xfd0399fd,0xb5086de0,0x140239b6, |
1710 | 0x1000000,0x3b2872d8,0xf747bef6,0xff00c3ff,0xfe21c4fe,0xff04b7ff,0xe10db3ff,0xa219b3ff,0xa11ab0ff,0xea0ca4ff,0xff039aff,0xfe2a9bf6,0xfe0e99fd,0x650a4dc3, | 953 | 0x1000000,0x3b2872d8,0xf747bef6,0xff00c3ff,0xfe21c4fe,0xff04b7ff,0xe10db3ff,0xa219b3ff,0xa11ab0ff,0xea0ca4ff,0xff039aff,0xfe2a9bf6,0xfe0e99fd,0x650a4dc3, |
1711 | 0x0,0x873280e6,0xfc4797e8,0xfc46abef,0xfd327add,0xfb4fa0eb,0xfe10afff,0xff04a6ff,0xff1faaff,0xff109fff,0xff1e9ffd,0xfe1b5dd3,0xd41a5cd2,0x29001c6b, | 954 | 0x0,0x873280e6,0xfc4797e8,0xfc46abef,0xfd327add,0xfb4fa0eb,0xfe10afff,0xff04a6ff,0xff1faaff,0xff109fff,0xff1e9ffd,0xfe1b5dd3,0xd41a5cd2,0x29001c6b, |
1712 | 0x0,0x482874e2,0xec3380e1,0xf02a6bd8,0xc82067d6,0xf85d95e4,0xfb1caefe,0xfd29abfd,0xfc2d70d9,0xfa6ba7ed,0xff0996ff,0xe5337ae0,0x30002373,0x5000000, | 955 | 0x0,0x482874e2,0xec3380e1,0xf02a6bd8,0xc82067d6,0xf85d95e4,0xfb1caefe,0xfd29abfd,0xfc2d70d9,0xfa6ba7ed,0xff0996ff,0xe5337ae0,0x30002373,0x5000000, |
1713 | 0x0,0x0,0x331d65dd,0x3a124398,0xf07255f,0xf06292e3,0xfb4295e9,0xf64393ea,0xd81e5ad2,0xfd739be3,0xf2558ee4,0x721a47b5,0x9000001,0x0, | 956 | 0x0,0x0,0x331d65dd,0x3a124398,0xf07255f,0xf06292e3,0xfb4295e9,0xf64393ea,0xd81e5ad2,0xfd739be3,0xf2558ee4,0x721a47b5,0x9000001,0x0, |
1714 | 0x0,0x0,0x0,0x0,0x0,0xbb1f60da,0xf6195ed4,0x9f0b48c5,0x1c001f6c,0xb02d5fd2,0x6d0338b0,0xf000206,0x0,0x0, | 957 | 0x0,0x0,0x0,0x0,0x0,0xbb1f60da,0xf6195ed4,0x9f0b48c5,0x1c001f6c,0xb02d5fd2,0x6d0338b0,0xf000206,0x0,0x0, |
1715 | 0x0,0x0,0x0,0x0,0x0,0x5002371,0x2d0033af,0x1f001a56,0x1000000,0x3000000,0x7000000,0x0,0x0,0x0 | 958 | 0x0,0x0,0x0,0x0,0x0,0x5002371,0x2d0033af,0x1f001a56,0x1000000,0x3000000,0x7000000,0x0,0x0,0x0 |
1716 | }; | 959 | }; |
1717 | 960 | ||
1718 | static const QRgb fastback_data[] = { | 961 | static const QRgb fastback_data[] = { |
1719 | 0x0,0x0,0x0,0x1fefefe,0x16c8e3fe,0x299ecbfe,0x2690c1fe,0x1b69a4fe,0x10cee4fe,0x26a7d1fe,0x2795c4fe,0x2079b0fe,0x9488afe,0x0, | 962 | 0x0,0x0,0x0,0x1fefefe,0x16c8e3fe,0x299ecbfe,0x2690c1fe,0x1b69a4fe,0x10cee4fe,0x26a7d1fe,0x2795c4fe,0x2079b0fe,0x9488afe,0x0, |
1720 | 0x0,0x0,0xfefefe,0x20e2f0fe,0xb796c9fe,0xe7aad3fe,0xe59fccfe,0xdd7eb7fe,0xa561a6fb,0xe3a7d2fe,0xe6a3cffe,0xe292c4fe,0x95458ef9,0x4103996, | 963 | 0x0,0x0,0xfefefe,0x20e2f0fe,0xb796c9fe,0xe7aad3fe,0xe59fccfe,0xdd7eb7fe,0xa561a6fb,0xe3a7d2fe,0xe6a3cffe,0xe292c4fe,0x95458ef9,0x4103996, |
1721 | 0x0,0x0,0xdfefefe,0x9497c9fe,0xfcdeeefd,0xfffcfcfc,0xfffcfcfc,0xec6ea0ed,0xf29fc7f6,0xfffafcfc,0xfffcfcfc,0xf9b5d1f7,0x6c2556b3,0x2010101, | 964 | 0x0,0x0,0xdfefefe,0x9497c9fe,0xfcdeeefd,0xfffcfcfc,0xfffcfcfc,0xec6ea0ed,0xf29fc7f6,0xfffafcfc,0xfffcfcfc,0xf9b5d1f7,0x6c2556b3,0x2010101, |
1722 | 0x0,0x5fefefe,0x5fa6d1fe,0xf7b7d8f9,0xfff2f6f7,0xfff2f6f7,0xfd95bef9,0xe36194e1,0xffebf3f8,0xfff2f6f7,0xffd4e6f8,0x9d3064c0,0xc03081b,0x0, | 965 | 0x0,0x5fefefe,0x5fa6d1fe,0xf7b7d8f9,0xfff2f6f7,0xfff2f6f7,0xfd95bef9,0xe36194e1,0xffebf3f8,0xfff2f6f7,0xffd4e6f8,0x9d3064c0,0xc03081b,0x0, |
1723 | 0x2fefefe,0x3fa9d2fe,0xe094c5f8,0xffe3ecf1,0xffe6edf1,0xfbb6d0ef,0xdf3975dd,0xffcfe2f2,0xffe6edf1,0xffdde9f1,0xcc4f7fd7,0x1f061136,0x0,0x0, | 966 | 0x2fefefe,0x3fa9d2fe,0xe094c5f8,0xffe3ecf1,0xffe6edf1,0xfbb6d0ef,0xdf3975dd,0xffcfe2f2,0xffe6edf1,0xffdde9f1,0xcc4f7fd7,0x1f061136,0x0,0x0, |
1724 | 0x1cd5e8fe,0xb583bbf9,0xffc6dceb,0xffd7e4e9,0xffc6d9eb,0xe44076df,0xf99bbfea,0xffd7e4e9,0xffd6e3e9,0xf2739ee8,0x410d2466,0x2000000,0x0,0x0, | 967 | 0x1cd5e8fe,0xb583bbf9,0xffc6dceb,0xffd7e4e9,0xffc6d9eb,0xe44076df,0xf99bbfea,0xffd7e4e9,0xffd6e3e9,0xf2739ee8,0x410d2466,0x2000000,0x0,0x0, |
1725 | 0x5366abfb,0xfc95bfe8,0xffc8d8df,0xffc7d8e0,0xee6691e1,0xe35185da,0xffc5d7e0,0xffc8d8df,0xff9fbee6,0x851741aa,0x6020514,0x0,0x0,0x0, | 968 | 0x5366abfb,0xfc95bfe8,0xffc8d8df,0xffc7d8e0,0xee6691e1,0xe35185da,0xffc5d7e0,0xffc8d8df,0xff9fbee6,0x851741aa,0x6020514,0x0,0x0,0x0, |
1726 | 0x1d81a9fc,0xcf4d86ed,0xffb1c8d8,0xffb8cdd7,0xff8db2dd,0xdb2560ed,0xfd99b9dc,0xffb8cdd7,0xffafc8d8,0xc93d72e5,0xf0831ce,0x0,0x0,0x0, | 969 | 0x1d81a9fc,0xcf4d86ed,0xffb1c8d8,0xffb8cdd7,0xff8db2dd,0xdb2560ed,0xfd99b9dc,0xffb8cdd7,0xffafc8d8,0xc93d72e5,0xf0831ce,0x0,0x0,0x0, |
1727 | 0x2fefefe,0x3f265cf3,0xec5f90df,0xffa7c2ce,0xffa8c2cd,0xf3618edb,0xe02b63e8,0xff9fbecf,0xffa8c2cd,0xff8eb1d2,0x921d50e6,0x103070e,0x0,0x0, | 970 | 0x2fefefe,0x3f265cf3,0xec5f90df,0xffa7c2ce,0xffa8c2cd,0xf3618edb,0xe02b63e8,0xff9fbecf,0xffa8c2cd,0xff8eb1d2,0x921d50e6,0x103070e,0x0,0x0, |
1728 | 0xfefefe,0x5c3d8fa,0x7b1b4ff4,0xfc799fd1,0xff9bb7c6,0xff96b4c7,0xe63666e0,0xec4b7bdd,0xff9bb7c6,0xff9bb7c6,0xf46792d2,0x510732e3,0x0,0x0, | 971 | 0xfefefe,0x5c3d8fa,0x7b1b4ff4,0xfc799fd1,0xff9bb7c6,0xff96b4c7,0xe63666e0,0xec4b7bdd,0xff9bb7c6,0xff9bb7c6,0xf46792d2,0x510732e3,0x0,0x0, |
1729 | 0x0,0xfefefe,0xaafbefa,0xab1f55e8,0xff81a7c2,0xff90b0be,0xff82a7c1,0xda1648e4,0xfd5c8ad0,0xff90afbe,0xff8eaebf,0xe23f70d7,0x230627d4,0x0, | 972 | 0x0,0xfefefe,0xaafbefa,0xab1f55e8,0xff81a7c2,0xff90b0be,0xff82a7c1,0xda1648e4,0xfd5c8ad0,0xff90afbe,0xff8eaebf,0xe23f70d7,0x230627d4,0x0, |
1730 | 0x0,0x0,0x1fefefe,0x213458f6,0xd23663dc,0xff7095c5,0xff7095c4,0xfa4d79d1,0xc8143fe2,0xfc668dc8,0xff7095c4,0xff668ec8,0xa71a46de,0x4031060, | 973 | 0x0,0x0,0x1fefefe,0x213458f6,0xd23663dc,0xff7095c5,0xff7095c4,0xfa4d79d1,0xc8143fe2,0xfc668dc8,0xff7095c4,0xff668ec8,0xa71a46de,0x4031060, |
1731 | 0x0,0x0,0x0,0x1fbfbfb,0x220527de,0x60062bbe,0x640629af,0x630628b1,0x2e041fa8,0x53062bcb,0x640629b0,0x640629af,0x450524ab,0x3020616, | 974 | 0x0,0x0,0x0,0x1fbfbfb,0x220527de,0x60062bbe,0x640629af,0x630628b1,0x2e041fa8,0x53062bcb,0x640629b0,0x640629af,0x450524ab,0x3020616, |
1732 | 0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x0,0x0 | 975 | 0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x0,0x0 |
1733 | }; | 976 | }; |
1734 | 977 | ||
1735 | static const QRgb fastforward_data[] = { | 978 | static const QRgb fastforward_data[] = { |
1736 | 0x8e9f4fe,0x24aad2fe,0x289ac8fe,0x2386bbfe,0x117fb3fe,0x1bb9dafe,0x299ecbfe,0x2590c1fe,0x186ba6fe,0x15b96fe,0x0,0x0,0x0,0x0, | 979 | 0x8e9f4fe,0x24aad2fe,0x289ac8fe,0x2386bbfe,0x117fb3fe,0x1bb9dafe,0x299ecbfe,0x2590c1fe,0x186ba6fe,0x15b96fe,0x0,0x0,0x0,0x0, |
1737 | 0x3680bcfe,0xe091c5fe,0xe7a9d2fe,0xe49fccfe,0xb96aa7fc,0xb96aacfc,0xe7abd4fe,0xe5a3cefe,0xd886bbfe,0x473277f1,0x5080e,0x0,0x0,0x0, | 980 | 0x3680bcfe,0xe091c5fe,0xe7a9d2fe,0xe49fccfe,0xb96aa7fc,0xb96aacfc,0xe7abd4fe,0xe5a3cefe,0xd886bbfe,0x473277f1,0x5080e,0x0,0x0,0x0, |
1738 | 0x1691c1fd,0xbd6dabfc,0xffedf4fd,0xfffcfcfc,0xfde0edfc,0xdb4c8ef5,0xfac7dffc,0xfffcfcfc,0xfff7fafc,0xd781b0f7,0x1e1756dc,0x0,0x0,0x0, | 981 | 0x1691c1fd,0xbd6dabfc,0xffedf4fd,0xfffcfcfc,0xfde0edfc,0xdb4c8ef5,0xfac7dffc,0xfffcfcfc,0xfff7fafc,0xd781b0f7,0x1e1756dc,0x0,0x0,0x0, |
1739 | 0x1fefefe,0x254a87f3,0xdf7db0fa,0xffeff5f8,0xfff2f6f7,0xfdb2d0f8,0xda3c7ef3,0xffdfedf8,0xfff2f6f7,0xffe5eff8,0xb04b87f0,0x40c3ab5,0x0,0x0, | 982 | 0x1fefefe,0x254a87f3,0xdf7db0fa,0xffeff5f8,0xfff2f6f7,0xfdb2d0f8,0xda3c7ef3,0xffdfedf8,0xfff2f6f7,0xffe5eff8,0xb04b87f0,0x40c3ab5,0x0,0x0, |
1740 | 0x0,0x3fefefe,0x52286ff8,0xf1a0c4f4,0xffe6edf1,0xffe6edf1,0xee7caaf2,0xe35a92f4,0xffdfeaf1,0xffe6edf1,0xfcbbd5f2,0x7c2766ee,0x20a2fab,0x0, | 983 | 0x0,0x3fefefe,0x52286ff8,0xf1a0c4f4,0xffe6edf1,0xffe6edf1,0xee7caaf2,0xe35a92f4,0xffdfeaf1,0xffe6edf1,0xfcbbd5f2,0x7c2766ee,0x20a2fab,0x0, |
1741 | 0x0,0xfefefe,0x6f5f5f5,0x8d3475f6,0xffb8d1ec,0xffd7e4e9,0xffd0e0ea,0xdf427ded,0xf481abef,0xffd7e3e9,0xffd6e3e9,0xee84afed,0x3d124cde,0x0, | 984 | 0x0,0xfefefe,0x6f5f5f5,0x8d3475f6,0xffb8d1ec,0xffd7e4e9,0xffd0e0ea,0xdf427ded,0xf481abef,0xffd7e3e9,0xffd6e3e9,0xee84afed,0x3d124cde,0x0, |
1742 | 0x0,0x0,0xfefefe,0x2aa8c7fb,0xde5e9ff2,0xffc7d8e0,0xffc8d8df,0xfda4c2e3,0xd3266ded,0xffaecbe4,0xffc8d8df,0xffc2d5e0,0xbe467ce4,0x9072089, | 985 | 0x0,0x0,0xfefefe,0x2aa8c7fb,0xde5e9ff2,0xffc7d8e0,0xffc8d8df,0xfda4c2e3,0xd3266ded,0xffaecbe4,0xffc8d8df,0xffc2d5e0,0xbe467ce4,0x9072089, |
1743 | 0x0,0x0,0x7fefefe,0x7785bdfb,0xff8bb7e2,0xffb8cdd7,0xffb8cdd7,0xf35988df,0xee5288de,0xffb4cbd7,0xffb8cdd7,0xfd8eb1dd,0x821940ac,0x4000000, | 986 | 0x0,0x0,0x7fefefe,0x7785bdfb,0xff8bb7e2,0xffb8cdd7,0xffb8cdd7,0xf35988df,0xee5288de,0xffb4cbd7,0xffb8cdd7,0xfd8eb1dd,0x821940ac,0x4000000, |
1744 | 0x0,0x3fefefe,0x489bcafe,0xed6ba7e6,0xffa8c2cd,0xffa8c2cd,0xff749fda,0xde2a5fd1,0xff98bad2,0xffa8c2cd,0xff99b9d1,0xb92856c6,0x18030c3b,0x0, | 987 | 0x0,0x3fefefe,0x489bcafe,0xed6ba7e6,0xffa8c2cd,0xffa8c2cd,0xff749fda,0xde2a5fd1,0xff98bad2,0xffa8c2cd,0xff99b9d1,0xb92856c6,0x18030c3b,0x0, |
1745 | 0xfefefe,0x28b9d9fe,0xc65da1ed,0xfe94b4c9,0xff9bb7c6,0xff87a9cc,0xe21e50d8,0xfb79a4d0,0xff9bb7c6,0xff9bb7c6,0xe7406cd2,0x36041870,0x1000000,0x0, | 988 | 0xfefefe,0x28b9d9fe,0xc65da1ed,0xfe94b4c9,0xff9bb7c6,0xff87a9cc,0xe21e50d8,0xfb79a4d0,0xff9bb7c6,0xff9bb7c6,0xe7406cd2,0x36041870,0x1000000,0x0, |
1746 | 0xfeaf2fe,0x9a5b9ff4,0xfe7aa6c9,0xff90afbe,0xff88abc0,0xea2b5bd2,0xf55083d1,0xff90afbe,0xff90afbe,0xfc5383d1,0x5a08207d,0x3000000,0x0,0x0, | 989 | 0xfeaf2fe,0x9a5b9ff4,0xfe7aa6c9,0xff90afbe,0xff88abc0,0xea2b5bd2,0xf55083d1,0xff90afbe,0xff90afbe,0xfc5383d1,0x5a08207d,0x3000000,0x0,0x0, |
1747 | 0x384884fb,0xf64279dc,0xff7095c4,0xff7095c5,0xeb4670c7,0xde1a45d3,0xff6a91c7,0xff7095c4,0xfb628ac7,0x941335ad,0xa01051b,0x0,0x0,0x0, | 990 | 0x384884fb,0xf64279dc,0xff7095c4,0xff7095c5,0xeb4670c7,0xde1a45d3,0xff6a91c7,0xff7095c4,0xfb628ac7,0x941335ad,0xa01051b,0x0,0x0,0x0, |
1748 | 0x112e5ff8,0x58072ed7,0x630629b1,0x640629af,0x42051d91,0x44062ad1,0x61062ab9,0x640629af,0x590624a6,0x14020a44,0x0,0x0,0x0,0x0, | 991 | 0x112e5ff8,0x58072ed7,0x630629b1,0x640629af,0x42051d91,0x44062ad1,0x61062ab9,0x640629af,0x590624a6,0x14020a44,0x0,0x0,0x0,0x0, |
1749 | 0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x1000000,0x0,0x0,0x0,0x0,0x0 | 992 | 0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x1000000,0x0,0x0,0x0,0x0,0x0 |
1750 | }; | 993 | }; |
1751 | 994 | ||
1752 | static const QRgb fileopen_data[] = { | 995 | static const QRgb fileopen_data[] = { |
1753 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bc4cce8,0x49c1c9e7,0x0,0x0,0x0,0x0,0x0, | 996 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bc4cce8,0x49c1c9e7,0x0,0x0,0x0,0x0,0x0, |
1754 | 0x0,0x0,0x0,0x0,0x0,0x0,0x36c8cfe7,0xeee9eaf3,0xdedcdfee,0xc5e6e9b,0x0,0x0,0x0,0x0, | 997 | 0x0,0x0,0x0,0x0,0x0,0x0,0x36c8cfe7,0xeee9eaf3,0xdedcdfee,0xc5e6e9b,0x0,0x0,0x0,0x0, |
1755 | 0x0,0x0,0x0,0x0,0x0,0x36d1d6e8,0xededeef5,0xffececf4,0xffeaeaf3,0xae879ed4,0x3000000,0x0,0x0,0x0, | 998 | 0x0,0x0,0x0,0x0,0x0,0x36d1d6e8,0xededeef5,0xffececf4,0xffeaeaf3,0xae879ed4,0x3000000,0x0,0x0,0x0, |
1756 | 0x23fabff,0x284da4f0,0x7d8fc1f2,0xcfa2caf6,0x7e90b7e7,0xecf1f2f7,0xfff2f2f8,0xffececf4,0xffe6e6f0,0xf6cfd4ea,0x6a4b70be,0x9b5880d6,0x3f0836a7,0x0, | 999 | 0x23fabff,0x284da4f0,0x7d8fc1f2,0xcfa2caf6,0x7e90b7e7,0xecf1f2f7,0xfff2f2f8,0xffececf4,0xffe6e6f0,0xf6cfd4ea,0x6a4b70be,0x9b5880d6,0x3f0836a7,0x0, |
1757 | 0x4a62b1f4,0xfed1e6fc,0xffcfe4ff,0xffc3daf8,0xffeff2f7,0xfff8f8fb,0xfff3f2f7,0xffc2d1eb,0xff9fbce8,0xff6fa2ea,0xdc5197f1,0xc40045c7,0x37001b53,0x0, | 1000 | 0x4a62b1f4,0xfed1e6fc,0xffcfe4ff,0xffc3daf8,0xffeff2f7,0xfff8f8fb,0xfff3f2f7,0xffc2d1eb,0xff9fbce8,0xff6fa2ea,0xdc5197f1,0xc40045c7,0x37001b53,0x0, |
1758 | 0x13329cf5,0xf5c3dffb,0xffcae1ff,0xffe0e6ee,0xfffefefe,0xfff8f8fb,0xffc1d5ee,0xff9bc6f7,0xff65a7f8,0xff5a9ff7,0xf53e7de3,0xd8002db1,0x21000c24,0x0, | 1001 | 0x13329cf5,0xf5c3dffb,0xffcae1ff,0xffe0e6ee,0xfffefefe,0xfff8f8fb,0xffc1d5ee,0xff9bc6f7,0xff65a7f8,0xff5a9ff7,0xf53e7de3,0xd8002db1,0x21000c24,0x0, |
1759 | 0x0,0xbbabd1f7,0xffc4deff,0xffbacdea,0xffcee3f6,0xffb2d4f3,0xff9fcbf7,0xff75b3fa,0xff589cf6,0xff3e78e2,0xf70c39be,0xbe002cae,0x19000104,0x0, | 1002 | 0x0,0xbbabd1f7,0xffc4deff,0xffbacdea,0xffcee3f6,0xffb2d4f3,0xff9fcbf7,0xff75b3fa,0xff589cf6,0xff3e78e2,0xf70c39be,0xbe002cae,0x19000104,0x0, |
1760 | 0x0,0x697cb3ec,0xffc1dcff,0xff9ec8f8,0xffc5e4f8,0xffaed9fd,0xff87befa,0xff5996f1,0xff336fe3,0xff2054cf,0xfe6279c5,0xb85e71b0,0x12000000,0x0, | 1003 | 0x0,0x697cb3ec,0xffc1dcff,0xff9ec8f8,0xffc5e4f8,0xffaed9fd,0xff87befa,0xff5996f1,0xff336fe3,0xff2054cf,0xfe6279c5,0xb85e71b0,0x12000000,0x0, |
1761 | 0x0,0x1d368be9,0xfeafd0fa,0xff91c2f8,0xffabd4f8,0xff98c9fa,0xff6fa8f4,0xff518beb,0xff7596db,0xffb2b6cf,0xffb4b4c6,0xa24c63a8,0xb000000,0x0, | 1004 | 0x0,0x1d368be9,0xfeafd0fa,0xff91c2f8,0xffabd4f8,0xff98c9fa,0xff6fa8f4,0xff518beb,0xff7596db,0xffb2b6cf,0xffb4b4c6,0xa24c63a8,0xb000000,0x0, |
1762 | 0x0,0x12684f0,0xc997bff1,0xff8bbef7,0xff94c9fe,0xff7eb6f6,0xff9dbdee,0xffcbd0e0,0xffcbcbd8,0xfa9ba4c4,0xa84a63a7,0x3f00154b,0x3000000,0x0, | 1005 | 0x0,0x12684f0,0xc997bff1,0xff8bbef7,0xff94c9fe,0xff7eb6f6,0xff9dbdee,0xffcbd0e0,0xffcbcbd8,0xfa9ba4c4,0xa84a63a7,0x3f00154b,0x3000000,0x0, |
1763 | 0x0,0x0,0x7c82aee7,0xff91c1f6,0xffbbdcfc,0xffe0e7f1,0xffe3e2e9,0xfcb9c1d7,0xb86178b6,0x4b092063,0x18000001,0x2000000,0x0,0x0, | 1006 | 0x0,0x0,0x7c82aee7,0xff91c1f6,0xffbbdcfc,0xffe0e7f1,0xffe3e2e9,0xfcb9c1d7,0xb86178b6,0x4b092063,0x18000001,0x2000000,0x0,0x0, |
1764 | 0x0,0x0,0x303176d6,0xfd9fc5f0,0xfffafafb,0xffdae0ec,0xc97c99cc,0x5813357b,0x1b000000,0x4000000,0x0,0x0,0x0,0x0, | 1007 | 0x0,0x0,0x303176d6,0xfd9fc5f0,0xfffafafb,0xffdae0ec,0xc97c99cc,0x5813357b,0x1b000000,0x4000000,0x0,0x0,0x0,0x0, |
1765 | 0x0,0x0,0x1186ce6,0xda82afe6,0xd59cbce4,0x6626559a,0x20000409,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1008 | 0x0,0x0,0x1186ce6,0xda82afe6,0xd59cbce4,0x6626559a,0x20000409,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0, |
1766 | 0x0,0x0,0x0,0x30297bdc,0x25030f1e,0x9000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1009 | 0x0,0x0,0x0,0x30297bdc,0x25030f1e,0x9000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
1767 | }; | 1010 | }; |
1768 | 1011 | ||
1769 | static const QRgb find_data[] = { | 1012 | static const QRgb find_data[] = { |
1770 | 0x0,0x16acaec0,0x89a5b4ce,0xe8a0bfdf,0xffa8cae7,0xf6a6c7e3,0xafaabed6,0x31aeb2c4,0x1aaaabc,0x0,0x20fefeff,0x5fbfcbd7,0xb36a849d,0x799eb1c3, | 1013 | 0x0,0x16acaec0,0x89a5b4ce,0xe8a0bfdf,0xffa8cae7,0xf6a6c7e3,0xafaabed6,0x31aeb2c4,0x1aaaabc,0x0,0x20fefeff,0x5fbfcbd7,0xb36a849d,0x799eb1c3, |
1771 | 0x169fa1b6,0xc395afd1,0xff96ccf2,0xffa8e0fa,0xfface4fb,0xffa9e1fb,0xffabe2fa,0xeaaacadf,0x44a3a8bc,0x0,0x23f2f5f8,0xa49db3c5,0xa987a0b5,0x9f748ca3, | 1014 | 0x169fa1b6,0xc395afd1,0xff96ccf2,0xffa8e0fa,0xfface4fb,0xffa9e1fb,0xffabe2fa,0xeaaacadf,0x44a3a8bc,0x0,0x23f2f5f8,0xa49db3c5,0xa987a0b5,0x9f748ca3, |
1772 | 0x898e9ebd,0xff93caf1,0xffb5ecfc,0xffccfafe,0xffbff1fd,0xffb8eefc,0xffb4ebfc,0xffbdf1fc,0xcda8c1d2,0x129393a9,0x708aa4ba,0xff728fa8,0xff53728f,0x9c6b849c, | 1015 | 0x898e9ebd,0xff93caf1,0xffb5ecfc,0xffccfafe,0xffbff1fd,0xffb8eefc,0xffb4ebfc,0xffbdf1fc,0xcda8c1d2,0x129393a9,0x708aa4ba,0xff728fa8,0xff53728f,0x9c6b849c, |
1773 | 0xe888a7cc,0xffa4ddfa,0xffc8f8fe,0xffe8ffff,0xffcdf5fe,0xffccf9fe,0xffcafcfe,0xffccfdff,0xfebce2e9,0x418e93a9,0x55839cb2,0xfb4f6e8b,0xfb3c5a79,0x8076899f, | 1016 | 0xe888a7cc,0xffa4ddfa,0xffc8f8fe,0xffe8ffff,0xffcdf5fe,0xffccf9fe,0xffcafcfe,0xffccfdff,0xfebce2e9,0x418e93a9,0x55839cb2,0xfb4f6e8b,0xfb3c5a79,0x8076899f, |
1774 | 0xff8eb0d2,0xffa8e1fb,0xffb6ebfc,0xffc8f3fd,0xffcaf9fe,0xffdbffff,0xffdaffff,0xffdcffff,0xffceeef1,0x648f97ad,0xcfefeff,0x4556718c,0x4948637f,0x18fefeff, | 1017 | 0xff8eb0d2,0xffa8e1fb,0xffb6ebfc,0xffc8f3fd,0xffcaf9fe,0xffdbffff,0xffdaffff,0xffdcffff,0xffceeef1,0x648f97ad,0xcfefeff,0x4556718c,0x4948637f,0x18fefeff, |
1775 | 0xf4809fc4,0xffa7e0fa,0xffb1e8fb,0xffc4f5fe,0xffd7feff,0xffdeffff,0xffe7ffff,0xffebffff,0xffcce0e7,0x4b7b809a,0x0,0x0,0x0,0x0, | 1018 | 0xf4809fc4,0xffa7e0fa,0xffb1e8fb,0xffc4f5fe,0xffd7feff,0xffdeffff,0xffe7ffff,0xffebffff,0xffcce0e7,0x4b7b809a,0x0,0x0,0x0,0x0, |
1776 | 0xa56a7da1,0xffa4dbf6,0xfface5fb,0xffc0f5fd,0xffd4ffff,0xffe2ffff,0xfff0ffff,0xfff7feff,0xe1aeb7c6,0x1a5d5d7e,0x0,0x0,0x0,0x0, | 1019 | 0xa56a7da1,0xffa4dbf6,0xfface5fb,0xffc0f5fd,0xffd4ffff,0xffe2ffff,0xfff0ffff,0xfff7feff,0xe1aeb7c6,0x1a5d5d7e,0x0,0x0,0x0,0x0, |
1777 | 0x25585a7e,0xe07c99ba,0xffb1e6f7,0xffc1f5fe,0xffd2ffff,0xffe0ffff,0xffecfefe,0xffc6ced8,0xe8898aa2,0x2d968c92,0x9c7862c,0x0,0x0,0x0, | 1020 | 0x25585a7e,0xe07c99ba,0xffb1e6f7,0xffc1f5fe,0xffd2ffff,0xffe0ffff,0xffecfefe,0xffc6ced8,0xe8898aa2,0x2d968c92,0x9c7862c,0x0,0x0,0x0, |
1778 | 0x0,0x30595c7f,0xb4768caa,0xf6a0c4d5,0xffb7dce4,0xfbb9d4dd,0xd99eabbc,0xb08789a1,0xdda7a5b2,0xe1c89f68,0xabcf8a23,0xfb57729,0x0,0x0, | 1021 | 0x0,0x30595c7f,0xb4768caa,0xf6a0c4d5,0xffb7dce4,0xfbb9d4dd,0xd99eabbc,0xb08789a1,0xdda7a5b2,0xe1c89f68,0xabcf8a23,0xfb57729,0x0,0x0, |
1779 | 0xdfefeff,0x49859eb4,0x238595ab,0x2a565779,0x47666c8a,0x345e5f80,0x13555578,0x47c7c97,0x92b48549,0xffefd28d,0xfeecb34d,0xacc37f21,0xfa16728,0x0, | 1022 | 0xdfefeff,0x49859eb4,0x238595ab,0x2a565779,0x47666c8a,0x345e5f80,0x13555578,0x47c7c97,0x92b48549,0xffefd28d,0xfeecb34d,0xacc37f21,0xfa16728,0x0, |
1780 | 0x40fafbfd,0x8e8197ac,0x729caebf,0xb0617c97,0x0,0x0,0x0,0x0,0x25a26a2b,0xd4cca153,0xfff8e19e,0xfeeab24e,0xafb77622,0xf8f5825, | 1023 | 0x40fafbfd,0x8e8197ac,0x729caebf,0xb0617c97,0x0,0x0,0x0,0x0,0x25a26a2b,0xd4cca153,0xfff8e19e,0xfeeab24e,0xafb77622,0xf8f5825, |
1781 | 0x9ca4b9ca,0xff7592ab,0xa57a93aa,0x7296a8b9,0x1c90a4b7,0x0,0x0,0x0,0x0,0x22865327,0xd4c29851,0xfff8df9b,0xffe9b351,0xb3a26825, | 1024 | 0x9ca4b9ca,0xff7592ab,0xa57a93aa,0x7296a8b9,0x1c90a4b7,0x0,0x0,0x0,0x0,0x22865327,0xd4c29851,0xfff8df9b,0xffe9b351,0xb3a26825, |
1782 | 0xff7592aa,0xff51708d,0xff405e7d,0x8e879db1,0x49516d88,0x0,0x0,0x0,0x0,0x0,0x257e4d29,0xd5bb9353,0xffe2c586,0xfd977964, | 1025 | 0xff7592aa,0xff51708d,0xff405e7d,0x8e879db1,0x49516d88,0x0,0x0,0x0,0x0,0x0,0x257e4d29,0xd5bb9353,0xffe2c586,0xfd977964, |
1783 | 0x917d94aa,0xff3d5c7a,0x9c5d758e,0x41f8f9fb,0x18fefeff,0x0,0x0,0x0,0x0,0x0,0x744426,0x267c4c29,0x8a87644d,0x6d726e86 | 1026 | 0x917d94aa,0xff3d5c7a,0x9c5d758e,0x41f8f9fb,0x18fefeff,0x0,0x0,0x0,0x0,0x0,0x744426,0x267c4c29,0x8a87644d,0x6d726e86 |
1784 | }; | 1027 | }; |
1785 | 1028 | ||
1786 | static const QRgb finish_data[] = { | 1029 | static const QRgb finish_data[] = { |
1787 | 0x8e9f4fe,0x24aad2fe,0x289ac8fe,0x2386bbfe,0x117fb3fe,0x1bb9dafe,0x299ecbfe,0x2590c1fe,0x186ba6fe,0x15b96fe,0x0,0x0,0x0,0x0, | 1030 | 0x8e9f4fe,0x24aad2fe,0x289ac8fe,0x2386bbfe,0x117fb3fe,0x1bb9dafe,0x299ecbfe,0x2590c1fe,0x186ba6fe,0x15b96fe,0x0,0x0,0x0,0x0, |
1788 | 0x3680bcfe,0xe091c5fe,0xe7a9d2fe,0xe49fccfe,0xb96aa7fc,0xb96aacfc,0xe7abd4fe,0xe5a3cefe,0xd886bbfe,0x473277f1,0x5080e,0x0,0x0,0x0, | 1031 | 0x3680bcfe,0xe091c5fe,0xe7a9d2fe,0xe49fccfe,0xb96aa7fc,0xb96aacfc,0xe7abd4fe,0xe5a3cefe,0xd886bbfe,0x473277f1,0x5080e,0x0,0x0,0x0, |
1789 | 0x1691c1fd,0xbd6dabfc,0xffedf4fd,0xfffcfcfc,0xfde0edfc,0xdb4c8ef5,0xfac7dffc,0xfffcfcfc,0xfff7fafc,0xd781b0f7,0x1e1756dc,0x0,0x0,0x0, | 1032 | 0x1691c1fd,0xbd6dabfc,0xffedf4fd,0xfffcfcfc,0xfde0edfc,0xdb4c8ef5,0xfac7dffc,0xfffcfcfc,0xfff7fafc,0xd781b0f7,0x1e1756dc,0x0,0x0,0x0, |
1790 | 0x1fefefe,0x254a87f3,0xdf7db0fa,0xffeff5f8,0xfff2f6f7,0xfdb2d0f8,0xda3c7ef3,0xffdfedf8,0xfff2f6f7,0xffe5eff8,0xb04b87f0,0x40c3ab5,0x0,0x0, | 1033 | 0x1fefefe,0x254a87f3,0xdf7db0fa,0xffeff5f8,0xfff2f6f7,0xfdb2d0f8,0xda3c7ef3,0xffdfedf8,0xfff2f6f7,0xffe5eff8,0xb04b87f0,0x40c3ab5,0x0,0x0, |
1791 | 0x0,0x3fefefe,0x52286ff8,0xf1a0c4f4,0xffe6edf1,0xffe6edf1,0xee7caaf2,0xe35a92f4,0xffdfeaf1,0xffe6edf1,0xfcbbd5f2,0x7c2766ee,0x20a2fab,0x0, | 1034 | 0x0,0x3fefefe,0x52286ff8,0xf1a0c4f4,0xffe6edf1,0xffe6edf1,0xee7caaf2,0xe35a92f4,0xffdfeaf1,0xffe6edf1,0xfcbbd5f2,0x7c2766ee,0x20a2fab,0x0, |
1792 | 0x0,0xfefefe,0x6f5f5f5,0x8d3475f6,0xffb8d1ec,0xffd7e4e9,0xffd0e0ea,0xdf427ded,0xf481abef,0xffd7e3e9,0xffd6e3e9,0xee84afed,0x3d124cde,0x0, | 1035 | 0x0,0xfefefe,0x6f5f5f5,0x8d3475f6,0xffb8d1ec,0xffd7e4e9,0xffd0e0ea,0xdf427ded,0xf481abef,0xffd7e3e9,0xffd6e3e9,0xee84afed,0x3d124cde,0x0, |
1793 | 0x0,0x0,0xfefefe,0x2aa8c7fb,0xde5e9ff2,0xffc7d8e0,0xffc8d8df,0xfda4c2e3,0xd3266ded,0xffaecbe4,0xffc8d8df,0xffc2d5e0,0xbe467ce4,0x9072089, | 1036 | 0x0,0x0,0xfefefe,0x2aa8c7fb,0xde5e9ff2,0xffc7d8e0,0xffc8d8df,0xfda4c2e3,0xd3266ded,0xffaecbe4,0xffc8d8df,0xffc2d5e0,0xbe467ce4,0x9072089, |
1794 | 0x0,0x0,0x7fefefe,0x7785bdfb,0xff8bb7e2,0xffb8cdd7,0xffb8cdd7,0xf35988df,0xee5288de,0xffb4cbd7,0xffb8cdd7,0xfd8eb1dd,0x821940ac,0x4000000, | 1037 | 0x0,0x0,0x7fefefe,0x7785bdfb,0xff8bb7e2,0xffb8cdd7,0xffb8cdd7,0xf35988df,0xee5288de,0xffb4cbd7,0xffb8cdd7,0xfd8eb1dd,0x821940ac,0x4000000, |
1795 | 0x0,0x3fefefe,0x489bcafe,0xed6ba7e6,0xffa8c2cd,0xffa8c2cd,0xff749fda,0xde2a5fd1,0xff98bad2,0xffa8c2cd,0xff99b9d1,0xb92856c6,0x18030c3b,0x0, | 1038 | 0x0,0x3fefefe,0x489bcafe,0xed6ba7e6,0xffa8c2cd,0xffa8c2cd,0xff749fda,0xde2a5fd1,0xff98bad2,0xffa8c2cd,0xff99b9d1,0xb92856c6,0x18030c3b,0x0, |
1796 | 0xfefefe,0x28b9d9fe,0xc65da1ed,0xfe94b4c9,0xff9bb7c6,0xff87a9cc,0xe21e50d8,0xfb79a4d0,0xff9bb7c6,0xff9bb7c6,0xe7406cd2,0x36041870,0x1000000,0x0, | 1039 | 0xfefefe,0x28b9d9fe,0xc65da1ed,0xfe94b4c9,0xff9bb7c6,0xff87a9cc,0xe21e50d8,0xfb79a4d0,0xff9bb7c6,0xff9bb7c6,0xe7406cd2,0x36041870,0x1000000,0x0, |
1797 | 0xfeaf2fe,0x9a5b9ff4,0xfe7aa6c9,0xff90afbe,0xff88abc0,0xea2b5bd2,0xf55083d1,0xff90afbe,0xff90afbe,0xfc5383d1,0x5a08207d,0x3000000,0x0,0x0, | 1040 | 0xfeaf2fe,0x9a5b9ff4,0xfe7aa6c9,0xff90afbe,0xff88abc0,0xea2b5bd2,0xf55083d1,0xff90afbe,0xff90afbe,0xfc5383d1,0x5a08207d,0x3000000,0x0,0x0, |
1798 | 0x384884fb,0xf64279dc,0xff7095c4,0xff7095c5,0xeb4670c7,0xde1a45d3,0xff6a91c7,0xff7095c4,0xfb628ac7,0x941335ad,0xa01051b,0x0,0x0,0x0, | 1041 | 0x384884fb,0xf64279dc,0xff7095c4,0xff7095c5,0xeb4670c7,0xde1a45d3,0xff6a91c7,0xff7095c4,0xfb628ac7,0x941335ad,0xa01051b,0x0,0x0,0x0, |
1799 | 0x112e5ff8,0x58072ed7,0x630629b1,0x640629af,0x42051d91,0x44062ad1,0x61062ab9,0x640629af,0x590624a6,0x14020a44,0x0,0x0,0x0,0x0, | 1042 | 0x112e5ff8,0x58072ed7,0x630629b1,0x640629af,0x42051d91,0x44062ad1,0x61062ab9,0x640629af,0x590624a6,0x14020a44,0x0,0x0,0x0,0x0, |
1800 | 0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x1000000,0x0,0x0,0x0,0x0,0x0 | 1043 | 0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x1000000,0x0,0x0,0x0,0x0,0x0 |
1801 | }; | 1044 | }; |
1802 | 1045 | ||
1803 | static const QRgb folder_data[] = { | ||
1804 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x121760ca,0xa1459c2,0x0,0x0,0x0, | ||
1805 | 0x0,0x0,0x0,0x0,0xbadb7db,0x11abb7de,0x0,0x262376d8,0x904f8cda,0xd15e95df,0x791656ba,0x0,0x0,0x0, | ||
1806 | 0x0,0x0,0x0,0xea4acc6,0xc4c3c8db,0xf3d6dae9,0xa3adbadc,0xe66ba4e3,0xb65b9fe8,0xac0d6fe2,0xc41055be,0xb052564,0x0,0x0, | ||
1807 | 0x0,0x0,0xcadb3c5,0xbfc6cad9,0xfff1f1f6,0xffe7e9f3,0xffa4c3e9,0xfe8cbaee,0xee65a5f0,0xcd2578e2,0xcd1056b8,0x570539a1,0x0,0x0, | ||
1808 | 0x0,0xab6b9c5,0xbac9ccd7,0xffedf1f7,0xffa9ccee,0xff98c4ed,0xffb2d6f7,0xff91c3f7,0xff77b2f8,0xff5996e4,0xe72462b8,0xab02399f,0x2000c27,0x0, | ||
1809 | 0x9d4d7dc,0xb2d1d2d9,0xffcae1f5,0xffa7cff3,0xffddf2fa,0xffc7e7fa,0xffaad4f9,0xff8cc0f6,0xff6aa2e9,0xff3c78ca,0xd0084ba0,0xd2003c95,0x2e002a8e,0x0, | ||
1810 | 0xa6d7d7d9,0xfffbfbfb,0xffe8f2fb,0xffb8d9f5,0xffe0f5fb,0xffc3e5fa,0xffa5d0f8,0xff7bade9,0xff568dd5,0xff2c70c3,0xf81757aa,0xd2154b95,0x911f45a4,0x0, | ||
1811 | 0x4ebdbec1,0xc7d3d5da,0xfeececf0,0xffa2caf0,0xffdff4fc,0xffbfe2fa,0xff95c2f0,0xff6e9fdf,0xff3c7bc9,0xff3b7ac4,0xff7f9ec9,0xffb6b8cc,0xed6c7cb8,0x13002275, | ||
1812 | 0x0,0x9869b2f0,0xfdaecde6,0xff93b4d9,0xffbbdcf4,0xffb7dcf8,0xff88b5e8,0xff6093d3,0xff99b8de,0xffd1d4e1,0xffcbcbd8,0xffbfbfd0,0xff8b93ba,0x5d032d97, | ||
1813 | 0x0,0x4a439be9,0xf3a5d3f6,0xffc1e6fc,0xff8bbae8,0xff9bc4ec,0xffbdd3ee,0xffeff2f7,0xffe9e9ef,0xffdddde6,0xffbbbdd1,0xed5a6fb2,0x860e3292,0x21000d2a, | ||
1814 | 0x0,0x0,0x3d3d9aec,0xea9ecdf4,0xff89bceb,0xffebf2fa,0xffffffff,0xfffbfbfc,0xffebecf2,0xf68595c9,0x9b1e409e,0x30001547,0xa000000,0x0, | ||
1815 | 0x0,0x0,0x0,0x2c2c84dd,0xe381b2e6,0xffa2bee6,0xffffffff,0xfcafc0e5,0xaf3b5db2,0x3e001a5d,0xe000000,0x0,0x0,0x0, | ||
1816 | 0x0,0x0,0x0,0x0,0x221c68ca,0xd33f77cc,0xc2537cc6,0x4e052c77,0x12000103,0x0,0x0,0x0,0x0,0x0, | ||
1817 | 0x0,0x0,0x0,0x0,0x0,0xa0f4394,0x14010409,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1818 | }; | ||
1819 | |||
1820 | static const QRgb folder_open_data[] = { | 1046 | static const QRgb folder_open_data[] = { |
1821 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bc4cce8,0x49c1c9e7,0x0,0x0,0x0,0x0,0x0, | 1047 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3bc4cce8,0x49c1c9e7,0x0,0x0,0x0,0x0,0x0, |
1822 | 0x0,0x0,0x0,0x0,0x0,0x0,0x36c8cfe7,0xeee9eaf3,0xdedcdfee,0xc5e6e9b,0x0,0x0,0x0,0x0, | 1048 | 0x0,0x0,0x0,0x0,0x0,0x0,0x36c8cfe7,0xeee9eaf3,0xdedcdfee,0xc5e6e9b,0x0,0x0,0x0,0x0, |
1823 | 0x0,0x0,0x0,0x0,0x0,0x36d1d6e8,0xededeef5,0xffececf4,0xffeaeaf3,0xae879ed4,0x3000000,0x0,0x0,0x0, | 1049 | 0x0,0x0,0x0,0x0,0x0,0x36d1d6e8,0xededeef5,0xffececf4,0xffeaeaf3,0xae879ed4,0x3000000,0x0,0x0,0x0, |
1824 | 0x23fabff,0x284da4f0,0x7d8fc1f2,0xcfa2caf6,0x7e90b7e7,0xecf1f2f7,0xfff2f2f8,0xffececf4,0xffe6e6f0,0xf6cfd4ea,0x6a4b70be,0x9b5880d6,0x3f0836a7,0x0, | 1050 | 0x23fabff,0x284da4f0,0x7d8fc1f2,0xcfa2caf6,0x7e90b7e7,0xecf1f2f7,0xfff2f2f8,0xffececf4,0xffe6e6f0,0xf6cfd4ea,0x6a4b70be,0x9b5880d6,0x3f0836a7,0x0, |
1825 | 0x4a62b1f4,0xfed1e6fc,0xffcfe4ff,0xffc3daf8,0xffeff2f7,0xfff8f8fb,0xfff3f2f7,0xffc2d1eb,0xff9fbce8,0xff6fa2ea,0xdc5197f1,0xc40045c7,0x37001b53,0x0, | 1051 | 0x4a62b1f4,0xfed1e6fc,0xffcfe4ff,0xffc3daf8,0xffeff2f7,0xfff8f8fb,0xfff3f2f7,0xffc2d1eb,0xff9fbce8,0xff6fa2ea,0xdc5197f1,0xc40045c7,0x37001b53,0x0, |
1826 | 0x13329cf5,0xf5c3dffb,0xffcae1ff,0xffe0e6ee,0xfffefefe,0xfff8f8fb,0xffc1d5ee,0xff9bc6f7,0xff65a7f8,0xff5a9ff7,0xf53e7de3,0xd8002db1,0x21000c24,0x0, | 1052 | 0x13329cf5,0xf5c3dffb,0xffcae1ff,0xffe0e6ee,0xfffefefe,0xfff8f8fb,0xffc1d5ee,0xff9bc6f7,0xff65a7f8,0xff5a9ff7,0xf53e7de3,0xd8002db1,0x21000c24,0x0, |
1827 | 0x0,0xbbabd1f7,0xffc4deff,0xffbacdea,0xffcee3f6,0xffb2d4f3,0xff9fcbf7,0xff75b3fa,0xff589cf6,0xff3e78e2,0xf70c39be,0xbe002cae,0x19000104,0x0, | 1053 | 0x0,0xbbabd1f7,0xffc4deff,0xffbacdea,0xffcee3f6,0xffb2d4f3,0xff9fcbf7,0xff75b3fa,0xff589cf6,0xff3e78e2,0xf70c39be,0xbe002cae,0x19000104,0x0, |
1828 | 0x0,0x697cb3ec,0xffc1dcff,0xff9ec8f8,0xffc5e4f8,0xffaed9fd,0xff87befa,0xff5996f1,0xff336fe3,0xff2054cf,0xfe6279c5,0xb85e71b0,0x12000000,0x0, | 1054 | 0x0,0x697cb3ec,0xffc1dcff,0xff9ec8f8,0xffc5e4f8,0xffaed9fd,0xff87befa,0xff5996f1,0xff336fe3,0xff2054cf,0xfe6279c5,0xb85e71b0,0x12000000,0x0, |
1829 | 0x0,0x1d368be9,0xfeafd0fa,0xff91c2f8,0xffabd4f8,0xff98c9fa,0xff6fa8f4,0xff518beb,0xff7596db,0xffb2b6cf,0xffb4b4c6,0xa24c63a8,0xb000000,0x0, | 1055 | 0x0,0x1d368be9,0xfeafd0fa,0xff91c2f8,0xffabd4f8,0xff98c9fa,0xff6fa8f4,0xff518beb,0xff7596db,0xffb2b6cf,0xffb4b4c6,0xa24c63a8,0xb000000,0x0, |
1830 | 0x0,0x12684f0,0xc997bff1,0xff8bbef7,0xff94c9fe,0xff7eb6f6,0xff9dbdee,0xffcbd0e0,0xffcbcbd8,0xfa9ba4c4,0xa84a63a7,0x3f00154b,0x3000000,0x0, | 1056 | 0x0,0x12684f0,0xc997bff1,0xff8bbef7,0xff94c9fe,0xff7eb6f6,0xff9dbdee,0xffcbd0e0,0xffcbcbd8,0xfa9ba4c4,0xa84a63a7,0x3f00154b,0x3000000,0x0, |
1831 | 0x0,0x0,0x7c82aee7,0xff91c1f6,0xffbbdcfc,0xffe0e7f1,0xffe3e2e9,0xfcb9c1d7,0xb86178b6,0x4b092063,0x18000001,0x2000000,0x0,0x0, | 1057 | 0x0,0x0,0x7c82aee7,0xff91c1f6,0xffbbdcfc,0xffe0e7f1,0xffe3e2e9,0xfcb9c1d7,0xb86178b6,0x4b092063,0x18000001,0x2000000,0x0,0x0, |
1832 | 0x0,0x0,0x303176d6,0xfd9fc5f0,0xfffafafb,0xffdae0ec,0xc97c99cc,0x5813357b,0x1b000000,0x4000000,0x0,0x0,0x0,0x0, | 1058 | 0x0,0x0,0x303176d6,0xfd9fc5f0,0xfffafafb,0xffdae0ec,0xc97c99cc,0x5813357b,0x1b000000,0x4000000,0x0,0x0,0x0,0x0, |
1833 | 0x0,0x0,0x1186ce6,0xda82afe6,0xd59cbce4,0x6626559a,0x20000409,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1059 | 0x0,0x0,0x1186ce6,0xda82afe6,0xd59cbce4,0x6626559a,0x20000409,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0, |
1834 | 0x0,0x0,0x0,0x30297bdc,0x25030f1e,0x9000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1060 | 0x0,0x0,0x0,0x30297bdc,0x25030f1e,0x9000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
1835 | }; | 1061 | }; |
1836 | 1062 | ||
1063 | static const QRgb folder_data[] = { | ||
1064 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x121760ca,0xa1459c2,0x0,0x0,0x0, | ||
1065 | 0x0,0x0,0x0,0x0,0xbadb7db,0x11abb7de,0x0,0x262376d8,0x904f8cda,0xd15e95df,0x791656ba,0x0,0x0,0x0, | ||
1066 | 0x0,0x0,0x0,0xea4acc6,0xc4c3c8db,0xf3d6dae9,0xa3adbadc,0xe66ba4e3,0xb65b9fe8,0xac0d6fe2,0xc41055be,0xb052564,0x0,0x0, | ||
1067 | 0x0,0x0,0xcadb3c5,0xbfc6cad9,0xfff1f1f6,0xffe7e9f3,0xffa4c3e9,0xfe8cbaee,0xee65a5f0,0xcd2578e2,0xcd1056b8,0x570539a1,0x0,0x0, | ||
1068 | 0x0,0xab6b9c5,0xbac9ccd7,0xffedf1f7,0xffa9ccee,0xff98c4ed,0xffb2d6f7,0xff91c3f7,0xff77b2f8,0xff5996e4,0xe72462b8,0xab02399f,0x2000c27,0x0, | ||
1069 | 0x9d4d7dc,0xb2d1d2d9,0xffcae1f5,0xffa7cff3,0xffddf2fa,0xffc7e7fa,0xffaad4f9,0xff8cc0f6,0xff6aa2e9,0xff3c78ca,0xd0084ba0,0xd2003c95,0x2e002a8e,0x0, | ||
1070 | 0xa6d7d7d9,0xfffbfbfb,0xffe8f2fb,0xffb8d9f5,0xffe0f5fb,0xffc3e5fa,0xffa5d0f8,0xff7bade9,0xff568dd5,0xff2c70c3,0xf81757aa,0xd2154b95,0x911f45a4,0x0, | ||
1071 | 0x4ebdbec1,0xc7d3d5da,0xfeececf0,0xffa2caf0,0xffdff4fc,0xffbfe2fa,0xff95c2f0,0xff6e9fdf,0xff3c7bc9,0xff3b7ac4,0xff7f9ec9,0xffb6b8cc,0xed6c7cb8,0x13002275, | ||
1072 | 0x0,0x9869b2f0,0xfdaecde6,0xff93b4d9,0xffbbdcf4,0xffb7dcf8,0xff88b5e8,0xff6093d3,0xff99b8de,0xffd1d4e1,0xffcbcbd8,0xffbfbfd0,0xff8b93ba,0x5d032d97, | ||
1073 | 0x0,0x4a439be9,0xf3a5d3f6,0xffc1e6fc,0xff8bbae8,0xff9bc4ec,0xffbdd3ee,0xffeff2f7,0xffe9e9ef,0xffdddde6,0xffbbbdd1,0xed5a6fb2,0x860e3292,0x21000d2a, | ||
1074 | 0x0,0x0,0x3d3d9aec,0xea9ecdf4,0xff89bceb,0xffebf2fa,0xffffffff,0xfffbfbfc,0xffebecf2,0xf68595c9,0x9b1e409e,0x30001547,0xa000000,0x0, | ||
1075 | 0x0,0x0,0x0,0x2c2c84dd,0xe381b2e6,0xffa2bee6,0xffffffff,0xfcafc0e5,0xaf3b5db2,0x3e001a5d,0xe000000,0x0,0x0,0x0, | ||
1076 | 0x0,0x0,0x0,0x0,0x221c68ca,0xd33f77cc,0xc2537cc6,0x4e052c77,0x12000103,0x0,0x0,0x0,0x0,0x0, | ||
1077 | 0x0,0x0,0x0,0x0,0x0,0xa0f4394,0x14010409,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1078 | }; | ||
1079 | |||
1837 | static const QRgb font_data[] = { | 1080 | static const QRgb font_data[] = { |
1838 | 0x0,0x0,0x0,0x0,0x0,0x0,0x4d171717,0x510f0f0f,0xa000000,0x0,0x0,0x0,0x0,0x0, | 1081 | 0x0,0x0,0x0,0x0,0x0,0x0,0x4d171717,0x510f0f0f,0xa000000,0x0,0x0,0x0,0x0,0x0, |
1839 | 0x0,0x0,0x0,0x0,0x0,0x37000000,0xf5737373,0xffa0a0a1,0xc8464647,0x550c0c0c,0x4000000,0x0,0x0,0x0, | 1082 | 0x0,0x0,0x0,0x0,0x0,0x37000000,0xf5737373,0xffa0a0a1,0xc8464647,0x550c0c0c,0x4000000,0x0,0x0,0x0, |
1840 | 0x0,0x0,0x24000000,0x30000000,0x0,0x50000000,0xab1e1e1f,0xff717172,0xffcccccd,0xffa5a5a5,0xcb3e3e3e,0x4e000000,0x0,0x0, | 1083 | 0x0,0x0,0x24000000,0x30000000,0x0,0x50000000,0xab1e1e1f,0xff717172,0xffcccccd,0xffa5a5a5,0xcb3e3e3e,0x4e000000,0x0,0x0, |
1841 | 0x0,0x20000000,0xe0626262,0xf7818182,0xa9272727,0x31070707,0x4000000,0x96707073,0xff141414,0xff6e6e6f,0xffd1d1d2,0xfc858586,0x3c000000,0x0, | 1084 | 0x0,0x20000000,0xe0626262,0xf7818182,0xa9272727,0x31070707,0x4000000,0x96707073,0xff141414,0xff6e6e6f,0xffd1d1d2,0xfc858586,0x3c000000,0x0, |
1842 | 0x0,0x40000000,0xd8972c2c,0xfcc89798,0xffd0d0d1,0xff7f7f7f,0xab2e2e2f,0xa458585a,0xff000000,0xff2d2d2d,0xff565656,0xf6919191,0x34000000,0x0, | 1085 | 0x0,0x40000000,0xd8972c2c,0xfcc89798,0xffd0d0d1,0xff7f7f7f,0xab2e2e2f,0xa458585a,0xff000000,0xff2d2d2d,0xff565656,0xf6919191,0x34000000,0x0, |
1843 | 0x0,0x10000000,0xc000000,0x9bc8585b,0xffd72d2d,0xffca9394,0xffcfcfd0,0xff6d6d6d,0xff000000,0xff484848,0xfa656565,0x5e313131,0x0,0x0, | 1086 | 0x0,0x10000000,0xc000000,0x9bc8585b,0xffd72d2d,0xffca9394,0xffcfcfd0,0xff6d6d6d,0xff000000,0xff484848,0xfa656565,0x5e313131,0x0,0x0, |
1844 | 0x0,0x0,0x0,0x80ac8c90,0xffff0000,0xffd81e1e,0xff975858,0xffababab,0xff000000,0xff484848,0xef666666,0x0,0x0,0x0, | 1087 | 0x0,0x0,0x0,0x80ac8c90,0xffff0000,0xffd81e1e,0xff975858,0xffababab,0xff000000,0xff484848,0xef666666,0x0,0x0,0x0, |
1845 | 0x0,0x0,0x0,0x80ac8c90,0xffff0000,0xffd03c3c,0xff6c6c6c,0xff252525,0xff000000,0xff484848,0xef666666,0x0,0x0,0x0, | 1088 | 0x0,0x0,0x0,0x80ac8c90,0xffff0000,0xffd03c3c,0xff6c6c6c,0xff252525,0xff000000,0xff484848,0xef666666,0x0,0x0,0x0, |
1846 | 0x0,0x0,0x0,0x7fac8c90,0xffff0000,0xffd03c3c,0xff6c6c6c,0xff000000,0xff000000,0xff484848,0xef666666,0x0,0x0,0x0, | 1089 | 0x0,0x0,0x0,0x7fac8c90,0xffff0000,0xffd03c3c,0xff6c6c6c,0xff000000,0xff000000,0xff484848,0xef666666,0x0,0x0,0x0, |
1847 | 0x0,0x0,0x0,0x7fac8c90,0xffff0000,0xffd03c3c,0xff6c6c6c,0xd5000000,0xff000000,0xff484848,0xf58f8f8f,0x24000000,0x0,0x0, | 1090 | 0x0,0x0,0x0,0x7fac8c90,0xffff0000,0xffd03c3c,0xff6c6c6c,0xd5000000,0xff000000,0xff484848,0xf58f8f8f,0x24000000,0x0,0x0, |
1848 | 0x0,0x0,0x0,0x86b27c80,0xffff0000,0xffd03c3c,0xff6c6c6c,0x9000000,0x5d000000,0xda050505,0xfd8e8e8e,0x8a3a3a3a,0x0,0x0, | 1091 | 0x0,0x0,0x0,0x86b27c80,0xffff0000,0xffd03c3c,0xff6c6c6c,0x9000000,0x5d000000,0xda050505,0xfd8e8e8e,0x8a3a3a3a,0x0,0x0, |
1849 | 0x0,0x0,0x2ac00000,0xe1dd0000,0xfffb0000,0xffd03c3c,0xff818181,0x15c00000,0x0,0x0,0x54000000,0x0,0x0,0x0, | 1092 | 0x0,0x0,0x2ac00000,0xe1dd0000,0xfffb0000,0xffd03c3c,0xff818181,0x15c00000,0x0,0x0,0x54000000,0x0,0x0,0x0, |
1850 | 0x0,0x0,0x0,0x20c00000,0x85d30000,0xebdb1010,0xffdfa7a7,0xa0c03a3a,0x0,0x0,0x0,0x0,0x0,0x0, | 1093 | 0x0,0x0,0x0,0x20c00000,0x85d30000,0xebdb1010,0xffdfa7a7,0xa0c03a3a,0x0,0x0,0x0,0x0,0x0,0x0, |
1851 | 0x0,0x0,0x0,0x0,0x0,0x18c00000,0x81c71515,0xec00000,0x0,0x0,0x0,0x0,0x0,0x0 | 1094 | 0x0,0x0,0x0,0x0,0x0,0x18c00000,0x81c71515,0xec00000,0x0,0x0,0x0,0x0,0x0,0x0 |
1852 | }; | 1095 | }; |
1853 | 1096 | ||
1854 | static const QRgb forward_data[] = { | ||
1855 | 0x0,0x0,0x1fefefe,0x5fefefe,0x5fefefe,0x5fefefe,0x2fefefe,0xfefefe,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1856 | 0x0,0x0,0x1ca8d1fe,0x8f86c0fe,0x9a81bcfe,0x9776b5fe,0x8058a1fe,0x101b64f1,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1857 | 0x0,0x0,0x1d9bcbfe,0xe07eb8fd,0xffeaf4fc,0xffeaf4fc,0xffe0eefc,0xb25494f7,0x101453de,0x0,0x0,0x0,0x0,0x0, | ||
1858 | 0x0,0x0,0x3fefefe,0x37367cf3,0xe588b7f9,0xfff0f5f8,0xfff2f6f7,0xfed6e6f8,0xa84585f7,0xc1251e4,0x0,0x0,0x0,0x0, | ||
1859 | 0x0,0x0,0x0,0x2f2f2f2,0x432a6aeb,0xed94bcf4,0xffe4ecf1,0xffe6edf1,0xffb8d3f3,0x813875e9,0x30d3abf,0x0,0x0,0x0, | ||
1860 | 0x0,0x0,0x0,0xfefefe,0x67fa2f5,0x742969f7,0xf99bbeef,0xffd7e4e9,0xffd7e4e9,0xf69bbfeb,0x621e5cea,0x0,0x0,0x0, | ||
1861 | 0x0,0x0,0x0,0x0,0xfefefe,0xeb6c8f8,0x9c478af7,0xffafcde4,0xffc8d8df,0xffc7d8df,0xf179a5e8,0x350a3ade,0x0,0x0, | ||
1862 | 0x0,0x0,0x0,0x0,0x3fefefe,0x449ac9fe,0xe169a8ef,0xffb6ccd7,0xffb8cdd7,0xffb0c8d8,0xd33d6cd2,0x1f05114c,0x0,0x0, | ||
1863 | 0x0,0x0,0x0,0x1fefefe,0x2eb7dafe,0xcf60a3ef,0xff9dbdd1,0xffa8c2cd,0xffa2bfcf,0xdc4876c6,0x37061961,0x2000000,0x0,0x0, | ||
1864 | 0x0,0x0,0xfefefe,0x1fe2effe,0xb064a5f1,0xfc8bb0cd,0xff9bb7c6,0xff99b6c7,0xf34e7cd5,0x580a2482,0x4010204,0x0,0x0,0x0, | ||
1865 | 0x0,0x0,0xfeef6fe,0xa54c93f5,0xfd7aa5ca,0xff90b0be,0xff90afbe,0xf65781cd,0x6d09259c,0x6010411,0x0,0x0,0x0,0x0, | ||
1866 | 0x0,0x0,0x265188fe,0xe02b69de,0xf0477ac8,0xf04679c7,0xec4273c8,0x7606239e,0x8000000,0x0,0x0,0x0,0x0,0x0, | ||
1867 | 0x0,0x0,0x2bfdffe,0x230420d0,0x3203189f,0x3203179c,0x2d031480,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1868 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1869 | }; | ||
1870 | |||
1871 | static const QRgb forward_inactive_data[] = { | 1097 | static const QRgb forward_inactive_data[] = { |
1872 | 0x0,0x0,0x1f1f1f1,0x5f1f1f1,0x5f1f1f1,0x5f1f1f1,0x2f1f1f1,0xf1f1f1,0x0,0x0,0x0,0x0,0x0,0x0, | 1098 | 0x0,0x0,0x1f1f1f1,0x5f1f1f1,0x5f1f1f1,0x5f1f1f1,0x2f1f1f1,0xf1f1f1,0x0,0x0,0x0,0x0,0x0,0x0, |
1873 | 0x0,0x0,0x1c94aff1,0x8f83a3f1,0x9a80a0f1,0x977b9cf1,0x806c90f1,0x103f72d1,0x0,0x0,0x0,0x0,0x0,0x0, | 1099 | 0x0,0x0,0x1c94aff1,0x8f83a3f1,0x9a80a0f1,0x977b9cf1,0x806c90f1,0x103f72d1,0x0,0x0,0x0,0x0,0x0,0x0, |
1874 | 0x0,0x0,0x1d8daaf1,0xe07f9dec,0xffc7d5e8,0xffc7d5e8,0xffbccce8,0xb26989db,0x103769ba,0x0,0x0,0x0,0x0,0x0, | 1100 | 0x0,0x0,0x1d8daaf1,0xe07f9dec,0xffc7d5e8,0xffc7d5e8,0xffbccce8,0xb26989db,0x103769ba,0x0,0x0,0x0,0x0,0x0, |
1875 | 0x0,0x0,0x3f1f1f1,0x37567ed4,0xe5839ddf,0xffcfd7dd,0xffd2d9db,0xfeb3c2dd,0xa86082db,0xc3468c0,0x0,0x0,0x0,0x0, | 1101 | 0x0,0x0,0x3f1f1f1,0x37567ed4,0xe5839ddf,0xffcfd7dd,0xffd2d9db,0xfeb3c2dd,0xa86082db,0xc3468c0,0x0,0x0,0x0,0x0, |
1876 | 0x0,0x0,0x0,0x2d2d2d2,0x434d75c8,0xed89a0d5,0xffc0cad1,0xffc2cbd1,0xff9db1d4,0x81587bc6,0x32d59a2,0x0,0x0,0x0, | 1102 | 0x0,0x0,0x0,0x2d2d2d2,0x434d75c8,0xed89a0d5,0xffc0cad1,0xffc2cbd1,0xff9db1d4,0x81587bc6,0x32d59a2,0x0,0x0,0x0, |
1877 | 0x0,0x0,0x0,0xf1f1f1,0x67f91d7,0x744c75db,0xf98da1ce,0xffb4c0c6,0xffb4c0c6,0xf68da2c8,0x62426ec7,0x0,0x0,0x0, | 1103 | 0x0,0x0,0x0,0xf1f1f1,0x67f91d7,0x744c75db,0xf98da1ce,0xffb4c0c6,0xffb4c0c6,0xf68da2c8,0x62426ec7,0x0,0x0,0x0, |
1878 | 0x0,0x0,0x0,0x0,0xf1f1f1,0xe9ca8dd,0x9c6284db,0xff98acc0,0xffa8b5bb,0xffa7b5bb,0xf17c92c5,0x352859ba,0x0,0x0, | 1104 | 0x0,0x0,0x0,0x0,0xf1f1f1,0xe9ca8dd,0x9c6284db,0xff98acc0,0xffa8b5bb,0xffa7b5bb,0xf17c92c5,0x352859ba,0x0,0x0, |
1879 | 0x0,0x0,0x0,0x0,0x3f1f1f1,0x448ca9f1,0xe17594ce,0xff9cabb4,0xff9dacb4,0xff99a8b5,0xd35b76b0,0x1f1d3365,0x0,0x0, | 1105 | 0x0,0x0,0x0,0x0,0x3f1f1f1,0x448ca9f1,0xe17594ce,0xff9cabb4,0xff9dacb4,0xff99a8b5,0xd35b76b0,0x1f1d3365,0x0,0x0, |
1880 | 0x0,0x0,0x0,0x1f1f1f1,0x2e9db7f1,0xcf7091ce,0xff8ea1af,0xff94a4ac,0xff91a2ad,0xdc627ba7,0x37203d71,0x2000000,0x0,0x0, | 1106 | 0x0,0x0,0x0,0x1f1f1f1,0x2e9db7f1,0xcf7091ce,0xff8ea1af,0xff94a4ac,0xff91a2ad,0xdc627ba7,0x37203d71,0x2000000,0x0,0x0, |
1881 | 0x0,0x0,0xf1f1f1,0x1fbecef1,0xb07292d1,0xfc8599ac,0xff8d9da7,0xff8c9ca7,0xf3667eb2,0x58284881,0x40e131a,0x0,0x0,0x0, | 1107 | 0x0,0x0,0xf1f1f1,0x1fbecef1,0xb07292d1,0xfc8599ac,0xff8d9da7,0xff8c9ca7,0xf3667eb2,0x58284881,0x40e131a,0x0,0x0,0x0, |
1882 | 0x0,0x0,0xfccd9f1,0xa56589d7,0xfd7d92aa,0xff8799a1,0xff8798a1,0xf66b80ac,0x6d26488d,0x60e1a33,0x0,0x0,0x0,0x0, | 1108 | 0x0,0x0,0xfccd9f1,0xa56589d7,0xfd7d92aa,0xff8799a1,0xff8798a1,0xf66b80ac,0x6d26488d,0x60e1a33,0x0,0x0,0x0,0x0, |
1883 | 0x0,0x0,0x266883f1,0xe04e75ba,0xf0627da8,0xf0617ca7,0xec5e7aa8,0x7620478e,0x8000000,0x0,0x0,0x0,0x0,0x0, | 1109 | 0x0,0x0,0x266883f1,0xe04e75ba,0xf0627da8,0xf0617ca7,0xec5e7aa8,0x7620478e,0x8000000,0x0,0x0,0x0,0x0,0x0, |
1884 | 0x0,0x0,0x2a2bbf1,0x231a44ae,0x32173b8f,0x32173a8d,0x2d173780,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1110 | 0x0,0x0,0x2a2bbf1,0x231a44ae,0x32173b8f,0x32173a8d,0x2d173780,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0, |
1885 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1111 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
1886 | }; | 1112 | }; |
1887 | 1113 | ||
1114 | static const QRgb forward_data[] = { | ||
1115 | 0x0,0x0,0x1fefefe,0x5fefefe,0x5fefefe,0x5fefefe,0x2fefefe,0xfefefe,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1116 | 0x0,0x0,0x1ca8d1fe,0x8f86c0fe,0x9a81bcfe,0x9776b5fe,0x8058a1fe,0x101b64f1,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1117 | 0x0,0x0,0x1d9bcbfe,0xe07eb8fd,0xffeaf4fc,0xffeaf4fc,0xffe0eefc,0xb25494f7,0x101453de,0x0,0x0,0x0,0x0,0x0, | ||
1118 | 0x0,0x0,0x3fefefe,0x37367cf3,0xe588b7f9,0xfff0f5f8,0xfff2f6f7,0xfed6e6f8,0xa84585f7,0xc1251e4,0x0,0x0,0x0,0x0, | ||
1119 | 0x0,0x0,0x0,0x2f2f2f2,0x432a6aeb,0xed94bcf4,0xffe4ecf1,0xffe6edf1,0xffb8d3f3,0x813875e9,0x30d3abf,0x0,0x0,0x0, | ||
1120 | 0x0,0x0,0x0,0xfefefe,0x67fa2f5,0x742969f7,0xf99bbeef,0xffd7e4e9,0xffd7e4e9,0xf69bbfeb,0x621e5cea,0x0,0x0,0x0, | ||
1121 | 0x0,0x0,0x0,0x0,0xfefefe,0xeb6c8f8,0x9c478af7,0xffafcde4,0xffc8d8df,0xffc7d8df,0xf179a5e8,0x350a3ade,0x0,0x0, | ||
1122 | 0x0,0x0,0x0,0x0,0x3fefefe,0x449ac9fe,0xe169a8ef,0xffb6ccd7,0xffb8cdd7,0xffb0c8d8,0xd33d6cd2,0x1f05114c,0x0,0x0, | ||
1123 | 0x0,0x0,0x0,0x1fefefe,0x2eb7dafe,0xcf60a3ef,0xff9dbdd1,0xffa8c2cd,0xffa2bfcf,0xdc4876c6,0x37061961,0x2000000,0x0,0x0, | ||
1124 | 0x0,0x0,0xfefefe,0x1fe2effe,0xb064a5f1,0xfc8bb0cd,0xff9bb7c6,0xff99b6c7,0xf34e7cd5,0x580a2482,0x4010204,0x0,0x0,0x0, | ||
1125 | 0x0,0x0,0xfeef6fe,0xa54c93f5,0xfd7aa5ca,0xff90b0be,0xff90afbe,0xf65781cd,0x6d09259c,0x6010411,0x0,0x0,0x0,0x0, | ||
1126 | 0x0,0x0,0x265188fe,0xe02b69de,0xf0477ac8,0xf04679c7,0xec4273c8,0x7606239e,0x8000000,0x0,0x0,0x0,0x0,0x0, | ||
1127 | 0x0,0x0,0x2bfdffe,0x230420d0,0x3203189f,0x3203179c,0x2d031480,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1128 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1129 | }; | ||
1130 | |||
1888 | static const QRgb fullscreen_data[] = { | 1131 | static const QRgb fullscreen_data[] = { |
1889 | 0xe483addd,0xf18cb6e6,0xf181b1e6,0xf175abe6,0xf169a4e6,0xf15c9ee6,0xf1549ae6,0xf15297e6,0xf15298e6,0xf15298e6,0xf1559ae7,0xf14597e8,0xa315588d,0x17002741, | 1132 | 0xe483addd,0xf18cb6e6,0xf181b1e6,0xf175abe6,0xf169a4e6,0xf15c9ee6,0xf1549ae6,0xf15297e6,0xf15298e6,0xf15298e6,0xf1559ae7,0xf14597e8,0xa315588d,0x17002741, |
1890 | 0xf592b8e5,0xffafd5fc,0xff95c8fb,0xff77b8fa,0xff57a8fc,0xff389afd,0xff268efd,0xff2388fd,0xff2388fc,0xff2388fa,0xff238bfc,0xff1d8afb,0xc208518c,0x30001827, | 1133 | 0xf592b8e5,0xffafd5fc,0xff95c8fb,0xff77b8fa,0xff57a8fc,0xff389afd,0xff268efd,0xff2388fd,0xff2388fc,0xff2388fa,0xff238bfc,0xff1d8afb,0xc208518c,0x30001827, |
1891 | 0xf19fbfe5,0xffdbb8c9,0xffd191a6,0xffcba8bf,0xffc5d3ec,0xffbedcfa,0xffb7dafa,0xffb3d9f9,0xffb2c0e3,0xffb38db0,0xffb78cad,0xff8daada,0xc4255e8a,0x34001525, | 1134 | 0xf19fbfe5,0xffdbb8c9,0xffd191a6,0xffcba8bf,0xffc5d3ec,0xffbedcfa,0xffb7dafa,0xffb3d9f9,0xffb2c0e3,0xffb38db0,0xffb78cad,0xff8daada,0xc4255e8a,0x34001525, |
1892 | 0xf1a8c6e8,0xfff67678,0xffee1a1e,0xfff17579,0xfff2e6e7,0xfff0fbfe,0xffedf9fe,0xffeafbfd,0xffeaced2,0xfff1474c,0xfff8282b,0xffb48eaa,0xc42d6189,0x34001626, | 1135 | 0xf1a8c6e8,0xfff67678,0xffee1a1e,0xfff17579,0xfff2e6e7,0xfff0fbfe,0xffedf9fe,0xffeafbfd,0xffeaced2,0xfff1474c,0xfff8282b,0xffb48eaa,0xc42d6189,0x34001626, |
1893 | 0xf1a8c6e8,0xfff57e81,0xffee3a40,0xffee444b,0xffecafb3,0xffe8f3f8,0xffe5f7ff,0xffe2eff4,0xffe7848b,0xffec3238,0xffee474d,0xffae8fae,0xc42b5f88,0x34001626, | 1136 | 0xf1a8c6e8,0xfff57e81,0xffee3a40,0xffee444b,0xffecafb3,0xffe8f3f8,0xffe5f7ff,0xffe2eff4,0xffe7848b,0xffec3238,0xffee474d,0xffae8fae,0xc42b5f88,0x34001626, |
1894 | 0xf1a6c4e6,0xfff4d7da,0xffefbfc4,0xffec7981,0xffe9b2b7,0xffe5f3f9,0xffe1f5ff,0xffdeedf5,0xffe38d98,0xffe2828b,0xffddccd4,0xffa5c0e1,0xc42a5f88,0x34001525, | 1137 | 0xf1a6c4e6,0xfff4d7da,0xffefbfc4,0xffec7981,0xffe9b2b7,0xffe5f3f9,0xffe1f5ff,0xffdeedf5,0xffe38d98,0xffe2828b,0xffddccd4,0xffa5c0e1,0xc42a5f88,0x34001525, |
1895 | 0xf1a6c4e5,0xfff2fcfe,0xffebf9fc,0xffe8f0f3,0xffe5f3f8,0xffe1f4ff,0xffdef3ff,0xffdaf1fe,0xffd7ebf5,0xffd4eaf4,0xffd5f4fe,0xffa1d6f7,0xc42a6089,0x34001425, | 1138 | 0xf1a6c4e5,0xfff2fcfe,0xffebf9fc,0xffe8f0f3,0xffe5f3f8,0xffe1f4ff,0xffdef3ff,0xffdaf1fe,0xffd7ebf5,0xffd4eaf4,0xffd5f4fe,0xffa1d6f7,0xc42a6089,0x34001425, |
1896 | 0xf1a4c4e5,0xffeffcfe,0xffe8f8fc,0xffe5eff3,0xffe1f1f8,0xffdef3ff,0xffdaf1ff,0xffd6effe,0xffd3ebf5,0xffd0e9f4,0xffd1f2fe,0xff9ed5f6,0xc4296089,0x34001425, | 1139 | 0xf1a4c4e5,0xffeffcfe,0xffe8f8fc,0xffe5eff3,0xffe1f1f8,0xffdef3ff,0xffdaf1ff,0xffd6effe,0xffd3ebf5,0xffd0e9f4,0xffd1f2fe,0xff9ed5f6,0xc4296089,0x34001425, |
1897 | 0xf1a3c3e6,0xffedd6da,0xffe7bec4,0xffe87881,0xffe2b0b7,0xffdaf1f9,0xffd6f1ff,0xffd3eaf5,0xffde8b98,0xffdd818b,0xffd5c8d5,0xffa0bee1,0xc4295f88,0x34001525, | 1140 | 0xf1a3c3e6,0xffedd6da,0xffe7bec4,0xffe87881,0xffe2b0b7,0xffdaf1f9,0xffd6f1ff,0xffd3eaf5,0xffde8b98,0xffdd818b,0xffd5c8d5,0xffa0bee1,0xc4295f88,0x34001525, |
1898 | 0xf1a3c4e8,0xffee7c81,0xffec3940,0xffea424b,0xffe0adb3,0xffd7eff8,0xffd3f0ff,0xffd0e8f4,0xffdd818b,0xffea3138,0xffec454e,0xffa88cae,0xc4295e88,0x34001626, | 1141 | 0xf1a3c4e8,0xffee7c81,0xffec3940,0xffea424b,0xffe0adb3,0xffd7eff8,0xffd3f0ff,0xffd0e8f4,0xffdd818b,0xffea3138,0xffec454e,0xffa88cae,0xc4295e88,0x34001626, |
1899 | 0xf1a6c5e9,0xfff2757b,0xfff31c21,0xffea747b,0xffdde4e8,0xffd8f4ff,0xffd5f1ff,0xffd0f2fe,0xffd5c8d4,0xffec464e,0xfff7272d,0xffac8bac,0xc429608a,0x34001626, | 1142 | 0xf1a6c5e9,0xfff2757b,0xfff31c21,0xffea747b,0xffdde4e8,0xffd8f4ff,0xffd5f1ff,0xffd0f2fe,0xffd5c8d4,0xffec464e,0xfff7272d,0xffac8bac,0xc429608a,0x34001626, |
1900 | 0xfa80b7e7,0xffb2aac7,0xffb186a4,0xffad9ebd,0xffa7ccea,0xffa3d7f7,0xffa1d5f7,0xff9ed5f6,0xffa0bde1,0xffa88dae,0xffad8cac,0xff81aadb,0xc7205f8d,0x34001728, | 1143 | 0xfa80b7e7,0xffb2aac7,0xffb186a4,0xffad9ebd,0xffa7ccea,0xffa3d7f7,0xffa1d5f7,0xff9ed5f6,0xffa0bde1,0xffa88dae,0xffad8cac,0xff81aadb,0xc7205f8d,0x34001728, |
1901 | 0xa628618e,0xc12e628a,0xc42c6089,0xc42c5f88,0xc42b6088,0xc42a6089,0xc42a6089,0xc4296089,0xc4295f88,0xc4295e88,0xc42a608a,0xc421608d,0x9e083655,0x30000d16, | 1144 | 0xa628618e,0xc12e628a,0xc42c6089,0xc42c5f88,0xc42b6088,0xc42a6089,0xc42a6089,0xc4296089,0xc4295f88,0xc4295e88,0xc42a608a,0xc421608d,0x9e083655,0x30000d16, |
1902 | 0x14002a4a,0x30001728,0x34001626,0x34001626,0x34001525,0x34001425,0x34001425,0x34001425,0x34001525,0x34001626,0x34001626,0x34001727,0x30000d16,0x16000204 | 1145 | 0x14002a4a,0x30001728,0x34001626,0x34001626,0x34001525,0x34001425,0x34001425,0x34001425,0x34001525,0x34001626,0x34001626,0x34001727,0x30000d16,0x16000204 |
1903 | }; | 1146 | }; |
1904 | 1147 | ||
1148 | static const QRgb Games_data[] = { | ||
1149 | 0x0,0x0,0x0,0x186b7bdd,0xd77387d0,0x25101320,0x0,0x65060a2,0x3e4e5d9f,0x4d495794,0x3273052,0x0,0x0,0x0, | ||
1150 | 0x0,0x0,0x0,0x2e6778cf,0xdc7386c8,0x4c434f89,0x635a6ab2,0xd37989c5,0xfdaabbe0,0xfdacbbdc,0x93505c93,0x51d2348,0x0,0x0, | ||
1151 | 0x0,0x0,0x0,0x286472d0,0xfa7184d4,0xff7a8cce,0xffaec4ee,0xff96a5ff,0xffc0d4fd,0xffb7dfd9,0xffbac6de,0x80424c80,0x1050509,0x0, | ||
1152 | 0x0,0x6674d6,0x306472ce,0xc47485d6,0xffa6bdef,0xffcbe5ff,0xffcdd7ed,0xffb2b6f0,0xffb5dade,0xff79c382,0xfff0fbfd,0xfba3acc9,0x452e3668,0x0, | ||
1153 | 0x56876dd,0x7c6b7adc,0xf58399e1,0xff9ab1d2,0xffb9d3f2,0xffcbe5ff,0xffed9172,0xffe0c3b3,0xfff1cf6b,0xffebf6f9,0xfff4fcff,0xfff7fbfd,0xd1656d97,0x90f1228, | ||
1154 | 0x9a6e80e5,0xff8ca7df,0xff9a9ea4,0xff979797,0xff75797f,0xffcde5fd,0xffd6ebff,0xffddeefa,0xffe0eceb,0xffd9edff,0xfff5fdff,0xfffcffff,0xffc5c9db,0x5c2d3667, | ||
1155 | 0xbf738deb,0xff899fbc,0xff959595,0xff717171,0xff7d8083,0xffd0e7fe,0xffd2e8ff,0xffbcdbff,0xffa0c0f3,0xf66f84ba,0xfeacbadb,0xfff6fbff,0xffedf6ff,0xc0515e8f, | ||
1156 | 0xa86c7fe0,0xff9fc1ed,0xff959ea9,0xff98a1ab,0xffbdd5ef,0xffabd0ff,0xff96bef9,0xfa738fcc,0xb0404d80,0x3d191e3a,0x81384378,0xfa7f93c3,0xff9db5e1,0xb93e497a, | ||
1157 | 0x7c6574d3,0xff9ec4fe,0xffbcdbff,0xffc4dfff,0xff92baf8,0xf96c88cf,0xbb475690,0x50242b4c,0xb000000,0x0,0x1000000,0x45272e5c,0x76272e5c,0x280f1225, | ||
1158 | 0x4a616fc8,0xff8eaff4,0xffbddcff,0xffc6e0ff,0xf77992d4,0x5122294a,0xd020205,0x1000000,0x0,0x0,0x0,0x0,0x1000000,0x0, | ||
1159 | 0x125767b0,0xfb7997e6,0xffbfdcff,0xffc5e0ff,0xf06e89cb,0x1705060c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1160 | 0x14d5d9b,0xc56980d3,0xffb4d5ff,0xffb3d5ff,0xe05f77bc,0xf000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1161 | 0x0,0x675969b7,0xff7ca1ed,0xff7ba4ee,0xba4c5c99,0x7000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1162 | 0x0,0x6303c6d,0x72495694,0x813e4a7f,0x2715192e,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1163 | }; | ||
1164 | |||
1165 | static const QRgb Go_black_highlight_data[] = { | ||
1166 | 0x28999b9c,0x2d949697,0x32959798,0x43868788,0x776f6f70,0x9a626263,0x93606060,0x60646565,0x31818384,0x22969899,0x1e939596,0x1b919394,0x2e9a9b9c,0x369c9d9f, | ||
1167 | 0x6b7c7d7e,0xbc737474,0xe2696a6a,0xed656565,0xed616162,0xe35a5a5a,0xb24b4c4c,0x51555555,0x25818384,0x1c919394,0x34949697,0x6a848586,0xce7d7e7e,0xf97b7c7d, | ||
1168 | 0xff767777,0xff767777,0xff727373,0xff5e5e5f,0xfa494a4a,0xcd393939,0x5b414243,0x237d7e7f,0x409c9e9f,0xb97f8080,0xf9838484,0xffaaabac,0xffa6a7a8,0xff9b9c9c, | ||
1169 | 0xff717272,0xff5e5e5e,0xff505151,0xfc3f3f3f,0xb62e2f2f,0x46464748,0x68848585,0xde828283,0xffa0a1a2,0xffe5e6e6,0xffffffff,0xffa6a8a8,0xff7b7c7c,0xff666666, | ||
1170 | 0xff545555,0xff434343,0xeb2d2d2e,0x7a2d2d2e,0x82777878,0xea757676,0xff919292,0xffbdbebe,0xffe6e6e7,0xffa2a3a4,0xff7f8080,0xff646565,0xff515152,0xff404040, | ||
1171 | 0xfa2d2d2d,0xa3232324,0x766f7071,0xea6e6f6f,0xff787a7a,0xff7e8080,0xff949595,0xff757676,0xff646464,0xff575858,0xff4d4d4e,0xff404040,0xfc2d2d2d,0xb2202020, | ||
1172 | 0x4a7c7e7e,0xda59595a,0xfe565757,0xff6c6d6d,0xff787878,0xff626262,0xff525354,0xff484849,0xff3c3c3c,0xff373838,0xfa242424,0xa91e1e1e,0x2e8d8f90,0x9b464747, | ||
1173 | 0xf7484949,0xff5a5a5b,0xff636364,0xff515152,0xff454545,0xff3c3c3c,0xff373838,0xff2a2a2a,0xee191919,0x871e1f1f,0x26909293,0x4b585859,0xc0393939,0xfa414141, | ||
1174 | 0xff4e4e4f,0xff434343,0xff3b3c3c,0xff333334,0xff2a2b2b,0xf81b1b1c,0xc0171717,0x572b2b2c,0x218e9091,0x28818384,0x5d444445,0xb52d2d2d,0xeb2e2f2f,0xfa2d2d2d, | ||
1175 | 0xfd272728,0xfb1f2020,0xf1181818,0xc4171717,0x6f232424,0x2e4b4c4d,0x1e8e9091,0x1f929495,0x28787a7b,0x4b434445,0x842c2c2c,0xaf232323,0xc01c1d1d,0xb71a1a1b, | ||
1176 | 0x931c1c1c,0x5c282929,0x2f4a4b4c,0x1b7c7e7e | ||
1177 | }; | ||
1178 | |||
1179 | static const QRgb Go_black_data[] = { | ||
1180 | 0x0,0x0,0x0,0x184a4a4a,0x664a4a4a,0x89454545,0x763c3c3c,0x302d2d2d,0x2000000,0x0,0x0,0x0,0x0,0x0, | ||
1181 | 0x6d505050,0xf5535353,0xff525252,0xff4d4d4d,0xff454545,0xfd393939,0xb3272727,0x18080808,0x1000000,0x0,0x0,0x64505050,0xfe575757,0xff595959, | ||
1182 | 0xff585858,0xff4d4d4d,0xff464646,0xff3d3d3d,0xff313131,0xce1a1a1a,0x1d000000,0x1000000,0xb474747,0xec525252,0xff575757,0xff989898,0xffa2a2a2,0xff4f4f4f, | ||
1183 | 0xff434343,0xff3b3b3b,0xff313131,0xff212121,0x98090909,0x12000000,0x48474747,0xff515151,0xff545454,0xff888888,0xff787878,0xff474747,0xff3f3f3f,0xff373737, | ||
1184 | 0xff2d2d2d,0xff212121,0xe80f0f0f,0x3f000000,0x64424242,0xff4b4b4b,0xff4c4c4c,0xff4c4c4c,0xff474747,0xff404040,0xff3a3a3a,0xff323232,0xff282828,0xff1e1e1e, | ||
1185 | 0xf8111111,0x6e000000,0x4b363636,0xff434343,0xff444444,0xff424242,0xff3f3f3f,0xff3a3a3a,0xff333333,0xff2b2b2b,0xff222222,0xff1b1b1b,0xfa0e0e0e,0x82000000, | ||
1186 | 0x101b1b1b,0xf1343434,0xff3b3b3b,0xff3a3a3a,0xff363636,0xff313131,0xff2b2b2b,0xff232323,0xff1c1c1c,0xff1a1a1a,0xf3050505,0x75000000,0x2000000,0x861d1d1d, | ||
1187 | 0xff2d2d2d,0xff2f2f2f,0xff2c2c2c,0xff282828,0xff212121,0xff1c1c1c,0xff1b1b1b,0xfe0f0f0f,0xd8000000,0x4a000000,0x0,0x15000000,0xb4101010,0xfe1e1e1e, | ||
1188 | 0xff1f1f1f,0xff1d1d1d,0xff1b1b1b,0xff1a1a1a,0xfe0e0e0e,0xed000000,0x8f000000,0x18000000,0x0,0x2000000,0x28000000,0x97020202,0xe90a0a0a,0xf90d0d0d, | ||
1189 | 0xfb0a0a0a,0xf6030303,0xdf000000,0x95000000,0x2c000000,0x3000000,0x0,0x0,0x2000000,0x1b000000,0x55000000,0x89000000,0x9c000000,0x8b000000, | ||
1190 | 0x58000000,0x1d000000,0x3000000,0x0 | ||
1191 | }; | ||
1192 | |||
1905 | static const QRgb go_data[] = { | 1193 | static const QRgb go_data[] = { |
1906 | 0xffdae3c0,0xffcfdeb7,0xffb2d0a0,0xffa8ca98,0xffa5c897,0xffa5c897,0xffa5c797,0xffa5c797,0xffa5c797,0xffa5c797,0xffa5c797,0xffa5c797,0xffa5c797,0xffa5c797, | 1194 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19000000,0x21000000,0x5000000, |
1907 | 0xffa5c797,0xffa6c797,0xffabc998,0xffcdd9b8,0xffc0d9a6,0xffb1d399,0xff8ac379,0xff8dc47d,0xff8fc480,0xff90c482,0xff90c382,0xff90c382,0xff90c382,0xff90c382, | 1195 | 0x0,0x0,0x0,0x0,0x0,0x0,0x2b488ed4,0x804a92d9,0xa64a92da,0x9f4a93db,0x764b95de,0x2d4488cb,0x4c000000,0x841f2123, |
1908 | 0xff90c382,0xff90c382,0xff90c382,0xff90c382,0xff8fc380,0xff8cc17c,0xff84bc72,0xffaecc9b,0xff78bc5e,0xff61b54a,0xff26a319,0xff4eb83e,0xff5ebe4d,0xff62be52, | 1196 | 0xb24a5b6c,0x42080b0f,0x5000000,0x0,0x0,0x0,0x43c77b1,0x944990d6,0xfe4a93db,0xff4a94dc,0xe7336597,0xda316191,0xff468bcf,0xfe316292, |
1909 | 0xff61bc51,0xff60bb4f,0xff5fb94e,0xff5fb94e,0xff5fba4e,0xff61bb50,0xff62bd51,0xff62bd52,0xff5fbc4e,0xff4fb63e,0xff259e15,0xff5cab4e,0xff3aa528,0xff47b037, | 1197 | 0xd6263c52,0xe3a0b0c1,0xffeef3f7,0xb37089a2,0x41010202,0x13000000,0x0,0x0,0x954990d7,0xff4c97e1,0xff4b96df,0xd94385c6,0xd060d13,0x1060d13, |
1910 | 0xff6fce63,0xffb7e7ac,0xffcaedbf,0xffc7e7bb,0xffbadaae,0xffa5c298,0xff96b186,0xff92ae83,0xff9bb78d,0xffafcda2,0xffc2e2b6,0xffcaebbf,0xffcbedc0,0xffbce8b0, | 1198 | 0xb42a557f,0xff254a6f,0xff7795b2,0xffe1eaf1,0xfbaacdee,0xffd9e4ec,0x98577ea4,0x34000000,0x0,0x324489cb,0xfe4d9ae5,0xff4d99e4,0xff4c98e2,0x6e4488cb, |
1911 | 0xff81d272,0xff47aa3d,0xff33a121,0xff4db13b,0xff94de83,0xffcbf0bd,0xffc7dfb9,0xffa5b796,0xff77826a,0xff4e5446,0xff4b5440,0xff47503d,0xff495140,0xff5c6552, | 1199 | 0x0,0x0,0x54152b40,0xff1e3c5b,0xff6990b5,0xff6b9ccb,0xcf102337,0xe779a8d3,0xbb6494c0,0x31000000,0x0,0x924b96e0,0xff4e9ce8,0xff4e9be7, |
1912 | 0xff8b997e,0xffb6cfa7,0xffcfeec0,0xffcdf3bf,0xffa6e794,0xff48ad3c,0xff37a123,0xff52b33d,0xff99e083,0xffb6e1a3,0xff91aa80,0xff5e6d4f,0xff39452c,0xff344528, | 1200 | 0xff4d98e3,0x32468cd0,0x0,0x0,0x27020507,0xff1b3753,0xff214971,0xff23486d,0xdb1a344e,0x70040f19,0x76122e4a,0x23000000,0x0,0xce4c97e1, |
1913 | 0xff415a33,0xff3d5830,0xff2d4923,0xff1f3c16,0xff3b4c32,0xff668a5a,0xff84c377,0xff8ce37f,0xff85e471,0xff3aac2e,0xff34a120,0xff4bb236,0xff86db6d,0xff8bbb73, | 1201 | 0xff4e9be7,0xff4e9ce8,0xff4c98e2,0x114890d6,0x0,0x0,0x4010304,0xf6326496,0xff336597,0xff3e7bb8,0xe43e7cb8,0x28000000,0x15000000,0x0, |
1914 | 0xff4e663d,0xff2a3a1c,0xff385729,0xff6ea65a,0xff77c464,0xff6ec55c,0xff4faa41,0xff1b7514,0xff083306,0xff11410e,0xff1d7d18,0xff25c41e,0xff34d424,0xff18a610, | 1202 | 0x0,0xe34b95dd,0xff4c97e1,0xff4c98e3,0xfa4c96e0,0x14a92da,0x0,0x0,0x0,0xe63f7dbb,0xff4991d8,0xff4a92da,0xf84a94dc,0x2000000, |
1915 | 0xff32a01e,0xff44b02e,0xff70d355,0xff4b7636,0xff29411b,0xff356126,0xff62bb4c,0xff61dd50,0xff2ddb25,0xff10d70d,0xff05d004,0xff02bd01,0xff017a00,0xff013501, | 1203 | 0x0,0x0,0x24d99e4,0xce4991d8,0xff4a93dc,0xff4a93db,0xe84b94dd,0x34d99e4,0x24c99e3,0x14d99e3,0x0,0xe04487c9,0xff4b95de,0xff4b95de, |
1916 | 0xff024602,0xff029f02,0xff03ca02,0xff02a301,0xff2fa01c,0xff3bac26,0xff57c33d,0xff26481a,0xff1b4511,0xff248519,0xff30d224,0xff25db1e,0xff0ed90b,0xff02d802, | 1204 | 0xfd4b96df,0x0,0x0,0x0,0x34d99e4,0xd74589cd,0xff4990d6,0xff488fd5,0xdd4a94dc,0x24d99e3,0x4d99e4,0x14d99e5,0x34d9ae5,0xdb4b95de, |
1917 | 0xff00d600,0xff00cf00,0xff00a800,0xff005400,0xff004400,0xff008500,0xff00c800,0xff00a200,0xff2ba01a,0xff30a81d,0xff3cb525,0xff14370c,0xff11530a,0xff139c0c, | 1205 | 0xff4c98e3,0xff4c97e1,0xf04b96e0,0x0,0x0,0x0,0x4c97e1,0xb14488ca,0xff478dd2,0xff478cd1,0xec4a94dc,0x44b96e0,0x4c99e3,0x4d99e4, |
1918 | 0xff0fd80a,0xff07d805,0xff02d801,0xff00d800,0xff00d800,0xff00d500,0xff00bf00,0xff006900,0xff004400,0xff006e00,0xff00c700,0xff00a300,0xff279f17,0xff25a615, | 1206 | 0xc4d9ae5,0xec4b97e0,0xff4e9be7,0xff4d99e5,0xcb4c96e0,0x0,0x0,0x0,0x0,0x4a4283c3,0xff478cd1,0xff468cd0,0xfd4992d9,0x274c97e1, |
1919 | 0xff21b010,0xff0c3505,0xff095904,0xff07a203,0xff01d801,0xff00d800,0xff00d800,0xff00d800,0xff00d800,0xff00d700,0xff00c300,0xff006d00,0xff004400,0xff006900, | 1207 | 0x4d9ae5,0x4c99e3,0xf4991d8,0xf54c98e3,0xff4e9ce8,0xff4e9be7,0x844b95de,0x0,0x0,0x0,0x0,0xe458acd,0xd94487c9,0xff468cd0, |
1920 | 0xff00c800,0xff00a300,0xff239f15,0xff1ca810,0xff0bb704,0xff043501,0xff024b01,0xff019401,0xff00d500,0xff00d800,0xff00d800,0xff00d800,0xff00d800,0xff00d500, | 1208 | 0xff488fd5,0x7b4d99e3,0x0,0x4d9ae5,0x584487ca,0xfe4d9ae5,0xff4e9ce8,0xf34d99e4,0x1a468ace,0x0,0x0,0x0,0x0,0x0, |
1921 | 0xff00b200,0xff005c00,0xff004400,0xff007d00,0xff00cc00,0xff00a500,0xff22a015,0xff1aac10,0xff06c602,0xff046601,0xff024400,0xff016a00,0xff01bb00,0xff02d500, | 1209 | 0x224284c5,0xc8458acd,0xff478cd1,0xf24c96e0,0x5b4d98e2,0x3c3f7ebc,0xde478ed3,0xff4d99e3,0xfb4d9ae6,0x554890d6,0x0,0x0,0x0,0x0, |
1922 | 0xff00d800,0xff00d800,0xff00d400,0xff00c400,0xff006600,0xff012900,0xff024501,0xff04a202,0xff05d302,0xff03a801,0xff28a117,0xff24ae14,0xff19cf0c,0xff179e0b, | 1210 | 0x0,0x0,0x0,0x183c78b3,0xa04488ca,0xe8468ace,0xff4992d9,0xff4a92d9,0xff4b95de,0xcd4c96e0,0x3e488fd5,0x0,0x0,0x0, |
1923 | 0xff0d5406,0xff044102,0xff026e00,0xff06a402,0xff08b703,0xff08ba03,0xff06a902,0xff017d01,0xff004000,0xff013f00,0xff057301,0xff0cbf05,0xff15d90a,0xff0ca906, | 1211 | 0x0,0x0,0x0,0x0,0x0,0x0,0x14d9ae5,0xc4488cb,0x453971a9,0x504180bf,0x273c77b1,0x0,0x0,0x0, |
1924 | 0xff2ea11b,0xff2fb01b,0xff32d41b,0xff32c81c,0xff268615,0xff17500d,0xff0b4105,0xff095d04,0xff0b7005,0xff0c7405,0xff096304,0xff053e03,0xff044d02,0xff027901, | 1212 | 0x0,0x0,0x0,0x0 |
1925 | 0xff04ab01,0xff0cd106,0xff1fdb10,0xff14aa0b,0xff34a21f,0xff39b022,0xff46d52a,0xff4ddd30,0xff48c82d,0xff399723,0xff245916,0xff16370d,0xff15360b,0xff15380c, | ||
1926 | 0xff16380d,0xff173b0e,0xff16870e,0xff09bc06,0xff02d502,0xff0ad807,0xff25d816,0xff1eaa13,0xff3c9f20,0xff41ab25,0xff50cb33,0xff61df42,0xff64e245,0xff63dd44, | ||
1927 | 0xff5ed040,0xff51af35,0xff47982d,0xff46972d,0xff4da833,0xff56c23a,0xff49d632,0xff20d917,0xff0cd909,0xff19d812,0xff3acd25,0xff32a625,0xff4a9319,0xff419519, | ||
1928 | 0xff2b9c1a,0xff33ab23,0xff35ae25,0xff35ae26,0xff34ab25,0xff30a222,0xff2d9b1f,0xff2d9b1f,0xff2fa021,0xff32a823,0xff2bac1f,0xff15aa0f,0xff0aa907,0xff12a70c, | ||
1929 | 0xff229b16,0xff56a54b | ||
1930 | }; | 1213 | }; |
1931 | 1214 | ||
1932 | static const QRgb h_src_data[] = { | 1215 | static const QRgb Go_white_data[] = { |
1933 | 0x0,0x0,0x14d3d3d4,0x2fcdcdd1,0x2fc8c8cf,0x2fc4c4cc,0x2fbfbfc9,0x2fbabac7,0x17adadbc,0x0,0x0,0x0,0x0,0x0, | 1216 | 0x0,0x0,0x0,0x0,0x10d0d0d,0x730302c,0xb282825,0x7000000,0x2000000,0x0,0x0,0x0,0x0,0x0, |
1934 | 0x0,0x0,0x7cd6d6d9,0xfff4f4f5,0xfff5f5f6,0xfff3f3f5,0xffeeeef2,0xffe6e6ed,0xe3bebecd,0x289393a5,0x0,0x0,0x0,0x0, | 1217 | 0x1000000,0x50bdbdac,0xc7cecebb,0xf5d3d3c0,0xf8c3c3b1,0xde99998b,0x875b5b52,0x17030303,0x2000000,0x0,0x0,0x0,0x86cdcdba,0xfef7f7e2, |
1935 | 0x0,0x0,0x7dd2d2d7,0xfffdfdfe,0xfff3f3f3,0xfffdfdfe,0xfff0f0f2,0xffececf1,0xffdedee7,0xddc9c9d7,0x2489899f,0x0,0x0,0x0, | 1218 | 0xfffdfde8,0xfff8f8e1,0xffe7e7d2,0xffcdcdba,0xffa6a697,0xd355554d,0x2a020202,0x2000000,0x0,0x4dc5c5b2,0xfef7f7e2,0xfffffff0,0xfffffff1,0xfffdfde9, |
1936 | 0x0,0x0,0x7dcdcdd5,0xfffdfdfe,0xfff4f4f4,0xfffefefe,0xfff4f4f5,0xfff1f1f6,0xffdddde6,0xfff3f3f7,0xdcbabace,0x207b7b94,0x0,0x0, | 1219 | 0xffeeeed8,0xffd7d7c3,0xffb7b7a6,0xff87877a,0xbf2b2b27,0x1a000000,0x1000000,0xc4d1d1be,0xfffdfde8,0xfffffff1,0xfffffffd,0xfffffff7,0xffececd6,0xffd5d5c1, |
1937 | 0x0,0x0,0x7dc8c8d2,0xfffdfdfd,0xffebebeb,0xfffcfcfd,0xffebebec,0xffececf1,0xffd3d3e0,0xffc9c9da,0xffc6c6d8,0x8d8d8da6,0x0,0x0, | 1220 | 0xffb7b7a6,0xff8e8e81,0xfa474740,0x51000000,0x53e3e38,0xf4d4d4c0,0xfff8f8e1,0xfffdfde9,0xfffffff7,0xfffafaec,0xffe2e2cd,0xffcbcbb8,0xffafaf9e,0xff88887b, |
1938 | 0x0,0x0,0x7dc3c3d0,0xfffdfdfd,0xfffcfcfc,0xffffffff,0xfff6f6f8,0xfff2f2f7,0xffe8e8f1,0xffe0e0ec,0xffdfdfec,0x938e8ea6,0x0,0x0, | 1221 | 0xff4c4c45,0x8b070706,0x8383833,0xf7c3c3b2,0xffe7e7d2,0xffeeeed8,0xffececd6,0xffe2e2cd,0xffd1d1be,0xffbcbcaa,0xff9f9f90,0xff79796d,0xff40403a,0x9d070706, |
1939 | 0x0,0x0,0x7dbebecd,0xfffdfdfd,0xffffffff,0xffffffff,0xffe8e8ea,0xffeaeaf0,0xffd9d9e1,0xffe0e0e9,0xffe1e1ed,0x938a8aa5,0x0,0x0, | 1222 | 0x3000000,0xd89d9d8f,0xffcdcdba,0xffd7d7c3,0xffd5d5c1,0xffcbcbb8,0xffbcbcaa,0xffa6a697,0xff89897c,0xff616158,0xfe2c2c28,0x87010101,0x1000000,0x7a65655b, |
1940 | 0x0,0x0,0x7db9b9cb,0xfffcfcfd,0xffececee,0xfff0f0f6,0xffe3e3e9,0xffe6e6ee,0xffe9e9f2,0xffe6e6f0,0xffe3e3ef,0x938888a3,0x0,0x0, | 1223 | 0xffa6a697,0xffb7b7a6,0xffb7b7a6,0xffafaf9e,0xff9f9f90,0xff89897c,0xff6a6a60,0xff3f3f39,0xf2161613,0x5b000000,0x0,0xe060605,0xca585851,0xff87877a, |
1941 | 0x0,0x0,0x7db4b4c8,0xfff8f8fa,0xffefeff1,0xfff3f3f7,0xffebebf0,0xffededf3,0xffebebf3,0xffe9e9f2,0xffe6e6f0,0x938585a2,0x0,0x0, | 1224 | 0xff8e8e81,0xff88887b,0xff79796d,0xff616158,0xff3f3f39,0xfc1e1e1b,0xa7010101,0x23000000,0x0,0x1000000,0x1f030303,0xb62d2d29,0xfa474740,0xff4c4c45, |
1942 | 0x0,0x0,0x7db5b5ca,0xffefe4d7,0xffe5cfb5,0xffdcc09d,0xffdcc09d,0xffcca26e,0xffc5965c,0xffc18e50,0xffcba77d,0x938282a1,0x0,0x0, | 1225 | 0xff40403a,0xfe2c2c28,0xf2161613,0xa7010101,0x39000000,0x5000000,0x0,0x0,0x1000000,0x14000000,0x44010100,0x7e080807,0x8e080807,0x7a010101, |
1943 | 0x0,0x0,0x7db2b2c9,0xffeddfcd,0xffe0c5a3,0xffd6b184,0xffe1c7a6,0xffdbbb94,0xffbc8139,0xffb47220,0xffc3945b,0x937f7f9f,0x0,0x0, | 1226 | 0x55000000,0x22000000,0x5000000,0x0 |
1944 | 0x0,0x0,0x7daeaec6,0xffede0cf,0xffe1c6a5,0xffd8b58b,0xffddc09b,0xffd3ad7e,0xffc08945,0xffb77829,0xffc69862,0x937d7d9e,0x0,0x0, | 1227 | }; |
1945 | 0x0,0x0,0x7ca5a5c1,0xffe5dfdd,0xffdfd3cb,0xffddcfc6,0xffd7c7bb,0xffd1bdad,0xffcab19a,0xffc5a991,0xffcab6a9,0x92747499,0x0,0x0, | 1228 | |
1946 | 0x0,0x0,0x1a6d6d8a,0x455b5b76,0x45585873,0x45545472,0x45515170,0x454d4d6e,0x454a4a6d,0x4547476b,0x45434369,0x2831314e,0x0,0x0 | 1229 | static const QRgb HelpButton_data[] = { |
1230 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
1231 | 0xffffff,0xffffff,0xffffff,0x3ed5d5d5,0x93d4d4d4,0xd5d8d8d8,0xfad5d5d5,0xd8c8c8c8,0x9ebebebe,0x508e8e8e,0xc000000,0x3000000,0xffffff,0xffffff, | ||
1232 | 0xffffff,0xffffff,0x60d5d5d5,0xdbdddddd,0xffdcdcdc,0xffcbcbcb,0xffc5c5c5,0xffc4c4c4,0xffd0d0d0,0xe6bbbbbb,0x837d7d7d,0x18000000,0x4000000,0xffffff, | ||
1233 | 0xffffff,0x3ed6d5d5,0xdbd3d3d3,0xffd1d1d1,0xff9c9b9b,0xff333333,0xff323132,0xff565556,0xffbababa,0xffb1b2b1,0xec8f8e8f,0x75474747,0x18000000,0x3000000, | ||
1234 | 0xffffff,0x94cdcecd,0xffc8c7c7,0xffb2b2b2,0xff000000,0xff616161,0xffb2b2b2,0xff000000,0xff5f5f5f,0xffaaabaa,0xff9d9c9c,0xc84f4f4f,0x3d000000,0xc000000, | ||
1235 | 0xffffff,0xd5c2c2c2,0xffafafaf,0xffa0a0a0,0xff5b5b5b,0xff757575,0xffa8a8a8,0xff000000,0xff585858,0xffa4a4a4,0xffa4a4a4,0xef4f4f4f,0x61000000,0x1a000000, | ||
1236 | 0xffffff,0xfab4b4b4,0xff9d9d9d,0xff959595,0xffa5a5a5,0xff989898,0xff434343,0xff1d1d1d,0xff878787,0xffa1a1a1,0xff939393,0xfd4b4b4b,0x7c000000,0x25000000, | ||
1237 | 0xffffff,0xd9a3a3a3,0xff919191,0xff989898,0xff909090,0xff4e4e4e,0xff000000,0xff919191,0xff989898,0xff949494,0xff7b7b7b,0xf2373737,0x85000000,0x2b000000, | ||
1238 | 0xffffff,0xa0848484,0xff8c8c8b,0xff8a8b8b,0xff979797,0xff8e8e8e,0xff929291,0xff959595,0xff8c8c8c,0xff8b8c8b,0xff585758,0xdf272727,0x7c000000,0x25000000, | ||
1239 | 0xffffff,0x515d5d5d,0xe7707070,0xff7c7c7c,0xff848484,0xff434343,0xff262626,0xff8f8f8f,0xff7f7f7f,0xff616061,0xf5313131,0xbb101010,0x61000000,0x1a000000, | ||
1240 | 0xffffff,0xc000000,0x843f3f3f,0xed505050,0xff5d5c5c,0xff535353,0xff262626,0xff646364,0xff515051,0xf5313130,0xcd141414,0x83000000,0x3d000000,0xc000000, | ||
1241 | 0xffffff,0x3000000,0x18000000,0x76212121,0xc92b2b2b,0xf0303030,0xfd353535,0xf32a2a2a,0xdf1d1d1d,0xbb0d0d0d,0x83000000,0x4b000000,0x18000000,0x3000000, | ||
1242 | 0xffffff,0xffffff,0x4000000,0x18000000,0x3d000000,0x61000000,0x7c000000,0x85000000,0x7c000000,0x61000000,0x3d000000,0x18000000,0x4000000,0xffffff, | ||
1243 | 0xffffff,0xffffff,0xffffff,0x3000000,0xc000000,0x1a000000,0x25000000,0x2b000000,0x25000000,0x1a000000,0xc000000,0x3000000,0xffffff,0xffffff | ||
1947 | }; | 1244 | }; |
1948 | 1245 | ||
1949 | static const QRgb help_icon_data[] = { | 1246 | static const QRgb help_icon_data[] = { |
1950 | 0x0,0x0,0x0,0x0,0x18fdb293,0x5ffdbba0,0x81fbc4ac,0x81fbba9e,0x60fa7a50,0x19ee662d,0x0,0x0,0x0,0x0, | 1247 | 0x0,0x0,0x0,0x0,0x18fdb293,0x5ffdbba0,0x81fbc4ac,0x81fbba9e,0x60fa7a50,0x19ee662d,0x0,0x0,0x0,0x0, |
1951 | 0x0,0x0,0x8fdbfa4,0x88fea391,0xf3fdeae2,0xfffdfaf9,0xfffdfdfd,0xfffdfdfd,0xffffbebc,0xf4fe8473,0x8cf64a1b,0xabe3700,0x0,0x0, | 1248 | 0x0,0x0,0x8fdbfa4,0x88fea391,0xf3fdeae2,0xfffdfaf9,0xfffdfdfd,0xfffdfdfd,0xffffbebc,0xf4fe8473,0x8cf64a1b,0xabe3700,0x0,0x0, |
1952 | 0x0,0x8fdbfa4,0xbaff9687,0xffffb7b6,0xfffdefef,0xfffcfcfc,0xfffbfbfb,0xfffbf5f5,0xfffdcdcd,0xfffecccc,0xffffb2af,0xbfee502d,0xc982900,0x0, | 1249 | 0x0,0x8fdbfa4,0xbaff9687,0xffffb7b6,0xfffdefef,0xfffcfcfc,0xfffbfbfb,0xfffbf5f5,0xfffdcdcd,0xfffecccc,0xffffb2af,0xbfee502d,0xc982900,0x0, |
1953 | 0x0,0x88fe8f7c,0xffffabaa,0xfffebfbf,0xfff9b6b5,0xf6eec9ba,0xcbdaa28a,0xc8dd7d62,0xf5ef604c,0xfff7a9a8,0xfffdbfbf,0xfffea9a7,0x93d25735,0x1000000, | 1250 | 0x0,0x88fe8f7c,0xffffabaa,0xfffebfbf,0xfff9b6b5,0xf6eec9ba,0xcbdaa28a,0xc8dd7d62,0xf5ef604c,0xfff7a9a8,0xfffdbfbf,0xfffea9a7,0x93d25735,0x1000000, |
1954 | 0x18fdb293,0xf3ff877f,0xfffeaaaa,0xfff79696,0xd6e0533a,0x3974381f,0x7000000,0x4000000,0x26aa3100,0xcae13a19,0xfff4bbba,0xfffbf2f2,0xf6ecc4b8,0x257e1d00, | 1251 | 0x18fdb293,0xf3ff877f,0xfffeaaaa,0xfff79696,0xd6e0533a,0x3974381f,0x7000000,0x4000000,0x26aa3100,0xcae13a19,0xfff4bbba,0xfffbf2f2,0xf6ecc4b8,0x257e1d00, |
1955 | 0x5ffdba9e,0xfffddcdb,0xfffac5c5,0xf6ed7061,0x3974381f,0x0,0x0,0x0,0x0,0x1ec23501,0xf2e5b9aa,0xfff8f8f8,0xfff9f4f2,0x70a6482f, | 1252 | 0x5ffdba9e,0xfffddcdb,0xfffac5c5,0xf6ed7061,0x3974381f,0x0,0x0,0x0,0x0,0x1ec23501,0xf2e5b9aa,0xfff8f8f8,0xfff9f4f2,0x70a6482f, |
1956 | 0x81fbc3ab,0xfffbfbfb,0xfff6f6f6,0xcbd9a189,0x7000000,0x0,0x0,0x0,0x0,0x0,0xb9d7947e,0xfff5f5f5,0xfffafafa,0x96ae6a5a, | 1253 | 0x81fbc3ab,0xfffbfbfb,0xfff6f6f6,0xcbd9a189,0x7000000,0x0,0x0,0x0,0x0,0x0,0xb9d7947e,0xfff5f5f5,0xfffafafa,0x96ae6a5a, |
1957 | 0x81fbba9e,0xfffafafa,0xfff4f4f4,0xc8dc9c82,0x4000000,0x0,0x0,0x0,0x0,0x0,0xb8d28470,0xfff3f0f0,0xfff9f9f9,0x98a66558, | 1254 | 0x81fbba9e,0xfffafafa,0xfff4f4f4,0xc8dc9c82,0x4000000,0x0,0x0,0x0,0x0,0x0,0xb8d28470,0xfff3f0f0,0xfff9f9f9,0x98a66558, |
1958 | 0x60fa966c,0xfffaf5f3,0xfff4f3f3,0xf5e9917e,0x26aa3100,0x0,0x0,0x0,0x0,0x1ab62700,0xf2d02c21,0xffee6868,0xfff68988,0x79852e20, | 1255 | 0x60fa966c,0xfffaf5f3,0xfff4f3f3,0xf5e9917e,0x26aa3100,0x0,0x0,0x0,0x0,0x1ab62700,0xf2d02c21,0xffee6868,0xfff68988,0x79852e20, |
1959 | 0x19ee662d,0xf4fbaf9e,0xfff76d6d,0xffe83838,0xcadb2908,0x1ec23400,0x0,0x0,0x1ab62700,0xc4c11c08,0xffe03837,0xfff14040,0xf7db2622,0x32430900, | 1256 | 0x19ee662d,0xf4fbaf9e,0xfff76d6d,0xffe83838,0xcadb2908,0x1ec23400,0x0,0x0,0x1ab62700,0xc4c11c08,0xffe03837,0xfff14040,0xf7db2622,0x32430900, |
1960 | 0x0,0x8cf6390b,0xfffc2926,0xfff12b2b,0xffe22525,0xf2da5748,0xb9d6937d,0xb8d2917d,0xf2d69c91,0xffdc2b2b,0xffea2b2b,0xfff32726,0xa5900d05,0x6000000, | 1257 | 0x0,0x8cf6390b,0xfffc2926,0xfff12b2b,0xffe22525,0xf2da5748,0xb9d6937d,0xb8d2917d,0xf2d69c91,0xffdc2b2b,0xffea2b2b,0xfff32726,0xa5900d05,0x6000000, |
1961 | 0x0,0xbc23800,0xbfed2a06,0xfff91614,0xfff01616,0xffedaaaa,0xffececec,0xffececec,0xffefeeee,0xffef7979,0xfff11514,0xcda80d06,0x1c230400,0x0, | 1258 | 0x0,0xbc23800,0xbfed2a06,0xfff91614,0xfff01616,0xffedaaaa,0xffececec,0xffececec,0xffefeeee,0xffef7979,0xfff11514,0xcda80d06,0x1c230400,0x0, |
1962 | 0x0,0x0,0xc932800,0x93d22301,0xf6eb1407,0xfff5e0df,0xfff6f6f6,0xfff6f6f6,0xfff3efee,0xf7d8a6a1,0xa5900c04,0x1c230400,0x0,0x0, | 1259 | 0x0,0x0,0xc932800,0x93d22301,0xf6eb1407,0xfff5e0df,0xfff6f6f6,0xfff6f6f6,0xfff3efee,0xf7d8a6a1,0xa5900c04,0x1c230400,0x0,0x0, |
1963 | 0x0,0x0,0x0,0x1000000,0x257e1d00,0x70a5482e,0x96ae6959,0x98a66658,0x7985392b,0x32430900,0x6000000,0x0,0x0,0x0 | 1260 | 0x0,0x0,0x0,0x1000000,0x257e1d00,0x70a5482e,0x96ae6959,0x98a66658,0x7985392b,0x32430900,0x6000000,0x0,0x0,0x0 |
1964 | }; | 1261 | }; |
1965 | 1262 | ||
1966 | static const QRgb home_data[] = { | 1263 | static const QRgb home_data[] = { |
1967 | 0x0,0x8097dff,0x20097dff,0x11097bfa,0x10135ca5,0x47115ba4,0x891b61a7,0x7a1860a7,0x290754a0,0xb0855a0,0x0,0x0,0x0,0x0, | 1264 | 0x0,0x8097dff,0x20097dff,0x11097bfa,0x10135ca5,0x47115ba4,0x891b61a7,0x7a1860a7,0x290754a0,0xb0855a0,0x0,0x0,0x0,0x0, |
1968 | 0x0,0x40097dff,0xff097dff,0x9f0a76ed,0x982b6dae,0xea598cc0,0xfd92b3d6,0xfb81a8d1,0xe53876b4,0x791a61a8,0x150e59a3,0x0,0x0,0x0, | 1265 | 0x0,0x40097dff,0xff097dff,0x9f0a76ed,0x982b6dae,0xea598cc0,0xfd92b3d6,0xfb81a8d1,0xe53876b4,0x791a61a8,0x150e59a3,0x0,0x0,0x0, |
1969 | 0x0,0x40097dff,0xf90a79f4,0xe82174cb,0xf27aa3ce,0xfed8e4f4,0xffe7effb,0xffe0eafa,0xfdbed4ed,0xe45d8fc6,0x842368ad,0x190e59a4,0x0,0x0, | 1266 | 0x0,0x40097dff,0xf90a79f4,0xe82174cb,0xf27aa3ce,0xfed8e4f4,0xffe7effb,0xffe0eafa,0xfdbed4ed,0xe45d8fc6,0x842368ad,0x190e59a4,0x0,0x0, |
1970 | 0x0,0x360c6fd9,0xde2073cc,0xf174a0cd,0xfecadbf1,0xffdce8fa,0xffd5e3f9,0xffcedff7,0xffc6daf6,0xfda9c5eb,0xe6568bc6,0x84185ca7,0x15054a9b,0x0, | 1267 | 0x0,0x360c6fd9,0xde2073cc,0xf174a0cd,0xfecadbf1,0xffdce8fa,0xffd5e3f9,0xffcedff7,0xffc6daf6,0xfda9c5eb,0xe6568bc6,0x84185ca7,0x15054a9b,0x0, |
1971 | 0xb05539f,0x77175fa7,0xe76192c6,0xfebfd4ef,0xffd0e0f8,0xffc9dbf6,0xffc2d6f5,0xffb9d0f4,0xffb1ccf3,0xffa9c6f2,0xfd8ab0e5,0xe92f69ba,0x940245a7,0xf0044a9, | 1268 | 0xb05539f,0x77175fa7,0xe76192c6,0xfebfd4ef,0xffd0e0f8,0xffc9dbf6,0xffc2d6f5,0xffb9d0f4,0xffb1ccf3,0xffa9c6f2,0xfd8ab0e5,0xe92f69ba,0x940245a7,0xf0044a9, |
1972 | 0xc34878b0,0xe62d6eb1,0xfdacc7ea,0xffc3d7f5,0xffbbd2f4,0xffb4cdf3,0xffacc8f2,0xffa2c2f1,0xff9abcef,0xff90b6ed,0xff6696e1,0xff1a59c8,0xf2024ab7,0xc54777b3, | 1269 | 0xc34878b0,0xe62d6eb1,0xfdacc7ea,0xffc3d7f5,0xffbbd2f4,0xffb4cdf3,0xffacc8f2,0xffa2c2f1,0xff9abcef,0xff90b6ed,0xff6696e1,0xff1a59c8,0xf2024ab7,0xc54777b3, |
1973 | 0x3b497db7,0xf85e90c8,0xffb4cdf3,0xffadc9f2,0xffa5c4f1,0xffd8ebfa,0xffe9f8fd,0xffe7f7fd,0xffc1dbf7,0xff3e7be1,0xff115bdc,0xff0251dc,0xff0f5bd3,0x3c316ec2, | 1270 | 0x3b497db7,0xf85e90c8,0xffb4cdf3,0xffadc9f2,0xffa5c4f1,0xffd8ebfa,0xffe9f8fd,0xffe7f7fd,0xffc1dbf7,0xff3e7be1,0xff115bdc,0xff0251dc,0xff0f5bd3,0x3c316ec2, |
1974 | 0x1f4680c1,0xfa5d90cd,0xff99bcef,0xff80abed,0xff5089e8,0xffc5def9,0xfff2ffff,0xfff2ffff,0xffb6d6fb,0xff005aef,0xff015df2,0xff015ff4,0xff0e64e1,0x201365da, | 1271 | 0x1f4680c1,0xfa5d90cd,0xff99bcef,0xff80abed,0xff5089e8,0xffc5def9,0xfff2ffff,0xfff2ffff,0xffb6d6fb,0xff005aef,0xff015df2,0xff015ff4,0xff0e64e1,0x201365da, |
1975 | 0x1f3d7abf,0xfa4d86cb,0xff639aef,0xff1f70f1,0xff025ff3,0xffb6d7fc,0xfff2ffff,0xfff2ffff,0xffb7dafe,0xff066bfc,0xff096dfd,0xff0b6ffe,0xff126ce5,0x20146add, | 1272 | 0x1f3d7abf,0xfa4d86cb,0xff639aef,0xff1f70f1,0xff025ff3,0xffb6d7fc,0xfff2ffff,0xfff2ffff,0xffb7dafe,0xff066bfc,0xff096dfd,0xff0b6ffe,0xff126ce5,0x20146add, |
1976 | 0x1f3274bf,0xfa3278cd,0xff237af8,0xff096dfd,0xff0b6ffe,0xffb8dbff,0xfff2ffff,0xfff2ffff,0xffbcdeff,0xff197cff,0xff1d7fff,0xff2082ff,0xff1b75e4,0x201970dc, | 1273 | 0x1f3274bf,0xfa3278cd,0xff237af8,0xff096dfd,0xff0b6ffe,0xffb8dbff,0xfff2ffff,0xfff2ffff,0xffbcdeff,0xff197cff,0xff1d7fff,0xff2082ff,0xff1b75e4,0x201970dc, |
1977 | 0x1f2672cc,0xfb2374d9,0xff1a7dff,0xff1c7fff,0xff2082ff,0xffbee0ff,0xfff2ffff,0xfff2ffff,0xffc2e3ff,0xff3291ff,0xff3694ff,0xff3a97ff,0xff287fe4,0x202177db, | 1274 | 0x1f2672cc,0xfb2374d9,0xff1a7dff,0xff1c7fff,0xff2082ff,0xffbee0ff,0xfff2ffff,0xfff2ffff,0xffc2e3ff,0xff3291ff,0xff3694ff,0xff3a97ff,0xff287fe4,0x202177db, |
1978 | 0x20287cdf,0xfd2a81e7,0xff3291ff,0xff3694ff,0xff3997ff,0xffc4e5ff,0xfff2ffff,0xfff2ffff,0xffc9e9ff,0xff4ea8ff,0xff52aaff,0xff56adff,0xff378be3,0x202c7fda, | 1275 | 0x20287cdf,0xfd2a81e7,0xff3291ff,0xff3694ff,0xff3997ff,0xffc4e5ff,0xfff2ffff,0xfff2ffff,0xffc9e9ff,0xff4ea8ff,0xff52aaff,0xff56adff,0xff378be3,0x202c7fda, |
1979 | 0x1f267ad1,0xf92a7fd7,0xfa388fe7,0xfb3b91e8,0xfe3e93ea,0xff60a6eb,0xff6cadeb,0xff6daeeb,0xff64aaea,0xff499cea,0xff4b9eea,0xff4ea0ea,0xf93080ce,0x1f2675c4, | 1276 | 0x1f267ad1,0xf92a7fd7,0xfa388fe7,0xfb3b91e8,0xfe3e93ea,0xff60a6eb,0xff6cadeb,0xff6daeeb,0xff64aaea,0xff499cea,0xff4b9eea,0xff4ea0ea,0xf93080ce,0x1f2675c4, |
1980 | 0x42477cb,0x1f297cd0,0x1f378cdf,0x1f3a8ee1,0x203c8fe3,0x203e91e4,0x203f92e4,0x204093e4,0x204294e3,0x204495e3,0x204697e3,0x204899e3,0x1f2c7bc6,0x42271bc | 1277 | 0x42477cb,0x1f297cd0,0x1f378cdf,0x1f3a8ee1,0x203c8fe3,0x203e91e4,0x203f92e4,0x204093e4,0x204294e3,0x204495e3,0x204697e3,0x204899e3,0x1f2c7bc6,0x42271bc |
1981 | }; | 1278 | }; |
1982 | 1279 | ||
1983 | static const QRgb install_data[] = { | 1280 | static const QRgb h_src_data[] = { |
1984 | 0x0,0x0,0x0,0x2fcac00,0x49feb50d,0xd2ffd436,0x68e2a50e,0x4f7a500,0x8afabb25,0x3edd9508,0x0,0x0,0x0,0x0, | 1281 | 0x0,0x0,0x14d3d3d4,0x2fcdcdd1,0x2fc8c8cf,0x2fc4c4cc,0x2fbfbfc9,0x2fbabac7,0x17adadbc,0x0,0x0,0x0,0x0,0x0, |
1985 | 0x0,0xfdad00,0x31feb007,0xb9ffd147,0xfdfff275,0xffffff72,0xe6f8d235,0xa0f5be35,0xfffff883,0xf3f9dc4d,0x53d6890a,0x301b00,0x0,0x0, | 1282 | 0x0,0x0,0x7cd6d6d9,0xfff4f4f5,0xfff5f5f6,0xfff3f3f5,0xffeeeef2,0xffe6e6ed,0xe3bebecd,0x289393a5,0x0,0x0,0x0,0x0, |
1986 | 0x2f3a600,0x97fec53f,0xfcffec94,0xffffffa4,0xffffff87,0xffffe951,0xfffed131,0xfffbc232,0xfffef974,0xfffff55e,0xfaf7cb35,0x6bd27f08,0x1522b00,0x0, | 1283 | 0x0,0x0,0x7dd2d2d7,0xfffdfdfe,0xfff3f3f3,0xfffdfdfe,0xfff0f0f2,0xffececf1,0xffdedee7,0xddc9c9d7,0x2489899f,0x0,0x0,0x0, |
1987 | 0x2e09900,0x97f9c240,0xfffffdba,0xfffff082,0xffffcf34,0xffffd534,0xffffed52,0xfffec724,0xfff6bd27,0xfffce047,0xffffd636,0xfdf8b418,0x77c56901,0x1000000, | 1284 | 0x0,0x0,0x7dcdcdd5,0xfffdfdfe,0xfff4f4f4,0xfffefefe,0xfff4f4f5,0xfff1f1f6,0xffdddde6,0xfff3f3f7,0xdcbabace,0x207b7b94,0x0,0x0, |
1988 | 0xa3f6ab09,0xbcfac646,0xffffc635,0xffffc01a,0xffffd332,0xffffe649,0xfffff761,0xffffd939,0xffffdd40,0xfff1b92b,0xfff9bd21,0xf1e6960c,0x517a3c00,0x1000000, | 1285 | 0x0,0x0,0x7dc8c8d2,0xfffdfdfd,0xffebebeb,0xfffcfcfd,0xffebebec,0xffececf1,0xffd3d3e0,0xffc9c9da,0xffc6c6d8,0x8d8d8da6,0x0,0x0, |
1989 | 0x12bb8001,0xbcf6c643,0xffffea66,0xfffdc421,0xffffde40,0xfffff057,0xfffffe79,0xffffe94e,0xffffef55,0xfffcea56,0xffe3981c,0xd3cd790b,0x84c75e02,0x279c3d00, | 1286 | 0x0,0x0,0x7dc3c3d0,0xfffdfdfd,0xfffcfcfc,0xffffffff,0xfff6f6f8,0xfff2f2f7,0xffe8e8f1,0xffe0e0ec,0xffdfdfec,0x938e8ea6,0x0,0x0, |
1990 | 0x0,0xdb57b00,0xe6f9bb1a,0xfffdd73b,0xfff8c52d,0xfffff865,0xfff8d75b,0xfff9d943,0xfff1cb44,0xffefc33b,0xfff9d03a,0xe7d78b14,0x76904202,0x11260f00, | 1287 | 0x0,0x0,0x7dbebecd,0xfffdfdfd,0xffffffff,0xffffffff,0xffe8e8ea,0xffeaeaf0,0xffd9d9e1,0xffe0e0e9,0xffe1e1ed,0x938a8aa5,0x0,0x0, |
1991 | 0x0,0x2e89700,0xdcfab310,0xfff8b417,0xfff5ac13,0xffea960a,0xffe88f05,0xffecb64c,0xfffaee74,0xffecbc39,0xfada7f0c,0x36512100,0x1000000,0x0, | 1288 | 0x0,0x0,0x7db9b9cb,0xfffcfcfd,0xffececee,0xfff0f0f6,0xffe3e3e9,0xffe6e6ee,0xffe9e9f2,0xffe6e6f0,0xffe3e3ef,0x938888a3,0x0,0x0, |
1992 | 0x0,0x2e28d00,0xdcf8bc20,0xffffd635,0xfffed334,0xfff8c631,0xfff2b630,0xffefb22e,0xffedad28,0xfffbc325,0xfae89e19,0x295c2200,0x0,0x0, | 1289 | 0x0,0x0,0x7db4b4c8,0xfff8f8fa,0xffefeff1,0xfff3f3f7,0xffebebf0,0xffededf3,0xffebebf3,0xffe9e9f2,0xffe6e6f0,0x938585a2,0x0,0x0, |
1993 | 0x0,0x1d88300,0xcdf0b124,0xffffe84e,0xffffeb50,0xffffec54,0xffffe552,0xffffe043,0xffffdf41,0xffffdd3f,0xfae7aa2a,0x295b2200,0x0,0x0, | 1290 | 0x0,0x0,0x7db5b5ca,0xffefe4d7,0xffe5cfb5,0xffdcc09d,0xffdcc09d,0xffcca26e,0xffc5965c,0xffc18e50,0xffcba77d,0x938282a1,0x0,0x0, |
1994 | 0x0,0x0,0x25bc6c02,0xd6e7ac2f,0xfffef667,0xfffffd70,0xfffff668,0xfffff35b,0xfffff158,0xfef5cf47,0xd0c1741d,0x1b3e1700,0x0,0x0, | 1291 | 0x0,0x0,0x7db2b2c9,0xffeddfcd,0xffe0c5a3,0xffd6b184,0xffe1c7a6,0xffdbbb94,0xffbc8139,0xffb47220,0xffc3945b,0x937f7f9f,0x0,0x0, |
1995 | 0x0,0x0,0x0,0x1aa65600,0xc9dc952f,0xfffdf18f,0xfffffe86,0xfff9e161,0xe1d08d2d,0x70883a06,0x11140700,0x0,0x0,0x0, | 1292 | 0x0,0x0,0x7daeaec6,0xffede0cf,0xffe1c6a5,0xffd8b58b,0xffddc09b,0xffd3ad7e,0xffc08945,0xffb77829,0xffc69862,0x937d7d9e,0x0,0x0, |
1996 | 0x0,0x0,0x0,0x0,0x10924200,0xb9cf7a2f,0xedd99445,0x8695420b,0x1b2c1000,0x1000000,0x0,0x0,0x0,0x0, | 1293 | 0x0,0x0,0x7ca5a5c1,0xffe5dfdd,0xffdfd3cb,0xffddcfc6,0xffd7c7bb,0xffd1bdad,0xffcab19a,0xffc5a991,0xffcab6a9,0x92747499,0x0,0x0, |
1997 | 0x0,0x0,0x0,0x0,0x0,0xa782e00,0x214b1c00,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | 1294 | 0x0,0x0,0x1a6d6d8a,0x455b5b76,0x45585873,0x45545472,0x45515170,0x454d4d6e,0x454a4a6d,0x4547476b,0x45434369,0x2831314e,0x0,0x0 |
1998 | }; | 1295 | }; |
1999 | 1296 | ||
2000 | static const QRgb installed_data[] = { | 1297 | static const QRgb installed_data[] = { |
2001 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1298 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2002 | 0x0,0x0,0x10000ff,0xd0303ff,0x370606ff,0x760808ff,0xa30808ff,0xa90505ff,0x820202ff,0x3e0101ff,0xf0000ff,0x10000ff,0x0,0x0, | 1299 | 0x0,0x0,0x10000ff,0xd0303ff,0x370606ff,0x760808ff,0xa30808ff,0xa90505ff,0x820202ff,0x3e0101ff,0xf0000ff,0x10000ff,0x0,0x0, |
2003 | 0x0,0x10000ff,0x1a0505ff,0x6b0f0fff,0xb72121ff,0xd73030ff,0xe52e2eff,0xee1e1eff,0xf10f0fff,0xde0505ff,0x830101ff,0x1d0000ff,0x10000ff,0x0, | 1300 | 0x0,0x10000ff,0x1a0505ff,0x6b0f0fff,0xb72121ff,0xd73030ff,0xe52e2eff,0xee1e1eff,0xf10f0fff,0xde0505ff,0x830101ff,0x1d0000ff,0x10000ff,0x0, |
2004 | 0x0,0xe0303ff,0x6c0f0fff,0xbe3434ff,0xdd6666ff,0xf07575ff,0xf96161ff,0xfb3e3eff,0xfb2323ff,0xfa0f0fff,0xee0404ff,0x820000ff,0xe0000ff,0x0, | 1301 | 0x0,0xe0303ff,0x6c0f0fff,0xbe3434ff,0xdd6666ff,0xf07575ff,0xf96161ff,0xfb3e3eff,0xfb2323ff,0xfa0f0fff,0xee0404ff,0x820000ff,0xe0000ff,0x0, |
2005 | 0x0,0x390606ff,0xb82121ff,0xdc6868ff,0xf4a7a7ff,0xfdaeaeff,0xfe8383ff,0xff4f4fff,0xfe2e2eff,0xfe1717ff,0xfd0808ff,0xe30101ff,0x3a0000ff,0x0, | 1302 | 0x0,0x390606ff,0xb82121ff,0xdc6868ff,0xf4a7a7ff,0xfdaeaeff,0xfe8383ff,0xff4f4fff,0xfe2e2eff,0xfe1717ff,0xfd0808ff,0xe30101ff,0x3a0000ff,0x0, |
2006 | 0x0,0x7b0707ff,0xd63131ff,0xf07878ff,0xfdb1b1ff,0xffb6b6ff,0xff8888ff,0xff5252ff,0xff3030ff,0xff1818ff,0xfe0909ff,0xfd0101ff,0x7f0000ff,0x0, | 1303 | 0x0,0x7b0707ff,0xd63131ff,0xf07878ff,0xfdb1b1ff,0xffb6b6ff,0xff8888ff,0xff5252ff,0xff3030ff,0xff1818ff,0xfe0909ff,0xfd0101ff,0x7f0000ff,0x0, |
2007 | 0x0,0xa90808ff,0xe53131ff,0xf96565ff,0xfe8686ff,0xff8a8aff,0xff6e6eff,0xff4646ff,0xff2929ff,0xff1515ff,0xff0808ff,0xfe0101ff,0xac0000ff,0x0, | 1304 | 0x0,0xa90808ff,0xe53131ff,0xf96565ff,0xfe8686ff,0xff8a8aff,0xff6e6eff,0xff4646ff,0xff2929ff,0xff1515ff,0xff0808ff,0xfe0101ff,0xac0000ff,0x0, |
2008 | 0x0,0xb20505ff,0xed1f1fff,0xfb4040ff,0xff5252ff,0xff5454ff,0xff4747ff,0xff2f2fff,0xff1d1dff,0xff0e0eff,0xff0505ff,0xff0101ff,0xad0000ff,0x0, | 1305 | 0x0,0xb20505ff,0xed1f1fff,0xfb4040ff,0xff5252ff,0xff5454ff,0xff4747ff,0xff2f2fff,0xff1d1dff,0xff0e0eff,0xff0505ff,0xff0101ff,0xad0000ff,0x0, |
2009 | 0x0,0x8e0202ff,0xf10f0fff,0xfa2424ff,0xfe3030ff,0xff3131ff,0xff2a2aff,0xff1d1dff,0xff1111ff,0xff0808ff,0xff0202ff,0xfe0000ff,0x7f0000ff,0x0, | 1306 | 0x0,0x8e0202ff,0xf10f0fff,0xfa2424ff,0xfe3030ff,0xff3131ff,0xff2a2aff,0xff1d1dff,0xff1111ff,0xff0808ff,0xff0202ff,0xfe0000ff,0x7f0000ff,0x0, |
2010 | 0x0,0x470101ff,0xe40505ff,0xf90f0fff,0xfd1717ff,0xff1919ff,0xff1616ff,0xff0f0fff,0xff0909ff,0xff0303ff,0xff0000ff,0xe50000ff,0x390000ff,0x0, | 1307 | 0x0,0x470101ff,0xe40505ff,0xf90f0fff,0xfd1717ff,0xff1919ff,0xff1616ff,0xff0f0fff,0xff0909ff,0xff0303ff,0xff0000ff,0xe50000ff,0x390000ff,0x0, |
2011 | 0x0,0x120000ff,0x900101ff,0xf20404ff,0xfd0808ff,0xfe0909ff,0xfe0808ff,0xff0606ff,0xff0202ff,0xff0000ff,0xf30000ff,0x830000ff,0xe0000ff,0x0, | 1308 | 0x0,0x120000ff,0x900101ff,0xf20404ff,0xfd0808ff,0xfe0909ff,0xfe0808ff,0xff0606ff,0xff0202ff,0xff0000ff,0xf30000ff,0x830000ff,0xe0000ff,0x0, |
2012 | 0x0,0x20000ff,0x240000ff,0x910000ff,0xeb0101ff,0xfe0101ff,0xfe0101ff,0xff0101ff,0xff0000ff,0xe80000ff,0x870000ff,0x1d0000ff,0x10000ff,0x0, | 1309 | 0x0,0x20000ff,0x240000ff,0x910000ff,0xeb0101ff,0xfe0101ff,0xfe0101ff,0xff0101ff,0xff0000ff,0xe80000ff,0x870000ff,0x1d0000ff,0x10000ff,0x0, |
2013 | 0x0,0x0,0x20000ff,0x120000ff,0x490000ff,0x950000ff,0xc00000ff,0xbf0000ff,0x8e0000ff,0x410000ff,0xf0000ff,0x10000ff,0x0,0x0, | 1310 | 0x0,0x0,0x20000ff,0x120000ff,0x490000ff,0x950000ff,0xc00000ff,0xbf0000ff,0x8e0000ff,0x410000ff,0xf0000ff,0x10000ff,0x0,0x0, |
2014 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1311 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2015 | }; | 1312 | }; |
2016 | 1313 | ||
1314 | static const QRgb install_data[] = { | ||
1315 | 0x0,0x0,0x0,0x2fcac00,0x49feb50d,0xd2ffd436,0x68e2a50e,0x4f7a500,0x8afabb25,0x3edd9508,0x0,0x0,0x0,0x0, | ||
1316 | 0x0,0xfdad00,0x31feb007,0xb9ffd147,0xfdfff275,0xffffff72,0xe6f8d235,0xa0f5be35,0xfffff883,0xf3f9dc4d,0x53d6890a,0x301b00,0x0,0x0, | ||
1317 | 0x2f3a600,0x97fec53f,0xfcffec94,0xffffffa4,0xffffff87,0xffffe951,0xfffed131,0xfffbc232,0xfffef974,0xfffff55e,0xfaf7cb35,0x6bd27f08,0x1522b00,0x0, | ||
1318 | 0x2e09900,0x97f9c240,0xfffffdba,0xfffff082,0xffffcf34,0xffffd534,0xffffed52,0xfffec724,0xfff6bd27,0xfffce047,0xffffd636,0xfdf8b418,0x77c56901,0x1000000, | ||
1319 | 0xa3f6ab09,0xbcfac646,0xffffc635,0xffffc01a,0xffffd332,0xffffe649,0xfffff761,0xffffd939,0xffffdd40,0xfff1b92b,0xfff9bd21,0xf1e6960c,0x517a3c00,0x1000000, | ||
1320 | 0x12bb8001,0xbcf6c643,0xffffea66,0xfffdc421,0xffffde40,0xfffff057,0xfffffe79,0xffffe94e,0xffffef55,0xfffcea56,0xffe3981c,0xd3cd790b,0x84c75e02,0x279c3d00, | ||
1321 | 0x0,0xdb57b00,0xe6f9bb1a,0xfffdd73b,0xfff8c52d,0xfffff865,0xfff8d75b,0xfff9d943,0xfff1cb44,0xffefc33b,0xfff9d03a,0xe7d78b14,0x76904202,0x11260f00, | ||
1322 | 0x0,0x2e89700,0xdcfab310,0xfff8b417,0xfff5ac13,0xffea960a,0xffe88f05,0xffecb64c,0xfffaee74,0xffecbc39,0xfada7f0c,0x36512100,0x1000000,0x0, | ||
1323 | 0x0,0x2e28d00,0xdcf8bc20,0xffffd635,0xfffed334,0xfff8c631,0xfff2b630,0xffefb22e,0xffedad28,0xfffbc325,0xfae89e19,0x295c2200,0x0,0x0, | ||
1324 | 0x0,0x1d88300,0xcdf0b124,0xffffe84e,0xffffeb50,0xffffec54,0xffffe552,0xffffe043,0xffffdf41,0xffffdd3f,0xfae7aa2a,0x295b2200,0x0,0x0, | ||
1325 | 0x0,0x0,0x25bc6c02,0xd6e7ac2f,0xfffef667,0xfffffd70,0xfffff668,0xfffff35b,0xfffff158,0xfef5cf47,0xd0c1741d,0x1b3e1700,0x0,0x0, | ||
1326 | 0x0,0x0,0x0,0x1aa65600,0xc9dc952f,0xfffdf18f,0xfffffe86,0xfff9e161,0xe1d08d2d,0x70883a06,0x11140700,0x0,0x0,0x0, | ||
1327 | 0x0,0x0,0x0,0x0,0x10924200,0xb9cf7a2f,0xedd99445,0x8695420b,0x1b2c1000,0x1000000,0x0,0x0,0x0,0x0, | ||
1328 | 0x0,0x0,0x0,0x0,0x0,0xa782e00,0x214b1c00,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | ||
1329 | }; | ||
1330 | |||
2017 | static const QRgb italic_data[] = { | 1331 | static const QRgb italic_data[] = { |
2018 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1332 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2019 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1333 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2020 | 0x0,0x0,0x0,0x0,0x0,0x0,0x54000000,0x60000000,0x60000000,0x3c000000,0x0,0x0,0x0,0x0, | 1334 | 0x0,0x0,0x0,0x0,0x0,0x0,0x54000000,0x60000000,0x60000000,0x3c000000,0x0,0x0,0x0,0x0, |
2021 | 0x0,0x0,0x0,0x0,0x0,0x0,0x70000000,0xff000000,0xdf000000,0x50000000,0x0,0x0,0x0,0x0, | 1335 | 0x0,0x0,0x0,0x0,0x0,0x0,0x70000000,0xff000000,0xdf000000,0x50000000,0x0,0x0,0x0,0x0, |
2022 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0xbf000000,0x0,0x0,0x0,0x0,0x0, | 1336 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0xbf000000,0x0,0x0,0x0,0x0,0x0, |
2023 | 0x0,0x0,0x0,0x0,0x0,0x0,0xa7000000,0xff000000,0xbf000000,0x0,0x0,0x0,0x0,0x0, | 1337 | 0x0,0x0,0x0,0x0,0x0,0x0,0xa7000000,0xff000000,0xbf000000,0x0,0x0,0x0,0x0,0x0, |
2024 | 0x0,0x0,0x0,0x0,0x0,0x0,0xdf000000,0xe3000000,0x18000000,0x0,0x0,0x0,0x0,0x0, | 1338 | 0x0,0x0,0x0,0x0,0x0,0x0,0xdf000000,0xe3000000,0x18000000,0x0,0x0,0x0,0x0,0x0, |
2025 | 0x0,0x0,0x0,0x0,0x0,0x0,0xdf000000,0xdf000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1339 | 0x0,0x0,0x0,0x0,0x0,0x0,0xdf000000,0xdf000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2026 | 0x0,0x0,0x0,0x0,0x0,0x30000000,0xe7000000,0xdf000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1340 | 0x0,0x0,0x0,0x0,0x0,0x30000000,0xe7000000,0xdf000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2027 | 0x0,0x0,0x0,0x0,0x0,0xbf000000,0xff000000,0x8b000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1341 | 0x0,0x0,0x0,0x0,0x0,0xbf000000,0xff000000,0x8b000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2028 | 0x0,0x0,0x0,0x0,0x0,0xbf000000,0xff000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1342 | 0x0,0x0,0x0,0x0,0x0,0xbf000000,0xff000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2029 | 0x0,0x0,0x0,0x0,0x64000000,0xe7000000,0xff000000,0x8b000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1343 | 0x0,0x0,0x0,0x0,0x64000000,0xe7000000,0xff000000,0x8b000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2030 | 0x0,0x0,0x0,0x0,0x28000000,0x40000000,0x40000000,0x38000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1344 | 0x0,0x0,0x0,0x0,0x28000000,0x40000000,0x40000000,0x38000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2031 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1345 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2032 | }; | 1346 | }; |
2033 | 1347 | ||
2034 | static const QRgb konsole_data[] = { | 1348 | static const QRgb konsole_data[] = { |
2035 | 0x24dadae9,0xf5ddddeb,0xe6d8d8e8,0xe6cfcee3,0xe6c9c8e0,0xe6c2c0dc,0xe6b8b7d7,0xe6aeaed4,0xe6a4a5d0,0xe69b9dcc,0xed9c9dce,0xa08586c6,0x1b6263b6,0x0, | 1349 | 0x24dadae9,0xf5ddddeb,0xe6d8d8e8,0xe6cfcee3,0xe6c9c8e0,0xe6c2c0dc,0xe6b8b7d7,0xe6aeaed4,0xe6a4a5d0,0xe69b9dcc,0xed9c9dce,0xa08586c6,0x1b6263b6,0x0, |
2036 | 0x49e3e3f3,0xfff3f7fc,0xffd4e2f3,0xffdde4f2,0xffdce6f4,0xffdbe6f6,0xffd7e5f8,0xffd2e5fa,0xffcde3fa,0xffc6def7,0xffe0ebf8,0xe0a9aad3,0x33686ab2,0x0, | 1350 | 0x49e3e3f3,0xfff3f7fc,0xffd4e2f3,0xffdde4f2,0xffdce6f4,0xffdbe6f6,0xffd7e5f8,0xffd2e5fa,0xffcde3fa,0xffc6def7,0xffe0ebf8,0xe0a9aad3,0x33686ab2,0x0, |
2037 | 0x61e3e3fd,0xffcee1f6,0xff71a9e4,0xffb6d8f4,0xffa0d5f4,0xff8dd0f6,0xff76c2f6,0xff5db1f5,0xff429ef3,0xff2181e4,0xff83b1e7,0xebaeafdb,0x387778c3,0x0, | 1351 | 0x61e3e3fd,0xffcee1f6,0xff71a9e4,0xffb6d8f4,0xffa0d5f4,0xff8dd0f6,0xff76c2f6,0xff5db1f5,0xff429ef3,0xff2181e4,0xff83b1e7,0xebaeafdb,0x387778c3,0x0, |
2038 | 0x77d9d9f9,0xffcfe3f7,0xff83b5e7,0xffcddbef,0xffb9e3f6,0xfface5ff,0xff87d1ff,0xff61b9ff,0xff41a4fe,0xff1c7ce9,0xff81ace4,0xf8b3b4e2,0x3d8385d0,0x0, | 1352 | 0x77d9d9f9,0xffcfe3f7,0xff83b5e7,0xffcddbef,0xffb9e3f6,0xfface5ff,0xff87d1ff,0xff61b9ff,0xff41a4fe,0xff1c7ce9,0xff81ace4,0xf8b3b4e2,0x3d8385d0,0x0, |
2039 | 0x91d6d6f7,0xffd0e4f7,0xff7eb9ea,0xffc6e8f6,0xffa7dffa,0xff80c4f3,0xff99a075,0xff938f61,0xff6a7770,0xff275498,0xff80a3df,0xfeb7bae8,0x3f8c90da,0x0, | 1353 | 0x91d6d6f7,0xffd0e4f7,0xff7eb9ea,0xffc6e8f6,0xffa7dffa,0xff80c4f3,0xff99a075,0xff938f61,0xff6a7770,0xff275498,0xff80a3df,0xfeb7bae8,0x3f8c90da,0x0, |
2040 | 0xaed5d5f7,0xffd2e7f8,0xff78bdee,0xff94d3f7,0xff4ca7f3,0xff7e9282,0xffe3bf37,0xffefdeb5,0xffdabf96,0xff6d5a50,0xff809ddf,0xffbcc0ee,0x40949ae5,0x0, | 1354 | 0xaed5d5f7,0xffd2e7f8,0xff78bdee,0xff94d3f7,0xff4ca7f3,0xff7e9282,0xffe3bf37,0xffefdeb5,0xffdabf96,0xff6d5a50,0xff809ddf,0xffbcc0ee,0x40949ae5,0x0, |
2041 | 0xc7d3d3f7,0xffcee5f8,0xff3c97e5,0xff3396ef,0xff198afa,0xff517e9a,0xffecbc37,0xfffffae2,0xffe9d7bf,0xff694e4e,0xff7291e8,0xffbac5fa,0x409fa7f5,0x0, | 1355 | 0xc7d3d3f7,0xffcee5f8,0xff3c97e5,0xff3396ef,0xff198afa,0xff517e9a,0xffecbc37,0xfffffae2,0xffe9d7bf,0xff694e4e,0xff7291e8,0xffbac5fa,0x409fa7f5,0x0, |
2042 | 0xe1d5d5f6,0xffc7e0f7,0xff2289e7,0xff68949f,0xffd29e2d,0xffeeab29,0xfffdb818,0xfffffae2,0xffeddfc2,0xffb07818,0xff985e0a,0xff937878,0x507b76a0,0x308091f, | 1356 | 0xe1d5d5f6,0xffc7e0f7,0xff2289e7,0xff68949f,0xffd29e2d,0xffeeab29,0xfffdb818,0xfffffae2,0xffeddfc2,0xffb07818,0xff985e0a,0xff937878,0x507b76a0,0x308091f, |
2043 | 0xf3d5d4f7,0xffdae9f8,0xff61a5ea,0xff99a396,0xfff0cf81,0xfffef9e6,0xfffcb91f,0xfffff4c9,0xfff0e7b7,0xffd9c070,0xffd9b046,0xffa98f81,0x6471739e,0x61b1d4a, | 1357 | 0xf3d5d4f7,0xffdae9f8,0xff61a5ea,0xff99a396,0xfff0cf81,0xfffef9e6,0xfffcb91f,0xfffff4c9,0xfff0e7b7,0xffd9c070,0xffd9b046,0xffa98f81,0x6471739e,0x61b1d4a, |
2044 | 0xd2cbccf6,0xe6d4d4e8,0xede2d5c8,0xfff6d395,0xffeeb034,0xfffae7b8,0xfff9b625,0xfffee793,0xffeadba8,0xffd6be75,0xffbc9946,0xff9a836b,0x886c5b5f,0xc391f27, | 1358 | 0xd2cbccf6,0xe6d4d4e8,0xede2d5c8,0xfff6d395,0xffeeb034,0xfffae7b8,0xfff9b625,0xfffee793,0xffeadba8,0xffd6be75,0xffbc9946,0xff9a836b,0x886c5b5f,0xc391f27, |
2045 | 0x43a2a3e7,0x607575b0,0x9dc5943a,0xfefbc235,0xfff7d171,0xfff4d381,0xfff8c344,0xfffbdb70,0xffdfc890,0xffdcc280,0xffdab659,0xffc08c25,0xcf723b02,0x18582400, | 1359 | 0x43a2a3e7,0x607575b0,0x9dc5943a,0xfefbc235,0xfff7d171,0xfff4d381,0xfff8c344,0xfffbdb70,0xffdfc890,0xffdcc280,0xffdab659,0xffc08c25,0xcf723b02,0x18582400, |
2046 | 0x0,0x2f3a200,0x28febe00,0x98fec940,0xedfad06c,0xfff2c965,0xfff3ce6e,0xfff7cd57,0xffd9c28c,0xffdec688,0xffc4a057,0xbea4731b,0x6f703d03,0xc572600, | 1360 | 0x0,0x2f3a200,0x28febe00,0x98fec940,0xedfad06c,0xfff2c965,0xfff3ce6e,0xfff7cd57,0xffd9c28c,0xffdec688,0xffc4a057,0xbea4731b,0x6f703d03,0xc572600, |
2047 | 0x0,0x0,0x0,0x17fca300,0xb0fcb20a,0xfff8b41b,0xffe4ae3f,0xffe7b03e,0xffc99f56,0xffc99943,0xe4a26b1d,0x5a5c2700,0xa1e0a00,0x1000000, | 1361 | 0x0,0x0,0x0,0x17fca300,0xb0fcb20a,0xfff8b41b,0xffe4ae3f,0xffe7b03e,0xffc99f56,0xffc99943,0xe4a26b1d,0x5a5c2700,0xa1e0a00,0x1000000, |
2048 | 0x0,0x0,0x0,0x0,0x15ffb200,0x47a56e00,0x4e916312,0x568e6015,0x4e79531c,0x51724912,0x44573205,0x132a1100,0x0,0x0 | 1362 | 0x0,0x0,0x0,0x0,0x15ffb200,0x47a56e00,0x4e916312,0x568e6015,0x4e79531c,0x51724912,0x44573205,0x132a1100,0x0,0x0 |
2049 | }; | 1363 | }; |
2050 | 1364 | ||
2051 | static const QRgb language_data[] = { | 1365 | static const QRgb language_data[] = { |
2052 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1366 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2053 | 0x0,0x0,0x0,0x7216ac7,0x2d2068c6,0x481d64c5,0x5d1a5ebf,0x4d1759bb,0x311454b7,0xd1048a4,0x0,0x0,0x0,0x0, | 1367 | 0x0,0x0,0x0,0x7216ac7,0x2d2068c6,0x481d64c5,0x5d1a5ebf,0x4d1759bb,0x311454b7,0xd1048a4,0x0,0x0,0x0,0x0, |
2054 | 0x0,0x82571cc,0x5e2773ce,0xca4684cd,0xf15078aa,0xfe89acd4,0xffafcdef,0xff7a9cc4,0xf473a0d7,0xd44c84d3,0x74154eb1,0xf083488,0x0,0x0, | 1368 | 0x0,0x82571cc,0x5e2773ce,0xca4684cd,0xf15078aa,0xfe89acd4,0xffafcdef,0xff7a9cc4,0xf473a0d7,0xd44c84d3,0x74154eb1,0xf083488,0x0,0x0, |
2055 | 0xe2773ce,0xab3983d8,0xfc8ac4f3,0xff7d8388,0xffe397a5,0xffa62927,0xffb6647a,0xffb3b3b4,0xffa4b7c0,0xffc4ecfe,0xfe8ec4f1,0xc4275fbc,0x20052e81,0x0, | 1369 | 0xe2773ce,0xab3983d8,0xfc8ac4f3,0xff7d8388,0xffe397a5,0xffa62927,0xffb6647a,0xffb3b3b4,0xffa4b7c0,0xffc4ecfe,0xfe8ec4f1,0xc4275fbc,0x20052e81,0x0, |
2056 | 0x8d317cd5,0xff7cbcf6,0xffb6eaff,0xff717676,0xffee9492,0xffb41815,0xffb90d0b,0xffdb9798,0xff666e72,0xffabd0df,0xffb2e9ff,0xff7fbdf5,0xb01a4eb0,0xd001442, | 1370 | 0x8d317cd5,0xff7cbcf6,0xffb6eaff,0xff717676,0xffee9492,0xffb41815,0xffb90d0b,0xffdb9798,0xff666e72,0xffabd0df,0xffb2e9ff,0xff7fbdf5,0xb01a4eb0,0xd001442, |
2057 | 0xed4990e2,0xff8dccff,0xffb0e8ff,0xff545959,0xff6e6b6a,0xff593932,0xff3a150e,0xff554e47,0xff282d25,0xff52656e,0xfface6ff,0xff8eccff,0xf53f79d4,0x32001b58, | 1371 | 0xed4990e2,0xff8dccff,0xffb0e8ff,0xff545959,0xff6e6b6a,0xff593932,0xff3a150e,0xff554e47,0xff282d25,0xff52656e,0xfface6ff,0xff8eccff,0xf53f79d4,0x32001b58, |
2058 | 0xfc5297e5,0xff8ac9ff,0xff9fdcff,0xff363d3c,0xff6e4749,0xffd00303,0xffab0e01,0xff7c1a14,0xffad130f,0xff733036,0xff99d5f8,0xff85c4ff,0xfd4e89de,0x40001850, | 1372 | 0xfc5297e5,0xff8ac9ff,0xff9fdcff,0xff363d3c,0xff6e4749,0xffd00303,0xffab0e01,0xff7c1a14,0xffad130f,0xff733036,0xff99d5f8,0xff85c4ff,0xfd4e89de,0x40001850, |
2059 | 0xbd3b80d3,0xff8dccfd,0xff9ddbff,0xff7aa2b4,0xff6f5956,0xffe28b00,0xffeed004,0xffb45e0f,0xfffa7900,0xffa96a30,0xff92cff7,0xff88c7fd,0xda3064bb,0x2c000f31, | 1373 | 0xbd3b80d3,0xff8dccfd,0xff9ddbff,0xff7aa2b4,0xff6f5956,0xffe28b00,0xffeed004,0xffb45e0f,0xfffa7900,0xffa96a30,0xff92cff7,0xff88c7fd,0xda3064bb,0x2c000f31, |
2060 | 0x3b1e5db3,0xec5596db,0xff9edbfc,0xffb5e8fd,0xff6b645a,0xffb18e4f,0xff998c6a,0xff967b2d,0xffb5ae2f,0xff98a082,0xff99d6fa,0xf25088d3,0x73062871,0xd000000, | 1374 | 0x3b1e5db3,0xec5596db,0xff9edbfc,0xffb5e8fd,0xff6b645a,0xffb18e4f,0xff998c6a,0xff967b2d,0xffb5ae2f,0xff98a082,0xff99d6fa,0xf25088d3,0x73062871,0xd000000, |
2061 | 0x20b2d5d,0x43174e9e,0xc8427cc6,0xfe88b9e7,0xff8a9eab,0xffc9d8e1,0xffcfdce4,0xffb9ccd6,0xffadccdf,0xff81b3e2,0xdb3a6cba,0x6d05256a,0x1900050f,0x1000000, | 1375 | 0x20b2d5d,0x43174e9e,0xc8427cc6,0xfe88b9e7,0xff8a9eab,0xffc9d8e1,0xffcfdce4,0xffb9ccd6,0xffadccdf,0xff81b3e2,0xdb3a6cba,0x6d05256a,0x1900050f,0x1000000, |
2062 | 0x0,0x1000000,0x11071e44,0x911a4fa7,0xffb2d1ef,0xfdb3caea,0xdc5e7fbf,0xc64166b0,0xa61a4295,0x6e082970,0x2c000a23,0xc000000,0x1000000,0x0, | 1376 | 0x0,0x1000000,0x11071e44,0x911a4fa7,0xffb2d1ef,0xfdb3caea,0xdc5e7fbf,0xc64166b0,0xa61a4295,0x6e082970,0x2c000a23,0xc000000,0x1000000,0x0, |
2063 | 0x0,0x0,0x10b45b0,0xbe2a61bd,0xe85c87c8,0x890e3683,0x29010716,0x13000000,0xe000000,0x6000000,0x1000000,0x0,0x0,0x0, | 1377 | 0x0,0x0,0x10b45b0,0xbe2a61bd,0xe85c87c8,0x890e3683,0x29010716,0x13000000,0xe000000,0x6000000,0x1000000,0x0,0x0,0x0, |
2064 | 0x0,0x0,0x170a41a9,0x9e0a3d9d,0x48041c4e,0x12000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1378 | 0x0,0x0,0x170a41a9,0x9e0a3d9d,0x48041c4e,0x12000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2065 | 0x0,0x0,0x1052259,0xc010a1b,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1379 | 0x0,0x0,0x1052259,0xc010a1b,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2066 | }; | 1380 | }; |
2067 | 1381 | ||
1382 | static const QRgb Language_data[] = { | ||
1383 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1384 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1385 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1386 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1387 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1388 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1389 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1390 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x411d62c2,0x431b5ebb,0x441859b7, | ||
1391 | 0x441858b5,0x4000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1392 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x31216bc7,0x822069c7,0xc12068c6,0xf01f67c6, | ||
1393 | 0xff1d65c6,0xff1c63c4,0xff1b60c2,0xff195ec1,0xff185cc0,0xff175abe,0xf01658bc,0xc31453b7,0x87124eb0,0x370f46a1,0x4000000,0x1000000,0x0,0x0, | ||
1394 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x61246fcb,0xe0236ecb, | ||
1395 | 0xff216cca,0xff387fda,0xff609de7,0xff85b7f1,0xffaad3ff,0xffacd4ff,0xffc4e2ff,0xffc3e2ff,0xffaad3ff,0xffa7d2ff,0xff80b2ee,0xff5993e1,0xff2e6ecf,0xff114fb7, | ||
1396 | 0xe20f4cb4,0x6b0d42a2,0x8000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1397 | 0x512571cc,0xe02471cc,0xff2c77d2,0xff68a6eb,0xff7c9ebc,0xff737b7f,0xff505052,0xff2c2c2c,0xffb6bec2,0xffe6eef3,0xffe6edf3,0xffe4ecf2,0xffa9b1b7,0xff4f5355, | ||
1398 | 0xff6e7a7f,0xffd7f3ff,0xffc9edff,0xff9fd0fa,0xff5d98e3,0xff1855bc,0xe30c45ae,0x5c093b99,0x7000000,0x2000000,0x0,0x0,0x0,0x0, | ||
1399 | 0x0,0x0,0x0,0x902572cd,0xff2471cd,0xff579be6,0xffacddff,0xff161616,0xffa8a8a8,0xffffffff,0xffc8b8b9,0xffef0030,0xff503020,0xff484849, | ||
1400 | 0xff606060,0xff808080,0xffb0b0b0,0xff989899,0xff4d5254,0xffd9f4ff,0xffd1f2ff,0xffc9efff,0xffc1edff,0xffa5dbff,0xff4883d8,0xff0942af,0x9d073a9d,0xd000000, | ||
1401 | 0x2000000,0x0,0x0,0x0,0x0,0x0,0xa02672cd,0xff2976d1,0xff72b2f6,0xffb4e7ff,0xffc0edff,0xff404040,0xffc8c8c9,0xffffffff, | ||
1402 | 0xffe06090,0xffff0000,0xff923822,0xffff0000,0xffef3060,0xffef97da,0xffffffff,0xffc8c8c9,0xff404040,0xffc8dbe5,0xffd1f2ff,0xffc9efff,0xffc1edff,0xffb9ebff, | ||
1403 | 0xffb1e8ff,0xff70adf0,0xff0d45b1,0xae05379b,0x10000000,0x3000000,0x0,0x0,0x0,0x812673cd,0xff2a76d1,0xff6aacf6,0xffabe4ff,0xffb7eaff, | ||
1404 | 0xffbfecff,0xff363636,0xffa0a0a0,0xffffffff,0xffff6060,0xffff0000,0xffef0000,0xffbc220c,0xffff0000,0xffff0000,0xffffcad5,0xffe0e0e0,0xff8c8c8c,0xff59626a, | ||
1405 | 0xffcbecfa,0xffc8efff,0xffc0edff,0xffb8eaff,0xffb0e8ff,0xffa5e2ff,0xff5f9eef,0xff0b41ae,0x87022f8c,0xf000000,0x2000000,0x0,0x21256fc9,0xff2572ce, | ||
1406 | 0xff5fa3f3,0xff8bcaff,0xffade7ff,0xffb5eaff,0xffbdecff,0xff222222,0xffa0a0a0,0xffffffff,0xffff8a76,0xffff0000,0xffd51616,0xff661616,0xff961616,0xffff0000, | ||
1407 | 0xffff0000,0xffffffff,0xffa0a0a2,0xff3d4147,0xff56636d,0xffc5eeff,0xffbdecff,0xffb6eaff,0xffaee8ff,0xffa7e4ff,0xff89c8ff,0xff5290e9,0xff0236a6,0x3f011b54, | ||
1408 | 0xa000000,0x1000000,0x912470cb,0xff3882da,0xff76b7ff,0xff90cfff,0xffabe6ff,0xffb2e9ff,0xffbaebff,0xff0c1c0c,0xff989899,0xffffffff,0xff806070,0xff384848, | ||
1409 | 0xff585858,0xff262616,0xff000000,0xff6c3c3c,0xff800000,0xffb0b0b0,0xff646455,0xff223232,0xff101000,0xff60767f,0xffbbebff,0xffb3e9ff,0xfface7ff,0xffa6e3ff, | ||
1410 | 0xff8bcaff,0xff70b1ff,0xff1c53bc,0xa8002b8c,0x18000000,0x4000000,0xe02470cc,0xff5da1ef,0xff7bbbff,0xff8dccff,0xffa8e5ff,0xffafe8ff,0xffb6eaff,0xff000000, | ||
1411 | 0xff7e7e7f,0xffe0e0e0,0xff000000,0xff324222,0xff585858,0xff3c3c2c,0xff000000,0xff202010,0xff324232,0xff585858,0xff4e4e4e,0xff102010,0xff000000,0xff000000, | ||
1412 | 0xffb6eaff,0xffb0e8ff,0xffa9e5ff,0xffa4e1ff,0xff8ac9ff,0xff74b5ff,0xff4d8ae3,0xe800309e,0x28000000,0xa000000,0xff236fcc,0xff70b2f9,0xff7fbfff,0xff84c3ff, | ||
1413 | 0xffa0deff,0xffabe6ff,0xffb1e8ff,0xff000000,0xff747475,0xffe0e0e0,0xff000000,0xff201010,0xff8c2c2c,0xffd00000,0xff900000,0xff3c1c0c,0xff183828,0xff525242, | ||
1414 | 0xff585858,0xff262616,0xff000000,0xff100000,0xffb2e9ff,0xffabe7ff,0xffa6e3ff,0xff9cdaff,0xff7fbfff,0xff78b9ff,0xff65a4f4,0xff0032a4,0x33000000,0x10000000, | ||
1415 | 0xff226dcb,0xff7ebeff,0xff83c3ff,0xff88c7ff,0xff8ecdff,0xffa3e1ff,0xfface7ff,0xff000000,0xff586859,0xffc8c8c9,0xff100000,0xff900000,0xffef0000,0xffff0000, | ||
1416 | 0xffb00000,0xff700000,0xff501000,0xff7c2c2c,0xff7c422c,0xff961616,0xffa00000,0xff800000,0xff56737f,0xffa7e4ff,0xff9fddff,0xff87c7ff,0xff81c1ff,0xff7cbcff, | ||
1417 | 0xff77b7ff,0xff0032a4,0x38000000,0x12000000,0xf0216bc8,0xff6aacf1,0xff87c6ff,0xff8ccbff,0xff91cfff,0xff95d4ff,0xffa0ddff,0xff000000,0xff2c2c2c,0xff9aa6b2, | ||
1418 | 0xff400000,0xffa00000,0xffe00000,0xffff0000,0xffe02000,0xffa02000,0xff5c0c0c,0xffd00000,0xffff0000,0xffff0000,0xffc00000,0xff800000,0xff53717f,0xff9cdaff, | ||
1419 | 0xff8fceff,0xff8ac9ff,0xff85c4ff,0xff7fbfff,0xff5c99e8,0xf40031a1,0x39000000,0x13000000,0xb41f66c3,0xff4c91df,0xff8acaff,0xff90ceff,0xff95d3ff,0xff9ad8ff, | ||
1420 | 0xff9edcff,0xff000000,0xffa9e5ff,0xffb7d1e6,0xff200000,0xff900000,0xffd04600,0xffffdf00,0xffffff00,0xffefb000,0xff763c16,0xffd02c00,0xffff0000,0xffff0000, | ||
1421 | 0xffd03600,0xffb02c00,0xff4d6c7f,0xff97d6ff,0xff92d1ff,0xff8dccff,0xff88c7ff,0xff83c2ff,0xff3770cc,0xc7002c90,0x35000000,0x11000000,0x491b5aaf,0xff246bc9, | ||
1422 | 0xff87c6fb,0xff93d2ff,0xff98d7ff,0xff9ddbff,0xffa2e0ff,0xff53717f,0xffade7ff,0xffb8d0e6,0xff000000,0xffdf6000,0xffffa000,0xffffff00,0xffffff00,0xffffc000, | ||
1423 | 0xff9c4c0c,0xffd0b020,0xffffc000,0xffffc000,0xffffc000,0xffff8000,0xff4f6e7f,0xff9bd9ff,0xff96d4ff,0xff91cfff,0xff8bcaff,0xff7dbcf9,0xff083baa,0x74001c5b, | ||
1424 | 0x2c000000,0xc000000,0x5000000,0xc61b60bd,0xff397dd2,0xff96d5ff,0xff9cdaff,0xffa1dfff,0xffa6e3ff,0xfface7ff,0xffb3e9ff,0xffb9d0e6,0xff000000,0xffff8000, | ||
1425 | 0xffefb000,0xffa08600,0xff707020,0xffa6602c,0xff7c480c,0xffb09020,0xffffff00,0xffffff00,0xffffdf00,0xffef7600,0xff51707f,0xff9fdcff,0xff99d7ff,0xff94d2ff, | ||
1426 | 0xff8ecdff,0xff2258bb,0xd2002d95,0x3d000000,0x1d000000,0x5000000,0x1000000,0x1d0f366c,0xf21a5ebf,0xff498bd8,0xff9fdcff,0xffa4e2ff,0xffaae6ff,0xffb2e9ff, | ||
1427 | 0xffbaebff,0xffbbd0e5,0xff000000,0xffdf8000,0xff705030,0xffa4a7ac,0xffadb2b9,0xff705600,0xff564626,0xffefb000,0xffb09000,0xff808000,0xff806000,0xff4b5a40, | ||
1428 | 0xffa7e4ff,0xffa2dfff,0xff9cdaff,0xff96d5ff,0xff366dc6,0xe900309d,0x51000a20,0x2c000000,0xe000000,0x1000000,0x0,0x4000000,0x4311438a,0xe61658b9, | ||
1429 | 0xff3072c9,0xff95d2f7,0xffafe8ff,0xffb7eaff,0xffbfedff,0xffbad0e4,0xff000000,0xff505356,0xffbfc9d9,0xffbdc7d8,0xffbbc6d7,0xffa9afba,0xff7d838e,0xff565c66, | ||
1430 | 0xff838c9b,0xffb1bdd2,0xff8fabc1,0xffb3e9ff,0xffabe6ff,0xffa4e2ff,0xff8bc7f4,0xff1d51b5,0xdd002f9a,0x6900174b,0x33000000,0x16000000,0x4000000,0x0, | ||
1431 | 0x0,0x0,0x7000000,0x2809244c,0xbf1350ad,0xff1d5dbf,0xff629ddc,0xffb1e2fb,0xffc4eeff,0xffc8ebfa,0xff000000,0xffb9ced8,0xffbed0d8,0xffc1d0d8, | ||
1432 | 0xffc2d0d8,0xffbfd0d8,0xffbbcfd8,0xffb6cdd8,0xffb0ccd8,0xffaac9d8,0xffacd4e4,0xffb7eaff,0xffa3dcf9,0xff538bd2,0xff0a3daa,0xc7002c90,0x50000a21,0x32000000, | ||
1433 | 0x19000000,0x6000000,0x0,0x0,0x0,0x0,0x1000000,0x6000000,0x16000000,0x600d377c,0xce104aaa,0xff104eb6,0xff5489d1,0xffa0c7ec, | ||
1434 | 0xffd9f4ff,0xffe1f6ff,0xffe9f9ff,0xffeefaff,0xfff0fbff,0xffecfaff,0xffe6f8ff,0xffdef5ff,0xffd5f3ff,0xffc0e4f9,0xff86b3e3,0xff4677c6,0xff0032a4,0xd2002d95, | ||
1435 | 0x75001b59,0x3d000000,0x2b000000,0x15000000,0x6000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0xe000000, | ||
1436 | 0x1e000000,0x56082a65,0xda0d46aa,0xff3f72c5,0xffdcf5ff,0xffe5f8ff,0xffeefaff,0xffe7f0fa,0xff8ea8da,0xff7b9ad4,0xff7698d3,0xff3965bc,0xff2957b6,0xff0032a4, | ||
1437 | 0xe900309d,0xbb002b8c,0x6800174c,0x3c000000,0x2f000000,0x1e000000,0xe000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1438 | 0x0,0x0,0x0,0x1000000,0x6000000,0xf000000,0xe30c47af,0xff89b2e2,0xffddf5ff,0xffe6f8ff,0xffa6bfe5,0xff1548b0,0xdd05379f,0xa4032c83, | ||
1439 | 0xa2022b84,0xa1012983,0x71001c5d,0x5700123c,0x3b000000,0x34000000,0x29000000,0x1b000000,0xf000000,0x6000000,0x1000000,0x0,0x0,0x0, | ||
1440 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x410c46af,0xff1751b6,0xffc6e7fa,0xffc0def5,0xff3e6dc1, | ||
1441 | 0xf4063ca8,0x99042b7d,0x41000000,0x33000000,0x29000000,0x26000000,0x24000000,0x1e000000,0x17000000,0x11000000,0xb000000,0x5000000,0x1000000,0x0, | ||
1442 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa10b45af, | ||
1443 | 0xff5284ce,0xff6c99d6,0xff083fad,0xc7063697,0x5c02153c,0x38000000,0x24000000,0x13000000,0xb000000,0xa000000,0x8000000,0x5000000,0x2000000,0x1000000, | ||
1444 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1445 | 0x0,0x0,0x100b45b0,0xff0a44b0,0xff154db3,0xe8083da6,0x8104266b,0x3e000000,0x2c000000,0x19000000,0xa000000,0x2000000,0x0,0x0, | ||
1446 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1447 | 0x0,0x0,0x0,0x0,0x0,0x0,0x720a43ad,0xff0942af,0x9b073690,0x4d020d24,0x34000000,0x20000000,0xf000000,0x4000000, | ||
1448 | 0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1449 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15083385,0x35052869,0x2c000000,0x27000000, | ||
1450 | 0x15000000,0x8000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1451 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1452 | 0x3000000,0xb000000,0x11000000,0xb000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1453 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1454 | 0x0,0x0,0x0,0x0,0x0,0x1000000,0x2000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1455 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1456 | 0x0,0x0 | ||
1457 | }; | ||
1458 | |||
2068 | static const QRgb left_data[] = { | 1459 | static const QRgb left_data[] = { |
2069 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1460 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2070 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1461 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2071 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | 1462 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, |
2072 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | 1463 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, |
2073 | 0x14000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x64000000,0x0,0x0,0x0,0x0, | 1464 | 0x14000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x64000000,0x0,0x0,0x0,0x0, |
2074 | 0x8000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x28000000,0x0,0x0,0x0,0x0, | 1465 | 0x8000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x28000000,0x0,0x0,0x0,0x0, |
2075 | 0x1c000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0x1c000000, | 1466 | 0x1c000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0x1c000000, |
2076 | 0x4000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x14000000,0x0,0x0,0x0,0x0, | 1467 | 0x4000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x14000000,0x0,0x0,0x0,0x0, |
2077 | 0x18000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x78000000,0x0,0x0,0x0,0x0, | 1468 | 0x18000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x78000000,0x0,0x0,0x0,0x0, |
2078 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | 1469 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, |
2079 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | 1470 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, |
2080 | 0x14000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x64000000,0x0,0x0,0x0,0x0, | 1471 | 0x14000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x64000000,0x0,0x0,0x0,0x0, |
2081 | 0x8000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x28000000,0x0,0x0,0x0,0x0, | 1472 | 0x8000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x28000000,0x0,0x0,0x0,0x0, |
2082 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1473 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2083 | }; | 1474 | }; |
2084 | 1475 | ||
2085 | static const QRgb library_data[] = { | 1476 | static const QRgb library_data[] = { |
2086 | 0x0,0x0,0x0,0x1fcfcfd1,0xbbe2e2e4,0xbbe3e3e6,0xbbe0e0e4,0xbbdcdce2,0xbbd6d6df,0xb3c3c3d0,0x218f8f9e,0x0,0x0,0x0, | 1477 | 0x0,0x0,0x0,0x1fcfcfd1,0xbbe2e2e4,0xbbe3e3e6,0xbbe0e0e4,0xbbdcdce2,0xbbd6d6df,0xb3c3c3d0,0x218f8f9e,0x0,0x0,0x0, |
2087 | 0x0,0x0,0x0,0x2dc8c8cd,0xfff6f6f7,0xffffffff,0xffffffff,0xfffcfcfd,0xfff5f5f9,0xffd9d9e4,0xdccbcbd8,0x1f828294,0x0,0x0, | 1478 | 0x0,0x0,0x0,0x2dc8c8cd,0xfff6f6f7,0xffffffff,0xffffffff,0xfffcfcfd,0xfff5f5f9,0xffd9d9e4,0xdccbcbd8,0x1f828294,0x0,0x0, |
2088 | 0x0,0x0,0x0,0x2dc3c3ca,0xfff5f5f6,0xffeef5fe,0xfffefeff,0xfffcfcfd,0xfff5f5f9,0xffd9d9e4,0xfffafafc,0xd8c4c4d4,0x1c78788e,0x0, | 1479 | 0x0,0x0,0x0,0x2dc3c3ca,0xfff5f5f6,0xffeef5fe,0xfffefeff,0xfffcfcfd,0xfff5f5f9,0xffd9d9e4,0xfffafafc,0xd8c4c4d4,0x1c78788e,0x0, |
2089 | 0x0,0x0,0x0,0x3193aed0,0xff7dd2f5,0xff10d2fc,0xff6bcdf8,0xfff9f9fd,0xfff5f5f9,0xffd4d4e1,0xffd5d5e0,0xffcdcddc,0xcea0a0bb,0x709090b, | 1480 | 0x0,0x0,0x0,0x3193aed0,0xff7dd2f5,0xff10d2fc,0xff6bcdf8,0xfff9f9fd,0xfff5f5f9,0xffd4d4e1,0xffd5d5e0,0xffcdcddc,0xcea0a0bb,0x709090b, |
2090 | 0x0,0x0,0x0,0x9e1bbff9,0xff05caff,0xff00c7ff,0xff01c6ff,0xff68baf2,0xfff4f4f8,0xffeeeef5,0xffe5e5ef,0xffdadbe8,0xf2c1c1d4,0x1108080b, | 1481 | 0x0,0x0,0x0,0x9e1bbff9,0xff05caff,0xff00c7ff,0xff01c6ff,0xff68baf2,0xfff4f4f8,0xffeeeef5,0xffe5e5ef,0xffdadbe8,0xf2c1c1d4,0x1108080b, |
2091 | 0x0,0x581e00,0x42fb761c,0xdd51b3c3,0xff06d2ff,0xff0ab0ff,0xff04adff,0xff32aaf0,0xfff1f1f6,0xffececf4,0xffe3e3ef,0xffdbdce9,0xf2bebfd3,0x1108080a, | 1482 | 0x0,0x581e00,0x42fb761c,0xdd51b3c3,0xff06d2ff,0xff0ab0ff,0xff04adff,0xff32aaf0,0xfff1f1f6,0xffececf4,0xffe3e3ef,0xffdbdce9,0xf2bebfd3,0x1108080a, |
2092 | 0x0,0x57fb862f,0xfeff9033,0xff839291,0xff01c1ff,0xff0bb1ff,0xff00b3ff,0xff30aaed,0xffeaeaf1,0xffe8e8f2,0xffe6e6f0,0xffdadbe8,0xf2bcbdd2,0x1108080a, | 1483 | 0x0,0x57fb862f,0xfeff9033,0xff839291,0xff01c1ff,0xff0bb1ff,0xff00b3ff,0xff30aaed,0xffeaeaf1,0xffe8e8f2,0xffe6e6f0,0xffdadbe8,0xf2bcbdd2,0x1108080a, |
2093 | 0x0,0x64f6812f,0xffff8931,0xfffd6f1f,0xff73869c,0xff0ea7f9,0xff01b49a,0xff05de22,0xff97e1a0,0xffebebf3,0xffe8e8f2,0xffdfe0eb,0xf2bdbed3,0x1107070a, | 1484 | 0x0,0x64f6812f,0xffff8931,0xfffd6f1f,0xff73869c,0xff0ea7f9,0xff01b49a,0xff05de22,0xff97e1a0,0xffebebf3,0xffe8e8f2,0xffdfe0eb,0xf2bdbed3,0x1107070a, |
2094 | 0x0,0x53e4641e,0xfffd7021,0xffff7427,0xffe27d2a,0xff0daf32,0xff02ce0d,0xff00cd0c,0xff07d011,0xffb8d9c1,0xffebebf3,0xffdcdde9,0xf2babbd1,0x1107070a, | 1485 | 0x0,0x53e4641e,0xfffd7021,0xffff7427,0xffe27d2a,0xff0daf32,0xff02ce0d,0xff00cd0c,0xff07d011,0xffb8d9c1,0xffebebf3,0xffdcdde9,0xf2babbd1,0x1107070a, |
2095 | 0x0,0x2160600,0x7bca4610,0xfdf95415,0xffcb6029,0xff02c110,0xff0fca1a,0xff04b015,0xff00da09,0xffa6d3ae,0xffededf5,0xffe2e3ed,0xf2bbbcd2,0x1107070a, | 1486 | 0x0,0x2160600,0x7bca4610,0xfdf95415,0xffcb6029,0xff02c110,0xff0fca1a,0xff04b015,0xff00da09,0xffa6d3ae,0xffededf5,0xffe2e3ed,0xf2bbbcd2,0x1107070a, |
2096 | 0x0,0x0,0x1000000,0x66884643,0xffd3d9d9,0xff32d43c,0xff0fe813,0xff00c80c,0xff04e707,0xffb2d4b9,0xfff0f0f6,0xffe3e5ef,0xf2babbd2,0x11060609, | 1487 | 0x0,0x0,0x1000000,0x66884643,0xffd3d9d9,0xff32d43c,0xff0fe813,0xff00c80c,0xff04e707,0xffb2d4b9,0xfff0f0f6,0xffe3e5ef,0xf2babbd2,0x11060609, |
2097 | 0x0,0x0,0x0,0x2d8f8fb0,0xffebebf2,0xffeef8ef,0xff4bde50,0xff44c74c,0xffbed8c4,0xfff0f0f5,0xfff2f2f8,0xffdfe1ec,0xf2b6b7d0,0x11060609, | 1488 | 0x0,0x0,0x0,0x2d8f8fb0,0xffebebf2,0xffeef8ef,0xff4bde50,0xff44c74c,0xffbed8c4,0xfff0f0f5,0xfff2f2f8,0xffdfe1ec,0xf2b6b7d0,0x11060609, |
2098 | 0x0,0x0,0x0,0x278888ab,0xe7c1c1d3,0xe8cacad9,0xe8c5c6d5,0xe8bebed0,0xe8c1c1d4,0xe8bebed3,0xe8bbbbd1,0xe8b3b3cc,0xdb9494b7,0x10050508, | 1489 | 0x0,0x0,0x0,0x278888ab,0xe7c1c1d3,0xe8cacad9,0xe8c5c6d5,0xe8bebed0,0xe8c1c1d4,0xe8bebed3,0xe8bbbbd1,0xe8b3b3cc,0xdb9494b7,0x10050508, |
2099 | 0x0,0x0,0x0,0x1000000,0xb000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0x2000000 | 1490 | 0x0,0x0,0x0,0x1000000,0xb000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0xd000000,0x2000000 |
2100 | }; | 1491 | }; |
2101 | 1492 | ||
2102 | static const QRgb locked_data[] = { | ||
2103 | 0x0,0x0,0x80d9d9db,0xbce4e4e6,0xbce2e2e5,0xbcdfdfe4,0xbcdcdce2,0xbcd7d7df,0xbcd1d1db,0x81aeaebe,0x5323237,0x0,0x0,0x0, | ||
2104 | 0x0,0x0,0xb2dedee1,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xffeeeef4,0xffd2d2de,0xa3b1b1c3,0x843434c,0x0,0x0, | ||
2105 | 0x0,0x0,0xb2dbdbe0,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xffededf4,0xffdfdfe8,0xffededf3,0xb1afafc3,0xd595969,0x0, | ||
2106 | 0x0,0x0,0xb2d8d8de,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xffededf4,0xffc9c9d8,0xffdbdbe6,0xffcdcddd,0xbf9898b5,0xb373743, | ||
2107 | 0x0,0x0,0xb2d4d4dc,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xfff1f1f6,0xffe5e5ed,0xffdcdce8,0xffd6d6e4,0xfcc2c2d6,0x26383845, | ||
2108 | 0x0,0x1797994,0xbec1c1cf,0xffe4e4ea,0xffe1e1e7,0xffededf1,0xfffdfdfe,0xfff7f7fa,0xfff1f1f7,0xffe9e9f2,0xffe2e2ee,0xffd4d6e4,0xfcc3c4d8,0x27343442, | ||
2109 | 0x0,0x5ba3a3b7,0xffe2e2e7,0xffd6d6dd,0xffcbcbd3,0xffcfcfd6,0xfff3f3f7,0xfff3f3f8,0xffececf4,0xffe6e6f0,0xffe4e4ef,0xffdadbe8,0xfcc3c3d8,0x27323241, | ||
2110 | 0x0,0x9bbbbbc8,0xffc7c7d0,0xffffffff,0xffeaeaef,0xffbdbdc3,0xffd0d0dc,0xffededf4,0xffebebf3,0xffe9e9f2,0xffe6e6f0,0xffd9dbe8,0xfcc2c2d8,0x27303040, | ||
2111 | 0x2ace9235,0xd0d5bf7e,0xffd7c68e,0xfff4e3a7,0xffead9a0,0xffd1c087,0xffd9c498,0xffefeef4,0xffededf4,0xffebebf3,0xffe9e9f2,0xffd8dae7,0xfcc1c2d7,0x272e2e3f, | ||
2112 | 0x78bc9047,0xffffe83c,0xffffe836,0xffffe836,0xffffe836,0xffffe534,0xffe6ae26,0xffece8e9,0xfff0f0f6,0xffededf5,0xffebebf3,0xffdedfeb,0xfcc1c2d8,0x272c2c3e, | ||
2113 | 0x789f7342,0xffffc728,0xffffc624,0xffffc422,0xffffbe1f,0xffffa914,0xffdb8715,0xffece8eb,0xfff2f2f7,0xfff0f0f6,0xffeeeef5,0xffd7d9e7,0xfcbfc0d7,0x272a2a3d, | ||
2114 | 0x779b6b3e,0xffffb922,0xffffb118,0xffffa713,0xffff9d0e,0xffff9409,0xffd97a0f,0xffeeebec,0xfff4f4f9,0xfff2f2f7,0xfff0f0f6,0xffe0e2ed,0xfcbcbdd5,0x2728283c, | ||
2115 | 0x1d764627,0x69976128,0xd2a98c77,0xffd5bca2,0xffd5bba2,0xffd5b9a1,0xffd4beae,0xfff8f8fb,0xfff7f7fa,0xfff5f5f9,0xfff2f2f8,0xffdadcea,0xfcb9bad4,0x2726263b, | ||
2116 | 0x0,0x0,0x6e9292af,0xa8a6a6b9,0xa8a4a4b8,0xa8a1a1b7,0xa89e9eb6,0xa89b9bb4,0xa89898b2,0xa89696b1,0xa89393af,0xa89090ae,0xa67a7aa0,0x1b1a1a2a | ||
2117 | }; | ||
2118 | |||
2119 | static const QRgb lockedfolder_data[] = { | 1493 | static const QRgb lockedfolder_data[] = { |
2120 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x121760ca,0xa1459c2,0x0,0x0,0x0, | 1494 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x121760ca,0xa1459c2,0x0,0x0,0x0, |
2121 | 0x0,0x0,0x0,0x0,0xbadb7db,0x11abb7de,0x0,0x262376d8,0x904f8cda,0xd15e95df,0x791656ba,0x0,0x0,0x0, | 1495 | 0x0,0x0,0x0,0x0,0xbadb7db,0x11abb7de,0x0,0x262376d8,0x904f8cda,0xd15e95df,0x791656ba,0x0,0x0,0x0, |
2122 | 0x0,0x0,0x0,0xea4acc6,0xc4c3c8db,0xf3d6dae9,0xa3adbadc,0xe66ba4e3,0xb65c9fe8,0xac0d6fe2,0xc41055be,0xb052564,0x0,0x0, | 1496 | 0x0,0x0,0x0,0xea4acc6,0xc4c3c8db,0xf3d6dae9,0xa3adbadc,0xe66ba4e3,0xb65c9fe8,0xac0d6fe2,0xc41055be,0xb052564,0x0,0x0, |
2123 | 0x0,0x0,0xcadb3c5,0xbfc6cad9,0xfff1f1f6,0xffe7e9f3,0xffa4c3e9,0xfe8cbaee,0xee65a5f0,0xcd2578e2,0xcd1056b8,0x570539a1,0x0,0x0, | 1497 | 0x0,0x0,0xcadb3c5,0xbfc6cad9,0xfff1f1f6,0xffe7e9f3,0xffa4c3e9,0xfe8cbaee,0xee65a5f0,0xcd2578e2,0xcd1056b8,0x570539a1,0x0,0x0, |
2124 | 0x0,0xab6b9c5,0xbac9ccd7,0xffedf1f7,0xffa9ccee,0xff98c4ed,0xffb2d6f7,0xff91c3f7,0xff77b2f8,0xff5996e4,0xe72462b8,0xab02399f,0x2000c27,0x0, | 1498 | 0x0,0xab6b9c5,0xbac9ccd7,0xffedf1f7,0xffa9ccee,0xff98c4ed,0xffb2d6f7,0xff91c3f7,0xff77b2f8,0xff5996e4,0xe72462b8,0xab02399f,0x2000c27,0x0, |
2125 | 0x9d4d7dc,0xb2d1d2d9,0xffcae1f5,0xffa7cff3,0xffddf2fa,0xffc7e7fa,0xffaad4f9,0xff8cc0f6,0xff6aa2e9,0xff3c78ca,0xd0084ba0,0xd2003c95,0x2e002a8e,0x0, | 1499 | 0x9d4d7dc,0xb2d1d2d9,0xffcae1f5,0xffa7cff3,0xffddf2fa,0xffc7e7fa,0xffaad4f9,0xff8cc0f6,0xff6aa2e9,0xff3c78ca,0xd0084ba0,0xd2003c95,0x2e002a8e,0x0, |
2126 | 0xa6d7d7d9,0xfff4f4f4,0xffe0e7ed,0xffd2dee7,0xffdbf0f5,0xffc3e5fa,0xffa5d0f8,0xff7bade9,0xff568dd5,0xff2c70c3,0xf81757aa,0xd2154b95,0x901f45a4,0x0, | 1500 | 0xa6d7d7d9,0xfff4f4f4,0xffe0e7ed,0xffd2dee7,0xffdbf0f5,0xffc3e5fa,0xffa5d0f8,0xff7bade9,0xff568dd5,0xff2c70c3,0xf81757aa,0xd2154b95,0x901f45a4,0x0, |
2127 | 0x64c8c9cb,0xf5eaeaea,0xfddcdde0,0xffc5d2dd,0xffcbd3d5,0xffbfe2f9,0xff95c2f0,0xff6e9fdf,0xff3c7bc9,0xff3b7ac4,0xff7f9ec9,0xffb6b8cc,0xed6c7cb8,0x13002275, | 1501 | 0x64c8c9cb,0xf5eaeaea,0xfddcdde0,0xffc5d2dd,0xffcbd3d5,0xffbfe2f9,0xff95c2f0,0xff6e9fdf,0xff3c7bc9,0xff3b7ac4,0xff7f9ec9,0xffb6b8cc,0xed6c7cb8,0x13002275, |
2128 | 0x57ebebeb,0xeaabc9e2,0xfdaecde6,0xff93b4d8,0xffacb8c4,0xffb4d8f3,0xff88b5e8,0xff6093d3,0xff99b8de,0xffd1d4e1,0xffcbcbd8,0xffbfbfd0,0xff8b93ba,0x5d032d97, | 1502 | 0x57ebebeb,0xeaabc9e2,0xfdaecde6,0xff93b4d8,0xffacb8c4,0xffb4d8f3,0xff88b5e8,0xff6093d3,0xff99b8de,0xffd1d4e1,0xffcbcbd8,0xffbfbfd0,0xff8b93ba,0x5d032d97, |
2129 | 0x89e8cfa2,0xe4b9bfb1,0xfed8d7bf,0xffd1d3bc,0xffbeb7a4,0xffa2b7c7,0xffbdd3ee,0xffeff2f7,0xffe9e9ef,0xffdddde6,0xffbabcd1,0xed5a6fb2,0x860e3292,0x21000d2b, | 1503 | 0x89e8cfa2,0xe4b9bfb1,0xfed8d7bf,0xffd1d3bc,0xffbeb7a4,0xffa2b7c7,0xffbdd3ee,0xffeff2f7,0xffe9e9ef,0xffdddde6,0xffbabcd1,0xed5a6fb2,0x860e3292,0x21000d2b, |
2130 | 0xf8ffdb8b,0xffffe193,0xffaa945f,0xffddae5d,0xfffec15a,0xffe6bb7e,0xffffffff,0xfffbfbfc,0xffebecf2,0xf68595c9,0x9b1e409e,0x30001547,0xa000000,0x0, | 1504 | 0xf8ffdb8b,0xffffe193,0xffaa945f,0xffddae5d,0xfffec15a,0xffe6bb7e,0xffffffff,0xfffbfbfc,0xffebecf2,0xf68595c9,0x9b1e409e,0x30001547,0xa000000,0x0, |
2131 | 0xf8fed989,0xffffd883,0xff94753e,0xffd4953c,0xffeb9f33,0xffdbab6f,0xffffffff,0xfcafc0e5,0xaf3b5db2,0x3e001a5d,0xe000000,0x0,0x0,0x0, | 1505 | 0xf8fed989,0xffffd883,0xff94753e,0xffd4953c,0xffeb9f33,0xffdbab6f,0xffffffff,0xfcafc0e5,0xaf3b5db2,0x3e001a5d,0xe000000,0x0,0x0,0x0, |
2132 | 0xf8f9c871,0xfff6b952,0xff835c26,0xffc17c28,0xffdc8c23,0xfba18161,0xc2537cc6,0x4d052c77,0x12000103,0x0,0x0,0x0,0x0,0x0, | 1506 | 0xf8f9c871,0xfff6b952,0xff835c26,0xffc17c28,0xffdc8c23,0xfba18161,0xc2537cc6,0x4d052c77,0x12000103,0x0,0x0,0x0,0x0,0x0, |
2133 | 0xaaedad4f,0xc7e79e36,0xc7be7b25,0xc7ca8026,0xc7c87d25,0x71b1702c,0x14010409,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 | 1507 | 0xaaedad4f,0xc7e79e36,0xc7be7b25,0xc7ca8026,0xc7c87d25,0x71b1702c,0x14010409,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0 |
2134 | }; | 1508 | }; |
2135 | 1509 | ||
1510 | static const QRgb locked_data[] = { | ||
1511 | 0x0,0x0,0x80d9d9db,0xbce4e4e6,0xbce2e2e5,0xbcdfdfe4,0xbcdcdce2,0xbcd7d7df,0xbcd1d1db,0x81aeaebe,0x5323237,0x0,0x0,0x0, | ||
1512 | 0x0,0x0,0xb2dedee1,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xffeeeef4,0xffd2d2de,0xa3b1b1c3,0x843434c,0x0,0x0, | ||
1513 | 0x0,0x0,0xb2dbdbe0,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xffededf4,0xffdfdfe8,0xffededf3,0xb1afafc3,0xd595969,0x0, | ||
1514 | 0x0,0x0,0xb2d8d8de,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xffededf4,0xffc9c9d8,0xffdbdbe6,0xffcdcddd,0xbf9898b5,0xb373743, | ||
1515 | 0x0,0x0,0xb2d4d4dc,0xffffffff,0xffffffff,0xffffffff,0xfffdfdfe,0xfff7f7fa,0xfff1f1f6,0xffe5e5ed,0xffdcdce8,0xffd6d6e4,0xfcc2c2d6,0x26383845, | ||
1516 | 0x0,0x1797994,0xbec1c1cf,0xffe4e4ea,0xffe1e1e7,0xffededf1,0xfffdfdfe,0xfff7f7fa,0xfff1f1f7,0xffe9e9f2,0xffe2e2ee,0xffd4d6e4,0xfcc3c4d8,0x27343442, | ||
1517 | 0x0,0x5ba3a3b7,0xffe2e2e7,0xffd6d6dd,0xffcbcbd3,0xffcfcfd6,0xfff3f3f7,0xfff3f3f8,0xffececf4,0xffe6e6f0,0xffe4e4ef,0xffdadbe8,0xfcc3c3d8,0x27323241, | ||
1518 | 0x0,0x9bbbbbc8,0xffc7c7d0,0xffffffff,0xffeaeaef,0xffbdbdc3,0xffd0d0dc,0xffededf4,0xffebebf3,0xffe9e9f2,0xffe6e6f0,0xffd9dbe8,0xfcc2c2d8,0x27303040, | ||
1519 | 0x2ace9235,0xd0d5bf7e,0xffd7c68e,0xfff4e3a7,0xffead9a0,0xffd1c087,0xffd9c498,0xffefeef4,0xffededf4,0xffebebf3,0xffe9e9f2,0xffd8dae7,0xfcc1c2d7,0x272e2e3f, | ||
1520 | 0x78bc9047,0xffffe83c,0xffffe836,0xffffe836,0xffffe836,0xffffe534,0xffe6ae26,0xffece8e9,0xfff0f0f6,0xffededf5,0xffebebf3,0xffdedfeb,0xfcc1c2d8,0x272c2c3e, | ||
1521 | 0x789f7342,0xffffc728,0xffffc624,0xffffc422,0xffffbe1f,0xffffa914,0xffdb8715,0xffece8eb,0xfff2f2f7,0xfff0f0f6,0xffeeeef5,0xffd7d9e7,0xfcbfc0d7,0x272a2a3d, | ||
1522 | 0x779b6b3e,0xffffb922,0xffffb118,0xffffa713,0xffff9d0e,0xffff9409,0xffd97a0f,0xffeeebec,0xfff4f4f9,0xfff2f2f7,0xfff0f0f6,0xffe0e2ed,0xfcbcbdd5,0x2728283c, | ||
1523 | 0x1d764627,0x69976128,0xd2a98c77,0xffd5bca2,0xffd5bba2,0xffd5b9a1,0xffd4beae,0xfff8f8fb,0xfff7f7fa,0xfff5f5f9,0xfff2f2f8,0xffdadcea,0xfcb9bad4,0x2726263b, | ||
1524 | 0x0,0x0,0x6e9292af,0xa8a6a6b9,0xa8a4a4b8,0xa8a1a1b7,0xa89e9eb6,0xa89b9bb4,0xa89898b2,0xa89696b1,0xa89393af,0xa89090ae,0xa67a7aa0,0x1b1a1a2a | ||
1525 | }; | ||
1526 | |||
2136 | static const QRgb logout_data[] = { | 1527 | static const QRgb logout_data[] = { |
2137 | 0x1aa31c0d,0x9aa62213,0xffac3222,0xffb34331,0xffb2402e,0xffb23f2d,0xffb03e2b,0xffb03d2a,0xffb03c29,0xffaf3b28,0xffaf3c28,0xffaa2d1b,0x9aa52011,0x1aa41c0e, | 1528 | 0x1aa31c0d,0x9aa62213,0xffac3222,0xffb34331,0xffb2402e,0xffb23f2d,0xffb03e2b,0xffb03d2a,0xffb03c29,0xffaf3b28,0xffaf3c28,0xffaa2d1b,0x9aa52011,0x1aa41c0e, |
2138 | 0x9aa62213,0xffc06750,0xffcc8662,0xffc36d48,0xffc4734c,0xffc5764f,0xffcb835d,0xffcc855f,0xffc97f55,0xffc88258,0xffca865c,0xffcf9367,0xffba5a3e,0x9aa52011, | 1529 | 0x9aa62213,0xffc06750,0xffcc8662,0xffc36d48,0xffc4734c,0xffc5764f,0xffcb835d,0xffcc855f,0xffc97f55,0xffc88258,0xffca865c,0xffcf9367,0xffba5a3e,0x9aa52011, |
2139 | 0xffac3222,0xffcc8965,0xffb64c26,0xffbb5b36,0xffca7959,0xffd5977d,0xffe2b6a3,0xffe3b8a5,0xffd79f84,0xffcf8968,0xffc67751,0xffc67a53,0xffcf9268,0xffa92b19, | 1530 | 0xffac3222,0xffcc8965,0xffb64c26,0xffbb5b36,0xffca7959,0xffd5977d,0xffe2b6a3,0xffe3b8a5,0xffd79f84,0xffcf8968,0xffc67751,0xffc67a53,0xffcf9268,0xffa92b19, |
2140 | 0xffb34331,0xffc4704b,0xffbb5b35,0xffd18d72,0xfff1d6cb,0xfffbebe3,0xffefd4c8,0xfff3dbd0,0xfffef3ed,0xfff1d8ca,0xffd7a082,0xffc8815a,0xffce8f65,0xffad3520, | 1531 | 0xffb34331,0xffc4704b,0xffbb5b35,0xffd18d72,0xfff1d6cb,0xfffbebe3,0xffefd4c8,0xfff3dbd0,0xfffef3ed,0xfff1d8ca,0xffd7a082,0xffc8815a,0xffce8f65,0xffad3520, |
2141 | 0xffb2402e,0xffc4724c,0xffca7959,0xfff1d6cb,0xfff4ded5,0xffdca288,0xffe7b9a3,0xffe8bba4,0xffe0af97,0xfff5e1d7,0xfff1d8ca,0xffd29675,0xffce9167,0xffac321d, | 1532 | 0xffb2402e,0xffc4724c,0xffca7959,0xfff1d6cb,0xfff4ded5,0xffdca288,0xffe7b9a3,0xffe8bba4,0xffe0af97,0xfff5e1d7,0xfff1d8ca,0xffd29675,0xffce9167,0xffac321d, |
2142 | 0xffb23f2d,0xffc77a54,0xffdaa28a,0xfffbebe3,0xffdca288,0xffc5734d,0xfff5d8c9,0xfff4d8c8,0xffc87e58,0xffe1b39b,0xfffdf4ee,0xffdcb097,0xffcf936a,0xffab301c, | 1533 | 0xffb23f2d,0xffc77a54,0xffdaa28a,0xfffbebe3,0xffdca288,0xffc5734d,0xfff5d8c9,0xfff4d8c8,0xffc87e58,0xffe1b39b,0xfffdf4ee,0xffdcb097,0xffcf936a,0xffab301c, |
2143 | 0xffb03e2b,0xffcc845e,0xffe3b8a5,0xffeed0c2,0xffcc8360,0xffc4734c,0xfff8e0d3,0xfff8e2d5,0xffc77e57,0xffd69c7d,0xfff7e5db,0xffe5c2ad,0xffd29b74,0xffaa2f1b, | 1534 | 0xffb03e2b,0xffcc845e,0xffe3b8a5,0xffeed0c2,0xffcc8360,0xffc4734c,0xfff8e0d3,0xfff8e2d5,0xffc77e57,0xffd69c7d,0xfff7e5db,0xffe5c2ad,0xffd29b74,0xffaa2f1b, |
2144 | 0xffb03d2a,0xffcc8560,0xffe4baa8,0xffedd0c3,0xffcd8563,0xffc57750,0xfff8e1d4,0xfff8e3d6,0xffc8825c,0xffd7a082,0xfff7e6dc,0xffe8cab8,0xffd5a07c,0xffaa2d19, | 1535 | 0xffb03d2a,0xffcc8560,0xffe4baa8,0xffedd0c3,0xffcd8563,0xffc57750,0xfff8e1d4,0xfff8e3d6,0xffc8825c,0xffd7a082,0xfff7e6dc,0xffe8cab8,0xffd5a07c,0xffaa2d19, |
2145 | 0xffb03c29,0xffcb835a,0xffdeac95,0xfffbebe4,0xffdba488,0xffc77d57,0xfff7ded0,0xfff5ddcd,0xffcb8a65,0xffe3bba3,0xfffef7f2,0xffe3bda7,0xffd69e7a,0xffa92b17, | 1536 | 0xffb03c29,0xffcb835a,0xffdeac95,0xfffbebe4,0xffdba488,0xffc77d57,0xfff7ded0,0xfff5ddcd,0xffcb8a65,0xffe3bba3,0xfffef7f2,0xffe3bda7,0xffd69e7a,0xffa92b17, |
2146 | 0xffaf3b28,0xffc88258,0xffd39172,0xfff6e4db,0xfff1dbcf,0xffdeab90,0xffeec9b5,0xffeac2ab,0xffe2b69c,0xfff6e6dd,0xfff6e3d8,0xffdeae94,0xffd5a280,0xffa82a15, | 1537 | 0xffaf3b28,0xffc88258,0xffd39172,0xfff6e4db,0xfff1dbcf,0xffdeab90,0xffeec9b5,0xffeac2ab,0xffe2b69c,0xfff6e6dd,0xfff6e3d8,0xffdeae94,0xffd5a280,0xffa82a15, |
2147 | 0xffaf3c29,0xffc9855b,0xffc77a54,0xffd8a388,0xfff4dfd3,0xfffdefe8,0xfff2dcd0,0xfff3ddd1,0xfffef2eb,0xfff7e6db,0xffe1b8a1,0xffd7a386,0xffd7a686,0xffa92a15, | 1538 | 0xffaf3c29,0xffc9855b,0xffc77a54,0xffd8a388,0xfff4dfd3,0xfffdefe8,0xfff2dcd0,0xfff3ddd1,0xfffef2eb,0xfff7e6db,0xffe1b8a1,0xffd7a386,0xffd7a686,0xffa92a15, |
2148 | 0xffaa2d1c,0xffcf9367,0xffc67a53,0xffc8815a,0xffd59a7a,0xffe0b69e,0xffebccba,0xffebcfbd,0xffe4bea8,0xffdfb096,0xffd7a385,0xffddb397,0xffd29877,0xffa62311, | 1539 | 0xffaa2d1c,0xffcf9367,0xffc67a53,0xffc8815a,0xffd59a7a,0xffe0b69e,0xffebccba,0xffebcfbd,0xffe4bea8,0xffdfb096,0xffd7a385,0xffddb397,0xffd29877,0xffa62311, |
2149 | 0x9aa52011,0xffba5a3e,0xffcf9268,0xffce8f65,0xffce9167,0xffd0956c,0xffd49f79,0xffd6a27e,0xffd69e7a,0xffd5a27f,0xffd9a989,0xffd39979,0xffb3452c,0x9aa41d0d, | 1540 | 0x9aa52011,0xffba5a3e,0xffcf9268,0xffce8f65,0xffce9167,0xffd0956c,0xffd49f79,0xffd6a27e,0xffd69e7a,0xffd5a27f,0xffd9a989,0xffd39979,0xffb3452c,0x9aa41d0d, |
2150 | 0x1aa41c0e,0x9aa52011,0xffa92b19,0xffad3520,0xffac321d,0xffab301c,0xffaa2f1b,0xffaa2d19,0xffa92b17,0xffa82a15,0xffa82915,0xffa62311,0x9aa41d0d,0x1aa41d0e | 1541 | 0x1aa41c0e,0x9aa52011,0xffa92b19,0xffad3520,0xffac321d,0xffab301c,0xffaa2f1b,0xffaa2d19,0xffa92b17,0xffa82a15,0xffa82915,0xffa62311,0x9aa41d0d,0x1aa41d0e |
2151 | }; | 1542 | }; |
2152 | 1543 | ||
2153 | static const QRgb mag_data[] = { | 1544 | static const QRgb mag_data[] = { |
2154 | 0x0,0x0,0x1c9191aa,0x7daeaec1,0xaabfbfcd,0xa3c5c5d3,0x63bfbfce,0x8b6b6c7,0x0,0x0,0x0,0x0,0x0,0x0, | 1545 | 0x0,0x0,0x1c9191aa,0x7daeaec1,0xaabfbfcd,0xa3c5c5d3,0x63bfbfce,0x8b6b6c7,0x0,0x0,0x0,0x0,0x0,0x0, |
2155 | 0x0,0x478c8ca6,0xeca3a9c1,0xf9bbd1e5,0xf7d0e5f5,0xf8d9e7f4,0xfbccd9ea,0xccc9cad8,0x19babaca,0x0,0x0,0x0,0x0,0x0, | 1546 | 0x0,0x478c8ca6,0xeca3a9c1,0xf9bbd1e5,0xf7d0e5f5,0xf8d9e7f4,0xfbccd9ea,0xccc9cad8,0x19babaca,0x0,0x0,0x0,0x0,0x0, |
2156 | 0x1c747493,0xea8f95b4,0xf4a3d0f4,0xf5c6efff,0xf5d6f4ff,0xf5dbf5ff,0xf5d2f3ff,0xf5b9d8f2,0xbbc9cad8,0x1b8b8c9,0x0,0x0,0x0,0x0, | 1547 | 0x1c747493,0xea8f95b4,0xf4a3d0f4,0xf5c6efff,0xf5d6f4ff,0xf5dbf5ff,0xf5d2f3ff,0xf5b9d8f2,0xbbc9cad8,0x1b8b8c9,0x0,0x0,0x0,0x0, |
2157 | 0x7d7e7e9a,0xf07a9ed4,0xf59cd1ff,0xf5b3e3ff,0xf5c2edff,0xf5c6efff,0xf5bfebff,0xf4abddff,0xf5b7c7e4,0x31b5b5c6,0x0,0x0,0x0,0x0, | 1548 | 0x7d7e7e9a,0xf07a9ed4,0xf59cd1ff,0xf5b3e3ff,0xf5c2edff,0xf5c6efff,0xf5bfebff,0xf4abddff,0xf5b7c7e4,0x31b5b5c6,0x0,0x0,0x0,0x0, |
2158 | 0xab7b7b98,0xb62f70db,0xc766a9fb,0xdf92cafe,0xdea0d4ff,0xd19bd1fe,0xde9ad0fe,0xf494ccff,0xee9dbdeb,0x60b9b9c9,0x0,0x0,0x0,0x0, | 1549 | 0xab7b7b98,0xb62f70db,0xc766a9fb,0xdf92cafe,0xdea0d4ff,0xd19bd1fe,0xde9ad0fe,0xf494ccff,0xee9dbdeb,0x60b9b9c9,0x0,0x0,0x0,0x0, |
2159 | 0xa3717190,0xb33973d3,0x994e96f8,0x9974b3fd,0x998bc5ff,0x998cc5ff,0x9977b6fd,0xaa62a6fb,0xe299b7e6,0x56afafc2,0x0,0x0,0x0,0x0, | 1550 | 0xa3717190,0xb33973d3,0x994e96f8,0x9974b3fd,0x998bc5ff,0x998cc5ff,0x9977b6fd,0xaa62a6fb,0xe299b7e6,0x56afafc2,0x0,0x0,0x0,0x0, |
2160 | 0x61636385,0xd66079b1,0x9973b3fd,0x99a4d7ff,0x99c4efff,0x99c6efff,0x99a8daff,0x9d7ab6fb,0xebadb6d0,0x1aa3a3b8,0x0,0x0,0x0,0x0, | 1551 | 0x61636385,0xd66079b1,0x9973b3fd,0x99a4d7ff,0x99c4efff,0x99c6efff,0x99a8daff,0x9d7ab6fb,0xebadb6d0,0x1aa3a3b8,0x0,0x0,0x0,0x0, |
2161 | 0x857577b,0xc966678a,0xc07d9dca,0x9ac3edfe,0x99eafeff,0x99ecfeff,0x9dc6edfc,0xdca5b5d2,0xdfb2b2c4,0x3b7b7c8,0x0,0x0,0x0,0x0, | 1552 | 0x857577b,0xc966678a,0xc07d9dca,0x9ac3edfe,0x99eafeff,0x99ecfeff,0x9dc6edfc,0xdca5b5d2,0xdfb2b2c4,0x3b7b7c8,0x0,0x0,0x0,0x0, |
2162 | 0x0,0x1958587c,0xb8696a8b,0xe5878faa,0xceb0b7c8,0xd3b6bbcb,0xeb9ea2b9,0xcd9595ad,0xeea3a3b7,0xb1cb9f58,0x4ee4991e,0x0,0x0,0x0, | 1553 | 0x0,0x1958587c,0xb8696a8b,0xe5878faa,0xceb0b7c8,0xd3b6bbcb,0xeb9ea2b9,0xcd9595ad,0xeea3a3b7,0xb1cb9f58,0x4ee4991e,0x0,0x0,0x0, |
2163 | 0x0,0x0,0x5b5b7e,0x2f606083,0x5e6e6e8e,0x54747493,0x1a777795,0x0,0xb1a57239,0xfff7d37d,0xf7f7d46f,0x4fe4991e,0x0,0x0, | 1554 | 0x0,0x0,0x5b5b7e,0x2f606083,0x5e6e6e8e,0x54747493,0x1a777795,0x0,0xb1a57239,0xfff7d37d,0xf7f7d46f,0x4fe4991e,0x0,0x0, |
2164 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xf3dd921d,0xfffddc87,0xf7f7d36f,0x4fe4991e,0x0, | 1555 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xf3dd921d,0xfffddc87,0xf7f7d36f,0x4fe4991e,0x0, |
2165 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921d,0xfffddc87,0xf6f7d36f,0x4de4991e, | 1556 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921d,0xfffddc87,0xf6f7d36f,0x4de4991e, |
2166 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921c,0xfff0c975,0xa8cdab7a, | 1557 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921c,0xfff0c975,0xa8cdab7a, |
2167 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xaa977354,0x4a8787a1 | 1558 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xaa977354,0x4a8787a1 |
2168 | }; | 1559 | }; |
2169 | 1560 | ||
2170 | static const QRgb month_data[] = { | 1561 | static const QRgb month_data[] = { |
2171 | 0xe483addd,0xf18cb5e6,0xf181b0e6,0xf175aae6,0xf169a4e6,0xf15c9ee6,0xf1549ae6,0xf15297e6,0xf15298e6,0xf15298e6,0xf15599e7,0xf14597e8,0xa315588d,0x17002741, | 1562 | 0x343b98e5,0x7254a9e9,0x7b52a5e3,0x7b50a4e3,0x7b4fa4e3,0x7b4ea3e2,0x7b4da3e2,0x7b4ba2e2,0x7b4aa1e2,0x7b49a1e2,0x7b47a0e1,0x7a479fe1,0x492c7cbc,0xe00162b, |
2172 | 0xf592b8e5,0xffafd4fd,0xff90c6fd,0xff70b6fd,0xff57a9fd,0xff3499fc,0xff258efd,0xff2388fd,0xff2189fc,0xff2388fd,0xff2389fe,0xff1d8afb,0xc208518c,0x30001827, | 1563 | 0xc767bcf7,0xf766bef6,0xf94fb5f3,0xf94eb5f3,0xf94cb5f3,0xf94bb5f2,0xf94ab4f3,0xf948b4f3,0xf947b4f3,0xf946b4f3,0xf944b3f3,0xf94bb5f4,0xd352aae5,0x4b033c65, |
2173 | 0xf19fbfe5,0xffddebfa,0xffb7daf7,0xffa6d3f6,0xffc5dffa,0xff93cbf4,0xffb0d7f9,0xffadd5f9,0xff8ec9f4,0xffaed6fa,0xffb1d7fb,0xff8bc6f6,0xc4255e89,0x34001525, | 1564 | 0xe94db4f6,0xff16a6e9,0xff04a1e4,0xff05a2e4,0xff07a3e5,0xff09a4e5,0xff0ba5e5,0xff0da6e6,0xff0fa8e6,0xff12a8e7,0xff14a9e7,0xff15a9e9,0xef34a1e4,0x74083858, |
2174 | 0xf1a9c5e6,0xfffbfefe,0xffcbe6fa,0xffbbdff8,0xfff2fafe,0xff9fd1f5,0xffe0f3fd,0xffdef1fd,0xff9bd0f5,0xffe4f5fe,0xffe6f6fe,0xffadd9f6,0xc42d6189,0x34001425, | 1565 | 0xe96dbff5,0xff86cdf4,0xff72c6f2,0xff72c6f2,0xff71c5f2,0xff71c4f2,0xff70c3f2,0xff70c2f2,0xff70c2f2,0xff70c2f2,0xff6fc2f2,0xff72c2f3,0xf060afe4,0x79013455, |
2175 | 0xfa91c4ee,0xffb0daf7,0xff9ed1f5,0xff97cef4,0xffabd8f7,0xff8dc9f3,0xffa4d5f6,0xffa3d4f6,0xff8cc8f3,0xffa5d5f7,0xffa6d6f7,0xff91cbf4,0xc42b6089,0x34001425, | 1566 | 0xe97cb5c6,0xfff0d662,0xfff3c95e,0xfff2ce5a,0xfff1cd5c,0xffefc85c,0xffeed358,0xffedc45e,0xffedd258,0xffebc45e,0xffead157,0xffeac75c,0xf089abaf,0x79003453, |
2176 | 0xf49dc5e9,0xffd9effc,0xffb6ddf8,0xffa9d7f7,0xffceeafc,0xff96cdf4,0xffc0e4fb,0xffbfe2fb,0xff93ccf4,0xffc1e5fc,0xffc2e6fc,0xff9bd1f6,0xc42a6089,0x34001425, | 1567 | 0xe97bafb2,0xfff8ca28,0xffffb129,0xffffc21f,0xffffb925,0xffffb924,0xffffc71e,0xffffb228,0xffffc81d,0xffffb029,0xffffcb1b,0xffffb426,0xf091a49c,0x79003554, |
2177 | 0xf1a6c4e6,0xfff2fcff,0xffc5e5fa,0xffb5def9,0xffe5f6ff,0xff9bd0f5,0xffd2edfd,0xffd0ebfd,0xff97cff5,0xffd3efff,0xffd5f1ff,0xffa1d5f7,0xc42a6089,0x34001425, | 1568 | 0xe979acb2,0xfff7bd2e,0xffffab2c,0xffffb625,0xffffb02a,0xffffb029,0xffffba25,0xffffab2c,0xffffbb23,0xffffaa2d,0xffffbd22,0xffffad29,0xf093a49b,0x79003554, |
2178 | 0xf3a0c4e7,0xffe2f3fd,0xffbbe0f9,0xffadd9f8,0xffd6eefd,0xff98cef5,0xffc6e6fc,0xffc3e5fc,0xff94cdf5,0xffc7e8fd,0xffc8e9fd,0xff9bd1f6,0xc4296089,0x34001425, | 1569 | 0xe976afb2,0xfff7cf26,0xffffb628,0xffffc71d,0xffffbe24,0xffffbe22,0xffffcd1c,0xffffb727,0xffffce1a,0xffffb428,0xffffd218,0xffffb924,0xf096a79d,0x79003554, |
2179 | 0xfc8bc4ef,0xff9cd1f5,0xff92ccf4,0xff8ecaf4,0xff99cff5,0xff88c7f3,0xff94cef5,0xff94cdf5,0xff87c7f3,0xff95cef5,0xff95cef5,0xff86c7f3,0xc4285f89,0x34001425, | 1570 | 0xe975a9b1,0xfff6b732,0xffffa331,0xffffb128,0xffffa92e,0xffffab2b,0xffffb328,0xffffa62f,0xffffb527,0xffffa430,0xffffb825,0xffffa62d,0xf098a59c,0x79003554, |
2180 | 0xf1a3c3e6,0xffe8f8ff,0xffbfe2fa,0xffb0dbf9,0xffdaf1ff,0xff99cff5,0xffc9eafd,0xffc6e8fd,0xff95cef5,0xffc9ecff,0xffcbedff,0xff9ad2f7,0xc4285f89,0x34001525, | 1571 | 0xe973acb0,0xfff6d124,0xffffbc24,0xffffca1b,0xffffc420,0xffffc021,0xffffd119,0xffffbb24,0xffffd118,0xffffb924,0xffffd316,0xffffbe20,0xf09aaa9c,0x79003554, |
2181 | 0xf1a6c5e7,0xffeaf9ff,0xffc0e3fa,0xffb1dcf9,0xffdcf3ff,0xff99d0f5,0xffcbebfd,0xffc8e9fd,0xff95cef5,0xffcbedff,0xffcdeeff,0xff9dd3f8,0xc4296089,0x34001525, | 1572 | 0xea6ea8ba,0xffeeb649,0xfff7a449,0xfff8b340,0xfff9a947,0xfff9ad43,0xfffab342,0xfffba947,0xfffcb641,0xfffda749,0xfffeba3e,0xffffaa47,0xf09caaa7,0x78003554, |
2182 | 0xfa80b6e6,0xffafdbf7,0xff9cd1f5,0xff95cdf4,0xffa6d6f7,0xff8bc8f3,0xff9dd2f6,0xff9bd1f6,0xff89c8f3,0xff9ad2f7,0xff9dd4f8,0xff7bc4f7,0xc7205f8d,0x34001728, | 1573 | 0xbb469ed9,0xf882bcdf,0xfd88bedf,0xfd8cc0df,0xfd8fc2e0,0xfd93c3e1,0xfd97c5e1,0xfd9ec8e2,0xfda2cae2,0xfda7cce2,0xfdabcfe2,0xfcafd1e2,0xdc669bbe,0x63001f36, |
2183 | 0xa628618e,0xc12e628a,0xc42b6089,0xc42b6089,0xc42b6089,0xc42a6089,0xc42a6089,0xc4296089,0xc42a6089,0xc4285f89,0xc4296089,0xc421608d,0x9e083656,0x30000d16, | 1574 | 0x360f466e,0x75164e75,0x89144769,0x8a154768,0x8a154768,0x8a164869,0x8a174869,0x8a184869,0x8a194969,0x8a1a4969,0x8a1b4969,0x891b4a68,0x6a0e2b41,0x28000306, |
2184 | 0x14002b4a,0x30001627,0x34001424,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001626,0x30000d16,0x16000204 | 1575 | 0x4000000,0xf000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0xf000000,0x4000000 |
1576 | }; | ||
1577 | |||
1578 | static const QRgb MPEGPlayer_data[] = { | ||
1579 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2a4a6dc, | ||
1580 | 0xfa4a6dc,0x18a4a6dc,0x18a4a6dc,0x26a4a6dc,0x27a4a6dc,0x14a4a6dc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1581 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1582 | 0x2a0a1b6,0x1fa3a4bb,0x579d9fba,0x979a9bbc,0xb6989ac1,0xc29698c3,0xc29698c4,0xd09698c8,0xd0989acb,0xb18f91bc,0x708486a5,0x2885869e,0x8727496,0x0, | ||
1583 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1584 | 0x0,0x0,0x6a5a6b6,0x419e9fbd,0x95a9aac6,0xefb8b9d1,0xfecbcce0,0xffe4e5f1,0xffefeff9,0xfff4f5ff,0xfff3f3ff,0xffefeffe,0xffe5e6f7,0xffd2d3ec, | ||
1585 | 0xffb9bbdf,0xf59c9ec7,0xb98688b3,0x5174779f,0x156b6d91,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0xcc917107,0xcd876b09, | ||
1586 | 0xf4a5a293,0xffb1b1b1,0xffcbcbcb,0xf4a4a4a4,0x339e9e9e,0x11a7a7b5,0x70a3a3bc,0xe0bebfd4,0xfce0e0eb,0xfff6f6fa,0xfffcfcfe,0xfff9f9ff,0xfff6f7ff,0xfff3f4ff, | ||
1587 | 0xfff1f1ff,0xffedeeff,0xffebecff,0xffe8e9ff,0xffe6e7fe,0xffd9dbf6,0xffc3c5e7,0xea989ac4,0xa27c7fac,0x1f66678b,0x320212f,0x0,0x0,0x0, | ||
1588 | 0x0,0x0,0xcc6b5803,0xcc5f5103,0xd25c541a,0xf497968b,0xffa4a4a4,0xffcacaca,0xe39a9a9a,0xc9ababb7,0xfcd5d6e3,0xfffcfcff,0xfffefeff,0xffffffff, | ||
1589 | 0xfffdfdff,0xfff9faff,0xfff7f7ff,0xfff4f4ff,0xfff1f1ff,0xffedeeff,0xffebecff,0xffe7e9ff,0xffe5e6ff,0xffe2e3ff,0xffdfe1ff,0xffd7d9fa,0xffaaaddf,0xd77e7fb3, | ||
1590 | 0x576b6c99,0x6222332,0x1000000,0x0,0x0,0x0,0xcc413f01,0xcc474201,0xcc514903,0xcd74600b,0xf4a19a84,0xff9a9a9a,0xffa5a5a5,0xff9e9e9e, | ||
1591 | 0xffe0e1e5,0xfffbfbff,0xfffdfdff,0xffffffff,0xfffefeff,0xfffbfbff,0xfff8f8ff,0xfff4f5ff,0xfff2f2ff,0xffedeeff,0xffeaebff,0xffe6e8ff,0xffe4e5ff,0xffe1e2ff, | ||
1592 | 0xffdee0ff,0xffd3d5ff,0xffbbbef6,0xfe9396cf,0xe07274aa,0x425c5d88,0x71b1b27,0x0,0x0,0x0,0xcc756006,0xcc8d720a,0xcca5850f,0xccb59415, | ||
1593 | 0xd5bda42f,0xfca09b81,0xff9d9d9d,0xff949494,0xff979798,0xffe3e3e7,0xfffbfbff,0xfffefeff,0xfffefeff,0xfffcfcff,0xfff9f9ff,0xfff4f5ff,0xfff2f2ff,0xffedeeff, | ||
1594 | 0xffeaebff,0xffe5e6ff,0xffe3e4ff,0xffdfe1ff,0xffd8daff,0xffbec1f7,0xffa7aae4,0xff8f92cc,0xff787bb4,0xdb5f6197,0x4c53547e,0x5000000,0x0,0x0, | ||
1595 | 0xccbe9f19,0xcccaac1f,0xccd2b726,0xcdd6be2b,0xe1d6c23a,0xfed8c955,0xff9e9a80,0xff8c8c8c,0xffababab,0xff838384,0xffdddde1,0xfffdfdff,0xfffefeff,0xfffdfdff, | ||
1596 | 0xfffafaff,0xfff4f5ff,0xfff2f2ff,0xffecedff,0xffe9eaff,0xffe4e5ff,0xffe1e3ff,0xffdcdeff,0xffc9cbfc,0xffa9ace6,0xff9598d2,0xff7e81bb,0xff6f72ac,0xfd6567a0, | ||
1597 | 0xbd5b5d8f,0x17242534,0x3000000,0x0,0xccd8c12d,0xccdbc630,0xccdfcb35,0xd8dbc738,0xf8d5c247,0xffdbc556,0xffcbb757,0xff8e8976,0xff7b7b7b,0xffb2b2b2, | ||
1598 | 0xff808081,0xffdedfe2,0xfffdfdff,0xfffefeff,0xfffbfbff,0xfff5f5ff,0xfff0f1ff,0xffebecff,0xffe7e8ff,0xffe2e4ff,0xffdee0ff,0xffcbcdfd,0xffadb0ea,0xff8f92cc, | ||
1599 | 0xff7b7eb8,0xff6d70aa,0xff7174ae,0xff777ab4,0xfe686aa3,0x764f517a,0x12181924,0x1000000,0xccddc834,0xccdac130,0xccd3b728,0xe8c8ad30,0xfec5ad41,0xffc7af47, | ||
1600 | 0xffb7a34d,0xff878370,0xff85826c,0xff707070,0xff878787,0xff7e7e7f,0xffd9d9dc,0xfffefeff,0xfffcfcff,0xfff8f8ff,0xfff3f4ff,0xffeeeeff,0xffe7e8ff,0xffe0e2ff, | ||
1601 | 0xffd7daff,0xffb1b4ed,0xff9497d1,0xff787bb5,0xff6e71ab,0xff7477b1,0xff7d80ba,0xff8588c2,0xff7c7fb9,0xc7575a8d,0x3434364f,0x4000000,0xccc9ac23,0xccc3a51e, | ||
1602 | 0xd1bb9e1a,0xfbbda433,0xffc6ae45,0xffc2ac4d,0xff898571,0xffb2a863,0xffc7be5e,0xff89866a,0xff777777,0xff6b6b6b,0xff757576,0xffd9d9de,0xffeeefff,0xffd6d8fe, | ||
1603 | 0xffcccefb,0xffc9ccf7,0xffd4d6fa,0xffd9dbff,0xffbbbef3,0xff8e91cb,0xff7679b3,0xff6f72ac,0xff7a7db7,0xff8588c2,0xff8c8fc9,0xff9396d0,0xff9295cf,0xf56a6da4, | ||
1604 | 0x7945476e,0xd000000,0xccbd9c17,0xccc2a31a,0xdbc7aa24,0xffceb843,0xffc8b85b,0xff8c8874,0xffc3bb6c,0xffe8dc65,0xffe5e16e,0xffece26f,0xff848165,0xff686868, | ||
1605 | 0xff878787,0xff5d5d60,0xffb6b8d8,0xffc7c9fe,0xffbabdf7,0xffabaee8,0xffaeb1eb,0xffb2b5ec,0xff9497d1,0xff7376b0,0xff7275af,0xff8083bd,0xff8a8dc7,0xff9396d0, | ||
1606 | 0xff989bd5,0xff9da0da,0xff9fa2dc,0xff7a7db6,0xae4d4f7e,0x18000000,0xd0cbb130,0xccd9c22e,0xe7dac83d,0xffd6cb5e,0xff8e8b76,0xffc2bd74,0xfff2e971,0xffede46e, | ||
1607 | 0xffe6e06f,0xfff2e46c,0xffdbcd65,0xff767257,0xff515151,0xff9a9a9a,0xff59595b,0xffb5b8d9,0xffbbbef5,0xffacafe9,0xffb5b8f2,0xffb7baf4,0xff8c8fc9,0xff7a7db7, | ||
1608 | 0xff8b8ec8,0xff9699d3,0xff9c9fd9,0xffa1a4de,0xffa5a8e2,0xffa9ace6,0xffabaee8,0xff9294ce,0xe1525588,0x27000000,0xf699967e,0xd3ded251,0xeed6cc58,0xff8f8d77, | ||
1609 | 0xffc7bf72,0xffeee26e,0xffe9db69,0xffe1d262,0xffd3c65c,0xffd8c556,0xffceb94e,0xffbca848,0xff645f48,0xff474747,0xff6d6d6d,0xff55555a,0xff72749f,0xff9294ca, | ||
1610 | 0xffb8bbf4,0xffc5c8fe,0xffbbbef5,0xff9295cf,0xff9ea1db,0xffa5a8e2,0xffa9ace6,0xffaeb1eb,0xffb1b4ee,0xffb3b6f0,0xffb5b8f2,0xffa1a4dd,0xf551538a,0x30000000, | ||
1611 | 0xff909090,0xf88e8d7b,0xfc8c8a72,0xffbaaf6c,0xffe0d061,0xffdac85b,0xffd0bc53,0xffc4b04a,0xffb5a546,0xffbca441,0xffb1993d,0xffa8903a,0xff94803a,0xff534f3f, | ||
1612 | 0xff505050,0xff424242,0xf63e3e40,0xbf3f3f51,0xf29798c2,0xffd3d5ff,0xffd4d6ff,0xffb0b3ed,0xffb5b8f2,0xffb9bcf6,0xffbbbef7,0xffbec1f9,0xffc0c3fb,0xffc1c4fc, | ||
1613 | 0xffc2c5fd,0xffafb2e9,0xff4e518a,0x39000000,0xffababab,0xff7b7b7b,0xfc86826b,0xffbdab55,0xffbea848,0xffb69f43,0xffac953e,0xffa28a39,0xff988639,0xff9d8737, | ||
1614 | 0xff917f36,0xff867836,0xff7b7135,0xff6b6635,0xff3f4036,0xff454545,0xff606060,0xec262627,0xd76a6a82,0xffe1e2ff,0xffe0e1ff,0xffc2c5fc,0xffcbcdfe,0xffcccfff, | ||
1615 | 0xffcdd0ff,0xffcdd0ff,0xffcdd0ff,0xffced1ff,0xffced1ff,0xffb7baea,0xff4d5088,0x3e000000,0xe47b7b7b,0xffb2b2b2,0xff707070,0xff767263,0xff978039,0xff927a31, | ||
1616 | 0xff86722f,0xff7a6a2b,0xff766f35,0xff797035,0xff6e6934,0xff686534,0xff626234,0xff6b6734,0xff4d4a32,0xff3c392f,0xff272727,0xff828282,0xfc2a2a2c,0xffc1c3ce, | ||
1617 | 0xffebecfe,0xffced0ff,0xffdee0ff,0xffdddfff,0xffdddeff,0xffdcddff,0xffdbddff,0xffdadcff,0xffd9dbff,0xffc0c2ea,0xfe4f5187,0x3f000000,0x2b757575,0xd6707070, | ||
1618 | 0xff878787,0xff7d7d7d,0xff666256,0xff695d2f,0xff5d5526,0xff504c24,0xff565a34,0xff6b6734,0xff736c35,0xff887a37,0xff9d8a3b,0xff695e35,0xff555035,0xffac9a44, | ||
1619 | 0xff4b472d,0xff1d1d1d,0xff585858,0xff383839,0xffb6b8c7,0xffd3d5fe,0xffe4e5ff,0xffe2e3ff,0xffe1e3ff,0xffdfe1ff,0xffdfe1ff,0xffdee0ff,0xffdee0ff,0xffbbbee6, | ||
1620 | 0xf64e5186,0x3f000000,0x0,0x1f6d6d6d,0xef706f6f,0xff6a6a6a,0xff6e6e6e,0xff54544e,0xff4a4928,0xff655b26,0xff867a39,0xffa6903c,0xffb59d40,0xffbda644, | ||
1621 | 0xff7a6e3b,0xff5d5938,0xffc9ba52,0xffd6c858,0xffc8bc56,0xff444127,0xff272727,0xff1b1b1b,0xff2d2e30,0xffb7bacb,0xffe8eafe,0xffe7e8ff,0xffe5e6ff,0xffe4e5ff, | ||
1622 | 0xffe3e4ff,0xffe1e3ff,0xffe1e3ff,0xffaaacd7,0xe24a4c7c,0x3b000000,0x0,0x0,0x6371625c,0xff636166,0xff878787,0xff515151,0xff575245,0xff978137, | ||
1623 | 0xffbaa747,0xffcfb84c,0xffd6c251,0xff867b41,0xff5a573a,0xffcec359,0xffd9cc5c,0xffd7c95b,0xffd2c157,0xffb9a94c,0xff38331c,0xff232323,0xff363636,0xff1b1c1e, | ||
1624 | 0xffb5b7c6,0xffeaebfe,0xffe9eaff,0xffe6e8ff,0xffe6e7ff,0xffe4e5ff,0xffe2e3fe,0xff9193c1,0xc33d3f67,0x35000000,0x0,0x0,0xf735b4c,0xda796d76, | ||
1625 | 0xff57575d,0xff9a9a9a,0xff464646,0xff555242,0xffc0b453,0xffdccc59,0xff877f45,0xff5e5939,0xffcfbf56,0xffd3c155,0xffccb951,0xffc5b24c,0xffbfac48,0xffbba746, | ||
1626 | 0xffb09e42,0xff302c14,0xff000000,0xff6f6f6f,0xff121213,0xffbcbecc,0xffebecfe,0xffeaebff,0xffe8eaff,0xffe7e9ff,0xffd1d2ef,0xf46b6da1,0x9123243f,0x2a000000, | ||
1627 | 0x0,0x0,0x24f3f2f,0x83816f6e,0xfc7f7a96,0xff52525b,0xff6c6c6c,0xff575757,0xff59573f,0xff787243,0xff555035,0xffc1ac4b,0xffc7b14a,0xffc1ac48, | ||
1628 | 0xffbfaa46,0xffc0aa46,0xffc4b049,0xffc9b54d,0xffcebd53,0xffbeb350,0xff343217,0xff000000,0xff525252,0xff262628,0xffb6b8c7,0xffecedfe,0xffebecff,0xffe7e8fd, | ||
1629 | 0xffb2b4dc,0xd8444674,0x6510111d,0x1e000000,0x0,0x0,0x0,0x2b796651,0xc68c7e80,0xff9192be,0xff53535b,0xff414141,0xff4c4c4c,0xff38362e, | ||
1630 | 0xffa69440,0xffc6ae46,0xffc5af48,0xffc9b34b,0xffcdbb50,0xffd2c456,0xffd7cc5c,0xffddd362,0xffe2da67,0xffe6df6c,0xffdad569,0xff35341a,0xff111111,0xff121212, | ||
1631 | 0xff262628,0xffbbbdcc,0xffecedfe,0xffd0d2ed,0xfa777bad,0x951b1d35,0x3e030304,0x10000000,0x0,0x0,0x0,0x73f3427,0x6082715e,0xfc9793ae, | ||
1632 | 0xff9497c4,0xff4b4c54,0xff5f5f5f,0xff272727,0xff433e29,0xffbeac4b,0xffd6c657,0xffdbce5c,0xffe0d663,0xffe4dc69,0xffe9e36e,0xffebe470,0xffebe571,0xffeae370, | ||
1633 | 0xffe5dd6e,0xffa8a14f,0xff000000,0xff1e1e1e,0xff2b2b2b,0xff1c1d1f,0xffafb3c3,0xfe989cc7,0xd740446e,0x5a07070c,0x28000000,0x7000000,0x0,0x0, | ||
1634 | 0x0,0x1000000,0x91a170d,0x9a8b8073,0xf6a3a1bc,0xffa6a9da,0xff3c3d45,0xff828282,0xff1d1d1d,0xff383623,0xffcbc55e,0xffebe46e,0xffeee772,0xffece571, | ||
1635 | 0xffe9e16d,0xffe5db6b,0xffdfd365,0xffd6c95e,0xffb4a74d,0xff262310,0xff73682c,0xff26220e,0xff000000,0xff6f6f6f,0xff0a0a0d,0xe743476a,0x8116182b,0x31000000, | ||
1636 | 0x12000000,0x2000000,0x0,0x0,0x0,0x0,0x2000000,0x285e5542,0xa88d8579,0xfeafaed2,0xffa2a9d5,0xff35353b,0xff575757,0xff2f2f2f, | ||
1637 | 0xff3a3821,0xffd3cb64,0xffe6db6a,0xffe0d364,0xffd7ca5e,0xffcebf56,0xffc4b44e,0xffa3943f,0xff221f0e,0xff675a26,0xff9f8b3b,0xff837333,0xff1f1c0c,0xff000000, | ||
1638 | 0xff606060,0xf308090c,0x7c0c1422,0x1b000000,0x7000000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x171f1c12,0x9f837e71, | ||
1639 | 0xefa3a3b6,0xffb7b8d3,0xff37373c,0xff191919,0xff2b2b2b,0xff252312,0xffb1a248,0xffc1af4b,0xffb7a545,0xffae9a40,0xff8f7e34,0xff1e1b0b,0xff5a4f24,0xff857736, | ||
1640 | 0xff7c7136,0xff706a35,0xff5f5e32,0xff11120b,0xff0b0b0b,0xff171717,0xf6181819,0x7000000,0x1000000,0x0,0x0,0x0,0x0,0x0, | ||
1641 | 0x0,0x1000000,0x5000000,0x25373426,0x7a6a685e,0xe89999a2,0xfe999ab0,0xff2e2f32,0xff353535,0xff000000,0xff231f0d,0xff958236,0xff9c873a,0xff827231, | ||
1642 | 0xff1b170a,0xff4a4522,0xff716b35,0xff656334,0xff5a5c34,0xff525833,0xff5f6034,0xff645f30,0xff201c0d,0xff1f1f1f,0xff222222,0x1000000,0x0,0x0, | ||
1643 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5000000,0x11000000,0x3f2b2b24,0x8d5e5e5b,0xdc717282,0xfd16171a,0xff6f6f6f, | ||
1644 | 0xff000000,0xff151309,0xff595126,0xff15140a,0xff3b3d22,0xff5b5d33,0xff5c5d34,0xff656335,0xff7d7337,0xff91823b,0xffa18f3e,0xffb09c43,0xffb5a446,0xff2c2912, | ||
1645 | 0xff000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0xe010101, | ||
1646 | 0x21090909,0x5031312f,0x922f2f35,0xf4050607,0xff515151,0xff1a1a1a,0xff000000,0xff3d3d21,0xff6c6835,0xff7f7437,0xff93833a,0xffa5923f,0xffb39f43,0xffbdaa48, | ||
1647 | 0xffc4b44d,0xffcabc52,0xffcec257,0xffb9b051,0xff7c7b3b,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
1648 | 0x0,0x0,0x0,0x1000000,0x4000000,0xd000000,0x18000000,0x40000000,0xde020202,0xf3000000,0xe1000000,0xff181509,0xff8f7e36,0xffb2a044, | ||
1649 | 0xffbbab49,0xffc1b44f,0xffc5bb53,0xffc9c058,0xffcbc359,0xffcac25b,0xffcac05a,0xffc4b855,0xffb4a94e,0x0,0x0,0x0,0x0,0x0, | ||
1650 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x4000000,0x21000000,0x50000000,0x6e000000, | ||
1651 | 0x57000000,0x7f000000,0x7f3f3a19,0x7d777131,0x7c7c7735,0x7983803a,0x7688863e,0x748c8b42,0x748c8a41,0x738a853e,0x7388803c,0x73827a37,0x668c843b,0x0, | ||
1652 | 0x0,0x0 | ||
2185 | }; | 1653 | }; |
2186 | 1654 | ||
2187 | static const QRgb mute_data[] = { | 1655 | static const QRgb mute_data[] = { |
2188 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x20202,0xd000000,0x7000000,0xffffff,0xffffff,0xffffff,0xffffff, | 1656 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x20202,0xd000000,0x7000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2189 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xff000000,0x3f000000,0x19000000,0xffffff,0xffffff,0xffffff,0xffffff, | 1657 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xff000000,0x3f000000,0x19000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2190 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xff000000,0x79000000,0x2b000000,0xffffff,0xffffff,0xffffff,0xffffff, | 1658 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xff000000,0x79000000,0x2b000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2191 | 0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xffffffff,0xff000000,0xe3020202,0xcb020202,0x2f020202,0xbf020202,0xbf020202,0xbf020202, | 1659 | 0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xffffffff,0xff000000,0xe3020202,0xcb020202,0x2f020202,0xbf020202,0xbf020202,0xbf020202, |
2192 | 0xff000000,0xff000000,0xff000000,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xffffffff,0xbb575757,0xbf020202,0xab5f5f5f,0xffffffff,0xbf020202, | 1660 | 0xff000000,0xff000000,0xff000000,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xffffffff,0xbb575757,0xbf020202,0xab5f5f5f,0xffffffff,0xbf020202, |
2193 | 0xff000000,0xffcde6ff,0xffcee6ff,0xffcee6ff,0xffcde5ff,0xffcee5ff,0xffcee5ff,0xff000000,0xda4b4b4b,0xffffffff,0xab5f5f5f,0xffffffff,0xab5f5f5f,0xbf020202, | 1661 | 0xff000000,0xffcde6ff,0xffcee6ff,0xffcee6ff,0xffcde5ff,0xffcee5ff,0xffcee5ff,0xff000000,0xda4b4b4b,0xffffffff,0xab5f5f5f,0xffffffff,0xab5f5f5f,0xbf020202, |
2194 | 0xff000000,0xff8ec5ff,0xff8ec5ff,0xff8ec5ff,0xff8ec5ff,0xff8ec4ff,0xff8ec4ff,0xff000000,0xe3020202,0xbb575757,0xffffffff,0xab5f5f5f,0xbf020202,0x2f020202, | 1662 | 0xff000000,0xff8ec5ff,0xff8ec5ff,0xff8ec5ff,0xff8ec5ff,0xff8ec4ff,0xff8ec4ff,0xff000000,0xe3020202,0xbb575757,0xffffffff,0xab5f5f5f,0xbf020202,0x2f020202, |
2195 | 0xff000000,0xff4ea3ff,0xff4ea4ff,0xff4ea3ff,0xff4fa4ff,0xff4ea4ff,0xff4ea4ff,0xff000000,0xda4b4b4b,0xffffffff,0xab5f5f5f,0xffffffff,0xab5f5f5f,0xbf020202, | 1663 | 0xff000000,0xff4ea3ff,0xff4ea4ff,0xff4ea3ff,0xff4fa4ff,0xff4ea4ff,0xff4ea4ff,0xff000000,0xda4b4b4b,0xffffffff,0xab5f5f5f,0xffffffff,0xab5f5f5f,0xbf020202, |
2196 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff1d8aff,0xff1d8aff,0xff1d8aff,0xff000000,0xffffffff,0xbb575757,0xbf020202,0xab5f5f5f,0xffffffff,0xbf020202, | 1664 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff1d8aff,0xff1d8aff,0xff1d8aff,0xff000000,0xffffffff,0xbb575757,0xbf020202,0xab5f5f5f,0xffffffff,0xbf020202, |
2197 | 0x26000000,0x6b000000,0x8f000000,0x8f000000,0xff000000,0xff1d8aff,0xff1d8aff,0xff000000,0xe3020202,0xcb020202,0x2f020202,0xbf020202,0xbf020202,0xbf020202, | 1665 | 0x26000000,0x6b000000,0x8f000000,0x8f000000,0xff000000,0xff1d8aff,0xff1d8aff,0xff000000,0xe3020202,0xcb020202,0x2f020202,0xbf020202,0xbf020202,0xbf020202, |
2198 | 0x16000000,0x24000000,0x30000000,0x32000000,0x48000000,0xff000000,0xff1d8aff,0xff000000,0x8f000000,0x30000000,0xffffff,0xffffff,0xffffff,0xffffff, | 1666 | 0x16000000,0x24000000,0x30000000,0x32000000,0x48000000,0xff000000,0xff1d8aff,0xff000000,0x8f000000,0x30000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2199 | 0xffffff,0xffffff,0xffffff,0xffffff,0xd000000,0x3c000000,0xff000000,0xff000000,0x8f000000,0x30000000,0xffffff,0xffffff,0xffffff,0xffffff, | 1667 | 0xffffff,0xffffff,0xffffff,0xffffff,0xd000000,0x3c000000,0xff000000,0xff000000,0x8f000000,0x30000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2200 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x3c000000,0x78000000,0x79000000,0x2b000000,0xffffff,0xffffff,0xffffff,0xffffff, | 1668 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x3c000000,0x78000000,0x79000000,0x2b000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2201 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x34000000,0x3f000000,0x19000000,0xffffff,0xffffff,0xffffff,0xffffff | 1669 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x34000000,0x3f000000,0x19000000,0xffffff,0xffffff,0xffffff,0xffffff |
2202 | }; | 1670 | }; |
2203 | 1671 | ||
2204 | static const QRgb new_data[] = { | ||
2205 | 0x0,0x0,0x0,0xefcbd5e6,0xffe1e6ef,0xffe1e6ef,0xffe0e6ef,0xffdbe2ee,0xffd1dae9,0xfabcc7dc,0x5e9ba5b6,0x2191a1c,0x0,0x0, | ||
2206 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xfffdffff,0xfff2f7fe,0xffe4eaf5,0xffc8d2e4,0xf6d3dceb,0x6199a3b6,0x219191c,0x0, | ||
2207 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xfffeffff,0xfff7faff,0xffeaeef8,0xffcdd6e7,0xffeaeef5,0xf2ccd5e5,0x63949fb2,0x2212225, | ||
2208 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xffffffff,0xfff9fcff,0xffedf2fb,0xffd9e1ef,0xffb6c2d6,0xffa3b2cb,0xfa94a5c0,0x23728097, | ||
2209 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xffffffff,0xfffafdff,0xfff0f4fb,0xffeac99f,0xffc7c9d0,0xffb7c4da,0xffa1b0ca,0x2f566274, | ||
2210 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xfffeffff,0xfff8fbff,0xffece6e2,0xfff7c05d,0xffd2ae82,0xffc2cde0,0xffaab8cf,0x2f566173, | ||
2211 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xfffeffff,0xfffafdff,0xffe9eff8,0xffe8c9a0,0xfffdea5a,0xffeaba5d,0xffcaced8,0xffb1bdd3,0x2f566173, | ||
2212 | 0x0,0x0,0x0,0xefd9e1ee,0xfffffaf3,0xfffee0af,0xfff5d39f,0xfff1ca86,0xfff7cb5d,0xfffffe4c,0xfffae75a,0xffe1ae69,0xffcba57c,0x7dc0702c, | ||
2213 | 0x0,0x0,0x0,0xefd9e1ee,0xfffffaf2,0xfff9c671,0xfffedf57,0xfffff24a,0xfffff643,0xfffff838,0xfffff83d,0xfffef247,0xfffbe248,0xe9e19226, | ||
2214 | 0x0,0x0,0x0,0xefd9e1ee,0xfffefeff,0xfff2f1f0,0xfff0c47a,0xfffbcf23,0xffffe324,0xffffe324,0xffffe324,0xfffdd426,0xffd6932b,0x64874714, | ||
2215 | 0x0,0x0,0x0,0xefd9e1ee,0xfffdfeff,0xfff1f5fd,0xffecf0f6,0xfff3ab31,0xffffcc10,0xffffcb10,0xffffcc10,0xfff6ad11,0xffac8c77,0x3050596a, | ||
2216 | 0x0,0x0,0x0,0xefd9e1ee,0xfffafcfe,0xffeff4fc,0xffece9e9,0xfff6a113,0xfffda902,0xfff2960b,0xfff8a403,0xfffaa402,0xffb2805c,0x2f535e70, | ||
2217 | 0x0,0x0,0x0,0xefc3cee0,0xffd1d8e3,0xffcad3e1,0xffd1beb1,0xffee8208,0xffc77d33,0xffaf9a8f,0xffb98b69,0xffda7614,0xffb96730,0x3050525c, | ||
2218 | 0x0,0x0,0x0,0x28747e91,0x40444c59,0x41434b58,0x62945c29,0x77964a05,0x48453932,0x41404854,0x41434853,0x50723b1a,0x80983c0a,0x1b3e2317 | ||
2219 | }; | ||
2220 | |||
2221 | static const QRgb newfolder_data[] = { | 1672 | static const QRgb newfolder_data[] = { |
2222 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4fdbe1f9,0x49d3daf4,0x0,0x0,0x0,0x0,0x0, | 1673 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4fdbe1f9,0x49d3daf4,0x0,0x0,0x0,0x0,0x0, |
2223 | 0x0,0x0,0x0,0x0,0x0,0x4dae1f9,0x3fe1e5f9,0xe3eff0f9,0xcce5e8f3,0x268d9bc8,0x34bc,0x0,0x0,0x0, | 1674 | 0x0,0x0,0x0,0x0,0x0,0x4dae1f9,0x3fe1e5f9,0xe3eff0f9,0xcce5e8f3,0x268d9bc8,0x34bc,0x0,0x0,0x0, |
2224 | 0x0,0x0,0x240a0fe,0xb6bb7ff,0x48ac3fe,0x46eaedfb,0xd8f3f5fa,0xffeeeef4,0xfce8e9f3,0xa5abbbe1,0xa3460bf,0x92e63d5,0x4255dd4,0x0, | 1675 | 0x0,0x0,0x240a0fe,0xb6bb7ff,0x48ac3fe,0x46eaedfb,0xd8f3f5fa,0xffeeeef4,0xfce8e9f3,0xa5abbbe1,0xa3460bf,0x92e63d5,0x4255dd4,0x0, |
2225 | 0xc6bbef8,0x368dc8f9,0x7fa1cdf8,0xc4afd5fe,0x95afcef4,0xdcf4f6fb,0xfff4f4f8,0xffededf3,0xffe7e7f0,0xf2c7d1eb,0x806891db,0xa44d80de,0x362158c8,0x1000000, | 1676 | 0xc6bbef8,0x368dc8f9,0x7fa1cdf8,0xc4afd5fe,0x95afcef4,0xdcf4f6fb,0xfff4f4f8,0xffededf3,0xffe7e7f0,0xf2c7d1eb,0x806891db,0xa44d80de,0x362158c8,0x1000000, |
2226 | 0x5395d1fc,0xe7cde5fc,0xfdd1e5fe,0xffc9ddf7,0xfeecf0f7,0xfff8f8fb,0xfff5f4f8,0xffc1d3ed,0xff9fbee9,0xff87a6d3,0xde5897e8,0xc30b4bca,0x45022c90,0x1000000, | 1677 | 0x5395d1fc,0xe7cde5fc,0xfdd1e5fe,0xffc9ddf7,0xfeecf0f7,0xfff8f8fb,0xfff5f4f8,0xffc1d3ed,0xff9fbee9,0xff87a6d3,0xde5897e8,0xc30b4bca,0x45022c90,0x1000000, |
2227 | 0x2e81c8fe,0xdfd2e8fe,0xffcce2fd,0xffdde3ee,0xfffdfdfd,0xfff0f4f9,0xffc2d8f0,0xff9bc7f6,0xff78aae6,0xffbca173,0xf26d7ba0,0xc80331b2,0x37002478,0x0, | 1678 | 0x2e81c8fe,0xdfd2e8fe,0xffcce2fd,0xffdde3ee,0xfffdfdfd,0xfff0f4f9,0xffc2d8f0,0xff9bc7f6,0xff78aae6,0xffbca173,0xf26d7ba0,0xc80331b2,0x37002478,0x0, |
2228 | 0x952b2ff,0xb6b5d6f7,0xffcae1fe,0xffbfd1eb,0xffcbe1f4,0xffbcdaf5,0xffa7cff7,0xff7cb8fa,0xff85a5c7,0xffefcc5f,0xf6a07f62,0xb70c30a7,0x23001d60,0x0, | 1679 | 0x952b2ff,0xb6b5d6f7,0xffcae1fe,0xffbfd1eb,0xffcbe1f4,0xffbcdaf5,0xffa7cff7,0xff7cb8fa,0xff85a5c7,0xffefcc5f,0xf6a07f62,0xb70c30a7,0x23001d60,0x0, |
2229 | 0x0,0x6c9acafa,0xfec3dcfd,0xffa4cbf8,0xffc4e0f2,0xffbed7e3,0xffa1bdd4,0xff829abd,0xffbca36e,0xfffff753,0xfff0d05a,0xcd8e7471,0x44a45c25,0x21d65b00, | 1680 | 0x0,0x6c9acafa,0xfec3dcfd,0xffa4cbf8,0xffc4e0f2,0xffbed7e3,0xffa1bdd4,0xff829abd,0xffbca36e,0xfffff753,0xfff0d05a,0xcd8e7471,0x44a45c25,0x21d65b00, |
2230 | 0x0,0x348dbff5,0xedb4d4fb,0xff9ecaf9,0xffb8d1dd,0xffdaba72,0xffeacf73,0xffead461,0xfff7e554,0xfffffd43,0xfffdf44d,0xf7efd251,0xdef2c74c,0xcae89932, | 1681 | 0x0,0x348dbff5,0xedb4d4fb,0xff9ecaf9,0xffb8d1dd,0xffdaba72,0xffeacf73,0xffead461,0xfff7e554,0xfffffd43,0xfffdf44d,0xf7efd251,0xdef2c74c,0xcae89932, |
2231 | 0x0,0x137db2f0,0xbca4caf7,0xff98c7f8,0xff9accfa,0xffa7b6bb,0xfff0c650,0xfffee82d,0xffffed2d,0xffffed2d,0xffffed2d,0xffffe82e,0xeff5c125,0x91e1800e, | 1682 | 0x0,0x137db2f0,0xbca4caf7,0xff98c7f8,0xff9accfa,0xffa7b6bb,0xfff0c650,0xfffee82d,0xffffed2d,0xffffed2d,0xffffed2d,0xffffe82e,0xeff5c125,0x91e1800e, |
2232 | 0x0,0x54995f0,0x799ac2f3,0xfe94c3f5,0xffbeddfa,0xffdde4f0,0xffe7d7c8,0xfff1b227,0xfffed218,0xffffd519,0xffffd519,0xfbf7b616,0x80e27b09,0xbd55a01, | 1683 | 0x0,0x54995f0,0x799ac2f3,0xfe94c3f5,0xffbeddfa,0xffdde4f0,0xffe7d7c8,0xfff1b227,0xfffed218,0xffffd519,0xffffd519,0xfbf7b616,0x80e27b09,0xbd55a01, |
2233 | 0x0,0x0,0x3d71a7ee,0xf1a2c9f2,0xfff2f6f9,0xfaccdaef,0xd287a4d3,0xf2e79a13,0xfffeb906,0xfffdb208,0xfffeba07,0xfdf7a506,0x65e06e02,0x0, | 1684 | 0x0,0x0,0x3d71a7ee,0xf1a2c9f2,0xfff2f6f9,0xfaccdaef,0xd287a4d3,0xf2e79a13,0xfffeb906,0xfffdb208,0xfffeba07,0xfdf7a506,0x65e06e02,0x0, |
2234 | 0x0,0x0,0x1267a1ef,0xce8dbbf1,0xd098bdeb,0x6f5480bf,0x517a5843,0xf3f68e00,0xe0f68d00,0xa2e97a01,0xc3ec8200,0xf4f48c00,0x97dd6500,0x1c54300, | 1685 | 0x0,0x0,0x1267a1ef,0xce8dbbf1,0xd098bdeb,0x6f5480bf,0x517a5843,0xf3f68e00,0xe0f68d00,0xa2e97a01,0xc3ec8200,0xf4f48c00,0x97dd6500,0x1c54300, |
2235 | 0x0,0x0,0x4529af8,0x404b90e5,0x2d164682,0xc1d1209,0x4ee26e00,0xb0ec7400,0x45e66c00,0x7dd6200,0x1cd45600,0x7ddb5d00,0xa4cf4e00,0xdc34100 | 1686 | 0x0,0x0,0x4529af8,0x404b90e5,0x2d164682,0xc1d1209,0x4ee26e00,0xb0ec7400,0x45e66c00,0x7dd6200,0x1cd45600,0x7ddb5d00,0xa4cf4e00,0xdc34100 |
2236 | }; | 1687 | }; |
2237 | 1688 | ||
1689 | static const QRgb new_data[] = { | ||
1690 | 0x0,0x0,0x0,0xefcbd5e6,0xffe1e6ef,0xffe1e6ef,0xffe0e6ef,0xffdbe2ee,0xffd1dae9,0xfabcc7dc,0x5e9ba5b6,0x2191a1c,0x0,0x0, | ||
1691 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xfffdffff,0xfff2f7fe,0xffe4eaf5,0xffc8d2e4,0xf6d3dceb,0x6199a3b6,0x219191c,0x0, | ||
1692 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xfffeffff,0xfff7faff,0xffeaeef8,0xffcdd6e7,0xffeaeef5,0xf2ccd5e5,0x63949fb2,0x2212225, | ||
1693 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xffffffff,0xfff9fcff,0xffedf2fb,0xffd9e1ef,0xffb6c2d6,0xffa3b2cb,0xfa94a5c0,0x23728097, | ||
1694 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xffffffff,0xfffafdff,0xfff0f4fb,0xffeac99f,0xffc7c9d0,0xffb7c4da,0xffa1b0ca,0x2f566274, | ||
1695 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xffffffff,0xfffeffff,0xfff8fbff,0xffece6e2,0xfff7c05d,0xffd2ae82,0xffc2cde0,0xffaab8cf,0x2f566173, | ||
1696 | 0x0,0x0,0x0,0xefd9e1ee,0xffffffff,0xfffeffff,0xfffafdff,0xffe9eff8,0xffe8c9a0,0xfffdea5a,0xffeaba5d,0xffcaced8,0xffb1bdd3,0x2f566173, | ||
1697 | 0x0,0x0,0x0,0xefd9e1ee,0xfffffaf3,0xfffee0af,0xfff5d39f,0xfff1ca86,0xfff7cb5d,0xfffffe4c,0xfffae75a,0xffe1ae69,0xffcba57c,0x7dc0702c, | ||
1698 | 0x0,0x0,0x0,0xefd9e1ee,0xfffffaf2,0xfff9c671,0xfffedf57,0xfffff24a,0xfffff643,0xfffff838,0xfffff83d,0xfffef247,0xfffbe248,0xe9e19226, | ||
1699 | 0x0,0x0,0x0,0xefd9e1ee,0xfffefeff,0xfff2f1f0,0xfff0c47a,0xfffbcf23,0xffffe324,0xffffe324,0xffffe324,0xfffdd426,0xffd6932b,0x64874714, | ||
1700 | 0x0,0x0,0x0,0xefd9e1ee,0xfffdfeff,0xfff1f5fd,0xffecf0f6,0xfff3ab31,0xffffcc10,0xffffcb10,0xffffcc10,0xfff6ad11,0xffac8c77,0x3050596a, | ||
1701 | 0x0,0x0,0x0,0xefd9e1ee,0xfffafcfe,0xffeff4fc,0xffece9e9,0xfff6a113,0xfffda902,0xfff2960b,0xfff8a403,0xfffaa402,0xffb2805c,0x2f535e70, | ||
1702 | 0x0,0x0,0x0,0xefc3cee0,0xffd1d8e3,0xffcad3e1,0xffd1beb1,0xffee8208,0xffc77d33,0xffaf9a8f,0xffb98b69,0xffda7614,0xffb96730,0x3050525c, | ||
1703 | 0x0,0x0,0x0,0x28747e91,0x40444c59,0x41434b58,0x62945c29,0x77964a05,0x48453932,0x41404854,0x41434853,0x50723b1a,0x80983c0a,0x1b3e2317 | ||
1704 | }; | ||
1705 | |||
2238 | static const QRgb next_data[] = { | 1706 | static const QRgb next_data[] = { |
2239 | 0x0,0x0,0xffffff,0x2ffffff,0x10f5faff,0x2fd4e9ff,0x3dc1e0ff,0x38b6daff,0x21b4d9ff,0x5d7ebff,0xffffff,0x0,0x0,0x0, | 1707 | 0x0,0x0,0xffffff,0x2ffffff,0x10f5faff,0x2fd4e9ff,0x3dc1e0ff,0x38b6daff,0x21b4d9ff,0x5d7ebff,0xffffff,0x0,0x0,0x0, |
2240 | 0x0,0x0,0x9ffffff,0x4fd6eaff,0xbbacd5ff,0xe9aad4ff,0xfab2d8ff,0xf9afd7ff,0xe49ecfff,0xa382c0ff,0x287dbcfc,0x0,0x0,0x0, | 1708 | 0x0,0x0,0x9ffffff,0x4fd6eaff,0xbbacd5ff,0xe9aad4ff,0xfab2d8ff,0xf9afd7ff,0xe49ecfff,0xa382c0ff,0x287dbcfc,0x0,0x0,0x0, |
2241 | 0xffffff,0x9ffffff,0x6ecee6ff,0xeeaad4ff,0xffdeeefe,0xfff9fcfe,0xfffdfdfe,0xfffdfdfe,0xfffafcfe,0xffdbedfe,0xe590c7fe,0x3e72b3f4,0x0,0x0, | 1709 | 0xffffff,0x9ffffff,0x6ecee6ff,0xeeaad4ff,0xffdeeefe,0xfff9fcfe,0xfffdfdfe,0xfffdfdfe,0xfffafcfe,0xffdbedfe,0xe590c7fe,0x3e72b3f4,0x0,0x0, |
2242 | 0x2ffffff,0x51d5eaff,0xefa6d2fe,0xffe8f2fc,0xfff9fbfc,0xfff9fbfc,0xfff3f9fd,0xff9dd1fb,0xffd4ebfe,0xfffbfcfd,0xffe7f2fc,0xe689c3fd,0x2a68abed,0x0, | 1710 | 0x2ffffff,0x51d5eaff,0xefa6d2fe,0xffe8f2fc,0xfff9fbfc,0xfff9fbfc,0xfff3f9fd,0xff9dd1fb,0xffd4ebfe,0xfffbfcfd,0xffe7f2fc,0xe689c3fd,0x2a68abed,0x0, |
2243 | 0x12f5faff,0xbea6d2ff,0xffd4e8fb,0xfff5f8f9,0xfff5f8f9,0xfff5f8f9,0xfff6f9fb,0xff72befc,0xff299efe,0xffe3f1fd,0xfff6f9fa,0xffd1e6fb,0xa568b0f8,0x33c6a98, | 1711 | 0x12f5faff,0xbea6d2ff,0xffd4e8fb,0xfff5f8f9,0xfff5f8f9,0xfff5f8f9,0xfff6f9fb,0xff72befc,0xff299efe,0xffe3f1fd,0xfff6f9fa,0xffd1e6fb,0xa568b0f8,0x33c6a98, |
2244 | 0x34d4e9ff,0xec9accfd,0xffecf3f7,0xffeaedef,0xffe6eaec,0xffe7ebed,0xffe8ebed,0xffdde6ec,0xff49a9f7,0xff48acfe,0xffedf5fb,0xffecf3f7,0xe57bbaf9,0x1c4c8aca, | 1712 | 0x34d4e9ff,0xec9accfd,0xffecf3f7,0xffeaedef,0xffe6eaec,0xffe7ebed,0xffe8ebed,0xffdde6ec,0xff49a9f7,0xff48acfe,0xffedf5fb,0xffecf3f7,0xe57bbaf9,0x1c4c8aca, |
2245 | 0x45c1e0ff,0xfb99cafb,0xffeaf0f3,0xff58acef,0xff2296f4,0xff2397f5,0xff2397f5,0xff2296f4,0xff1895fa,0xff028dfe,0xff78c2fe,0xffeef3f6,0xfa85c0f9,0x31478cd0, | 1713 | 0x45c1e0ff,0xfb99cafb,0xffeaf0f3,0xff58acef,0xff2296f4,0xff2397f5,0xff2397f5,0xff2296f4,0xff1895fa,0xff028dfe,0xff78c2fe,0xffeef3f6,0xfa85c0f9,0x31478cd0, |
2246 | 0x41b4daff,0xfa8ec5fa,0xffe8eff2,0xff9fd2fb,0xff7fc5fd,0xff7fc5fd,0xff7fc5fd,0xff7cc3fc,0xff45aafc,0xff0c91fe,0xffb0dafd,0xffe8eff3,0xfa7cbbf8,0x333c82c7, | 1714 | 0x41b4daff,0xfa8ec5fa,0xffe8eff2,0xff9fd2fb,0xff7fc5fd,0xff7fc5fd,0xff7fc5fd,0xff7cc3fc,0xff45aafc,0xff0c91fe,0xffb0dafd,0xffe8eff3,0xfa7cbbf8,0x333c82c7, |
2247 | 0x2bb6dbff,0xe778bbfb,0xffdbe6ed,0xffe4ecef,0xffe6eef1,0xffe7eef1,0xffe9f0f3,0xffb3cbdd,0xff1f98fa,0xff85c8fe,0xffedf2f5,0xffdae6ed,0xe860aaf4,0x232c69a5, | 1715 | 0x2bb6dbff,0xe778bbfb,0xffdbe6ed,0xffe4ecef,0xffe6eef1,0xffe7eef1,0xffe9f0f3,0xffb3cbdd,0xff1f98fa,0xff85c8fe,0xffedf2f5,0xffdae6ed,0xe860aaf4,0x232c69a5, |
2248 | 0xbe5f2ff,0xac5daeff,0xffb1d2ee,0xffd8e3e8,0xffd8e3e8,0xffd9e4e9,0xffdee9ef,0xff3ca1f2,0xff5eb6fe,0xffebf3f7,0xffdae4e9,0xffafd1ee,0xb03890e9,0x90d2134, | 1716 | 0xbe5f2ff,0xac5daeff,0xffb1d2ee,0xffd8e3e8,0xffd8e3e8,0xffd9e4e9,0xffdee9ef,0xff3ca1f2,0xff5eb6fe,0xffebf3f7,0xffdae4e9,0xffafd1ee,0xb03890e9,0x90d2134, |
2249 | 0x1ffffff,0x3371b6fd,0xe653a7fa,0xffbdd6ea,0xffd3e0e6,0xffd4e0e6,0xffdbe7ee,0xffd2e7f6,0xffe4eef4,0xffd7e3e8,0xffbdd6ea,0xeb4da1f4,0x3d2264a5,0x1000000, | 1717 | 0x1ffffff,0x3371b6fd,0xe653a7fa,0xffbdd6ea,0xffd3e0e6,0xffd4e0e6,0xffdbe7ee,0xffd2e7f6,0xffe4eef4,0xffd7e3e8,0xffbdd6ea,0xeb4da1f4,0x3d2264a5,0x1000000, |
2250 | 0xffffff,0x3ffffff,0x403394f5,0xe649a2f9,0xffa5caeb,0xffcadbe4,0xffcfdde4,0xffd0dde5,0xffcbdbe5,0xffa4caeb,0xeb469ef3,0x591f66ad,0x5000000,0x0, | 1718 | 0xffffff,0x3ffffff,0x403394f5,0xe649a2f9,0xffa5caeb,0xffcadbe4,0xffcfdde4,0xffd0dde5,0xffcbdbe5,0xffa4caeb,0xeb469ef3,0x591f66ad,0x5000000,0x0, |
2251 | 0x0,0x0,0xa2a2a2,0x2a268aed,0xa52890f8,0xe5469ff5,0xfa5ba9f4,0xfa5ba8f4,0xe8459df2,0xb02588e9,0x3d1a60a5,0x5000000,0x0,0x0, | 1719 | 0x0,0x0,0xa2a2a2,0x2a268aed,0xa52890f8,0xe5469ff5,0xfa5ba9f4,0xfa5ba8f4,0xe8459df2,0xb02588e9,0x3d1a60a5,0x5000000,0x0,0x0, |
2252 | 0x0,0x0,0x0,0x0,0x3165798,0x1c1d74ca,0x311e77d0,0x331c72c7,0x23185ea5,0x9081e34,0x1000000,0x0,0x0,0x0 | 1720 | 0x0,0x0,0x0,0x0,0x3165798,0x1c1d74ca,0x311e77d0,0x331c72c7,0x23185ea5,0x9081e34,0x1000000,0x0,0x0,0x0 |
2253 | }; | 1721 | }; |
2254 | 1722 | ||
1723 | static const QRgb OKButton_data[] = { | ||
1724 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
1725 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
1726 | 0xffffff,0xffffff,0xffffff,0xffffff,0x3ed5d5d5,0x93d4d4d4,0xd5d9d9d9,0xfed8d8d8,0xf8d2d2d2,0xeed5d5d5,0xe1d1d1d1,0xdcd3d3d3,0xe1d3d3d3,0xe6d4d4d4, | ||
1727 | 0xecd6d6d6,0xf1d5d5d5,0xf6d5d5d5,0xfbd6d6d6,0xfed7d7d7,0xffd8d8d8,0xffd6d6d6,0xd9cacaca,0xa1bebebe,0x518f8f8f,0xc000000,0x3000000,0xffffff,0xffffff, | ||
1728 | 0xffffff,0xffffff,0xffffff,0x5fd5d5d5,0xdbdddddd,0xffdcdcdc,0xffcbcbcb,0xffc5c5c5,0xffc3c3c3,0xffcdcdcd,0xffc7c7c7,0xffc4c4c4,0xffc5c5c5,0xffc5c5c5, | ||
1729 | 0xffc4c4c4,0xffc3c3c3,0xffc4c4c4,0xffc5c5c5,0xffc8c8c8,0xffcacaca,0xffcbcbcb,0xffcccccc,0xffd5d5d5,0xe7bdbdbd,0x847e7e7e,0x18000000,0x4000000,0xffffff, | ||
1730 | 0xffffff,0xffffff,0x3ed6d5d5,0xdbd3d3d3,0xffd1d1d1,0xffc0bfbf,0xffbcbcbc,0xffb7b6b7,0xffb9b8b9,0xff989898,0xff313131,0xff323232,0xff555555,0xffbababa, | ||
1731 | 0xff969696,0xff323232,0xff989798,0xffc1c0c1,0xff797879,0xffa6a5a6,0xffcecdce,0xffcecdce,0xffcbcbcb,0xffbbbcbb,0xed939293,0x76484848,0x18000000,0x3000000, | ||
1732 | 0xffffff,0xffffff,0x93cccdcc,0xffc8c7c7,0xffb0b0b0,0xffaeadad,0xffb2b2b2,0xffb0b0b0,0xffafaeae,0xff000000,0xff5b5c5b,0xffb2b1b1,0xff000000,0xff606060, | ||
1733 | 0xff828282,0xff000000,0xff878787,0xff6a6a6a,0xff1a1a1a,0xffa4a4a4,0xffc8c8c8,0xffc9c8c8,0xffc7c7c7,0xffbdbebd,0xffa6a5a5,0xc9505050,0x3d000000,0xc000000, | ||
1734 | 0xffffff,0xffffff,0xd5c1c1c1,0xffacacac,0xff999999,0xffa1a1a1,0xff9b9a9a,0xffa4a4a4,0xff989898,0xff000000,0xff565656,0xffa9a9a9,0xff000000,0xff565656, | ||
1735 | 0xff757575,0xff000000,0xff474747,0xff191919,0xff8e8e8e,0xffbababa,0xffb5b5b5,0xffb0b0b0,0xffbcbcbc,0xffbbbbbb,0xffafafaf,0xf0545454,0x61000000,0x1a000000, | ||
1736 | 0xffffff,0xffffff,0xfab3b3b3,0xff969696,0xff878787,0xff9a9a9a,0xff919191,0xff8c8c8c,0xff929292,0xff000000,0xff515151,0xff959595,0xff000000,0xff4d4d4d, | ||
1737 | 0xff686868,0xff000000,0xff000000,0xff909090,0xffafafaf,0xff9f9f9f,0xff999999,0xffa5a5a5,0xffb0b0b0,0xffb7b7b7,0xff9f9f9f,0xfd505050,0x7c000000,0x25000000, | ||
1738 | 0xffffff,0xffffff,0xd8a0a0a0,0xff888888,0xff858585,0xff7a7a7a,0xff838383,0xff8a8a8a,0xff838383,0xff000000,0xff464646,0xff878787,0xff000000,0xff494949, | ||
1739 | 0xff636363,0xff000000,0xff1e1e1e,0xff212121,0xff9b9b9b,0xffa6a6a6,0xff9f9f9f,0xffa0a0a0,0xffacacac,0xffa7a7a7,0xff858585,0xf2393939,0x85000000,0x2b000000, | ||
1740 | 0xffffff,0xffffff,0x9e818181,0xff848483,0xff757676,0xff7b7b7b,0xff707070,0xff777776,0xff797979,0xff000000,0xff434443,0xff737273,0xff000000,0xff3e3e3e, | ||
1741 | 0xff555554,0xff000000,0xff616160,0xff3d3d3c,0xff2c2c2c,0xff8f8f8f,0xffa1a1a1,0xffa5a5a5,0xff9e9e9e,0xff979897,0xff5e5d5e,0xdf282828,0x7c000000,0x25000000, | ||
1742 | 0xffffff,0xffffff,0x505b5b5b,0xe66a6a6a,0xff6c6c6c,0xff686868,0xff656666,0xff656565,0xff6c6d6c,0xff373737,0xff0d0d0d,0xff1c1c1c,0xff131414,0xff585959, | ||
1743 | 0xff4a4a4a,0xff000000,0xff4f4f4f,0xff727272,0xff373737,0xff6d6d6d,0xff979797,0xff989998,0xff878787,0xff666566,0xf5333333,0xbb101010,0x61000000,0x1a000000, | ||
1744 | 0xffffff,0xffffff,0xc000000,0x833c3c3c,0xec474747,0xff4c4b4b,0xff535352,0xff575757,0xff575657,0xff595859,0xff585857,0xff545453,0xff525251,0xff535352, | ||
1745 | 0xff545454,0xff565656,0xff5a5a5a,0xff606060,0xff696969,0xff717171,0xff707070,0xff666566,0xff535253,0xf5323231,0xce161616,0x83000000,0x3d000000,0xc000000, | ||
1746 | 0xffffff,0xffffff,0x3000000,0x18000000,0x751f1f1f,0xc8262626,0xef272727,0xff2e2e2e,0xfd282828,0xfa262626,0xf5242424,0xf3232323,0xf5262626,0xf7262626, | ||
1747 | 0xf9282828,0xfa292929,0xfc2c2c2c,0xfe2d2d2d,0xff323232,0xff343434,0xff343434,0xf3292929,0xdf1d1d1d,0xbb0d0d0d,0x83000000,0x4b000000,0x18000000,0x3000000, | ||
1748 | 0xffffff,0xffffff,0xffffff,0x4000000,0x18000000,0x3d000000,0x61000000,0x7c000000,0x8a000000,0x8b000000,0x87000000,0x82000000,0x81000000,0x82000000, | ||
1749 | 0x84000000,0x87000000,0x89000000,0x8b000000,0x8e000000,0x8e000000,0x8f000000,0x8b000000,0x7c000000,0x61000000,0x3d000000,0x18000000,0x4000000,0xffffff, | ||
1750 | 0xffffff,0xffffff,0xffffff,0xffffff,0x3000000,0xc000000,0x1a000000,0x26000000,0x2d000000,0x2e000000,0x2b000000,0x29000000,0x28000000,0x29000000, | ||
1751 | 0x2a000000,0x2b000000,0x2d000000,0x2e000000,0x2e000000,0x2f000000,0x30000000,0x2e000000,0x26000000,0x1a000000,0xc000000,0x3000000,0xffffff,0xffffff | ||
1752 | }; | ||
1753 | |||
2255 | static const unsigned char oneoverx_data[] = { | 1754 | static const unsigned char oneoverx_data[] = { |
2256 | 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1755 | 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2257 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00, | 1756 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00, |
2258 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, | 1757 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, |
2259 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01, | 1758 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01, |
2260 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1759 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2261 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, | 1760 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, |
2262 | 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1761 | 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2263 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1762 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2264 | 0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00, | 1763 | 0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00, |
2265 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, | 1764 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, |
2266 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, | 1765 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, |
2267 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01, | 1766 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01, |
2268 | 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 1767 | 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
2269 | }; | 1768 | }; |
2270 | 1769 | ||
2271 | static const QRgb oneoverx_ctable[] = { | 1770 | static const QRgb oneoverx_ctable[] = { |
2272 | 0xc6c6c6,0xff000000 | 1771 | 0xc6c6c6,0xff000000 |
2273 | }; | 1772 | }; |
2274 | 1773 | ||
2275 | static const unsigned char pass_data[] = { | 1774 | static const unsigned char pass_data[] = { |
2276 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1775 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2277 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1776 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2278 | 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, | 1777 | 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, |
2279 | 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00, | 1778 | 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00, |
2280 | 0x00,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02, | 1779 | 0x00,0x00,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02, |
2281 | 0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02, | 1780 | 0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02, |
2282 | 0x02,0x02,0x01,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00, | 1781 | 0x02,0x02,0x01,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00, |
2283 | 0x01,0x02,0x02,0x02,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01, | 1782 | 0x01,0x02,0x02,0x02,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01, |
2284 | 0x01,0x01,0x01,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x01, | 1783 | 0x01,0x01,0x01,0x02,0x02,0x02,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x01, |
2285 | 0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x02,0x02, | 1784 | 0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x02,0x02, |
2286 | 0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x01, | 1785 | 0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x01, |
2287 | 0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00, | 1786 | 0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00, |
2288 | 0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x01, | 1787 | 0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x01, |
2289 | 0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, | 1788 | 0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, |
2290 | 0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, | 1789 | 0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, |
2291 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00 | 1790 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00 |
2292 | }; | 1791 | }; |
2293 | 1792 | ||
2294 | static const QRgb pass_ctable[] = { | 1793 | static const QRgb pass_ctable[] = { |
2295 | 0xc6c6c6,0xff000000,0xffffff00 | 1794 | 0xc6c6c6,0xff000000,0xffffff00 |
2296 | }; | 1795 | }; |
2297 | 1796 | ||
2298 | static const QRgb paste_data[] = { | ||
2299 | 0x27efb54a,0x61efb649,0x61f1b645,0x61e0ae4e,0x8a96a0ac,0xe29bb0d4,0xcf5e7095,0x615e4f33,0x61e8a933,0x45e5a732,0x1168440f,0x4240c00,0x0,0x0, | ||
2300 | 0xd1efbe61,0xfff2d797,0xffedcf86,0xffbaaf8f,0xffa7b4c7,0xffc9d6eb,0xffc0d1eb,0xff7e8289,0xffc39033,0xead58c1d,0x9c7e440b,0x2d2c0f00,0x1000000,0x0, | ||
2301 | 0xfcf0c470,0xfff5f0d4,0xffddd6b5,0xff8695a8,0xff7285a7,0xff7786a1,0xff7a879c,0xff69748e,0xff946339,0xfff67202,0xdaa44102,0x52311100,0x6000000,0x0, | ||
2302 | 0xf7f0c36e,0xfff4ebcc,0xffecdcaf,0xffcdc29b,0xffc1b486,0xffc3a86b,0xffb8924a,0xffb17b31,0xffc66c1c,0xffde6610,0xde944311,0x5830170e,0x7020000,0x0, | ||
2303 | 0xf7f0c36e,0xfff3e7c5,0xfff4e1aa,0xfff7df9b,0xfff8d781,0xfff7c353,0xffcfa555,0xffb8b7ac,0xffc2b1aa,0xffb7aaac,0xf49ba0b2,0x9755739a,0x19154070,0x0, | ||
2304 | 0xf7f0c36e,0xfff3e3b5,0xfff3d893,0xfff3d485,0xfff4c663,0xfff3aa27,0xffbc9656,0xffc5e2ff,0xffbfdafb,0xffadcffc,0xffa9ccfd,0xee6eabf2,0x832061a8,0xf002f61, | ||
2305 | 0xf7f0c36d,0xfff3e2ad,0xfff3d890,0xfff3cc73,0xfff4b63e,0xfff3a216,0xffbc9859,0xffcde6fe,0xffc8dffb,0xffbad6fb,0xffa8ccfb,0xff5da3f8,0xf3218af6,0x5e07427d, | ||
2306 | 0xf7f0c36d,0xfff3e0af,0xfff3d181,0xfff3c056,0xfff4b539,0xfff2ab22,0xffbc9c60,0xffcce5fe,0xffc7defb,0xffb8d5fb,0xffbbd5fd,0xffabcafe,0xff6cb0ff,0x73194579, | ||
2307 | 0xf7f0c36e,0xfff3dda7,0xfff3c564,0xfff3bc4c,0xfff4b63c,0xfff3ac26,0xffbc9e63,0xffcae4ff,0xffbcd7fb,0xffa4c8fb,0xff92bbfb,0xff8eb7fb,0xff72b3fe,0x741d4678, | ||
2308 | 0xf7f0c36d,0xfff3d99a,0xfff3bd50,0xfff3ba45,0xfff4b53b,0xfff3ac25,0xffbc9d63,0xffcae5ff,0xffbbd6fb,0xffa1c5fb,0xff99c1fb,0xff9cc1fc,0xff7cb9fe,0x741f4678, | ||
2309 | 0xfbf5c870,0xfff8dc9b,0xfff8c65c,0xfff8c252,0xfff8be49,0xfff7b534,0xffbfa46c,0xffcbe4ff,0xffb7d3fb,0xffa4c6fb,0xffa0c4fb,0xffa2c4fc,0xff80bdff,0x74204778, | ||
2310 | 0xb2b08749,0xf6b78958,0xf8b48041,0xf8b47d3a,0xf8b47c36,0xf8b3742b,0xfe927d68,0xffc4e7ff,0xffc1defe,0xffb4d6fe,0xffaed3fe,0xffaed2fe,0xff7dc1ff,0x761d487a, | ||
2311 | 0x274d2f15,0x64533018,0x73482912,0x73482810,0x73482810,0x7048250e,0x9b303341,0xd43a7cba,0xd53c78b3,0xd53975b3,0xd53774b3,0xd53674b3,0xd32570b9,0x61083059, | ||
2312 | 0x1000000,0x8000000,0xd000000,0xd000000,0xd000000,0xd000000,0x1d000a17,0x38002245,0x3b001e3e,0x3a001f3f,0x3a001f3f,0x3b001f3e,0x37002245,0x1a001020 | ||
2313 | }; | ||
2314 | |||
2315 | static const QRgb paste_inactive_data[] = { | 1797 | static const QRgb paste_inactive_data[] = { |
2316 | 0x1bbbbbbb,0x45bababa,0x45bababa,0x45b2b2b2,0x619e9e9e,0x9fadadad,0x916e6e6e,0x45505050,0x45afafaf,0x31acacac,0xc484848,0x3111111,0x0,0x0, | 1798 | 0x1bbbbbbb,0x45bababa,0x45bababa,0x45b2b2b2,0x619e9e9e,0x9fadadad,0x916e6e6e,0x45505050,0x45afafaf,0x31acacac,0xc484848,0x3111111,0x0,0x0, |
2317 | 0x93c3c3c3,0xb3d8d8d8,0xb3cfcfcf,0xb3aeaeae,0xb3b2b2b2,0xb3d4d4d4,0xb3cecece,0xb3828282,0xb3949494,0xa4959595,0x6d4f4f4f,0x1f151515,0x1000000,0x0, | 1799 | 0x93c3c3c3,0xb3d8d8d8,0xb3cfcfcf,0xb3aeaeae,0xb3b2b2b2,0xb3d4d4d4,0xb3cecece,0xb3828282,0xb3949494,0xa4959595,0x6d4f4f4f,0x1f151515,0x1000000,0x0, |
2318 | 0xb1c7c7c7,0xb3eeeeee,0xb3d4d4d4,0xb3929292,0xb3838383,0xb3848484,0xb3858585,0xb3737373,0xb36d6d6d,0xb38d8d8d,0x99575757,0x3a181818,0x4000000,0x0, | 1800 | 0xb1c7c7c7,0xb3eeeeee,0xb3d4d4d4,0xb3929292,0xb3838383,0xb3848484,0xb3858585,0xb3737373,0xb36d6d6d,0xb38d8d8d,0x99575757,0x3a181818,0x4000000,0x0, |
2319 | 0xaec6c6c6,0xb3eaeaea,0xb3dbdbdb,0xb3c0c0c0,0xb3b2b2b2,0xb3a9a9a9,0xb3959595,0xb3828282,0xb37d7d7d,0xb3808080,0x9c555555,0x3e1d1d1d,0x5000000,0x0, | 1801 | 0xaec6c6c6,0xb3eaeaea,0xb3dbdbdb,0xb3c0c0c0,0xb3b2b2b2,0xb3a9a9a9,0xb3959595,0xb3828282,0xb37d7d7d,0xb3808080,0x9c555555,0x3e1d1d1d,0x5000000,0x0, |
2320 | 0xaec6c6c6,0xb3e6e6e6,0xb3e0e0e0,0xb3dedede,0xb3d7d7d7,0xb3c6c6c6,0xb3a8a8a8,0xb3b5b5b5,0xb3b5b5b5,0xb3adadad,0xaba0a0a0,0x6a6e6e6e,0x12383838,0x0, | 1802 | 0xaec6c6c6,0xb3e6e6e6,0xb3e0e0e0,0xb3dedede,0xb3d7d7d7,0xb3c6c6c6,0xb3a8a8a8,0xb3b5b5b5,0xb3b5b5b5,0xb3adadad,0xaba0a0a0,0x6a6e6e6e,0x12383838,0x0, |
2321 | 0xaec6c6c6,0xb3e3e3e3,0xb3d8d8d8,0xb3d4d4d4,0xb3c8c8c8,0xb3b0b0b0,0xb3999999,0xb3dcdcdc,0xb3d5d5d5,0xb3c9c9c9,0xb3c6c6c6,0xa7a0a0a0,0x5c555555,0xb252525, | 1803 | 0xaec6c6c6,0xb3e3e3e3,0xb3d8d8d8,0xb3d4d4d4,0xb3c8c8c8,0xb3b0b0b0,0xb3999999,0xb3dcdcdc,0xb3d5d5d5,0xb3c9c9c9,0xb3c6c6c6,0xa7a0a0a0,0x5c555555,0xb252525, |
2322 | 0xaec6c6c6,0xb3e1e1e1,0xb3d8d8d8,0xb3cdcdcd,0xb3bbbbbb,0xb3aaaaaa,0xb39b9b9b,0xb3e0e0e0,0xb3dbdbdb,0xb3d1d1d1,0xb3c6c6c6,0xb3979797,0xab767676,0x42373737, | 1804 | 0xaec6c6c6,0xb3e1e1e1,0xb3d8d8d8,0xb3cdcdcd,0xb3bbbbbb,0xb3aaaaaa,0xb39b9b9b,0xb3e0e0e0,0xb3dbdbdb,0xb3d1d1d1,0xb3c6c6c6,0xb3979797,0xab767676,0x42373737, |
2323 | 0xaec6c6c6,0xb3e0e0e0,0xb3d2d2d2,0xb3c3c3c3,0xb3bababa,0xb3b1b1b1,0xb39e9e9e,0xb3e0e0e0,0xb3dadada,0xb3d0d0d0,0xb3d1d1d1,0xb3c6c6c6,0xb3a4a4a4,0x513d3d3d, | 1805 | 0xaec6c6c6,0xb3e0e0e0,0xb3d2d2d2,0xb3c3c3c3,0xb3bababa,0xb3b1b1b1,0xb39e9e9e,0xb3e0e0e0,0xb3dadada,0xb3d0d0d0,0xb3d1d1d1,0xb3c6c6c6,0xb3a4a4a4,0x513d3d3d, |
2324 | 0xaec6c6c6,0xb3dddddd,0xb3c8c8c8,0xb3c0c0c0,0xb3bababa,0xb3b2b2b2,0xb3a0a0a0,0xb3dfdfdf,0xb3d3d3d3,0xb3c2c2c2,0xb3b5b5b5,0xb3b1b1b1,0xb3a8a8a8,0x513f3f3f, | 1806 | 0xaec6c6c6,0xb3dddddd,0xb3c8c8c8,0xb3c0c0c0,0xb3bababa,0xb3b2b2b2,0xb3a0a0a0,0xb3dfdfdf,0xb3d3d3d3,0xb3c2c2c2,0xb3b5b5b5,0xb3b1b1b1,0xb3a8a8a8,0x513f3f3f, |
2325 | 0xaec6c6c6,0xb3d9d9d9,0xb3c1c1c1,0xb3bebebe,0xb3bababa,0xb3b2b2b2,0xb3a0a0a0,0xb3dfdfdf,0xb3d2d2d2,0xb3c0c0c0,0xb3bbbbbb,0xb3bcbcbc,0xb3aeaeae,0x51404040, | 1807 | 0xaec6c6c6,0xb3d9d9d9,0xb3c1c1c1,0xb3bebebe,0xb3bababa,0xb3b2b2b2,0xb3a0a0a0,0xb3dfdfdf,0xb3d2d2d2,0xb3c0c0c0,0xb3bbbbbb,0xb3bcbcbc,0xb3aeaeae,0x51404040, |
2326 | 0xb3cbcbcb,0xb6dddddd,0xb5c9c9c9,0xb4c6c6c6,0xb4c2c2c2,0xb4bababa,0xb4a5a5a5,0xb3dfdfdf,0xb3cecece,0xb3c1c1c1,0xb3bebebe,0xb3bfbfbf,0xb3b1b1b1,0x51414141, | 1808 | 0xb3cbcbcb,0xb6dddddd,0xb5c9c9c9,0xb4c6c6c6,0xb4c2c2c2,0xb4bababa,0xb4a5a5a5,0xb3dfdfdf,0xb3cecece,0xb3c1c1c1,0xb3bebebe,0xb3bfbfbf,0xb3b1b1b1,0x51414141, |
2327 | 0x828c8c8c,0xb2909090,0xb2888888,0xb1868686,0xb0848484,0xaf7e7e7e,0xb4808080,0xb4dfdfdf,0xb4d8d8d8,0xb4d0d0d0,0xb4cccccc,0xb4cbcbcb,0xb4b3b3b3,0x53414141, | 1809 | 0x828c8c8c,0xb2909090,0xb2888888,0xb1868686,0xb0848484,0xaf7e7e7e,0xb4808080,0xb4dfdfdf,0xb4d8d8d8,0xb4d0d0d0,0xb4cccccc,0xb4cbcbcb,0xb4b3b3b3,0x53414141, |
2328 | 0x1c353535,0x49383838,0x532f2f2f,0x532e2e2e,0x522e2e2e,0x502d2d2d,0x6e333333,0x966e6e6e,0x976c6c6c,0x97696969,0x98686868,0x98676767,0x97606060,0x45282828, | 1810 | 0x1c353535,0x49383838,0x532f2f2f,0x532e2e2e,0x522e2e2e,0x502d2d2d,0x6e333333,0x966e6e6e,0x976c6c6c,0x97696969,0x98686868,0x98676767,0x97606060,0x45282828, |
2329 | 0x1000000,0x6000000,0x9000000,0x9000000,0x9000000,0x9000000,0x14080808,0x281c1c1c,0x2a181818,0x2a181818,0x29191919,0x2a191919,0x281b1b1b,0x120d0d0d | 1811 | 0x1000000,0x6000000,0x9000000,0x9000000,0x9000000,0x9000000,0x14080808,0x281c1c1c,0x2a181818,0x2a181818,0x29191919,0x2a191919,0x281b1b1b,0x120d0d0d |
2330 | }; | 1812 | }; |
2331 | 1813 | ||
1814 | static const QRgb paste_data[] = { | ||
1815 | 0x27efb54a,0x61efb649,0x61f1b645,0x61e0ae4e,0x8a96a0ac,0xe29bb0d4,0xcf5e7095,0x615e4f33,0x61e8a933,0x45e5a732,0x1168440f,0x4240c00,0x0,0x0, | ||
1816 | 0xd1efbe61,0xfff2d797,0xffedcf86,0xffbaaf8f,0xffa7b4c7,0xffc9d6eb,0xffc0d1eb,0xff7e8289,0xffc39033,0xead58c1d,0x9c7e440b,0x2d2c0f00,0x1000000,0x0, | ||
1817 | 0xfcf0c470,0xfff5f0d4,0xffddd6b5,0xff8695a8,0xff7285a7,0xff7786a1,0xff7a879c,0xff69748e,0xff946339,0xfff67202,0xdaa44102,0x52311100,0x6000000,0x0, | ||
1818 | 0xf7f0c36e,0xfff4ebcc,0xffecdcaf,0xffcdc29b,0xffc1b486,0xffc3a86b,0xffb8924a,0xffb17b31,0xffc66c1c,0xffde6610,0xde944311,0x5830170e,0x7020000,0x0, | ||
1819 | 0xf7f0c36e,0xfff3e7c5,0xfff4e1aa,0xfff7df9b,0xfff8d781,0xfff7c353,0xffcfa555,0xffb8b7ac,0xffc2b1aa,0xffb7aaac,0xf49ba0b2,0x9755739a,0x19154070,0x0, | ||
1820 | 0xf7f0c36e,0xfff3e3b5,0xfff3d893,0xfff3d485,0xfff4c663,0xfff3aa27,0xffbc9656,0xffc5e2ff,0xffbfdafb,0xffadcffc,0xffa9ccfd,0xee6eabf2,0x832061a8,0xf002f61, | ||
1821 | 0xf7f0c36d,0xfff3e2ad,0xfff3d890,0xfff3cc73,0xfff4b63e,0xfff3a216,0xffbc9859,0xffcde6fe,0xffc8dffb,0xffbad6fb,0xffa8ccfb,0xff5da3f8,0xf3218af6,0x5e07427d, | ||
1822 | 0xf7f0c36d,0xfff3e0af,0xfff3d181,0xfff3c056,0xfff4b539,0xfff2ab22,0xffbc9c60,0xffcce5fe,0xffc7defb,0xffb8d5fb,0xffbbd5fd,0xffabcafe,0xff6cb0ff,0x73194579, | ||
1823 | 0xf7f0c36e,0xfff3dda7,0xfff3c564,0xfff3bc4c,0xfff4b63c,0xfff3ac26,0xffbc9e63,0xffcae4ff,0xffbcd7fb,0xffa4c8fb,0xff92bbfb,0xff8eb7fb,0xff72b3fe,0x741d4678, | ||
1824 | 0xf7f0c36d,0xfff3d99a,0xfff3bd50,0xfff3ba45,0xfff4b53b,0xfff3ac25,0xffbc9d63,0xffcae5ff,0xffbbd6fb,0xffa1c5fb,0xff99c1fb,0xff9cc1fc,0xff7cb9fe,0x741f4678, | ||
1825 | 0xfbf5c870,0xfff8dc9b,0xfff8c65c,0xfff8c252,0xfff8be49,0xfff7b534,0xffbfa46c,0xffcbe4ff,0xffb7d3fb,0xffa4c6fb,0xffa0c4fb,0xffa2c4fc,0xff80bdff,0x74204778, | ||
1826 | 0xb2b08749,0xf6b78958,0xf8b48041,0xf8b47d3a,0xf8b47c36,0xf8b3742b,0xfe927d68,0xffc4e7ff,0xffc1defe,0xffb4d6fe,0xffaed3fe,0xffaed2fe,0xff7dc1ff,0x761d487a, | ||
1827 | 0x274d2f15,0x64533018,0x73482912,0x73482810,0x73482810,0x7048250e,0x9b303341,0xd43a7cba,0xd53c78b3,0xd53975b3,0xd53774b3,0xd53674b3,0xd32570b9,0x61083059, | ||
1828 | 0x1000000,0x8000000,0xd000000,0xd000000,0xd000000,0xd000000,0x1d000a17,0x38002245,0x3b001e3e,0x3a001f3f,0x3a001f3f,0x3b001f3e,0x37002245,0x1a001020 | ||
1829 | }; | ||
1830 | |||
2332 | static const QRgb pixmap_data[] = { | 1831 | static const QRgb pixmap_data[] = { |
2333 | 0x9377b7fe,0xc277b7fe,0xc264aefe,0xc251a5fe,0xc23e9cfe,0xc22f94fe,0xc22890fe,0xc22890fe,0xc22890fe,0xc22890fe,0xc2258cf8,0x2a0449a2,0x0,0x0, | 1832 | 0x9377b7fe,0xc277b7fe,0xc264aefe,0xc251a5fe,0xc23e9cfe,0xc22f94fe,0xc22890fe,0xc22890fe,0xc22890fe,0xc22890fe,0xc2258cf8,0x2a0449a2,0x0,0x0, |
2334 | 0xc28fc3fd,0xff90c3fc,0xff71b4fc,0xff50a4fc,0xff3194fc,0xff1788fc,0xff0b81fc,0xff0b81fc,0xff0b80fc,0xff0a80fc,0xff0a7df5,0x3e034391,0x0,0x0, | 1833 | 0xc28fc3fd,0xff90c3fc,0xff71b4fc,0xff50a4fc,0xff3194fc,0xff1788fc,0xff0b81fc,0xff0b81fc,0xff0b80fc,0xff0a80fc,0xff0a7df5,0x3e034391,0x0,0x0, |
2335 | 0xc2cae2fa,0xfff7f8f9,0xfff4f7f9,0xfff0f6f9,0xffecf4f9,0xffe8f3f9,0xffdfecf7,0xffc9d8f0,0xffc3d3ed,0xffc2d6ed,0xffc4ddf1,0x3e1b4f91,0x0,0x0, | 1834 | 0xc2cae2fa,0xfff7f8f9,0xfff4f7f9,0xfff0f6f9,0xffecf4f9,0xffe8f3f9,0xffdfecf7,0xffc9d8f0,0xffc3d3ed,0xffc2d6ed,0xffc4ddf1,0x3e1b4f91,0x0,0x0, |
2336 | 0xc2cee6fe,0xfffafdff,0xfff7fcff,0xfff3fbff,0xffeef8ff,0xffd1def9,0xffd4dcf7,0xffe4e9fd,0xffd7e0fe,0xffc1cdf9,0xffaebbe6,0x61576ba2,0x1a1c2b,0x0, | 1835 | 0xc2cee6fe,0xfffafdff,0xfff7fcff,0xfff3fbff,0xffeef8ff,0xffd1def9,0xffd4dcf7,0xffe4e9fd,0xffd7e0fe,0xffc1cdf9,0xffaebbe6,0x61576ba2,0x1a1c2b,0x0, |
2337 | 0xc2cde6fe,0xfff8fdff,0xfff4fbff,0xfff0f9ff,0xffd3dffb,0xfff1f4fe,0xfff5f7ff,0xffeff3ff,0xffdce5ff,0xffd1ddff,0xffe2e9ff,0xf6d2d6ef,0x476971a4,0x0, | 1836 | 0xc2cde6fe,0xfff8fdff,0xfff4fbff,0xfff0f9ff,0xffd3dffb,0xfff1f4fe,0xfff5f7ff,0xffeff3ff,0xffdce5ff,0xffd1ddff,0xffe2e9ff,0xf6d2d6ef,0x476971a4,0x0, |
2338 | 0xc2cce5fe,0xfff6fbff,0xfff2faff,0xffe0ecfe,0xffdfe8fe,0xfff5f8ff,0xfffbfcff,0xfff5f7ff,0xffe2eaff,0xffe0e8ff,0xfff6f8ff,0xfff7f9ff,0xdeb3b8db,0x10323756, | 1837 | 0xc2cce5fe,0xfff6fbff,0xfff2faff,0xffe0ecfe,0xffdfe8fe,0xfff5f8ff,0xfffbfcff,0xfff5f7ff,0xffe2eaff,0xffe0e8ff,0xfff6f8ff,0xfff7f9ff,0xdeb3b8db,0x10323756, |
2339 | 0xc2cbe5fe,0xfff3faff,0xffeff9ff,0xffd3e1fe,0xffdbe6ff,0xffe7efff,0xfff6f9ff,0xfff7f8fe,0xffe5ebfb,0xfff2f5fe,0xfff8faff,0xfff5f8ff,0xffe0e4f9,0x575b608f, | 1838 | 0xc2cbe5fe,0xfff3faff,0xffeff9ff,0xffd3e1fe,0xffdbe6ff,0xffe7efff,0xfff6f9ff,0xfff7f8fe,0xffe5ebfb,0xfff2f5fe,0xfff8faff,0xfff5f8ff,0xffe0e4f9,0x575b608f, |
2340 | 0xc2c8e4fe,0xfff0f9ff,0xffebf8ff,0xffd1dffe,0xffcedeff,0xffdae6ff,0xffe6eeff,0xffd7dff7,0xffa8b7d4,0xffe2e5f4,0xffe7edff,0xffd6e1ff,0xffc9d7ff,0x8b7176a6, | 1839 | 0xc2c8e4fe,0xfff0f9ff,0xffebf8ff,0xffd1dffe,0xffcedeff,0xffdae6ff,0xffe6eeff,0xffd7dff7,0xffa8b7d4,0xffe2e5f4,0xffe7edff,0xffd6e1ff,0xffc9d7ff,0x8b7176a6, |
2341 | 0xc2c6e3fe,0xffedf8ff,0xffe8f6ff,0xffd1e0fe,0xffd8e5ff,0xffe8efff,0xfff3f7ff,0xffd9e0f7,0xffb1c2e2,0xffe3e6f4,0xffe9efff,0xffdce6ff,0xffd1ddff,0x8f6e74a1, | 1840 | 0xc2c6e3fe,0xffedf8ff,0xffe8f6ff,0xffd1e0fe,0xffd8e5ff,0xffe8efff,0xfff3f7ff,0xffd9e0f7,0xffb1c2e2,0xffe3e6f4,0xffe9efff,0xffdce6ff,0xffd1ddff,0x8f6e74a1, |
2342 | 0xc1beddfa,0xfce2f0f8,0xfcddeef8,0xfdcddcf9,0xfff3f7ff,0xfff6f9ff,0xfff8faff,0xffe6edfe,0xffebeffc,0xfff6f8fd,0xfff7f9ff,0xffe9efff,0xffd3dbfa,0x684d5279, | 1841 | 0xc1beddfa,0xfce2f0f8,0xfcddeef8,0xfdcddcf9,0xfff3f7ff,0xfff6f9ff,0xfff8faff,0xffe6edfe,0xffebeffc,0xfff6f8fd,0xfff7f9ff,0xffe9efff,0xffd3dbfa,0x684d5279, |
2343 | 0x603277cb,0x7f175ab4,0x7f175ab4,0x8e4676c5,0xfbe8edfd,0xfff6f9ff,0xffebf1ff,0xffd7e4ff,0xffeef3ff,0xfff4f7ff,0xfff8faff,0xfff7f9ff,0xe9acb1d5,0x21161825, | 1842 | 0x603277cb,0x7f175ab4,0x7f175ab4,0x8e4676c5,0xfbe8edfd,0xfff6f9ff,0xffebf1ff,0xffd7e4ff,0xffeef3ff,0xfff4f7ff,0xfff8faff,0xfff7f9ff,0xe9acb1d5,0x21161825, |
2344 | 0x0,0x0,0x0,0x15a6796,0x8db1beec,0xffeaf0fe,0xffd3e1ff,0xffcbdcff,0xffe9f0ff,0xffeef3ff,0xfff3f7ff,0xfbd4d8ef,0x6d4e5276,0x2000000, | 1843 | 0x0,0x0,0x0,0x15a6796,0x8db1beec,0xffeaf0fe,0xffd3e1ff,0xffcbdcff,0xffe9f0ff,0xffeef3ff,0xfff3f7ff,0xfbd4d8ef,0x6d4e5276,0x2000000, |
2345 | 0x0,0x0,0x0,0x0,0x44b5780,0x809caadb,0xf2bccaf4,0xffc8d7fd,0xffe2ebfe,0xffdde3fa,0xe7b1b8da,0x6b52577a,0x6010102,0x0, | 1844 | 0x0,0x0,0x0,0x0,0x44b5780,0x809caadb,0xf2bccaf4,0xffc8d7fd,0xffe2ebfe,0xffdde3fa,0xe7b1b8da,0x6b52577a,0x6010102,0x0, |
2346 | 0x0,0x0,0x0,0x0,0x0,0x1000000,0x1e515c87,0x5b7580af,0x6a7982af,0x575b628a,0x1d1e212e,0x2000000,0x0,0x0 | 1845 | 0x0,0x0,0x0,0x0,0x0,0x1000000,0x1e515c87,0x5b7580af,0x6a7982af,0x575b628a,0x1d1e212e,0x2000000,0x0,0x0 |
2347 | }; | 1846 | }; |
2348 | 1847 | ||
2349 | static const QRgb play_data[] = { | ||
2350 | 0xc6000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xc6000000, | ||
2351 | 0xff000000,0xffdddddd,0xffe6e6e6,0xffe2e2e2,0xffd7d7d7,0xffd4d4d4,0xffd3d3d3,0xffd3d3d3,0xffcccccc,0xffbababa,0xffa2a2a2,0xff818181,0xff525252,0xff000000, | ||
2352 | 0xff000000,0xffd1d1d1,0xffdddddd,0xffcacaca,0xffa7a7a7,0xffafafaf,0xffc3c3c3,0xffc8c8c8,0xffbdbdbd,0xffa4a4a4,0xff818181,0xff525252,0xff3c3c3c,0xff000000, | ||
2353 | 0xff000000,0xffbebebe,0xffcbcbcb,0xffaaaaaa,0xff686868,0xffb8b8b8,0xff979797,0xffaeaeae,0xffa6a6a6,0xff828282,0xff585858,0xff3d3d3d,0xff313131,0xff000000, | ||
2354 | 0xff000000,0xffa9a9a9,0xffb3b3b3,0xff909090,0xff3f3f3f,0xffffffff,0xffadadad,0xff7b7b7b,0xff7e7e7e,0xff5a5a5a,0xff3e3e3e,0xff343434,0xff292929,0xff000000, | ||
2355 | 0xff000000,0xff919191,0xff969696,0xff747474,0xff2b2b2b,0xffffffff,0xffffffff,0xffa3a3a3,0xff424242,0xff3c3c3c,0xff343434,0xff2a2a2a,0xff222222,0xff000000, | ||
2356 | 0xff000000,0xff868686,0xff848484,0xff646464,0xff242424,0xffffffff,0xffffffff,0xffffffff,0xff9e9e9e,0xff343434,0xff2e2e2e,0xff252525,0xff1e1e1e,0xff000000, | ||
2357 | 0xff000000,0xff868686,0xff848484,0xff646464,0xff242424,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffa2a2a2,0xff2e2e2e,0xff252525,0xff1e1e1e,0xff000000, | ||
2358 | 0xff000000,0xff7a7a7a,0xff727272,0xff515151,0xff1d1d1d,0xffffffff,0xffffffff,0xffffffff,0xffa3a3a3,0xff313131,0xff292929,0xff222222,0xff1b1b1b,0xff000000, | ||
2359 | 0xff000000,0xff5b5b5b,0xff474747,0xff343434,0xff1d1d1d,0xffffffff,0xffffffff,0xff9e9e9e,0xff2b2b2b,0xff242424,0xff1f1f1f,0xff1a1a1a,0xff161616,0xff000000, | ||
2360 | 0xff000000,0xff414141,0xff3b3b3b,0xff2d2d2d,0xff222222,0xffffffff,0xff999999,0xff202020,0xff1e1e1e,0xff191919,0xff161616,0xff161616,0xff161616,0xff000000, | ||
2361 | 0xff000000,0xff383838,0xff2f2f2f,0xff252525,0xff1d1d1d,0xff969696,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff000000, | ||
2362 | 0xff000000,0xff2f2f2f,0xff232323,0xff191919,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff000000, | ||
2363 | 0xc6000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xc6000000 | ||
2364 | }; | ||
2365 | |||
2366 | static const QRgb play2_data[] = { | 1848 | static const QRgb play2_data[] = { |
2367 | 0xffffff,0x3000000,0x8000000,0x11000000,0x1a000000,0x1b000000,0x16000000,0x12000000,0xd000000,0x8000000,0x2000000,0xffffff,0xffffff,0xffffff, | 1849 | 0xffffff,0x3000000,0x8000000,0x11000000,0x1a000000,0x1b000000,0x16000000,0x12000000,0xd000000,0x8000000,0x2000000,0xffffff,0xffffff,0xffffff, |
2368 | 0xffffff,0x6000000,0xf000000,0x33000000,0x86898989,0x57000000,0x38000000,0x2a000000,0x1f000000,0x14000000,0x8000000,0x2000000,0xffffff,0xffffff, | 1850 | 0xffffff,0x6000000,0xf000000,0x33000000,0x86787878,0x57000000,0x38000000,0x2a000000,0x1f000000,0x14000000,0x8000000,0x2000000,0xffffff,0xffffff, |
2369 | 0xffffff,0x9000000,0x19000000,0x5f000000,0xffffffff,0xdca2a2a2,0x7f000000,0x56000000,0x3e000000,0x2a000000,0x14000000,0x8000000,0x2000000,0xffffff, | 1851 | 0xffffff,0x9000000,0x19000000,0x5f000000,0xffffffff,0xdc939393,0x7f000000,0x56000000,0x3e000000,0x2a000000,0x14000000,0x8000000,0x2000000,0xffffff, |
2370 | 0xffffff,0xd000000,0x24000000,0x7a000000,0xffffffff,0xffffffff,0xe99a9a9a,0xa0000000,0x72000000,0x4d000000,0x2b000000,0x14000000,0x8000000,0x2000000, | 1852 | 0xffffff,0xd000000,0x24000000,0x7a000000,0xffffffff,0xffffffff,0xe98b8b8b,0xa0000000,0x72000000,0x4d000000,0x2b000000,0x14000000,0x8000000,0x2000000, |
2371 | 0xffffff,0x10000000,0x2e000000,0x88000000,0xffffffff,0xffffffff,0xffffffff,0xf2969696,0xb8000000,0x7d000000,0x47000000,0x24000000,0xf000000,0x5000000, | 1853 | 0xffffff,0x10000000,0x2e000000,0x88000000,0xffffffff,0xffffffff,0xffffffff,0xf2868686,0xb8000000,0x7d000000,0x47000000,0x24000000,0xf000000,0x5000000, |
2372 | 0xffffff,0x12000000,0x35000000,0x94000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xf7939393,0xb7000000,0x69000000,0x35000000,0x17000000,0x7000000, | 1854 | 0xffffff,0x12000000,0x35000000,0x94000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xf7838383,0xb7000000,0x69000000,0x35000000,0x17000000,0x7000000, |
2373 | 0xffffff,0x14000000,0x3a000000,0x9b000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xec999999,0x84000000,0x43000000,0x1e000000,0xa000000, | 1855 | 0xffffff,0x14000000,0x3a000000,0x9b000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xec898989,0x84000000,0x43000000,0x1e000000,0xa000000, |
2374 | 0xffffff,0x14000000,0x3c000000,0x9e000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff8f8f8f,0xdb000000,0x88000000,0x49000000,0x22000000,0xb000000, | 1856 | 0xffffff,0x14000000,0x3c000000,0x9e000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff7f7f7f,0xdb000000,0x88000000,0x49000000,0x22000000,0xb000000, |
2375 | 0xffffff,0x14000000,0x3a000000,0x9b000000,0xffffffff,0xffffffff,0xffffffff,0xff8f8f8f,0xfd000000,0xc4000000,0x7a000000,0x43000000,0x1e000000,0xa000000, | 1857 | 0xffffff,0x14000000,0x3a000000,0x9b000000,0xffffffff,0xffffffff,0xffffffff,0xff7f7f7f,0xfd000000,0xc4000000,0x7a000000,0x43000000,0x1e000000,0xa000000, |
2376 | 0xffffff,0x12000000,0x35000000,0x94000000,0xffffffff,0xffffffff,0xfe909090,0xf9000000,0xd7000000,0xa2000000,0x63000000,0x35000000,0x17000000,0x7000000, | 1858 | 0xffffff,0x12000000,0x35000000,0x94000000,0xffffffff,0xffffffff,0xfe808080,0xf9000000,0xd7000000,0xa2000000,0x63000000,0x35000000,0x17000000,0x7000000, |
2377 | 0xffffff,0x10000000,0x2e000000,0x7f000000,0xffffffff,0xf0979797,0xd5000000,0xc2000000,0xa3000000,0x78000000,0x47000000,0x24000000,0xf000000,0x5000000, | 1859 | 0xffffff,0x10000000,0x2e000000,0x7f000000,0xffffffff,0xf0878787,0xd5000000,0xc2000000,0xa3000000,0x78000000,0x47000000,0x24000000,0xf000000,0x5000000, |
2378 | 0xffffff,0xd000000,0x24000000,0x57000000,0xa8727272,0x9c000000,0x94000000,0x85000000,0x6d000000,0x4d000000,0x2b000000,0x14000000,0x8000000,0x2000000, | 1860 | 0xffffff,0xd000000,0x24000000,0x57000000,0xa8606060,0x9c000000,0x94000000,0x85000000,0x6d000000,0x4d000000,0x2b000000,0x14000000,0x8000000,0x2000000, |
2379 | 0xffffff,0x9000000,0x19000000,0x2f000000,0x48000000,0x5a000000,0x5a000000,0x50000000,0x3e000000,0x2a000000,0x14000000,0x8000000,0x2000000,0xffffff, | 1861 | 0xffffff,0x9000000,0x19000000,0x2f000000,0x48000000,0x5a000000,0x5a000000,0x50000000,0x3e000000,0x2a000000,0x14000000,0x8000000,0x2000000,0xffffff, |
2380 | 0xffffff,0x6000000,0xf000000,0x1a000000,0x25000000,0x31000000,0x31000000,0x2a000000,0x1f000000,0x14000000,0x8000000,0x2000000,0xffffff,0xffffff | 1862 | 0xffffff,0x6000000,0xf000000,0x1a000000,0x25000000,0x31000000,0x31000000,0x2a000000,0x1f000000,0x14000000,0x8000000,0x2000000,0xffffff,0xffffff |
2381 | }; | 1863 | }; |
2382 | 1864 | ||
1865 | static const QRgb play_data[] = { | ||
1866 | 0xc6000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xc6000000, | ||
1867 | 0xff000000,0xffd6d6d6,0xffe1e1e1,0xffdcdcdc,0xffcfcfcf,0xffcccccc,0xffcbcbcb,0xffcbcbcb,0xffc3c3c3,0xffaeaeae,0xff939393,0xff707070,0xff414141,0xff000000, | ||
1868 | 0xff000000,0xffc8c8c8,0xffd6d6d6,0xffc0c0c0,0xff999999,0xffa2a2a2,0xffb8b8b8,0xffbebebe,0xffb1b1b1,0xff959595,0xff707070,0xff414141,0xff2c2c2c,0xff000000, | ||
1869 | 0xff000000,0xffb3b3b3,0xffc1c1c1,0xff9c9c9c,0xff565656,0xffacacac,0xff878787,0xffa1a1a1,0xff989898,0xff717171,0xff464646,0xff2d2d2d,0xff232323,0xff000000, | ||
1870 | 0xff000000,0xff9b9b9b,0xffa6a6a6,0xff808080,0xff2f2f2f,0xffffffff,0xffa0a0a0,0xff6a6a6a,0xff6d6d6d,0xff484848,0xff2e2e2e,0xff252525,0xff1c1c1c,0xff000000, | ||
1871 | 0xff000000,0xff818181,0xff868686,0xff626262,0xff1e1e1e,0xffffffff,0xffffffff,0xff949494,0xff323232,0xff2c2c2c,0xff252525,0xff1d1d1d,0xff161616,0xff000000, | ||
1872 | 0xff000000,0xff757575,0xff737373,0xff525252,0xff181818,0xffffffff,0xffffffff,0xffffffff,0xff8f8f8f,0xff252525,0xff202020,0xff191919,0xff131313,0xff000000, | ||
1873 | 0xff000000,0xff757575,0xff737373,0xff525252,0xff181818,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff939393,0xff202020,0xff191919,0xff131313,0xff000000, | ||
1874 | 0xff000000,0xff686868,0xff606060,0xff404040,0xff121212,0xffffffff,0xffffffff,0xffffffff,0xff949494,0xff232323,0xff1c1c1c,0xff161616,0xff111111,0xff000000, | ||
1875 | 0xff000000,0xff494949,0xff363636,0xff252525,0xff121212,0xffffffff,0xffffffff,0xff8f8f8f,0xff1e1e1e,0xff181818,0xff141414,0xff101010,0xff0d0d0d,0xff000000, | ||
1876 | 0xff000000,0xff313131,0xff2b2b2b,0xff1f1f1f,0xff161616,0xffffffff,0xff898989,0xff151515,0xff131313,0xff0f0f0f,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff000000, | ||
1877 | 0xff000000,0xff292929,0xff212121,0xff191919,0xff121212,0xff868686,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff000000, | ||
1878 | 0xff000000,0xff212121,0xff171717,0xff0f0f0f,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff0d0d0d,0xff000000, | ||
1879 | 0xc6000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xc6000000 | ||
1880 | }; | ||
1881 | |||
2383 | static const QRgb programs_data[] = { | 1882 | static const QRgb programs_data[] = { |
2384 | 0xd778b7fd,0xeb77b7fd,0xea5daafd,0xea479ffd,0xea3295fd,0xea238efd,0xea1e8bfd,0xea1e8bfd,0xea1d8bfd,0xec1d8dfe,0xbf166ec7,0x3c072f5e,0x3000000,0x0, | 1883 | 0xd778b7fd,0xeb77b7fd,0xea5daafd,0xea479ffd,0xea3295fd,0xea238efd,0xea1e8bfd,0xea1e8bfd,0xea1d8bfd,0xec1d8dfe,0xbf166ec7,0x3c072f5e,0x3000000,0x0, |
2385 | 0xed9cc9fb,0xffa8d0fb,0xff89c0fb,0xff6eb2fb,0xff53a6fb,0xff409cfa,0xff3595fa,0xff3493f9,0xff3393f9,0xff3294fa,0xde246ebb,0x5b0c2b4d,0x8000000,0x0, | 1884 | 0xed9cc9fb,0xffa8d0fb,0xff89c0fb,0xff6eb2fb,0xff53a6fb,0xff409cfa,0xff3595fa,0xff3493f9,0xff3393f9,0xff3294fa,0xde246ebb,0x5b0c2b4d,0x8000000,0x0, |
2386 | 0xeac7e0fb,0xfff5f8fb,0xffeff6fb,0xffeaf5fb,0xffe2f0fb,0xffd3e5f8,0xffc2d3f2,0xffc3d2f2,0xffb8cbf0,0xffaec6ed,0xdf7c94b4,0x5d29384c,0x9000000,0x0, | 1885 | 0xeac7e0fb,0xfff5f8fb,0xffeff6fb,0xffeaf5fb,0xffe2f0fb,0xffd3e5f8,0xffc2d3f2,0xffc3d2f2,0xffb8cbf0,0xffaec6ed,0xdf7c94b4,0x5d29384c,0x9000000,0x0, |
2387 | 0xeacde4fd,0xfffeffff,0xfff8fdff,0xfff2fafe,0xffe3ecfc,0xffe2e8fa,0xffe7ebfa,0xffe7ecfd,0xffd1dbfc,0xffc9d4f7,0xf0adb6d3,0x89626882,0x16222539,0x0, | 1886 | 0xeacde4fd,0xfffeffff,0xfff8fdff,0xfff2fafe,0xffe3ecfc,0xffe2e8fa,0xffe7ebfa,0xffe7ecfd,0xffd1dbfc,0xffc9d4f7,0xf0adb6d3,0x89626882,0x16222539,0x0, |
2388 | 0xeacbe3fd,0xfffcfeff,0xfff2faff,0xffe3edfd,0xffe3eafc,0xfff6f9fe,0xfff8f9ff,0xffeef3ff,0xffd8e2ff,0xffdfe7ff,0xfeeceffa,0xdeb9bbd1,0x5b585b71,0x70d0e19, | 1887 | 0xeacbe3fd,0xfffcfeff,0xfff2faff,0xffe3edfd,0xffe3eafc,0xfff6f9fe,0xfff8f9ff,0xffeef3ff,0xffd8e2ff,0xffdfe7ff,0xfeeceffa,0xdeb9bbd1,0x5b585b71,0x70d0e19, |
2389 | 0xeacbe3fd,0xfffbfeff,0xffebf5fe,0xffdbe6fd,0xffe4ecfe,0xfff4f8ff,0xfffcfcff,0xfff4f7ff,0xffe5ecff,0xfff0f4ff,0xfffbfcff,0xfef1f3f9,0xb77e8196,0x22292b3b, | 1888 | 0xeacbe3fd,0xfffbfeff,0xffebf5fe,0xffdbe6fd,0xffe4ecfe,0xfff4f8ff,0xfffcfcff,0xfff4f7ff,0xffe5ecff,0xfff0f4ff,0xfffbfcff,0xfef1f3f9,0xb77e8196,0x22292b3b, |
2390 | 0xeacae3fd,0xfff9feff,0xffe6f2ff,0xffd3e2fe,0xffd8e4ff,0xffe6eeff,0xfff4f7ff,0xffe4e7f7,0xffdbe1f2,0xfff3f6fd,0xfff1f4ff,0xffebf2ff,0xe9969ebb,0x51292c38, | 1889 | 0xeacae3fd,0xfff9feff,0xffe6f2ff,0xffd3e2fe,0xffd8e4ff,0xffe6eeff,0xfff4f7ff,0xffe4e7f7,0xffdbe1f2,0xfff3f6fd,0xfff1f4ff,0xffebf2ff,0xe9969ebb,0x51292c38, |
2391 | 0xeac7e2fd,0xfff6fdff,0xffe3f1ff,0xffcbddff,0xffcedeff,0xffdeeaff,0xffedf3ff,0xffa9b8d6,0xffa0aeca,0xffe0e6f8,0xffdde7ff,0xffd6e4ff,0xf99da8cd,0x73252833, | 1890 | 0xeac7e2fd,0xfff6fdff,0xffe3f1ff,0xffcbddff,0xffcedeff,0xffdeeaff,0xffedf3ff,0xffa9b8d6,0xffa0aeca,0xffe0e6f8,0xffdde7ff,0xffd6e4ff,0xf99da8cd,0x73252833, |
2392 | 0xecc6e3fe,0xfff3fdff,0xffe1f2ff,0xffdae8ff,0xffebf1ff,0xfff6f8ff,0xfff8fbff,0xffd3dbf2,0xffd4dbed,0xfff1f4fb,0xffecf1ff,0xffe5efff,0xf3959ebb,0x7120222b, | 1891 | 0xecc6e3fe,0xfff3fdff,0xffe1f2ff,0xffdae8ff,0xffebf1ff,0xfff6f8ff,0xfff8fbff,0xffd3dbf2,0xffd4dbed,0xfff1f4fb,0xffecf1ff,0xffe5efff,0xf3959ebb,0x7120222b, |
2393 | 0xcc9dbdd8,0xe4b3c3ce,0xe4a7bccf,0xf0c0cde3,0xfdf1f3fb,0xfff9fbff,0xffedf3ff,0xffe3ecff,0xfff3f7ff,0xfff8faff,0xfff7faff,0xffe9effb,0xda71758a,0x5514151c, | 1892 | 0xcc9dbdd8,0xe4b3c3ce,0xe4a7bccf,0xf0c0cde3,0xfdf1f3fb,0xfff9fbff,0xffedf3ff,0xffe3ecff,0xfff3f7ff,0xfff8faff,0xfff7faff,0xffe9effb,0xda71758a,0x5514151c, |
2394 | 0x4a334a63,0x6b2f3e4f,0x6a2d3d51,0x8f6e7a94,0xe3d6dbea,0xfff2f7ff,0xffd6e4ff,0xffdae6ff,0xfff0f5ff,0xfff6f9ff,0xfff9faff,0xf5b9bccf,0xa53c3f4d,0x2d050508, | 1893 | 0x4a334a63,0x6b2f3e4f,0x6a2d3d51,0x8f6e7a94,0xe3d6dbea,0xfff2f7ff,0xffd6e4ff,0xffdae6ff,0xfff0f5ff,0xfff6f9ff,0xfff9faff,0xf5b9bccf,0xa53c3f4d,0x2d050508, |
2395 | 0x3000000,0xb000000,0xb000000,0x1b343a51,0x7d9097ae,0xe5c0cbe5,0xfecadcfd,0xffdeecff,0xfff2f9ff,0xffeaf0fa,0xf3b7bbcd,0xbb56596a,0x56121319,0xe000000, | 1894 | 0x3000000,0xb000000,0xb000000,0x1b343a51,0x7d9097ae,0xe5c0cbe5,0xfecadcfd,0xffdeecff,0xfff2f9ff,0xffeaf0fa,0xf3b7bbcd,0xbb56596a,0x56121319,0xe000000, |
2396 | 0x0,0x0,0x0,0x0,0x133f4764,0x62606881,0xb6717b97,0xd5868ea0,0xd78a8f9d,0xcb6f7485,0x9e3e404f,0x53111319,0x16000000,0x2000000, | 1895 | 0x0,0x0,0x0,0x0,0x133f4764,0x62606881,0xb6717b97,0xd5868ea0,0xd78a8f9d,0xcb6f7485,0x9e3e404f,0x53111319,0x16000000,0x2000000, |
2397 | 0x0,0x0,0x0,0x0,0x0,0x7121421,0x1f2a2e3e,0x39292c35,0x3d272830,0x39181921,0x2506070b,0xc000000,0x2000000,0x0 | 1896 | 0x0,0x0,0x0,0x0,0x0,0x7121421,0x1f2a2e3e,0x39292c35,0x3d272830,0x39181921,0x2506070b,0xc000000,0x2000000,0x0 |
2398 | }; | 1897 | }; |
2399 | 1898 | ||
2400 | static const QRgb quit_icon_data[] = { | 1899 | static const QRgb quit_icon_data[] = { |
2401 | 0x0,0x0,0x0,0x2c90000,0x1fc80000,0x5bc60000,0x83c50000,0x83c20000,0x5bbb0000,0x1fb70000,0x2b50000,0x0,0x0,0x0, | 1900 | 0x0,0x0,0x0,0x2c90000,0x1fc80000,0x5bc60000,0x83c50000,0x83c20000,0x5bbb0000,0x1fb70000,0x2b50000,0x0,0x0,0x0, |
2402 | 0x0,0x0,0xdcb0000,0x87cb0000,0xecd51313,0xffe44a4a,0xffed6f6f,0xffec7070,0xffe05050,0xecc91a1a,0x87b30000,0xdad0000,0x0,0x0, | 1901 | 0x0,0x0,0xdcb0000,0x87cb0000,0xecd51313,0xffe44a4a,0xffed6f6f,0xffec7070,0xffe05050,0xecc91a1a,0x87b30000,0xdad0000,0x0,0x0, |
2403 | 0x0,0xdca0000,0xaacd0000,0xfee53b3b,0xfffbb1b1,0xffffd6d6,0xffffd9d9,0xffffd9d9,0xffffd7d7,0xfffbbcbc,0xfedb4c4c,0xaab00000,0xda70000,0x0, | 1902 | 0x0,0xdca0000,0xaacd0000,0xfee53b3b,0xfffbb1b1,0xffffd6d6,0xffffd9d9,0xffffd9d9,0xffffd7d7,0xfffbbcbc,0xfedb4c4c,0xaab00000,0xda70000,0x0, |
2404 | 0x2c90000,0x87ca0000,0xfee52f2f,0xfffeadad,0xffffd6d6,0xffffbdbd,0xffffb3b3,0xffffb3b3,0xffffbdbd,0xffffd6d6,0xfffeb1b1,0xfed84343,0x87a60000,0x2a00000, | 1903 | 0x2c90000,0x87ca0000,0xfee52f2f,0xfffeadad,0xffffd6d6,0xffffbdbd,0xffffb3b3,0xffffb3b3,0xffffbdbd,0xffffd6d6,0xfffeb1b1,0xfed84343,0x87a60000,0x2a00000, |
2405 | 0x1fc80000,0xecd50808,0xfffb7272,0xffffbcbc,0xffffffff,0xffffe7e7,0xffff9b9b,0xffff9b9b,0xffffe7e7,0xffffffff,0xffffbbbb,0xfffa7171,0xecb90c0c,0x1f9d0000, | 1904 | 0x1fc80000,0xecd50808,0xfffb7272,0xffffbcbc,0xffffffff,0xffffe7e7,0xffff9b9b,0xffff9b9b,0xffffe7e7,0xffffffff,0xffffbbbb,0xfffa7171,0xecb90c0c,0x1f9d0000, |
2406 | 0x5bc50000,0xffe41b1b,0xffff6464,0xffff7474,0xffffd9d9,0xffffffff,0xffffe0e0,0xffffe0e0,0xffffffff,0xfffcc6c6,0xfff63535,0xfff30e0e,0xffd00202,0x5b9a0000, | 1905 | 0x5bc50000,0xffe41b1b,0xffff6464,0xffff7474,0xffffd9d9,0xffffffff,0xffffe0e0,0xffffe0e0,0xffffffff,0xfffcc6c6,0xfff63535,0xfff30e0e,0xffd00202,0x5b9a0000, |
2407 | 0x83c50000,0xffec1c1c,0xffff3f3f,0xffff3f3f,0xffff5252,0xffffd2d2,0xffffffff,0xffffffff,0xfffcc6c6,0xfff31c1c,0xfff20000,0xfff20000,0xffdc0000,0x839b0000, | 1906 | 0x83c50000,0xffec1c1c,0xffff3f3f,0xffff3f3f,0xffff5252,0xffffd2d2,0xffffffff,0xffffffff,0xfffcc6c6,0xfff31c1c,0xfff20000,0xfff20000,0xffdc0000,0x839b0000, |
2408 | 0x83c10000,0xffec0a0a,0xffff1616,0xffff1616,0xffff3131,0xffffcece,0xffffffff,0xffffffff,0xfffcc6c6,0xfff41c1c,0xfff40000,0xfff40000,0xffdc0000,0x83970000, | 1907 | 0x83c10000,0xffec0a0a,0xffff1616,0xffff1616,0xffff3131,0xffffcece,0xffffffff,0xffffffff,0xfffcc6c6,0xfff41c1c,0xfff40000,0xfff40000,0xffdc0000,0x83970000, |
2409 | 0x5bbb0000,0xffe10000,0xfffe0101,0xfffe1b1b,0xffffc5c5,0xffffffff,0xffffc6c6,0xffffc6c6,0xffffffff,0xfffdc4c4,0xfffa1a1a,0xfffa0000,0xffcf0000,0x5b900000, | 1908 | 0x5bbb0000,0xffe10000,0xfffe0101,0xfffe1b1b,0xffffc5c5,0xffffffff,0xffffc6c6,0xffffc6c6,0xffffffff,0xfffdc4c4,0xfffa1a1a,0xfffa0000,0xffcf0000,0x5b900000, |
2410 | 0x1fb70000,0xeccb0202,0xfffc0909,0xffff6d6d,0xffffffff,0xffffc8c8,0xffff2525,0xffff2525,0xffffc8c8,0xffffffff,0xffff6d6d,0xfffb0909,0xecae0202,0x1f8c0000, | 1909 | 0x1fb70000,0xeccb0202,0xfffc0909,0xffff6d6d,0xffffffff,0xffffc8c8,0xffff2525,0xffff2525,0xffffc8c8,0xffffffff,0xffff6d6d,0xfffb0909,0xecae0202,0x1f8c0000, |
2411 | 0x2b40000,0x87b30101,0xfede1313,0xffff2828,0xffff7e7e,0xffff3a3a,0xffff2323,0xffff2323,0xffff3a3a,0xffff7e7e,0xfffe2828,0xfed01313,0x878e0101,0x28b0000, | 1910 | 0x2b40000,0x87b30101,0xfede1313,0xffff2828,0xffff7e7e,0xffff3a3a,0xffff2323,0xffff2323,0xffff3a3a,0xffff7e7e,0xfffe2828,0xfed01313,0x878e0101,0x28b0000, |
2412 | 0x0,0xdac0000,0xaab00404,0xfedb2121,0xfffc3b3b,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xfffb3b3b,0xfed02121,0xaa930404,0xd890000,0x0, | 1911 | 0x0,0xdac0000,0xaab00404,0xfedb2121,0xfffc3b3b,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xffff3d3d,0xfffb3b3b,0xfed02121,0xaa930404,0xd890000,0x0, |
2413 | 0x0,0x0,0xda60000,0x87a50202,0xecbb1616,0xffd73131,0xffe63f3f,0xffe53f3f,0xffd33131,0xecaf1616,0x878e0202,0xd890000,0x0,0x0, | 1912 | 0x0,0x0,0xda60000,0x87a50202,0xecbb1616,0xffd73131,0xffe63f3f,0xffe53f3f,0xffd33131,0xecaf1616,0x878e0202,0xd890000,0x0,0x0, |
2414 | 0x0,0x0,0x0,0x29f0000,0x1d9c0000,0x59990101,0x839b0505,0x83970505,0x5b8f0101,0x1f8c0000,0x28a0000,0x0,0x0,0x0 | 1913 | 0x0,0x0,0x0,0x29f0000,0x1d9c0000,0x59990101,0x839b0505,0x83970505,0x5b8f0101,0x1f8c0000,0x28a0000,0x0,0x0,0x0 |
2415 | }; | 1914 | }; |
2416 | 1915 | ||
2417 | static const QRgb redo_data[] = { | 1916 | static const QRgb redo_data[] = { |
2418 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1917 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2419 | 0x0,0x0,0x0,0x1000000,0x4000000,0x5000000,0x5000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0, | 1918 | 0x0,0x0,0x0,0x1000000,0x4000000,0x5000000,0x5000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2420 | 0x0,0x1000000,0xc000000,0x26000c00,0x5f003900,0x7b004500,0x7c004600,0x69004700,0x26003100,0x3000000,0x0,0x0,0x0,0x0, | 1919 | 0x0,0x1000000,0xc000000,0x26000c00,0x5f003900,0x7b004500,0x7c004600,0x69004700,0x26003100,0x3000000,0x0,0x0,0x0,0x0, |
2421 | 0x3000000,0x1e000800,0x71003c00,0xdb006b00,0xfb009200,0xff00a600,0xff00a800,0xfd009d00,0xec007b00,0x74005500,0x6003300,0x0,0x0,0x0, | 1920 | 0x3000000,0x1e000800,0x71003c00,0xdb006b00,0xfb009200,0xff00a600,0xff00a800,0xfd009d00,0xec007b00,0x74005500,0x6003300,0x0,0x0,0x0, |
2422 | 0x23000e00,0xa0004f00,0xfa008100,0xf9009a00,0xef009200,0xfa009d00,0xff00b700,0xff00c700,0xff00c600,0xfd009a00,0x6d005d00,0x0,0x0,0x0, | 1921 | 0x23000e00,0xa0004f00,0xfa008100,0xf9009a00,0xef009200,0xfa009d00,0xff00b700,0xff00c700,0xff00c600,0xfd009a00,0x6d005d00,0x0,0x0,0x0, |
2423 | 0x86004e00,0xe1006900,0x83006b00,0x3a005f00,0x2a005c00,0x43005a00,0xa1006d00,0xfd00a800,0xff00d700,0xff00d600,0xe7008a00,0x13005600,0x2000000,0x1000000, | 1922 | 0x86004e00,0xe1006900,0x83006b00,0x3a005f00,0x2a005c00,0x43005a00,0xa1006d00,0xfd00a800,0xff00d700,0xff00d600,0xe7008a00,0x13005600,0x2000000,0x1000000, |
2424 | 0xb6006f00,0x27006c00,0x1006600,0x0,0x3000000,0x24001d00,0x44003500,0xb1006600,0xff00c200,0xff00e800,0xfc00c000,0x75005c00,0x3d003600,0x2a004700, | 1923 | 0xb6006f00,0x27006c00,0x1006600,0x0,0x3000000,0x24001d00,0x44003500,0xb1006600,0xff00c200,0xff00e800,0xfc00c000,0x75005c00,0x3d003600,0x2a004700, |
2425 | 0x0,0x0,0x0,0x0,0x2000000,0x53006700,0xf3008c00,0xff02c102,0xff03d803,0xff03f903,0xff03f003,0xff03c403,0xff01b001,0xca007f00, | 1924 | 0x0,0x0,0x0,0x0,0x2000000,0x53006700,0xf3008c00,0xff02c102,0xff03d803,0xff03f903,0xff03f003,0xff03c403,0xff01b001,0xca007f00, |
2426 | 0x0,0x0,0x0,0x0,0x0,0x2000000,0x63007600,0xf611c111,0xff36fc36,0xff39ff39,0xff39ff39,0xff2aec2a,0xc406a306,0x1d008300, | 1925 | 0x0,0x0,0x0,0x0,0x0,0x2000000,0x63007600,0xf611c111,0xff36fc36,0xff39ff39,0xff39ff39,0xff2aec2a,0xc406a306,0x1d008300, |
2427 | 0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x67038503,0xf63ac63a,0xff89fc89,0xff75f075,0xc616ab16,0x1f008f00,0x0, | 1926 | 0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x67038503,0xf63ac63a,0xff89fc89,0xff75f075,0xc616ab16,0x1f008f00,0x0, |
2428 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4003500,0x65058f04,0xf356c852,0xc927b325,0x19009a00,0x0,0x0, | 1927 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4003500,0x65058f04,0xf356c852,0xc927b325,0x19009a00,0x0,0x0, |
2429 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x4018ab00,0x1616ad00,0x0,0x0,0x0, | 1928 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x4018ab00,0x1616ad00,0x0,0x0,0x0, |
2430 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1929 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2431 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1930 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2432 | }; | 1931 | }; |
2433 | 1932 | ||
2434 | static const QRgb repeat_data[] = { | 1933 | static const QRgb repeat_data[] = { |
2435 | 0x0,0x0,0x313131,0x8313131,0x1b343434,0x46363636,0x70373737,0x71373737,0x47333333,0x1c2e2e2e,0x92a2a2a,0x11c1c1c,0x0,0x0, | 1934 | 0x0,0x0,0x313131,0x8313131,0x1b343434,0x46363636,0x70373737,0x71373737,0x47333333,0x1c2e2e2e,0x92a2a2a,0x11c1c1c,0x0,0x0, |
2436 | 0x0,0x1313131,0x1a323232,0x6d3b3b3b,0xd24e4e4e,0xfb656565,0xff797979,0xff7a7a7a,0xfc666666,0xd44e4e4e,0x72383838,0x1d282828,0x21f1f1f,0x0, | 1935 | 0x0,0x1313131,0x1a323232,0x6d3b3b3b,0xd24e4e4e,0xfb656565,0xff797979,0xff7a7a7a,0xfc666666,0xd44e4e4e,0x72383838,0x1d282828,0x21f1f1f,0x0, |
2437 | 0x2f2f2f,0x1a313131,0x91404040,0xf2696969,0xffa9a9a9,0xffd7d7d7,0xffe4e4e4,0xffe9e9e9,0xffdedede,0xffafafaf,0xf36d6d6d,0x973e3e3e,0x20252525,0x1111111, | 1936 | 0x2f2f2f,0x1a313131,0x91404040,0xf2696969,0xffa9a9a9,0xffd7d7d7,0xffe4e4e4,0xffe9e9e9,0xffdedede,0xffafafaf,0xf36d6d6d,0x973e3e3e,0x20252525,0x1111111, |
2438 | 0x82e2e2e,0x6d3a3a3a,0xf2656565,0xffb2b2b2,0xffd1d1d1,0xffdcdcdc,0xffe5e5e5,0xffe2e2e2,0xffdcdcdc,0xffd6d6d6,0xffbbbbbb,0xf36a6a6a,0x7a353535,0xd1e1e1e, | 1937 | 0x82e2e2e,0x6d3a3a3a,0xf2656565,0xffb2b2b2,0xffd1d1d1,0xffdcdcdc,0xffe5e5e5,0xffe2e2e2,0xffdcdcdc,0xffd6d6d6,0xffbbbbbb,0xf36a6a6a,0x7a353535,0xd1e1e1e, |
2439 | 0x1b313131,0xd2474747,0xff939393,0xffc0c0c0,0xffdcdcdc,0xfff2f2f2,0xfffefefe,0xfff5f5f5,0xffd7d7d7,0xffc0c0c0,0xffc0c0c0,0xff949494,0xd9454545,0x291f1f1f, | 1938 | 0x1b313131,0xd2474747,0xff939393,0xffc0c0c0,0xffdcdcdc,0xfff2f2f2,0xfffefefe,0xfff5f5f5,0xffd7d7d7,0xffc0c0c0,0xffc0c0c0,0xff949494,0xd9454545,0x291f1f1f, |
2440 | 0x46343434,0xfb565656,0xffa1a1a1,0xffcdcdcd,0xfff9f9f9,0xffdbdbdb,0xffbdbdbd,0xffbfbfbf,0xffafafaf,0xff979797,0xff808080,0xff707070,0xfc494949,0x5e262626, | 1939 | 0x46343434,0xfb565656,0xffa1a1a1,0xffcdcdcd,0xfff9f9f9,0xffdbdbdb,0xffbdbdbd,0xffbfbfbf,0xffafafaf,0xff979797,0xff808080,0xff707070,0xfc494949,0x5e262626, |
2441 | 0x70363636,0xff5e5e5e,0xff9d9d9d,0xffdadada,0xffe6e6e6,0xffa4a4a4,0xff8f8f8f,0xffa5a5a5,0xffc2c2c2,0xffdddddd,0xffc1c1c1,0xff727272,0xff4e4e4e,0x8a2a2a2a, | 1940 | 0x70363636,0xff5e5e5e,0xff9d9d9d,0xffdadada,0xffe6e6e6,0xffa4a4a4,0xff8f8f8f,0xffa5a5a5,0xffc2c2c2,0xffdddddd,0xffc1c1c1,0xff727272,0xff4e4e4e,0x8a2a2a2a, |
2442 | 0x71353535,0xff565656,0xff898989,0xffd6d6d6,0xffdfdfdf,0xff8d8d8d,0xff939393,0xfffdfdfd,0xffffffff,0xffffffff,0xffd4d4d4,0xff7b7b7b,0xff4e4e4e,0x8c292929, | 1941 | 0x71353535,0xff565656,0xff898989,0xffd6d6d6,0xffdfdfdf,0xff8d8d8d,0xff939393,0xfffdfdfd,0xffffffff,0xffffffff,0xffd4d4d4,0xff7b7b7b,0xff4e4e4e,0x8c292929, |
2443 | 0x47343434,0xfc484848,0xff6e6e6e,0xffb8b8b8,0xfff6f6f6,0xffb9b9b9,0xff959595,0xfff4f4f4,0xffffffff,0xffffffff,0xffcbcbcb,0xff767676,0xfc474747,0x69232323, | 1942 | 0x47343434,0xfc484848,0xff6e6e6e,0xffb8b8b8,0xfff6f6f6,0xffb9b9b9,0xff959595,0xfff4f4f4,0xffffffff,0xffffffff,0xffcbcbcb,0xff767676,0xfc474747,0x69232323, |
2444 | 0x1c2e2e2e,0xd43e3e3e,0xff646464,0xff8b8b8b,0xffd0d0d0,0xfff7f7f7,0xfff2f2f2,0xfffbfbfb,0xffefefef,0xfff9f9f9,0xffc2c2c2,0xff6e6e6e,0xde3c3c3c,0x3c161616, | 1943 | 0x1c2e2e2e,0xd43e3e3e,0xff646464,0xff8b8b8b,0xffd0d0d0,0xfff7f7f7,0xfff2f2f2,0xfffbfbfb,0xffefefef,0xfff9f9f9,0xffc2c2c2,0xff6e6e6e,0xde3c3c3c,0x3c161616, |
2445 | 0x92a2a2a,0x72363636,0xf3545454,0xff767676,0xff939393,0xffb6b6b6,0xffc7c7c7,0xffbcbcbc,0xffababab,0xffbcbcbc,0xff9c9c9c,0xf5555555,0x8c2c2c2c,0x1a0f0f0f, | 1944 | 0x92a2a2a,0x72363636,0xf3545454,0xff767676,0xff939393,0xffb6b6b6,0xffc7c7c7,0xffbcbcbc,0xffababab,0xffbcbcbc,0xff9c9c9c,0xf5555555,0x8c2c2c2c,0x1a0f0f0f, |
2446 | 0x11c1c1c,0x1d292929,0x973c3c3c,0xf35b5b5b,0xff7e7e7e,0xff8a8a8a,0xff909090,0xff8b8b8b,0xff8a8a8a,0xff808080,0xf55c5c5c,0xaa343434,0x36161616,0x5030303, | 1945 | 0x11c1c1c,0x1d292929,0x973c3c3c,0xf35b5b5b,0xff7e7e7e,0xff8a8a8a,0xff909090,0xff8b8b8b,0xff8a8a8a,0xff808080,0xf55c5c5c,0xaa343434,0x36161616,0x5030303, |
2447 | 0x0,0x21f1f1f,0x20262626,0x7a363636,0xd9484848,0xfc616161,0xff727272,0xff727272,0xfc616161,0xde474747,0x8c2f2f2f,0x36161616,0xa070707,0x0, | 1946 | 0x0,0x21f1f1f,0x20262626,0x7a363636,0xd9484848,0xfc616161,0xff727272,0xff727272,0xfc616161,0xde474747,0x8c2f2f2f,0x36161616,0xa070707,0x0, |
2448 | 0x0,0x0,0x1111111,0xd1e1e1e,0x29222222,0x5e2d2d2d,0x8a323232,0x8c313131,0x69282828,0x3c181818,0x1a0f0f0f,0x5030303,0x0,0x0 | 1947 | 0x0,0x0,0x1111111,0xd1e1e1e,0x29222222,0x5e2d2d2d,0x8a323232,0x8c313131,0x69282828,0x3c181818,0x1a0f0f0f,0x5030303,0x0,0x0 |
2449 | }; | 1948 | }; |
2450 | 1949 | ||
2451 | static const unsigned char reset_data[] = { | 1950 | static const unsigned char reset_data[] = { |
2452 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 1951 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2453 | 0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, | 1952 | 0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, |
2454 | 0x01,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x01, | 1953 | 0x01,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x01, |
2455 | 0x01,0x02,0x02,0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,0x01, | 1954 | 0x01,0x02,0x02,0x01,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,0x01, |
2456 | 0x01,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02, | 1955 | 0x01,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x01,0x02,0x02,0x02, |
2457 | 0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01, | 1956 | 0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01, |
2458 | 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, | 1957 | 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, |
2459 | 0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00, | 1958 | 0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00, |
2460 | 0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, | 1959 | 0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00, |
2461 | 0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00, | 1960 | 0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x00, |
2462 | 0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, | 1961 | 0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, |
2463 | 0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x01,0x01, | 1962 | 0x02,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x01,0x01, |
2464 | 0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00, | 1963 | 0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00, |
2465 | 0x00,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x02, | 1964 | 0x00,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x02, |
2466 | 0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01, | 1965 | 0x01,0x00,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x01, |
2467 | 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00 | 1966 | 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00 |
2468 | }; | 1967 | }; |
2469 | 1968 | ||
2470 | static const QRgb reset_ctable[] = { | 1969 | static const QRgb reset_ctable[] = { |
2471 | 0xc6c6c6,0xff000000,0xffff0000 | 1970 | 0xc6c6c6,0xff000000,0xffff0000 |
2472 | }; | 1971 | }; |
2473 | 1972 | ||
2474 | static const QRgb right_data[] = { | 1973 | static const QRgb right_data[] = { |
2475 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1974 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2476 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 1975 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2477 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | 1976 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, |
2478 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | 1977 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, |
2479 | 0x0,0x0,0x0,0x0,0x64000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x14000000, | 1978 | 0x0,0x0,0x0,0x0,0x64000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x14000000, |
2480 | 0x0,0x0,0x0,0x0,0x28000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x8000000, | 1979 | 0x0,0x0,0x0,0x0,0x28000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x8000000, |
2481 | 0x1c000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0x1c000000, | 1980 | 0x1c000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0xdf000000,0x1c000000, |
2482 | 0x0,0x0,0x0,0x0,0x14000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x4000000, | 1981 | 0x0,0x0,0x0,0x0,0x14000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x4000000, |
2483 | 0x0,0x0,0x0,0x0,0x78000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x18000000, | 1982 | 0x0,0x0,0x0,0x0,0x78000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x18000000, |
2484 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, | 1983 | 0xc000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0x60000000,0xc000000, |
2485 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, | 1984 | 0x10000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x80000000,0x10000000, |
2486 | 0x0,0x0,0x0,0x0,0x64000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x14000000, | 1985 | 0x0,0x0,0x0,0x0,0x64000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x9f000000,0x14000000, |
2487 | 0x0,0x0,0x0,0x0,0x28000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x8000000, | 1986 | 0x0,0x0,0x0,0x0,0x28000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x8000000, |
2488 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 1987 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2489 | }; | 1988 | }; |
2490 | 1989 | ||
2491 | static const QRgb rotate_data[] = { | 1990 | static const QRgb rotate_data[] = { |
2492 | 0x0,0x0,0xffffff,0x2ffffff,0x10f5faff,0x2fd4e9ff,0x3dc1e0ff,0x38b6daff,0x21b4d9ff,0x5d7ebff,0xffffff,0x0,0x0,0x0, | 1991 | 0x0,0x0,0xffffff,0x2ffffff,0x10f5faff,0x2fd4e9ff,0x3dc1e0ff,0x38b6daff,0x21b4d9ff,0x5d7ebff,0xffffff,0x0,0x0,0x0, |
2493 | 0x0,0x0,0x9ffffff,0x4fd6eaff,0xbbacd5ff,0xe9aad4ff,0xfab2d8ff,0xf9afd7ff,0xe49ecfff,0xa382c0ff,0x287dbcfc,0x0,0x0,0x0, | 1992 | 0x0,0x0,0x9ffffff,0x4fd6eaff,0xbbacd5ff,0xe9aad4ff,0xfab2d8ff,0xf9afd7ff,0xe49ecfff,0xa382c0ff,0x287dbcfc,0x0,0x0,0x0, |
2494 | 0xffffff,0x9ffffff,0x6ecee6ff,0xeeaad4ff,0xffdeeefe,0xfffafcfe,0xfffdfdfe,0xfffdfdfe,0xfffafcfe,0xffdbedfe,0xe590c7fe,0x3e72b3f4,0x0,0x0, | 1993 | 0xffffff,0x9ffffff,0x6ecee6ff,0xeeaad4ff,0xffdeeefe,0xfffafcfe,0xfffdfdfe,0xfffdfdfe,0xfffafcfe,0xffdbedfe,0xe590c7fe,0x3e72b3f4,0x0,0x0, |
2495 | 0x2ffffff,0x51d5eaff,0xefa6d2fe,0xffe8f2fc,0xfff9fbfc,0xffe6eef4,0xffc0e1f7,0xffcae9fd,0xfff4f9fd,0xfffafcfd,0xffe8f2fd,0xe689c3fd,0x2a68abed,0x0, | 1994 | 0x2ffffff,0x51d5eaff,0xefa6d2fe,0xffe8f2fc,0xfff9fbfc,0xffe6eef4,0xffc0e1f7,0xffcae9fd,0xfff4f9fd,0xfffafcfd,0xffe8f2fd,0xe689c3fd,0x2a68abed,0x0, |
2496 | 0x12f5faff,0xbea6d2ff,0xffd4e8fb,0xfff4f6f7,0xffaed1e9,0xff29a5f8,0xff12a0fe,0xff13a1ff,0xff3fb2fe,0xffb9e1fc,0xffd1ebfd,0xffd2e7fb,0xa568b0f8,0x33c6a98, | 1995 | 0x12f5faff,0xbea6d2ff,0xffd4e8fb,0xfff4f6f7,0xffaed1e9,0xff29a5f8,0xff12a0fe,0xff13a1ff,0xff3fb2fe,0xffb9e1fc,0xffd1ebfd,0xffd2e7fb,0xa568b0f8,0x33c6a98, |
2497 | 0x34d4e9ff,0xec9accfd,0xffecf2f6,0xffc9ddea,0xff19a0fa,0xff76c8ff,0xffe1f2fd,0xffd7edfc,0xff51b8fd,0xff049bff,0xff8ed1fe,0xffeff4f8,0xe57bbaf9,0x1c4c8aca, | 1996 | 0x34d4e9ff,0xec9accfd,0xffecf2f6,0xffc9ddea,0xff19a0fa,0xff76c8ff,0xffe1f2fd,0xffd7edfc,0xff51b8fd,0xff049bff,0xff8ed1fe,0xffeff4f8,0xe57bbaf9,0x1c4c8aca, |
2498 | 0x45c1e0ff,0xfb99cafb,0xffeaf0f4,0xff8ac6ed,0xff28a9ff,0xfff4f9fc,0xffecf1f4,0xffecf3f7,0xff7ecafc,0xff33adff,0xff7fcbff,0xffeff4f6,0xfa85c0f9,0x31478cd0, | 1997 | 0x45c1e0ff,0xfb99cafb,0xffeaf0f4,0xff8ac6ed,0xff28a9ff,0xfff4f9fc,0xffecf1f4,0xffecf3f7,0xff7ecafc,0xff33adff,0xff7fcbff,0xffeff4f6,0xfa85c0f9,0x31478cd0, |
2499 | 0x41b4daff,0xfa8ec5fa,0xffe6edf1,0xff82c6f2,0xff37afff,0xfff4f7f9,0xffe4ecef,0xffe7eef1,0xffeef3f5,0xfff2f6f7,0xfff0f5f6,0xffe5ecf0,0xfa7cbbf8,0x333c82c7, | 1998 | 0x41b4daff,0xfa8ec5fa,0xffe6edf1,0xff82c6f2,0xff37afff,0xfff4f7f9,0xffe4ecef,0xffe7eef1,0xffeef3f5,0xfff2f6f7,0xfff0f5f6,0xffe5ecf0,0xfa7cbbf8,0x333c82c7, |
2500 | 0x2bb6dbff,0xe778bbfb,0xffdce7ee,0xffb6dcf3,0xff12a0fe,0xffafdcfa,0xffe7eef1,0xffdde6eb,0xffd4e7f2,0xffe7eef1,0xffdee8ec,0xffd9e5ec,0xe860aaf4,0x232c69a5, | 1999 | 0x2bb6dbff,0xe778bbfb,0xffdce7ee,0xffb6dcf3,0xff12a0fe,0xffafdcfa,0xffe7eef1,0xffdde6eb,0xffd4e7f2,0xffe7eef1,0xffdee8ec,0xffd9e5ec,0xe860aaf4,0x232c69a5, |
2501 | 0xbe5f2ff,0xac5daeff,0xffb1d2ef,0xffe3ebf0,0xff7cc8f9,0xff14a0fe,0xff44b1f9,0xff38aaf5,0xff24a7fe,0xffdcecf7,0xffd9e4e9,0xffafd1ee,0xb03890e9,0x90d2134, | 2000 | 0xbe5f2ff,0xac5daeff,0xffb1d2ef,0xffe3ebf0,0xff7cc8f9,0xff14a0fe,0xff44b1f9,0xff38aaf5,0xff24a7fe,0xffdcecf7,0xffd9e4e9,0xffafd1ee,0xb03890e9,0x90d2134, |
2502 | 0x1ffffff,0x3371b6fd,0xe653a7fa,0xffbfd8eb,0xffe3ecf0,0xffb9e0f9,0xff79c8fd,0xff80cbfe,0xffc9e8fb,0xffe1eaee,0xffbdd6ea,0xeb4da1f4,0x3d2264a5,0x1000000, | 2001 | 0x1ffffff,0x3371b6fd,0xe653a7fa,0xffbfd8eb,0xffe3ecf0,0xffb9e0f9,0xff79c8fd,0xff80cbfe,0xffc9e8fb,0xffe1eaee,0xffbdd6ea,0xeb4da1f4,0x3d2264a5,0x1000000, |
2503 | 0xffffff,0x3ffffff,0x403394f5,0xe649a2f9,0xffa5cbeb,0xffd0dfe8,0xffdbe5eb,0xffdae5eb,0xffcfdee7,0xffa5caeb,0xeb469ef3,0x591f66ad,0x5000000,0x0, | 2002 | 0xffffff,0x3ffffff,0x403394f5,0xe649a2f9,0xffa5cbeb,0xffd0dfe8,0xffdbe5eb,0xffdae5eb,0xffcfdee7,0xffa5caeb,0xeb469ef3,0x591f66ad,0x5000000,0x0, |
2504 | 0x0,0x0,0xa2a2a2,0x2a268aed,0xa52890f8,0xe5469ff5,0xfa5ba9f4,0xfa5ba8f4,0xe8459df2,0xb02588e9,0x3d1a60a5,0x5000000,0x0,0x0, | 2003 | 0x0,0x0,0xa2a2a2,0x2a268aed,0xa52890f8,0xe5469ff5,0xfa5ba9f4,0xfa5ba8f4,0xe8459df2,0xb02588e9,0x3d1a60a5,0x5000000,0x0,0x0, |
2505 | 0x0,0x0,0x0,0x0,0x3165798,0x1c1d74ca,0x311e77d0,0x331c72c7,0x23185ea5,0x9081e34,0x1000000,0x0,0x0,0x0 | 2004 | 0x0,0x0,0x0,0x0,0x3165798,0x1c1d74ca,0x311e77d0,0x331c72c7,0x23185ea5,0x9081e34,0x1000000,0x0,0x0,0x0 |
2506 | }; | 2005 | }; |
2507 | 2006 | ||
2007 | static const QRgb Rotation_data[] = { | ||
2008 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x3000000,0x6000000,0xb000000,0x12000000,0x19000000,0x21000000,0x29000000,0x2f000000, | ||
2009 | 0x35000000,0x38000000,0x3b040404,0x4d535353,0x5a828282,0x3d3f3f3f,0x2d060606,0x24070707,0x1b090909,0x140d0d0d,0xc151515,0x7242424,0x3000000,0x1000000, | ||
2010 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000, | ||
2011 | 0x6e647e80,0xab7da6a7,0xd387b7b9,0xeb8bc0c2,0xf98dc6c8,0xfe8ac8ca,0xf97ec0c2,0xed6fb6b7,0xd8629ea2,0xcc90aeb0,0xa1849698,0x460b0b0b,0x390d0d0d,0x2b0c0c0c, | ||
2012 | 0x1f101010,0x130d0d0d,0xb171717,0x5000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | ||
2013 | 0x16000000,0x23000000,0x84759496,0xd091b9bb,0xfaabcecf,0xffa9d0d2,0xffa1ccce,0xff9acacc,0xff90c6c8,0xff89c4c6,0xff7fc1c3,0xff74bfc1,0xff69bcbe,0xff60b9bc, | ||
2014 | 0xfd88c1c4,0xe78bb4b7,0xa0395f62,0x4f101010,0x3a121212,0x28131313,0x19141414,0xe121212,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000, | ||
2015 | 0x2000000,0x7000000,0xe000000,0x1a000000,0x545f7474,0xc08eb5b6,0xfaafcfd1,0xffafcfd0,0xffadcccd,0xffa3c8ca,0xff9ac4c6,0xff93c0c2,0xff8abfbf,0xff80bbbd, | ||
2016 | 0xff79babc,0xff6fb8bb,0xff65b8ba,0xff5cb6b9,0xff50b2b5,0xff69a2a7,0xfe76b0b5,0xd2377579,0x7f293d3d,0x47121212,0x2f101010,0x1d121212,0xf111111,0x7000000, | ||
2017 | 0x2000000,0x1000000,0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x73728f8f,0xda9fc1c3,0xffb6d1d3,0xffb0cdce,0xffaac6c8,0xffa2bfc1,0xff96b8b9, | ||
2018 | 0xff8db3b5,0xff84adaf,0xff7cabac,0xff76aaac,0xff6fadae,0xff6ab1b3,0xff63b4b5,0xff58b4b6,0xff4eadb3,0xff61a1a6,0xff4f8a8f,0xff5f9ea3,0xe82d777c,0x9d2a4a4c, | ||
2019 | 0x50131313,0x33141414,0x1e111111,0xf111111,0x7242424,0x2000000,0x1000000,0x5000000,0xd000000,0x1a000000,0x736f8f8f,0xe2a1c3c5,0xffb5cfd1,0xffaec9cb, | ||
2020 | 0xffa2bec0,0xff98b4b5,0xff8ba6a8,0xff7e9a9d,0xff739395,0xff6b8c8e,0xff658c8d,0xff639092,0xff70a1a4,0xff88b3b6,0xff5aadaf,0xff53adb3,0xff4ba9b2,0xff40a0a8, | ||
2021 | 0xff5c9398,0xff4a8488,0xff418d95,0xef2b7378,0xa2294449,0x53161616,0x33141414,0x1e1a1a1a,0xe121212,0x62b2b2b,0x3000000,0xa000000,0x16000000,0x545c7174, | ||
2022 | 0xda9abec2,0xffb2cfd2,0xffacc8cb,0xffa2bdc0,0xff91abae,0xff80989b,0xff788e90,0xff9dadae,0xffa9babb,0xffb6c9ca,0xffc0d5d7,0xffb9d2d4,0xffb3cdce,0xff8fb4b7, | ||
2023 | 0xff52a4a7,0xff4da8b1,0xff45a6ad,0xff3b9da6,0xff6fa2a7,0xff5b9095,0xff498086,0xff297e86,0xec2a676e,0x91243537,0x4e141414,0x2f161616,0x18151515,0xb171717, | ||
2024 | 0x6000000,0x11000000,0x23000000,0xbf88b0b4,0xffafced2,0xffaac9cd,0xffa2bfc3,0xff92adb0,0xffb0c7c9,0xffc0d5d6,0xffcadcde,0xffd1e1e1,0xffd4e3e4,0xffd2e3e4, | ||
2025 | 0xffcedfe1,0xffc7dcdd,0xffbfd6d7,0xff4c8b8f,0xff4c9ca2,0xff47a2ab,0xff40a0ab,0xff399aa4,0xff6aa2a9,0xff6b9da1,0xff598c91,0xff427d83,0xff28767e,0xdd2a585d, | ||
2026 | 0x6c151515,0x45161616,0x27141414,0x120e0e0e,0xb000000,0x1b000000,0x846f8e93,0xfaa3c7cd,0xffa5c9cd,0xff9fc2c6,0xff92b2b6,0xff7f9a9e,0xff667e80,0xffd0dfe0, | ||
2027 | 0xffd9e6e6,0xffe0eaea,0xffe2eced,0xffe0eced,0xffdbe8e9,0xffd3e3e3,0xffa4bcbe,0xff43868c,0xff44969f,0xff429da8,0xff3a9ea8,0xff3796a1,0xff45949c,0xff77a6a9, | ||
2028 | 0xff65979b,0xff5c888b,0xff296c73,0xfc276b74,0xbb284146,0x5f151515,0x39161616,0x1d121212,0x12000000,0x26000000,0xd085afb6,0xff9dc7cd,0xff9dc3c9,0xff94b8be, | ||
2029 | 0xff84a4aa,0xff6d898d,0xff687b7e,0xffd9e6e8,0xffe4eded,0xffecf2f3,0xffeef3f4,0xffebf3f3,0xffe4eef0,0xffdbe8ea,0xff628a8e,0xff3f848c,0xff3c919d,0xff3796a2, | ||
2030 | 0xff3396a2,0xff36929d,0xff45919a,0xff7eabaf,0xff6e9ea2,0xff5c8e92,0xff2b646c,0xff28676e,0xe9285659,0x79171717,0x4b141414,0x2a121212,0x19000000,0x6e59747b, | ||
2031 | 0xfa93c0c7,0xff98c2ca,0xff92bbc3,0xff87acb3,0xff73959b,0xff5c767b,0xffd2e2e2,0xffdfeaeb,0xffebf2f3,0xfff4f7f8,0xfff8fafb,0xfff4f8f8,0xffebf2f3,0xffe1ebec, | ||
2032 | 0xff356f76,0xff37848e,0xff348e99,0xff2c909d,0xff308f9c,0xff328c98,0xff72a3a9,0xff83aeb2,0xff75a4a8,0xff639598,0xff2e5e65,0xff295f66,0xfc266069,0xb0233437, | ||
2033 | 0x5e161616,0x37131313,0x21000000,0xab6b969e,0xff8ebec7,0xff8bbbc3,0xff84b1ba,0xff779fa7,0xff62858c,0xffaabcbe,0xffd5e4e5,0xffe3eded,0xffedf4f4,0xfff7fafa, | ||
2034 | 0xffffffff,0xfff8fafa,0xffedf4f4,0xff8fa8ab,0xff30727c,0xff2e808e,0xff288795,0xff278795,0xff2b8795,0xff2f8491,0xff88aeb2,0xff85b0b3,0xff7aa7ab,0xff69999e, | ||
2035 | 0xff305960,0xff2b5a61,0xff265e66,0xd6264448,0x71171717,0x45121212,0x29000000,0xd370a1ac,0xff83b9c4,0xff80b4be,0xff78a8b2,0xff68939c,0xff54767d,0xffc4d8da, | ||
2036 | 0xffd3e2e3,0xffe0ecec,0xffebf2f2,0xfff3f8f8,0xfff7fafb,0xfff4f8f8,0xffebf2f3,0xff2b656f,0xff2a7481,0xff257d8e,0xff1f808e,0xff23818e,0xff277e8d,0xff2c7c87, | ||
2037 | 0xff8fb6ba,0xff86b1b4,0xff7aa8ab,0xff6c9b9f,0xff32545a,0xff2e545b,0xff285961,0xed264d51,0x80181818,0x4f131313,0x2f000000,0xeb70a7b3,0xff79b3bf,0xff75aeb9, | ||
2038 | 0xff6c9fa9,0xff5b858f,0xff81989c,0xffc1d7d8,0xffd0e1e1,0xffdbe8e9,0xffe5eeef,0xffebf2f3,0xff98a8ab,0xffd7e1e3,0xffe4edee,0xff276c7a,0xff237585,0xff1b7787, | ||
2039 | 0xff1e7888,0xff1e7585,0xff227382,0xff5c8f98,0xff8db6b8,0xff84b0b3,0xff7aa8ac,0xff6d9da2,0xff345056,0xff2f5056,0xff2a555c,0xf7264f57,0x8d191919,0x5a141414, | ||
2040 | 0x34000000,0xf96da9b8,0xff6dacba,0xff69a5b3,0xff5f95a1,0xff507b85,0xffa7c1c3,0xffbcd3d6,0xffc9dbdd,0xffd2e3e4,0xffdbe8e9,0xffb3c2c5,0xff28525c,0xff29606c, | ||
2041 | 0xff64929d,0xff206f7f,0xff187283,0xff1a7183,0xff1a6f81,0xff1a6b7c,0xff1f6978,0xff92b9bb,0xff8ab3b7,0xff82afb2,0xff79a8ab,0xff6e9ea2,0xff364c51,0xff324d53, | ||
2042 | 0xff2b5157,0xfc265259,0x961a1a1a,0x61181818,0x37000000,0xfe65a7b7,0xff64a6b6,0xff5f9ead,0xff558d9b,0xff47737e,0xffa7c5c7,0xffb4ced0,0xffc0d6d9,0xffc9dbdd, | ||
2043 | 0xffcfe1e2,0xff26535e,0xff28616e,0xff266a7a,0xff1f6e7f,0xff166e80,0xff166e80,0xff548d9a,0xff186677,0xff196071,0xff87abae,0xff8db6b9,0xff87b2b4,0xff7facb0, | ||
2044 | 0xff77a6a9,0xff749c9f,0xff36494d,0xff324b50,0xff2c4e56,0xfe25515b,0x9a1a1a1a,0x66171717,0x39040404,0xf9599daf,0xff5a9fb1,0xff5596a8,0xff4c8795,0xff3e6d78, | ||
2045 | 0xffa0c0c3,0xffabc8ca,0xffb6cfd2,0xffbdd5d7,0xff5c7b82,0xff265d6b,0xff25687a,0xff206d81,0xff176e81,0xff166c7f,0xff166a7d,0xffa9c7c9,0xff9ab9be,0xff769aa1, | ||
2046 | 0xff8fb7ba,0xff88b3b6,0xff83afb2,0xff7babae,0xff74a5a8,0xff6d7e80,0xff37484c,0xff334a4f,0xff2c4c52,0xfc244a53,0x9c1a1a1a,0x66171717,0x38050505,0xed4d8fa2, | ||
2047 | 0xff5099ac,0xff4c91a4,0xff448091,0xff396a77,0xff97bbbd,0xffa3c2c5,0xffabc8cb,0xffb1cccf,0xff235362,0xff216172,0xff1e687e,0xff176a80,0xff166a7e,0xff15667b, | ||
2048 | 0xff156175,0xff9fc1c4,0xff97bcbf,0xff90b8bb,0xff8ab4b7,0xff83afb3,0xff7eacb0,0xff79a9ab,0xff71a3a7,0xff394649,0xff39484c,0xff32494e,0xff2c4c53,0xf924444b, | ||
2049 | 0x98191919,0x64141414,0x35050505,0xd7447d90,0xff4691a7,0xff428a9f,0xff3d7b8e,0xff336675,0xff8fb4b8,0xff99bec1,0xffa0c1c3,0xff8ca6ab,0xff215667,0xff1c6274, | ||
2050 | 0xff19667b,0xff19677d,0xff16637b,0xff166074,0xff7097a1,0xff96bbbe,0xff8fb7ba,0xff88b4b7,0xff84b1b3,0xff7eadaf,0xff7aa9ac,0xff75a6a9,0xff7a9799,0xff3b4649, | ||
2051 | 0xff38474c,0xff32494f,0xff294851,0xf1233d44,0x931a1a1a,0x5f151515,0x30050505,0xb5366775,0xff3d88a2,0xff39829a,0xff36778c,0xff2e6376,0xff85aeb1,0xff8fb7b9, | ||
2052 | 0xff96bcbe,0xff6a878f,0xff1e5769,0xff1c6073,0xff1b6478,0xff196378,0xff185f74,0xff175a6e,0xff92b9bb,0xff8db6b8,0xff87b3b6,0xff82afb2,0xff7eadb0,0xff7aa9ad, | ||
2053 | 0xff77a6aa,0xff71a2a6,0xff3c4346,0xff3c4649,0xff37474c,0xff30474e,0xff274650,0xe121353b,0x89181818,0x59141414,0x2a060606,0x81294953,0xfb357e99,0xff337c97, | ||
2054 | 0xff30738b,0xff2c6377,0xff79a6aa,0xff85afb3,0xff8cb6b8,0xff315966,0xff225869,0xff215e72,0xff206177,0xff1c5f74,0xff1b5c72,0xff467483,0xff89b4b7,0xff85b1b4, | ||
2055 | 0xff81afb2,0xff7eacaf,0xff7aaaad,0xff76a7a9,0xff73a4a7,0xff545a5b,0xff3e4447,0xff3b464a,0xff36474d,0xff2d464f,0xfd25434c,0xc51f2a2d,0x7d181818,0x4f131313, | ||
2056 | 0x22080808,0x420c0c0c,0xd92c647a,0xff2d7593,0xff2a6d88,0xff276177,0xff6f9399,0xff78a6aa,0xff82adb2,0xff365b69,0xff265769,0xff265d72,0xff256074,0xff245e73, | ||
2057 | 0xff225a6f,0xff7e9fa5,0xff82afb2,0xff7fadb0,0xff7cabaf,0xff79a8ac,0xff75a6aa,0xff72a3a7,0xff6ea0a4,0xff3f4446,0xff3e4649,0xff3a474b,0xff33464c,0xff2a444c, | ||
2058 | 0xf2223940,0x9d1a1a1a,0x6d151515,0x420f0f0f,0x1a0a0a0a,0x350e0e0e,0x9d244b57,0xfb256b88,0xff246985,0xff236078,0xff456d7c,0xff6c9b9f,0xff76a5a8,0xff69858d, | ||
2059 | 0xff2b5769,0xff2a5d70,0xff295e73,0xff295d72,0xff295a6e,0xff7eacb0,0xff7cabaf,0xff78a9ad,0xff76a6a9,0xff74a5a9,0xff71a2a6,0xff6ca0a4,0xff689b9e,0xff6b9395, | ||
2060 | 0xff3b4549,0xff36454c,0xff2d434c,0xfd254049,0xd31f2c30,0x89181818,0x5c131313,0x350e0e0e,0x130d0d0d,0x280d0d0d,0x490e0e0e,0xd1215669,0xff1e6581,0xff1e5e7a, | ||
2061 | 0xff21576d,0xff5c8e93,0xff68999e,0xff74949a,0xff2e5768,0xff2f5c6d,0xff305e72,0xff2f5d71,0xff77959d,0xff76a7ab,0xff75a6a9,0xff73a5a8,0xff7a9fa3,0xff7b969a, | ||
2062 | 0xff788a8d,0xff4e5558,0xff3f474a,0xff3d474b,0xff36454b,0xff30434b,0xff28404b,0xec20343a,0x9e1b1b1b,0x73161616,0x49111111,0x280d0d0d,0xc151515,0x1d121212, | ||
2063 | 0x36131313,0x7b193339,0xe71a556a,0xff1c5b77,0xff20576f,0xff486b7a,0xff588a8f,0xff619497,0xff2e5465,0xff30596a,0xff325c6e,0xff335d6f,0xff718d95,0xff516d7b, | ||
2064 | 0xff375663,0xff39515c,0xff3b4e56,0xff3d4b52,0xff3e4b50,0xff3e4a4e,0xff3b484d,0xff38464e,0xff32434c,0xff29404b,0xf522383f,0xbe1e2528,0x83171717,0x5b141414, | ||
2065 | 0x350e0e0e,0x1c090909,0x7242424,0x120e0e0e,0x26141414,0x43131313,0x97173a46,0xee1a5167,0xff1c5670,0xff21526a,0xff507981,0xff508389,0xff638089,0xff315567, | ||
2066 | 0xff335a6b,0xff355b6c,0xff385b6c,0xff395a69,0xff3b5765,0xff3c555f,0xff3d515b,0xff3d4e56,0xff3c4c53,0xff394951,0xff364850,0xff2f434c,0xff29404b,0xf8233841, | ||
2067 | 0xcc1e282c,0x8e191919,0x66141414,0x42131313,0x250e0e0e,0x120e0e0e,0x3000000,0xb171717,0x18151515,0x2d111111,0x4b141414,0x9e193642,0xea1a4a5f,0xff1c4f6a, | ||
2068 | 0xff1f4e64,0xff3c6e75,0xff46787e,0xff2d5164,0xff315365,0xff345668,0xff365868,0xff375666,0xff395563,0xff3a5360,0xff3a505d,0xff384d57,0xff354a55,0xff324750, | ||
2069 | 0xff2d444f,0xff273f4b,0xf521363f,0xcc1e282c,0x921a1a1a,0x6c151515,0x4b111111,0x2d111111,0x170b0b0b,0xa000000,0x1000000,0x5000000,0xe121212,0x1c121212, | ||
2070 | 0x31151515,0x4e171717,0x8b182c33,0xdb194251,0xfc1c4b64,0xff1f4a62,0xff39666d,0xff386a70,0xff2b4e60,0xff2d4f61,0xff305062,0xff325161,0xff33505e,0xff324d5c, | ||
2071 | 0xff324b59,0xff2f4855,0xff2c4653,0xff28414e,0xfd243d49,0xeb1f323a,0xbc1e2526,0x8e191919,0x6c151515,0x4d111111,0x30101010,0x1b090909,0xd000000,0x5000000, | ||
2072 | 0xffffff,0x2000000,0x6000000,0xf111111,0x1d121212,0x31151515,0x4b141414,0x68161616,0xb719333e,0xe81c404f,0xfc1c465b,0xff5b7984,0xff50727b,0xff25485c, | ||
2073 | 0xff27495a,0xff29495a,0xff294658,0xff294757,0xff274252,0xff264251,0xfd223f4c,0xf1213640,0xd11e2b30,0x9d1c1c1c,0x82181818,0x66141414,0x4a111111,0x30101010, | ||
2074 | 0x1c090909,0xe000000,0x6000000,0x2000000,0xffffff,0x1000000,0x2000000,0x7000000,0x10202020,0x1d1a1a1a,0x2d171717,0x44171717,0x5c161616,0x75181818, | ||
2075 | 0xad192b32,0xd41a3841,0xed39555f,0xfa6f858f,0xfd466371,0xfe214253,0xfc20404f,0xf81f3c4a,0xef1f3842,0xde1e3139,0xc31c282e,0x9b1a1a1a,0x87191919,0x73161616, | ||
2076 | 0x5a141414,0x42131313,0x2d111111,0x1b090909,0xe000000,0x7000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000,0x2000000,0x7242424,0xe121212, | ||
2077 | 0x18151515,0x26141414,0x38171717,0x4a151515,0x5d161616,0x6f171717,0x7e181818,0x8b1a1a1a,0x9c3a3a3a,0xa9575757,0xa74c4c4c,0x9f3a3a3a,0x98353535,0x8a252525, | ||
2078 | 0x7d181818,0x6c151515,0x5b141414,0x49111111,0x350e0e0e,0x250e0e0e,0x170b0b0b,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff, | ||
2079 | 0xffffff,0x1000000,0x2000000,0x62b2b2b,0xb171717,0x120e0e0e,0x1d121212,0x29131313,0x37131313,0x44131313,0x4f131313,0x59141414,0x60181818,0x65171717, | ||
2080 | 0x66171717,0x64141414,0x5f151515,0x58141414,0x4e141414,0x420f0f0f,0x350e0e0e,0x280d0d0d,0x1c090909,0x120e0e0e,0xa000000,0x5000000,0x2000000,0x1000000, | ||
2081 | 0xffffff,0xffffff | ||
2082 | }; | ||
2083 | |||
2508 | static const QRgb save_data[] = { | 2084 | static const QRgb save_data[] = { |
2509 | 0x0,0x1000000,0x3000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x2000000,0x0, | 2085 | 0x0,0x1000000,0x3000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x4000000,0x2000000,0x0, |
2510 | 0x0,0x75939393,0xd7788f79,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd752a357,0xc95e5e5e,0x1c000000,0x3000000, | 2086 | 0x0,0x75939393,0xd7788f79,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd736b43e,0xd752a357,0xc95e5e5e,0x1c000000,0x3000000, |
2511 | 0x1000000,0x8f949494,0xff9d9e9d,0xffe9f8e9,0xffe6f4e6,0xffe6f5e6,0xffe6f5e6,0xffe6f5e6,0xffe5f4e5,0xffe4f3e4,0xffc3cbc3,0xf9595959,0x4a000000,0xa000000, | 2087 | 0x1000000,0x8f949494,0xff9d9e9d,0xffe9f8e9,0xffe6f4e6,0xffe6f5e6,0xffe6f5e6,0xffe6f5e6,0xffe5f4e5,0xffe4f3e4,0xffc3cbc3,0xf9595959,0x4a000000,0xa000000, |
2512 | 0x1000000,0x908f8f8f,0xff999999,0xfffafafa,0xfff6f6f6,0xfff5f5f5,0xfff4f4f4,0xfff2f2f2,0xffeeeeee,0xffeaeaea,0xffbebebe,0xfa575757,0x56000000,0xb000000, | 2088 | 0x1000000,0x908f8f8f,0xff999999,0xfffafafa,0xfff6f6f6,0xfff5f5f5,0xfff4f4f4,0xfff2f2f2,0xffeeeeee,0xffeaeaea,0xffbebebe,0xfa575757,0x56000000,0xb000000, |
2513 | 0x1000000,0x908e8e8e,0xff9b9b9b,0xfff8f8f8,0xfff3f3f3,0xfff1f1f1,0xffebebeb,0xffe5e5e5,0xffdfdfdf,0xffdbdbdb,0xffaeaeae,0xfa4d4d4d,0x57000000,0xc000000, | 2089 | 0x1000000,0x908e8e8e,0xff9b9b9b,0xfff8f8f8,0xfff3f3f3,0xfff1f1f1,0xffebebeb,0xffe5e5e5,0xffdfdfdf,0xffdbdbdb,0xffaeaeae,0xfa4d4d4d,0x57000000,0xc000000, |
2514 | 0x1000000,0x908f8f8f,0xff9d9d9d,0xfff2f2f2,0xffe7e7e7,0xffe1e1e1,0xffdadada,0xffd4d4d4,0xffcecece,0xffc9c9c9,0xff9b9b9b,0xfa484848,0x57000000,0xc000000, | 2090 | 0x1000000,0x908f8f8f,0xff9d9d9d,0xfff2f2f2,0xffe7e7e7,0xffe1e1e1,0xffdadada,0xffd4d4d4,0xffcecece,0xffc9c9c9,0xff9b9b9b,0xfa484848,0x57000000,0xc000000, |
2515 | 0x1000000,0x90909090,0xff8c8c8c,0xffc4c4c4,0xffbdbdbd,0xffb5b5b5,0xffafafaf,0xffaaaaaa,0xffa4a4a4,0xff9c9c9c,0xff797979,0xf9444444,0x57000000,0xc000000, | 2091 | 0x1000000,0x90909090,0xff8c8c8c,0xffc4c4c4,0xffbdbdbd,0xffb5b5b5,0xffafafaf,0xffaaaaaa,0xffa4a4a4,0xff9c9c9c,0xff797979,0xf9444444,0x57000000,0xc000000, |
2516 | 0x1000000,0x908f8f8f,0xff7d7d7d,0xff767676,0xff6e6e6e,0xff656565,0xff5d5d5d,0xff5c5c5c,0xff5c5c5c,0xff585858,0xff515151,0xf93b3b3b,0x57000000,0xc000000, | 2092 | 0x1000000,0x908f8f8f,0xff7d7d7d,0xff767676,0xff6e6e6e,0xff656565,0xff5d5d5d,0xff5c5c5c,0xff5c5c5c,0xff585858,0xff515151,0xf93b3b3b,0x57000000,0xc000000, |
2517 | 0x1000000,0x90888888,0xff737373,0xffc4c4c4,0xffc2c2c2,0xffc7c7c7,0xffc7c7c7,0xffc2c2c2,0xffababab,0xff606060,0xff484848,0xfa353535,0x57000000,0xc000000, | 2093 | 0x1000000,0x90888888,0xff737373,0xffc4c4c4,0xffc2c2c2,0xffc7c7c7,0xffc7c7c7,0xffc2c2c2,0xffababab,0xff606060,0xff484848,0xfa353535,0x57000000,0xc000000, |
2518 | 0x1000000,0x90828282,0xff6d6d6d,0xffd9d9d9,0xff797979,0xffa9a9a9,0xffbfbfbf,0xffb3b3b3,0xff9d9d9d,0xff575757,0xff424242,0xfa313131,0x57000000,0xc000000, | 2094 | 0x1000000,0x90828282,0xff6d6d6d,0xffd9d9d9,0xff797979,0xffa9a9a9,0xffbfbfbf,0xffb3b3b3,0xff9d9d9d,0xff575757,0xff424242,0xfa313131,0x57000000,0xc000000, |
2519 | 0x1000000,0x907e7e7e,0xff6b6b6b,0xffc7c7c7,0xff747474,0xff979797,0xffa0a0a0,0xff9e9e9e,0xffa2a2a2,0xff575757,0xff404040,0xfa2f2f2f,0x57000000,0xc000000, | 2095 | 0x1000000,0x907e7e7e,0xff6b6b6b,0xffc7c7c7,0xff747474,0xff979797,0xffa0a0a0,0xff9e9e9e,0xffa2a2a2,0xff575757,0xff404040,0xfa2f2f2f,0x57000000,0xc000000, |
2520 | 0x1000000,0x65565656,0xfc636363,0xffb0b0b0,0xff929292,0xff8e8e8e,0xff9b9b9b,0xffa9a9a9,0xffb8b8b8,0xff595959,0xff3c3c3c,0xf8252525,0x55000000,0xb000000, | 2096 | 0x1000000,0x65565656,0xfc636363,0xffb0b0b0,0xff929292,0xff8e8e8e,0xff9b9b9b,0xffa9a9a9,0xffb8b8b8,0xff595959,0xff3c3c3c,0xf8252525,0x55000000,0xb000000, |
2521 | 0x0,0x10000000,0x61181818,0x8b191919,0x8e1f1f1f,0x8e292929,0x8f292929,0x8f292929,0x8e292929,0x8d282828,0x8b1a1a1a,0x7f101010,0x38000000,0x7000000, | 2097 | 0x0,0x10000000,0x61181818,0x8b191919,0x8e1f1f1f,0x8e292929,0x8f292929,0x8f292929,0x8e292929,0x8d282828,0x8b1a1a1a,0x7f101010,0x38000000,0x7000000, |
2522 | 0x0,0x1000000,0xc000000,0x19000000,0x1a000000,0x1a000000,0x1b000000,0x1b000000,0x1a000000,0x1a000000,0x19000000,0x17000000,0xb000000,0x1000000 | 2098 | 0x0,0x1000000,0xc000000,0x19000000,0x1a000000,0x1a000000,0x1b000000,0x1b000000,0x1a000000,0x1a000000,0x19000000,0x17000000,0xb000000,0x1000000 |
2523 | }; | 2099 | }; |
2524 | 2100 | ||
2101 | static const QRgb SettingsIcon_data[] = { | ||
2102 | 0x0,0x0,0x67bbbbc8,0xc6e3e3e9,0xbddfdfe6,0x61bdbdc8,0x36f6f78,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2103 | 0x0,0x0,0x1b91919e,0xd2d0d0d8,0xfffefefe,0xfef6f6f7,0x85b2b2be,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2104 | 0x429494a9,0x661616f,0x0,0x1d858594,0xedd1d1da,0xfffefeff,0xf9d8d8e0,0x1a474750,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2105 | 0xc5c1c1ce,0xa1a6a6b6,0x8626274,0x92a9a9bb,0xffe9e9ee,0xfff5f5f7,0xffdfdfe6,0x405c5c6b,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2106 | 0xbab5b5c4,0xffe0e0e7,0xd8a8a8b9,0xffdddde4,0xffe9e9ee,0xffe9e9ee,0xffc5c5d1,0x303d3d4a,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2107 | 0x5c818198,0xfecacad5,0xffdddde4,0xffdedee5,0xffdddde5,0xffd4d4dd,0xffc1c1cd,0xb7a39388,0x8fd79c2d,0x7895d1c,0x0,0x0,0x0,0x0, | ||
2108 | 0x33f3f51,0x7f74748c,0xf7a0a0b3,0xffb4b4c3,0xffafafbf,0xffcacad5,0xffcfc4bc,0xffe0ab39,0xffeeb524,0xa7d09b2c,0x67a521a,0x0,0x0,0x0, | ||
2109 | 0x0,0x1000000,0x192a2a39,0x403b3b50,0x3d39394d,0xd59a8c8b,0xffdea939,0xfff6a014,0xfffd9f12,0xfff1b523,0xa8c8922a,0x87e541b,0x0,0x0, | ||
2110 | 0x0,0x0,0x0,0x0,0x0,0x87ba8128,0xfff1b423,0xffffb71f,0xffffb71f,0xfffdb51f,0xfff2b824,0xa7c08827,0x76f4919,0x0, | ||
2111 | 0x0,0x0,0x0,0x0,0x0,0x5644217,0x9bb57e26,0xfff3bb27,0xffffcd2d,0xffffcb2b,0xfffebe24,0xfff5b622,0xa5b87d25,0x5533614, | ||
2112 | 0x0,0x0,0x0,0x0,0x0,0x0,0x4563814,0x9dae7524,0xfff1be2b,0xffffc528,0xffffa515,0xffff9c0f,0xfeeca21d,0x50825420, | ||
2113 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x55b3a17,0x9ca56b22,0xfff3a018,0xffffad1a,0xffff9a0e,0xfff49b14,0x69794d1e, | ||
2114 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x54e3115,0x9ba1631e,0xfee68912,0xfff28f0e,0xe2b06b1a,0x2637230f, | ||
2115 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5472c15,0x4f6c421f,0x696b411d,0x2634200f,0x1000000 | ||
2116 | }; | ||
2117 | |||
2118 | static const QRgb Shutdown_data[] = { | ||
2119 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x3000000,0x6000000,0xb000000,0x12000000,0x19000000,0x21000000,0x29000000,0x2f000000, | ||
2120 | 0x34000000,0x37000000,0x38000000,0x37000000,0x34000000,0x2f000000,0x29000000,0x21000000,0x19000000,0x12000000,0xb000000,0x6000000,0x3000000,0x1000000, | ||
2121 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000, | ||
2122 | 0x5d8b4143,0x93b85357,0xbed15b5f,0xdedf5f63,0xf3e85e63,0xfeee5d61,0xf3e75457,0xe0dc4b4d,0xc4c73e42,0x9fa73032,0x70721d20,0x3f000000,0x33000000,0x26000000, | ||
2123 | 0x1b000000,0x11000000,0xa000000,0x5000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | ||
2124 | 0x16000000,0x23000000,0x6fa55154,0xbad2666a,0xf5ee7277,0xfff17275,0xffef6d71,0xffeb676a,0xffe96064,0xffe85b5e,0xffe85358,0xffe94e53,0xffec484c,0xffed4146, | ||
2125 | 0xf7e8393e,0xc6c12a2e,0x8884191c,0x45000000,0x33000000,0x23000000,0x16000000,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000, | ||
2126 | 0x2000000,0x7000000,0xe000000,0x1a000000,0x47793d3e,0xa7cc6669,0xf5f0797c,0xfff4787c,0xfff3777b,0xffef7174,0xffe96a6e,0xffe46366,0xffde5b5f,0xffdb5458, | ||
2127 | 0xffdd4f53,0xffe2494e,0xffe74348,0xffeb3d42,0xffee373c,0xffef3036,0xf8e7282e,0xbcb01a1e,0x6c4d090b,0x3e000000,0x2a000000,0x1a000000,0xe000000,0x7000000, | ||
2128 | 0x2000000,0x1000000,0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x5f9b4f51,0xc6db7072,0xfff57d80,0xfff57b7e,0xfff47a7d,0xfff07579,0xffea6e71, | ||
2129 | 0xffe2676a,0xffd85e61,0xffd05457,0xffcc4e51,0xffcf484b,0xffd74447,0xffde3e43,0xffe7393d,0xffeb3237,0xffed2b31,0xffee2429,0xffed1d23,0xd7c11419,0x85670a0d, | ||
2130 | 0x46000000,0x2e000000,0x1b000000,0xe000000,0x6000000,0x2000000,0x1000000,0x5000000,0xd000000,0x1a000000,0x5f9b4f51,0xd0e07276,0xfff57d81,0xfff47d7f, | ||
2131 | 0xfff47b7e,0xfff2797c,0xffec7377,0xffe36b6e,0xffd55f63,0xffc85659,0xffffffff,0xffffffff,0xffffffff,0xffc63c40,0xffd2373b,0xffde3237,0xffe82d31,0xffeb262a, | ||
2132 | 0xffec1e24,0xffeb181e,0xffe5171d,0xe0bd1318,0x8a5e0a0c,0x48000000,0x2e000000,0x1a000000,0xd000000,0x5000000,0x3000000,0xa000000,0x16000000,0x47793d3e, | ||
2133 | 0xc6db7072,0xfff57d81,0xfff47d80,0xfff37c7f,0xfff0797c,0xffed7679,0xffe46d71,0xffd76567,0xffc7585b,0xffb94e51,0xffffffff,0xffffffff,0xffffffff,0xffb73438, | ||
2134 | 0xffc43034,0xffd32b31,0xffde252b,0xffe71f25,0xffe8191e,0xffe4171d,0xffde171c,0xffd9161b,0xdbaa1116,0x7b3b0607,0x46000000,0x2a000000,0x16000000,0xa000000, | ||
2135 | 0x6000000,0x11000000,0x23000000,0xa7cc6669,0xfff57d80,0xfff47d7f,0xfff27c7e,0xffee7a7c,0xffe97477,0xffe26f73,0xffd7666a,0xffc85c5f,0xffb64f52,0xffa84548, | ||
2136 | 0xffffffff,0xffffffff,0xffffffff,0xffa62d30,0xffb3282c,0xffc42428,0xffd21f24,0xffdb191f,0xffda161c,0xffd9161b,0xffd6161b,0xffd2151b,0xffcd151a,0xc88b0e11, | ||
2137 | 0x60000000,0x3e000000,0x23000000,0x11000000,0xb000000,0x1b000000,0x6fa55154,0xf5f0797c,0xfff47b7e,0xfff37a7d,0xffee787b,0xffe87376,0xffdc6c70,0xffd36569, | ||
2138 | 0xffc65d60,0xffc26e71,0xffcd999a,0xff993d40,0xffffffff,0xffffffff,0xffffffff,0xff982528,0xffcb8486,0xffbe4044,0xffc0181c,0xffca151a,0xffcb1519,0xffcd151a, | ||
2139 | 0xffcb1419,0xffca151a,0xffc41419,0xf9b91217,0xa257090b,0x55000000,0x33000000,0x1b000000,0x12000000,0x26000000,0xbad2666a,0xfff4787c,0xfff47a7d,0xfff0787b, | ||
2140 | 0xffe97477,0xffdc6c70,0xffce6366,0xffc25c5e,0xffd2999a,0xffeddcdc,0xffffffff,0xff8c3638,0xffffffff,0xffffffff,0xffffffff,0xff8b2023,0xffffffff,0xffedd2d3, | ||
2141 | 0xffce7375,0xffb41217,0xffb71318,0xffbe1318,0xffc11419,0xffc11419,0xffbd1318,0xffb81317,0xd7860d11,0x6c000000,0x45000000,0x26000000,0x19000000,0x5d8b4143, | ||
2142 | 0xf5ef7377,0xfff3777b,0xfff07579,0xffea7276,0xffdf6b6f,0xffd16367,0xffbe5a5c,0xffd7a6a8,0xfffefefe,0xffffffff,0xffffffff,0xff873234,0xffffffff,0xffffffff, | ||
2143 | 0xffffffff,0xff851b1e,0xffffffff,0xffffffff,0xfffefdfd,0xffce8587,0xffa51015,0xffae1216,0xffb21217,0xffb61217,0xffb41317,0xffb11216,0xfaa61115,0x9b3b0608, | ||
2144 | 0x56000000,0x33000000,0x21000000,0x93ba5558,0xfff47376,0xfff37376,0xffee7073,0xffe56c6f,0xffd66467,0xffc35a5d,0xffcf9799,0xfffefefe,0xffffffff,0xffffffff, | ||
2145 | 0xffecdfdf,0xff862e31,0xffffffff,0xffffffff,0xffffffff,0xff84171a,0xffecdada,0xffffffff,0xffffffff,0xfffefdfd,0xffbe7173,0xff9b1014,0xffa41115,0xffa91116, | ||
2146 | 0xffab1215,0xffa81115,0xffa51115,0xc25f0a0c,0x67000000,0x3f000000,0x29000000,0xbed35d61,0xfff46f73,0xfff26e72,0xffeb6b6f,0xffdf6467,0xffcd5b5e,0xffc16b6d, | ||
2147 | 0xffeddbdc,0xffffffff,0xffffffff,0xffd1adae,0xffa1595a,0xff8c2c2e,0xffffffff,0xffffffff,0xffffffff,0xff8a1317,0xff9c3c3f,0xffcc9c9e,0xffffffff,0xffffffff, | ||
2148 | 0xffe7d0d1,0xff9d3437,0xff950f13,0xff9d1014,0xffa01014,0xffa01014,0xff9e1014,0xde730c0f,0x75000000,0x4a000000,0x2f000000,0xdee26164,0xfff36a6d,0xffef686b, | ||
2149 | 0xffe76567,0xffd75c60,0xffc25256,0xffd1999a,0xffffffff,0xffffffff,0xffeedfe0,0xffa85a5c,0xff952f32,0xff982a2d,0xffffffff,0xffffffff,0xffffffff,0xff940f13, | ||
2150 | 0xff8a0e11,0xff983c3e,0xffead9d9,0xffffffff,0xffffffff,0xffb7797b,0xff870e11,0xff910f13,0xff960f13,0xff960f13,0xff960f13,0xef810d10,0x81000000,0x53000000, | ||
2151 | 0x34000000,0xf3ec6165,0xfff36468,0xffef6266,0xffe45c60,0xffd35458,0xffbc494c,0xffe2c3c4,0xffffffff,0xffffffff,0xffd0a3a4,0xff9e3034,0xffa32d30,0xffa7282b, | ||
2152 | 0xffffffff,0xffffffff,0xffffffff,0xff9b1013,0xff8f0e12,0xff830d10,0xffc29294,0xffffffff,0xffffffff,0xffd3b3b4,0xff7b0c0f,0xff850e10,0xff8d0e12,0xff8f0f12, | ||
2153 | 0xff8e0e12,0xf9870d11,0x89000000,0x59000000,0x37000000,0xfef25f63,0xfff35f63,0xffed5b5f,0xffe15659,0xffce4c50,0xffb74245,0xfff3e7e7,0xffffffff,0xffffffff, | ||
2154 | 0xffba6e70,0xffa72c2f,0xffb0292c,0xffb62327,0xffffffff,0xffffffff,0xffffffff,0xffa11015,0xff930f12,0xff830d11,0xff9e5759,0xffffffff,0xffffffff,0xffede1e2, | ||
2155 | 0xff720b0e,0xff7b0d0f,0xff830d11,0xff870e12,0xff880e11,0xfe870e11,0x8e000000,0x5e000000,0x38000000,0xf3eb5559,0xfff2575c,0xffed5559,0xffe04e51,0xffcb4449, | ||
2156 | 0xffb53a3e,0xfffefdfd,0xffffffff,0xffffffff,0xffa94144,0xffad2629,0xffbb2326,0xffc41d22,0xffc51419,0xffbd1317,0xffb31217,0xffa61015,0xff940f13,0xff810d10, | ||
2157 | 0xff81292b,0xffffffff,0xffffffff,0xfffdfcfc,0xff6a0a0d,0xff740c0f,0xff7c0d10,0xff800d11,0xff820d10,0xfa7b0c0f,0x90000000,0x5f000000,0x37000000,0xe0df4c4f, | ||
2158 | 0xfff15156,0xffec4c51,0xffe0474a,0xffcd3e42,0xffb63337,0xfff3e5e6,0xffffffff,0xffffffff,0xffbb6467,0xffad1e22,0xffbd1a1f,0xffc8151a,0xffc41419,0xffbc1318, | ||
2159 | 0xffb11216,0xffa21015,0xff8e0e12,0xff790c0f,0xff975658,0xffffffff,0xffffffff,0xffebe1e1,0xff650b0d,0xff6f0b0e,0xff760c0f,0xff7b0d10,0xff7d0d10,0xf26a0b0e, | ||
2160 | 0x8e000000,0x5e000000,0x34000000,0xc4c93f43,0xfff1494e,0xffed454a,0xffe13f43,0xffd0373b,0xffb92e31,0xffe2bbbc,0xffffffff,0xffffffff,0xffd09899,0xffa51418, | ||
2161 | 0xffb21216,0xffb91217,0xffb91218,0xffb11216,0xffa51115,0xff950f12,0xff800d10,0xff6d0b0e,0xffb79192,0xffffffff,0xffffffff,0xffcbb3b3,0xff620a0c,0xff6c0b0e, | ||
2162 | 0xff720b0e,0xff760c0f,0xff770c0f,0xe558090b,0x89000000,0x59000000,0x2f000000,0x9fa93034,0xfff04247,0xffec3d42,0xffe4383d,0xffd43034,0xffbf272c,0xffcf8385, | ||
2163 | 0xffffffff,0xffffffff,0xffeed9da,0xffab3d40,0xff9f1014,0xffa41014,0xffa51115,0xff9f1014,0xff930f12,0xff830d10,0xff710c0e,0xff7f393b,0xffe4d8d9,0xffffffff, | ||
2164 | 0xffffffff,0xffa37778,0xff600a0c,0xff680b0d,0xff6e0b0e,0xff700c0e,0xff740c0f,0xd1400608,0x81000000,0x53000000,0x29000000,0x70721d20,0xf7e9393e,0xffed373c, | ||
2165 | 0xffe73136,0xffda2a2f,0xffc82227,0xffbe3e42,0xffecd2d2,0xffffffff,0xffffffff,0xffce9d9e,0xffa13c40,0xff8e0e12,0xff8e0e12,0xff870e11,0xff7e0d10,0xff710b0e, | ||
2166 | 0xff80393c,0xffba9b9b,0xffffffff,0xffffffff,0xffded0d0,0xff733031,0xff610a0d,0xff670a0d,0xff6c0b0e,0xff6f0b0e,0xfc6c0a0d,0xb5220404,0x75000000,0x4a000000, | ||
2167 | 0x21000000,0x3f000000,0xc6c12a2e,0xffee3036,0xffe82a30,0xffdf2428,0xffd11c21,0xffbe161a,0xffca7274,0xfffefdfd,0xffffffff,0xffffffff,0xffead9d9,0xffc39294, | ||
2168 | 0xffa15759,0xff82292c,0xff975658,0xffb79192,0xffe4d8d9,0xffffffff,0xffffffff,0xfffefdfd,0xff9a6d6f,0xff5b0a0b,0xff620a0c,0xff680a0d,0xff6a0b0e,0xff6d0b0e, | ||
2169 | 0xe64e080a,0x93000000,0x67000000,0x3f000000,0x19000000,0x33000000,0x8884191c,0xf8e6282e,0xffea2328,0xffe41d23,0xffd9171c,0xffc51419,0xffb01216,0xffcb8587, | ||
2170 | 0xfffefdfd,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffefdfd,0xffa78183,0xff59090b,0xff60090c, | ||
2171 | 0xff640a0d,0xff680b0d,0xff6a0b0e,0xfc680a0d,0xc32b0405,0x81000000,0x56000000,0x33000000,0x12000000,0x26000000,0x45000000,0xbcb01a1e,0xffec1d23,0xffe7181d, | ||
2172 | 0xffda161c,0xffc91519,0xffb71318,0xffa51015,0xffbe7173,0xffe7d0d1,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffded0d0, | ||
2173 | 0xff9a6d6f,0xff59090b,0xff5e090c,0xff620a0d,0xff660a0d,0xff680b0d,0xff6a0b0d,0xdf430709,0x94000000,0x6c000000,0x45000000,0x26000000,0xb000000,0x1b000000, | ||
2174 | 0x33000000,0x6c4d090b,0xd7c01419,0xffe3171d,0xffd9161b,0xffcd151a,0xffbd1317,0xffae1216,0xff9c1014,0xff9e3437,0xffb8797b,0xffd3b3b4,0xffede1e2,0xfffdfcfc, | ||
2175 | 0xffebe1e1,0xffccb3b3,0xffa47778,0xff743031,0xff5d0a0c,0xff60090c,0xff620a0d,0xff660a0d,0xff670b0d,0xff690b0d,0xed50080a,0xae160203,0x7b000000,0x55000000, | ||
2176 | 0x33000000,0x1b000000,0x6000000,0x11000000,0x23000000,0x3e000000,0x85670a0d,0xe0bc1318,0xffd6161b,0xffcd141a,0xffc21419,0xffb41217,0xffa61115,0xff970f13, | ||
2177 | 0xff8a0e12,0xff7f0d10,0xff740c0e,0xff6d0b0d,0xff680b0e,0xff650a0d,0xff640a0d,0xff620a0d,0xff630a0c,0xff650a0d,0xff660a0d,0xff670b0d,0xff690b0d,0xf054080a, | ||
2178 | 0xbc220304,0x85000000,0x60000000,0x3e000000,0x23000000,0x11000000,0x3000000,0xa000000,0x16000000,0x2a000000,0x46000000,0x8a5e0a0c,0xdba91116,0xffca151a, | ||
2179 | 0xffc11419,0xffb71217,0xffac1216,0xffa01014,0xff930f13,0xff890e11,0xff800d10,0xff770c0f,0xff720c0e,0xff6e0b0e,0xff6c0b0d,0xff6a0b0e,0xff690a0d,0xff690b0d, | ||
2180 | 0xff6a0b0e,0xff690b0d,0xed50080a,0xbc220304,0x88000000,0x66000000,0x46000000,0x2a000000,0x16000000,0xa000000,0x1000000,0x5000000,0xd000000,0x1a000000, | ||
2181 | 0x2e000000,0x48000000,0x7b3b0607,0xc88a0e11,0xf9b81217,0xffb51317,0xffae1215,0xffa31014,0xff990f13,0xff8e0e12,0xff870e11,0xff800d11,0xff7a0c10,0xff750c0f, | ||
2182 | 0xff720b0e,0xff6e0c0e,0xff6d0b0e,0xff6b0b0e,0xfc680a0d,0xdf430709,0xae160203,0x85000000,0x66000000,0x48000000,0x2e000000,0x1a000000,0xd000000,0x5000000, | ||
2183 | 0xffffff,0x2000000,0x6000000,0xe000000,0x1b000000,0x2e000000,0x46000000,0x60000000,0xa257090b,0xd7850d11,0xfaa51115,0xffa41115,0xff9c1014,0xff940f13, | ||
2184 | 0xff8b0e12,0xff850e11,0xff7f0d10,0xff7b0d10,0xff750c0f,0xff730c0f,0xfc6c0a0d,0xe64e080a,0xc32b0405,0x94000000,0x7b000000,0x60000000,0x46000000,0x2e000000, | ||
2185 | 0x1b000000,0xe000000,0x6000000,0x2000000,0xffffff,0x1000000,0x2000000,0x7000000,0xe000000,0x1a000000,0x2a000000,0x3e000000,0x55000000,0x6c000000, | ||
2186 | 0x9b3b0608,0xc25f0a0c,0xde730c0f,0xef810d10,0xf9870d11,0xfe870e11,0xfa7b0c0f,0xf26a0b0e,0xe558090b,0xd1400608,0xb5220404,0x93000000,0x81000000,0x6c000000, | ||
2187 | 0x55000000,0x3e000000,0x2a000000,0x1a000000,0xe000000,0x7000000,0x2000000,0x1000000,0xffffff,0xffffff,0x1000000,0x2000000,0x6000000,0xd000000, | ||
2188 | 0x16000000,0x23000000,0x33000000,0x45000000,0x56000000,0x67000000,0x75000000,0x81000000,0x89000000,0x8e000000,0x90000000,0x8e000000,0x89000000,0x81000000, | ||
2189 | 0x75000000,0x67000000,0x56000000,0x45000000,0x33000000,0x23000000,0x16000000,0xd000000,0x6000000,0x2000000,0x1000000,0xffffff,0xffffff,0xffffff, | ||
2190 | 0xffffff,0x1000000,0x2000000,0x5000000,0xa000000,0x11000000,0x1b000000,0x26000000,0x33000000,0x3f000000,0x4a000000,0x53000000,0x59000000,0x5e000000, | ||
2191 | 0x5f000000,0x5e000000,0x59000000,0x53000000,0x4a000000,0x3f000000,0x33000000,0x26000000,0x1b000000,0x11000000,0xa000000,0x5000000,0x2000000,0x1000000, | ||
2192 | 0xffffff,0xffffff | ||
2193 | }; | ||
2194 | |||
2195 | static const QRgb SoundPlayer_data[] = { | ||
2196 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x318192d7,0x537d8ed0,0x847d8bce, | ||
2197 | 0x867a88c9,0x867885c6,0x586f7dba,0x27636fa5,0x4000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2198 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x218698de,0xa18699df, | ||
2199 | 0xf08597de,0xff96a5e2,0xffa6b1e7,0xffb0b8ea,0xffadb6e9,0xffabb3e7,0xff9da7df,0xff8490cf,0xe37482c2,0x8b6c78b3,0x2a576192,0x5000000,0x1000000,0x0, | ||
2200 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2201 | 0x108ea1eb,0xa18a9ee6,0xff91a2e7,0xffb9c3f1,0xffdde1fb,0xffe9edff,0xffe8edff,0xffe8eeff,0xffe6edff,0xffc7d6ff,0xffc7d4ff,0xffc9d4ff,0xffc2cbf8,0xff9ca4dc, | ||
2202 | 0xff7884c2,0x90646ea7,0x1d3d4466,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2203 | 0x0,0x0,0x0,0x318da1e9,0xf08da1eb,0xffb7c3f3,0xffe9ecfe,0xfff0f3ff,0xffeef3ff,0xffedf1ff,0xffebf0ff,0xffe9efff,0xffe8eeff,0xffc9d8ff, | ||
2204 | 0xffc7d6ff,0xffc4d4ff,0xffcfdbff,0xffd4deff,0xffc9d0fb,0xff8c95d0,0xd96974af,0x454c537e,0x8000000,0x1000000,0x0,0x0,0x0,0x0, | ||
2205 | 0x0,0x0,0x0,0x0,0x0,0x0,0x318fa3ec,0xf096a9f0,0xffd4dbf9,0xfff5f7ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff,0xffeef3ff, | ||
2206 | 0xffedf1ff,0xffebf0ff,0xffe4ebff,0xffccdaff,0xffc9d8ff,0xffc8d7ff,0xffd6e1ff,0xffd6e0ff,0xffd4e0ff,0xffe6eaff,0xffa9aee4,0xf36a75b2,0x4c444a71,0xa000000, | ||
2207 | 0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3191a6f0,0xf098acf2,0xffe3e7fc,0xfff9fbff,0xfff9fbff, | ||
2208 | 0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff,0xffeef3ff,0xffedf1ff,0xffe4ebff,0xffcfdcff,0xffccdaff,0xffd0dcff,0xffd9e3ff,0xffd7e2ff,0xffe7edff,0xfff6f9ff, | ||
2209 | 0xfff0f3ff,0xffacb2e3,0xf46872af,0x40353a58,0xa000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x1096abf8,0xe093a9f5, | ||
2210 | 0xffd1d9fb,0xfff9fbff,0xfffdfeff,0xfffafcff,0xfff9fbff,0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff,0xffeef3ff,0xffe7edff,0xffd3dfff,0xffcfdcff,0xffd8e3ff, | ||
2211 | 0xffdbe4ff,0xffdfe7ff,0xfff7f9ff,0xfff7f9ff,0xfff6f9ff,0xffedefff,0xff9fa5dd,0xdc626ba4,0x21000000,0x6000000,0x0,0x0,0x0,0x0, | ||
2212 | 0x0,0x0,0x9194a9f5,0xffbac8fa,0xffeff4ff,0xfff3f7ff,0xfff9fbff,0xfffdfeff,0xfffbfcff,0xfffafbff,0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xfff0f4ff, | ||
2213 | 0xffe4ebff,0xffd7e1ff,0xffd5e0ff,0xffdee7ff,0xffdce6ff,0xfff2f5ff,0xfff8f9ff,0xfff7f9ff,0xfff7f9ff,0xfff6f9ff,0xffe5e8ff,0xff7e86c2,0x934e5582,0x17000000, | ||
2214 | 0x3000000,0x0,0x0,0x0,0x0,0x2193a9f3,0xff9db1fa,0xffeaefff,0xffe8efff,0xffedf3ff,0xfff3f7ff,0xfff9fbff,0xfffdfeff,0xfffcfdff, | ||
2215 | 0xfffafbff,0xfff7f9ff,0xfff5f7ff,0xfff3f6ff,0xffe7eeff,0xffdbe4ff,0xffdee6ff,0xffe1e9ff,0xffedf2ff,0xfff8faff,0xfff8f9ff,0xfff8f9ff,0xfff7f9ff,0xfff7f9ff, | ||
2216 | 0xfff6f9ff,0xffc5c9f5,0xf4646da8,0x3d1b1d2c,0xc000000,0x0,0x0,0x0,0x0,0x8296acf8,0xffc3cffc,0xffe0eaff,0xffe3ecff,0xffe8efff, | ||
2217 | 0xffedf3ff,0xfff3f7ff,0xfff9fbff,0xfffdfeff,0xfffcfdff,0xfffafbff,0xfff7f9ff,0xfff5f7ff,0xffebf0ff,0xffdfe8ff,0xffe5ecff,0xffe9efff,0xfff9fbff,0xfff9faff, | ||
2218 | 0xfff8faff,0xfff8f9ff,0xfff8f9ff,0xfff7f9ff,0xfff5f7ff,0xffecefff,0xff878dca,0x8c454b74,0x1b000000,0x3000000,0x0,0x0,0x0,0xe197aefa, | ||
2219 | 0xffe1e9fe,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffe8efff,0xffedf3ff,0xfff3f7ff,0xfff8fbff,0xfffdfeff,0xfffdfdff,0xfffafbff,0xfff3f5fe,0xffe8edfd,0xffe2e9fd, | ||
2220 | 0xffeaf0ff,0xfff7faff,0xfff9fbff,0xffabe0af,0xff7cdb7f,0xff7ce37f,0xff7bdb7f,0xffc6eccf,0xfff3f6ff,0xfff3f6ff,0xffacb0e4,0xca575e92,0x2c000000,0x9000000, | ||
2221 | 0x0,0x0,0x2195abf7,0xffabbefd,0xffdfe9ff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffe8efff,0xffedf3ff,0xfff3f7ff,0xfff8fbff,0xfffafcff, | ||
2222 | 0xffeef1fc,0xffe8ecfa,0xffdfe5f9,0xffdce2f7,0xffe5e9f7,0xffe8f3ed,0xff3fbb40,0xff5ec660,0xff7bdf7f,0xff5dd560,0xff1fd020,0xff00e300,0xff1fe020,0xff98ea9f, | ||
2223 | 0xffdbdeff,0xff6a72ad,0x3e000000,0x12000000,0x0,0x0,0x5395abf6,0xffbfcdfe,0xffd0dfff,0xffd1e0ff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff, | ||
2224 | 0xffe8efff,0xffedf3ff,0xfff1f6ff,0xffeaeffe,0xffeef1fc,0xffe7ebfa,0xffd3d9f2,0xffdde1f3,0xffe9ebf6,0xffbcd2c7,0xffe8efee,0xfff8faff,0xfff7f9ff,0xfff6f9ff, | ||
2225 | 0xffecf1ff,0xffa9dcbf,0xff36db40,0xff00ee00,0xff31e440,0xff6b8da5,0x77353959,0x1b000000,0x2000000,0x0,0x8495abf7,0xffcbd7fe,0xffc9daff,0xffcdddff, | ||
2226 | 0xffd1dfff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffe8efff,0xffe6edff,0xffe5ebfe,0xffd5dffc,0xf7899ce3,0xc96976ac,0xf57884bd,0xffd1d4e8,0xffe3e6f4, | ||
2227 | 0xffe9ecf9,0xffe9efff,0xffe1e9ff,0xffd7e2ff,0xffd3dfff,0xffd0dcff,0xffccdaff,0xff8ad5af,0xff0cea10,0xff09ef0d,0x9b216f37,0x24000000,0x5000000,0x0, | ||
2228 | 0x8693a9f4,0xffc0cffe,0xffc5d8ff,0xffc9daff,0xffcdddff,0xffd1dfff,0xffd5e2ff,0xffd9e5ff,0xffdee9ff,0xffe3ecff,0xffdfe8ff,0xffe6ecfe,0xffafc0fc,0x914c5576, | ||
2229 | 0x51000000,0x8c4b537e,0xff929ac6,0xffdce1f4,0xffdde3f7,0xffe4ebff,0xffdfe8ff,0xffdbe5ff,0xffd7e2ff,0xffd3dfff,0xffd0dcff,0xffccdaff,0xffa4d3cf,0xff1bd528, | ||
2230 | 0xfa03f605,0x52009100,0x8000000,0x0,0x8693a9f4,0xffc0cffe,0xffc2d6ff,0xffc5d8ff,0xffc9daff,0xffcdddff,0xffd6e3ff,0xffe2ebff,0xffebf1ff,0xfff2f6ff, | ||
2231 | 0xffeff3ff,0xffeff2fe,0xffb0c2fc,0x84495376,0x35000000,0x755a6397,0xff6fa094,0xff38c13d,0xff00bb00,0xff1dd120,0xff48dd50,0xff8bdd9f,0xffdbe5ff,0xffd7e2ff, | ||
2232 | 0xffd3dfff,0xffd0dcff,0xffccdaff,0xff7d95b9,0xfa03df05,0xe500ec00,0x1a008a00,0x0,0x8693a9f4,0xffcbd7fe,0xffccdcff,0xffdbe6ff,0xffe8efff,0xfff2f6ff, | ||
2233 | 0xfff5f8ff,0xfff6f9ff,0xfff7f9ff,0xfff8fbff,0xfff2f5ff,0xffecf0fe,0xffd8e0fc,0xf5899ce4,0xcc7786c6,0xff6c7eaa,0xff87ca93,0xffd6dee5,0xffeceffa,0xffc1e4cf, | ||
2234 | 0xff66db70,0xff0ee810,0xff2ae830,0xffb2e4cf,0xffd7e2ff,0xffd3dfff,0xffd0dcff,0xff8a90cd,0xa0205736,0xff00e100,0xa300dc00,0x0,0x588ca1e8,0xffbfcdfe, | ||
2235 | 0xfff2f6ff,0xfff2f6ff,0xfff3f7ff,0xfff3f7ff,0xfff4f8ff,0xfff7f9ff,0xfff8fbff,0xfff9fbff,0xfff8fbff,0xffecf0fe,0xffe0e3f3,0xffa3a4b1,0xff8c8b94,0xff959399, | ||
2236 | 0xffa8a7ae,0xffcfd0d7,0xfff8fafe,0xfff4f7ff,0xffeef3ff,0xffdaecef,0xff48e450,0xff00f400,0xff89eb9f,0xffd7e2ff,0xffcdd7ff,0xff7a81bd,0x84303450,0x95009600, | ||
2237 | 0xff00de00,0x2000cb00,0x277e91d1,0xffa5b9fd,0xfff5f8ff,0xfff2f6ff,0xfff2f6ff,0xfff5f8ff,0xfff7f9ff,0xfff8faff,0xfff8faff,0xfff9fbff,0xfff9fbff,0xfff5f9ff, | ||
2238 | 0xff7c7981,0xff746f74,0xff6b666b,0xff696469,0xff716d71,0xff797479,0xffa39fa4,0xffdedee2,0xfff4f7ff,0xffeef3ff,0xffe9efff,0xff72e77f,0xff00fc00,0xff96ecaf, | ||
2239 | 0xffcbd3ff,0xff646da8,0x59010101,0x33002400,0xef00c300,0x9f00c300,0x4000000,0xe396acf8,0xffecf0fe,0xfff3f7ff,0xfff5f9ff,0xfff6f9ff,0xfff7f9ff,0xfff7f9ff, | ||
2240 | 0xfff8faff,0xfff8faff,0xfff9fbff,0xff9498a1,0xff757075,0xff696469,0xff696469,0xff696469,0xff696469,0xff696469,0xff6d686d,0xff847f84,0xffc8c6ca,0xfff4f7ff, | ||
2241 | 0xffeef3ff,0xffe9efff,0xff64df70,0xff0ef110,0xff92b4c7,0xd6535a8a,0x4b000000,0x1c000000,0x8100a700,0xdf00bf00,0x1000000,0x8b8ca1e8,0xffc3cffc,0xfff6f8ff, | ||
2242 | 0xfff5f9ff,0xfff6f9ff,0xfff6f9ff,0xfff7f9ff,0xfff7f9ff,0xfff8faff,0xffeef3ff,0xff828692,0xff787478,0xff696469,0xff696469,0xff696469,0xff696469,0xff696469, | ||
2243 | 0xff696469,0xff696469,0xff837f83,0xffc1c0c3,0xfff4f7ff,0xffeef3ff,0xffe9efff,0xff37d440,0xff28c13e,0xa33c4163,0x3e000000,0x13000000,0x30006400,0xff00bc00, | ||
2244 | 0x0,0x1b5a6795,0xf29bb0f7,0xfff1f4ff,0xfff5f8ff,0xfff5f9ff,0xfff6f9ff,0xfff6f9ff,0xfff7f9ff,0xfff3f6ff,0xffdce7ff,0xff767c88,0xff7c787c,0xff696469, | ||
2245 | 0xff6a656a,0xff7c787c,0xff8e8a8e,0xff7f7b7f,0xff6a656a,0xff6a656a,0xff6c676c,0xff848084,0xffc7c6c9,0xfff4f7ff,0xffeff3ff,0xff96b7c3,0xff00cf00,0x73013601, | ||
2246 | 0x2e000000,0xa000000,0x0,0xff00a500,0x0,0x4000000,0x8e879be1,0xffb4c3f9,0xfff6f8ff,0xfff5f8ff,0xfff5f9ff,0xfff6f9ff,0xfff6f9ff,0xffdee9ff, | ||
2247 | 0xffd7e4ff,0xff8d96a8,0xff666366,0xff6d686d,0xff645f64,0xff5a545a,0xff7f7b7f,0xffbab7ba,0xffb0adb0,0xff7f7b7f,0xff797579,0xff7b777b,0xffa19da1,0xffdedee1, | ||
2248 | 0xffe4e7ff,0xff7e86c2,0xe90ba612,0x98008800,0x1c000000,0x3000000,0x0,0xff009c00,0x0,0x0,0x1c56628e,0xd88ea3eb,0xffd1d9fb,0xfff5f8ff, | ||
2249 | 0xfff5f8ff,0xfff5f9ff,0xffe6eeff,0xffd3e1ff,0xffd5e3ff,0xffbfcef1,0xff5a585e,0xff848084,0xff646064,0xff433d43,0xff585358,0xff908b90,0xffbfbcbf,0xffc6c4c6, | ||
2250 | 0xff888488,0xff8a868a,0xff8c888c,0xffb8b5b9,0xff9ba1d6,0xde5b6498,0xa2017301,0x98009c00,0xc000000,0x0,0x20008900,0xbf00a100,0x0,0x0, | ||
2251 | 0x4000000,0x456775aa,0xf390a4ee,0xffdbe1fb,0xfff5f8ff,0xffeef3ff,0xffd0dfff,0xffd2e0ff,0xffd1e0ff,0xffc2d5ff,0xff5e5d6b,0xff878387,0xff7a757a,0xff474147, | ||
2252 | 0xff433d43,0xff595359,0xff827d82,0xffb6b4b6,0xffb3b0b3,0xff9a969a,0xff9c989c,0xffa7a4a7,0xfb9296b5,0x7113151d,0x6f006900,0x8b00a200,0x3000000,0x0, | ||
2253 | 0x7000ac00,0x30009500,0x0,0x0,0x0,0x8000000,0x4c5c6998,0xf48da2ea,0xffcdd5f8,0xffdbe6ff,0xffceddff,0xffd0dfff,0xffc6d8ff,0xffbfd3ff, | ||
2254 | 0xff6d6d7a,0xff544f54,0xffa19ea1,0xff5b565b,0xff433d43,0xff433d43,0xff565056,0xff868186,0xffb6b4b6,0xffa9a6a9,0xffaba8ab,0xffadaaad,0xf7b9b8ba,0x48000000, | ||
2255 | 0x75008500,0x64009a00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0xa000000,0x4e596593,0xe8889ce3,0xffabb9f0, | ||
2256 | 0xffdae2fe,0xffd2dfff,0xffbcd2ff,0xffbcd1ff,0xff808395,0xff504b50,0xff6f6b6f,0xffa4a1a4,0xff585358,0xff453f45,0xff474147,0xff5e595e,0xff918e91,0xffb8b5b8, | ||
2257 | 0xffbab8ba,0xffbcb9bc,0xffc0bec0,0x4f777577,0xa3009a00,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2258 | 0x1000000,0xa000000,0x322e344c,0xac7485c2,0xff91a2e7,0xffb3bdef,0xffccd6fb,0xffcad8ff,0xffc2cdea,0xff625e64,0xff4e484e,0xff7b767b,0xffb8b5b8,0xff726e72, | ||
2259 | 0xff4e484e,0xff4f4a4f,0xff837f83,0xffc7c5c7,0xffc9c7c9,0xffcbc9cb,0xffc7c5c7,0x48b1afb1,0x1000000,0x0,0x0,0x0,0x0,0x0, | ||
2260 | 0x0,0x0,0x0,0x0,0x0,0x1000000,0x8000000,0x1b000000,0x4e39415e,0xa66978af,0xea8091d5,0xff90a0e0,0xffa0ace5,0xff9395b7, | ||
2261 | 0xff635d63,0xff635e63,0xff7f7b7f,0xffcdcbcd,0xffc7c5c7,0xffb5b2b5,0xffd4d2d4,0xffd6d5d6,0xffd8d7d8,0xffdbd9db,0xffcdcbcd,0x31c5c3c5,0x0,0x0, | ||
2262 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0xf000000,0x20000000, | ||
2263 | 0x33000000,0x5b2f354d,0x7a444d72,0x9f5a6696,0xbb626990,0xf36e6a73,0xff777277,0xff716c71,0xffb2afb2,0xffe1e0e1,0xffe0dfe0,0xffe3e2e3,0xffe2e1e2,0xffd8d6d8, | ||
2264 | 0xcfcdcbcd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2265 | 0x0,0x0,0x1000000,0x5000000,0xc000000,0x16000000,0x1f000000,0x27000000,0x2e000000,0x32000000,0x634c484c,0x5d514e51,0x735d595d,0xd37f7c7f, | ||
2266 | 0xffa19ea1,0xffb9b7b9,0xffbcb9bc,0xbfb1aeb1,0x10d1cfd1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2267 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x3000000,0x7000000,0xa000000,0xc000000, | ||
2268 | 0xa000000,0x7000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2269 | 0x0,0x0 | ||
2270 | }; | ||
2271 | |||
2272 | static const QRgb Sound_data[] = { | ||
2273 | 0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00c600,0xaf00cc00,0xe600d400,0xf600dc00,0xff00e400, | ||
2274 | 0xff00ec00,0xff00f400,0xff00fc00,0xff00f800,0xff00ee00,0xfe00e300,0xef00d800,0xc000ce00,0x5700c400,0x0,0x0,0x0,0x0,0x0, | ||
2275 | 0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x0,0x9c00b500,0xef00bd00,0xff00c400, | ||
2276 | 0xff00cc00,0xff00d400,0xff00dc00,0xff00d400,0xff00d900,0xff00d700,0xff00db00,0xff00dd00,0xff00d300,0xff00d600,0xff00d800,0xff00ce00,0xff00c300,0xfc00b701, | ||
2277 | 0xc200ac01,0x23009106,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x5700a600, | ||
2278 | 0xf600ad00,0xff00b400,0xff00bc00,0xff00bd00,0xf100b303,0xcd009c06,0x9d007808,0x6000350d,0x4300000e,0x4300000e,0x4300000e,0x4300000e,0x4300000e,0x8d006400, | ||
2279 | 0xb4007302,0xe2009b00,0xfc00a900,0xff00b300,0xff00ae00,0xfe00a200,0xa9008904,0x4000030,0x0,0x0,0x0,0x0,0xffffff,0xffffff, | ||
2280 | 0x0,0x0,0x9c009e00,0xff00a400,0xff00aa00,0xfd00a401,0xc3008108,0x67003110,0x3b000008,0x2f000000,0x26000000,0x1a000000,0xb000000,0x4000000, | ||
2281 | 0x4000000,0x4000000,0x4000000,0x4000000,0x16000000,0x20000000,0x2c000000,0x8c005400,0xeb008900,0xff009b00,0xff009800,0xe7008303,0xf00002d,0x0, | ||
2282 | 0x0,0x0,0xffffff,0xffffff,0x0,0x9c009600,0xff009c00,0xfe009c00,0xc3007108,0x51000016,0x35000004,0x24000000,0xd000000,0x2000000, | ||
2283 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x16000000,0x8a005d00, | ||
2284 | 0xf8008500,0xff008e00,0xea007704,0x1700002a,0x0,0x0,0xffffff,0xffffff,0x3c008e00,0xff009400,0xf9008d02,0x85003511,0x3e00000b,0x24000000, | ||
2285 | 0x7000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2286 | 0x0,0x0,0x0,0x0,0x16000000,0xe2007600,0xff008300,0xce006307,0x8000018,0x0,0xffffff,0xffffff,0xdb008d00,0xf8008402, | ||
2287 | 0x73001c16,0x35000004,0x15000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2288 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe1007000,0xfd007601,0x4e00001c,0x1000000, | ||
2289 | 0xffffff,0xffffff,0xff008900,0x97003c0f,0x3a000008,0x10000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2290 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2291 | 0x1f006000,0xfc007400,0xa900460c,0x9000000,0xffffff,0xffffff,0xe2007803,0x51000016,0x1a000000,0x2000000,0x0,0x0,0x0,0x0, | ||
2292 | 0x0,0x0,0x5700d500,0x9c00de00,0xc000e800,0xc000f200,0xc000fc00,0xc000f700,0xc000e900,0x7000dc00,0x1f00d400,0x0,0x0,0x0, | ||
2293 | 0x0,0x0,0x0,0x0,0x0,0x9e006f00,0xa900460c,0x1e000000,0xffffff,0xffffff,0x93006505,0x35000009,0x7000000,0x0, | ||
2294 | 0x0,0x0,0x0,0x7000b800,0xdb00c100,0xfe00ca00,0xff00d400,0xff00de00,0xff00e800,0xff00f200,0xff00fc00,0xff00f700,0xff00e900,0xff00dc00, | ||
2295 | 0xff00cf00,0xf600c200,0xaf00b500,0x23009606,0x0,0x0,0x0,0x0,0x0,0x1f006700,0x90005407,0x1e000000,0xffffff,0xffffff, | ||
2296 | 0x4000030,0x1d000000,0x2000000,0x0,0x0,0x3c00a500,0xef00ad00,0xff00b600,0xff00bf00,0xf900bd02,0xe300ac05,0xbd009605,0x9a007307,0x97006f05, | ||
2297 | 0x97006905,0x97006205,0x97005d05,0xcd00a000,0xed00a801,0xfe00a900,0xff00b500,0xfe00a600,0xb8009103,0xa000030,0x0,0x0,0x0,0x0, | ||
2298 | 0xa000013,0x1a000000,0xffffff,0xffffff,0x0,0x1000000,0x0,0x0,0x87009a00,0xfe00a200,0xff00a800,0xea009a04,0x8300490f,0x45000010, | ||
2299 | 0x32000000,0x2c000000,0x23000000,0x1a000000,0x19000000,0x19000000,0x19000000,0x19000000,0x26000000,0x2e000000,0xb0007200,0xfc009300,0xff009a00,0xe7008303, | ||
2300 | 0x32005011,0x0,0x0,0x0,0x0,0x1000000,0xffffff,0xffffff,0x0,0x0,0x0,0x57009100,0xff009800,0xf9009102, | ||
2301 | 0x85003b11,0x4300000e,0x2e000000,0x14000000,0x5000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2302 | 0x0,0x1f000000,0xbf006e00,0xff008700,0xea007504,0x1d000021,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0, | ||
2303 | 0x0,0xf6008f00,0xe7007e04,0x58000019,0x35000004,0x15000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2304 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6e005600,0xfe007d00,0xa6004c0b,0x8000018,0x0,0x0,0x0, | ||
2305 | 0xffffff,0xffffff,0x0,0x0,0x57008b00,0xf8008202,0x72001a16,0x2e000000,0x9000000,0x1000000,0x0,0x0,0x0,0x70bababa, | ||
2306 | 0x70bcbcbc,0x70bebebe,0x70c0c0c0,0x70c3c3c3,0x70c5c5c5,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb4006d00,0xea006904, | ||
2307 | 0x35000018,0x1000000,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x70008b00,0xa6005b09,0x3a000008,0x10000000,0x1fb4b4b4,0x9cababab, | ||
2308 | 0xe69f9f9f,0xfb959595,0xff8f8f8f,0xff959595,0xff9b9b9b,0xffa2a2a2,0xffa7a7a7,0xffacacac,0xffafafaf,0xffb1b1b1,0xfbb8b8b8,0xe6c0c0c0,0x9cc9c9c9,0x23b4b4ba, | ||
2309 | 0x0,0x0,0x0,0xe3006c01,0x4c000017,0x5000000,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x57007400,0x2b00001a, | ||
2310 | 0x547d7d7d,0xdb999999,0xff7d7d7d,0xff7f7f7f,0xff767676,0xff6e6e6e,0xff686868,0xff626262,0xff626262,0xff636363,0xff6a6a6a,0xff737373,0xff7b7b7b,0xff8a8a8a, | ||
2311 | 0xff9c9c9c,0xffababab,0xffb8b8b8,0xffbcbcbc,0xe0c1c1c3,0x45b5b5bb,0x0,0x70006e00,0x40000011,0x7000000,0x0,0x0,0xffffff,0xffffff, | ||
2312 | 0x0,0x0,0x0,0xc4969696,0xff747474,0xff797979,0xff6b6b6b,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff686868, | ||
2313 | 0xff707070,0xff797979,0xff818181,0xff8a8a8a,0xff929292,0xff9a9a9a,0xffa3a3a3,0xffb0b0b0,0xffbababa,0xffc0c0c0,0xcbbcbcbf,0xa000030,0x16000000,0x5000000, | ||
2314 | 0x0,0x0,0xffffff,0xffffff,0x0,0x0,0xdb8f8f8f,0xff737373,0xff6c6c6c,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262, | ||
2315 | 0xff626262,0xff626262,0xff666666,0xff6e6e6e,0xff777777,0xff7f7f7f,0xff888888,0xff909090,0xff989898,0xffa1a1a1,0xffa9a9a9,0xffb1b1b1,0xffb9b9b9,0xffbfbfbf, | ||
2316 | 0xffc1c1c1,0xe7bcbcbf,0x1000002a,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x9c9c9c9c,0xff6f6f6f,0xff696969,0xff626262,0xff626262, | ||
2317 | 0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff646464,0xff6c6c6c,0xff757575,0xff7d7d7d,0xff868686,0xff8e8e8e,0xff969696,0xff9f9f9f,0xffa7a7a7, | ||
2318 | 0xffb0b0b0,0xffb7b7b7,0xffbfbfbf,0xffc8c8c8,0xffcbcbcb,0xffc3c3c3,0xc1a0a0a7,0x700001b,0x0,0x0,0xffffff,0xffffff,0x0,0xf67b7b7b, | ||
2319 | 0xff717171,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff909090,0xffc0c0c0,0xffd7d7d7,0xffe7e7e7,0xffeeeeee,0xffdcdcdc, | ||
2320 | 0xffc7c7c7,0xffb4b4b4,0xffa5a5a5,0xffaeaeae,0xffb5b5b5,0xffbdbdbd,0xffc6c6c6,0xffcecece,0xffd6d6d6,0xffcacaca,0xf9c6c6c8,0x40000019,0x1000000,0x0, | ||
2321 | 0xffffff,0xffffff,0x0,0xff646464,0xff747474,0xff626262,0xff626262,0xff626262,0xff626262,0xff626262,0xff737373,0xffaaaaaa,0xffc1c1c1,0xffc6c6c6, | ||
2322 | 0xffbdbdbd,0xffb4b4b4,0xffaaaaaa,0xffb9b9b9,0xffd7d7d7,0xffcfcfcf,0xffbababa,0xffb5b5b5,0xffbbbbbb,0xffc4c4c4,0xffcccccc,0xffd4d4d4,0xffdcdcdc,0xffcccccc, | ||
2323 | 0xffcecece,0x5e00001c,0x7000000,0x0,0xffffff,0xffffff,0x0,0xff5f5f5f,0xff727272,0xff626262,0xff626262,0xff626262,0xff626262,0xff656565, | ||
2324 | 0xff929292,0xff787878,0xff868686,0xff919191,0xff8b8b8b,0xff808080,0xff787878,0xff787878,0xff7b7b7b,0xff9c9c9c,0xffa1a1a1,0xff989898,0xffbfbfbf,0xffcacaca, | ||
2325 | 0xffd2d2d2,0xffdadada,0xffe3e3e3,0xffd0d0d0,0xffc2c2c2,0x5f00001c,0xb000000,0x0,0xffffff,0xffffff,0x0,0xfe4d4d4d,0xff747474,0xff646464, | ||
2326 | 0xff626262,0xff626262,0xff626262,0xff686868,0xff656565,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff505050,0xff5d5d5d, | ||
2327 | 0xff6a6a6a,0xff656565,0xffb5b5b5,0xffd0d0d0,0xffd8d8d8,0xffe1e1e1,0xffe6e6e6,0xffcccccc,0xf9acacad,0x5a00001a,0xb000000,0x0,0xffffff,0xffffff, | ||
2328 | 0x0,0xdb3c3c3c,0xff686868,0xff757575,0xff626262,0xff626262,0xff626262,0xff616161,0xff505050,0xff373737,0xff353535,0xff353535,0xff353535,0xff353535, | ||
2329 | 0xff353535,0xff373737,0xff3e3e3e,0xff474747,0xff3d3d3d,0xff505050,0xffc0c0c0,0xffd6d6d6,0xffdfdfdf,0xffe5e5e5,0xffd4d4d4,0xffc2c2c2,0xd1606068,0x48000012, | ||
2330 | 0xa000000,0x0,0xffffff,0xffffff,0x0,0x1f424242,0xfc2a2a2a,0xff696969,0xff7a7a7a,0xff6b6b6b,0xff626262,0xff686868,0xff5c5c5c,0xff494949, | ||
2331 | 0xff3d3d3d,0xff353535,0xff353535,0xff353535,0xff353535,0xff3a3a3a,0xff393939,0xff3d3d3d,0xff4a4a4a,0xff9e9e9e,0xffd4d4d4,0xffdddddd,0xffe1e1e1,0xffd9d9d9, | ||
2332 | 0xffc5c5c5,0xf9767678,0x6100001d,0x27000000,0x5000000,0x0,0xffffff,0xffffff,0x0,0x0,0x5b3b3b3b,0xf8252525,0xff4c4c4c,0xff838383, | ||
2333 | 0xff7f7f7f,0xff787878,0xff7b7b7b,0xff737373,0xff606060,0xff4c4c4c,0xff474747,0xff474747,0xff474747,0xff474747,0xff4c4c4c,0xff727272,0xffacacac,0xffd6d6d6, | ||
2334 | 0xffe1e1e1,0xffe0e0e0,0xffd5d5d5,0xffa3a3a3,0xf66f6f72,0x731b1b31,0x35000004,0xc000000,0x0,0x0,0xffffff,0xffffff,0x0,0x0, | ||
2335 | 0x0,0x2e2f2f2f,0xcc343434,0xff242424,0xff535353,0xff818181,0xff959595,0xff999999,0xff9f9f9f,0xffa2a2a2,0xff989898,0xffa0a0a0,0xffa7a7a7,0xffaeaeae, | ||
2336 | 0xffc9c9c9,0xffdadada,0xffdcdcdc,0xffdcdcdc,0xffc1c1c1,0xff9a9a9a,0xfe727273,0xd158585f,0x53000017,0x34000004,0x10000000,0x1000000,0x0,0x0, | ||
2337 | 0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x6000000,0x40252525,0xbf3c3c3c,0xf9313131,0xff373737,0xff515151,0xff6b6b6b,0xff7f7f7f, | ||
2338 | 0xff939393,0xff989898,0xff9e9e9e,0xffa4a4a4,0xff949494,0xff929292,0xff828282,0xff6a6a6a,0xf6646466,0xc352525a,0x6a1f1f31,0x3b000008,0x27000000,0x8000000, | ||
2339 | 0x1000000,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x57262626, | ||
2340 | 0xff393939,0xff505050,0xff444444,0xff3e3e3e,0xff404040,0xff454545,0xff4d4d4d,0xff565656,0xff696969,0xff7e7e7e,0xff737373,0xf95f5f60,0x5f00001c,0x31000000, | ||
2341 | 0x24000000,0xe000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0x0,0x0, | ||
2342 | 0x0,0x0,0x0,0x0,0xa13d3d3d,0xfe444444,0xff4b4b4b,0xff464646,0xff434343,0xff444444,0xff535353,0xff646464,0xff737373,0xff6e6e6e, | ||
2343 | 0xf9646466,0x99373745,0x3a000008,0xb000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0xffffff, | ||
2344 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3a272727,0xbf474747,0xeb515151,0xf6535356,0xff5e5e5e, | ||
2345 | 0xfe626262,0xf6616163,0xea5f5f63,0xb04f4f56,0x4d000015,0x35000004,0x19000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2346 | 0x0,0x0 | ||
2347 | }; | ||
2348 | |||
2349 | static const QRgb Spreadsheet_data[] = { | ||
2350 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5, | ||
2351 | 0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xffc4d0e5,0xde9daac1,0x0,0x0,0x0,0x0,0x0, | ||
2352 | 0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffbffff,0xffffffff, | ||
2353 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff5faff,0xffedf3fe,0xffe4ebf9,0xffd8e1f2,0xffc2d0e9,0xe0a7b2c4, | ||
2354 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2355 | 0x0,0xffc4d0e5,0xfffcffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8fdff,0xfff2f7ff,0xffeaf1fd, | ||
2356 | 0xffe1e9f7,0xffd5dff0,0xffbfcce3,0xffebf4ff,0xe6a2aec1,0x0,0x0,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0, | ||
2357 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffe5e5e5,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, | ||
2358 | 0xffdcdcdc,0xffd8dcdc,0xffc6cace,0xffedf4fe,0xffe6edfa,0xffd9e2f2,0xffc2cee5,0xfff0f6ff,0xffdce7f9,0xe3a1adc3,0x0,0x0,0x0,0x0, | ||
2359 | 0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff, | ||
2360 | 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xffc4c7ca,0xfff1f7ff,0xffe9effc,0xffdce5f4,0xffc4d0e6,0xffffffff,0xffe8eefb,0xffdbe5f9, | ||
2361 | 0xe8a4afc5,0x0,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, | ||
2362 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffc5c9ca,0xfff3f9ff,0xffebf1fd,0xffdfe7f6, | ||
2363 | 0xffc6d1e5,0xffffffff,0xfffdffff,0xffecf2fd,0xffdee9fb,0xe3a4b0c4,0x0,0x0,0x0,0xffffff,0x0,0x0,0x0,0x0, | ||
2364 | 0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, | ||
2365 | 0xffc7caca,0xfff5f9ff,0xffedf3fe,0xffe3ebf9,0xffbecbe1,0xfff3f5fb,0xffecf2f9,0xffe4ebf7,0xffd8e1f0,0xffd0dcf1,0xe99eabc1,0x0,0x0,0xffffff, | ||
2366 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc, | ||
2367 | 0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffdcdcdc,0xffbfc1c1,0xffc3c6ca,0xffbec2ca,0xffb7bdc7,0xff9ea8b7,0xff78869c,0xff78869c,0xff78869c,0xff78869c,0xff808fa6, | ||
2368 | 0xff98a9c5,0xff98a9c5,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc, | ||
2369 | 0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc3c8cc,0xffccd4e0,0xffc6d0e0,0xffc1cbdf,0xffbcc8dc,0xffb9c5d9, | ||
2370 | 0xffb1bdd4,0xff9faec8,0xff96a5c2,0xff93a0b7,0xffaebedb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2371 | 0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffccd5e0, | ||
2372 | 0xffc7d2e0,0xffc2cddf,0xffbcc8dc,0xffb7c3d8,0xffa8b4ce,0xff9caac7,0xff99a9c5,0xff97a3b9,0xffb5c5e0,0xff8495b1,0x33000000,0xffffff,0x0,0x0, | ||
2373 | 0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0,0xffd1d7e0, | ||
2374 | 0xffd1d7e0,0xffd1d7e0,0xffc5c8cc,0xffcdd7e0,0xffc7d2e0,0xffc4cfe0,0xffbec9dd,0xffafbcd2,0xffa3b2cc,0xffa2b0ca,0xff9fafc9,0xff9da8bd,0xffbdcbe5,0xff8495b1, | ||
2375 | 0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xfffcffff,0xffdcdcdc,0xffc5c8cc,0xffc5c8cc, | ||
2376 | 0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffc5c8cc,0xffbfc0c2,0xffc3c8cc,0xffbdc4cc,0xffb4bcca,0xffa8b1c2,0xffa1abbe,0xff9ea9bb,0xff9ba6bb, | ||
2377 | 0xff9aa4b9,0xff9fa9bb,0xffc3d0e8,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5, | ||
2378 | 0xfffcffff,0xffdcdcdc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffdadcdc,0xfff5faff,0xffeaf0fd,0xffdce5f5, | ||
2379 | 0xffd6e0f1,0xffd3ddee,0xffd0dbed,0xffced9ec,0xffccd7ea,0xffafb9ca,0xffc8d5ec,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0, | ||
2380 | 0x0,0x506ab5e6,0x8f52b2ec,0xff66baec,0xff60c5f8,0xff1bb1f9,0xff3abdf9,0xff54cafb,0xff50ceff,0xff7fdeff,0xffcff3ff,0xffffffff,0xffffffff,0xfffcffff, | ||
2381 | 0xffd1d6dc,0xffe9effc,0xffdfe8f6,0xffdbe4f3,0xffdae3f3,0xffd7e0f1,0xffd5dff0,0xffd2dcef,0xffd0dbed,0xffb3bdcc,0xffcedaf0,0xff8495b1,0x33000000,0xffffff, | ||
2382 | 0x0,0x0,0x106ab0e6,0x806ab2e6,0xef40aaf0,0xff21a7f7,0xff00a4ff,0xff00a8ff,0xff00acff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff, | ||
2383 | 0xff00c2ff,0xff30d1ff,0xffbceffc,0xfff4f9ff,0xffc9cfd9,0xffe4ecf9,0xffe1e9f7,0xffdfe7f6,0xffdde5f4,0xffdbe4f3,0xffd9e2f3,0xffd7e1f2,0xffd4def0,0xffb7bece, | ||
2384 | 0xffd2def2,0xff8495b1,0x33000000,0xffffff,0x0,0x306aafe6,0xdf53aceb,0xff14a0fa,0xff009fff,0xff00a3ff,0xff00a7ff,0xff00aaff,0xff00aeff,0xff00b2ff, | ||
2385 | 0xff00b6ff,0xff00b9ff,0xff00bdff,0xff00c1ff,0xff00c5ff,0xff00c8ff,0xff14ccfa,0xff74d0e7,0xffb2bec9,0xffc6ccd7,0xffc5ccd7,0xffc3cad6,0xffc2c9d5,0xffbfc6d3, | ||
2386 | 0xffbec5d2,0xffbdc4d1,0xffbac2d0,0xffb2bac7,0xffd5e0f4,0xff8495b1,0x33000000,0xffffff,0x3047a6ee,0xef55abeb,0xff079bfd,0xff009eff,0xff00a1ff,0xff00a5ff, | ||
2387 | 0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bcff,0xff00c0ff,0xff00c3ff,0xff00c7ff,0xff00cbff,0xff00cfff,0xff07d2fd,0xff7cd2e5,0xffeaf1fc, | ||
2388 | 0xffe7eefb,0xffe4ecf9,0xffe2eaf8,0xffe1e9f8,0xffdee6f5,0xffdde6f4,0xffdce5f4,0xffbcc4d1,0xffd9e3f6,0xff8495b1,0x33000000,0xffffff,0xbf6aafe6,0xff0d9cfc, | ||
2389 | 0xff009cff,0xff00a0ff,0xff00a4ff,0xff00a8ff,0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00bbff,0xff00beff,0xff00c2ff,0xff00c6ff,0xff00caff,0xff00cdff, | ||
2390 | 0xff00d1ff,0xff00d5ff,0xff28d7f6,0xffbbe7f4,0xffe9f0fc,0xffe7eefb,0xffe4ebf9,0xffe4ebf8,0xffe2eaf8,0xffdfe7f7,0xffdee6f5,0xffbec6d2,0xffdbe5f7,0xff8495b1, | ||
2391 | 0x33000000,0xffffff,0xff42a7ef,0xff009bff,0xff009fff,0xff00a3ff,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b2ff,0xff00b5ff,0xff00b9ff,0xff00bdff,0xff00c1ff, | ||
2392 | 0xff00c4ff,0xff00c8ff,0xff00ccff,0xff00d0ff,0xff00d4ff,0xff00d7ff,0xff00dbff,0xff93dfec,0xffebf1fd,0xffe8effc,0xffe7eefb,0xffe5ecf9,0xffe3ebf9,0xffe2eaf8, | ||
2393 | 0xffe0e7f6,0xffc0c7d4,0xffdce6f8,0xff8495b1,0x33000000,0xffffff,0xff3ca7f1,0xff009dff,0xff00a1ff,0xff00a5ff,0xff00a9ff,0xff00adff,0xff00b0ff,0xff00b4ff, | ||
2394 | 0xff00b8ff,0xff00d0af,0xff9f7751,0xffbf5d53,0xffbf5951,0xffbf554f,0xffbf524d,0xffbf4e4b,0xffbf4b49,0xffbf4747,0xffbf4345,0xffd19596,0xffcad1db,0xffcacfd9, | ||
2395 | 0xffc8ced8,0xffc6ccd8,0xffc4cbd6,0xffc3c9d5,0xffc1c8d5,0xffb9c0cb,0xffdee8fa,0xff8495b1,0x33000000,0xffffff,0xff5ab0e8,0xff00a0ff,0xff00a4ff,0xff00a8ff, | ||
2396 | 0xff00abff,0xff00afff,0xff00b3ff,0xff00b7ff,0xff00baff,0xff00ee40,0xff40d208,0xffff4d21,0xffff471f,0xffff411c,0xffff3b19,0xffff3517,0xffff2e14,0xffff2812, | ||
2397 | 0xfffd3523,0xffde8179,0xffc4cee0,0xffc1cbdf,0xffbfc9de,0xffbdc8dc,0xffbbc7db,0xffbbc6db,0xffb8c4d9,0xffb6becd,0xffdfe9fa,0xff8495b1,0x33000000,0xffffff, | ||
2398 | 0xff53acd7,0xff2eabf4,0xff00a6ff,0xff00aaff,0xff00aeff,0xff00b1ff,0xff00b5ff,0xff00b9ff,0xff00c5df,0xff00fe00,0xff00fe00,0xffbf871f,0xffff5c28,0xffff5625, | ||
2399 | 0xffff4f22,0xffff4920,0xffff431d,0xfffe411f,0xfff86a53,0xffb77064,0xffc3cddf,0xffc1ccdf,0xffbfcade,0xffbec9dc,0xffbdc8dc,0xffbbc6da,0xffbac5da,0xffb7bfce, | ||
2400 | 0xffdfe9fa,0xff8495b1,0x33000000,0xffffff,0xcc3495b9,0xff53b0e2,0xff28aff6,0xff00acff,0xff00b0ff,0xff00b4ff,0xff00b8ff,0xff00bbff,0xff00d790,0xff00f802, | ||
2401 | 0xff00f702,0xff20e308,0xffff7031,0xffff6a2e,0xffff642b,0xffff5e29,0xfffe5b2b,0xfff87f5f,0xffbb5c45,0xffa38486,0xffc4cfe0,0xffc2ccdf,0xffbfcade,0xffbec9de, | ||
2402 | 0xffbdc8dc,0xffbbc7db,0xffb9c5d9,0xffb8c0ce,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x5c236a91,0xff3097b8,0xff4faad0,0xff35b6f3,0xff00b3ff,0xff00b6ff, | ||
2403 | 0xff00baff,0xff00beff,0xff00d137,0xff00d50a,0xff00d30a,0xff00d10a,0xff80a722,0xffff7f37,0xffff7934,0xfffc814a,0xfff1906b,0xffb15b41,0xff8b4d40,0xff9eabb9, | ||
2404 | 0xffb8bfcc,0xffb6becb,0xffb4bcca,0xffb3bac8,0xffb2bac8,0xffafb7c7,0xffaeb7c6,0xffb6bdc9,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0xd000030,0x891f6788, | ||
2405 | 0xff288fae,0xff2e93b1,0xff41aad1,0xff2ab9f0,0xff0dbefc,0xff00bde2,0xff00b112,0xff00af12,0xff00ad13,0xff07ad18,0xff31ae2f,0xfff1a160,0xffed9a6a,0xffc77453, | ||
2406 | 0xff95452f,0xff8f5548,0xffa298a0,0xffedf3fd,0xffeff5ff,0xffebf2fd,0xffeaf1fd,0xffe7eefa,0xffe6edfa,0xffe3eaf8,0xffe2eaf8,0xffc3cad6,0xffdfe9fa,0xff8495b1, | ||
2407 | 0x33000000,0xffffff,0x0,0x16000029,0x6a103f5f,0xd61e7a96,0xff1d85a0,0xff1a829c,0xff208ca8,0xff279797,0xff3c9d40,0xff429c48,0xff489b51,0xff41974f, | ||
2408 | 0xff2f8d48,0xff8a623e,0xff97432d,0xff893d29,0xff9e7773,0xffc4c3d0,0xffc8cdd5,0xfff0f6ff,0xffedf3fe,0xffebf2fd,0xffe9f0fc,0xffe7eefa,0xffe6edfa,0xffe3ebf8, | ||
2409 | 0xffe2eaf8,0xffc2c9d5,0xffe0e9fb,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0xe000022,0x35000022,0x740b3551,0xb812627c,0xe1117189,0xff1d807b, | ||
2410 | 0xff3d9540,0xff2f8e3c,0xff218739,0xff147f36,0xff0b7a34,0xff866e58,0xffab8c8a,0xffb2b8c4,0xffd5dae5,0xffeff5fd,0xffd0d5dc,0xfff0f6ff,0xffedf3fe,0xffeaf1fd, | ||
2411 | 0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x2000000, | ||
2412 | 0x1200001b,0x2d00001f,0x4200001c,0xff9da6c1,0xffafc1ba,0xff94ac9f,0xff8ba599,0xff8ea6a1,0xffaeb2bc,0xffb6bac2,0xffc3c6cd,0xffcdd1d8,0xffd2d6dc,0xffd0d6dc, | ||
2413 | 0xffc7ccd3,0xffcfd4dc,0xffccd1db,0xffcad0da,0xffc9cfd9,0xffc6ccd7,0xffc4cbd6,0xffc3cad6,0xffc3cad6,0xffc2c8d5,0xffe0eafc,0xff8495b1,0x33000000,0xffffff, | ||
2414 | 0x0,0x0,0x0,0x0,0x0,0x2000000,0x6000000,0xffc4d0e5,0xfff4fdff,0xffffffff,0xffffffff,0xfff9feff,0xfff9feff,0xfff8fdff, | ||
2415 | 0xfff7fcff,0xfff4f9ff,0xfff4f9ff,0xfff2f8ff,0xfff1f7ff,0xfff0f6ff,0xffedf3fe,0xffeaf1fd,0xffe9f0fc,0xffe6edfa,0xffe4ecf9,0xffe2eaf8,0xffe2eaf8,0xffe1e8f7, | ||
2416 | 0xffe0eafc,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc4d0e5,0xff8495b1,0xff8495b1, | ||
2417 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1, | ||
2418 | 0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0xff8495b1,0x33000000,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0, | ||
2419 | 0x0,0x0,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000, | ||
2420 | 0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0x33000000,0xffffff,0xffffff,0xffffff, | ||
2421 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
2422 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | ||
2423 | 0xffffff,0xffffff | ||
2424 | }; | ||
2425 | |||
2525 | static const QRgb start_data[] = { | 2426 | static const QRgb start_data[] = { |
2526 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2427 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2527 | 0x0,0x0,0x3f8fbff,0x11eff7ff,0x2ae0efff,0x3ad3e9ff,0x33c4e1ff,0x26c4e1ff,0x23e8f3fe,0x35d8ebff,0x37c9e4ff,0x28b1d8ff,0xb9bcbfc,0x0, | 2428 | 0x0,0x0,0x3f8fbff,0x11eff7ff,0x2ae0efff,0x3ad3e9ff,0x33c4e1ff,0x26c4e1ff,0x23e8f3fe,0x35d8ebff,0x37c9e4ff,0x28b1d8ff,0xb9bcbfc,0x0, |
2528 | 0x0,0x3fafdff,0x1be9f4ff,0x59d6eaff,0x9ecde6ff,0xbac6e3ff,0xb6badcff,0x9baed6ff,0x7ec5e1fd,0xb2c7e3ff,0xb9bedeff,0xacabd4ff,0x498fc2f6,0x0, | 2429 | 0x0,0x3fafdff,0x1be9f4ff,0x59d6eaff,0x9ecde6ff,0xbac6e3ff,0xb6badcff,0x9baed6ff,0x7ec5e1fd,0xb2c7e3ff,0xb9bedeff,0xacabd4ff,0x498fc2f6,0x0, |
2529 | 0x0,0x14f5f9ff,0x54dcedff,0xb9d0e7ff,0xf6ddeeff,0xffe8f4ff,0xffd7eaff,0xebacd4fb,0xe7c9e3fe,0xffe3f1ff,0xffe0efff,0xf6b7d9fc,0x7386b4e4,0x0, | 2430 | 0x0,0x14f5f9ff,0x54dcedff,0xb9d0e7ff,0xf6ddeeff,0xffe8f4ff,0xffd7eaff,0xebacd4fb,0xe7c9e3fe,0xffe3f1ff,0xffe0efff,0xf6b7d9fc,0x7386b4e4,0x0, |
2530 | 0x0,0x43e9f4ff,0xa4d3e9ff,0xebe0effe,0xfff5fafe,0xffeff7fe,0xecb9d7f6,0xeab8d7f7,0xffe9f3fe,0xfff6fafe,0xf6d4e7fa,0xbb97bee5,0x415e84aa,0x0, | 2431 | 0x0,0x43e9f4ff,0xa4d3e9ff,0xebe0effe,0xfff5fafe,0xffeff7fe,0xecb9d7f6,0xeab8d7f7,0xffe9f3fe,0xfff6fafe,0xf6d4e7fa,0xbb97bee5,0x415e84aa,0x0, |
2531 | 0x0,0x9bc8e3ff,0xe8d6e9fd,0xfdf0f6fb,0xffecf4fc,0xebb8d5f3,0xe498c3f0,0xfae2eef9,0xfff3f7fb,0xf7d7e8f8,0xc198bce2,0x5c5b83ab,0x14273c51,0x0, | 2432 | 0x0,0x9bc8e3ff,0xe8d6e9fd,0xfdf0f6fb,0xffecf4fc,0xebb8d5f3,0xe498c3f0,0xfae2eef9,0xfff3f7fb,0xf7d7e8f8,0xc198bce2,0x5c5b83ab,0x14273c51,0x0, |
2532 | 0x0,0xeebbdbfb,0xfee7f0f7,0xffe8f0f7,0xffb7d8fa,0xf783bef9,0xfac3ddf6,0xffedf3f7,0xffd6e8f8,0xe195c4f2,0x75588ec4,0x1d294562,0x4090f15,0x0, | 2433 | 0x0,0xeebbdbfb,0xfee7f0f7,0xffe8f0f7,0xffb7d8fa,0xf783bef9,0xfac3ddf6,0xffedf3f7,0xffd6e8f8,0xe195c4f2,0x75588ec4,0x1d294562,0x4090f15,0x0, |
2533 | 0x0,0xe592c7fa,0xfdcee2f2,0xffdde8f0,0xffb3d5f4,0xff75b9fb,0xfda9d1f6,0xffdfe9f0,0xffd0e3f1,0xe693c5f4,0x7b5ca5ed,0x184591dd,0x13785d2,0x0, | 2434 | 0x0,0xe592c7fa,0xfdcee2f2,0xffdde8f0,0xffb3d5f4,0xff75b9fb,0xfda9d1f6,0xffdfe9f0,0xffd0e3f1,0xe693c5f4,0x7b5ca5ed,0x184591dd,0x13785d2,0x0, |
2534 | 0x0,0x6c6fb5fa,0xd789c1f5,0xfbc1d9ed,0xffd0e0eb,0xff9ecaf2,0xea6db2f7,0xf8accff0,0xffd1e0eb,0xffbcd7ee,0xd083bcf2,0x5757a5f1,0xb3e93e7,0x0, | 2435 | 0x0,0x6c6fb5fa,0xd789c1f5,0xfbc1d9ed,0xffd0e0eb,0xff9ecaf2,0xea6db2f7,0xf8accff0,0xffd1e0eb,0xffbcd7ee,0xd083bcf2,0x5757a5f1,0xb3e93e7,0x0, |
2535 | 0x0,0x1675b8f9,0x6e5dabf6,0xd289bff0,0xfabbd5e9,0xffc5dae7,0xea93c2eb,0xdd67adf1,0xf5a6cbeb,0xffc7dae7,0xf5afcfe9,0xb476b3ee,0x394899e9,0x0, | 2436 | 0x0,0x1675b8f9,0x6e5dabf6,0xd289bff0,0xfabbd5e9,0xffc5dae7,0xea93c2eb,0xdd67adf1,0xf5a6cbeb,0xffc7dae7,0xf5afcfe9,0xb476b3ee,0x394899e9,0x0, |
2536 | 0x0,0x4bcdaf7,0x1c51a3f2,0x725aa7f1,0xd57db8ef,0xfb90c1ed,0xff86bdef,0xc04d9ce9,0xb565a8e8,0xf38abeed,0xff8dc0ee,0xe46baeee,0x623f8dd9,0x0, | 2437 | 0x0,0x4bcdaf7,0x1c51a3f2,0x725aa7f1,0xd57db8ef,0xfb90c1ed,0xff86bdef,0xc04d9ce9,0xb565a8e8,0xf38abeed,0xff8dc0ee,0xe46baeee,0x623f8dd9,0x0, |
2537 | 0x0,0x1fbfbfb,0x475b3f0,0x1c3995ee,0x564399ed,0x7b4798e6,0x834694e0,0x57317bc4,0x423480cb,0x714597e8,0x824696e3,0x733d8ad5,0x2f27639f,0x0, | 2438 | 0x0,0x1fbfbfb,0x475b3f0,0x1c3995ee,0x564399ed,0x7b4798e6,0x834694e0,0x57317bc4,0x423480cb,0x714597e8,0x824696e3,0x733d8ad5,0x2f27639f,0x0, |
2538 | 0x0,0x0,0x0,0x22787e6,0x72079d2,0xc1c6bb9,0xe195fa5,0xa124274,0x616528e,0xa1e6ebf,0xe1a63ac,0xd165390,0x60a2641,0x0, | 2439 | 0x0,0x0,0x0,0x22787e6,0x72079d2,0xc1c6bb9,0xe195fa5,0xa124274,0x616528e,0xa1e6ebf,0xe1a63ac,0xd165390,0x60a2641,0x0, |
2539 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 2440 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2540 | }; | 2441 | }; |
2541 | 2442 | ||
2542 | static const QRgb stop_data[] = { | 2443 | static const QRgb stop_data[] = { |
2543 | 0x7000000,0xf000000,0x18000000,0x25000000,0x2e000000,0x36000000,0x3b000000,0x3d000000,0x3b000000,0x36000000,0x2e000000,0x25000000,0x18000000,0xf000000, | 2444 | 0x7000000,0xf000000,0x18000000,0x25000000,0x2e000000,0x36000000,0x3b000000,0x3d000000,0x3b000000,0x36000000,0x2e000000,0x25000000,0x18000000,0xf000000, |
2544 | 0xf000000,0x2e000000,0x5f000000,0x7f000000,0x8d000000,0x98000000,0x9e000000,0xa2000000,0x9e000000,0x98000000,0x81000000,0x57000000,0x31000000,0x1d000000, | 2445 | 0xf000000,0x2e000000,0x5f000000,0x7f000000,0x8d000000,0x98000000,0x9e000000,0xa2000000,0x9e000000,0x98000000,0x81000000,0x57000000,0x31000000,0x1d000000, |
2545 | 0x18000000,0x5f000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x98000000,0x52000000,0x31000000, | 2446 | 0x18000000,0x5f000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x98000000,0x52000000,0x31000000, |
2546 | 0x25000000,0x7f000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xcd000000,0x7a000000,0x49000000, | 2447 | 0x25000000,0x7f000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xcd000000,0x7a000000,0x49000000, |
2547 | 0x2e000000,0x8d000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xf0000000,0x9b000000,0x5d000000, | 2448 | 0x2e000000,0x8d000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xf0000000,0x9b000000,0x5d000000, |
2548 | 0x36000000,0x98000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xb4000000,0x6c000000, | 2449 | 0x36000000,0x98000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xb4000000,0x6c000000, |
2549 | 0x3b000000,0x9e000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xc4000000,0x75000000, | 2450 | 0x3b000000,0x9e000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xc4000000,0x75000000, |
2550 | 0x3d000000,0xa2000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xcc000000,0x7a000000, | 2451 | 0x3d000000,0xa2000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xcc000000,0x7a000000, |
2551 | 0x3b000000,0x9e000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xc4000000,0x75000000, | 2452 | 0x3b000000,0x9e000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xc4000000,0x75000000, |
2552 | 0x36000000,0x98000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xb4000000,0x6c000000, | 2453 | 0x36000000,0x98000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xb4000000,0x6c000000, |
2553 | 0x2e000000,0x81000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xee000000,0x9b000000,0x5d000000, | 2454 | 0x2e000000,0x81000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xee000000,0x9b000000,0x5d000000, |
2554 | 0x25000000,0x57000000,0x98000000,0xcd000000,0xef000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xed000000,0xbd000000,0x7a000000,0x49000000, | 2455 | 0x25000000,0x57000000,0x98000000,0xcd000000,0xef000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xed000000,0xbd000000,0x7a000000,0x49000000, |
2555 | 0x18000000,0x31000000,0x52000000,0x7a000000,0x9b000000,0xb3000000,0xc4000000,0xcc000000,0xc4000000,0xb3000000,0x9b000000,0x7a000000,0x52000000,0x31000000, | 2456 | 0x18000000,0x31000000,0x52000000,0x7a000000,0x9b000000,0xb3000000,0xc4000000,0xcc000000,0xc4000000,0xb3000000,0x9b000000,0x7a000000,0x52000000,0x31000000, |
2556 | 0xf000000,0x1d000000,0x31000000,0x49000000,0x5d000000,0x6c000000,0x75000000,0x7a000000,0x75000000,0x6c000000,0x5d000000,0x49000000,0x31000000,0x1d000000 | 2457 | 0xf000000,0x1d000000,0x31000000,0x49000000,0x5d000000,0x6c000000,0x75000000,0x7a000000,0x75000000,0x6c000000,0x5d000000,0x49000000,0x31000000,0x1d000000 |
2557 | }; | 2458 | }; |
2558 | 2459 | ||
2559 | static const QRgb style_data[] = { | 2460 | static const QRgb style_data[] = { |
2560 | 0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20c0c0c0, | 2461 | 0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20c0c0c0, |
2561 | 0xff000000,0xff0e0e0e,0xe7262626,0xbf000000,0xbf000000,0xef000000,0xff000000,0xff070707,0xef2c2c2c,0xbf000000,0xbf000000,0xe7000000,0xff000000,0xffc1c1c1, | 2462 | 0xff000000,0xff0e0e0e,0xe7262626,0xbf000000,0xbf000000,0xef000000,0xff000000,0xff070707,0xef2c2c2c,0xbf000000,0xbf000000,0xe7000000,0xff000000,0xffc1c1c1, |
2562 | 0xff0a0a0a,0xe76a6a6a,0x64dcdcdc,0x0,0x0,0xbf000000,0xff000000,0xff1c1c1c,0xbfdcdcdc,0x0,0x0,0x64000000,0xe7000000,0xffc1c1c1, | 2463 | 0xff0a0a0a,0xe76a6a6a,0x64dcdcdc,0x0,0x0,0xbf000000,0xff000000,0xff1c1c1c,0xbfdcdcdc,0x0,0x0,0x64000000,0xe7000000,0xffc1c1c1, |
2563 | 0xff1c1c1c,0xbfdcdcdc,0x0,0x0,0x0,0xbf000000,0xff000000,0xff1c1c1c,0xbfdcdcdc,0x0,0x0,0x0,0xbf000000,0xffc1c1c1, | 2464 | 0xff1c1c1c,0xbfdcdcdc,0x0,0x0,0x0,0xbf000000,0xff000000,0xff1c1c1c,0xbfdcdcdc,0x0,0x0,0x0,0xbf000000,0xffc1c1c1, |
2564 | 0x601c1c1c,0x48dcdcdc,0x0,0x0,0x64000000,0xe7000000,0xff000000,0xeb8e8e8e,0x48dcdcdc,0x0,0x0,0x0,0x48000000,0x60c0c0c0, | 2465 | 0x601c1c1c,0x48dcdcdc,0x0,0x0,0x64000000,0xe7000000,0xff000000,0xeb8e8e8e,0x48dcdcdc,0x0,0x0,0x0,0x48000000,0x60c0c0c0, |
2565 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0xff000000,0xdfdcdcdc,0x0,0x0,0x0,0x0,0x0,0x0, | 2466 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0xff000000,0xdfdcdcdc,0x0,0x0,0x0,0x0,0x0,0x0, |
2566 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0xff000000,0xdfdcdcdc,0x0,0x0,0x0,0x0,0x0,0x0, | 2467 | 0x0,0x0,0x0,0x0,0x9f000000,0xff000000,0xff000000,0xdfdcdcdc,0x0,0x0,0x0,0x0,0x0,0x0, |
2567 | 0x0,0x0,0x0,0x10000000,0xab000000,0xff000000,0xff181818,0xc3dcdcdc,0x0,0x0,0x0,0x0,0x0,0x0, | 2468 | 0x0,0x0,0x0,0x10000000,0xab000000,0xff000000,0xff181818,0xc3dcdcdc,0x0,0x0,0x0,0x0,0x0,0x0, |
2568 | 0x0,0x0,0x0,0x7f000000,0xff000000,0xff000000,0xffc1c1c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2469 | 0x0,0x0,0x0,0x7f000000,0xff000000,0xff000000,0xffc1c1c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2569 | 0x0,0x0,0x0,0x7f000000,0xff000000,0xff000000,0xffc1c1c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2470 | 0x0,0x0,0x0,0x7f000000,0xff000000,0xff000000,0xffc1c1c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2570 | 0x0,0x0,0x0,0x7f000000,0xff000000,0xff000000,0xffc1c1c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2471 | 0x0,0x0,0x0,0x7f000000,0xff000000,0xff000000,0xffc1c1c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2571 | 0x0,0x0,0x3c000000,0xcf000000,0xff000000,0xff676767,0x74c5c5c5,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2472 | 0x0,0x0,0x3c000000,0xcf000000,0xff000000,0xff676767,0x74c5c5c5,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2572 | 0x0,0x0,0x60000000,0xff000000,0xff000000,0xffa5a5a5,0x20dcdcdc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2473 | 0x0,0x0,0x60000000,0xff000000,0xff000000,0xffa5a5a5,0x20dcdcdc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2573 | 0x1c000000,0xdf000000,0xeb000000,0xff000000,0xff000000,0xff151515,0xe3040404,0xc3dcdcdc,0x0,0x0,0x0,0x0,0x0,0x0 | 2474 | 0x1c000000,0xdf000000,0xeb000000,0xff000000,0xff000000,0xff151515,0xe3040404,0xc3dcdcdc,0x0,0x0,0x0,0x0,0x0,0x0 |
2574 | }; | 2475 | }; |
2575 | 2476 | ||
2576 | static const QRgb suspend_data[] = { | 2477 | static const QRgb suspend_data[] = { |
2577 | 0x1a056999,0x9a0d6d9c,0xff1d77a3,0xff2981aa,0xff267fa9,0xff247ea8,0xff227ea7,0xff1f7ba8,0xff1e7ba6,0xff1d7ba5,0xff1e7ba5,0xff17729f,0x9a096b9b,0x1a016a9b, | 2478 | 0x1a056999,0x9a0d6d9c,0xff1d77a3,0xff2981aa,0xff267fa9,0xff247ea8,0xff227ea7,0xff1f7ba8,0xff1e7ba6,0xff1d7ba5,0xff1e7ba5,0xff17729f,0x9a096b9b,0x1a016a9b, |
2578 | 0x9a0d6d9c,0xff4e95b9,0xff549fc3,0xff1e8bb7,0xff228db9,0xff2491bc,0xff3c96c1,0xff4d99c1,0xff4e94be,0xff5495bd,0xff5e97c0,0xff76a0c4,0xff3e87b0,0x9a086b9c, | 2479 | 0x9a0d6d9c,0xff4e95b9,0xff549fc3,0xff1e8bb7,0xff228db9,0xff2491bc,0xff3c96c1,0xff4d99c1,0xff4e94be,0xff5495bd,0xff5e97c0,0xff76a0c4,0xff3e87b0,0x9a086b9c, |
2579 | 0xff1d77a3,0xff59a0c4,0xff0074a9,0xff007bae,0xff1a8bb9,0xff63b0d0,0xff93c6de,0xff9bc7de,0xff79b0cf,0xff4d92bb,0xff4d8fb9,0xff5691bb,0xff76a0c4,0xff12709f, | 2480 | 0xff1d77a3,0xff59a0c4,0xff0074a9,0xff007bae,0xff1a8bb9,0xff63b0d0,0xff93c6de,0xff9bc7de,0xff79b0cf,0xff4d92bb,0xff4d8fb9,0xff5691bb,0xff76a0c4,0xff12709f, |
2580 | 0xff2981ab,0xff258eb9,0xff007bae,0xff0b84b5,0xff7bbdd9,0xffe6f5fa,0xffc5deec,0xffcadfed,0xffedf4f8,0xff95bcd6,0xff5b95bd,0xff6196bc,0xff759ec3,0xff1275a3, | 2481 | 0xff2981ab,0xff258eb9,0xff007bae,0xff0b84b5,0xff7bbdd9,0xffe6f5fa,0xffc5deec,0xffcadfed,0xffedf4f8,0xff95bcd6,0xff5b95bd,0xff6196bc,0xff759ec3,0xff1275a3, |
2581 | 0xff267fa9,0xff228db9,0xff037db0,0xff3d9cc5,0xffcbe4f0,0xffa9cfe2,0xff5e9fc4,0xff6ba4c7,0xffcbdfed,0xffd1e2ed,0xff74a5c6,0xff6a9abf,0xff79a0c3,0xff1072a2, | 2482 | 0xff267fa9,0xff228db9,0xff037db0,0xff3d9cc5,0xffcbe4f0,0xffa9cfe2,0xff5e9fc4,0xff6ba4c7,0xffcbdfed,0xffd1e2ed,0xff74a5c6,0xff6a9abf,0xff79a0c3,0xff1072a2, |
2582 | 0xff247ea8,0xff1e8dba,0xff0c7fb1,0xff499bc3,0xffa2cde4,0xff63a1c6,0xff478eb8,0xff5291bb,0xff80adce,0xffb7d3e6,0xff80abca,0xff729cbf,0xff7ca2c4,0xff1072a1, | 2483 | 0xff247ea8,0xff1e8dba,0xff0c7fb1,0xff499bc3,0xffa2cde4,0xff63a1c6,0xff478eb8,0xff5291bb,0xff80adce,0xffb7d3e6,0xff80abca,0xff729cbf,0xff7ca2c4,0xff1072a1, |
2583 | 0xff227ea7,0xff2d8dbb,0xff2385b5,0xff90c1d9,0xfff0f7fb,0xffeaf3f7,0xffe8f1f6,0xffe9f1f7,0xffedf4f8,0xffeff7fb,0xffaac7dc,0xff7aa0c2,0xff7fa5c6,0xff1071a1, | 2484 | 0xff227ea7,0xff2d8dbb,0xff2385b5,0xff90c1d9,0xfff0f7fb,0xffeaf3f7,0xffe8f1f6,0xffe9f1f7,0xffedf4f8,0xffeff7fb,0xffaac7dc,0xff7aa0c2,0xff7fa5c6,0xff1071a1, |
2584 | 0xff1f7ba8,0xff3f90bb,0xff4293bd,0xffb7d6e7,0xffd8eaf5,0xffafd0e6,0xffadcde3,0xffb2d0e5,0xffc2daeb,0xfff1f9fe,0xffbdd0e2,0xff82a6c6,0xff85abc9,0xff116f9f, | 2485 | 0xff1f7ba8,0xff3f90bb,0xff4293bd,0xffb7d6e7,0xffd8eaf5,0xffafd0e6,0xffadcde3,0xffb2d0e5,0xffc2daeb,0xfff1f9fe,0xffbdd0e2,0xff82a6c6,0xff85abc9,0xff116f9f, |
2585 | 0xff1e7ba6,0xff4c92bd,0xff4d96be,0xffbcd7e7,0xffb2cfe3,0xff659bc1,0xff6096bc,0xff689abe,0xff85abcb,0xffdce8f3,0xffc0d3e3,0xff8bacc9,0xff84aecc,0xff106d9f, | 2486 | 0xff1e7ba6,0xff4c92bd,0xff4d96be,0xffbcd7e7,0xffb2cfe3,0xff659bc1,0xff6096bc,0xff689abe,0xff85abcb,0xffdce8f3,0xffc0d3e3,0xff8bacc9,0xff84aecc,0xff106d9f, |
2586 | 0xff1d7ba5,0xff5495bd,0xff5798c0,0xffbfd8e8,0xffcfe1ed,0xff9bbfd9,0xff98bdd6,0xff9fbed7,0xffb1cade,0xffeaf2f8,0xffc4d5e4,0xff93b1cc,0xff89b3cf,0xff106d9f, | 2487 | 0xff1d7ba5,0xff5495bd,0xff5798c0,0xffbfd8e8,0xffcfe1ed,0xff9bbfd9,0xff98bdd6,0xff9fbed7,0xffb1cade,0xffeaf2f8,0xffc4d5e4,0xff93b1cc,0xff89b3cf,0xff106d9f, |
2587 | 0xff1d7aa5,0xff5b97bf,0xff5997be,0xffb1cfe3,0xfff0fafe,0xffeef9ff,0xffeef9ff,0xfff0faff,0xfff3fbff,0xfff5fafd,0xffbed3e3,0xff9bb7d0,0xff8fb7d2,0xff116d9e, | 2488 | 0xff1d7aa5,0xff5b97bf,0xff5997be,0xffb1cfe3,0xfff0fafe,0xffeef9ff,0xffeef9ff,0xfff0faff,0xfff3fbff,0xfff5fafd,0xffbed3e3,0xff9bb7d0,0xff8fb7d2,0xff116d9e, |
2588 | 0xff17729f,0xff759fc3,0xff5892bc,0xff7ba9c9,0xff9bbdd7,0xffa2c0d7,0xffa8c3da,0xffaec7dc,0xffb6ccde,0xffb7ccdf,0xffa9c1d8,0xffb5c5d9,0xff71adcc,0xff0b6b9c, | 2489 | 0xff17729f,0xff759fc3,0xff5892bc,0xff7ba9c9,0xff9bbdd7,0xffa2c0d7,0xffa8c3da,0xffaec7dc,0xffb6ccde,0xffb7ccdf,0xffa9c1d8,0xffb5c5d9,0xff71adcc,0xff0b6b9c, |
2589 | 0x9a096b9b,0xff3e87b0,0xff76a0c4,0xff759ec3,0xff79a0c3,0xff7ca2c4,0xff7fa5c6,0xff85abc9,0xff84aecc,0xff88b3cf,0xff96bad4,0xff76afce,0xff227baa,0x9a03699a, | 2490 | 0x9a096b9b,0xff3e87b0,0xff76a0c4,0xff759ec3,0xff79a0c3,0xff7ca2c4,0xff7fa5c6,0xff85abc9,0xff84aecc,0xff88b3cf,0xff96bad4,0xff76afce,0xff227baa,0x9a03699a, |
2590 | 0x1a016a9b,0x9a086b9c,0xff12709f,0xff1275a3,0xff1072a2,0xff1072a1,0xff1071a1,0xff116f9f,0xff106d9f,0xff106d9f,0xff126d9e,0xff0c6b9c,0x9a03689a,0x1a00699a | 2491 | 0x1a016a9b,0x9a086b9c,0xff12709f,0xff1275a3,0xff1072a2,0xff1072a1,0xff1071a1,0xff116f9f,0xff106d9f,0xff106d9f,0xff126d9e,0xff0c6b9c,0x9a03689a,0x1a00699a |
2591 | }; | 2492 | }; |
2592 | 2493 | ||
2593 | static const QRgb table_pattern_data[] = { | 2494 | static const QRgb table_pattern_data[] = { |
2594 | 0xff598076,0xff5c857b,0xff5c857b,0xff567b72,0xff51756c,0xff577e74,0xff5d867c,0xff598076,0xff52766d,0xff51756c,0xff5a8177,0xff5f897e,0xff598076,0xff50736a, | 2495 | 0xff598076,0xff5c857b,0xff5c857b,0xff567b72,0xff51756c,0xff577e74,0xff5d867c,0xff598076,0xff52766d,0xff51756c,0xff5a8177,0xff5f897e,0xff598076,0xff50736a, |
2595 | 0xff4f7269,0xff557b71,0xff5b847a,0xff5a8177,0xff588076,0xff54786f,0xff51756c,0xff577d73,0xff598076,0xff547970,0xff51746b,0xff53786e,0xff598076,0xff5d857b, | 2496 | 0xff4f7269,0xff557b71,0xff5b847a,0xff5a8177,0xff588076,0xff54786f,0xff51756c,0xff577d73,0xff598076,0xff547970,0xff51746b,0xff53786e,0xff598076,0xff5d857b, |
2596 | 0xff577d74,0xff52766d,0xff587e74,0xff5d867b,0xff5c847a,0xff598076,0xff587f75,0xff557b71,0xff547a71,0xff587f75,0xff5a8278,0xff598177,0xff587f75,0xff587f75, | 2497 | 0xff577d74,0xff52766d,0xff587e74,0xff5d867b,0xff5c847a,0xff598076,0xff587f75,0xff557b71,0xff547a71,0xff587f75,0xff5a8278,0xff598177,0xff587f75,0xff587f75, |
2597 | 0xff598076,0xff5b8278,0xff598076,0xff587f75,0xff5f887d,0xff608b80,0xff567c73,0xff547970,0xff567c72,0xff577e74,0xff587f75,0xff5c857a,0xff608b80,0xff608b80, | 2498 | 0xff598076,0xff5b8278,0xff598076,0xff587f75,0xff5f887d,0xff608b80,0xff567c73,0xff547970,0xff567c72,0xff577e74,0xff587f75,0xff5c857a,0xff608b80,0xff608b80, |
2598 | 0xff5e887e,0xff5c857a,0xff5a8278,0xff5a8177,0xff598076,0xff598076,0xff5b8379,0xff5a8278,0xff51746b,0xff51746b,0xff557a71,0xff587f75,0xff5a8177,0xff5d867c, | 2499 | 0xff5e887e,0xff5c857a,0xff5a8278,0xff5a8177,0xff598076,0xff598076,0xff5b8379,0xff5a8278,0xff51746b,0xff51746b,0xff557a71,0xff587f75,0xff5a8177,0xff5d867c, |
2599 | 0xff608b80,0xff5d877c,0xff597f76,0xff577d74,0xff598076,0xff598076,0xff587f75,0xff577d74,0xff557a71,0xff53776e,0xff567c72,0xff567c72,0xff587f75,0xff5c847a, | 2500 | 0xff608b80,0xff5d877c,0xff597f76,0xff577d74,0xff598076,0xff598076,0xff587f75,0xff577d74,0xff557a71,0xff53776e,0xff567c72,0xff567c72,0xff587f75,0xff5c847a, |
2600 | 0xff5c857b,0xff5f897e,0xff5f897e,0xff577c73,0xff4f726a,0xff53776e,0xff598076,0xff587f75,0xff577e74,0xff587f75,0xff587e74,0xff577d73,0xff5d867b,0xff598076, | 2501 | 0xff5c857b,0xff5f897e,0xff5f897e,0xff577c73,0xff4f726a,0xff53776e,0xff598076,0xff587f75,0xff577e74,0xff587f75,0xff587e74,0xff577d73,0xff5d867b,0xff598076, |
2601 | 0xff5a8278,0xff608a7f,0xff608a80,0xff608a7f,0xff5a8278,0xff50736b,0xff50736a,0xff598076,0xff5f897e,0xff5a8178,0xff557b71,0xff598076,0xff5e877c,0xff5f897e, | 2502 | 0xff5a8278,0xff608a7f,0xff608a80,0xff608a7f,0xff5a8278,0xff50736b,0xff50736a,0xff598076,0xff5f897e,0xff5a8178,0xff557b71,0xff598076,0xff5e877c,0xff5f897e, |
2602 | 0xff5a8278,0xff557b71,0xff5a8278,0xff608b80,0xff5e877d,0xff577d74,0xff50746b,0xff50736a,0xff567d73,0xff5e887d,0xff608b80,0xff587f75,0xff53776e,0xff598076, | 2503 | 0xff5a8278,0xff557b71,0xff5a8278,0xff608b80,0xff5e877d,0xff577d74,0xff50746b,0xff50736a,0xff567d73,0xff5e887d,0xff608b80,0xff587f75,0xff53776e,0xff598076, |
2603 | 0xff618b80,0xff5f8a7f,0xff53776e,0xff51756c,0xff598076,0xff5f887e,0xff598076,0xff50736a,0xff50736b,0xff567d73,0xff5a8177,0xff5c847a,0xff5b8379,0xff547a70, | 2504 | 0xff618b80,0xff5f8a7f,0xff53776e,0xff51756c,0xff598076,0xff5f887e,0xff598076,0xff50736a,0xff50736b,0xff567d73,0xff5a8177,0xff5c847a,0xff5b8379,0xff547a70, |
2604 | 0xff51746b,0xff587f75,0xff5e877d,0xff598076,0xff51746b,0xff52766d,0xff587f75,0xff5d857b,0xff587e75,0xff53786e,0xff598076,0xff5e887d,0xff5c847a,0xff598076, | 2505 | 0xff51746b,0xff587f75,0xff5e877d,0xff598076,0xff51746b,0xff52766d,0xff587f75,0xff5d857b,0xff587e75,0xff53786e,0xff598076,0xff5e887d,0xff5c847a,0xff598076, |
2605 | 0xff587f75,0xff53786f,0xff52766c,0xff587e74,0xff598076,0xff547970,0xff587e74,0xff577e75,0xff598076,0xff5a8278,0xff598076,0xff598076,0xff5e887e,0xff608b80, | 2506 | 0xff587f75,0xff53786f,0xff52766c,0xff587e74,0xff598076,0xff547970,0xff587e74,0xff577e75,0xff598076,0xff5a8278,0xff598076,0xff598076,0xff5e887e,0xff608b80, |
2606 | 0xff5b8379,0xff587f75,0xff577e74,0xff567b72,0xff557b72,0xff598076,0xff598177,0xff598076,0xff5e887e,0xff5c857a,0xff5a8278,0xff598076,0xff587f75,0xff587f75, | 2507 | 0xff5b8379,0xff587f75,0xff577e74,0xff567b72,0xff557b72,0xff598076,0xff598177,0xff598076,0xff5e887e,0xff5c857a,0xff5a8278,0xff598076,0xff587f75,0xff587f75, |
2607 | 0xff598177,0xff587f75,0xff547a71,0xff53786f,0xff567b72,0xff587f75,0xff5b8278,0xff5e887d,0xff618b80,0xff608a7f,0xff598177,0xff587e74,0xff598076,0xff598076, | 2508 | 0xff598177,0xff587f75,0xff547a71,0xff53786f,0xff567b72,0xff587f75,0xff5b8278,0xff5e887d,0xff618b80,0xff608a7f,0xff598177,0xff587e74,0xff598076,0xff598076, |
2608 | 0xff587f75,0xff577d74,0xff557a71,0xff53776e,0xff51746b,0xff52756c,0xff557b72,0xff5b8379,0xff608b80,0xff638e83,0xff608b80,0xff5d867c,0xff50736b,0xff52766d, | 2509 | 0xff587f75,0xff577d74,0xff557a71,0xff53776e,0xff51746b,0xff52756c,0xff557b72,0xff5b8379,0xff608b80,0xff638e83,0xff608b80,0xff5d867c,0xff50736b,0xff52766d, |
2609 | 0xff587f75,0xff587f75,0xff577e74,0xff587f75,0xff598076,0xff598076,0xff577e74,0xff577e74,0xff598076,0xff5f887e,0xff638e83,0xff5e887e,0xff5a8177,0xff547a71, | 2510 | 0xff587f75,0xff587f75,0xff577e74,0xff587f75,0xff598076,0xff598076,0xff577e74,0xff577e74,0xff598076,0xff5f887e,0xff638e83,0xff5e887e,0xff5a8177,0xff547a71, |
2610 | 0xff4f7269,0xff587e74,0xff5e887d,0xff5a8278,0xff557b72,0xff598076,0xff5e887e,0xff608a80,0xff5d867b,0xff587f75,0xff5b8278,0xff618c81,0xff608a7f,0xff598177, | 2511 | 0xff4f7269,0xff587e74,0xff5e887d,0xff5a8278,0xff557b72,0xff598076,0xff5e887e,0xff608a80,0xff5d867b,0xff587f75,0xff5b8278,0xff618c81,0xff608a7f,0xff598177, |
2611 | 0xff547970,0xff4f7169,0xff557b71,0xff5e877d,0xff618c81,0xff598076,0xff53776e,0xff587f75,0xff608a80,0xff5f897e,0xff587f75,0xff547970,0xff5a8278,0xff608b80, | 2512 | 0xff547970,0xff4f7169,0xff557b71,0xff5e877d,0xff618c81,0xff598076,0xff53776e,0xff587f75,0xff608a80,0xff5f897e,0xff587f75,0xff547970,0xff5a8278,0xff608b80, |
2612 | 0xff5c857b,0xff547970,0xff4f7169,0xff50726a | 2513 | 0xff5c857b,0xff547970,0xff4f7169,0xff50726a |
2613 | }; | 2514 | }; |
2614 | 2515 | ||
2615 | static const QRgb tgz_data[] = { | 2516 | static const QRgb tgz_data[] = { |
2616 | 0x0,0x100b200,0x791fd11e,0x4611ca0a,0x1cd3d3d5,0x3dcdcdd1,0x3dc8c8ce,0x3dc3c3cb,0x3dbebec9,0x3db9b9c7,0x1baaaab9,0x0,0x0,0x0, | 2517 | 0x0,0x100b200,0x791fd11e,0x4611ca0a,0x1cd3d3d5,0x3dcdcdd1,0x3dc8c8ce,0x3dc3c3cb,0x3dbebec9,0x3db9b9c7,0x1baaaab9,0x0,0x0,0x0, |
2617 | 0x1008800,0x7700b300,0xfd08e808,0x4802ae02,0x85dadadd,0xfff5f5f6,0xfff4f4f6,0xfff2f0ef,0xffeeeef2,0xffe6e6ed,0xdfbdbdcc,0x269494a6,0x0,0x0, | 2518 | 0x1008800,0x7700b300,0xfd08e808,0x4802ae02,0x85dadadd,0xfff5f5f6,0xfff4f4f6,0xfff2f0ef,0xffeeeef2,0xffe6e6ed,0xdfbdbdcc,0x269494a6,0x0,0x0, |
2618 | 0x79008c00,0xfd00be00,0xff00c500,0x48008900,0x85d8d8dd,0xfffbf4e8,0xfff3dcaf,0xffeed399,0xffede0cf,0xfff0f0f6,0xffdfdfe8,0xe0c8c8d6,0x2387879c,0x0, | 2519 | 0x79008c00,0xfd00be00,0xff00c500,0x48008900,0x85d8d8dd,0xfffbf4e8,0xfff3dcaf,0xffeed399,0xffede0cf,0xfff0f0f6,0xffdfdfe8,0xe0c8c8d6,0x2387879c,0x0, |
2619 | 0x46007c00,0x48008200,0x52008000,0x26568512,0xb1e3c085,0xfff7e4af,0xfffffbd4,0xfff9eebf,0xfff1e0b1,0xffe0d1c0,0xffdddde7,0xfff4f4f8,0xd8babacd,0x1f7d7d97, | 2520 | 0x46007c00,0x48008200,0x52008000,0x26568512,0xb1e3c085,0xfff7e4af,0xfffffbd4,0xfff9eebf,0xfff1e0b1,0xffe0d1c0,0xffdddde7,0xfff4f4f8,0xd8babacd,0x1f7d7d97, |
2620 | 0x0,0x0,0xddc962a,0xdff0c97c,0xfffce4a6,0xfffce3a5,0xfffae09f,0xffecc377,0xffedcf90,0xffe9cc90,0xffbfac9e,0xffc9c9da,0xffc6c6d8,0x878989a2, | 2521 | 0x0,0x0,0xddc962a,0xdff0c97c,0xfffce4a6,0xfffce3a5,0xfffae09f,0xffecc377,0xffedcf90,0xffe9cc90,0xffbfac9e,0xffc9c9da,0xffc6c6d8,0x878989a2, |
2621 | 0x0,0x0,0x14db952a,0xf7f8de9a,0xffffe5a1,0xffffd98b,0xfffdd688,0xfff5c774,0xfff5cb7c,0xffeec377,0xffdbaf68,0xffd6d2d9,0xffdfdfec,0x8b8989a2, | 2522 | 0x0,0x0,0x14db952a,0xf7f8de9a,0xffffe5a1,0xffffd98b,0xfffdd688,0xfff5c774,0xfff5cb7c,0xffeec377,0xffdbaf68,0xffd6d2d9,0xffdfdfec,0x8b8989a2, |
2622 | 0x0,0x0,0x14d5902a,0xf7f7d78c,0xffffe59c,0xffffd986,0xfff7be5e,0xfffec664,0xffffc766,0xffffcc6d,0xffe7bc6e,0xffd5d1d8,0xffe1e1ed,0x8b8585a0, | 2523 | 0x0,0x0,0x14d5902a,0xf7f7d78c,0xffffe59c,0xffffd986,0xfff7be5e,0xfffec664,0xffffc766,0xffffcc6d,0xffe7bc6e,0xffd5d1d8,0xffe1e1ed,0x8b8585a0, |
2623 | 0x0,0x0,0x14cb8929,0xf7f5cf7d,0xffffdd88,0xffffda82,0xfffdcd6f,0xffffbe52,0xffffc763,0xffffd276,0xffe5bf76,0xffd7d3d9,0xffe3e3ef,0x8b82829f, | 2524 | 0x0,0x0,0x14cb8929,0xf7f5cf7d,0xffffdd88,0xffffda82,0xfffdcd6f,0xffffbe52,0xffffc763,0xffffd276,0xffe5bf76,0xffd7d3d9,0xffe3e3ef,0x8b82829f, |
2624 | 0x0,0x0,0xfc18129,0xeeecbe65,0xffffd575,0xffffd36f,0xffffcd69,0xffffc35c,0xffffcd6f,0xffffd882,0xffe3c27d,0xffd8d5da,0xffe6e6f0,0x8b7f7f9d, | 2525 | 0x0,0x0,0xfc18129,0xeeecbe65,0xffffd575,0xffffd36f,0xffffcd69,0xffffc35c,0xffffcd6f,0xffffd882,0xffe3c27d,0xffd8d5da,0xffe6e6f0,0x8b7f7f9d, |
2625 | 0x0,0x0,0x0,0x3fb98134,0xece7b557,0xffffcb5c,0xffffcb61,0xffffc967,0xffffd47a,0xfff1cd81,0xffc2a680,0xffe1dfe6,0xffe8e8f2,0x8b7c7c9c, | 2526 | 0x0,0x0,0x0,0x3fb98134,0xece7b557,0xffffcb5c,0xffffcb61,0xffffc967,0xffffd47a,0xfff1cd81,0xffc2a680,0xffe1dfe6,0xffe8e8f2,0x8b7c7c9c, |
2626 | 0x0,0x0,0x0,0x0,0x89ab9992,0xffdfaf5b,0xffffc85a,0xfff7c76d,0xffceab76,0xffccbfb6,0xffd7e7d9,0xffb5e6b1,0xffbbe6ba,0xaa599e62, | 2527 | 0x0,0x0,0x0,0x0,0x89ab9992,0xffdfaf5b,0xffffc85a,0xfff7c76d,0xffceab76,0xffccbfb6,0xffd7e7d9,0xffb5e6b1,0xffbbe6ba,0xaa599e62, |
2627 | 0x0,0x0,0x0,0x0,0x85b1b1c9,0xffefe8e2,0xffceab77,0xffcebcaa,0xffefeef0,0xfff5f5f9,0xffb5e6b8,0xff75fb74,0xff75f475,0xa73dac46, | 2528 | 0x0,0x0,0x0,0x0,0x85b1b1c9,0xffefe8e2,0xffceab77,0xffcebcaa,0xffefeef0,0xfff5f5f9,0xffb5e6b8,0xff75fb74,0xff75f475,0xa73dac46, |
2628 | 0x0,0x0,0x0,0x0,0x85aaaac5,0xfff3f3f7,0xfff1f1f5,0xfff1f1f6,0xffeeeef5,0xffececf3,0xffa8d5ae,0xff02dd02,0xff74c97c,0x8b6f7094, | 2529 | 0x0,0x0,0x0,0x0,0x85aaaac5,0xfff3f3f7,0xfff1f1f5,0xfff1f1f6,0xffeeeef5,0xffececf3,0xffa8d5ae,0xff02dd02,0xff74c97c,0x8b6f7094, |
2629 | 0x0,0x0,0x0,0x0,0x22717190,0x5362627f,0x545e5e7c,0x545b5b7b,0x54575779,0x54535377,0x82256936,0x8d07830b,0x54484970,0x2d343454 | 2530 | 0x0,0x0,0x0,0x0,0x22717190,0x5362627f,0x545e5e7c,0x545b5b7b,0x54575779,0x54535377,0x82256936,0x8d07830b,0x54484970,0x2d343454 |
2630 | }; | 2531 | }; |
2631 | 2532 | ||
2632 | static const QRgb toys_data[] = { | 2533 | static const QRgb toys_data[] = { |
2633 | 0x0,0x0,0x0,0x1d8c8c00,0x87a9a83a,0xcdc48877,0xe2cf8d8d,0xdfcd8989,0xbabea56c,0x639a9a23,0x7717100,0x0,0x0,0x0, | 2534 | 0x0,0x0,0x0,0x1d8c8c00,0x87a9a83a,0xcdc48877,0xe2cf8d8d,0xdfcd8989,0xbabea56c,0x639a9a23,0x7717100,0x0,0x0,0x0, |
2634 | 0x0,0x8a0000,0x619b821c,0xf3cdcd87,0xfff1eece,0xfff4d2d2,0xfff6d3d3,0xfff6d3d3,0xfff3dfcf,0xffebebc6,0xd6bcbb68,0x2d7d5104,0x0,0x0, | 2535 | 0x0,0x8a0000,0x619b821c,0xf3cdcd87,0xfff1eece,0xfff4d2d2,0xfff6d3d3,0xfff6d3d3,0xfff3dfcf,0xffebebc6,0xd6bcbb68,0x2d7d5104,0x0,0x0, |
2635 | 0x0,0x61982416,0xfdd8d099,0xfff2f2c4,0xfff6ebc2,0xfff9c4c4,0xfffac4c4,0xfffac5c5,0xfff8d4c2,0xfff5f5c4,0xffefefc5,0xecbe926b,0x286c0000,0x0, | 2536 | 0x0,0x61982416,0xfdd8d099,0xfff2f2c4,0xfff6ebc2,0xfff9c4c4,0xfffac4c4,0xfffac5c5,0xfff8d4c2,0xfff5f5c4,0xffefefc5,0xecbe926b,0x286c0000,0x0, |
2636 | 0x1d8c0000,0xf3c37e6a,0xffeeeeb3,0xfff7f7b4,0xfffbe5b1,0xfffdb4b4,0xfffeb4b4,0xfffeb4b4,0xfffcc5b2,0xfffafab4,0xfff4f4b5,0xffe7e0ab,0xc58c0806,0x4080000, | 2537 | 0x1d8c0000,0xf3c37e6a,0xffeeeeb3,0xfff7f7b4,0xfffbe5b1,0xfffdb4b4,0xfffeb4b4,0xfffeb4b4,0xfffcc5b2,0xfffafab4,0xfff4f4b5,0xffe7e0ab,0xc58c0806,0x4080000, |
2637 | 0x889e2121,0xffe2c69e,0xfff2f2a4,0xfffafaa4,0xfffedea2,0xffffa4a4,0xffffa4a4,0xffffa3a3,0xfffe9b7f,0xfffcfc6d,0xfff5f56c,0xffdbdb42,0xffa61d06,0x46620101, | 2538 | 0x889e2121,0xffe2c69e,0xfff2f2a4,0xfffafaa4,0xfffedea2,0xffffa4a4,0xffffa4a4,0xffffa3a3,0xfffe9b7f,0xfffcfc6d,0xfff5f56c,0xffdbdb42,0xffa61d06,0x46620101, |
2638 | 0xcdb44a4a,0xffe6cf96,0xfff5f598,0xfffdfd98,0xffffd796,0xffff9898,0xffff9797,0xffff4343,0xfffe3e15,0xfffdfd15,0xfff5f515,0xffdfdf15,0xffba4114,0x937a0707, | 2539 | 0xcdb44a4a,0xffe6cf96,0xfff5f598,0xfffdfd98,0xffffd796,0xffff9898,0xffff9797,0xffff4343,0xfffe3e15,0xfffdfd15,0xfff5f515,0xffdfdf15,0xffba4114,0x937a0707, |
2639 | 0xe2b74a4a,0xffe7d28e,0xfff6f690,0xfffdfd90,0xfffed28e,0xffff9090,0xffff5c5c,0xffff2929,0xfffe4b28,0xfffefe29,0xfff9f929,0xffe6e629,0xffc65827,0xb17f0f0f, | 2540 | 0xe2b74a4a,0xffe7d28e,0xfff6f690,0xfffdfd90,0xfffed28e,0xffff9090,0xffff5c5c,0xffff2929,0xfffe4b28,0xfffefe29,0xfff9f929,0xffe6e629,0xffc65827,0xb17f0f0f, |
2640 | 0xdfac2c2c,0xffe0c373,0xfff5f588,0xfffdfd8c,0xfffecb81,0xffff6060,0xffff4040,0xffff4040,0xffff6040,0xfffefe40,0xfff9f940,0xffe8e840,0xffca673d,0xb1811717, | 2541 | 0xdfac2c2c,0xffe0c373,0xfff5f588,0xfffdfd8c,0xfffecb81,0xffff6060,0xffff4040,0xffff4040,0xffff6040,0xfffefe40,0xfff9f940,0xffe8e840,0xffca673d,0xb1811717, |
2641 | 0xbaa72c2c,0xffd4ac56,0xffeded5a,0xfffafa5b,0xfffec059,0xffff5a5a,0xffff5a5a,0xffff5a5a,0xfffe7759,0xfffefe59,0xfff7f75a,0xffe6e659,0xffc96d51,0x916e1010, | 2542 | 0xbaa72c2c,0xffd4ac56,0xffeded5a,0xfffafa5b,0xfffec059,0xffff5a5a,0xffff5a5a,0xffff5a5a,0xfffe7759,0xfffefe59,0xfff7f75a,0xffe6e659,0xffc96d51,0x916e1010, |
2642 | 0x63961a1a,0xffcc9a63,0xffe8e873,0xfff6f674,0xfffccf72,0xfffe7373,0xfffe7474,0xfffe7474,0xfffd9172,0xfffbfb73,0xfff2f274,0xffe1e172,0xfbb7554b,0x43340101, | 2543 | 0x63961a1a,0xffcc9a63,0xffe8e873,0xfff6f674,0xfffccf72,0xfffe7373,0xfffe7474,0xfffe7474,0xfffd9172,0xfffbfb73,0xfff2f274,0xffe1e172,0xfbb7554b,0x43340101, |
2643 | 0x7710000,0xd7b06447,0xffdede86,0xffeeee8d,0xfff6d98b,0xfffa8c8c,0xfffc8d8d,0xfffb8d8d,0xfff9a98b,0xfff5f58c,0xffeaea8c,0xffd6c97d,0xb87c2424,0x6000000, | 2544 | 0x7710000,0xd7b06447,0xffdede86,0xffeeee8d,0xfff6d98b,0xfffa8c8c,0xfffc8d8d,0xfffb8d8d,0xfff9a98b,0xfff5f58c,0xffeaea8c,0xffd6c97d,0xb87c2424,0x6000000, |
2644 | 0x0,0x2e82190e,0xedbdb262,0xffe3e39b,0xffede0a2,0xfff2a3a3,0xfff5a4a4,0xfff4a4a4,0xfff1bea2,0xffebeba2,0xffdcdc93,0xde98703e,0x27160000,0x0, | 2545 | 0x0,0x2e82190e,0xedbdb262,0xffe3e39b,0xffede0a2,0xfff2a3a3,0xfff5a4a4,0xfff4a4a4,0xfff1bea2,0xffebeba2,0xffdcdc93,0xde98703e,0x27160000,0x0, |
2645 | 0x0,0x0,0x2970690b,0xc5a8a84d,0xffd4d18c,0xffe5aba9,0xffe9afaf,0xffe9aeae,0xffe2c3a4,0xfbc8c87a,0xba828230,0x27181600,0x0,0x0, | 2546 | 0x0,0x0,0x2970690b,0xc5a8a84d,0xffd4d18c,0xffe5aba9,0xffe9afaf,0xffe9aeae,0xffe2c3a4,0xfbc8c87a,0xba828230,0x27181600,0x0,0x0, |
2646 | 0x0,0x0,0x0,0x4090900,0x4666660a,0x938e4637,0xb1954747,0xb1944646,0x91765925,0x44353501,0x7000000,0x0,0x0,0x0 | 2547 | 0x0,0x0,0x0,0x4090900,0x4666660a,0x938e4637,0xb1954747,0xb1944646,0x91765925,0x44353501,0x7000000,0x0,0x0,0x0 |
2647 | }; | 2548 | }; |
2648 | 2549 | ||
2649 | static const QRgb trash_data[] = { | 2550 | static const QRgb trash_data[] = { |
2650 | 0x3d3d5d5,0x19d7d9d9,0x45cbcbcb,0x9cbebebd,0xdab2b2b2,0xf7a5a5a6,0xcc979797,0x948b8b8c,0x67848485,0x40838384,0x5838384,0x0,0x0,0x0, | 2551 | 0x3d3d5d5,0x19d7d9d9,0x45cbcbcb,0x9cbebebd,0xdab2b2b2,0xf7a5a5a6,0xcc979797,0x948b8b8c,0x67848485,0x40838384,0x5838384,0x0,0x0,0x0, |
2651 | 0x51d5d5d5,0xd8dcdddd,0xffd4d4d4,0xffc2c3c3,0xffb4b5b4,0xffa5a5a5,0xff969698,0xff8c8c8d,0xfb7d7e7e,0xc5717071,0x5f676767,0x18555556,0x0,0x0, | 2552 | 0x51d5d5d5,0xd8dcdddd,0xffd4d4d4,0xffc2c3c3,0xffb4b5b4,0xffa5a5a5,0xff969698,0xff8c8c8d,0xfb7d7e7e,0xc5717071,0x5f676767,0x18555556,0x0,0x0, |
2652 | 0xffc8c8c8,0xffeaeaea,0xffc3c4c3,0xffb9baba,0xffafafb0,0xffa2a2a2,0xff959495,0xff8c8c8c,0xff7b7c7c,0xff676767,0xff535353,0x604e4e4e,0x0,0x0, | 2553 | 0xffc8c8c8,0xffeaeaea,0xffc3c4c3,0xffb9baba,0xffafafb0,0xffa2a2a2,0xff959495,0xff8c8c8c,0xff7b7c7c,0xff676767,0xff535353,0x604e4e4e,0x0,0x0, |
2653 | 0xfeabacac,0xffdbdbda,0xffd1d1d1,0xffd1d1d1,0xffc5c5c5,0xffb5b5b5,0xffa3a3a4,0xff9a999a,0xff848484,0xff626262,0xff474747,0x60414141,0x0,0x0, | 2554 | 0xfeabacac,0xffdbdbda,0xffd1d1d1,0xffd1d1d1,0xffc5c5c5,0xffb5b5b5,0xffa3a3a4,0xff9a999a,0xff848484,0xff626262,0xff474747,0x60414141,0x0,0x0, |
2654 | 0xd9a4a5a5,0xffc2c2c2,0xffc5c5c5,0xffc6c6c5,0xffbbbbbb,0xffaeaeae,0xff9d9d9d,0xff939393,0xff7b7b7c,0xff595959,0xff494949,0x604d4d4e,0x0,0x0, | 2555 | 0xd9a4a5a5,0xffc2c2c2,0xffc5c5c5,0xffc6c6c5,0xffbbbbbb,0xffaeaeae,0xff9d9d9d,0xff939393,0xff7b7b7c,0xff595959,0xff494949,0x604d4d4e,0x0,0x0, |
2655 | 0x499c9d9d,0xffa1a1a1,0xffb6b6b6,0xffb5b5b5,0xffa9aaa9,0xff9b9b9b,0xff8b8b8c,0xff7f7f7f,0xff686868,0xff4e4e4e,0x9f4b4a4b,0x18555556,0x0,0x0, | 2556 | 0x499c9d9d,0xffa1a1a1,0xffb6b6b6,0xffb5b5b5,0xffa9aaa9,0xff9b9b9b,0xff8b8b8c,0xff7f7f7f,0xff686868,0xff4e4e4e,0x9f4b4a4b,0x18555556,0x0,0x0, |
2656 | 0x20aeaeae,0xffbebebe,0xffededed,0xffcfcfcf,0xffababab,0xffa0a0a0,0xff939394,0xff888889,0xff696969,0xff4d4d4d,0x7f484848,0x0,0x0,0x0, | 2557 | 0x20aeaeae,0xffbebebe,0xffededed,0xffcfcfcf,0xffababab,0xffa0a0a0,0xff939394,0xff888889,0xff696969,0xff4d4d4d,0x7f484848,0x0,0x0,0x0, |
2657 | 0x20b1b1b1,0xffc0c0c0,0xffececec,0xffcdcdcd,0xffaaaaaa,0xff9f9f9f,0xff929393,0xff8a8a8a,0xff7a7a7a,0xff5e5e5e,0x80494949,0x0,0x0,0x0, | 2558 | 0x20b1b1b1,0xffc0c0c0,0xffececec,0xffcdcdcd,0xffaaaaaa,0xff9f9f9f,0xff929393,0xff8a8a8a,0xff7a7a7a,0xff5e5e5e,0x80494949,0x0,0x0,0x0, |
2658 | 0x20b0b0b0,0xffbcbcbc,0xffe0e0e0,0xffc6c6c6,0xffa9a9a9,0xff9e9e9d,0xff909190,0xff868687,0xff757575,0xff5c5c5c,0x7f4e4e4e,0x0,0x0,0x0, | 2559 | 0x20b0b0b0,0xffbcbcbc,0xffe0e0e0,0xffc6c6c6,0xffa9a9a9,0xff9e9e9d,0xff909190,0xff868687,0xff757575,0xff5c5c5c,0x7f4e4e4e,0x0,0x0,0x0, |
2659 | 0x20afb0af,0xffb9b9b9,0xffd4d4d4,0xffc0c0c0,0xffa8a8a8,0xff9d9d9d,0xff8f8f8e,0xff848484,0xff707070,0xff575757,0x80494949,0x1000000,0x0,0x0, | 2560 | 0x20afb0af,0xffb9b9b9,0xffd4d4d4,0xffc0c0c0,0xffa8a8a8,0xff9d9d9d,0xff8f8f8e,0xff848484,0xff707070,0xff575757,0x80494949,0x1000000,0x0,0x0, |
2660 | 0x20afafaf,0xffb6b6b6,0xffc9c9c9,0xffbababa,0xffa7a8a8,0xff9c9c9c,0xff8e8d8c,0xff828281,0xff6c6c6c,0xff525252,0x963c3c3c,0x26000000,0x15000000,0x4000000, | 2561 | 0x20afafaf,0xffb6b6b6,0xffc9c9c9,0xffbababa,0xffa7a8a8,0xff9c9c9c,0xff8e8d8c,0xff828281,0xff6c6c6c,0xff525252,0x963c3c3c,0x26000000,0x15000000,0x4000000, |
2661 | 0x20aeaeae,0xffb2b2b2,0xffbbbabb,0xffb2b2b2,0xffa7a7a7,0xff9a9a9a,0xff8b8b8b,0xff7e7e7e,0xff676767,0xff4c4c4c,0xb0302f2f,0x5c000000,0x4f000000,0x21000000, | 2562 | 0x20aeaeae,0xffb2b2b2,0xffbbbabb,0xffb2b2b2,0xffa7a7a7,0xff9a9a9a,0xff8b8b8b,0xff7e7e7e,0xff676767,0xff4c4c4c,0xb0302f2f,0x5c000000,0x4f000000,0x21000000, |
2662 | 0x11b0b0b0,0xa7acacac,0xffa7a7a7,0xffa9a9a9,0xffa3a3a3,0xff979798,0xff868686,0xff777777,0xff595959,0xdd3e3e3e,0x85212121,0x60000000,0x4f000000,0x1b000000, | 2563 | 0x11b0b0b0,0xa7acacac,0xffa7a7a7,0xffa9a9a9,0xffa3a3a3,0xff979798,0xff868686,0xff777777,0xff595959,0xdd3e3e3e,0x85212121,0x60000000,0x4f000000,0x1b000000, |
2663 | 0x2b1b2b2,0x11a9a9a9,0x219b9b9c,0x268d8d8e,0x2f6e6e6e,0x3a525252,0x433f3f3f,0x45363737,0x44282828,0x381b1b1b,0x250b0b0b,0x18000000,0xc000000,0x3000000 | 2564 | 0x2b1b2b2,0x11a9a9a9,0x219b9b9c,0x268d8d8e,0x2f6e6e6e,0x3a525252,0x433f3f3f,0x45363737,0x44282828,0x381b1b1b,0x250b0b0b,0x18000000,0xc000000,0x3000000 |
2664 | }; | 2565 | }; |
2665 | 2566 | ||
2567 | static const QRgb Tux_data[] = { | ||
2568 | 0x4000000,0x7000000,0xc000000,0x12000000,0x17000000,0x1b000000,0x1d000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000, | ||
2569 | 0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1f000000,0x1d000000,0x1b000000, | ||
2570 | 0x17000000,0x12000000,0xc000000,0x7000000,0x7000000,0xf000000,0x18000000,0x25000000,0x2e000000,0x36000000,0x3b000000,0x3d000000,0x3d000000,0x3d000000, | ||
2571 | 0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000, | ||
2572 | 0x3d000000,0x3d000000,0x3b000000,0x36000000,0x2e000000,0x25000000,0x18000000,0xf000000,0xc000000,0x18000000,0xff090684,0xff090682,0xff090680,0xff090680, | ||
2573 | 0xff090681,0xff090681,0xff090682,0xff090683,0xff060456,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454,0xff060454, | ||
2574 | 0xff060454,0xff060454,0xff060454,0xff060457,0xff070465,0xff070467,0xff060456,0xff06034d,0xff04033a,0x3d000000,0x29000000,0x18000000,0x12000000,0x25000000, | ||
2575 | 0xff090682,0xffe4f8f0,0xffd2f3e7,0xffccf1e2,0xffcdf1e2,0xffd2f3e4,0xffd9f4e7,0xffafafae,0xff9b9b9b,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c, | ||
2576 | 0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9c9c9c,0xff9d9d9d,0xffb1b1b1,0xffb4b4b5,0xffa1a1a1,0xff8f8f8f,0xff04033a,0x5c000000, | ||
2577 | 0x3d000000,0x25000000,0x17000000,0x2e000000,0xff08067f,0xffcff2e5,0xff97e3c7,0xff7ddcb8,0xff7fdcb7,0xff8ee0bc,0xffa1e5c3,0xff565656,0xff4f4f4f,0xff4f4f4f, | ||
2578 | 0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff4f4f4f,0xff505050,0xff595858,0xff525253, | ||
2579 | 0xff4e4e4e,0xff494949,0xff02011d,0x74000000,0x4e000000,0x2e000000,0x1b000000,0x36000000,0xff08067e,0xffc4efdf,0xff76d9b5,0xff50cfa0,0xff53d09f,0xff69d6a7, | ||
2580 | 0xff605f5c,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616,0xff161616, | ||
2581 | 0xff161616,0xff161616,0xff161616,0xff161616,0xff151515,0xff131313,0xff010008,0x87000000,0x5a000000,0x36000000,0x1d000000,0x3b000000,0xff08067e,0xffc0eede, | ||
2582 | 0xff6ad6af,0xff43cc99,0xff46cd98,0xff5fd3a0,0xff3a3937,0xff030303,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404, | ||
2583 | 0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff040404,0xff030303,0xff040404,0xff030303,0xff030303,0xff000001,0x93000000,0x62000000,0x3b000000, | ||
2584 | 0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff46cc97,0xff61d4a1,0xff2a2928,0xff000000,0xff020202,0xff020202,0xff020202,0xff020202, | ||
2585 | 0xff010101,0xff000201,0xff020202,0xff020202,0xff020202,0xff020202,0xff020202,0xff020202,0xff010101,0xff050505,0xff0f0e0e,0xff060606,0xff010101,0xff010101, | ||
2586 | 0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff47cc97,0xff63d4a1,0xff242523,0xff000000, | ||
2587 | 0xff020202,0xff010101,0xff020202,0xff131111,0xff171515,0xff020202,0xff000201,0xff020202,0xff020202,0xff020202,0xff010101,0xff030303,0xff060606,0xff060606, | ||
2588 | 0xff161615,0xff383535,0xff050505,0xff010101,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98, | ||
2589 | 0xff48cd98,0xff64d5a1,0xff20201f,0xff000000,0xff010101,0xff090909,0xff1b1918,0xff0e0e0d,0xff141414,0xff100f0f,0xff020202,0xff020202,0xff020202,0xff010101, | ||
2590 | 0xff252220,0xff716d6c,0xff73706f,0xff565352,0xff1b1b1b,0xff090908,0xff0c0c0c,0xff010101,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000, | ||
2591 | 0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff20201f,0xff000000,0xff090909,0xff7f7c7b,0xff888888,0xff797979,0xff2f2d2b,0xff020202, | ||
2592 | 0xff020202,0xff020202,0xff010101,0xff181717,0xffb2b2b2,0xffa9a9a9,0xffa4a4a4,0xff9a9a9a,0xff9e9e9e,0xff383534,0xff010101,0xff010101,0xff000001,0x99000000, | ||
2593 | 0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff252423,0xff000000,0xff2e2c2a,0xffdddddd, | ||
2594 | 0xffefefef,0xfff3f3f3,0xffe1e1e1,0xff1e1c1b,0xff000101,0xff020202,0xff010101,0xff6f6866,0xfff3f3f3,0xffeaeaea,0xff7d7d7d,0xff8a8a8a,0xffdcdcdc,0xffbcbcbe, | ||
2595 | 0xff0d0c0c,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2, | ||
2596 | 0xff252624,0xff000000,0xff5f5856,0xfff3f3f3,0xff868686,0xff8b8b8b,0xfffefefe,0xff6a6663,0xff010101,0xff010101,0xff030303,0xffb9b3b0,0xffffffff,0xff595959, | ||
2597 | 0xff000000,0xff050505,0xff949494,0xffebebee,0xff2f2c2d,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd, | ||
2598 | 0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff282826,0xff000000,0xff837c78,0xff6d6d6d,0xff050505,0xff202020,0xff868686,0xff908c88,0xff020202,0xff060606, | ||
2599 | 0xff0b0a09,0xffbfbab8,0xffd4d4d4,0xff070707,0xff030303,0xff282828,0xff3f3f3f,0xffebebee,0xff504c4e,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000, | ||
2600 | 0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff2b2c2a,0xff000000,0xff837c7a,0xff484848,0xff020202,0xff1b1b1b, | ||
2601 | 0xff525252,0xff757072,0xff020202,0xff050505,0xff070707,0xff837d7f,0xffc7c7c7,0xff090909,0xff080808,0xff0b0b0b,0xff1c1c1c,0xffeaeaed,0xff575255,0xff000000, | ||
2602 | 0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff31302f,0xff000000, | ||
2603 | 0xff6d6765,0xff636363,0xff020202,0xff000000,0xff524f47,0xff9f8948,0xff7e6717,0xff8b741b,0xff5f4f20,0xff968343,0xffddd3a1,0xff101010,0xff050505,0xff020202, | ||
2604 | 0xff383838,0xffebebee,0xff443f42,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98, | ||
2605 | 0xff48cd98,0xff64d5a2,0xff363634,0xff000000,0xff44403e,0xffa1a1a1,0xff020202,0xff39362b,0xffb89421,0xffc7a21f,0xfff2c711,0xfff0c915,0xffd1b333,0xffc2a228, | ||
2606 | 0xffe8bf12,0xff97833d,0xff353229,0xff0e0e0e,0xffa8a8a8,0xffebebee,0xff1d1b1c,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000, | ||
2607 | 0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a2,0xff3a3937,0xff000000,0xff0b0b0b,0xffc6c7cd,0xffa28f5a,0xffd3a200,0xffe4b200,0xffe7bb10, | ||
2608 | 0xffe9c51f,0xffeac827,0xffedcc2c,0xffefcd2e,0xffedcc2c,0xffe9bf0c,0xffe2b70b,0xffcda833,0xffeccd91,0xff938577,0xff030304,0xff000000,0xff000001,0x99000000, | ||
2609 | 0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff48cd98,0xff64d5a1,0xff42413e,0xff000101,0xff000000,0xff564a2d, | ||
2610 | 0xffd6a200,0xffdca900,0xffe4b600,0xffe6be14,0xffe9c521,0xffedcc2d,0xffeed436,0xfff2d949,0xfff5e164,0xfff3dc51,0xffeecc27,0xffe6b700,0xffd5a200,0xff9d6d05, | ||
2611 | 0xff241c0f,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff42cb98,0xff47cc98,0xff64d5a1, | ||
2612 | 0xff474642,0xff000000,0xff14110d,0xffa07300,0xffcd9800,0xffddaa00,0xffe6b300,0xffe7bb10,0xffe9c51f,0xffecca28,0xffedce2e,0xfff4db58,0xfffae97f,0xfff0d547, | ||
2613 | 0xffeec310,0xffae8a0e,0xff564214,0xffa37605,0xff3c2f11,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd, | ||
2614 | 0xff69d6ae,0xff41cb98,0xff47cc97,0xff62d4a1,0xff4b4a47,0xff000000,0xff3c2e17,0xffbe8600,0xffc79400,0xffd9a700,0xffe3b200,0xffe6b90d,0xffe9c018,0xffe9c51f, | ||
2615 | 0xffefd135,0xfff5e462,0xfff3d644,0xffeec30c,0xffb08c14,0xff624e17,0xffa2780b,0xffb68400,0xff2e2411,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000, | ||
2616 | 0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff46cc97,0xff62d4a1,0xff504f4c,0xff010101,0xff2d2414,0xff815c0e,0xffb68700,0xffd5a100, | ||
2617 | 0xffe2b100,0xffe7b700,0xffe9bc0f,0xffecc214,0xfff8d625,0xfff2cf26,0xffb6941c,0xff6e561b,0xff785d18,0xffd3a100,0xffcb9700,0xffaf7b00,0xff1f1a0e,0xff000000, | ||
2618 | 0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffbfeedd,0xff69d6ae,0xff41cb98,0xff46cc98,0xff61d4a1,0xff595854,0xff020202, | ||
2619 | 0xff070706,0xff523f20,0xff755414,0xff7f6213,0xffac8408,0xffbf9500,0xffc09809,0xffba9413,0xff886d1b,0xff5c4b1a,0xff5f4918,0xff9d7610,0xffe2ae00,0xffce9d00, | ||
2620 | 0xffc6992b,0xffbfa262,0xff242120,0xff000000,0xff000001,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067e,0xffc0eedd,0xff6ad7ae,0xff44cc99, | ||
2621 | 0xff48cd98,0xff64d5a1,0xff82ddad,0xff030303,0xff020202,0xff96928d,0xffbe9643,0xff926407,0xff795d15,0xff7b6820,0xff7c661f,0xff7e681f,0xff957819,0xffbc920e, | ||
2622 | 0xffe3af00,0xffe0ac00,0xffcf9d00,0xffd0b262,0xffcecbc3,0xffc3c3c6,0xff716f77,0xff020203,0xff000000,0x99000000,0x66000000,0x3d000000,0x1f000000,0x3d000000, | ||
2623 | 0xff08067e,0xffc0eddd,0xff6cd5af,0xff49cb99,0xff4ecd9a,0xff69d4a3,0xff494845,0xff010101,0xff090908,0xffcbcbce,0xffdad2c5,0xffba8d2a,0xffb77f00,0xffd8a90b, | ||
2624 | 0xffecc110,0xffeaba00,0xffdcad00,0xffd3a100,0xffcc9800,0xffcb9b15,0xffd4bf87,0xffd2d2d2,0xffd3d3d3,0xffc9c9cc,0xff9696a0,0xff08080a,0xff000000,0x99000000, | ||
2625 | 0x66000000,0x3d000000,0x1f000000,0x3d000000,0xff08067c,0xffbee8da,0xff6dcdaa,0xff4bc094,0xff53c293,0xff6cc89d,0xff0f0f0f,0xff000000,0xff060606,0xffbab6b8, | ||
2626 | 0xffd0d0d3,0xffcbc3ba,0xffaf8735,0xffa07100,0xffaa7a00,0xffad7e00,0xffb08000,0xffb88d22,0xffcaaf71,0xffcfc8be,0xffcbcbcd,0xffcdcdcf,0xffdedee1,0xffd8d8de, | ||
2627 | 0xffa0a0ac,0xff1d1c21,0xff000000,0x99000000,0x66000000,0x3d000000,0x1d000000,0x3b000000,0xff080577,0xffb7d6cd,0xff69af98,0xff45987c,0xff489579,0xff1a1a1b, | ||
2628 | 0xff000000,0xff010101,0xff080707,0xffa0a0a9,0xffababb5,0xff9e9ea7,0xffa0a0a9,0xff95866e,0xff907b52,0xff927d55,0xff9a8c75,0xff9e9da2,0xff9e9ea7,0xff9e9ea7, | ||
2629 | 0xffa2a2ac,0xffacacb7,0xffafafba,0xffa3a3b0,0xff7c7c8f,0xff3e3d4f,0xff000002,0x93000000,0x62000000,0x3b000000,0x1b000000,0x36000000,0xff070568,0xff98b4ae, | ||
2630 | 0xff59736d,0xff314e48,0xff202025,0xff010101,0xff000000,0xff000000,0xff232227,0xff65657a,0xff65657a,0xff616174,0xff5f5f72,0xff5e5e71,0xff5e5e71,0xff5e5e71, | ||
2631 | 0xff5e5e71,0xff5f5f72,0xff5f5f72,0xff616174,0xff646478,0xff656579,0xff646479,0xff5e5e74,0xff4d4d65,0xff40405a,0xff01000c,0x87000000,0x5a000000,0x36000000, | ||
2632 | 0x17000000,0x2e000000,0xff050451,0xff050343,0xff030226,0xff020117,0xff000005,0xff000000,0xff000000,0xff000002,0xff030238,0xff040242,0xff040241,0xff040241, | ||
2633 | 0xff040240,0xff040240,0xff040240,0xff040240,0xff040240,0xff040240,0xff040241,0xff040241,0xff040241,0xff040241,0xff040241,0xff040241,0xff040240,0xff040242, | ||
2634 | 0xff03022c,0x74000000,0x4e000000,0x2e000000,0x12000000,0x25000000,0x3d000000,0x5c000000,0x74000000,0x87000000,0x93000000,0x99000000,0x99000000,0x99000000, | ||
2635 | 0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000,0x99000000, | ||
2636 | 0x99000000,0x99000000,0x93000000,0x87000000,0x74000000,0x5c000000,0x3d000000,0x25000000,0xc000000,0x18000000,0x29000000,0x3d000000,0x4d000000,0x5a000000, | ||
2637 | 0x62000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000, | ||
2638 | 0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x66000000,0x62000000,0x5a000000,0x4d000000,0x3d000000,0x29000000,0x18000000,0x7000000,0xf000000, | ||
2639 | 0x18000000,0x25000000,0x2e000000,0x36000000,0x3b000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000, | ||
2640 | 0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3d000000,0x3b000000,0x36000000,0x2e000000,0x25000000, | ||
2641 | 0x18000000,0xf000000 | ||
2642 | }; | ||
2643 | |||
2666 | static const QRgb txt_data[] = { | 2644 | static const QRgb txt_data[] = { |
2667 | 0xffd6dfed,0xffe5eaf4,0xffe5eaf4,0xffe5eaf4,0xffe3eaf4,0xffdae3f2,0xf9c5cedc,0x49c3b4a9,0x8d28357,0x0,0x0,0x0,0x0,0x0, | 2645 | 0xffd6dfed,0xffe5eaf4,0xffe5eaf4,0xffe5eaf4,0xffe3eaf4,0xffdae3f2,0xf9c5cedc,0x49c3b4a9,0x8d28357,0x0,0x0,0x0,0x0,0x0, |
2668 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffbfeff,0xffedf3fd,0xffe5ce80,0xfbf8cf69,0xafebb785,0x14a74a17,0x0,0x0,0x0,0x0, | 2646 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffbfeff,0xffedf3fd,0xffe5ce80,0xfbf8cf69,0xafebb785,0x14a74a17,0x0,0x0,0x0,0x0, |
2669 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff3f1ed,0xfff8d625,0xfffeb006,0xfbe99141,0x5c9f8f93,0x0,0x0,0x0,0x0, | 2647 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffeffff,0xfff3f1ed,0xfff8d625,0xfffeb006,0xfbe99141,0x5c9f8f93,0x0,0x0,0x0,0x0, |
2670 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8e59f,0xfffdcd09,0xfffc9e10,0xffc49277,0xf89dadc9,0x1a515b6b,0x0,0x0,0x0, | 2648 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff8e59f,0xfffdcd09,0xfffc9e10,0xffc49277,0xf89dadc9,0x1a515b6b,0x0,0x0,0x0, |
2671 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffefaf3,0xfffcdb44,0xfffec219,0xffef9234,0xffc1bfcc,0xffa7b6d0,0x26373e4a,0x0,0x0,0x0, | 2649 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffefaf3,0xfffcdb44,0xfffec219,0xffef9234,0xffc1bfcc,0xffa7b6d0,0x26373e4a,0x0,0x0,0x0, |
2672 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffdedbb,0xfffdd82e,0xfffeb832,0xffdaa27b,0xffccd8eb,0xffafbed6,0x26373e4a,0x0,0x0,0x0, | 2650 | 0xffe4eaf4,0xffffffff,0xffffffff,0xffffffff,0xfffdedbb,0xfffdd82e,0xfffeb832,0xffdaa27b,0xffccd8eb,0xffafbed6,0x26373e4a,0x0,0x0,0x0, |
2673 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfffefdfb,0xfffbe072,0xfffed342,0xfff6a845,0xffd7d0d7,0xffd6e0f1,0xffb6c3d9,0x26373e4a,0x100001f,0x800001f,0x600001e, | 2651 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfffefdfb,0xfffbe072,0xfffed342,0xfff6a845,0xffd7d0d7,0xffd6e0f1,0xffb6c3d9,0x26373e4a,0x100001f,0x800001f,0x600001e, |
2674 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfff7eed3,0xfffde35e,0xfffecd5c,0xffe4b184,0xffe1e9f7,0xffdce4f3,0xffb5c1d7,0x35262b3d,0x1a00001d,0x1d00001b,0x1b00001a, | 2652 | 0xffe4eaf4,0xffffffff,0xffffffff,0xfff7eed3,0xfffde35e,0xfffecd5c,0xffe4b184,0xffe1e9f7,0xffdce4f3,0xffb5c1d7,0x35262b3d,0x1a00001d,0x1d00001b,0x1b00001a, |
2675 | 0xffe4eaf4,0xffffffff,0xfffcfeff,0xfff7dead,0xfffee483,0xfff6c471,0xffdecdc9,0xffd7deec,0xffcdd4e5,0xffaab5cb,0x3e1f2236,0x1e00001a,0x1e00001a,0x1c00001a, | 2653 | 0xffe4eaf4,0xffffffff,0xfffcfeff,0xfff7dead,0xfffee483,0xfff6c471,0xffdecdc9,0xffd7deec,0xffcdd4e5,0xffaab5cb,0x3e1f2236,0x1e00001a,0x1e00001a,0x1c00001a, |
2676 | 0xffe4eaf4,0xffffffff,0xfffbffff,0xffecd3b7,0xfff7dfc0,0xffd6baa9,0xffd3d7e4,0xffcfd6e5,0xffccd3e3,0xffabb6cc,0x3d1f2336,0x17000018,0xf000016,0x7000010, | 2654 | 0xffe4eaf4,0xffffffff,0xfffbffff,0xffecd3b7,0xfff7dfc0,0xffd6baa9,0xffd3d7e4,0xffcfd6e5,0xffccd3e3,0xffabb6cc,0x3d1f2336,0x17000018,0xf000016,0x7000010, |
2677 | 0xffe4eaf4,0xffffffff,0xfffafeff,0xffc8b7af,0xffc2aea9,0xffd7dce6,0xffd4dae7,0xffd0d7e6,0xffd1d8e7,0xffb5c0d6,0x2a303643,0x2000007,0x0,0x0, | 2655 | 0xffe4eaf4,0xffffffff,0xfffafeff,0xffc8b7af,0xffc2aea9,0xffd7dce6,0xffd4dae7,0xffd0d7e6,0xffd1d8e7,0xffb5c0d6,0x2a303643,0x2000007,0x0,0x0, |
2678 | 0xffe4eaf4,0xfffeffff,0xfff9feff,0xffece9eb,0xffeaf0f7,0xffe6ecf6,0xffe0e6f3,0xffe2e9f6,0xffe2eaf8,0xffbecadf,0x26373e4a,0x0,0x0,0x0, | 2656 | 0xffe4eaf4,0xfffeffff,0xfff9feff,0xffece9eb,0xffeaf0f7,0xffe6ecf6,0xffe0e6f3,0xffe2e9f6,0xffe2eaf8,0xffbecadf,0x26373e4a,0x0,0x0,0x0, |
2679 | 0xffcdd7e6,0xffd8dee7,0xffd4dde7,0xffd2dbe7,0xffd0d9e7,0xffced7e6,0xffcad4e5,0xffc6d1e3,0xffc4cfe2,0xffacb9d1,0x26373e4a,0x0,0x0,0x0, | 2657 | 0xffcdd7e6,0xffd8dee7,0xffd4dde7,0xffd2dbe7,0xffd0d9e7,0xffced7e6,0xffcad4e5,0xffc6d1e3,0xffc4cfe2,0xffacb9d1,0x26373e4a,0x0,0x0,0x0, |
2680 | 0x2c737d8f,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x10111316,0x0,0x0,0x0 | 2658 | 0x2c737d8f,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x364e5868,0x10111316,0x0,0x0,0x0 |
2681 | }; | 2659 | }; |
2682 | 2660 | ||
2683 | static const QRgb underline_data[] = { | 2661 | static const QRgb underline_data[] = { |
2684 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2662 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2685 | 0x0,0x0,0x18000000,0x40000000,0x40000000,0x40000000,0x8000000,0x0,0x10000000,0x40000000,0x40000000,0x18000000,0x0,0x0, | 2663 | 0x0,0x0,0x18000000,0x40000000,0x40000000,0x40000000,0x8000000,0x0,0x10000000,0x40000000,0x40000000,0x18000000,0x0,0x0, |
2686 | 0x0,0x0,0x3c000000,0xcf000000,0xff000000,0xb7000000,0x14000000,0x0,0x28000000,0xc3000000,0xcf000000,0x3c000000,0x0,0x0, | 2664 | 0x0,0x0,0x3c000000,0xcf000000,0xff000000,0xb7000000,0x14000000,0x0,0x28000000,0xc3000000,0xcf000000,0x3c000000,0x0,0x0, |
2687 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, | 2665 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, |
2688 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, | 2666 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, |
2689 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, | 2667 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, |
2690 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, | 2668 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, |
2691 | 0x0,0x0,0x0,0x80000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x80000000,0x0,0x0,0x0, | 2669 | 0x0,0x0,0x0,0x80000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x80000000,0x0,0x0,0x0, |
2692 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, | 2670 | 0x0,0x0,0x0,0x7f000000,0xff000000,0x40000000,0x0,0x0,0x0,0x60000000,0x7f000000,0x0,0x0,0x0, |
2693 | 0x0,0x0,0x0,0x50000000,0xdb000000,0x87000000,0xc000000,0x0,0x18000000,0x78000000,0x50000000,0x0,0x0,0x0, | 2671 | 0x0,0x0,0x0,0x50000000,0xdb000000,0x87000000,0xc000000,0x0,0x18000000,0x78000000,0x50000000,0x0,0x0,0x0, |
2694 | 0x0,0x0,0x0,0x0,0x50000000,0xdf000000,0x8f000000,0x7f000000,0x7f000000,0x50000000,0x0,0x0,0x0,0x0, | 2672 | 0x0,0x0,0x0,0x0,0x50000000,0xdf000000,0x8f000000,0x7f000000,0x7f000000,0x50000000,0x0,0x0,0x0,0x0, |
2695 | 0x0,0x0,0x0,0x0,0x0,0x48000000,0x60000000,0x60000000,0x48000000,0x0,0x0,0x0,0x0,0x0, | 2673 | 0x0,0x0,0x0,0x0,0x0,0x48000000,0x60000000,0x60000000,0x48000000,0x0,0x0,0x0,0x0,0x0, |
2696 | 0x0,0x0,0x48000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x48000000,0x0,0x0, | 2674 | 0x0,0x0,0x48000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0xbf000000,0x48000000,0x0,0x0, |
2697 | 0x0,0x0,0xc000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0xc000000,0x0,0x0 | 2675 | 0x0,0x0,0xc000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0xc000000,0x0,0x0 |
2698 | }; | 2676 | }; |
2699 | 2677 | ||
2700 | static const QRgb undo_data[] = { | 2678 | static const QRgb undo_data[] = { |
2701 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2679 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2702 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2680 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2703 | 0x0,0x0,0x0,0x1616ad00,0x4018ab00,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2681 | 0x0,0x0,0x0,0x1616ad00,0x4018ab00,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2704 | 0x0,0x0,0x19009a00,0xc927b325,0xf356c852,0x65058f04,0x4003500,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2682 | 0x0,0x0,0x19009a00,0xc927b325,0xf356c852,0x65058f04,0x4003500,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2705 | 0x0,0x1f008f00,0xc616ab16,0xff75f075,0xff89fc89,0xf63ac63a,0x67038503,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0, | 2683 | 0x0,0x1f008f00,0xc616ab16,0xff75f075,0xff89fc89,0xf63ac63a,0x67038503,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0, |
2706 | 0x1d008300,0xc406a306,0xff2aec2a,0xff39ff39,0xff39ff39,0xff36fc36,0xf611c111,0x63007600,0x2000000,0x0,0x0,0x0,0x0,0x0, | 2684 | 0x1d008300,0xc406a306,0xff2aec2a,0xff39ff39,0xff39ff39,0xff36fc36,0xf611c111,0x63007600,0x2000000,0x0,0x0,0x0,0x0,0x0, |
2707 | 0xca007f00,0xff01b001,0xff03c403,0xff03f003,0xff03f903,0xff03d803,0xff02c102,0xf3008c00,0x53006700,0x2000000,0x0,0x0,0x0,0x0, | 2685 | 0xca007f00,0xff01b001,0xff03c403,0xff03f003,0xff03f903,0xff03d803,0xff02c102,0xf3008c00,0x53006700,0x2000000,0x0,0x0,0x0,0x0, |
2708 | 0x2a004700,0x3d003600,0x75005c00,0xfc00c000,0xff00e800,0xff00c200,0xb1006600,0x44003500,0x24001d00,0x3000000,0x0,0x1006600,0x27006c00,0xb6006f00, | 2686 | 0x2a004700,0x3d003600,0x75005c00,0xfc00c000,0xff00e800,0xff00c200,0xb1006600,0x44003500,0x24001d00,0x3000000,0x0,0x1006600,0x27006c00,0xb6006f00, |
2709 | 0x1000000,0x2000000,0x13005600,0xe7008a00,0xff00d600,0xff00d700,0xfd00a800,0xa1006d00,0x43005a00,0x2a005c00,0x3a005f00,0x83006b00,0xe1006900,0x86004e00, | 2687 | 0x1000000,0x2000000,0x13005600,0xe7008a00,0xff00d600,0xff00d700,0xfd00a800,0xa1006d00,0x43005a00,0x2a005c00,0x3a005f00,0x83006b00,0xe1006900,0x86004e00, |
2710 | 0x0,0x0,0x0,0x6d005d00,0xfd009a00,0xff00c600,0xff00c700,0xff00b700,0xfa009d00,0xef009200,0xf9009a00,0xfa008100,0xa0004f00,0x23000e00, | 2688 | 0x0,0x0,0x0,0x6d005d00,0xfd009a00,0xff00c600,0xff00c700,0xff00b700,0xfa009d00,0xef009200,0xf9009a00,0xfa008100,0xa0004f00,0x23000e00, |
2711 | 0x0,0x0,0x0,0x6003300,0x74005500,0xec007b00,0xfd009d00,0xff00a800,0xff00a600,0xfb009200,0xdb006b00,0x71003c00,0x1e000800,0x3000000, | 2689 | 0x0,0x0,0x0,0x6003300,0x74005500,0xec007b00,0xfd009d00,0xff00a800,0xff00a600,0xfb009200,0xdb006b00,0x71003c00,0x1e000800,0x3000000, |
2712 | 0x0,0x0,0x0,0x0,0x3000000,0x26003100,0x69004700,0x7c004600,0x7b004500,0x5f003900,0x26000c00,0xc000000,0x1000000,0x0, | 2690 | 0x0,0x0,0x0,0x0,0x3000000,0x26003100,0x69004700,0x7c004600,0x7b004500,0x5f003900,0x26000c00,0xc000000,0x1000000,0x0, |
2713 | 0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0x5000000,0x5000000,0x4000000,0x1000000,0x0,0x0,0x0, | 2691 | 0x0,0x0,0x0,0x0,0x0,0x0,0x3000000,0x5000000,0x5000000,0x4000000,0x1000000,0x0,0x0,0x0, |
2714 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 2692 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2715 | }; | 2693 | }; |
2716 | 2694 | ||
2717 | static const QRgb uninstall_data[] = { | ||
2718 | 0x0,0x0,0x0,0xdffae00,0x55ffbd19,0xc3ffcf30,0x9df7bc1b,0xce89a00,0x74fbb81d,0x76f6b41f,0xbe79100,0x0,0x0,0x0, | ||
2719 | 0xffae00,0xcffb30b,0x3fffbf27,0xa9ffd045,0xedffeb6a,0xfefff86c,0xf3fdd83b,0x98f1b21f,0xeefee567,0xf1fbe459,0x86edab1c,0x13db8405,0xcb7100,0x0, | ||
2720 | 0xbffae00,0x84ffc43a,0xebffe37f,0xfffffa9d,0xfffffc86,0xffffe957,0xfffed333,0xfffbbe27,0xfffce967,0xfffff865,0xfaf9d43d,0x9ae69813,0x1bd47704,0xd26800, | ||
2721 | 0x15ffae00,0x95fec845,0xfefff4a6,0xffffee82,0xffffd33c,0xffffd231,0xffffe549,0xfffec927,0xfff8bf27,0xfff9d43f,0xffffdb3d,0xfcf9bc20,0xa7dc8207,0x15ad5300, | ||
2722 | 0x93fdb00a,0xc1fec233,0xfcffc739,0xffffc120,0xffffcf2d,0xffffe245,0xfffff25a,0xfffbce39,0xfff5b731,0xffeba025,0xfff0ab21,0xf7efa513,0x91ba6704,0x164f2500, | ||
2723 | 0x2df0a80c,0xb3fac63d,0xfbffda50,0xfffec523,0xfffed839,0xfffee851,0xfff4c253,0xffe76c3b,0xffe97158,0xffe7725c,0xffd95932,0xeecf5e0d,0x9dbe5a03,0x45af4600, | ||
2724 | 0x0,0x29f2aa0a,0xd3fbc021,0xfffcd236,0xfff9c62c,0xfff3b844,0xffe65745,0xfffcb3b3,0xffffcaca,0xffffcbcb,0xfffbbcbc,0xfedc5e50,0xc2b63e09,0x487b3000, | ||
2725 | 0x0,0x10f9a806,0xbffbb20f,0xfff9b416,0xfff2a414,0xffe14617,0xfffb7e7e,0xffffeaea,0xffffc3c3,0xffffbdbd,0xffffe8e8,0xfff97b7b,0xc1c71c1c,0x14980000, | ||
2726 | 0x0,0x10f4a50c,0xbffabc1f,0xfffed131,0xfff3ac27,0xffe8361d,0xffff4e4e,0xffff9393,0xffffecec,0xffffeded,0xfff87b7b,0xfff31212,0xe2d50202,0x2f9c0000, | ||
2727 | 0x0,0xeed990a,0xb3f3b324,0xfefedf47,0xfff5c441,0xffe72a13,0xffff1616,0xffff7070,0xffffe8e8,0xfffeebeb,0xfff86b6b,0xfff50606,0xe4d60000,0x31980000, | ||
2728 | 0x0,0x2e78800,0x38de890b,0xcfeaae2d,0xfef7db56,0xffe14e22,0xfffc1f1f,0xffffd1d1,0xffff8181,0xffff7373,0xffffd4d4,0xfffa2f2f,0xc2c30303,0x158e0000, | ||
2729 | 0x0,0x0,0x1be6800,0x2ccc7308,0xbfe09c31,0xfce69d52,0xffdf3127,0xfffc5050,0xffff3737,0xffff3434,0xfffc5151,0xe9d51f1f,0x57a50606,0x18c0000, | ||
2730 | 0x0,0x0,0x0,0x1b55a00,0x26c2640c,0xacd58030,0xebd06731,0xdbc5231c,0xe4dc3232,0xe4dd3434,0xc2c42222,0x57a50d0d,0x98e0202,0x0, | ||
2731 | 0x0,0x0,0x0,0x0,0x0,0x1bae4501,0x4e933902,0x27650900,0x31940505,0x30980606,0x158d0000,0x18b0000,0x0,0x0 | ||
2732 | }; | ||
2733 | |||
2734 | static const QRgb uninstalled_data[] = { | 2695 | static const QRgb uninstalled_data[] = { |
2735 | 0x0,0x0,0x0,0x0,0xffae00,0x18fdaf06,0x84febf2b,0xebfdce4b,0x6cefb119,0x6966500,0x0,0x0,0x0,0x0, | 2696 | 0x0,0x0,0x0,0x0,0xffae00,0x18fdaf06,0x84febf2b,0xebfdce4b,0x6cefb119,0x6966500,0x0,0x0,0x0,0x0, |
2736 | 0x0,0x0,0x0,0xffdad00,0x6efebe30,0xdeffda77,0xfffff7aa,0xfffbf087,0xf8fde757,0x83eaa914,0x9976000,0x0,0x0,0x0, | 2697 | 0x0,0x0,0x0,0xffdad00,0x6efebe30,0xdeffda77,0xfffff7aa,0xfffbf087,0xf8fde757,0x83eaa914,0x9976000,0x0,0x0,0x0, |
2737 | 0x0,0x6fbab00,0x53feb10e,0xcfffd478,0xfefff3c3,0xffffffc3,0xffffff9f,0xfff5e265,0xfffff660,0xfcfcd539,0x93e3960a,0xa955800,0x0,0x0, | 2698 | 0x0,0x6fbab00,0x53feb10e,0xcfffd478,0xfefff3c3,0xffffffc3,0xffffff9f,0xfff5e265,0xfffff660,0xfcfcd539,0x93e3960a,0xa955800,0x0,0x0, |
2738 | 0x0,0x93ffbe2f,0xfbffe4a8,0xfffff7d9,0xfffdf3b3,0xfffaed8e,0xfff5e36a,0xfff8d542,0xffffde40,0xfffed233,0xfdfbba1a,0xa5dd8502,0x139f5600,0x0, | 2699 | 0x0,0x93ffbe2f,0xfbffe4a8,0xfffff7d9,0xfffdf3b3,0xfffaed8e,0xfff5e36a,0xfff8d542,0xffffde40,0xfffed233,0xfdfbba1a,0xa5dd8502,0x139f5600,0x0, |
2739 | 0x0,0xafffba23,0xffffc850,0xfffff9be,0xffffffa7,0xffffff83,0xfffffa66,0xffffd534,0xfffdca28,0xfff8b417,0xfff6a408,0xfff29900,0x9fd27500,0x6000000, | 2700 | 0x0,0xafffba23,0xffffc850,0xfffff9be,0xffffffa7,0xffffff83,0xfffffa66,0xffffd534,0xfffdca28,0xfff8b417,0xfff6a408,0xfff29900,0x9fd27500,0x6000000, |
2740 | 0x0,0xafffbc25,0xffffb106,0xffffc736,0xfffff77b,0xfffffb6a,0xffffe84d,0xffffd434,0xffffc824,0xffffb70e,0xffffad01,0xffffac00,0xbed67e00,0xd000000, | 2701 | 0x0,0xafffbc25,0xffffb106,0xffffc736,0xfffff77b,0xfffffb6a,0xffffe84d,0xffffd434,0xffffc824,0xffffb70e,0xffffad01,0xffffac00,0xbed67e00,0xd000000, |
2741 | 0x0,0xafffc12b,0xffffbf19,0xffffc01a,0xffffcd2e,0xffffe84f,0xfffdd538,0xffffca27,0xffffbd15,0xffffb60d,0xffffb40b,0xffffb309,0xbed37d04,0xd000000, | 2702 | 0x0,0xafffc12b,0xffffbf19,0xffffc01a,0xffffcd2e,0xffffe84f,0xfffdd538,0xffffca27,0xffffbd15,0xffffb60d,0xffffb40b,0xffffb309,0xbed37d04,0xd000000, |
2742 | 0x0,0xafffc732,0xffffd02e,0xffffd02e,0xffffd12f,0xffffd435,0xfffed03c,0xffffc823,0xffffc621,0xffffc520,0xffffc41e,0xffffc21d,0xbed0800e,0xd000000, | 2703 | 0x0,0xafffc732,0xffffd02e,0xffffd02e,0xffffd12f,0xffffd435,0xfffed03c,0xffffc823,0xffffc621,0xffffc520,0xffffc41e,0xffffc21d,0xbed0800e,0xd000000, |
2743 | 0x0,0xaffdc938,0xffffdf41,0xffffe042,0xffffe143,0xffffe144,0xffffde4a,0xffffd635,0xffffd534,0xffffd433,0xffffd231,0xffffd12f,0xbece8417,0xd000000, | 2704 | 0x0,0xaffdc938,0xffffdf41,0xffffe042,0xffffe143,0xffffe144,0xffffde4a,0xffffd635,0xffffd534,0xffffd433,0xffffd231,0xffffd12f,0xbece8417,0xd000000, |
2744 | 0x0,0x97f6b51f,0xfffee44b,0xffffef56,0xfffff057,0xfffff157,0xffffeb5a,0xffffe548,0xffffe347,0xffffe245,0xffffe144,0xffffe042,0xbecd891f,0xd000000, | 2705 | 0x0,0x97f6b51f,0xfffee44b,0xffffef56,0xfffff057,0xfffff157,0xffffeb5a,0xffffe548,0xffffe347,0xffffe245,0xffffe144,0xffffe042,0xbecd891f,0xd000000, |
2745 | 0x0,0x16bb7601,0xafe5a218,0xfefbeb5b,0xfffffd6d,0xfffffe6e,0xfffff76b,0xfffff45b,0xfffff35a,0xfffff158,0xfffeee56,0xfcf1cd44,0xa7b76916,0xc000000, | 2706 | 0x0,0x16bb7601,0xafe5a218,0xfefbeb5b,0xfffffd6d,0xfffffe6e,0xfffff76b,0xfffff45b,0xfffff35a,0xfffff158,0xfffeee56,0xfcf1cd44,0xa7b76916,0xc000000, |
2746 | 0x0,0x0,0xd784600,0xa2db911d,0xfcf6e06f,0xffffff94,0xfffffd85,0xfffffe73,0xfffffd6f,0xfdf4e15b,0xd7d0942e,0x708c3f08,0x201b0a00,0x4000000, | 2707 | 0x0,0x0,0xd784600,0xa2db911d,0xfcf6e06f,0xffffff94,0xfffffd85,0xfffffe73,0xfffffd6f,0xfdf4e15b,0xd7d0942e,0x708c3f08,0x201b0a00,0x4000000, |
2747 | 0x0,0x0,0x0,0xb6e3a00,0x90cf8122,0xfaf1d387,0xfffffca7,0xfff7ea83,0xe2d6a045,0x869e5313,0x2c3c1600,0xb000000,0x1000000,0x0, | 2708 | 0x0,0x0,0x0,0xb6e3a00,0x90cf8122,0xfaf1d387,0xfffffca7,0xfff7ea83,0xe2d6a045,0x869e5313,0x2c3c1600,0xb000000,0x1000000,0x0, |
2748 | 0x0,0x0,0x0,0x0,0x9743700,0x7ec0681c,0xf1d99750,0x93a4571b,0x364c1e02,0xe050200,0x2000000,0x0,0x0,0x0 | 2709 | 0x0,0x0,0x0,0x0,0x9743700,0x7ec0681c,0xf1d99750,0x93a4571b,0x364c1e02,0xe050200,0x2000000,0x0,0x0,0x0 |
2749 | }; | 2710 | }; |
2750 | 2711 | ||
2712 | static const QRgb uninstall_data[] = { | ||
2713 | 0x0,0x0,0x0,0xdffae00,0x55ffbd19,0xc3ffcf30,0x9df7bc1b,0xce89a00,0x74fbb81d,0x76f6b41f,0xbe79100,0x0,0x0,0x0, | ||
2714 | 0xffae00,0xcffb30b,0x3fffbf27,0xa9ffd045,0xedffeb6a,0xfefff86c,0xf3fdd83b,0x98f1b21f,0xeefee567,0xf1fbe459,0x86edab1c,0x13db8405,0xcb7100,0x0, | ||
2715 | 0xbffae00,0x84ffc43a,0xebffe37f,0xfffffa9d,0xfffffc86,0xffffe957,0xfffed333,0xfffbbe27,0xfffce967,0xfffff865,0xfaf9d43d,0x9ae69813,0x1bd47704,0xd26800, | ||
2716 | 0x15ffae00,0x95fec845,0xfefff4a6,0xffffee82,0xffffd33c,0xffffd231,0xffffe549,0xfffec927,0xfff8bf27,0xfff9d43f,0xffffdb3d,0xfcf9bc20,0xa7dc8207,0x15ad5300, | ||
2717 | 0x93fdb00a,0xc1fec233,0xfcffc739,0xffffc120,0xffffcf2d,0xffffe245,0xfffff25a,0xfffbce39,0xfff5b731,0xffeba025,0xfff0ab21,0xf7efa513,0x91ba6704,0x164f2500, | ||
2718 | 0x2df0a80c,0xb3fac63d,0xfbffda50,0xfffec523,0xfffed839,0xfffee851,0xfff4c253,0xffe76c3b,0xffe97158,0xffe7725c,0xffd95932,0xeecf5e0d,0x9dbe5a03,0x45af4600, | ||
2719 | 0x0,0x29f2aa0a,0xd3fbc021,0xfffcd236,0xfff9c62c,0xfff3b844,0xffe65745,0xfffcb3b3,0xffffcaca,0xffffcbcb,0xfffbbcbc,0xfedc5e50,0xc2b63e09,0x487b3000, | ||
2720 | 0x0,0x10f9a806,0xbffbb20f,0xfff9b416,0xfff2a414,0xffe14617,0xfffb7e7e,0xffffeaea,0xffffc3c3,0xffffbdbd,0xffffe8e8,0xfff97b7b,0xc1c71c1c,0x14980000, | ||
2721 | 0x0,0x10f4a50c,0xbffabc1f,0xfffed131,0xfff3ac27,0xffe8361d,0xffff4e4e,0xffff9393,0xffffecec,0xffffeded,0xfff87b7b,0xfff31212,0xe2d50202,0x2f9c0000, | ||
2722 | 0x0,0xeed990a,0xb3f3b324,0xfefedf47,0xfff5c441,0xffe72a13,0xffff1616,0xffff7070,0xffffe8e8,0xfffeebeb,0xfff86b6b,0xfff50606,0xe4d60000,0x31980000, | ||
2723 | 0x0,0x2e78800,0x38de890b,0xcfeaae2d,0xfef7db56,0xffe14e22,0xfffc1f1f,0xffffd1d1,0xffff8181,0xffff7373,0xffffd4d4,0xfffa2f2f,0xc2c30303,0x158e0000, | ||
2724 | 0x0,0x0,0x1be6800,0x2ccc7308,0xbfe09c31,0xfce69d52,0xffdf3127,0xfffc5050,0xffff3737,0xffff3434,0xfffc5151,0xe9d51f1f,0x57a50606,0x18c0000, | ||
2725 | 0x0,0x0,0x0,0x1b55a00,0x26c2640c,0xacd58030,0xebd06731,0xdbc5231c,0xe4dc3232,0xe4dd3434,0xc2c42222,0x57a50d0d,0x98e0202,0x0, | ||
2726 | 0x0,0x0,0x0,0x0,0x0,0x1bae4501,0x4e933902,0x27650900,0x31940505,0x30980606,0x158d0000,0x18b0000,0x0,0x0 | ||
2727 | }; | ||
2728 | |||
2751 | static const QRgb up_data[] = { | 2729 | static const QRgb up_data[] = { |
2752 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2730 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2753 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2731 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2754 | 0x0,0x0,0x0,0x0,0xfefefe,0xefefefe,0x486faefe,0x144391fe,0x0,0x0,0x0,0x0,0x0,0x0, | 2732 | 0x0,0x0,0x0,0x0,0xfefefe,0xefefefe,0x486faefe,0x144391fe,0x0,0x0,0x0,0x0,0x0,0x0, |
2755 | 0x0,0x0,0x0,0x1fefefe,0x18eaf4fe,0x8c98cafe,0xf5bdddfd,0xc867a4fb,0x1f1c62e9,0x134cd5,0x0,0x0,0x0,0x0, | 2733 | 0x0,0x0,0x0,0x1fefefe,0x18eaf4fe,0x8c98cafe,0xf5bdddfd,0xc867a4fb,0x1f1c62e9,0x134cd5,0x0,0x0,0x0,0x0, |
2756 | 0x0,0x0,0x1fefefe,0x26c1dffe,0xa792c7fc,0xf9cce3f8,0xfff1f5f7,0xffe7f0f7,0xd07aacf4,0x402064f2,0x11050eb,0x0,0x0,0x0, | 2734 | 0x0,0x0,0x1fefefe,0x26c1dffe,0xa792c7fc,0xf9cce3f8,0xfff1f5f7,0xffe7f0f7,0xd07aacf4,0x402064f2,0x11050eb,0x0,0x0,0x0, |
2757 | 0x0,0x2fefefe,0x31bfddfe,0xc27ab6fa,0xffc1daef,0xffdee8ed,0xffdee8ed,0xffdee8ed,0xffd7e5ed,0xef7caaf3,0x561959f4,0x0,0x0,0x0, | 2735 | 0x0,0x2fefefe,0x31bfddfe,0xc27ab6fa,0xffc1daef,0xffdee8ed,0xffdee8ed,0xffdee8ed,0xffd7e5ed,0xef7caaf3,0x561959f4,0x0,0x0,0x0, |
2758 | 0x1fefefe,0x34badafe,0xca73b1f5,0xfeb8d2e4,0xffc9dae1,0xffc9dae1,0xffa8c7e6,0xffc5d8e2,0xffc9dae1,0xffc6d8e1,0xf37fa9e9,0x5e1150f0,0x0,0x0, | 2736 | 0x1fefefe,0x34badafe,0xca73b1f5,0xfeb8d2e4,0xffc9dae1,0xffc9dae1,0xffa8c7e6,0xffc5d8e2,0xffc9dae1,0xffc6d8e1,0xf37fa9e9,0x5e1150f0,0x0,0x0, |
2759 | 0x6fefefe,0x9962a7f6,0xffa3c2d9,0xffb4c9d5,0xffb2c8d5,0xfb7da3dd,0x98173fb1,0xd23f71e9,0xffa1bed8,0xffb4c9d5,0xffb3c9d5,0xe95e91dd,0x250727b8,0x0, | 2737 | 0x6fefefe,0x9962a7f6,0xffa3c2d9,0xffb4c9d5,0xffb2c8d5,0xfb7da3dd,0x98173fb1,0xd23f71e9,0xffa1bed8,0xffb4c9d5,0xffb3c9d5,0xe95e91dd,0x250727b8,0x0, |
2760 | 0x7fefefe,0xa25097f2,0xff91b5cd,0xff9dbaca,0xf05b89cf,0x851238b0,0xe020927,0x1e0833e9,0xbb2e62e7,0xfb84a9cf,0xff9fbcc9,0xf05689d0,0x32051d9d,0x0, | 2738 | 0x7fefefe,0xa25097f2,0xff91b5cd,0xff9dbaca,0xf05b89cf,0x851238b0,0xe020927,0x1e0833e9,0xbb2e62e7,0xfb84a9cf,0xff9fbcc9,0xf05689d0,0x32051d9d,0x0, |
2761 | 0x6fefefe,0x9e3e85ef,0xff7da7c5,0xeb4671ca,0x5908227a,0xa02040d,0x0,0xfefefe,0x100b29cf,0x8c1f4fdf,0xfd7098cb,0xf04c7fca,0x32041a9c,0x0, | 2739 | 0x6fefefe,0x9e3e85ef,0xff7da7c5,0xeb4671ca,0x5908227a,0xa02040d,0x0,0xfefefe,0x100b29cf,0x8c1f4fdf,0xfd7098cb,0xf04c7fca,0x32041a9c,0x0, |
2762 | 0x3fefefe,0x80215aee,0xe22655d5,0x4a061a7c,0x5000000,0x0,0x0,0x0,0xfefefe,0x41631d0,0x83133be6,0xe22459d4,0x2b031589,0x0, | 2740 | 0x3fefefe,0x80215aee,0xe22655d5,0x4a061a7c,0x5000000,0x0,0x0,0x0,0xfefefe,0x41631d0,0x83133be6,0xe22459d4,0x2b031589,0x0, |
2763 | 0xfefefe,0xc132ee4,0x15031063,0x2000000,0x0,0x0,0x0,0x0,0x0,0xfefefe,0x1081568,0x1c031799,0x5010102,0x0, | 2741 | 0xfefefe,0xc132ee4,0x15031063,0x2000000,0x0,0x0,0x0,0x0,0x0,0xfefefe,0x1081568,0x1c031799,0x5010102,0x0, |
2764 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, | 2742 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, |
2765 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 | 2743 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 |
2766 | }; | 2744 | }; |
2767 | 2745 | ||
2746 | static const QRgb UtilsIcon_data[] = { | ||
2747 | 0x0,0xf0f0f0,0x42f7eb5,0x1c3889c3,0x4c3988ca,0x7a3a8cd4,0xa43995e3,0x9d1e93ed,0x721290f2,0x430888f5,0x120162d6,0x20a162b,0xa0a0a,0xa0a0a, | ||
2748 | 0xf0f0f0,0x82e85c2,0x453994d2,0xa53fa8e9,0xea63c1fc,0xff8bd2ff,0xff96d4ff,0xff75c3ff,0xf94eb0ff,0xd6228ef6,0x700558bd,0x21031d43,0x7050b17,0x10a0a0a, | ||
2749 | 0x43b79af,0x444594d0,0xcc61b5f0,0xff91d7ff,0xffb8e7ff,0xffbde7ff,0xffabdfff,0xff8cceff,0xff6eb9ff,0xff3f9aff,0xdc0d65d4,0x7c002e77,0x24011235,0x607090d, | ||
2750 | 0x1c4587bb,0xa050a4e5,0xff9fd8ff,0xffd4f0ff,0xffdcf3ff,0xffc2eaff,0xffc9ebfe,0xffb2ddfe,0xff52a9ff,0xff3691ff,0xfa0c6bef,0xcd0041ad,0x62001e59,0x19070c18, | ||
2751 | 0x4c418cc4,0xe36bc1fa,0xffc2e9ff,0xffe4f5ff,0xffe9f7ff,0xffceeeff,0xfff6fbfd,0xffe5f1fd,0xff3397ff,0xfe177bfd,0xfe035eec,0xef0043bb,0xa7002570,0x3b070f22, | ||
2752 | 0x9f1e96ea,0xfd87d1ff,0xffc6ecff,0xffd0efff,0xffd9f2ff,0xffc9eaff,0xffb5e0ff,0xff85c2ff,0xff338dfe,0xfe0e6bf6,0xfe0050e0,0xfc003fb6,0xd600287e,0x69081022, | ||
2753 | 0xf317a4fe,0xff88d1ff,0xffb0e3ff,0xff9bdeff,0xffaae1ff,0xffe3f4fe,0xfff1f8fd,0xffd4e7fd,0xff2c82fc,0xfe0c5eed,0xfe0047d7,0xfe003bb4,0xf1002986,0x85081023, | ||
2754 | 0xda0d96e0,0xff6ec3ff,0xff8dd3ff,0xff61c4ff,0xff6dc3ff,0xff6ebcff,0xffebf5fd,0xffe0ebfc,0xff186af8,0xfe014fe9,0xfe003dc8,0xff0034ac,0xf4002683,0x87080f23, | ||
2755 | 0x860b81c1,0xfe3ba8fc,0xff60bcff,0xff3cacff,0xff3ba4ff,0xff3b9afe,0xffe4effc,0xffdee8fb,0xff0857ec,0xfe0045d3,0xfe0037b7,0xff002e9c,0xd0001e6b,0x6e080d1b, | ||
2756 | 0x330c70ae,0xda0e87e1,0xfd2b9ffc,0xff1a93ff,0xff2e91f4,0xff64a8f7,0xffebf2fc,0xffe8effa,0xff4c7fe4,0xfe0d43be,0xfe0030a3,0xf0002588,0x9a021547,0x4b080b11, | ||
2757 | 0x904507e,0x700265a5,0xec037ad9,0xff0474ec,0xff2675db,0xff6e9ae1,0xff7ea2e2,0xff7e9ddd,0xff6586ce,0xfe113fab,0xf2002788,0xbd00175b,0x6a060c21,0x2b0a0a0a, | ||
2758 | 0x2121a20,0x23073d63,0x81014c8f,0xd100479f,0xf40046a9,0xfe0045b4,0xff003eb6,0xff0039ae,0xff00329b,0xf500298a,0xbe001b63,0x79030d2d,0x42080a12,0x120a0a0a, | ||
2759 | 0xa0a0a,0x60a0a0a,0x2006172c,0x64011f4b,0xa9002663,0xd5002c7a,0xfa002f8a,0xe700297e,0xc9001f66,0xa7001851,0x71000d31,0x3f050712,0x1b0a0a0a,0x30a0a0a, | ||
2760 | 0xa0a0a,0x10a0a0a,0x60a0a0a,0x19070c17,0x39070f1f,0x67081021,0x87081225,0x89080f1f,0x78070b19,0x4f02061a,0x24070911,0xb07070d,0x40a0a0a,0xa0a0a | ||
2761 | }; | ||
2762 | |||
2768 | static const QRgb volume_data[] = { | 2763 | static const QRgb volume_data[] = { |
2769 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, | 2764 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff, |
2770 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xff000000,0x24000000,0xc000000,0xffffff,0xffffff,0xffffff,0xffffff, | 2765 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xff000000,0x24000000,0xc000000,0xffffff,0xffffff,0xffffff,0xffffff, |
2771 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xff000000,0x6b000000,0x24000000,0xff000000,0x18000000,0xc000000,0xffffff, | 2766 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xff000000,0x6b000000,0x24000000,0xff000000,0x18000000,0xc000000,0xffffff, |
2772 | 0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xffffffff,0xff000000,0x8f000000,0x30000000,0x18000000,0xff000000,0x30000000,0xc000000, | 2767 | 0xffffff,0xffffff,0xffffff,0xffffff,0xff000000,0xffffffff,0xffffffff,0xff000000,0x8f000000,0x30000000,0x18000000,0xff000000,0x30000000,0xc000000, |
2773 | 0xff000000,0xff000000,0xff000000,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xff000000,0x8f000000,0xff000000,0x24000000,0x3c000000,0xff000000,0x30000000, | 2768 | 0xff000000,0xff000000,0xff000000,0xff000000,0xffffffff,0xffffffff,0xffffffff,0xff000000,0x8f000000,0xff000000,0x24000000,0x3c000000,0xff000000,0x30000000, |
2774 | 0xff000000,0xffd5eaff,0xffd6eaff,0xffd6eaff,0xffd5e9ff,0xffd6e9ff,0xffd6e9ff,0xff000000,0x8f000000,0x48000000,0xff000000,0x3c000000,0xff000000,0x54000000, | 2769 | 0xff000000,0xffcde6ff,0xffcee6ff,0xffcee6ff,0xffcde5ff,0xffcee5ff,0xffcee5ff,0xff000000,0x8f000000,0x48000000,0xff000000,0x3c000000,0xff000000,0x54000000, |
2775 | 0xff000000,0xff9dceff,0xff9dceff,0xff9dceff,0xff9dceff,0xff9dcdff,0xff9dcdff,0xff000000,0x8f000000,0x3c000000,0xff000000,0x54000000,0xff000000,0x60000000, | 2770 | 0xff000000,0xff8ec5ff,0xff8ec5ff,0xff8ec5ff,0xff8ec5ff,0xff8ec4ff,0xff8ec4ff,0xff000000,0x8f000000,0x3c000000,0xff000000,0x54000000,0xff000000,0x60000000, |
2776 | 0xff000000,0xff60b0ff,0xff60b1ff,0xff60b0ff,0xff61b1ff,0xff60b1ff,0xff60b1ff,0xff000000,0x8f000000,0x30000000,0xff000000,0x60000000,0xff000000,0x60000000, | 2771 | 0xff000000,0xff4ea3ff,0xff4ea4ff,0xff4ea3ff,0xff4fa4ff,0xff4ea4ff,0xff4ea4ff,0xff000000,0x8f000000,0x30000000,0xff000000,0x60000000,0xff000000,0x60000000, |
2777 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff2a9aff,0xff2a9aff,0xff2a9aff,0xff000000,0x8f000000,0xff000000,0x3c000000,0x54000000,0xff000000,0x60000000, | 2772 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff1d8aff,0xff1d8aff,0xff1d8aff,0xff000000,0x8f000000,0xff000000,0x3c000000,0x54000000,0xff000000,0x60000000, |
2778 | 0x24000000,0x6b000000,0x8f000000,0x8f000000,0xff000000,0xff2a9aff,0xff2a9aff,0xff000000,0x8f000000,0x48000000,0x3c000000,0xff000000,0x48000000,0x54000000, | 2773 | 0x24000000,0x6b000000,0x8f000000,0x8f000000,0xff000000,0xff1d8aff,0xff1d8aff,0xff000000,0x8f000000,0x48000000,0x3c000000,0xff000000,0x48000000,0x54000000, |
2779 | 0xc000000,0x24000000,0x30000000,0x30000000,0x48000000,0xff000000,0xff2a9aff,0xff000000,0x8f000000,0x3c000000,0xff000000,0x3c000000,0x48000000,0x30000000, | 2774 | 0xc000000,0x24000000,0x30000000,0x30000000,0x48000000,0xff000000,0xff1d8aff,0xff000000,0x8f000000,0x3c000000,0xff000000,0x3c000000,0x48000000,0x30000000, |
2780 | 0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x3c000000,0xff000000,0xff000000,0x8f000000,0x30000000,0x18000000,0x3c000000,0x30000000,0xc000000, | 2775 | 0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x3c000000,0xff000000,0xff000000,0x8f000000,0x30000000,0x18000000,0x3c000000,0x30000000,0xc000000, |
2781 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x3c000000,0x77000000,0x6b000000,0x24000000,0xc000000,0x18000000,0xc000000,0xffffff, | 2776 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x3c000000,0x77000000,0x6b000000,0x24000000,0xc000000,0x18000000,0xc000000,0xffffff, |
2782 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x24000000,0x24000000,0xc000000,0xffffff,0xffffff,0xffffff,0xffffff | 2777 | 0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xffffff,0xc000000,0x24000000,0x24000000,0xc000000,0xffffff,0xffffff,0xffffff,0xffffff |
2783 | }; | 2778 | }; |
2784 | 2779 | ||
2785 | static const QRgb wait_data[] = { | 2780 | static const QRgb wait_data[] = { |
2786 | 0x1000000,0x1d000000,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0x28000000,0xb000000,0x5000000, | 2781 | 0x1000000,0x1d000000,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0x28000000,0xb000000,0x5000000, |
2787 | 0x3000000,0x15000000,0x33000000,0xff888888,0xff8e8e8e,0xff949494,0xff9b9b9b,0xffa1a1a1,0xffa6a6a6,0xffababab,0x4b000000,0x29000000,0x12000000,0x9000000, | 2782 | 0x3000000,0x15000000,0x33000000,0xff777777,0xff7e7e7e,0xff848484,0xff8c8c8c,0xff929292,0xff989898,0xff9d9d9d,0x4b000000,0x29000000,0x12000000,0x9000000, |
2788 | 0x4000000,0xc000000,0x19000000,0xff9a9a9a,0xffa1a1a1,0xffa6a6a6,0xffadadad,0xffb3b3b3,0xffb7b7b7,0xffbbbbbb,0x41000000,0x2b000000,0x19000000,0xc000000, | 2783 | 0x4000000,0xc000000,0x19000000,0xff8a8a8a,0xff929292,0xff989898,0xff9f9f9f,0xffa6a6a6,0xffababab,0xffafafaf,0x41000000,0x2b000000,0x19000000,0xc000000, |
2789 | 0x4000000,0xe000000,0x1d000000,0xff888888,0xff8b8b8b,0xff8e8e8e,0xff919191,0xff929292,0xff949494,0xff929292,0x4d000000,0x32000000,0x1d000000,0xe000000, | 2784 | 0x4000000,0xe000000,0x1d000000,0xff777777,0xff7a7a7a,0xff7e7e7e,0xff818181,0xff828282,0xff848484,0xff828282,0x4d000000,0x32000000,0x1d000000,0xe000000, |
2790 | 0x4000000,0xe000000,0x1e000000,0xcc515151,0xff7a7a7a,0xff7b7b7b,0xff7c7c7c,0xff7c7c7c,0xff7b7b7b,0xda4d4d4d,0x51000000,0x34000000,0x1e000000,0xe000000, | 2785 | 0x4000000,0xe000000,0x1e000000,0xcc404040,0xff696969,0xff6a6a6a,0xff6b6b6b,0xff6b6b6b,0xff6a6a6a,0xda3c3c3c,0x51000000,0x34000000,0x1e000000,0xe000000, |
2791 | 0x4000000,0xc000000,0x1b000000,0x31000000,0xd24e4e4e,0xff7a7a7a,0xff7a7a7a,0xff7a7a7a,0xde4b4b4b,0x6a000000,0x4f000000,0x31000000,0x1b000000,0xc000000, | 2786 | 0x4000000,0xc000000,0x1b000000,0x31000000,0xd23d3d3d,0xff686868,0xff686868,0xff686868,0xde3a3a3a,0x6a000000,0x4f000000,0x31000000,0x1b000000,0xc000000, |
2792 | 0x2000000,0xa000000,0x17000000,0x2c000000,0x48000000,0xd74f4f4f,0xff838383,0xde4e4e4e,0x78000000,0x63000000,0x48000000,0x2c000000,0x17000000,0xa000000, | 2787 | 0x2000000,0xa000000,0x17000000,0x2c000000,0x48000000,0xd73e3e3e,0xff727272,0xde3d3d3d,0x78000000,0x63000000,0x48000000,0x2c000000,0x17000000,0xa000000, |
2793 | 0x2000000,0x7000000,0x13000000,0x28000000,0x41000000,0xd5595959,0xffa1a1a1,0xdc5b5b5b,0x70000000,0x5b000000,0x41000000,0x28000000,0x13000000,0x7000000, | 2788 | 0x2000000,0x7000000,0x13000000,0x28000000,0x41000000,0xd5474747,0xff929292,0xdc494949,0x70000000,0x5b000000,0x41000000,0x28000000,0x13000000,0x7000000, |
2794 | 0x2000000,0x7000000,0x13000000,0x28000000,0xce636363,0xffadadad,0xffb6b6b6,0xffbdbdbd,0xdb6f6f6f,0x5b000000,0x41000000,0x28000000,0x13000000,0x7000000, | 2789 | 0x2000000,0x7000000,0x13000000,0x28000000,0xce515151,0xffa0a0a0,0xffa9a9a9,0xffb1b1b1,0xdb5d5d5d,0x5b000000,0x41000000,0x28000000,0x13000000,0x7000000, |
2795 | 0x2000000,0xa000000,0x17000000,0xca646464,0xffababab,0xffaeaeae,0xffadadad,0xffc2c2c2,0xffc7c7c7,0xd87b7b7b,0x48000000,0x2c000000,0x17000000,0xa000000, | 2790 | 0x2000000,0xa000000,0x17000000,0xca525252,0xff9d9d9d,0xffa1a1a1,0xffa0a0a0,0xffb7b7b7,0xffbdbdbd,0xd86a6a6a,0x48000000,0x2c000000,0x17000000,0xa000000, |
2796 | 0x4000000,0xc000000,0x1b000000,0xffa3a3a3,0xffababab,0xffa4a4a4,0xff909090,0xffc2c2c2,0xffc8c8c8,0xffcecece,0x4f000000,0x31000000,0x1b000000,0xc000000, | 2791 | 0x4000000,0xc000000,0x1b000000,0xff949494,0xff9d9d9d,0xff969696,0xff808080,0xffb7b7b7,0xffbebebe,0xffc5c5c5,0x4f000000,0x31000000,0x1b000000,0xc000000, |
2797 | 0x4000000,0xe000000,0x1e000000,0xffa0a0a0,0xff999999,0xff848484,0xff7b7b7b,0xff888888,0xff8e8e8e,0xff8d8d8d,0x51000000,0x34000000,0x1e000000,0xe000000, | 2792 | 0x4000000,0xe000000,0x1e000000,0xff919191,0xff898989,0xff737373,0xff6a6a6a,0xff777777,0xff7e7e7e,0xff7c7c7c,0x51000000,0x34000000,0x1e000000,0xe000000, |
2798 | 0x4000000,0x19000000,0x3d000000,0xff707070,0xff696969,0xff656565,0xff656565,0xff656565,0xff656565,0xff656565,0x66000000,0x3c000000,0x1d000000,0xe000000, | 2793 | 0x4000000,0x19000000,0x3d000000,0xff5e5e5e,0xff575757,0xff535353,0xff535353,0xff535353,0xff535353,0xff535353,0x66000000,0x3c000000,0x1d000000,0xe000000, |
2799 | 0x4000000,0x23000000,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0xffa77843,0x3f000000,0x19000000,0xc000000 | 2794 | 0x4000000,0x23000000,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0xff996633,0x3f000000,0x19000000,0xc000000 |
2800 | }; | 2795 | }; |
2801 | 2796 | ||
2802 | static const QRgb week_data[] = { | 2797 | static const QRgb week_data[] = { |
2803 | 0xe483addd,0xf18cb5e6,0xf181b0e6,0xf175aae6,0xf169a4e6,0xf15c9ee6,0xf1549ae6,0xf15297e6,0xf15298e6,0xf15298e6,0xf15599e7,0xf14597e8,0xa315588d,0x17002741, | 2798 | 0x343b98e5,0x7254a9e9,0x7b52a5e3,0x7b50a4e3,0x7b4fa4e3,0x7b4ea3e2,0x7b4da3e2,0x7b4ba2e2,0x7b4aa1e2,0x7b49a1e2,0x7b47a0e1,0x7a479fe1,0x492c7cbc,0xe00162b, |
2804 | 0xf592b8e5,0xffafd4fd,0xff95c7fd,0xff77b9fd,0xff57a9fd,0xff389afd,0xff268efd,0xff2188fc,0xff2388fd,0xff2388fd,0xff2389fe,0xff1d8afb,0xc208518c,0x30001827, | 2799 | 0xc767bcf7,0xf766bef6,0xf94fb5f3,0xf94eb5f3,0xf94cb5f3,0xf94bb5f2,0xf94ab4f3,0xf948b4f3,0xf947b4f3,0xf946b4f3,0xf944b3f3,0xf94bb5f4,0xd352aae5,0x4b033c65, |
2805 | 0xf19fbfe5,0xffd2e5f9,0xffb8d9f7,0xffb7d8f8,0xffb5d8f8,0xff9dccf7,0xffb2d7f9,0xff87c5f3,0xffa7d2f9,0xff96c9f7,0xffb1d7fb,0xff8bc6f6,0xc4255e89,0x34001525, | 2800 | 0xe94db4f6,0xff16a6e9,0xff04a1e4,0xff05a2e4,0xff07a3e5,0xff09a4e5,0xff0ba5e5,0xff0da6e6,0xff0fa8e6,0xff12a8e7,0xff14a9e7,0xff15a9e9,0xef34a1e4,0x74083858, |
2806 | 0xf1a9c5e6,0xffdef0fb,0xffacd8f7,0xffbbdff8,0xffc7e5fa,0xff9dd1f5,0xffe0f3fd,0xff8ec9f4,0xffceeafb,0xffa6d6f7,0xffe6f6fe,0xffadd9f6,0xc42d6189,0x34001425, | 2801 | 0xe96cbff6,0xff84cdf6,0xff71c6f4,0xff71c6f5,0xff70c5f5,0xff6fc4f5,0xff6ec3f4,0xff6ec3f4,0xff6ec2f5,0xff6ec2f5,0xff6dc2f4,0xff71c2f5,0xf05fafe4,0x79013455, |
2807 | 0xf1a8c5e6,0xffddf0fc,0xffabd8f7,0xffb9def9,0xffc3e4fa,0xff9bd0f5,0xffd8effd,0xff8dc9f4,0xffc7e7fc,0xffa2d4f7,0xffddf3ff,0xffa6d6f7,0xc42b6089,0x34001425, | 2802 | 0xe96eb7e7,0xffd8dee3,0xffdbe0e4,0xffd3d8dd,0xffdae1e6,0xffced5da,0xffd8e0e6,0xffced6dc,0xffd4dde3,0xffced7de,0xffcfd8df,0xffd3dbe1,0xf07ab1d5,0x79003453, |
2808 | 0xf1a7c5e6,0xffdaeffc,0xffaad7f7,0xffb7def9,0xffc1e3fa,0xff9ad0f5,0xffd5eefd,0xff8cc9f4,0xffc4e6fc,0xffa1d4f7,0xffd8f2ff,0xffa3d5f7,0xc42a6089,0x34001425, | 2803 | 0xe96bb4e2,0xffeaeaea,0xfff2f0ee,0xffe5e3e1,0xfff7f5f3,0xffe1dfdd,0xfff7f6f3,0xffe6e4e2,0xfff2f0ee,0xffeae7e5,0xffeceae8,0xfff3efec,0xf080b3d2,0x79013454, |
2809 | 0xf1a6c4e6,0xffd8effc,0xffa8d7f7,0xffb5ddf9,0xffbee2fa,0xff9ad0f5,0xffd2edfd,0xff8cc9f4,0xffc1e5fc,0xffa0d4f7,0xffd5f1ff,0xffa1d5f7,0xc42a6089,0x34001425, | 2804 | 0xe971afc7,0xffefd37b,0xfff7cd79,0xfff1cb71,0xfff9d379,0xfff0c772,0xfff9d777,0xfff2c774,0xfff6d475,0xfff3c876,0xfff4d272,0xfff8ce77,0xf08babb2,0x79003554, |
2810 | 0xf1a4c3e6,0xffd5edfc,0xffa7d6f7,0xffb4dcf8,0xffbde1fa,0xff99cff5,0xffcfebfd,0xff8bc8f4,0xffbee4fc,0xff9ed3f7,0xffd2eeff,0xff9ed3f7,0xc4296089,0x34001425, | 2805 | 0xe976afb1,0xfff7cf26,0xffffb628,0xffffc71d,0xffffbe23,0xffffbe22,0xffffcd1b,0xffffb726,0xffffce1a,0xffffb428,0xffffd218,0xffffb924,0xf096a79d,0x79003554, |
2811 | 0xf1a3c3e6,0xffd2edfc,0xffa5d6f7,0xffb2dcf9,0xffbae0fa,0xff98cff5,0xffcbebfd,0xff8bc8f4,0xffbce3fc,0xff9dd2f7,0xffceeeff,0xff9cd3f7,0xc4285f89,0x34001425, | 2806 | 0xe972aabc,0xfff3ba5b,0xfffbab5a,0xfff9b451,0xfffcb059,0xfff8af52,0xfffdb755,0xfff9ab56,0xfffbb853,0xfffaaa58,0xfffab950,0xfffbad58,0xf094a7a8,0x79003554, |
2812 | 0xf1a3c3e6,0xffd0ecfc,0xffa4d5f7,0xffb0dbf9,0xffb8e0fa,0xff97cef5,0xffc8eafd,0xff8ac8f4,0xffb9e2fc,0xff9bd2f7,0xffcbedff,0xff9ad2f7,0xc4285f89,0x34001525, | 2807 | 0xe963afe0,0xffeae9e7,0xfff3efea,0xffe7e3de,0xfff9f5f0,0xffe4dfdb,0xfff9f5f0,0xffe8e4df,0xfff3f0eb,0xffebe7e2,0xffede9e6,0xfff5efe9,0xf08ab7d2,0x79023554, |
2813 | 0xf1a6c5e7,0xffd1edfc,0xffa5d6f7,0xffb1dcf9,0xffb9e0fa,0xff98cff5,0xffcbebfd,0xff8bc8f4,0xffbbe3fc,0xff9cd3f7,0xffcdeeff,0xff9dd3f8,0xc4296089,0x34001525, | 2808 | 0xea5eaee2,0xffd5dce1,0xffdde0e3,0xffd5d8da,0xffe2e5e7,0xffd3d6d8,0xffe4e6e7,0xffd9dadb,0xffe2e3e4,0xffdcddde,0xffdfdfe0,0xffe6e4e3,0xf08cb8d4,0x78023554, |
2814 | 0xfa80b6e6,0xffa6d6f6,0xff92ccf4,0xff96cef4,0xff98cff5,0xff8ac8f3,0xff9dd2f6,0xff83c4f3,0xff95cef6,0xff8ac9f4,0xff9dd4f8,0xff7bc4f7,0xc7205f8d,0x34001728, | 2809 | 0xbb449edd,0xf87cbde9,0xfd81c0ea,0xfd84c2eb,0xfd88c3eb,0xfd8bc5ec,0xfd90c7ec,0xfd96caed,0xfd9acced,0xfd9fceee,0xfda4d0ee,0xfca8d2ee,0xdc649cc3,0x63001f36, |
2815 | 0xa628618e,0xc12e628a,0xc42c6189,0xc42b6089,0xc42b6089,0xc42a6089,0xc42a6089,0xc4296089,0xc4295f89,0xc4296089,0xc4296089,0xc421608d,0x9e083656,0x30000d16, | 2810 | 0x360f466e,0x75164e74,0x89154769,0x8a154768,0x8a164768,0x8a164868,0x8a174868,0x8a184868,0x8a194968,0x8a1a4969,0x8a1b4969,0x891b4a68,0x6a0e2b41,0x28000306, |
2816 | 0x14002b4a,0x30001627,0x34001424,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001425,0x34001626,0x30000d16,0x16000204 | 2811 | 0x4000000,0xf000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0x15000000,0xf000000,0x4000000 |
2817 | }; | 2812 | }; |
2818 | 2813 | ||
2819 | static const QRgb wordgame_data[] = { | 2814 | static const QRgb wordgame_data[] = { |
2820 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xffffff, | 2815 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xffffff, |
2821 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2816 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2822 | 0xff000000,0xffffffff,0xffffffff,0xffaaaaaa,0xff727272,0xffaaaaaa,0xff8e8e8e,0xff555555,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2817 | 0xff000000,0xffffffff,0xffffffff,0xffaaaaaa,0xff727272,0xffaaaaaa,0xff8e8e8e,0xff555555,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2823 | 0xff000000,0xffffffff,0xffaaaaaa,0xff555555,0xffffffff,0xffffffff,0xffffffff,0xffaaaaaa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2818 | 0xff000000,0xffffffff,0xffaaaaaa,0xff555555,0xffffffff,0xffffffff,0xffffffff,0xffaaaaaa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2824 | 0xff000000,0xffffffff,0xff555555,0xffaaaaaa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2819 | 0xff000000,0xffffffff,0xff555555,0xffaaaaaa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2825 | 0xff000000,0xffffffff,0xff555555,0xffaaaaaa,0xffffffff,0xffffffff,0xff8e8e8e,0xff555555,0xff8e8e8e,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2820 | 0xff000000,0xffffffff,0xff555555,0xffaaaaaa,0xffffffff,0xffffffff,0xff8e8e8e,0xff555555,0xff8e8e8e,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2826 | 0xff000000,0xffffffff,0xff727272,0xff8e8e8e,0xffffffff,0xffffffff,0xffffffff,0xff555555,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2821 | 0xff000000,0xffffffff,0xff727272,0xff8e8e8e,0xffffffff,0xffffffff,0xffffffff,0xff555555,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2827 | 0xff000000,0xffffffff,0xffe3e3e3,0xff555555,0xffc7c7c7,0xffffffff,0xffc7c7c7,0xff1d1d1d,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2822 | 0xff000000,0xffffffff,0xffe3e3e3,0xff555555,0xffc7c7c7,0xffffffff,0xffc7c7c7,0xff1d1d1d,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2828 | 0xff000000,0xffffffff,0xffffffff,0xffe3e3e3,0xff727272,0xff8e8e8e,0xff8e8e8e,0xffc7c7c7,0xffffffff,0xff737373,0xffb6b6b6,0xffffffff,0xff000000,0xff000000, | 2823 | 0xff000000,0xffffffff,0xffffffff,0xffe3e3e3,0xff727272,0xff8e8e8e,0xff8e8e8e,0xffc7c7c7,0xffffffff,0xff737373,0xffb6b6b6,0xffffffff,0xff000000,0xff000000, |
2829 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff747474,0xff525252,0xffffffff,0xff000000,0xff000000, | 2824 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff747474,0xff525252,0xffffffff,0xff000000,0xff000000, |
2830 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffc7c7c7,0xff909090,0xffffffff,0xff000000,0xff000000, | 2825 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffc7c7c7,0xff909090,0xffffffff,0xff000000,0xff000000, |
2831 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, | 2826 | 0xff000000,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xff000000,0xff000000, |
2832 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000, | 2827 | 0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000, |
2833 | 0x0,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000 | 2828 | 0x0,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000,0xff000000 |
2834 | }; | 2829 | }; |
2835 | 2830 | ||
2836 | static const unsigned char xtopowerofy_data[] = { | 2831 | static const unsigned char xtopowerofy_data[] = { |
2837 | 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, | 2832 | 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, |
2838 | 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 2833 | 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2839 | 0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00, | 2834 | 0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00, |
2840 | 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x01, | 2835 | 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x01, |
2841 | 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 2836 | 0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2842 | 0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 2837 | 0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2843 | 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 2838 | 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
2844 | }; | 2839 | }; |
2845 | 2840 | ||
2846 | static const QRgb xtopowerofy_ctable[] = { | 2841 | static const QRgb xtopowerofy_ctable[] = { |
2847 | 0xc6c6c6,0xff000000 | 2842 | 0xc6c6c6,0xff000000 |
2848 | }; | 2843 | }; |
2849 | 2844 | ||
2850 | static const unsigned char ythrootofx_data[] = { | 2845 | static const unsigned char ythrootofx_data[] = { |
2851 | 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 2846 | 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2852 | 0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 2847 | 0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2853 | 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01, | 2848 | 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01, |
2854 | 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, | 2849 | 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, |
2855 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x01, | 2850 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x01, |
2856 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, | 2851 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
2857 | 0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, | 2852 | 0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01, |
2858 | 0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, | 2853 | 0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, |
2859 | 0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, | 2854 | 0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, |
2860 | 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00, | 2855 | 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00, |
2861 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, | 2856 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, |
2862 | 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, | 2857 | 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, |
2863 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 2858 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
2864 | }; | 2859 | }; |
2865 | 2860 | ||
2866 | static const QRgb ythrootofx_ctable[] = { | 2861 | static const QRgb ythrootofx_ctable[] = { |
2867 | 0xc6c6c6,0xff000000 | 2862 | 0xc6c6c6,0xff000000 |
2868 | }; | 2863 | }; |
2869 | 2864 | ||
2870 | static const QRgb zoom_data[] = { | 2865 | static const QRgb zoom_data[] = { |
2871 | 0x0,0x0,0x1c9191aa,0x7daeaec1,0xaabfbfcd,0xa3c5c5d3,0x63bfbfce,0x8b6b6c7,0x0,0x0,0x0,0x0,0x0,0x0, | 2866 | 0x0,0x0,0x1c9191aa,0x7daeaec1,0xaabfbfcd,0xa3c5c5d3,0x63bfbfce,0x8b6b6c7,0x0,0x0,0x0,0x0,0x0,0x0, |
2872 | 0x0,0x478c8ca6,0xeca3a9c1,0xf9bbd1e5,0xf7d0e5f5,0xf8d9e7f4,0xfbccd9ea,0xccc9cad8,0x19babaca,0x0,0x0,0x0,0x0,0x0, | 2867 | 0x0,0x478c8ca6,0xeca3a9c1,0xf9bbd1e5,0xf7d0e5f5,0xf8d9e7f4,0xfbccd9ea,0xccc9cad8,0x19babaca,0x0,0x0,0x0,0x0,0x0, |
2873 | 0x1c747493,0xea8f95b4,0xf4a3d0f4,0xf5c6efff,0xf5d6f4ff,0xf5dbf5ff,0xf5d2f3ff,0xf5b9d8f2,0xbbc9cad8,0x1b8b8c9,0x0,0x0,0x0,0x0, | 2868 | 0x1c747493,0xea8f95b4,0xf4a3d0f4,0xf5c6efff,0xf5d6f4ff,0xf5dbf5ff,0xf5d2f3ff,0xf5b9d8f2,0xbbc9cad8,0x1b8b8c9,0x0,0x0,0x0,0x0, |
2874 | 0x7d7e7e9a,0xf07a9ed4,0xf59cd1ff,0xf5b3e3ff,0xf5c2edff,0xf5c6efff,0xf5bfebff,0xf4abddff,0xf5b7c7e4,0x31b5b5c6,0x0,0x0,0x0,0x0, | 2869 | 0x7d7e7e9a,0xf07a9ed4,0xf59cd1ff,0xf5b3e3ff,0xf5c2edff,0xf5c6efff,0xf5bfebff,0xf4abddff,0xf5b7c7e4,0x31b5b5c6,0x0,0x0,0x0,0x0, |
2875 | 0xab7b7b98,0xb62f70db,0xc766a9fb,0xdf92cafe,0xdea0d4ff,0xd19bd1fe,0xde9ad0fe,0xf494ccff,0xee9dbdeb,0x60b9b9c9,0x0,0x0,0x0,0x0, | 2870 | 0xab7b7b98,0xb62f70db,0xc766a9fb,0xdf92cafe,0xdea0d4ff,0xd19bd1fe,0xde9ad0fe,0xf494ccff,0xee9dbdeb,0x60b9b9c9,0x0,0x0,0x0,0x0, |
2876 | 0xa3717190,0xb33973d3,0x994e96f8,0x9974b3fd,0x998bc5ff,0x998cc5ff,0x9977b6fd,0xaa62a6fb,0xe299b7e6,0x56afafc2,0x0,0x0,0x0,0x0, | 2871 | 0xa3717190,0xb33973d3,0x994e96f8,0x9974b3fd,0x998bc5ff,0x998cc5ff,0x9977b6fd,0xaa62a6fb,0xe299b7e6,0x56afafc2,0x0,0x0,0x0,0x0, |
2877 | 0x61636385,0xd66079b1,0x9973b3fd,0x99a4d7ff,0x99c4efff,0x99c6efff,0x99a8daff,0x9d7ab6fb,0xebadb6d0,0x1aa3a3b8,0x0,0x0,0x0,0x0, | 2872 | 0x61636385,0xd66079b1,0x9973b3fd,0x99a4d7ff,0x99c4efff,0x99c6efff,0x99a8daff,0x9d7ab6fb,0xebadb6d0,0x1aa3a3b8,0x0,0x0,0x0,0x0, |
2878 | 0x857577b,0xc966678a,0xc07d9dca,0x9ac3edfe,0x99eafeff,0x99ecfeff,0x9dc6edfc,0xdca5b5d2,0xdfb2b2c4,0x3b7b7c8,0x0,0x0,0x0,0x0, | 2873 | 0x857577b,0xc966678a,0xc07d9dca,0x9ac3edfe,0x99eafeff,0x99ecfeff,0x9dc6edfc,0xdca5b5d2,0xdfb2b2c4,0x3b7b7c8,0x0,0x0,0x0,0x0, |
2879 | 0x0,0x1958587c,0xb8696a8b,0xe5878faa,0xceb0b7c8,0xd3b6bbcb,0xeb9ea2b9,0xcd9595ad,0xeea3a3b7,0xb1cb9f58,0x4ee4991e,0x0,0x0,0x0, | 2874 | 0x0,0x1958587c,0xb8696a8b,0xe5878faa,0xceb0b7c8,0xd3b6bbcb,0xeb9ea2b9,0xcd9595ad,0xeea3a3b7,0xb1cb9f58,0x4ee4991e,0x0,0x0,0x0, |
2880 | 0x0,0x0,0x5b5b7e,0x2f606083,0x5e6e6e8e,0x54747493,0x1a777795,0x0,0xb1a57239,0xfff7d37d,0xf7f7d46f,0x4fe4991e,0x0,0x0, | 2875 | 0x0,0x0,0x5b5b7e,0x2f606083,0x5e6e6e8e,0x54747493,0x1a777795,0x0,0xb1a57239,0xfff7d37d,0xf7f7d46f,0x4fe4991e,0x0,0x0, |
2881 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xf3dd921d,0xfffddc87,0xf7f7d36f,0x4fe4991e,0x0, | 2876 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xf3dd921d,0xfffddc87,0xf7f7d36f,0x4fe4991e,0x0, |
2882 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921d,0xfffddc87,0xf6f7d36f,0x4de4991e, | 2877 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921d,0xfffddc87,0xf6f7d36f,0x4de4991e, |
2883 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921c,0xfff0c975,0xa8cdab7a, | 2878 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x459f5b0e,0xf3dd921c,0xfff0c975,0xa8cdab7a, |
2884 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xaa977354,0x4a8787a1 | 2879 | 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x449f5b0e,0xaa977354,0x4a8787a1 |
2885 | }; | 2880 | }; |
2886 | 2881 | ||
2887 | static struct EmbedImage { | 2882 | static struct EmbedImage { |
2888 | int width, height, depth; | 2883 | int width, height, depth; |
2889 | const unsigned char *data; | 2884 | const unsigned char *data; |
2890 | int numColors; | 2885 | int numColors; |
2891 | const QRgb *colorTable; | 2886 | const QRgb *colorTable; |
2892 | bool alpha; | 2887 | bool alpha; |
2893 | const char *name; | 2888 | const char *name; |
2894 | } embed_image_vec[] = { | 2889 | } embed_image_vec[] = { |
2895 | { 14, 14, 32, (const unsigned char*)_to1_data, 0, 0, TRUE, "1to1" }, | 2890 | { 14, 14, 32, (const unsigned char*)_to1_data, 0, 0, TRUE, "1to1" }, |
2896 | { 14, 14, 32, (const unsigned char*)AppsIcon_data, 0, 0, TRUE, "AppsIcon" }, | ||
2897 | { 32, 32, 32, (const unsigned char*)Calibrate_data, 0, 0, TRUE, "Calibrate" }, | ||
2898 | { 32, 32, 32, (const unsigned char*)Clock_data, 0, 0, TRUE, "Clock" }, | ||
2899 | { 14, 14, 32, (const unsigned char*)CloseButton_data, 0, 0, TRUE, "CloseButton" }, | ||
2900 | { 14, 14, 32, (const unsigned char*)DocsIcon_data, 0, 0, TRUE, "DocsIcon" }, | ||
2901 | { 32, 32, 32, (const unsigned char*)DocumentTypeExcel_data, 0, 0, TRUE, "DocumentTypeExcel" }, | ||
2902 | { 32, 32, 32, (const unsigned char*)DocumentTypeNone_data, 0, 0, TRUE, "DocumentTypeNone" }, | ||
2903 | { 32, 32, 32, (const unsigned char*)DocumentTypePowerPoint_data, 0, 0, TRUE, "DocumentTypePowerPoint" }, | ||
2904 | { 32, 32, 32, (const unsigned char*)DocumentTypeWord_data, 0, 0, TRUE, "DocumentTypeWord" }, | ||
2905 | { 14, 14, 32, (const unsigned char*)Games_data, 0, 0, TRUE, "Games" }, | ||
2906 | { 12, 12, 32, (const unsigned char*)Go_black_data, 0, 0, TRUE, "Go-black" }, | ||
2907 | { 12, 12, 32, (const unsigned char*)Go_black_highlight_data, 0, 0, TRUE, "Go-black-highlight" }, | ||
2908 | { 12, 12, 32, (const unsigned char*)Go_white_data, 0, 0, TRUE, "Go-white" }, | ||
2909 | { 14, 14, 32, (const unsigned char*)HelpButton_data, 0, 0, TRUE, "HelpButton" }, | ||
2910 | { 32, 32, 32, (const unsigned char*)Language_data, 0, 0, TRUE, "Language" }, | ||
2911 | { 32, 32, 32, (const unsigned char*)MPEGPlayer_data, 0, 0, TRUE, "MPEGPlayer" }, | ||
2912 | { 28, 14, 32, (const unsigned char*)OKButton_data, 0, 0, TRUE, "OKButton" }, | ||
2913 | { 32, 32, 32, (const unsigned char*)Rotation_data, 0, 0, TRUE, "Rotation" }, | ||
2914 | { 14, 14, 32, (const unsigned char*)SettingsIcon_data, 0, 0, TRUE, "SettingsIcon" }, | ||
2915 | { 32, 32, 32, (const unsigned char*)Shutdown_data, 0, 0, TRUE, "Shutdown" }, | ||
2916 | { 32, 32, 32, (const unsigned char*)Sound_data, 0, 0, TRUE, "Sound" }, | ||
2917 | { 32, 32, 32, (const unsigned char*)SoundPlayer_data, 0, 0, TRUE, "SoundPlayer" }, | ||
2918 | { 32, 32, 32, (const unsigned char*)Spreadsheet_data, 0, 0, TRUE, "Spreadsheet" }, | ||
2919 | { 32, 32, 32, (const unsigned char*)Tux_data, 0, 0, TRUE, "Tux" }, | ||
2920 | { 14, 14, 32, (const unsigned char*)UtilsIcon_data, 0, 0, TRUE, "UtilsIcon" }, | ||
2921 | { 14, 14, 32, (const unsigned char*)accessories_data, 0, 0, TRUE, "accessories" }, | 2891 | { 14, 14, 32, (const unsigned char*)accessories_data, 0, 0, TRUE, "accessories" }, |
2922 | { 14, 14, 32, (const unsigned char*)appearance_data, 0, 0, TRUE, "appearance" }, | 2892 | { 14, 14, 32, (const unsigned char*)appearance_data, 0, 0, TRUE, "appearance" }, |
2923 | { 14, 14, 32, (const unsigned char*)back_data, 0, 0, TRUE, "back" }, | 2893 | { 14, 14, 32, (const unsigned char*)AppsIcon_data, 0, 0, TRUE, "AppsIcon" }, |
2924 | { 14, 14, 32, (const unsigned char*)back_inactive_data, 0, 0, TRUE, "back_inactive" }, | 2894 | { 14, 14, 32, (const unsigned char*)back_inactive_data, 0, 0, TRUE, "back_inactive" }, |
2895 | { 14, 14, 32, (const unsigned char*)back_data, 0, 0, TRUE, "back" }, | ||
2925 | { 14, 14, 32, (const unsigned char*)beam_data, 0, 0, TRUE, "beam" }, | 2896 | { 14, 14, 32, (const unsigned char*)beam_data, 0, 0, TRUE, "beam" }, |
2926 | { 14, 14, 32, (const unsigned char*)bell_data, 0, 0, TRUE, "bell" }, | 2897 | { 14, 14, 32, (const unsigned char*)bell_data, 0, 0, TRUE, "bell" }, |
2927 | { 14, 14, 32, (const unsigned char*)binary_data, 0, 0, TRUE, "binary" }, | 2898 | { 14, 14, 32, (const unsigned char*)binary_data, 0, 0, TRUE, "binary" }, |
2928 | { 14, 14, 32, (const unsigned char*)bold_data, 0, 0, TRUE, "bold" }, | 2899 | { 14, 14, 32, (const unsigned char*)bold_data, 0, 0, TRUE, "bold" }, |
2929 | { 14, 14, 32, (const unsigned char*)c_src_data, 0, 0, TRUE, "c_src" }, | ||
2930 | { 14, 14, 32, (const unsigned char*)calculator_data, 0, 0, TRUE, "calculator" }, | 2900 | { 14, 14, 32, (const unsigned char*)calculator_data, 0, 0, TRUE, "calculator" }, |
2901 | { 32, 32, 32, (const unsigned char*)Calibrate_data, 0, 0, TRUE, "Calibrate" }, | ||
2931 | { 14, 14, 32, (const unsigned char*)center_data, 0, 0, TRUE, "center" }, | 2902 | { 14, 14, 32, (const unsigned char*)center_data, 0, 0, TRUE, "center" }, |
2932 | { 14, 14, 32, (const unsigned char*)citytime_icon_data, 0, 0, TRUE, "citytime_icon" }, | 2903 | { 14, 14, 32, (const unsigned char*)citytime_icon_data, 0, 0, TRUE, "citytime_icon" }, |
2904 | { 32, 32, 32, (const unsigned char*)Clock_data, 0, 0, TRUE, "Clock" }, | ||
2905 | { 14, 14, 32, (const unsigned char*)CloseButton_data, 0, 0, TRUE, "CloseButton" }, | ||
2933 | { 14, 14, 32, (const unsigned char*)close_data, 0, 0, TRUE, "close" }, | 2906 | { 14, 14, 32, (const unsigned char*)close_data, 0, 0, TRUE, "close" }, |
2934 | { 14, 14, 32, (const unsigned char*)copy_data, 0, 0, TRUE, "copy" }, | ||
2935 | { 14, 14, 32, (const unsigned char*)copy_inactive_data, 0, 0, TRUE, "copy_inactive" }, | 2907 | { 14, 14, 32, (const unsigned char*)copy_inactive_data, 0, 0, TRUE, "copy_inactive" }, |
2936 | { 14, 14, 32, (const unsigned char*)cut_data, 0, 0, TRUE, "cut" }, | 2908 | { 14, 14, 32, (const unsigned char*)copy_data, 0, 0, TRUE, "copy" }, |
2909 | { 14, 14, 32, (const unsigned char*)c_src_data, 0, 0, TRUE, "c_src" }, | ||
2937 | { 14, 14, 32, (const unsigned char*)cut_inactive_data, 0, 0, TRUE, "cut_inactive" }, | 2910 | { 14, 14, 32, (const unsigned char*)cut_inactive_data, 0, 0, TRUE, "cut_inactive" }, |
2911 | { 14, 14, 32, (const unsigned char*)cut_data, 0, 0, TRUE, "cut" }, | ||
2938 | { 14, 14, 32, (const unsigned char*)datebook_icon_data, 0, 0, TRUE, "datebook_icon" }, | 2912 | { 14, 14, 32, (const unsigned char*)datebook_icon_data, 0, 0, TRUE, "datebook_icon" }, |
2939 | { 14, 14, 32, (const unsigned char*)day_data, 0, 0, TRUE, "day" }, | 2913 | { 14, 14, 32, (const unsigned char*)day_data, 0, 0, TRUE, "day" }, |
2914 | { 14, 14, 32, (const unsigned char*)DocsIcon_data, 0, 0, TRUE, "DocsIcon" }, | ||
2915 | { 32, 32, 32, (const unsigned char*)DocumentTypeExcel_data, 0, 0, TRUE, "DocumentTypeExcel" }, | ||
2916 | { 32, 32, 32, (const unsigned char*)DocumentTypeNone_data, 0, 0, TRUE, "DocumentTypeNone" }, | ||
2917 | { 32, 32, 32, (const unsigned char*)DocumentTypePowerPoint_data, 0, 0, TRUE, "DocumentTypePowerPoint" }, | ||
2918 | { 32, 32, 32, (const unsigned char*)DocumentTypeWord_data, 0, 0, TRUE, "DocumentTypeWord" }, | ||
2940 | { 14, 14, 32, (const unsigned char*)done_data, 0, 0, TRUE, "done" }, | 2919 | { 14, 14, 32, (const unsigned char*)done_data, 0, 0, TRUE, "done" }, |
2941 | { 14, 14, 32, (const unsigned char*)down_data, 0, 0, TRUE, "down" }, | 2920 | { 14, 14, 32, (const unsigned char*)down_data, 0, 0, TRUE, "down" }, |
2942 | { 14, 14, 32, (const unsigned char*)edit_data, 0, 0, TRUE, "edit" }, | ||
2943 | { 14, 14, 32, (const unsigned char*)editdelete_data, 0, 0, TRUE, "editdelete" }, | 2921 | { 14, 14, 32, (const unsigned char*)editdelete_data, 0, 0, TRUE, "editdelete" }, |
2922 | { 14, 14, 32, (const unsigned char*)edit_data, 0, 0, TRUE, "edit" }, | ||
2944 | { 14, 14, 32, (const unsigned char*)enter_data, 0, 0, TRUE, "enter" }, | 2923 | { 14, 14, 32, (const unsigned char*)enter_data, 0, 0, TRUE, "enter" }, |
2945 | { 14, 14, 32, (const unsigned char*)exec_data, 0, 0, TRUE, "exec" }, | 2924 | { 14, 14, 32, (const unsigned char*)exec_data, 0, 0, TRUE, "exec" }, |
2946 | { 14, 14, 32, (const unsigned char*)fastback_data, 0, 0, TRUE, "fastback" }, | 2925 | { 14, 14, 32, (const unsigned char*)fastback_data, 0, 0, TRUE, "fastback" }, |
2947 | { 14, 14, 32, (const unsigned char*)fastforward_data, 0, 0, TRUE, "fastforward" }, | 2926 | { 14, 14, 32, (const unsigned char*)fastforward_data, 0, 0, TRUE, "fastforward" }, |
2948 | { 14, 14, 32, (const unsigned char*)fileopen_data, 0, 0, TRUE, "fileopen" }, | 2927 | { 14, 14, 32, (const unsigned char*)fileopen_data, 0, 0, TRUE, "fileopen" }, |
2949 | { 14, 14, 32, (const unsigned char*)find_data, 0, 0, TRUE, "find" }, | 2928 | { 14, 14, 32, (const unsigned char*)find_data, 0, 0, TRUE, "find" }, |
2950 | { 14, 14, 32, (const unsigned char*)finish_data, 0, 0, TRUE, "finish" }, | 2929 | { 14, 14, 32, (const unsigned char*)finish_data, 0, 0, TRUE, "finish" }, |
2951 | { 14, 14, 32, (const unsigned char*)folder_data, 0, 0, TRUE, "folder" }, | ||
2952 | { 14, 14, 32, (const unsigned char*)folder_open_data, 0, 0, TRUE, "folder_open" }, | 2930 | { 14, 14, 32, (const unsigned char*)folder_open_data, 0, 0, TRUE, "folder_open" }, |
2931 | { 14, 14, 32, (const unsigned char*)folder_data, 0, 0, TRUE, "folder" }, | ||
2953 | { 14, 14, 32, (const unsigned char*)font_data, 0, 0, TRUE, "font" }, | 2932 | { 14, 14, 32, (const unsigned char*)font_data, 0, 0, TRUE, "font" }, |
2954 | { 14, 14, 32, (const unsigned char*)forward_data, 0, 0, TRUE, "forward" }, | ||
2955 | { 14, 14, 32, (const unsigned char*)forward_inactive_data, 0, 0, TRUE, "forward_inactive" }, | 2933 | { 14, 14, 32, (const unsigned char*)forward_inactive_data, 0, 0, TRUE, "forward_inactive" }, |
2934 | { 14, 14, 32, (const unsigned char*)forward_data, 0, 0, TRUE, "forward" }, | ||
2956 | { 14, 14, 32, (const unsigned char*)fullscreen_data, 0, 0, TRUE, "fullscreen" }, | 2935 | { 14, 14, 32, (const unsigned char*)fullscreen_data, 0, 0, TRUE, "fullscreen" }, |
2957 | { 18, 18, 32, (const unsigned char*)go_data, 0, 0, TRUE, "go" }, | 2936 | { 14, 14, 32, (const unsigned char*)Games_data, 0, 0, TRUE, "Games" }, |
2958 | { 14, 14, 32, (const unsigned char*)h_src_data, 0, 0, TRUE, "h_src" }, | 2937 | { 12, 12, 32, (const unsigned char*)Go_black_highlight_data, 0, 0, TRUE, "Go-black-highlight" }, |
2938 | { 12, 12, 32, (const unsigned char*)Go_black_data, 0, 0, TRUE, "Go-black" }, | ||
2939 | { 16, 16, 32, (const unsigned char*)go_data, 0, 0, TRUE, "go" }, | ||
2940 | { 12, 12, 32, (const unsigned char*)Go_white_data, 0, 0, TRUE, "Go-white" }, | ||
2941 | { 14, 14, 32, (const unsigned char*)HelpButton_data, 0, 0, TRUE, "HelpButton" }, | ||
2959 | { 14, 14, 32, (const unsigned char*)help_icon_data, 0, 0, TRUE, "help_icon" }, | 2942 | { 14, 14, 32, (const unsigned char*)help_icon_data, 0, 0, TRUE, "help_icon" }, |
2960 | { 14, 14, 32, (const unsigned char*)home_data, 0, 0, TRUE, "home" }, | 2943 | { 14, 14, 32, (const unsigned char*)home_data, 0, 0, TRUE, "home" }, |
2961 | { 14, 14, 32, (const unsigned char*)install_data, 0, 0, TRUE, "install" }, | 2944 | { 14, 14, 32, (const unsigned char*)h_src_data, 0, 0, TRUE, "h_src" }, |
2962 | { 14, 14, 32, (const unsigned char*)installed_data, 0, 0, TRUE, "installed" }, | 2945 | { 14, 14, 32, (const unsigned char*)installed_data, 0, 0, TRUE, "installed" }, |
2946 | { 14, 14, 32, (const unsigned char*)install_data, 0, 0, TRUE, "install" }, | ||
2963 | { 14, 14, 32, (const unsigned char*)italic_data, 0, 0, TRUE, "italic" }, | 2947 | { 14, 14, 32, (const unsigned char*)italic_data, 0, 0, TRUE, "italic" }, |
2964 | { 14, 14, 32, (const unsigned char*)konsole_data, 0, 0, TRUE, "konsole" }, | 2948 | { 14, 14, 32, (const unsigned char*)konsole_data, 0, 0, TRUE, "konsole" }, |
2965 | { 14, 14, 32, (const unsigned char*)language_data, 0, 0, TRUE, "language" }, | 2949 | { 14, 14, 32, (const unsigned char*)language_data, 0, 0, TRUE, "language" }, |
2950 | { 32, 32, 32, (const unsigned char*)Language_data, 0, 0, TRUE, "Language" }, | ||
2966 | { 14, 14, 32, (const unsigned char*)left_data, 0, 0, TRUE, "left" }, | 2951 | { 14, 14, 32, (const unsigned char*)left_data, 0, 0, TRUE, "left" }, |
2967 | { 14, 14, 32, (const unsigned char*)library_data, 0, 0, TRUE, "library" }, | 2952 | { 14, 14, 32, (const unsigned char*)library_data, 0, 0, TRUE, "library" }, |
2968 | { 14, 14, 32, (const unsigned char*)locked_data, 0, 0, TRUE, "locked" }, | ||
2969 | { 14, 14, 32, (const unsigned char*)lockedfolder_data, 0, 0, TRUE, "lockedfolder" }, | 2953 | { 14, 14, 32, (const unsigned char*)lockedfolder_data, 0, 0, TRUE, "lockedfolder" }, |
2954 | { 14, 14, 32, (const unsigned char*)locked_data, 0, 0, TRUE, "locked" }, | ||
2970 | { 14, 14, 32, (const unsigned char*)logout_data, 0, 0, TRUE, "logout" }, | 2955 | { 14, 14, 32, (const unsigned char*)logout_data, 0, 0, TRUE, "logout" }, |
2971 | { 14, 14, 32, (const unsigned char*)mag_data, 0, 0, TRUE, "mag" }, | 2956 | { 14, 14, 32, (const unsigned char*)mag_data, 0, 0, TRUE, "mag" }, |
2972 | { 14, 14, 32, (const unsigned char*)month_data, 0, 0, TRUE, "month" }, | 2957 | { 14, 14, 32, (const unsigned char*)month_data, 0, 0, TRUE, "month" }, |
2958 | { 32, 32, 32, (const unsigned char*)MPEGPlayer_data, 0, 0, TRUE, "MPEGPlayer" }, | ||
2973 | { 14, 14, 32, (const unsigned char*)mute_data, 0, 0, TRUE, "mute" }, | 2959 | { 14, 14, 32, (const unsigned char*)mute_data, 0, 0, TRUE, "mute" }, |
2974 | { 14, 14, 32, (const unsigned char*)new_data, 0, 0, TRUE, "new" }, | ||
2975 | { 14, 14, 32, (const unsigned char*)newfolder_data, 0, 0, TRUE, "newfolder" }, | 2960 | { 14, 14, 32, (const unsigned char*)newfolder_data, 0, 0, TRUE, "newfolder" }, |
2961 | { 14, 14, 32, (const unsigned char*)new_data, 0, 0, TRUE, "new" }, | ||
2976 | { 14, 14, 32, (const unsigned char*)next_data, 0, 0, TRUE, "next" }, | 2962 | { 14, 14, 32, (const unsigned char*)next_data, 0, 0, TRUE, "next" }, |
2963 | { 28, 14, 32, (const unsigned char*)OKButton_data, 0, 0, TRUE, "OKButton" }, | ||
2977 | { 13, 11, 8, (const unsigned char*)oneoverx_data, 2, oneoverx_ctable, TRUE, "oneoverx" }, | 2964 | { 13, 11, 8, (const unsigned char*)oneoverx_data, 2, oneoverx_ctable, TRUE, "oneoverx" }, |
2978 | { 16, 14, 8, (const unsigned char*)pass_data, 3, pass_ctable, TRUE, "pass" }, | 2965 | { 16, 14, 8, (const unsigned char*)pass_data, 3, pass_ctable, TRUE, "pass" }, |
2979 | { 14, 14, 32, (const unsigned char*)paste_data, 0, 0, TRUE, "paste" }, | ||
2980 | { 14, 14, 32, (const unsigned char*)paste_inactive_data, 0, 0, TRUE, "paste_inactive" }, | 2966 | { 14, 14, 32, (const unsigned char*)paste_inactive_data, 0, 0, TRUE, "paste_inactive" }, |
2967 | { 14, 14, 32, (const unsigned char*)paste_data, 0, 0, TRUE, "paste" }, | ||
2981 | { 14, 14, 32, (const unsigned char*)pixmap_data, 0, 0, TRUE, "pixmap" }, | 2968 | { 14, 14, 32, (const unsigned char*)pixmap_data, 0, 0, TRUE, "pixmap" }, |
2982 | { 14, 14, 32, (const unsigned char*)play_data, 0, 0, TRUE, "play" }, | ||
2983 | { 14, 14, 32, (const unsigned char*)play2_data, 0, 0, TRUE, "play2" }, | 2969 | { 14, 14, 32, (const unsigned char*)play2_data, 0, 0, TRUE, "play2" }, |
2970 | { 14, 14, 32, (const unsigned char*)play_data, 0, 0, TRUE, "play" }, | ||
2984 | { 14, 14, 32, (const unsigned char*)programs_data, 0, 0, TRUE, "programs" }, | 2971 | { 14, 14, 32, (const unsigned char*)programs_data, 0, 0, TRUE, "programs" }, |
2985 | { 14, 14, 32, (const unsigned char*)quit_icon_data, 0, 0, TRUE, "quit_icon" }, | 2972 | { 14, 14, 32, (const unsigned char*)quit_icon_data, 0, 0, TRUE, "quit_icon" }, |
2986 | { 14, 14, 32, (const unsigned char*)redo_data, 0, 0, TRUE, "redo" }, | 2973 | { 14, 14, 32, (const unsigned char*)redo_data, 0, 0, TRUE, "redo" }, |
2987 | { 14, 14, 32, (const unsigned char*)repeat_data, 0, 0, TRUE, "repeat" }, | 2974 | { 14, 14, 32, (const unsigned char*)repeat_data, 0, 0, TRUE, "repeat" }, |
2988 | { 14, 14, 8, (const unsigned char*)reset_data, 3, reset_ctable, TRUE, "reset" }, | 2975 | { 14, 14, 8, (const unsigned char*)reset_data, 3, reset_ctable, TRUE, "reset" }, |
2989 | { 14, 14, 32, (const unsigned char*)right_data, 0, 0, TRUE, "right" }, | 2976 | { 14, 14, 32, (const unsigned char*)right_data, 0, 0, TRUE, "right" }, |
2990 | { 14, 14, 32, (const unsigned char*)rotate_data, 0, 0, TRUE, "rotate" }, | 2977 | { 14, 14, 32, (const unsigned char*)rotate_data, 0, 0, TRUE, "rotate" }, |
2978 | { 32, 32, 32, (const unsigned char*)Rotation_data, 0, 0, TRUE, "Rotation" }, | ||
2991 | { 14, 14, 32, (const unsigned char*)save_data, 0, 0, TRUE, "save" }, | 2979 | { 14, 14, 32, (const unsigned char*)save_data, 0, 0, TRUE, "save" }, |
2980 | { 14, 14, 32, (const unsigned char*)SettingsIcon_data, 0, 0, TRUE, "SettingsIcon" }, | ||
2981 | { 32, 32, 32, (const unsigned char*)Shutdown_data, 0, 0, TRUE, "Shutdown" }, | ||
2982 | { 32, 32, 32, (const unsigned char*)SoundPlayer_data, 0, 0, TRUE, "SoundPlayer" }, | ||
2983 | { 32, 32, 32, (const unsigned char*)Sound_data, 0, 0, TRUE, "Sound" }, | ||
2984 | { 32, 32, 32, (const unsigned char*)Spreadsheet_data, 0, 0, TRUE, "Spreadsheet" }, | ||
2992 | { 14, 14, 32, (const unsigned char*)start_data, 0, 0, TRUE, "start" }, | 2985 | { 14, 14, 32, (const unsigned char*)start_data, 0, 0, TRUE, "start" }, |
2993 | { 14, 14, 32, (const unsigned char*)stop_data, 0, 0, TRUE, "stop" }, | 2986 | { 14, 14, 32, (const unsigned char*)stop_data, 0, 0, TRUE, "stop" }, |
2994 | { 14, 14, 32, (const unsigned char*)style_data, 0, 0, TRUE, "style" }, | 2987 | { 14, 14, 32, (const unsigned char*)style_data, 0, 0, TRUE, "style" }, |
2995 | { 14, 14, 32, (const unsigned char*)suspend_data, 0, 0, TRUE, "suspend" }, | 2988 | { 14, 14, 32, (const unsigned char*)suspend_data, 0, 0, TRUE, "suspend" }, |
2996 | { 16, 16, 32, (const unsigned char*)table_pattern_data, 0, 0, TRUE, "table_pattern" }, | 2989 | { 16, 16, 32, (const unsigned char*)table_pattern_data, 0, 0, FALSE, "table_pattern" }, |
2997 | { 14, 14, 32, (const unsigned char*)tgz_data, 0, 0, TRUE, "tgz" }, | 2990 | { 14, 14, 32, (const unsigned char*)tgz_data, 0, 0, TRUE, "tgz" }, |
2998 | { 14, 14, 32, (const unsigned char*)toys_data, 0, 0, TRUE, "toys" }, | 2991 | { 14, 14, 32, (const unsigned char*)toys_data, 0, 0, TRUE, "toys" }, |
2999 | { 14, 14, 32, (const unsigned char*)trash_data, 0, 0, TRUE, "trash" }, | 2992 | { 14, 14, 32, (const unsigned char*)trash_data, 0, 0, TRUE, "trash" }, |
2993 | { 32, 32, 32, (const unsigned char*)Tux_data, 0, 0, TRUE, "Tux" }, | ||
3000 | { 14, 14, 32, (const unsigned char*)txt_data, 0, 0, TRUE, "txt" }, | 2994 | { 14, 14, 32, (const unsigned char*)txt_data, 0, 0, TRUE, "txt" }, |
3001 | { 14, 14, 32, (const unsigned char*)underline_data, 0, 0, TRUE, "underline" }, | 2995 | { 14, 14, 32, (const unsigned char*)underline_data, 0, 0, TRUE, "underline" }, |
3002 | { 14, 14, 32, (const unsigned char*)undo_data, 0, 0, TRUE, "undo" }, | 2996 | { 14, 14, 32, (const unsigned char*)undo_data, 0, 0, TRUE, "undo" }, |
3003 | { 14, 14, 32, (const unsigned char*)uninstall_data, 0, 0, TRUE, "uninstall" }, | ||
3004 | { 14, 14, 32, (const unsigned char*)uninstalled_data, 0, 0, TRUE, "uninstalled" }, | 2997 | { 14, 14, 32, (const unsigned char*)uninstalled_data, 0, 0, TRUE, "uninstalled" }, |
2998 | { 14, 14, 32, (const unsigned char*)uninstall_data, 0, 0, TRUE, "uninstall" }, | ||
3005 | { 14, 14, 32, (const unsigned char*)up_data, 0, 0, TRUE, "up" }, | 2999 | { 14, 14, 32, (const unsigned char*)up_data, 0, 0, TRUE, "up" }, |
3000 | { 14, 14, 32, (const unsigned char*)UtilsIcon_data, 0, 0, TRUE, "UtilsIcon" }, | ||
3006 | { 14, 14, 32, (const unsigned char*)volume_data, 0, 0, TRUE, "volume" }, | 3001 | { 14, 14, 32, (const unsigned char*)volume_data, 0, 0, TRUE, "volume" }, |
3007 | { 14, 14, 32, (const unsigned char*)wait_data, 0, 0, TRUE, "wait" }, | 3002 | { 14, 14, 32, (const unsigned char*)wait_data, 0, 0, TRUE, "wait" }, |
3008 | { 14, 14, 32, (const unsigned char*)week_data, 0, 0, TRUE, "week" }, | 3003 | { 14, 14, 32, (const unsigned char*)week_data, 0, 0, TRUE, "week" }, |
3009 | { 14, 14, 32, (const unsigned char*)wordgame_data, 0, 0, TRUE, "wordgame" }, | 3004 | { 14, 14, 32, (const unsigned char*)wordgame_data, 0, 0, TRUE, "wordgame" }, |
3010 | { 9, 8, 8, (const unsigned char*)xtopowerofy_data, 2, xtopowerofy_ctable, TRUE, "xtopowerofy" }, | 3005 | { 9, 8, 8, (const unsigned char*)xtopowerofy_data, 2, xtopowerofy_ctable, TRUE, "xtopowerofy" }, |
3011 | { 13, 11, 8, (const unsigned char*)ythrootofx_data, 2, ythrootofx_ctable, TRUE, "ythrootofx" }, | 3006 | { 13, 11, 8, (const unsigned char*)ythrootofx_data, 2, ythrootofx_ctable, TRUE, "ythrootofx" }, |
3012 | { 14, 14, 32, (const unsigned char*)zoom_data, 0, 0, TRUE, "zoom" }, | 3007 | { 14, 14, 32, (const unsigned char*)zoom_data, 0, 0, TRUE, "zoom" }, |
3008 | { 0, 0, 0, 0, 0, 0, 0, 0 } | ||
3013 | }; | 3009 | }; |
3014 | 3010 | ||
3015 | static int cmpEmbedImage(const void *a, const void *b) | 3011 | static const QImage& qembed_findImage( const QString& name ) |
3016 | { | ||
3017 | const EmbedImage* ea = (const EmbedImage*)a; | ||
3018 | const EmbedImage* eb = (const EmbedImage*)b; | ||
3019 | return strcmp(ea->name,eb->name); | ||
3020 | } | ||
3021 | inline const QImage& qembed_findImage(const char* name) | ||
3022 | { | 3012 | { |
3023 | EmbedImage key; key.name = name; | 3013 | static QDict<QImage> dict; |
3024 | EmbedImage* r = (EmbedImage*)bsearch( &key, embed_image_vec, | 3014 | QImage* img = dict.find( name ); |
3025 | sizeof(embed_image_vec)/sizeof(EmbedImage), sizeof(EmbedImage), cmpEmbedImage ); | 3015 | if ( !img ) { |
3026 | QImage* img; | 3016 | for ( int i = 0; embed_image_vec[i].data; i++ ) { |
3027 | if ( r ) { | 3017 | if ( strcmp(embed_image_vec[i].name, name.latin1()) == 0 ) { |
3028 | img = new QImage((uchar*)r->data, | 3018 | img = new QImage((uchar*)embed_image_vec[i].data, |
3029 | r->width, | 3019 | embed_image_vec[i].width, |
3030 | r->height, | 3020 | embed_image_vec[i].height, |
3031 | r->depth, | 3021 | embed_image_vec[i].depth, |
3032 | #ifdef _WS_QWS_ | 3022 | (QRgb*)embed_image_vec[i].colorTable, |
3033 | (r->width*r->depth+31)/32*4, | 3023 | embed_image_vec[i].numColors, |
3034 | #endif | 3024 | QImage::BigEndian ); |
3035 | (QRgb*)r->colorTable, | 3025 | if ( embed_image_vec[i].alpha ) |
3036 | r->numColors, | 3026 | img->setAlphaBuffer( TRUE ); |
3037 | QImage::BigEndian | 3027 | dict.insert( name, img ); |
3038 | ); | 3028 | break; |
3039 | if ( r->alpha ) | 3029 | } |
3040 | img->setAlphaBuffer(TRUE); | 3030 | } |
3041 | } else { | 3031 | if ( !img ) { |
3042 | static QImage dummy; | 3032 | static QImage dummy; |
3043 | img = &dummy; | 3033 | return dummy; |
3034 | } | ||
3044 | } | 3035 | } |
3045 | return *img; | 3036 | return *img; |
3046 | } | 3037 | } |
3047 | 3038 | ||
3048 | #endif | 3039 | #endif |
diff --git a/library/libqpe1.control b/library/libqpe1.control index 8aab9be..16fca0a 100644 --- a/library/libqpe1.control +++ b/library/libqpe1.control | |||
@@ -1,9 +1,9 @@ | |||
1 | Package: libqpe1 | 1 | Package: libqpe1 |
2 | Files: $OPIEDIR/lib/libqpe.so.1 $OPIEDIR/lib/libqpe.so.1.5 $OPIEDIR/lib/libqpe.so.1.5.0 | 2 | Files: $OPIEDIR/lib/libqpe.so.1 $OPIEDIR/lib/libqpe.so.1.5 $OPIEDIR/lib/libqpe.so.1.5.0 |
3 | Priority: required | 3 | Priority: required |
4 | Section: opie/system | 4 | Section: opie/system |
5 | Maintainer: Project Opie <opie@handhelds.org> | 5 | Maintainer: Project Opie <opie@handhelds.org> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION.1 | ||
8 | Depends: libqte2 (>=2.3.4-beta4), qte-fonts (>=$QTE_VERSION) | 7 | Depends: libqte2 (>=2.3.4-beta4), qte-fonts (>=$QTE_VERSION) |
9 | Description: libqpe, base qtopia/opie library. | 8 | Description: libqpe, base qtopia/opie library. |
9 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/lnkpropertiesbase_p.ui b/library/lnkpropertiesbase_p.ui index c2271f1..1bafab6 100644 --- a/library/lnkpropertiesbase_p.ui +++ b/library/lnkpropertiesbase_p.ui | |||
@@ -1,681 +1,689 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>LnkPropertiesBase</class> | 2 | <class>LnkPropertiesBase</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QWidget</class> | 4 | <class>QWidget</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>Form1</cstring> | 7 | <cstring>Form1</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>267</width> | 14 | <width>263</width> |
15 | <height>450</height> | 15 | <height>450</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>sizePolicy</name> | 19 | <name>sizePolicy</name> |
20 | <sizepolicy> | 20 | <sizepolicy> |
21 | <hsizetype>5</hsizetype> | 21 | <hsizetype>5</hsizetype> |
22 | <vsizetype>5</vsizetype> | 22 | <vsizetype>5</vsizetype> |
23 | </sizepolicy> | 23 | </sizepolicy> |
24 | </property> | 24 | </property> |
25 | <property stdset="1"> | 25 | <property stdset="1"> |
26 | <name>font</name> | 26 | <name>font</name> |
27 | <font> | 27 | <font> |
28 | </font> | 28 | </font> |
29 | </property> | 29 | </property> |
30 | <property stdset="1"> | 30 | <property stdset="1"> |
31 | <name>caption</name> | 31 | <name>caption</name> |
32 | <string>Details</string> | 32 | <string>Details</string> |
33 | </property> | 33 | </property> |
34 | <property stdset="1"> | 34 | <property stdset="1"> |
35 | <name>icon</name> | 35 | <name>icon</name> |
36 | <pixmap>image0</pixmap> | 36 | <pixmap>image0</pixmap> |
37 | </property> | 37 | </property> |
38 | <property> | 38 | <property> |
39 | <name>layoutMargin</name> | 39 | <name>layoutMargin</name> |
40 | </property> | 40 | </property> |
41 | <property> | 41 | <property> |
42 | <name>layoutSpacing</name> | 42 | <name>layoutSpacing</name> |
43 | </property> | 43 | </property> |
44 | <vbox> | 44 | <vbox> |
45 | <property stdset="1"> | 45 | <property stdset="1"> |
46 | <name>margin</name> | 46 | <name>margin</name> |
47 | <number>0</number> | 47 | <number>0</number> |
48 | </property> | 48 | </property> |
49 | <property stdset="1"> | 49 | <property stdset="1"> |
50 | <name>spacing</name> | 50 | <name>spacing</name> |
51 | <number>0</number> | 51 | <number>0</number> |
52 | </property> | 52 | </property> |
53 | <widget> | 53 | <widget> |
54 | <class>QFrame</class> | 54 | <class>QFrame</class> |
55 | <property stdset="1"> | 55 | <property stdset="1"> |
56 | <name>name</name> | 56 | <name>name</name> |
57 | <cstring>Frame8</cstring> | 57 | <cstring>Frame8</cstring> |
58 | </property> | 58 | </property> |
59 | <property stdset="1"> | 59 | <property stdset="1"> |
60 | <name>focusPolicy</name> | 60 | <name>focusPolicy</name> |
61 | <enum>NoFocus</enum> | 61 | <enum>NoFocus</enum> |
62 | </property> | 62 | </property> |
63 | <property stdset="1"> | 63 | <property stdset="1"> |
64 | <name>frameShape</name> | 64 | <name>frameShape</name> |
65 | <enum>NoFrame</enum> | 65 | <enum>NoFrame</enum> |
66 | </property> | 66 | </property> |
67 | <property stdset="1"> | 67 | <property stdset="1"> |
68 | <name>frameShadow</name> | 68 | <name>frameShadow</name> |
69 | <enum>Plain</enum> | 69 | <enum>Plain</enum> |
70 | </property> | 70 | </property> |
71 | <property> | 71 | <property> |
72 | <name>layoutMargin</name> | 72 | <name>layoutMargin</name> |
73 | </property> | 73 | </property> |
74 | <property> | 74 | <property> |
75 | <name>layoutSpacing</name> | 75 | <name>layoutSpacing</name> |
76 | </property> | 76 | </property> |
77 | <grid> | 77 | <grid> |
78 | <property stdset="1"> | 78 | <property stdset="1"> |
79 | <name>margin</name> | 79 | <name>margin</name> |
80 | <number>3</number> | 80 | <number>3</number> |
81 | </property> | 81 | </property> |
82 | <property stdset="1"> | 82 | <property stdset="1"> |
83 | <name>spacing</name> | 83 | <name>spacing</name> |
84 | <number>3</number> | 84 | <number>3</number> |
85 | </property> | 85 | </property> |
86 | <widget row="8" column="0" rowspan="1" colspan="2" > | 86 | <widget row="8" column="0" rowspan="1" colspan="2" > |
87 | <class>CategoryWidget</class> | 87 | <class>CategoryWidget</class> |
88 | <property stdset="1"> | 88 | <property stdset="1"> |
89 | <name>name</name> | 89 | <name>name</name> |
90 | <cstring>categoryEdit</cstring> | 90 | <cstring>categoryEdit</cstring> |
91 | </property> | 91 | </property> |
92 | <property stdset="1"> | 92 | <property stdset="1"> |
93 | <name>sizePolicy</name> | 93 | <name>sizePolicy</name> |
94 | <sizepolicy> | 94 | <sizepolicy> |
95 | <hsizetype>1</hsizetype> | 95 | <hsizetype>1</hsizetype> |
96 | <vsizetype>7</vsizetype> | 96 | <vsizetype>7</vsizetype> |
97 | </sizepolicy> | 97 | </sizepolicy> |
98 | </property> | 98 | </property> |
99 | </widget> | 99 | </widget> |
100 | <widget row="5" column="0" rowspan="1" colspan="2" > | 100 | <widget row="5" column="0" rowspan="1" colspan="2" > |
101 | <class>QCheckBox</class> | 101 | <class>QCheckBox</class> |
102 | <property stdset="1"> | 102 | <property stdset="1"> |
103 | <name>name</name> | 103 | <name>name</name> |
104 | <cstring>rotate</cstring> | 104 | <cstring>rotate</cstring> |
105 | </property> | 105 | </property> |
106 | <property stdset="1"> | 106 | <property stdset="1"> |
107 | <name>text</name> | 107 | <name>text</name> |
108 | <string>Use custom rotation</string> | 108 | <string>Use custom rotation</string> |
109 | </property> | 109 | </property> |
110 | <property> | 110 | <property> |
111 | <name>layoutMargin</name> | 111 | <name>layoutMargin</name> |
112 | </property> | 112 | </property> |
113 | <property> | 113 | <property> |
114 | <name>layoutSpacing</name> | 114 | <name>layoutSpacing</name> |
115 | </property> | 115 | </property> |
116 | <property> | 116 | <property> |
117 | <name>whatsThis</name> | 117 | <name>whatsThis</name> |
118 | <string>Preload this application so that it is available instantly.</string> | 118 | <string>Preload this application so that it is available instantly.</string> |
119 | </property> | 119 | </property> |
120 | </widget> | 120 | </widget> |
121 | <widget row="0" column="1" > | 121 | <widget row="0" column="1" > |
122 | <class>QLineEdit</class> | 122 | <class>QLineEdit</class> |
123 | <property stdset="1"> | 123 | <property stdset="1"> |
124 | <name>name</name> | 124 | <name>name</name> |
125 | <cstring>docname</cstring> | 125 | <cstring>docname</cstring> |
126 | </property> | 126 | </property> |
127 | <property stdset="1"> | 127 | <property stdset="1"> |
128 | <name>sizePolicy</name> | 128 | <name>sizePolicy</name> |
129 | <sizepolicy> | 129 | <sizepolicy> |
130 | <hsizetype>7</hsizetype> | 130 | <hsizetype>7</hsizetype> |
131 | <vsizetype>0</vsizetype> | 131 | <vsizetype>0</vsizetype> |
132 | </sizepolicy> | 132 | </sizepolicy> |
133 | </property> | 133 | </property> |
134 | <property stdset="1"> | 134 | <property stdset="1"> |
135 | <name>text</name> | 135 | <name>text</name> |
136 | <string></string> | 136 | <string></string> |
137 | </property> | 137 | </property> |
138 | <property> | 138 | <property> |
139 | <name>whatsThis</name> | 139 | <name>whatsThis</name> |
140 | <string>The name of this document.</string> | 140 | <string>The name of this document.</string> |
141 | </property> | 141 | </property> |
142 | </widget> | 142 | </widget> |
143 | <widget row="1" column="1" > | 143 | <widget row="1" column="1" > |
144 | <class>QComboBox</class> | 144 | <class>QComboBox</class> |
145 | <property stdset="1"> | 145 | <property stdset="1"> |
146 | <name>name</name> | 146 | <name>name</name> |
147 | <cstring>locationCombo</cstring> | 147 | <cstring>locationCombo</cstring> |
148 | </property> | 148 | </property> |
149 | <property stdset="1"> | 149 | <property stdset="1"> |
150 | <name>sizePolicy</name> | 150 | <name>sizePolicy</name> |
151 | <sizepolicy> | 151 | <sizepolicy> |
152 | <hsizetype>7</hsizetype> | 152 | <hsizetype>7</hsizetype> |
153 | <vsizetype>0</vsizetype> | 153 | <vsizetype>0</vsizetype> |
154 | </sizepolicy> | 154 | </sizepolicy> |
155 | </property> | 155 | </property> |
156 | <property> | 156 | <property> |
157 | <name>whatsThis</name> | 157 | <name>whatsThis</name> |
158 | <string>The media the document resides on.</string> | 158 | <string>The media the document resides on.</string> |
159 | </property> | 159 | </property> |
160 | </widget> | 160 | </widget> |
161 | <widget row="2" column="0" > | 161 | <widget row="2" column="0" > |
162 | <class>QLabel</class> | 162 | <class>QLabel</class> |
163 | <property stdset="1"> | 163 | <property stdset="1"> |
164 | <name>name</name> | 164 | <name>name</name> |
165 | <cstring>typeLabel</cstring> | 165 | <cstring>typeLabel</cstring> |
166 | </property> | 166 | </property> |
167 | <property stdset="1"> | 167 | <property stdset="1"> |
168 | <name>focusPolicy</name> | 168 | <name>focusPolicy</name> |
169 | <enum>NoFocus</enum> | 169 | <enum>NoFocus</enum> |
170 | </property> | 170 | </property> |
171 | <property stdset="1"> | 171 | <property stdset="1"> |
172 | <name>text</name> | 172 | <name>text</name> |
173 | <string>Type:</string> | 173 | <string>Type:</string> |
174 | </property> | 174 | </property> |
175 | <property stdset="1"> | ||
176 | <name>textFormat</name> | ||
177 | <enum>RichText</enum> | ||
178 | </property> | ||
175 | <property> | 179 | <property> |
176 | <name>layoutMargin</name> | 180 | <name>layoutMargin</name> |
177 | </property> | 181 | </property> |
178 | <property> | 182 | <property> |
179 | <name>layoutSpacing</name> | 183 | <name>layoutSpacing</name> |
180 | </property> | 184 | </property> |
181 | </widget> | 185 | </widget> |
182 | <widget row="2" column="1" > | 186 | <widget row="2" column="1" > |
183 | <class>QLabel</class> | 187 | <class>QLabel</class> |
184 | <property stdset="1"> | 188 | <property stdset="1"> |
185 | <name>name</name> | 189 | <name>name</name> |
186 | <cstring>type</cstring> | 190 | <cstring>type</cstring> |
187 | </property> | 191 | </property> |
188 | <property stdset="1"> | 192 | <property stdset="1"> |
189 | <name>text</name> | 193 | <name>text</name> |
190 | <string></string> | 194 | <string></string> |
191 | </property> | 195 | </property> |
192 | </widget> | 196 | </widget> |
193 | <widget row="1" column="0" > | 197 | <widget row="1" column="0" > |
194 | <class>QLabel</class> | 198 | <class>QLabel</class> |
195 | <property stdset="1"> | 199 | <property stdset="1"> |
196 | <name>name</name> | 200 | <name>name</name> |
197 | <cstring>locationLabel</cstring> | 201 | <cstring>locationLabel</cstring> |
198 | </property> | 202 | </property> |
199 | <property stdset="1"> | 203 | <property stdset="1"> |
200 | <name>sizePolicy</name> | 204 | <name>sizePolicy</name> |
201 | <sizepolicy> | 205 | <sizepolicy> |
202 | <hsizetype>1</hsizetype> | 206 | <hsizetype>1</hsizetype> |
203 | <vsizetype>1</vsizetype> | 207 | <vsizetype>1</vsizetype> |
204 | </sizepolicy> | 208 | </sizepolicy> |
205 | </property> | 209 | </property> |
206 | <property stdset="1"> | 210 | <property stdset="1"> |
207 | <name>caption</name> | 211 | <name>caption</name> |
208 | <string></string> | 212 | <string></string> |
209 | </property> | 213 | </property> |
210 | <property stdset="1"> | 214 | <property stdset="1"> |
211 | <name>text</name> | 215 | <name>text</name> |
212 | <string>Location:</string> | 216 | <string>Location:</string> |
213 | </property> | 217 | </property> |
214 | <property> | 218 | <property> |
215 | <name>layoutMargin</name> | 219 | <name>layoutMargin</name> |
216 | </property> | 220 | </property> |
217 | <property> | 221 | <property> |
218 | <name>layoutSpacing</name> | 222 | <name>layoutSpacing</name> |
219 | </property> | 223 | </property> |
220 | </widget> | 224 | </widget> |
221 | <widget row="0" column="0" > | 225 | <widget row="0" column="0" > |
222 | <class>QLabel</class> | 226 | <class>QLabel</class> |
223 | <property stdset="1"> | 227 | <property stdset="1"> |
224 | <name>name</name> | 228 | <name>name</name> |
225 | <cstring>TextLabel1</cstring> | 229 | <cstring>TextLabel1</cstring> |
226 | </property> | 230 | </property> |
227 | <property stdset="1"> | 231 | <property stdset="1"> |
228 | <name>frameShadow</name> | 232 | <name>frameShadow</name> |
229 | <enum>MShadow</enum> | 233 | <enum>MShadow</enum> |
230 | </property> | 234 | </property> |
231 | <property stdset="1"> | 235 | <property stdset="1"> |
232 | <name>text</name> | 236 | <name>text</name> |
233 | <string>Name:</string> | 237 | <string>Name:</string> |
234 | </property> | 238 | </property> |
235 | </widget> | 239 | </widget> |
236 | <widget row="3" column="1" > | 240 | <widget row="3" column="1" > |
237 | <class>QLabel</class> | 241 | <class>QLabel</class> |
238 | <property stdset="1"> | 242 | <property stdset="1"> |
239 | <name>name</name> | 243 | <name>name</name> |
240 | <cstring>comment</cstring> | 244 | <cstring>comment</cstring> |
241 | </property> | 245 | </property> |
242 | <property stdset="1"> | 246 | <property stdset="1"> |
243 | <name>text</name> | 247 | <name>text</name> |
244 | <string></string> | 248 | <string></string> |
245 | </property> | 249 | </property> |
246 | </widget> | 250 | </widget> |
247 | <widget row="6" column="0" rowspan="1" colspan="2" > | 251 | <widget row="6" column="0" rowspan="1" colspan="2" > |
248 | <class>QButtonGroup</class> | 252 | <class>QButtonGroup</class> |
249 | <property stdset="1"> | 253 | <property stdset="1"> |
250 | <name>name</name> | 254 | <name>name</name> |
251 | <cstring>rotateButtons</cstring> | 255 | <cstring>rotateButtons</cstring> |
252 | </property> | 256 | </property> |
253 | <property stdset="1"> | 257 | <property stdset="1"> |
254 | <name>frameShape</name> | 258 | <name>frameShape</name> |
255 | <enum>NoFrame</enum> | 259 | <enum>NoFrame</enum> |
256 | </property> | 260 | </property> |
257 | <property stdset="1"> | 261 | <property stdset="1"> |
258 | <name>title</name> | 262 | <name>title</name> |
259 | <string></string> | 263 | <string></string> |
260 | </property> | 264 | </property> |
261 | <property stdset="1"> | 265 | <property stdset="1"> |
262 | <name>exclusive</name> | 266 | <name>exclusive</name> |
263 | <bool>true</bool> | 267 | <bool>true</bool> |
264 | </property> | 268 | </property> |
265 | <property> | 269 | <property> |
266 | <name>layoutMargin</name> | 270 | <name>layoutMargin</name> |
267 | </property> | 271 | </property> |
268 | <property> | 272 | <property> |
269 | <name>layoutSpacing</name> | 273 | <name>layoutSpacing</name> |
270 | </property> | 274 | </property> |
271 | <hbox> | 275 | <hbox> |
272 | <property stdset="1"> | 276 | <property stdset="1"> |
273 | <name>margin</name> | 277 | <name>margin</name> |
274 | <number>0</number> | 278 | <number>0</number> |
275 | </property> | 279 | </property> |
276 | <property stdset="1"> | 280 | <property stdset="1"> |
277 | <name>spacing</name> | 281 | <name>spacing</name> |
278 | <number>3</number> | 282 | <number>3</number> |
279 | </property> | 283 | </property> |
280 | <spacer> | 284 | <spacer> |
281 | <property> | 285 | <property> |
282 | <name>name</name> | 286 | <name>name</name> |
283 | <cstring>s1</cstring> | 287 | <cstring>s1</cstring> |
284 | </property> | 288 | </property> |
285 | <property stdset="1"> | 289 | <property stdset="1"> |
286 | <name>orientation</name> | 290 | <name>orientation</name> |
287 | <enum>Horizontal</enum> | 291 | <enum>Horizontal</enum> |
288 | </property> | 292 | </property> |
289 | <property stdset="1"> | 293 | <property stdset="1"> |
290 | <name>sizeType</name> | 294 | <name>sizeType</name> |
291 | <enum>Fixed</enum> | 295 | <enum>Fixed</enum> |
292 | </property> | 296 | </property> |
293 | <property> | 297 | <property> |
294 | <name>sizeHint</name> | 298 | <name>sizeHint</name> |
295 | <size> | 299 | <size> |
296 | <width>20</width> | 300 | <width>20</width> |
297 | <height>28</height> | 301 | <height>28</height> |
298 | </size> | 302 | </size> |
299 | </property> | 303 | </property> |
300 | </spacer> | 304 | </spacer> |
301 | <widget> | 305 | <widget> |
302 | <class>QToolButton</class> | 306 | <class>QToolButton</class> |
303 | <property stdset="1"> | 307 | <property stdset="1"> |
304 | <name>name</name> | 308 | <name>name</name> |
305 | <cstring>ToolButton1</cstring> | 309 | <cstring>ToolButton1</cstring> |
306 | </property> | 310 | </property> |
307 | <property stdset="1"> | 311 | <property stdset="1"> |
308 | <name>text</name> | 312 | <name>text</name> |
309 | <string></string> | 313 | <string></string> |
310 | </property> | 314 | </property> |
311 | <property stdset="1"> | 315 | <property stdset="1"> |
312 | <name>pixmap</name> | 316 | <name>pixmap</name> |
313 | <pixmap>image0</pixmap> | 317 | <pixmap>image0</pixmap> |
314 | </property> | 318 | </property> |
315 | <property stdset="1"> | 319 | <property stdset="1"> |
316 | <name>toggleButton</name> | 320 | <name>toggleButton</name> |
317 | <bool>true</bool> | 321 | <bool>true</bool> |
318 | </property> | 322 | </property> |
319 | <property stdset="1"> | 323 | <property stdset="1"> |
320 | <name>on</name> | 324 | <name>on</name> |
321 | <bool>false</bool> | 325 | <bool>false</bool> |
322 | </property> | 326 | </property> |
323 | <property stdset="1"> | 327 | <property stdset="1"> |
324 | <name>usesBigPixmap</name> | 328 | <name>usesBigPixmap</name> |
325 | <bool>true</bool> | 329 | <bool>true</bool> |
326 | </property> | 330 | </property> |
327 | <property stdset="1"> | 331 | <property stdset="1"> |
328 | <name>toggleButton</name> | 332 | <name>toggleButton</name> |
329 | <bool>true</bool> | 333 | <bool>true</bool> |
330 | </property> | 334 | </property> |
331 | <property stdset="1"> | 335 | <property stdset="1"> |
332 | <name>on</name> | 336 | <name>on</name> |
333 | <bool>false</bool> | 337 | <bool>false</bool> |
334 | </property> | 338 | </property> |
335 | <property stdset="1"> | 339 | <property stdset="1"> |
336 | <name>buttonGroupId</name> | 340 | <name>buttonGroupId</name> |
337 | <number>0</number> | 341 | <number>0</number> |
338 | </property> | 342 | </property> |
339 | </widget> | 343 | </widget> |
340 | <widget> | 344 | <widget> |
341 | <class>QToolButton</class> | 345 | <class>QToolButton</class> |
342 | <property stdset="1"> | 346 | <property stdset="1"> |
343 | <name>name</name> | 347 | <name>name</name> |
344 | <cstring>ToolButton2</cstring> | 348 | <cstring>ToolButton2</cstring> |
345 | </property> | 349 | </property> |
346 | <property stdset="1"> | 350 | <property stdset="1"> |
347 | <name>text</name> | 351 | <name>text</name> |
348 | <string></string> | 352 | <string></string> |
349 | </property> | 353 | </property> |
350 | <property stdset="1"> | 354 | <property stdset="1"> |
351 | <name>pixmap</name> | 355 | <name>pixmap</name> |
352 | <pixmap>image1</pixmap> | 356 | <pixmap>image1</pixmap> |
353 | </property> | 357 | </property> |
354 | <property stdset="1"> | 358 | <property stdset="1"> |
355 | <name>toggleButton</name> | 359 | <name>toggleButton</name> |
356 | <bool>true</bool> | 360 | <bool>true</bool> |
357 | </property> | 361 | </property> |
358 | <property stdset="1"> | 362 | <property stdset="1"> |
359 | <name>usesBigPixmap</name> | 363 | <name>usesBigPixmap</name> |
360 | <bool>true</bool> | 364 | <bool>true</bool> |
361 | </property> | 365 | </property> |
362 | <property stdset="1"> | 366 | <property stdset="1"> |
363 | <name>toggleButton</name> | 367 | <name>toggleButton</name> |
364 | <bool>true</bool> | 368 | <bool>true</bool> |
365 | </property> | 369 | </property> |
366 | <property stdset="1"> | 370 | <property stdset="1"> |
367 | <name>buttonGroupId</name> | 371 | <name>buttonGroupId</name> |
368 | <number>1</number> | 372 | <number>1</number> |
369 | </property> | 373 | </property> |
370 | </widget> | 374 | </widget> |
371 | <widget> | 375 | <widget> |
372 | <class>QToolButton</class> | 376 | <class>QToolButton</class> |
373 | <property stdset="1"> | 377 | <property stdset="1"> |
374 | <name>name</name> | 378 | <name>name</name> |
375 | <cstring>ToolButton3</cstring> | 379 | <cstring>ToolButton3</cstring> |
376 | </property> | 380 | </property> |
377 | <property stdset="1"> | 381 | <property stdset="1"> |
378 | <name>text</name> | 382 | <name>text</name> |
379 | <string></string> | 383 | <string></string> |
380 | </property> | 384 | </property> |
381 | <property stdset="1"> | 385 | <property stdset="1"> |
382 | <name>pixmap</name> | 386 | <name>pixmap</name> |
383 | <pixmap>image2</pixmap> | 387 | <pixmap>image2</pixmap> |
384 | </property> | 388 | </property> |
385 | <property stdset="1"> | 389 | <property stdset="1"> |
386 | <name>toggleButton</name> | 390 | <name>toggleButton</name> |
387 | <bool>true</bool> | 391 | <bool>true</bool> |
388 | </property> | 392 | </property> |
389 | <property stdset="1"> | 393 | <property stdset="1"> |
390 | <name>usesBigPixmap</name> | 394 | <name>usesBigPixmap</name> |
391 | <bool>true</bool> | 395 | <bool>true</bool> |
392 | </property> | 396 | </property> |
393 | <property stdset="1"> | 397 | <property stdset="1"> |
394 | <name>toggleButton</name> | 398 | <name>toggleButton</name> |
395 | <bool>true</bool> | 399 | <bool>true</bool> |
396 | </property> | 400 | </property> |
397 | <property stdset="1"> | 401 | <property stdset="1"> |
398 | <name>buttonGroupId</name> | 402 | <name>buttonGroupId</name> |
399 | <number>2</number> | 403 | <number>2</number> |
400 | </property> | 404 | </property> |
401 | </widget> | 405 | </widget> |
402 | <widget> | 406 | <widget> |
403 | <class>QToolButton</class> | 407 | <class>QToolButton</class> |
404 | <property stdset="1"> | 408 | <property stdset="1"> |
405 | <name>name</name> | 409 | <name>name</name> |
406 | <cstring>ToolButton4</cstring> | 410 | <cstring>ToolButton4</cstring> |
407 | </property> | 411 | </property> |
408 | <property stdset="1"> | 412 | <property stdset="1"> |
409 | <name>text</name> | 413 | <name>text</name> |
410 | <string></string> | 414 | <string></string> |
411 | </property> | 415 | </property> |
412 | <property stdset="1"> | 416 | <property stdset="1"> |
413 | <name>pixmap</name> | 417 | <name>pixmap</name> |
414 | <pixmap>image3</pixmap> | 418 | <pixmap>image3</pixmap> |
415 | </property> | 419 | </property> |
416 | <property stdset="1"> | 420 | <property stdset="1"> |
417 | <name>toggleButton</name> | 421 | <name>toggleButton</name> |
418 | <bool>true</bool> | 422 | <bool>true</bool> |
419 | </property> | 423 | </property> |
420 | <property stdset="1"> | 424 | <property stdset="1"> |
421 | <name>usesBigPixmap</name> | 425 | <name>usesBigPixmap</name> |
422 | <bool>true</bool> | 426 | <bool>true</bool> |
423 | </property> | 427 | </property> |
424 | <property stdset="1"> | 428 | <property stdset="1"> |
425 | <name>toggleButton</name> | 429 | <name>toggleButton</name> |
426 | <bool>true</bool> | 430 | <bool>true</bool> |
427 | </property> | 431 | </property> |
428 | <property stdset="1"> | 432 | <property stdset="1"> |
429 | <name>buttonGroupId</name> | 433 | <name>buttonGroupId</name> |
430 | <number>3</number> | 434 | <number>3</number> |
431 | </property> | 435 | </property> |
432 | </widget> | 436 | </widget> |
433 | <spacer> | 437 | <spacer> |
434 | <property> | 438 | <property> |
435 | <name>name</name> | 439 | <name>name</name> |
436 | <cstring>s4</cstring> | 440 | <cstring>s4</cstring> |
437 | </property> | 441 | </property> |
438 | <property stdset="1"> | 442 | <property stdset="1"> |
439 | <name>orientation</name> | 443 | <name>orientation</name> |
440 | <enum>Horizontal</enum> | 444 | <enum>Horizontal</enum> |
441 | </property> | 445 | </property> |
442 | <property stdset="1"> | 446 | <property stdset="1"> |
443 | <name>sizeType</name> | 447 | <name>sizeType</name> |
444 | <enum>MinimumExpanding</enum> | 448 | <enum>MinimumExpanding</enum> |
445 | </property> | 449 | </property> |
446 | <property> | 450 | <property> |
447 | <name>sizeHint</name> | 451 | <name>sizeHint</name> |
448 | <size> | 452 | <size> |
449 | <width>20</width> | 453 | <width>20</width> |
450 | <height>20</height> | 454 | <height>20</height> |
451 | </size> | 455 | </size> |
452 | </property> | 456 | </property> |
453 | </spacer> | 457 | </spacer> |
454 | </hbox> | 458 | </hbox> |
455 | </widget> | 459 | </widget> |
456 | <widget row="7" column="0" rowspan="1" colspan="2" > | 460 | <widget row="7" column="0" rowspan="1" colspan="2" > |
457 | <class>QLabel</class> | 461 | <class>QLabel</class> |
458 | <property stdset="1"> | 462 | <property stdset="1"> |
459 | <name>name</name> | 463 | <name>name</name> |
460 | <cstring>labelspacer</cstring> | 464 | <cstring>labelspacer</cstring> |
461 | </property> | 465 | </property> |
462 | <property stdset="1"> | 466 | <property stdset="1"> |
463 | <name>sizePolicy</name> | 467 | <name>sizePolicy</name> |
464 | <sizepolicy> | 468 | <sizepolicy> |
465 | <hsizetype>1</hsizetype> | 469 | <hsizetype>1</hsizetype> |
466 | <vsizetype>7</vsizetype> | 470 | <vsizetype>7</vsizetype> |
467 | </sizepolicy> | 471 | </sizepolicy> |
468 | </property> | 472 | </property> |
469 | <property stdset="1"> | 473 | <property stdset="1"> |
470 | <name>text</name> | 474 | <name>text</name> |
471 | <string></string> | 475 | <string></string> |
472 | </property> | 476 | </property> |
473 | </widget> | 477 | </widget> |
474 | <widget row="4" column="0" rowspan="1" colspan="2" > | 478 | <widget row="4" column="0" rowspan="1" colspan="2" > |
475 | <class>QCheckBox</class> | 479 | <class>QCheckBox</class> |
476 | <property stdset="1"> | 480 | <property stdset="1"> |
477 | <name>name</name> | 481 | <name>name</name> |
478 | <cstring>preload</cstring> | 482 | <cstring>preload</cstring> |
479 | </property> | 483 | </property> |
480 | <property stdset="1"> | 484 | <property stdset="1"> |
481 | <name>text</name> | 485 | <name>text</name> |
482 | <string>Fast load (consumes memory)</string> | 486 | <string>Fast load (consumes memory)</string> |
483 | </property> | 487 | </property> |
484 | <property> | 488 | <property> |
485 | <name>layoutMargin</name> | 489 | <name>layoutMargin</name> |
486 | </property> | 490 | </property> |
487 | <property> | 491 | <property> |
488 | <name>layoutSpacing</name> | 492 | <name>layoutSpacing</name> |
489 | </property> | 493 | </property> |
490 | <property> | 494 | <property> |
491 | <name>whatsThis</name> | 495 | <name>whatsThis</name> |
492 | <string>Preload this application so that it is available instantly.</string> | 496 | <string>Preload this application so that it is available instantly.</string> |
493 | </property> | 497 | </property> |
494 | </widget> | 498 | </widget> |
495 | <widget row="3" column="0" > | 499 | <widget row="3" column="0" > |
496 | <class>QLabel</class> | 500 | <class>QLabel</class> |
497 | <property stdset="1"> | 501 | <property stdset="1"> |
498 | <name>name</name> | 502 | <name>name</name> |
499 | <cstring>commentLabel</cstring> | 503 | <cstring>commentLabel</cstring> |
500 | </property> | 504 | </property> |
501 | <property stdset="1"> | 505 | <property stdset="1"> |
502 | <name>text</name> | 506 | <name>text</name> |
503 | <string>Comment:</string> | 507 | <string>Comment:</string> |
504 | </property> | 508 | </property> |
509 | <property stdset="1"> | ||
510 | <name>textFormat</name> | ||
511 | <enum>RichText</enum> | ||
512 | </property> | ||
505 | </widget> | 513 | </widget> |
506 | </grid> | 514 | </grid> |
507 | </widget> | 515 | </widget> |
508 | <widget> | 516 | <widget> |
509 | <class>Line</class> | 517 | <class>Line</class> |
510 | <property stdset="1"> | 518 | <property stdset="1"> |
511 | <name>name</name> | 519 | <name>name</name> |
512 | <cstring>hline</cstring> | 520 | <cstring>hline</cstring> |
513 | </property> | 521 | </property> |
514 | <property stdset="1"> | 522 | <property stdset="1"> |
515 | <name>frameShadow</name> | 523 | <name>frameShadow</name> |
516 | <enum>Sunken</enum> | 524 | <enum>Sunken</enum> |
517 | </property> | 525 | </property> |
518 | <property stdset="1"> | 526 | <property stdset="1"> |
519 | <name>orientation</name> | 527 | <name>orientation</name> |
520 | <enum>Horizontal</enum> | 528 | <enum>Horizontal</enum> |
521 | </property> | 529 | </property> |
522 | <property> | 530 | <property> |
523 | <name>layoutMargin</name> | 531 | <name>layoutMargin</name> |
524 | </property> | 532 | </property> |
525 | <property> | 533 | <property> |
526 | <name>layoutSpacing</name> | 534 | <name>layoutSpacing</name> |
527 | </property> | 535 | </property> |
528 | </widget> | 536 | </widget> |
529 | <widget> | 537 | <widget> |
530 | <class>QFrame</class> | 538 | <class>QFrame</class> |
531 | <property stdset="1"> | 539 | <property stdset="1"> |
532 | <name>name</name> | 540 | <name>name</name> |
533 | <cstring>Frame9</cstring> | 541 | <cstring>Frame9</cstring> |
534 | </property> | 542 | </property> |
535 | <property stdset="1"> | 543 | <property stdset="1"> |
536 | <name>frameShape</name> | 544 | <name>frameShape</name> |
537 | <enum>NoFrame</enum> | 545 | <enum>NoFrame</enum> |
538 | </property> | 546 | </property> |
539 | <property stdset="1"> | 547 | <property stdset="1"> |
540 | <name>frameShadow</name> | 548 | <name>frameShadow</name> |
541 | <enum>Plain</enum> | 549 | <enum>Plain</enum> |
542 | </property> | 550 | </property> |
543 | <property> | 551 | <property> |
544 | <name>layoutMargin</name> | 552 | <name>layoutMargin</name> |
545 | </property> | 553 | </property> |
546 | <property> | 554 | <property> |
547 | <name>layoutSpacing</name> | 555 | <name>layoutSpacing</name> |
548 | </property> | 556 | </property> |
549 | <hbox> | 557 | <hbox> |
550 | <property stdset="1"> | 558 | <property stdset="1"> |
551 | <name>margin</name> | 559 | <name>margin</name> |
552 | <number>3</number> | 560 | <number>3</number> |
553 | </property> | 561 | </property> |
554 | <property stdset="1"> | 562 | <property stdset="1"> |
555 | <name>spacing</name> | 563 | <name>spacing</name> |
556 | <number>5</number> | 564 | <number>5</number> |
557 | </property> | 565 | </property> |
558 | <widget> | 566 | <widget> |
559 | <class>QPushButton</class> | 567 | <class>QPushButton</class> |
560 | <property stdset="1"> | 568 | <property stdset="1"> |
561 | <name>name</name> | 569 | <name>name</name> |
562 | <cstring>unlink</cstring> | 570 | <cstring>unlink</cstring> |
563 | </property> | 571 | </property> |
564 | <property stdset="1"> | 572 | <property stdset="1"> |
565 | <name>focusPolicy</name> | 573 | <name>focusPolicy</name> |
566 | <enum>TabFocus</enum> | 574 | <enum>TabFocus</enum> |
567 | </property> | 575 | </property> |
568 | <property stdset="1"> | 576 | <property stdset="1"> |
569 | <name>text</name> | 577 | <name>text</name> |
570 | <string>Delete</string> | 578 | <string>Delete</string> |
571 | </property> | 579 | </property> |
572 | <property stdset="1"> | 580 | <property stdset="1"> |
573 | <name>autoDefault</name> | 581 | <name>autoDefault</name> |
574 | <bool>false</bool> | 582 | <bool>false</bool> |
575 | </property> | 583 | </property> |
576 | <property> | 584 | <property> |
577 | <name>whatsThis</name> | 585 | <name>whatsThis</name> |
578 | <string>Delete this document.</string> | 586 | <string>Delete this document.</string> |
579 | </property> | 587 | </property> |
580 | </widget> | 588 | </widget> |
581 | <widget> | 589 | <widget> |
582 | <class>QPushButton</class> | 590 | <class>QPushButton</class> |
583 | <property stdset="1"> | 591 | <property stdset="1"> |
584 | <name>name</name> | 592 | <name>name</name> |
585 | <cstring>duplicate</cstring> | 593 | <cstring>duplicate</cstring> |
586 | </property> | 594 | </property> |
587 | <property stdset="1"> | 595 | <property stdset="1"> |
588 | <name>text</name> | 596 | <name>text</name> |
589 | <string>Copy</string> | 597 | <string>Copy</string> |
590 | </property> | 598 | </property> |
591 | <property stdset="1"> | 599 | <property stdset="1"> |
592 | <name>autoDefault</name> | 600 | <name>autoDefault</name> |
593 | <bool>false</bool> | 601 | <bool>false</bool> |
594 | </property> | 602 | </property> |
595 | <property> | 603 | <property> |
596 | <name>whatsThis</name> | 604 | <name>whatsThis</name> |
597 | <string>Make a copy of this document.</string> | 605 | <string>Make a copy of this document.</string> |
598 | </property> | 606 | </property> |
599 | </widget> | 607 | </widget> |
600 | <widget> | 608 | <widget> |
601 | <class>QPushButton</class> | 609 | <class>QPushButton</class> |
602 | <property stdset="1"> | 610 | <property stdset="1"> |
603 | <name>name</name> | 611 | <name>name</name> |
604 | <cstring>beam</cstring> | 612 | <cstring>beam</cstring> |
605 | </property> | 613 | </property> |
606 | <property stdset="1"> | 614 | <property stdset="1"> |
607 | <name>focusPolicy</name> | 615 | <name>focusPolicy</name> |
608 | <enum>TabFocus</enum> | 616 | <enum>TabFocus</enum> |
609 | </property> | 617 | </property> |
610 | <property stdset="1"> | 618 | <property stdset="1"> |
611 | <name>text</name> | 619 | <name>text</name> |
612 | <string>Beam</string> | 620 | <string>Beam</string> |
613 | </property> | 621 | </property> |
614 | <property stdset="1"> | 622 | <property stdset="1"> |
615 | <name>autoDefault</name> | 623 | <name>autoDefault</name> |
616 | <bool>false</bool> | 624 | <bool>false</bool> |
617 | </property> | 625 | </property> |
618 | <property> | 626 | <property> |
619 | <name>whatsThis</name> | 627 | <name>whatsThis</name> |
620 | <string>Beam this document to another device.</string> | 628 | <string>Beam this document to another device.</string> |
621 | </property> | 629 | </property> |
622 | </widget> | 630 | </widget> |
623 | </hbox> | 631 | </hbox> |
624 | </widget> | 632 | </widget> |
625 | </vbox> | 633 | </vbox> |
626 | </widget> | 634 | </widget> |
627 | <customwidgets> | 635 | <customwidgets> |
628 | <customwidget> | 636 | <customwidget> |
629 | <class>CategoryWidget</class> | 637 | <class>CategoryWidget</class> |
630 | <header location="global">qpe/categorywidget.h</header> | 638 | <header location="global">qpe/categorywidget.h</header> |
631 | <sizehint> | 639 | <sizehint> |
632 | <width>-1</width> | 640 | <width>-1</width> |
633 | <height>-1</height> | 641 | <height>-1</height> |
634 | </sizehint> | 642 | </sizehint> |
635 | <container>0</container> | 643 | <container>0</container> |
636 | <sizepolicy> | 644 | <sizepolicy> |
637 | <hordata>7</hordata> | 645 | <hordata>7</hordata> |
638 | <verdata>7</verdata> | 646 | <verdata>7</verdata> |
639 | </sizepolicy> | 647 | </sizepolicy> |
640 | <pixmap>image4</pixmap> | 648 | <pixmap>image4</pixmap> |
641 | </customwidget> | 649 | </customwidget> |
642 | </customwidgets> | 650 | </customwidgets> |
643 | <images> | 651 | <images> |
644 | <image> | 652 | <image> |
645 | <name>image0</name> | 653 | <name>image0</name> |
646 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b014013032d4282b2b13366708a951067908240fa6a00a95612cb01a6528d04362e92158e0a40213830510c4546598dd103570b72098482ea3ae1ac2eec1ef2f6565d4f051c6123e3035f8c1a81a2aa8a9b5e60200f6abd263</data> | 654 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b014013032d4282b2b13366708a951067908240fa6a00a95612cb01a6528d04362e92158e0a40213830510c4546598dd103570b72098482ea3ae1ac2eec1ef2f6565d4f051c6123e3035f8c1a81a2aa8a9b5e60200f6abd263</data> |
647 | </image> | 655 | </image> |
648 | <image> | 656 | <image> |
649 | <name>image1</name> | 657 | <name>image1</name> |
650 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b01416a0ac8c6053a2061960aa019b806c0ca61a65a81a7c764125e9a486b07b40d2cacaf8fd0555a4875f0d0620cf1c22dc33d8c2197fda504605e4ab41b5129f7b3001b630c46317f16a88cb17c814add5d02ecdd75a730100b509d263</data> | 658 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b01416a0ac8c6053a2061960aa019b806c0ca61a65a81a7c764125e9a486b07b40d2cacaf8fd0555a4875f0d0620cf1c22dc33d8c2197fda504605e4ab41b5129f7b3001b630c46317f16a88cb17c814add5d02ecdd75a730100b509d263</data> |
651 | </image> | 659 | </image> |
652 | <image> | 660 | <image> |
653 | <name>image2</name> | 661 | <name>image2</name> |
654 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b0140130aa863a6a9495f5f49441002c02664030840d53a3ac0c53a40c67c25950bb60d27a70857a08268a7b20164059082695d510e31e62fc85193e7aa8e1832568a1eaf1c6c5e053a34c500d0a18b66a6aadb9001be4d263</data> | 662 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b0140130aa863a6a9495f5f49441002c02664030840d53a3ac0c53a40c67c25950bb60d27a70857a08268a7b20164059082695d510e31e62fc85193e7aa8e1832568a1eaf1c6c5e053a34c500d0a18b66a6aadb9001be4d263</data> |
655 | </image> | 663 | </image> |
656 | <image> | 664 | <image> |
657 | <name>image3</name> | 665 | <name>image3</name> |
658 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b014125006013d5480a64659198b22543510697445e86a9029daaad183ba87809bb1788c7435d8019a392872cad8d5a002b2d510e777648ad66a08a70d62d2185169152b1819699ec870c634869cf48c1e7cc4aba9b5e602005d86d263</data> | 666 | <data format="XPM.GZ" length="1226">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523236520022230543251d2e253d856405bffcbc54105b19c856360003b014125006013d5480a64659198b22543510697445e86a9029daaad183ba87809bb1788c7435d8019a392872cad8d5a002b2d510e777648ad66a08a70d62d2185169152b1819699ec870c634869cf48c1e7cc4aba9b5e602005d86d263</data> |
659 | </image> | 667 | </image> |
660 | <image> | 668 | <image> |
661 | <name>image4</name> | 669 | <name>image4</name> |
662 | <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data> | 670 | <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data> |
663 | </image> | 671 | </image> |
664 | </images> | 672 | </images> |
665 | <connections> | 673 | <connections> |
666 | <connection> | 674 | <connection> |
667 | <sender>rotate</sender> | 675 | <sender>rotate</sender> |
668 | <signal>toggled(bool)</signal> | 676 | <signal>toggled(bool)</signal> |
669 | <receiver>rotateButtons</receiver> | 677 | <receiver>rotateButtons</receiver> |
670 | <slot>setEnabled(bool)</slot> | 678 | <slot>setEnabled(bool)</slot> |
671 | </connection> | 679 | </connection> |
672 | </connections> | 680 | </connections> |
673 | <tabstops> | 681 | <tabstops> |
674 | <tabstop>docname</tabstop> | 682 | <tabstop>docname</tabstop> |
675 | <tabstop>preload</tabstop> | 683 | <tabstop>preload</tabstop> |
676 | <tabstop>locationCombo</tabstop> | 684 | <tabstop>locationCombo</tabstop> |
677 | <tabstop>unlink</tabstop> | 685 | <tabstop>unlink</tabstop> |
678 | <tabstop>duplicate</tabstop> | 686 | <tabstop>duplicate</tabstop> |
679 | <tabstop>beam</tabstop> | 687 | <tabstop>beam</tabstop> |
680 | </tabstops> | 688 | </tabstops> |
681 | </UI> | 689 | </UI> |
diff --git a/library/mimetype.cpp b/library/mimetype.cpp index ef5d619..d0a578e 100644 --- a/library/mimetype.cpp +++ b/library/mimetype.cpp | |||
@@ -1,306 +1,370 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #define QTOPIA_INTERNAL_MIMEEXT | 21 | #define QTOPIA_INTERNAL_MIMEEXT |
22 | #include "mimetype.h" | 22 | #include "mimetype.h" |
23 | #include "applnk.h" | 23 | #include "applnk.h" |
24 | #include "resource.h" | 24 | #include "resource.h" |
25 | #include <qpe/qpeapplication.h> | 25 | #include <qpe/qpeapplication.h> |
26 | #include "config.h" | 26 | #include "config.h" |
27 | 27 | ||
28 | #include <qfile.h> | 28 | #include <qfile.h> |
29 | #include <qdict.h> | 29 | #include <qdict.h> |
30 | #include <qregexp.h> | 30 | #include <qregexp.h> |
31 | #include <qstringlist.h> | 31 | #include <qstringlist.h> |
32 | #include <qtextstream.h> | 32 | #include <qtextstream.h> |
33 | #include <qmap.h> | 33 | #include <qmap.h> |
34 | 34 | ||
35 | 35 | ||
36 | static void cleanupMime() | 36 | static void cleanupMime() |
37 | { | 37 | { |
38 | MimeType::clear(); | 38 | MimeType::clear(); |
39 | } | 39 | } |
40 | 40 | ||
41 | class MimeTypeData { | 41 | class MimeTypeData { |
42 | public: | 42 | public: |
43 | MimeTypeData(const QString& i) : | 43 | MimeTypeData(const QString& i) : |
44 | id(i) | 44 | id(i) |
45 | { | 45 | { |
46 | apps.setAutoDelete(TRUE); | 46 | apps.setAutoDelete(TRUE); |
47 | } | 47 | } |
48 | QString id; | 48 | QString id; |
49 | QString extension; | 49 | QString extension; |
50 | QList<AppLnk> apps; | 50 | QList<AppLnk> apps; |
51 | 51 | ||
52 | QString description() | 52 | QString description() |
53 | { | 53 | { |
54 | if ( desc.isEmpty() ) | 54 | if ( desc.isEmpty() ) |
55 | desc = QPEApplication::tr("%1 document").arg(apps.first()->name()); | 55 | desc = QPEApplication::tr("%1 document").arg(apps.first()->name()); |
56 | return desc; | 56 | return desc; |
57 | } | 57 | } |
58 | 58 | ||
59 | QPixmap regIcon() | 59 | QPixmap regIcon() |
60 | { | 60 | { |
61 | if ( regicon.isNull() ) | 61 | if ( regicon.isNull() ) |
62 | loadPixmaps(); | 62 | loadPixmaps(); |
63 | return regicon; | 63 | return regicon; |
64 | } | 64 | } |
65 | 65 | ||
66 | QPixmap bigIcon() | 66 | QPixmap bigIcon() |
67 | { | 67 | { |
68 | if ( bigicon.isNull() ) | 68 | if ( bigicon.isNull() ) |
69 | loadPixmaps(); | 69 | loadPixmaps(); |
70 | return bigicon; | 70 | return bigicon; |
71 | } | 71 | } |
72 | 72 | ||
73 | private: | 73 | private: |
74 | void loadPixmaps() | 74 | void loadPixmaps() |
75 | { | 75 | { |
76 | if ( apps.count() ) { | 76 | if ( apps.count() ) { |
77 | QString icon; | 77 | QString icon; |
78 | for (AppLnk* lnk = apps.first(); icon.isNull() && lnk; lnk=apps.next()) { | 78 | for (AppLnk* lnk = apps.first(); icon.isNull() && lnk; lnk=apps.next()) { |
79 | QStringList icons = lnk->mimeTypeIcons(); | 79 | QStringList icons = lnk->mimeTypeIcons(); |
80 | if ( icons.count() ) { | 80 | if ( icons.count() ) { |
81 | QStringList types = lnk->mimeTypes(); | 81 | QStringList types = lnk->mimeTypes(); |
82 | for (QStringList::ConstIterator t=types.begin(),i=icons.begin(); t!=types.end() && i!=icons.end(); ++i,++t) { | 82 | for (QStringList::ConstIterator t=types.begin(),i=icons.begin(); t!=types.end() && i!=icons.end(); ++i,++t) { |
83 | if ( *t == id ) { | 83 | if ( *t == id ) { |
84 | icon = *i; | 84 | icon = *i; |
85 | break; | 85 | break; |
86 | } | 86 | } |
87 | } | 87 | } |
88 | } | 88 | } |
89 | } | 89 | } |
90 | if ( icon.isNull() ) { | 90 | if ( icon.isNull() ) { |
91 | AppLnk* lnk = apps.first(); | 91 | AppLnk* lnk = apps.first(); |
92 | regicon = lnk->pixmap(); | 92 | regicon = lnk->pixmap(); |
93 | bigicon = lnk->bigPixmap(); | 93 | bigicon = lnk->bigPixmap(); |
94 | } else { | 94 | } else { |
95 | QImage unscaledIcon = Resource::loadImage( icon ); | 95 | QImage unscaledIcon = Resource::loadImage( icon ); |
96 | regicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); | 96 | regicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); |
97 | bigicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() ) ); | 97 | bigicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() ) ); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | } | 100 | } |
101 | 101 | ||
102 | QPixmap regicon; | 102 | QPixmap regicon; |
103 | QPixmap bigicon; | 103 | QPixmap bigicon; |
104 | QString desc; | 104 | QString desc; |
105 | }; | 105 | }; |
106 | 106 | ||
107 | class MimeType::Private : public QDict<MimeTypeData> { | 107 | class MimeType::Private : public QDict<MimeTypeData> { |
108 | public: | 108 | public: |
109 | Private() {} | 109 | Private() {} |
110 | ~Private() {} | 110 | ~Private() {} |
111 | 111 | ||
112 | // ... | 112 | // ... |
113 | }; | 113 | }; |
114 | 114 | ||
115 | MimeType::Private* MimeType::d=0; | 115 | MimeType::Private* MimeType::d=0; |
116 | static QMap<QString,QString> *typeFor = 0; | 116 | static QMap<QString,QString> *typeFor = 0; |
117 | static QMap<QString,QStringList> *extFor = 0; | 117 | static QMap<QString,QStringList> *extFor = 0; |
118 | 118 | ||
119 | MimeType::Private& MimeType::data() | 119 | MimeType::Private& MimeType::data() |
120 | { | 120 | { |
121 | if ( !d ) { | 121 | if ( !d ) { |
122 | d = new Private; | 122 | d = new Private; |
123 | d->setAutoDelete(TRUE); | 123 | d->setAutoDelete(TRUE); |
124 | static bool setCleanup = FALSE; | 124 | static bool setCleanup = FALSE; |
125 | if ( !setCleanup ) { | 125 | if ( !setCleanup ) { |
126 | qAddPostRoutine( cleanupMime ); | 126 | qAddPostRoutine( cleanupMime ); |
127 | setCleanup = TRUE; | 127 | setCleanup = TRUE; |
128 | } | 128 | } |
129 | } | 129 | } |
130 | return *d; | 130 | return *d; |
131 | } | 131 | } |
132 | 132 | ||
133 | /*! | ||
134 | \class MimeType mimetype.h | ||
135 | \brief The MimeType class provides MIME type information. | ||
136 | |||
137 | A MimeType object is a light-weight value which | ||
138 | provides information about a MIME type. | ||
139 | |||
140 | \ingroup qtopiaemb | ||
141 | */ | ||
142 | |||
143 | /*! | ||
144 | Constructs a MimeType. | ||
145 | Normally, \a ext_or_id is a MIME type, | ||
146 | but if \a ext_or_id starts with / or contains no /, | ||
147 | it is interpretted as a filename and the | ||
148 | extension (eg. .txt) is used as the | ||
149 | MIME type. | ||
150 | */ | ||
133 | MimeType::MimeType( const QString& ext_or_id ) | 151 | MimeType::MimeType( const QString& ext_or_id ) |
134 | { | 152 | { |
135 | init(ext_or_id); | 153 | init(ext_or_id); |
136 | } | 154 | } |
137 | 155 | ||
156 | /*! | ||
157 | Constructs a MimeType from the type() of \a lnk. | ||
158 | */ | ||
138 | MimeType::MimeType( const DocLnk& lnk ) | 159 | MimeType::MimeType( const DocLnk& lnk ) |
139 | { | 160 | { |
140 | init(lnk.type()); | 161 | init(lnk.type()); |
141 | } | 162 | } |
142 | 163 | ||
164 | /*! | ||
165 | Returns the MIME type identifier. | ||
166 | */ | ||
143 | QString MimeType::id() const | 167 | QString MimeType::id() const |
144 | { | 168 | { |
145 | return i; | 169 | return i; |
146 | } | 170 | } |
147 | 171 | ||
172 | /*! | ||
173 | Returns a description of the MIME Type. This is usually based | ||
174 | on the application() associated with the type. | ||
175 | */ | ||
148 | QString MimeType::description() const | 176 | QString MimeType::description() const |
149 | { | 177 | { |
150 | MimeTypeData* d = data(i); | 178 | MimeTypeData* d = data(i); |
151 | return d ? d->description() : QString::null; | 179 | return d ? d->description() : QString::null; |
152 | } | 180 | } |
153 | 181 | ||
182 | /*! | ||
183 | Returns a small QPixmap appropriate for the MIME type. | ||
184 | */ | ||
154 | QPixmap MimeType::pixmap() const | 185 | QPixmap MimeType::pixmap() const |
155 | { | 186 | { |
156 | MimeTypeData* d = data(i); | 187 | MimeTypeData* d = data(i); |
157 | return d ? d->regIcon() : QPixmap(); | 188 | return d ? d->regIcon() : QPixmap(); |
158 | } | 189 | } |
159 | 190 | ||
191 | /*! | ||
192 | \internal | ||
193 | This function is not generally available. | ||
194 | */ | ||
160 | QString MimeType::extension() const | 195 | QString MimeType::extension() const |
161 | { | 196 | { |
162 | return extensions().first(); | 197 | return extensions().first(); |
163 | } | 198 | } |
164 | 199 | ||
200 | |||
201 | /*! | ||
202 | \internal | ||
203 | This function is not generally available. | ||
204 | */ | ||
165 | QStringList MimeType::extensions() const | 205 | QStringList MimeType::extensions() const |
166 | { | 206 | { |
167 | loadExtensions(); | 207 | loadExtensions(); |
168 | return *(*extFor).find(i); | 208 | return *(*extFor).find(i); |
169 | } | 209 | } |
170 | 210 | ||
211 | /*! | ||
212 | Returns a larger QPixmap appropriate for the MIME type. | ||
213 | */ | ||
171 | QPixmap MimeType::bigPixmap() const | 214 | QPixmap MimeType::bigPixmap() const |
172 | { | 215 | { |
173 | MimeTypeData* d = data(i); | 216 | MimeTypeData* d = data(i); |
174 | return d ? d->bigIcon() : QPixmap(); | 217 | return d ? d->bigIcon() : QPixmap(); |
175 | } | 218 | } |
176 | 219 | ||
220 | /*! | ||
221 | Returns the AppLnk defining the application associated | ||
222 | with this MIME type, or 0 if none is associated. | ||
223 | |||
224 | The caller must not retain the pointer, | ||
225 | but of course you can dereference it to take a copy if needed. | ||
226 | |||
227 | \sa Service::binding() | ||
228 | */ | ||
177 | const AppLnk* MimeType::application() const | 229 | const AppLnk* MimeType::application() const |
178 | { | 230 | { |
179 | MimeTypeData* d = data(i); | 231 | MimeTypeData* d = data(i); |
180 | return d ? d->apps.first() : 0; | 232 | return d ? d->apps.first() : 0; |
181 | } | 233 | } |
182 | 234 | ||
183 | static QString serviceBinding(const QString& service) | 235 | static QString serviceBinding(const QString& service) |
184 | { | 236 | { |
185 | // Copied from qtopiaservices | 237 | // Copied from qtopiaservices |
186 | QString svrc = service; | 238 | QString svrc = service; |
187 | for (int i=0; i<(int)svrc.length(); i++) | 239 | for (int i=0; i<(int)svrc.length(); i++) |
188 | if ( svrc[i]=='/' ) svrc[i] = '-'; | 240 | if ( svrc[i]=='/' ) svrc[i] = '-'; |
189 | return "Service-"+svrc; | 241 | return "Service-"+svrc; |
190 | } | 242 | } |
191 | 243 | ||
244 | /*! | ||
245 | \internal | ||
246 | */ | ||
192 | void MimeType::registerApp( const AppLnk& lnk ) | 247 | void MimeType::registerApp( const AppLnk& lnk ) |
193 | { | 248 | { |
194 | QStringList list = lnk.mimeTypes(); | 249 | QStringList list = lnk.mimeTypes(); |
195 | for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it) { | 250 | for (QStringList::ConstIterator it = list.begin(); it != list.end(); ++it) { |
196 | MimeTypeData* cur = data()[*it]; | 251 | MimeTypeData* cur = data()[*it]; |
197 | AppLnk* l = new AppLnk(lnk); | 252 | AppLnk* l = new AppLnk(lnk); |
198 | if ( !cur ) { | 253 | if ( !cur ) { |
199 | cur = new MimeTypeData( *it ); | 254 | cur = new MimeTypeData( *it ); |
200 | data().insert( *it, cur ); | 255 | data().insert( *it, cur ); |
201 | cur->apps.append(l); | 256 | cur->apps.append(l); |
202 | } else if ( cur->apps.count() ) { | 257 | } else if ( cur->apps.count() ) { |
203 | Config binding(serviceBinding("Open/"+*it)); | 258 | Config binding(serviceBinding("Open/"+*it)); |
204 | binding.setGroup("Service"); | 259 | binding.setGroup("Service"); |
205 | QString def = binding.readEntry("default"); | 260 | QString def = binding.readEntry("default"); |
206 | if ( l->exec() == def ) | 261 | if ( l->exec() == def ) |
207 | cur->apps.prepend(l); | 262 | cur->apps.prepend(l); |
208 | else | 263 | else |
209 | cur->apps.append(l); | 264 | cur->apps.append(l); |
210 | } else { | 265 | } else { |
211 | cur->apps.append(l); | 266 | cur->apps.append(l); |
212 | } | 267 | } |
213 | } | 268 | } |
214 | } | 269 | } |
215 | 270 | ||
271 | /*! | ||
272 | \internal | ||
273 | */ | ||
216 | void MimeType::clear() | 274 | void MimeType::clear() |
217 | { | 275 | { |
218 | delete d; | 276 | delete d; |
219 | d = 0; | 277 | d = 0; |
220 | } | 278 | } |
221 | 279 | ||
222 | void MimeType::loadExtensions() | 280 | void MimeType::loadExtensions() |
223 | { | 281 | { |
224 | if ( !typeFor ) { | 282 | if ( !typeFor ) { |
225 | extFor = new QMap<QString,QStringList>; | 283 | extFor = new QMap<QString,QStringList>; |
226 | typeFor = new QMap<QString,QString>; | 284 | typeFor = new QMap<QString,QString>; |
227 | loadExtensions("/etc/mime.types"); | 285 | loadExtensions("/etc/mime.types"); |
228 | loadExtensions(QPEApplication::qpeDir()+"etc/mime.types"); | 286 | loadExtensions(QPEApplication::qpeDir()+"etc/mime.types"); |
229 | } | 287 | } |
230 | } | 288 | } |
231 | 289 | ||
232 | void MimeType::loadExtensions(const QString& filename) | 290 | void MimeType::loadExtensions(const QString& filename) |
233 | { | 291 | { |
234 | QFile file(filename); | 292 | QFile file(filename); |
235 | if ( file.open(IO_ReadOnly) ) { | 293 | if ( file.open(IO_ReadOnly) ) { |
236 | QTextStream in(&file); | 294 | QTextStream in(&file); |
237 | QRegExp space("[ \t]+"); | 295 | QRegExp space("[ \t]+"); |
238 | while (!in.atEnd()) { | 296 | while (!in.atEnd()) { |
239 | QStringList tokens = QStringList::split(space, in.readLine()); | 297 | QStringList tokens = QStringList::split(space, in.readLine()); |
240 | QStringList::ConstIterator it = tokens.begin(); | 298 | QStringList::ConstIterator it = tokens.begin(); |
241 | if ( it != tokens.end() ) { | 299 | if ( it != tokens.end() ) { |
242 | QString id = *it; ++it; | 300 | QString id = *it; ++it; |
243 | // new override old (though left overrides right) | 301 | // new override old (though left overrides right) |
244 | QStringList exts = (*extFor)[id]; | 302 | QStringList exts = (*extFor)[id]; |
245 | QStringList newexts; | 303 | QStringList newexts; |
246 | while ( it != tokens.end() ) { | 304 | while ( it != tokens.end() ) { |
247 | exts.remove(*it); | 305 | exts.remove(*it); |
248 | if ( !newexts.contains(*it) ) | 306 | if ( !newexts.contains(*it) ) |
249 | newexts.append(*it); | 307 | newexts.append(*it); |
250 | (*typeFor)[*it] = id; | 308 | (*typeFor)[*it] = id; |
251 | ++it; | 309 | ++it; |
252 | } | 310 | } |
253 | (*extFor)[id] = newexts + exts; | 311 | (*extFor)[id] = newexts + exts; |
254 | } | 312 | } |
255 | } | 313 | } |
256 | } | 314 | } |
257 | } | 315 | } |
258 | 316 | ||
259 | void MimeType::init( const QString& ext_or_id ) | 317 | void MimeType::init( const QString& ext_or_id ) |
260 | { | 318 | { |
261 | if ( ext_or_id[0] != '/' && ext_or_id.contains('/') ) { | 319 | if ( ext_or_id[0] != '/' && ext_or_id.contains('/') ) { |
262 | i = ext_or_id.lower(); | 320 | i = ext_or_id.lower(); |
263 | } else { | 321 | } else { |
264 | loadExtensions(); | 322 | loadExtensions(); |
265 | int dot = ext_or_id.findRev('.'); | 323 | int dot = ext_or_id.findRev('.'); |
266 | QString ext = dot >= 0 ? ext_or_id.mid(dot+1) : ext_or_id; | 324 | QString ext = dot >= 0 ? ext_or_id.mid(dot+1) : ext_or_id; |
267 | i = (*typeFor)[ext.lower()]; | 325 | i = (*typeFor)[ext.lower()]; |
268 | if ( i.isNull() ) | 326 | if ( i.isNull() ) |
269 | i = "application/octet-stream"; | 327 | i = "application/octet-stream"; |
270 | } | 328 | } |
271 | static bool appsUpdated = FALSE; | 329 | static bool appsUpdated = FALSE; |
272 | if ( !appsUpdated ) { | 330 | if ( !appsUpdated ) { |
273 | appsUpdated = TRUE; | 331 | appsUpdated = TRUE; |
274 | updateApplications(); | 332 | updateApplications(); |
275 | } | 333 | } |
276 | } | 334 | } |
277 | 335 | ||
278 | MimeTypeData* MimeType::data(const QString& id) | 336 | MimeTypeData* MimeType::data(const QString& id) |
279 | { | 337 | { |
280 | MimeTypeData* d = data()[id]; | 338 | MimeTypeData* d = data()[id]; |
281 | if ( !d ) { | 339 | if ( !d ) { |
282 | int s = id.find('/'); | 340 | int s = id.find('/'); |
283 | QString idw = id.left(s)+"/*"; | 341 | QString idw = id.left(s)+"/*"; |
284 | d = data()[idw]; | 342 | d = data()[idw]; |
285 | } | 343 | } |
286 | return d; | 344 | return d; |
287 | } | 345 | } |
288 | 346 | ||
347 | /*! | ||
348 | Returns a Qtopia folder containing application definitions. | ||
349 | */ | ||
289 | QString MimeType::appsFolderName() | 350 | QString MimeType::appsFolderName() |
290 | { | 351 | { |
291 | return QPEApplication::qpeDir() + "apps"; | 352 | return QPEApplication::qpeDir() + "apps"; |
292 | } | 353 | } |
293 | 354 | ||
355 | /*! | ||
356 | Reloads application definitions. | ||
357 | */ | ||
294 | void MimeType::updateApplications() | 358 | void MimeType::updateApplications() |
295 | { | 359 | { |
296 | clear(); | 360 | clear(); |
297 | AppLnkSet apps( appsFolderName() ); | 361 | AppLnkSet apps( appsFolderName() ); |
298 | updateApplications(&apps); | 362 | updateApplications(&apps); |
299 | } | 363 | } |
300 | 364 | ||
301 | void MimeType::updateApplications(AppLnkSet* folder) | 365 | void MimeType::updateApplications(AppLnkSet* folder) |
302 | { | 366 | { |
303 | for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) { | 367 | for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) { |
304 | registerApp(*it.current()); | 368 | registerApp(*it.current()); |
305 | } | 369 | } |
306 | } | 370 | } |
diff --git a/library/opie-bootsplash.control b/library/opie-bootsplash.control index 838224d..fc03ecc 100644 --- a/library/opie-bootsplash.control +++ b/library/opie-bootsplash.control | |||
@@ -1,8 +1,8 @@ | |||
1 | Package: opie-bootsplash | 1 | Package: opie-bootsplash |
2 | Files: etc/init.d/bootsplash etc/rcS.d/S01bootsplash pics/bootsplash/bootlogo | 2 | Files: etc/init.d/bootsplash etc/rcS.d/S01bootsplash pics/bootsplash/bootlogo |
3 | Priority: optinal | 3 | Priority: optinal |
4 | Section: opie/system | 4 | Section: opie/system |
5 | Maintainer: Project Opie <opie@handhelds.org> | 5 | Maintainer: Project Opie <opie@handhelds.org> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION.2 | ||
8 | Description: Splash screen aptempt | 7 | Description: Splash screen aptempt |
8 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/opie-common.control b/library/opie-common.control index 3330319..052d368 100644 --- a/library/opie-common.control +++ b/library/opie-common.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: opie-common | 1 | Package: opie-common |
2 | Files: etc/colors bin/opie-reorgfiles apps/*/.directory etc/mime.types apps/Settings/quit.desktop pics/logo/* pics/opie-sh/opie-sh.png | 2 | Files: etc/colors bin/opie-reorgfiles apps/*/.directory etc/mime.types apps/Settings/quit.desktop pics/logo/* pics/opie-sh/opie-sh.png |
3 | Priority: required | 3 | Priority: required |
4 | Section: opie/system | 4 | Section: opie/system |
5 | Maintainer: Project Opie <opie@handhelds.org> | 5 | Maintainer: Project Opie <opie@handhelds.org> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION.3 | ||
8 | Depends: libqpe1, qte-fonts, qpf-bitstream-vera | 7 | Depends: libqpe1, qte-fonts, qpf-bitstream-vera |
9 | Replaces: opie-base | 8 | Replaces: opie-base |
10 | Description: Core opie files | 9 | Description: Core opie files |
10 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/opie-common.postinst b/library/opie-common.postinst index b049efc..1c0d5b2 100755 --- a/library/opie-common.postinst +++ b/library/opie-common.postinst | |||
@@ -1,5 +1,6 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | [ "$1" = "configure" ] || exit 1 | 3 | [ "$1" = "configure" ] || exit 1 |
4 | 4 | ||
5 | ln -sf /opt/QtPalmtop /home/QtPalmtop | 5 | ln -sf /opt/QtPalmtop /home/QtPalmtop |
6 | ln -sf /opt/QtPalmtop /opt/Qtopia \ No newline at end of file | ||
diff --git a/library/password.cpp b/library/password.cpp index 6d126c4..25fb1b8 100644 --- a/library/password.cpp +++ b/library/password.cpp | |||
@@ -1,353 +1,354 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #include "password.h" | 20 | #include "password.h" |
21 | #include "config.h" | 21 | #include "config.h" |
22 | #include "global.h" | 22 | #include "global.h" |
23 | #include "backend/contact.h" | 23 | #include "backend/contact.h" |
24 | #include <qlabel.h> | 24 | #include <qlabel.h> |
25 | #include <qlineedit.h> | 25 | #include <qlineedit.h> |
26 | #include <qtextview.h> | 26 | #include <qtextview.h> |
27 | #include <qstring.h> | 27 | #include <qstring.h> |
28 | #include <qapplication.h> | 28 | #include <qapplication.h> |
29 | #include <qfile.h> | 29 | #include <qfile.h> |
30 | //#include <qwindowsystem_qws.h> | 30 | //#include <qwindowsystem_qws.h> |
31 | 31 | ||
32 | #include <qdialog.h> | 32 | #include <qdialog.h> |
33 | 33 | ||
34 | #include <unistd.h> //for sleep | 34 | #include <unistd.h> //for sleep |
35 | #include "passwordbase_p.h" | 35 | #include "passwordbase_p.h" |
36 | 36 | ||
37 | class PasswordDialog : public PasswordBase | 37 | class PasswordDialog : public PasswordBase |
38 | { | 38 | { |
39 | Q_OBJECT | 39 | Q_OBJECT |
40 | 40 | ||
41 | public: | 41 | public: |
42 | PasswordDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | 42 | PasswordDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
43 | ~PasswordDialog(); | 43 | ~PasswordDialog(); |
44 | 44 | ||
45 | void clear(); | 45 | void clear(); |
46 | void setPrompt( const QString& ); | 46 | void setPrompt( const QString& ); |
47 | 47 | ||
48 | signals: | 48 | signals: |
49 | void passwordEntered( const QString& ); | 49 | void passwordEntered( const QString& ); |
50 | 50 | ||
51 | protected: | 51 | protected: |
52 | bool eventFilter( QObject*, QEvent* ); | 52 | bool eventFilter( QObject*, QEvent* ); |
53 | void keyPressEvent( QKeyEvent * ); | 53 | void keyPressEvent( QKeyEvent * ); |
54 | 54 | ||
55 | private: | 55 | private: |
56 | void input( QString ); | 56 | void input( QString ); |
57 | friend class Password; | 57 | friend class Password; |
58 | QString text; | 58 | QString text; |
59 | }; | 59 | }; |
60 | 60 | ||
61 | 61 | ||
62 | extern "C" char *crypt(const char *key, const char *salt); | 62 | extern "C" char *crypt(const char *key, const char *salt); |
63 | static QString qcrypt(const QString& k, const char *salt) | 63 | static QString qcrypt(const QString& k, const char *salt) |
64 | { | 64 | { |
65 | return QString::fromUtf8(crypt(k.utf8(),salt)); | 65 | return QString::fromUtf8(crypt(k.utf8(),salt)); |
66 | } | 66 | } |
67 | 67 | ||
68 | /* | 68 | /* |
69 | * Constructs a PasswordDialog which is a child of 'parent', with the | 69 | * Constructs a PasswordDialog which is a child of 'parent', with the |
70 | * name 'name' and widget flags set to 'f' | 70 | * name 'name' and widget flags set to 'f' |
71 | */ | 71 | */ |
72 | PasswordDialog::PasswordDialog( QWidget* parent, const char* name, WFlags fl ) | 72 | PasswordDialog::PasswordDialog( QWidget* parent, const char* name, WFlags fl ) |
73 | : PasswordBase( parent, name, fl ) | 73 | : PasswordBase( parent, name, fl ) |
74 | { | 74 | { |
75 | QRect desk = qApp->desktop()->geometry(); | 75 | QRect desk = qApp->desktop()->geometry(); |
76 | 76 | ||
77 | if ( desk.width() < 220 ) { | 77 | if ( desk.width() < 220 ) { |
78 | QFont f( font() ); | 78 | QFont f( font() ); |
79 | f.setPointSize( 18 ); | 79 | f.setPointSize( 18 ); |
80 | setFont( f ); | 80 | setFont( f ); |
81 | f.setPointSize( 12 ); | 81 | f.setPointSize( 12 ); |
82 | prompt->setFont( f ); | 82 | prompt->setFont( f ); |
83 | } | 83 | } |
84 | 84 | ||
85 | button_0->installEventFilter( this ); | 85 | button_0->installEventFilter( this ); |
86 | button_1->installEventFilter( this ); | 86 | button_1->installEventFilter( this ); |
87 | button_2->installEventFilter( this ); | 87 | button_2->installEventFilter( this ); |
88 | button_3->installEventFilter( this ); | 88 | button_3->installEventFilter( this ); |
89 | button_4->installEventFilter( this ); | 89 | button_4->installEventFilter( this ); |
90 | button_5->installEventFilter( this ); | 90 | button_5->installEventFilter( this ); |
91 | button_6->installEventFilter( this ); | 91 | button_6->installEventFilter( this ); |
92 | button_7->installEventFilter( this ); | 92 | button_7->installEventFilter( this ); |
93 | button_8->installEventFilter( this ); | 93 | button_8->installEventFilter( this ); |
94 | button_9->installEventFilter( this ); | 94 | button_9->installEventFilter( this ); |
95 | button_OK->installEventFilter( this ); | 95 | button_OK->installEventFilter( this ); |
96 | setFocus(); | 96 | setFocus(); |
97 | } | 97 | } |
98 | 98 | ||
99 | /* | 99 | /* |
100 | * Destroys the object and frees any allocated resources | 100 | * Destroys the object and frees any allocated resources |
101 | */ | 101 | */ |
102 | PasswordDialog::~PasswordDialog() | 102 | PasswordDialog::~PasswordDialog() |
103 | { | 103 | { |
104 | // no need to delete child widgets, Qt does it all for us | 104 | // no need to delete child widgets, Qt does it all for us |
105 | } | 105 | } |
106 | 106 | ||
107 | 107 | ||
108 | 108 | ||
109 | /*! | 109 | /*! |
110 | \reimp | 110 | \reimp |
111 | */ | 111 | */ |
112 | 112 | ||
113 | bool PasswordDialog::eventFilter( QObject*o, QEvent*e ) | 113 | bool PasswordDialog::eventFilter( QObject*o, QEvent*e ) |
114 | { | 114 | { |
115 | if ( e->type() == QEvent::MouseButtonRelease ) { | 115 | if ( e->type() == QEvent::MouseButtonRelease ) { |
116 | if ( o == button_OK ) { | 116 | if ( o == button_OK ) { |
117 | emit passwordEntered( text ); | 117 | emit passwordEntered( text ); |
118 | } else { | 118 | } else { |
119 | QLabel *l = (QLabel*)o; | 119 | QLabel *l = (QLabel*)o; |
120 | input(l->text()); | 120 | input(l->text()); |
121 | } | 121 | } |
122 | } | 122 | } |
123 | return FALSE; | 123 | return FALSE; |
124 | } | 124 | } |
125 | 125 | ||
126 | 126 | ||
127 | /*! | 127 | /*! |
128 | \reimp | 128 | \reimp |
129 | */ | 129 | */ |
130 | 130 | ||
131 | void PasswordDialog::keyPressEvent( QKeyEvent * ) | 131 | void PasswordDialog::keyPressEvent( QKeyEvent * ) |
132 | { | 132 | { |
133 | #if 0 | 133 | #if 0 |
134 | if ( e->key() == Key_Enter || e->key() == Key_Return ) | 134 | if ( e->key() == Key_Enter || e->key() == Key_Return ) |
135 | emit passwordEntered( text ); | 135 | emit passwordEntered( text ); |
136 | else | 136 | else |
137 | input( e->text() ); | 137 | input( e->text() ); |
138 | #endif | 138 | #endif |
139 | } | 139 | } |
140 | 140 | ||
141 | 141 | ||
142 | /*! | 142 | /*! |
143 | 143 | ||
144 | */ | 144 | */ |
145 | 145 | ||
146 | void PasswordDialog::input( QString c ) | 146 | void PasswordDialog::input( QString c ) |
147 | { | 147 | { |
148 | text += c; | 148 | text += c; |
149 | display->setText( text ); | 149 | display->setText( text ); |
150 | } | 150 | } |
151 | 151 | ||
152 | /*! | 152 | /*! |
153 | 153 | ||
154 | */ | 154 | */ |
155 | 155 | ||
156 | void PasswordDialog::setPrompt( const QString& s ) | 156 | void PasswordDialog::setPrompt( const QString& s ) |
157 | { | 157 | { |
158 | prompt->setText( s ); | 158 | prompt->setText( s ); |
159 | } | 159 | } |
160 | 160 | ||
161 | void PasswordDialog::clear() | 161 | void PasswordDialog::clear() |
162 | { | 162 | { |
163 | text = ""; | 163 | text = ""; |
164 | input(""); | 164 | input(""); |
165 | } | 165 | } |
166 | 166 | ||
167 | class PasswdDlg : public QDialog | 167 | class PasswdDlg : public QDialog |
168 | { | 168 | { |
169 | public: | 169 | public: |
170 | PasswdDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE ) | 170 | PasswdDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE ) |
171 | : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ), | 171 | : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ), |
172 | modl(modal) | 172 | modl(modal) |
173 | { | 173 | { |
174 | passw = new PasswordDialog( this ); | 174 | passw = new PasswordDialog( this ); |
175 | 175 | ||
176 | if ( fullscreen ) { | 176 | if ( fullscreen ) { |
177 | QRect desk = qApp->desktop()->geometry(); | 177 | QRect desk = qApp->desktop()->geometry(); |
178 | setGeometry( 0, 0, desk.width(), desk.height() ); | 178 | setGeometry( 0, 0, desk.width(), desk.height() ); |
179 | } | 179 | } |
180 | 180 | ||
181 | connect( passw, SIGNAL(passwordEntered(const QString&)), | 181 | connect( passw, SIGNAL(passwordEntered(const QString&)), |
182 | this, SLOT(accept()) ); | 182 | this, SLOT(accept()) ); |
183 | } | 183 | } |
184 | 184 | ||
185 | void resizeEvent( QResizeEvent * ) | 185 | void resizeEvent( QResizeEvent * ) |
186 | { | 186 | { |
187 | passw->resize( size() ); | 187 | passw->resize( size() ); |
188 | } | 188 | } |
189 | 189 | ||
190 | void reset() | 190 | void reset() |
191 | { | 191 | { |
192 | passw->clear(); | 192 | passw->clear(); |
193 | } | 193 | } |
194 | 194 | ||
195 | void execNonModal() | 195 | void execNonModal() |
196 | { | 196 | { |
197 | if ( !modl ) { | 197 | if ( !modl ) { |
198 | reset(); | 198 | reset(); |
199 | showFullScreen(); | 199 | showFullScreen(); |
200 | do { | 200 | do { |
201 | qApp->enter_loop(); | 201 | qApp->enter_loop(); |
202 | } while (result()!=1); | 202 | } while (result()!=1); |
203 | } | 203 | } |
204 | } | 204 | } |
205 | 205 | ||
206 | void accept() | 206 | void accept() |
207 | { | 207 | { |
208 | if ( !modl ) | 208 | if ( !modl ) |
209 | qApp->exit_loop(); | 209 | qApp->exit_loop(); |
210 | QDialog::accept(); | 210 | QDialog::accept(); |
211 | } | 211 | } |
212 | 212 | ||
213 | PasswordDialog *passw; | 213 | PasswordDialog *passw; |
214 | bool modl; | 214 | bool modl; |
215 | }; | 215 | }; |
216 | 216 | ||
217 | class OwnerDlg : public QDialog | 217 | class OwnerDlg : public QDialog |
218 | { | 218 | { |
219 | Q_OBJECT | ||
219 | public: | 220 | public: |
220 | 221 | ||
221 | OwnerDlg( QWidget *parent, const char * name, Contact c, | 222 | OwnerDlg( QWidget *parent, const char * name, Contact c, |
222 | bool modal, bool fullscreen = FALSE ) | 223 | bool modal, bool fullscreen = FALSE ) |
223 | : QDialog( parent, name, modal, | 224 | : QDialog( parent, name, modal, |
224 | fullscreen ? | 225 | fullscreen ? |
225 | WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ) | 226 | WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ) |
226 | { | 227 | { |
227 | if ( fullscreen ) { | 228 | if ( fullscreen ) { |
228 | QRect desk = qApp->desktop()->geometry(); | 229 | QRect desk = qApp->desktop()->geometry(); |
229 | setGeometry( 0, 0, desk.width(), desk.height() ); | 230 | setGeometry( 0, 0, desk.width(), desk.height() ); |
230 | } | 231 | } |
231 | 232 | ||
232 | // set up contents. | 233 | // set up contents. |
233 | QString text = "<H1>" + tr("Owner Information") + "</H1>"; | 234 | QString text = "<H1>" + tr("Owner Information") + "</H1>"; |
234 | text += c.toRichText(); | 235 | text += c.toRichText(); |
235 | tv = new QTextView(this); | 236 | tv = new QTextView(this); |
236 | tv->setText(text); | 237 | tv->setText(text); |
237 | 238 | ||
238 | tv->viewport()->installEventFilter(this); | 239 | tv->viewport()->installEventFilter(this); |
239 | } | 240 | } |
240 | 241 | ||
241 | void resizeEvent( QResizeEvent * ) | 242 | void resizeEvent( QResizeEvent * ) |
242 | { | 243 | { |
243 | tv->resize( size() ); | 244 | tv->resize( size() ); |
244 | } | 245 | } |
245 | 246 | ||
246 | bool eventFilter(QObject *o, QEvent *e) | 247 | bool eventFilter(QObject *o, QEvent *e) |
247 | { | 248 | { |
248 | if (e->type() == QEvent::KeyPress || e->type() == QEvent::MouseButtonPress ) { | 249 | if (e->type() == QEvent::KeyPress || e->type() == QEvent::MouseButtonPress ) { |
249 | accept(); | 250 | accept(); |
250 | return TRUE; | 251 | return TRUE; |
251 | } | 252 | } |
252 | return QWidget::eventFilter(o, e); | 253 | return QWidget::eventFilter(o, e); |
253 | } | 254 | } |
254 | 255 | ||
255 | void mousePressEvent( QMouseEvent * ) { accept(); } | 256 | void mousePressEvent( QMouseEvent * ) { accept(); } |
256 | 257 | ||
257 | private: | 258 | private: |
258 | QTextView *tv; | 259 | QTextView *tv; |
259 | }; | 260 | }; |
260 | 261 | ||
261 | /*! | 262 | /*! |
262 | Returns a crypted password entered by the user when prompted with \a prompt | 263 | Returns a crypted password entered by the user when prompted with \a prompt |
263 | The returned value is QString::null if the user cancels the operation, | 264 | The returned value is QString::null if the user cancels the operation, |
264 | or the empty string if the user enters no password (but confirms the | 265 | or the empty string if the user enters no password (but confirms the |
265 | dialog). | 266 | dialog). |
266 | */ | 267 | */ |
267 | 268 | ||
268 | QString Password::getPassword( const QString& prompt ) | 269 | QString Password::getPassword( const QString& prompt ) |
269 | { | 270 | { |
270 | PasswdDlg pd(0,0,TRUE); | 271 | PasswdDlg pd(0,0,TRUE); |
271 | pd.passw->setPrompt( prompt ); | 272 | pd.passw->setPrompt( prompt ); |
272 | 273 | ||
273 | pd.showMaximized(); | 274 | pd.showMaximized(); |
274 | int r = pd.exec(); | 275 | int r = pd.exec(); |
275 | 276 | ||
276 | if ( r == QDialog::Accepted ) { | 277 | if ( r == QDialog::Accepted ) { |
277 | if (pd.passw->text.isEmpty()) | 278 | if (pd.passw->text.isEmpty()) |
278 | return ""; | 279 | return ""; |
279 | else | 280 | else |
280 | return qcrypt(pd.passw->text,"a0"); | 281 | return qcrypt(pd.passw->text,"a0"); |
281 | } else { | 282 | } else { |
282 | return QString::null; | 283 | return QString::null; |
283 | } | 284 | } |
284 | } | 285 | } |
285 | 286 | ||
286 | 287 | ||
287 | /*! | 288 | /*! |
288 | Return if a prompt for the user's passcode is needed. | 289 | Return if a prompt for the user's passcode is needed. |
289 | 290 | ||
290 | If \a at_poweron is TRUE, the dialog is only used if the user's | 291 | If \a at_poweron is TRUE, the dialog is only used if the user's |
291 | preference request it at poweron | 292 | preference request it at poweron |
292 | 293 | ||
293 | Opie extension to speed up suspend/resume. | 294 | Opie extension to speed up suspend/resume. |
294 | */ | 295 | */ |
295 | 296 | ||
296 | bool Password::needToAuthenticate(bool at_poweron) | 297 | bool Password::needToAuthenticate(bool at_poweron) |
297 | { | 298 | { |
298 | Config cfg("Security"); | 299 | Config cfg("Security"); |
299 | cfg.setGroup("Passcode"); | 300 | cfg.setGroup("Passcode"); |
300 | QString passcode = cfg.readEntry("passcode"); | 301 | QString passcode = cfg.readEntry("passcode"); |
301 | 302 | ||
302 | return ( !passcode.isEmpty() | 303 | return ( !passcode.isEmpty() |
303 | && (!at_poweron || cfg.readNumEntry("passcode_poweron",0)) ); | 304 | && (!at_poweron || cfg.readNumEntry("passcode_poweron",0)) ); |
304 | } | 305 | } |
305 | 306 | ||
306 | /*! | 307 | /*! |
307 | Prompt, fullscreen, for the user's passcode until they get it right. | 308 | Prompt, fullscreen, for the user's passcode until they get it right. |
308 | 309 | ||
309 | If \a at_poweron is TRUE, the dialog is only used if the user's | 310 | If \a at_poweron is TRUE, the dialog is only used if the user's |
310 | preference request it at poweron; either way, the screen is always repainted | 311 | preference request it at poweron; either way, the screen is always repainted |
311 | by this function. (this functionality may move to the caller of this function). | 312 | by this function. (this functionality may move to the caller of this function). |
312 | */ | 313 | */ |
313 | 314 | ||
314 | void Password::authenticate(bool at_poweron) | 315 | void Password::authenticate(bool at_poweron) |
315 | { | 316 | { |
316 | Config cfg("Security"); | 317 | Config cfg("Security"); |
317 | cfg.setGroup("Passcode"); | 318 | cfg.setGroup("Passcode"); |
318 | QString passcode = cfg.readEntry("passcode"); | 319 | QString passcode = cfg.readEntry("passcode"); |
319 | if ( !passcode.isEmpty() | 320 | if ( !passcode.isEmpty() |
320 | && (!at_poweron || cfg.readNumEntry("passcode_poweron",0)) ) | 321 | && (!at_poweron || cfg.readNumEntry("passcode_poweron",0)) ) |
321 | { | 322 | { |
322 | // Do it as a fullscreen modal dialog | 323 | // Do it as a fullscreen modal dialog |
323 | PasswdDlg pd(0,0,TRUE,TRUE); | 324 | PasswdDlg pd(0,0,TRUE,TRUE); |
324 | 325 | ||
325 | // see if there is contact information. | 326 | // see if there is contact information. |
326 | OwnerDlg *oi = 0; | 327 | OwnerDlg *oi = 0; |
327 | QString vfilename = Global::applicationFileName("addressbook", | 328 | QString vfilename = Global::applicationFileName("addressbook", |
328 | "businesscard.vcf"); | 329 | "businesscard.vcf"); |
329 | if (QFile::exists(vfilename)) { | 330 | if (QFile::exists(vfilename)) { |
330 | Contact c; | 331 | Contact c; |
331 | c = Contact::readVCard( vfilename )[0]; | 332 | c = Contact::readVCard( vfilename )[0]; |
332 | 333 | ||
333 | oi = new OwnerDlg(0, 0, c, TRUE, TRUE); | 334 | oi = new OwnerDlg(0, 0, c, TRUE, TRUE); |
334 | } | 335 | } |
335 | 336 | ||
336 | pd.reset(); | 337 | pd.reset(); |
337 | pd.exec(); | 338 | pd.exec(); |
338 | while (qcrypt(pd.passw->text, "a0") != passcode) { | 339 | while (qcrypt(pd.passw->text, "a0") != passcode) { |
339 | if (oi) | 340 | if (oi) |
340 | oi->exec(); | 341 | oi->exec(); |
341 | pd.reset(); | 342 | pd.reset(); |
342 | pd.exec(); | 343 | pd.exec(); |
343 | } | 344 | } |
344 | } else if ( at_poweron ) { | 345 | } else if ( at_poweron ) { |
345 | // refresh screen #### should probably be in caller | 346 | // refresh screen #### should probably be in caller |
346 | // Not needed (we took away the screen blacking) TT | 347 | // Not needed (we took away the screen blacking) TT |
347 | // Not needed (we have intelligent screen blacking) sandman | 348 | // Not needed (we have intelligent screen blacking) sandman |
348 | //if ( qwsServer ) | 349 | //if ( qwsServer ) |
349 | //qwsServer->refresh(); | 350 | //qwsServer->refresh(); |
350 | } | 351 | } |
351 | } | 352 | } |
352 | 353 | ||
353 | #include "password.moc" | 354 | #include "password.moc" |
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 619b4cb..4e08a1f 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -1,1825 +1,1839 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | ** $Id$ | 19 | ** $Id$ |
20 | ** | 20 | ** |
21 | **********************************************************************/ | 21 | **********************************************************************/ |
22 | #define QTOPIA_INTERNAL_LANGLIST | 22 | #define QTOPIA_INTERNAL_LANGLIST |
23 | #include <stdlib.h> | 23 | #include <stdlib.h> |
24 | #include <unistd.h> | 24 | #include <unistd.h> |
25 | #include <linux/limits.h> // needed for some toolchains (PATH_MAX) | 25 | #include <linux/limits.h> // needed for some toolchains (PATH_MAX) |
26 | #include <qfile.h> | 26 | #include <qfile.h> |
27 | #ifdef Q_WS_QWS | 27 | #ifdef Q_WS_QWS |
28 | #ifndef QT_NO_COP | 28 | #ifndef QT_NO_COP |
29 | #if QT_VERSION <= 231 | 29 | #if QT_VERSION <= 231 |
30 | #define private public | 30 | #define private public |
31 | #define sendLocally processEvent | 31 | #define sendLocally processEvent |
32 | #include "qcopenvelope_qws.h" | 32 | #include "qcopenvelope_qws.h" |
33 | #undef private | 33 | #undef private |
34 | #else | 34 | #else |
35 | #include "qcopenvelope_qws.h" | 35 | #include "qcopenvelope_qws.h" |
36 | #endif | 36 | #endif |
37 | #endif | 37 | #endif |
38 | #include <qwindowsystem_qws.h> | 38 | #include <qwindowsystem_qws.h> |
39 | #endif | 39 | #endif |
40 | #include <qtextstream.h> | 40 | #include <qtextstream.h> |
41 | #include <qpalette.h> | 41 | #include <qpalette.h> |
42 | #include <qbuffer.h> | 42 | #include <qbuffer.h> |
43 | #include <qptrdict.h> | 43 | #include <qptrdict.h> |
44 | #include <qregexp.h> | 44 | #include <qregexp.h> |
45 | #include <qdir.h> | 45 | #include <qdir.h> |
46 | #include <qlabel.h> | 46 | #include <qlabel.h> |
47 | #include <qdialog.h> | 47 | #include <qdialog.h> |
48 | #include <qdragobject.h> | 48 | #include <qdragobject.h> |
49 | #include <qtextcodec.h> | 49 | #include <qtextcodec.h> |
50 | #include <qevent.h> | 50 | #include <qevent.h> |
51 | #include <qtooltip.h> | 51 | #include <qtooltip.h> |
52 | #include <qsignal.h> | 52 | #include <qsignal.h> |
53 | #include <qmainwindow.h> | 53 | #include <qmainwindow.h> |
54 | #include "qpeapplication.h" | 54 | #include "qpeapplication.h" |
55 | #include "qpestyle.h" | 55 | #include "qpestyle.h" |
56 | #include "styleinterface.h" | 56 | #include "styleinterface.h" |
57 | #if QT_VERSION >= 300 | 57 | #if QT_VERSION >= 300 |
58 | #include <qstylefactory.h> | 58 | #include <qstylefactory.h> |
59 | #else | 59 | #else |
60 | #include <qplatinumstyle.h> | 60 | #include <qplatinumstyle.h> |
61 | #include <qwindowsstyle.h> | 61 | #include <qwindowsstyle.h> |
62 | #include <qmotifstyle.h> | 62 | #include <qmotifstyle.h> |
63 | #include <qmotifplusstyle.h> | 63 | #include <qmotifplusstyle.h> |
64 | #include "lightstyle.h" | 64 | #include "lightstyle.h" |
65 | 65 | ||
66 | #include <qpe/qlibrary.h> | 66 | #include <qpe/qlibrary.h> |
67 | #endif | 67 | #endif |
68 | #include "global.h" | 68 | #include "global.h" |
69 | #include "resource.h" | 69 | #include "resource.h" |
70 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | 70 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) |
71 | #include "qutfcodec.h" | 71 | #include "qutfcodec.h" |
72 | #endif | 72 | #endif |
73 | #include "config.h" | 73 | #include "config.h" |
74 | #include "network.h" | 74 | #include "network.h" |
75 | #ifdef QWS | 75 | #ifdef QWS |
76 | #include "fontmanager.h" | 76 | #include "fontmanager.h" |
77 | #endif | 77 | #endif |
78 | 78 | ||
79 | #include "alarmserver.h" | 79 | #include "alarmserver.h" |
80 | #include "applnk.h" | 80 | #include "applnk.h" |
81 | #include "qpemenubar.h" | 81 | #include "qpemenubar.h" |
82 | #include "textcodecinterface.h" | 82 | #include "textcodecinterface.h" |
83 | #include "imagecodecinterface.h" | 83 | #include "imagecodecinterface.h" |
84 | 84 | ||
85 | #include <unistd.h> | 85 | #include <unistd.h> |
86 | #include <sys/file.h> | 86 | #include <sys/file.h> |
87 | #include <sys/ioctl.h> | 87 | #include <sys/ioctl.h> |
88 | #include <sys/soundcard.h> | 88 | #include <sys/soundcard.h> |
89 | 89 | ||
90 | #include "qt_override_p.h" | 90 | #include "qt_override_p.h" |
91 | 91 | ||
92 | 92 | ||
93 | class QPEApplicationData | 93 | class QPEApplicationData |
94 | { | 94 | { |
95 | public: | 95 | public: |
96 | QPEApplicationData ( ) | 96 | QPEApplicationData ( ) |
97 | : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), | 97 | : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), |
98 | notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), | 98 | notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), |
99 | keep_running( true ), qpe_main_widget( 0 ) | 99 | keep_running( true ), qpe_main_widget( 0 ) |
100 | 100 | ||
101 | { | 101 | { |
102 | qcopq.setAutoDelete( TRUE ); | 102 | qcopq.setAutoDelete( TRUE ); |
103 | } | 103 | } |
104 | 104 | ||
105 | int presstimer; | 105 | int presstimer; |
106 | QWidget* presswidget; | 106 | QWidget* presswidget; |
107 | QPoint presspos; | 107 | QPoint presspos; |
108 | 108 | ||
109 | bool rightpressed : 1; | 109 | bool rightpressed : 1; |
110 | bool kbgrabbed : 1; | 110 | bool kbgrabbed : 1; |
111 | bool notbusysent : 1; | 111 | bool notbusysent : 1; |
112 | bool preloaded : 1; | 112 | bool preloaded : 1; |
113 | bool forceshow : 1; | 113 | bool forceshow : 1; |
114 | bool nomaximize : 1; | 114 | bool nomaximize : 1; |
115 | bool keep_running : 1; | 115 | bool keep_running : 1; |
116 | 116 | ||
117 | QString appName; | 117 | QString appName; |
118 | struct QCopRec | 118 | struct QCopRec |
119 | { | 119 | { |
120 | QCopRec( const QCString &ch, const QCString &msg, | 120 | QCopRec( const QCString &ch, const QCString &msg, |
121 | const QByteArray &d ) : | 121 | const QByteArray &d ) : |
122 | channel( ch ), message( msg ), data( d ) | 122 | channel( ch ), message( msg ), data( d ) |
123 | { } | 123 | { } |
124 | 124 | ||
125 | QCString channel; | 125 | QCString channel; |
126 | QCString message; | 126 | QCString message; |
127 | QByteArray data; | 127 | QByteArray data; |
128 | }; | 128 | }; |
129 | QWidget* qpe_main_widget; | 129 | QWidget* qpe_main_widget; |
130 | QList<QCopRec> qcopq; | 130 | QList<QCopRec> qcopq; |
131 | 131 | ||
132 | void enqueueQCop( const QCString &ch, const QCString &msg, | 132 | void enqueueQCop( const QCString &ch, const QCString &msg, |
133 | const QByteArray &data ) | 133 | const QByteArray &data ) |
134 | { | 134 | { |
135 | qcopq.append( new QCopRec( ch, msg, data ) ); | 135 | qcopq.append( new QCopRec( ch, msg, data ) ); |
136 | } | 136 | } |
137 | void sendQCopQ() | 137 | void sendQCopQ() |
138 | { | 138 | { |
139 | QCopRec * r; | 139 | QCopRec * r; |
140 | #ifndef QT_NO_COP | 140 | #ifndef QT_NO_COP |
141 | 141 | ||
142 | for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it ) | 142 | for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it ) |
143 | QCopChannel::sendLocally( r->channel, r->message, r->data ); | 143 | QCopChannel::sendLocally( r->channel, r->message, r->data ); |
144 | #endif | 144 | #endif |
145 | 145 | ||
146 | qcopq.clear(); | 146 | qcopq.clear(); |
147 | } | 147 | } |
148 | static void show_mx(QWidget* mw, bool nomaximize) | 148 | static void show_mx(QWidget* mw, bool nomaximize) |
149 | { | 149 | { |
150 | 150 | ||
151 | // ugly hack, remove that later after finding a sane solution | 151 | // ugly hack, remove that later after finding a sane solution |
152 | // Addendum: Only Sharp currently has models with high resolution but (physically) small displays, | 152 | // Addendum: Only Sharp currently has models with high resolution but (physically) small displays, |
153 | // so this is only useful if QT_QWS_SIMPAD is NOT defined. E.g. SIMpad has 800x600 but has | 153 | // so this is only useful if QT_QWS_SIMPAD is NOT defined. E.g. SIMpad has 800x600 but has |
154 | // a (physically) large enough display to use the small icons | 154 | // a (physically) large enough display to use the small icons |
155 | #ifndef QT_QWS_SIMPAD | 155 | #ifndef QT_QWS_SIMPAD |
156 | if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) { | 156 | if ( QPEApplication::desktop() ->width() >= 600 && ( mw->inherits("QMainWindow") || mw->isA("QMainWindow") ) ) { |
157 | ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true ); | 157 | ( ( QMainWindow* ) mw )->setUsesBigPixmaps( true ); |
158 | } | 158 | } |
159 | #endif | 159 | #endif |
160 | 160 | ||
161 | if ( mw->layout() && mw->inherits("QDialog") ) { | 161 | if ( mw->layout() && mw->inherits("QDialog") ) { |
162 | QPEApplication::showDialog((QDialog*)mw, nomaximize); | 162 | QPEApplication::showDialog((QDialog*)mw, nomaximize); |
163 | } | 163 | } |
164 | else { | 164 | else { |
165 | #ifdef Q_WS_QWS | 165 | #ifdef Q_WS_QWS |
166 | if ( !nomaximize ) | 166 | if ( !nomaximize ) |
167 | mw->showMaximized(); | 167 | mw->showMaximized(); |
168 | else | 168 | else |
169 | #endif | 169 | #endif |
170 | 170 | ||
171 | mw->show(); | 171 | mw->show(); |
172 | } | 172 | } |
173 | } | 173 | } |
174 | static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ ) | 174 | static bool setWidgetCaptionFromAppName( QWidget* /*mw*/, const QString& /*appName*/, const QString& /*appsPath*/ ) |
175 | { | 175 | { |
176 | /* | 176 | /* |
177 | // This works but disable it for now until it is safe to apply | 177 | // This works but disable it for now until it is safe to apply |
178 | // What is does is scan the .desktop files of all the apps for | 178 | // What is does is scan the .desktop files of all the apps for |
179 | // the applnk that has the corresponding argv[0] as this program | 179 | // the applnk that has the corresponding argv[0] as this program |
180 | // then it uses the name stored in the .desktop file as the caption | 180 | // then it uses the name stored in the .desktop file as the caption |
181 | // for the main widget. This saves duplicating translations for | 181 | // for the main widget. This saves duplicating translations for |
182 | // the app name in the program and in the .desktop files. | 182 | // the app name in the program and in the .desktop files. |
183 | 183 | ||
184 | AppLnkSet apps( appsPath ); | 184 | AppLnkSet apps( appsPath ); |
185 | 185 | ||
186 | QList<AppLnk> appsList = apps.children(); | 186 | QList<AppLnk> appsList = apps.children(); |
187 | for ( QListIterator<AppLnk> it(appsList); it.current(); ++it ) { | 187 | for ( QListIterator<AppLnk> it(appsList); it.current(); ++it ) { |
188 | if ( (*it)->exec() == appName ) { | 188 | if ( (*it)->exec() == appName ) { |
189 | mw->setCaption( (*it)->name() ); | 189 | mw->setCaption( (*it)->name() ); |
190 | return TRUE; | 190 | return TRUE; |
191 | } | 191 | } |
192 | } | 192 | } |
193 | */ | 193 | */ |
194 | return FALSE; | 194 | return FALSE; |
195 | } | 195 | } |
196 | 196 | ||
197 | 197 | ||
198 | void show(QWidget* mw, bool nomax) | 198 | void show(QWidget* mw, bool nomax) |
199 | { | 199 | { |
200 | setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" ); | 200 | setWidgetCaptionFromAppName( mw, appName, QPEApplication::qpeDir() + "apps" ); |
201 | nomaximize = nomax; | 201 | nomaximize = nomax; |
202 | qpe_main_widget = mw; | 202 | qpe_main_widget = mw; |
203 | #ifndef QT_NO_COP | 203 | #ifndef QT_NO_COP |
204 | 204 | ||
205 | sendQCopQ(); | 205 | sendQCopQ(); |
206 | #endif | 206 | #endif |
207 | 207 | ||
208 | if ( preloaded ) { | 208 | if ( preloaded ) { |
209 | if (forceshow) | 209 | if (forceshow) |
210 | show_mx(mw, nomax); | 210 | show_mx(mw, nomax); |
211 | } | 211 | } |
212 | else if ( keep_running ) { | 212 | else if ( keep_running ) { |
213 | show_mx(mw, nomax); | 213 | show_mx(mw, nomax); |
214 | } | 214 | } |
215 | } | 215 | } |
216 | 216 | ||
217 | void loadTextCodecs() | 217 | void loadTextCodecs() |
218 | { | 218 | { |
219 | QString path = QPEApplication::qpeDir() + "/plugins/textcodecs"; | 219 | QString path = QPEApplication::qpeDir() + "/plugins/textcodecs"; |
220 | QDir dir( path, "lib*.so" ); | 220 | QDir dir( path, "lib*.so" ); |
221 | QStringList list; | 221 | QStringList list; |
222 | if ( dir. exists ( )) | 222 | if ( dir. exists ( )) |
223 | list = dir.entryList(); | 223 | list = dir.entryList(); |
224 | QStringList::Iterator it; | 224 | QStringList::Iterator it; |
225 | for ( it = list.begin(); it != list.end(); ++it ) { | 225 | for ( it = list.begin(); it != list.end(); ++it ) { |
226 | TextCodecInterface *iface = 0; | 226 | TextCodecInterface *iface = 0; |
227 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 227 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
228 | if ( lib->queryInterface( IID_QtopiaTextCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 228 | if ( lib->queryInterface( IID_QtopiaTextCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
229 | QValueList<int> mibs = iface->mibEnums(); | 229 | QValueList<int> mibs = iface->mibEnums(); |
230 | for (QValueList<int>::ConstIterator i = mibs.begin(); i != mibs.end(); ++i) { | 230 | for (QValueList<int>::ConstIterator i = mibs.begin(); i != mibs.end(); ++i) { |
231 | (void)iface->createForMib(*i); | 231 | (void)iface->createForMib(*i); |
232 | // ### it exists now; need to remember if we can delete it | 232 | // ### it exists now; need to remember if we can delete it |
233 | } | 233 | } |
234 | } | 234 | } |
235 | else { | 235 | else { |
236 | lib->unload(); | 236 | lib->unload(); |
237 | delete lib; | 237 | delete lib; |
238 | } | 238 | } |
239 | } | 239 | } |
240 | } | 240 | } |
241 | 241 | ||
242 | void loadImageCodecs() | 242 | void loadImageCodecs() |
243 | { | 243 | { |
244 | QString path = QPEApplication::qpeDir() + "/plugins/imagecodecs"; | 244 | QString path = QPEApplication::qpeDir() + "/plugins/imagecodecs"; |
245 | QDir dir( path, "lib*.so" ); | 245 | QDir dir( path, "lib*.so" ); |
246 | QStringList list; | 246 | QStringList list; |
247 | if ( dir. exists ( )) | 247 | if ( dir. exists ( )) |
248 | list = dir.entryList(); | 248 | list = dir.entryList(); |
249 | QStringList::Iterator it; | 249 | QStringList::Iterator it; |
250 | for ( it = list.begin(); it != list.end(); ++it ) { | 250 | for ( it = list.begin(); it != list.end(); ++it ) { |
251 | ImageCodecInterface *iface = 0; | 251 | ImageCodecInterface *iface = 0; |
252 | QLibrary *lib = new QLibrary( path + "/" + *it ); | 252 | QLibrary *lib = new QLibrary( path + "/" + *it ); |
253 | if ( lib->queryInterface( IID_QtopiaImageCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 253 | if ( lib->queryInterface( IID_QtopiaImageCodec, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
254 | QStringList formats = iface->keys(); | 254 | QStringList formats = iface->keys(); |
255 | for (QStringList::ConstIterator i = formats.begin(); i != formats.end(); ++i) { | 255 | for (QStringList::ConstIterator i = formats.begin(); i != formats.end(); ++i) { |
256 | (void)iface->installIOHandler(*i); | 256 | (void)iface->installIOHandler(*i); |
257 | // ### it exists now; need to remember if we can delete it | 257 | // ### it exists now; need to remember if we can delete it |
258 | } | 258 | } |
259 | } | 259 | } |
260 | else { | 260 | else { |
261 | lib->unload(); | 261 | lib->unload(); |
262 | delete lib; | 262 | delete lib; |
263 | } | 263 | } |
264 | } | 264 | } |
265 | } | 265 | } |
266 | QString styleName; | 266 | QString styleName; |
267 | QString decorationName; | 267 | QString decorationName; |
268 | }; | 268 | }; |
269 | 269 | ||
270 | class ResourceMimeFactory : public QMimeSourceFactory | 270 | class ResourceMimeFactory : public QMimeSourceFactory |
271 | { | 271 | { |
272 | public: | 272 | public: |
273 | ResourceMimeFactory() | 273 | ResourceMimeFactory() : resImage( 0 ) |
274 | { | 274 | { |
275 | setFilePath( Global::helpPath() ); | 275 | setFilePath( Global::helpPath() ); |
276 | setExtensionType( "html", "text/html;charset=UTF-8" ); | 276 | setExtensionType( "html", "text/html;charset=UTF-8" ); |
277 | } | 277 | } |
278 | ~ResourceMimeFactory() { | ||
279 | delete resImage; | ||
280 | } | ||
278 | 281 | ||
279 | const QMimeSource* data( const QString& abs_name ) const | 282 | const QMimeSource* data( const QString& abs_name ) const |
280 | { | 283 | { |
281 | const QMimeSource * r = QMimeSourceFactory::data( abs_name ); | 284 | const QMimeSource * r = QMimeSourceFactory::data( abs_name ); |
282 | if ( !r ) { | 285 | if ( !r ) { |
283 | int sl = abs_name.length(); | 286 | int sl = abs_name.length(); |
284 | do { | 287 | do { |
285 | sl = abs_name.findRev( '/', sl - 1 ); | 288 | sl = abs_name.findRev( '/', sl - 1 ); |
286 | QString name = sl >= 0 ? abs_name.mid( sl + 1 ) : abs_name; | 289 | QString name = sl >= 0 ? abs_name.mid( sl + 1 ) : abs_name; |
287 | int dot = name.findRev( '.' ); | 290 | int dot = name.findRev( '.' ); |
288 | if ( dot >= 0 ) | 291 | if ( dot >= 0 ) |
289 | name = name.left( dot ); | 292 | name = name.left( dot ); |
290 | QImage img = Resource::loadImage( name ); | 293 | QImage img = Resource::loadImage( name ); |
291 | if ( !img.isNull() ) | 294 | if ( !img.isNull() ) { |
292 | r = new QImageDrag( img ); | 295 | delete resImage; |
296 | resImage = new QImageDrag( img ); | ||
297 | r = resImage; | ||
298 | } | ||
293 | } | 299 | } |
294 | while ( !r && sl > 0 ); | 300 | while ( !r && sl > 0 ); |
295 | } | 301 | } |
296 | return r; | 302 | return r; |
297 | } | 303 | } |
304 | private: | ||
305 | mutable QImageDrag *resImage; | ||
298 | }; | 306 | }; |
299 | 307 | ||
300 | static int muted = 0; | 308 | static int muted = 0; |
301 | static int micMuted = 0; | 309 | static int micMuted = 0; |
302 | 310 | ||
303 | static void setVolume( int t = 0, int percent = -1 ) | 311 | static void setVolume( int t = 0, int percent = -1 ) |
304 | { | 312 | { |
305 | switch ( t ) { | 313 | switch ( t ) { |
306 | case 0: { | 314 | case 0: { |
307 | Config cfg( "qpe" ); | 315 | Config cfg( "qpe" ); |
308 | cfg.setGroup( "Volume" ); | 316 | cfg.setGroup( "Volume" ); |
309 | if ( percent < 0 ) | 317 | if ( percent < 0 ) |
310 | percent = cfg.readNumEntry( "VolumePercent", 50 ); | 318 | percent = cfg.readNumEntry( "VolumePercent", 50 ); |
311 | int fd = 0; | 319 | int fd = 0; |
312 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 320 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
313 | int vol = muted ? 0 : percent; | 321 | int vol = muted ? 0 : percent; |
314 | // set both channels to same volume | 322 | // set both channels to same volume |
315 | vol |= vol << 8; | 323 | vol |= vol << 8; |
316 | ioctl( fd, MIXER_WRITE( 0 ), &vol ); | 324 | ioctl( fd, MIXER_WRITE( 0 ), &vol ); |
317 | ::close( fd ); | 325 | ::close( fd ); |
318 | } | 326 | } |
319 | } | 327 | } |
320 | break; | 328 | break; |
321 | } | 329 | } |
322 | } | 330 | } |
323 | 331 | ||
324 | static void setMic( int t = 0, int percent = -1 ) | 332 | static void setMic( int t = 0, int percent = -1 ) |
325 | { | 333 | { |
326 | switch ( t ) { | 334 | switch ( t ) { |
327 | case 0: { | 335 | case 0: { |
328 | Config cfg( "qpe" ); | 336 | Config cfg( "qpe" ); |
329 | cfg.setGroup( "Volume" ); | 337 | cfg.setGroup( "Volume" ); |
330 | if ( percent < 0 ) | 338 | if ( percent < 0 ) |
331 | percent = cfg.readNumEntry( "Mic", 50 ); | 339 | percent = cfg.readNumEntry( "Mic", 50 ); |
332 | 340 | ||
333 | int fd = 0; | 341 | int fd = 0; |
334 | int mic = micMuted ? 0 : percent; | 342 | int mic = micMuted ? 0 : percent; |
335 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 343 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
336 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); | 344 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_MIC ), &mic ); |
337 | ::close( fd ); | 345 | ::close( fd ); |
338 | } | 346 | } |
339 | } | 347 | } |
340 | break; | 348 | break; |
341 | } | 349 | } |
342 | } | 350 | } |
343 | 351 | ||
344 | 352 | ||
345 | static void setBass( int t = 0, int percent = -1 ) | 353 | static void setBass( int t = 0, int percent = -1 ) |
346 | { | 354 | { |
347 | switch ( t ) { | 355 | switch ( t ) { |
348 | case 0: { | 356 | case 0: { |
349 | Config cfg( "qpe" ); | 357 | Config cfg( "qpe" ); |
350 | cfg.setGroup( "Volume" ); | 358 | cfg.setGroup( "Volume" ); |
351 | if ( percent < 0 ) | 359 | if ( percent < 0 ) |
352 | percent = cfg.readNumEntry( "BassPercent", 50 ); | 360 | percent = cfg.readNumEntry( "BassPercent", 50 ); |
353 | 361 | ||
354 | int fd = 0; | 362 | int fd = 0; |
355 | int bass = percent; | 363 | int bass = percent; |
356 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 364 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
357 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); | 365 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_BASS ), &bass ); |
358 | ::close( fd ); | 366 | ::close( fd ); |
359 | } | 367 | } |
360 | } | 368 | } |
361 | break; | 369 | break; |
362 | } | 370 | } |
363 | } | 371 | } |
364 | 372 | ||
365 | 373 | ||
366 | static void setTreble( int t = 0, int percent = -1 ) | 374 | static void setTreble( int t = 0, int percent = -1 ) |
367 | { | 375 | { |
368 | switch ( t ) { | 376 | switch ( t ) { |
369 | case 0: { | 377 | case 0: { |
370 | Config cfg( "qpe" ); | 378 | Config cfg( "qpe" ); |
371 | cfg.setGroup( "Volume" ); | 379 | cfg.setGroup( "Volume" ); |
372 | if ( percent < 0 ) | 380 | if ( percent < 0 ) |
373 | percent = cfg.readNumEntry( "TreblePercent", 50 ); | 381 | percent = cfg.readNumEntry( "TreblePercent", 50 ); |
374 | 382 | ||
375 | int fd = 0; | 383 | int fd = 0; |
376 | int treble = percent; | 384 | int treble = percent; |
377 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { | 385 | if ( ( fd = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { |
378 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); | 386 | ioctl( fd, MIXER_WRITE( SOUND_MIXER_TREBLE ), &treble ); |
379 | ::close( fd ); | 387 | ::close( fd ); |
380 | } | 388 | } |
381 | } | 389 | } |
382 | break; | 390 | break; |
383 | } | 391 | } |
384 | } | 392 | } |
385 | 393 | ||
386 | 394 | ||
387 | /*! | 395 | /*! |
388 | \class QPEApplication qpeapplication.h | 396 | \class QPEApplication qpeapplication.h |
389 | \brief The QPEApplication class implements various system services | 397 | \brief The QPEApplication class implements various system services |
390 | that are available to all Qtopia applications. | 398 | that are available to all Qtopia applications. |
391 | 399 | ||
392 | Simply by using QPEApplication instead of QApplication, a standard Qt | 400 | Simply by using QPEApplication instead of QApplication, a standard Qt |
393 | application becomes a Qtopia application. It automatically follows | 401 | application becomes a Qtopia application. It automatically follows |
394 | style changes, quits and raises, and in the | 402 | style changes, quits and raises, and in the |
395 | case of \link docwidget.html document-oriented\endlink applications, | 403 | case of \link docwidget.html document-oriented\endlink applications, |
396 | changes the currently displayed document in response to the environment. | 404 | changes the currently displayed document in response to the environment. |
397 | 405 | ||
398 | To create a \link docwidget.html document-oriented\endlink | 406 | To create a \link docwidget.html document-oriented\endlink |
399 | application use showMainDocumentWidget(); to create a | 407 | application use showMainDocumentWidget(); to create a |
400 | non-document-oriented application use showMainWidget(). The | 408 | non-document-oriented application use showMainWidget(). The |
401 | keepRunning() function indicates whether the application will | 409 | keepRunning() function indicates whether the application will |
402 | continue running after it's processed the last \link qcop.html | 410 | continue running after it's processed the last \link qcop.html |
403 | QCop\endlink message. This can be changed using setKeepRunning(). | 411 | QCop\endlink message. This can be changed using setKeepRunning(). |
404 | 412 | ||
405 | A variety of signals are emitted when certain events occur, for | 413 | A variety of signals are emitted when certain events occur, for |
406 | example, timeChanged(), clockChanged(), weekChanged(), | 414 | example, timeChanged(), clockChanged(), weekChanged(), |
407 | dateFormatChanged() and volumeChanged(). If the application receives | 415 | dateFormatChanged() and volumeChanged(). If the application receives |
408 | a \link qcop.html QCop\endlink message on the application's | 416 | a \link qcop.html QCop\endlink message on the application's |
409 | QPE/Application/\e{appname} channel, the appMessage() signal is | 417 | QPE/Application/\e{appname} channel, the appMessage() signal is |
410 | emitted. There are also flush() and reload() signals, which | 418 | emitted. There are also flush() and reload() signals, which |
411 | are emitted when synching begins and ends respectively - upon these | 419 | are emitted when synching begins and ends respectively - upon these |
412 | signals, the application should save and reload any data | 420 | signals, the application should save and reload any data |
413 | files that are involved in synching. Most of these signals will initially | 421 | files that are involved in synching. Most of these signals will initially |
414 | be received and unfiltered through the appMessage() signal. | 422 | be received and unfiltered through the appMessage() signal. |
415 | 423 | ||
416 | This class also provides a set of useful static functions. The | 424 | This class also provides a set of useful static functions. The |
417 | qpeDir() and documentDir() functions return the respective paths. | 425 | qpeDir() and documentDir() functions return the respective paths. |
418 | The grabKeyboard() and ungrabKeyboard() functions are used to | 426 | The grabKeyboard() and ungrabKeyboard() functions are used to |
419 | control whether the application takes control of the device's | 427 | control whether the application takes control of the device's |
420 | physical buttons (e.g. application launch keys). The stylus' mode of | 428 | physical buttons (e.g. application launch keys). The stylus' mode of |
421 | operation is set with setStylusOperation() and retrieved with | 429 | operation is set with setStylusOperation() and retrieved with |
422 | stylusOperation(). There are also setInputMethodHint() and | 430 | stylusOperation(). There are also setInputMethodHint() and |
423 | inputMethodHint() functions. | 431 | inputMethodHint() functions. |
424 | 432 | ||
425 | \ingroup qtopiaemb | 433 | \ingroup qtopiaemb |
426 | */ | 434 | */ |
427 | 435 | ||
428 | /*! | 436 | /*! |
429 | \fn void QPEApplication::clientMoused() | 437 | \fn void QPEApplication::clientMoused() |
430 | 438 | ||
431 | \internal | 439 | \internal |
432 | */ | 440 | */ |
433 | 441 | ||
434 | /*! | 442 | /*! |
435 | \fn void QPEApplication::timeChanged(); | 443 | \fn void QPEApplication::timeChanged(); |
436 | This signal is emitted when the time changes outside the normal | 444 | This signal is emitted when the time changes outside the normal |
437 | passage of time, i.e. if the time is set backwards or forwards. | 445 | passage of time, i.e. if the time is set backwards or forwards. |
438 | */ | 446 | */ |
439 | 447 | ||
440 | /*! | 448 | /*! |
441 | \fn void QPEApplication::clockChanged( bool ampm ); | 449 | \fn void QPEApplication::clockChanged( bool ampm ); |
442 | 450 | ||
443 | This signal is emitted when the user changes the clock's style. If | 451 | This signal is emitted when the user changes the clock's style. If |
444 | \a ampm is TRUE, the user wants a 12-hour AM/PM clock, otherwise, | 452 | \a ampm is TRUE, the user wants a 12-hour AM/PM clock, otherwise, |
445 | they want a 24-hour clock. | 453 | they want a 24-hour clock. |
446 | */ | 454 | */ |
447 | 455 | ||
448 | /*! | 456 | /*! |
449 | \fn void QPEApplication::volumeChanged( bool muted ) | 457 | \fn void QPEApplication::volumeChanged( bool muted ) |
450 | 458 | ||
451 | This signal is emitted whenever the mute state is changed. If \a | 459 | This signal is emitted whenever the mute state is changed. If \a |
452 | muted is TRUE, then sound output has been muted. | 460 | muted is TRUE, then sound output has been muted. |
453 | */ | 461 | */ |
454 | 462 | ||
455 | /*! | 463 | /*! |
456 | \fn void QPEApplication::weekChanged( bool startOnMonday ) | 464 | \fn void QPEApplication::weekChanged( bool startOnMonday ) |
457 | 465 | ||
458 | This signal is emitted if the week start day is changed. If \a | 466 | This signal is emitted if the week start day is changed. If \a |
459 | startOnMonday is TRUE then the first day of the week is Monday; if | 467 | startOnMonday is TRUE then the first day of the week is Monday; if |
460 | \a startOnMonday is FALSE then the first day of the week is | 468 | \a startOnMonday is FALSE then the first day of the week is |
461 | Sunday. | 469 | Sunday. |
462 | */ | 470 | */ |
463 | 471 | ||
464 | /*! | 472 | /*! |
465 | \fn void QPEApplication::dateFormatChanged(DateFormat) | 473 | \fn void QPEApplication::dateFormatChanged(DateFormat) |
466 | 474 | ||
467 | This signal is emitted whenever the date format is changed. | 475 | This signal is emitted whenever the date format is changed. |
468 | */ | 476 | */ |
469 | 477 | ||
470 | /*! | 478 | /*! |
471 | \fn void QPEApplication::flush() | 479 | \fn void QPEApplication::flush() |
472 | 480 | ||
473 | ### | 481 | ### |
474 | */ | 482 | */ |
475 | 483 | ||
476 | /*! | 484 | /*! |
477 | \fn void QPEApplication::reload() | 485 | \fn void QPEApplication::reload() |
478 | 486 | ||
479 | */ | 487 | */ |
480 | 488 | ||
481 | /*! | 489 | /*! |
482 | \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) | 490 | \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) |
483 | 491 | ||
484 | This signal is emitted when a message is received on this | 492 | This signal is emitted when a message is received on this |
485 | application's QPE/Application/<i>appname</i> \link qcop.html | 493 | application's QPE/Application/<i>appname</i> \link qcop.html |
486 | QCop\endlink channel. | 494 | QCop\endlink channel. |
487 | 495 | ||
488 | The slot to which you connect this signal uses \a msg and \a data | 496 | The slot to which you connect this signal uses \a msg and \a data |
489 | in the following way: | 497 | in the following way: |
490 | 498 | ||
491 | \code | 499 | \code |
492 | void MyWidget::receive( const QCString& msg, const QByteArray& data ) | 500 | void MyWidget::receive( const QCString& msg, const QByteArray& data ) |
493 | { | 501 | { |
494 | QDataStream stream( data, IO_ReadOnly ); | 502 | QDataStream stream( data, IO_ReadOnly ); |
495 | if ( msg == "someMessage(int,int,int)" ) { | 503 | if ( msg == "someMessage(int,int,int)" ) { |
496 | int a,b,c; | 504 | int a,b,c; |
497 | stream >> a >> b >> c; | 505 | stream >> a >> b >> c; |
498 | ... | 506 | ... |
499 | } else if ( msg == "otherMessage(QString)" ) { | 507 | } else if ( msg == "otherMessage(QString)" ) { |
500 | ... | 508 | ... |
501 | } | 509 | } |
502 | } | 510 | } |
503 | \endcode | 511 | \endcode |
504 | 512 | ||
505 | \sa qcop.html | 513 | \sa qcop.html |
506 | Note that messages received here may be processed by qpe application | 514 | Note that messages received here may be processed by qpe application |
507 | and emitted as signals, such as flush() and reload(). | 515 | and emitted as signals, such as flush() and reload(). |
508 | */ | 516 | */ |
509 | 517 | ||
510 | /*! | 518 | /*! |
511 | Constructs a QPEApplication just as you would construct | 519 | Constructs a QPEApplication just as you would construct |
512 | a QApplication, passing \a argc, \a argv, and \a t. | 520 | a QApplication, passing \a argc, \a argv, and \a t. |
513 | 521 | ||
514 | For applications, \a t should be the default, GuiClient. Only | 522 | For applications, \a t should be the default, GuiClient. Only |
515 | the Qtopia server passes GuiServer. | 523 | the Qtopia server passes GuiServer. |
516 | */ | 524 | */ |
517 | QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | 525 | QPEApplication::QPEApplication( int & argc, char **argv, Type t ) |
518 | : QApplication( argc, argv, t ) | 526 | : QApplication( argc, argv, t ) |
519 | { | 527 | { |
520 | d = new QPEApplicationData; | 528 | d = new QPEApplicationData; |
521 | d->loadTextCodecs(); | 529 | d->loadTextCodecs(); |
522 | d->loadImageCodecs(); | 530 | d->loadImageCodecs(); |
523 | int dw = desktop() ->width(); | 531 | int dw = desktop() ->width(); |
524 | 532 | ||
525 | if ( dw < 200 ) { | 533 | if ( dw < 200 ) { |
526 | setFont( QFont( "vera", 8 ) ); | 534 | setFont( QFont( "vera", 8 ) ); |
527 | AppLnk::setSmallIconSize( 10 ); | 535 | AppLnk::setSmallIconSize( 10 ); |
528 | AppLnk::setBigIconSize( 28 ); | 536 | AppLnk::setBigIconSize( 28 ); |
529 | } | 537 | } |
530 | #ifndef QT_QWS_SIMPAD | 538 | #ifndef QT_QWS_SIMPAD |
531 | else if ( dw > 600 ) { | 539 | else if ( dw > 600 ) { |
532 | setFont( QFont( "vera", 16 ) ); | 540 | setFont( QFont( "vera", 16 ) ); |
533 | AppLnk::setSmallIconSize( 24 ); | 541 | AppLnk::setSmallIconSize( 24 ); |
534 | AppLnk::setBigIconSize( 48 ); | 542 | AppLnk::setBigIconSize( 48 ); |
535 | } | 543 | } |
536 | #endif | 544 | #endif |
537 | else if ( dw > 200 ) { | 545 | else if ( dw > 200 ) { |
538 | setFont( QFont( "vera", 10 ) ); | 546 | setFont( QFont( "vera", 10 ) ); |
539 | AppLnk::setSmallIconSize( 14 ); | 547 | AppLnk::setSmallIconSize( 14 ); |
540 | AppLnk::setBigIconSize( 32 ); | 548 | AppLnk::setBigIconSize( 32 ); |
541 | } | 549 | } |
542 | 550 | ||
543 | QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory ); | 551 | QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory ); |
544 | 552 | ||
545 | connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) ); | 553 | connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) ); |
546 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 554 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
547 | 555 | ||
548 | QString qcopfn( "/tmp/qcop-msg-" ); | 556 | QString qcopfn( "/tmp/qcop-msg-" ); |
549 | qcopfn += QString( argv[ 0 ] ); // append command name | 557 | qcopfn += QString( argv[ 0 ] ); // append command name |
550 | 558 | ||
551 | QFile f( qcopfn ); | 559 | QFile f( qcopfn ); |
552 | if ( f.open( IO_ReadOnly ) ) { | 560 | if ( f.open( IO_ReadOnly ) ) { |
553 | flock( f.handle(), LOCK_EX ); | 561 | flock( f.handle(), LOCK_EX ); |
554 | } | 562 | } |
555 | 563 | ||
556 | sysChannel = new QCopChannel( "QPE/System", this ); | 564 | sysChannel = new QCopChannel( "QPE/System", this ); |
557 | connect( sysChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), | 565 | connect( sysChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), |
558 | this, SLOT( systemMessage( const QCString &, const QByteArray & ) ) ); | 566 | this, SLOT( systemMessage( const QCString &, const QByteArray & ) ) ); |
559 | 567 | ||
560 | QCString channel = QCString( argv[ 0 ] ); | 568 | QCString channel = QCString( argv[ 0 ] ); |
561 | channel.replace( QRegExp( ".*/" ), "" ); | 569 | channel.replace( QRegExp( ".*/" ), "" ); |
562 | d->appName = channel; | 570 | d->appName = channel; |
563 | channel = "QPE/Application/" + channel; | 571 | channel = "QPE/Application/" + channel; |
564 | pidChannel = new QCopChannel( channel, this ); | 572 | pidChannel = new QCopChannel( channel, this ); |
565 | connect( pidChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), | 573 | connect( pidChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), |
566 | this, SLOT( pidMessage( const QCString &, const QByteArray & ) ) ); | 574 | this, SLOT( pidMessage( const QCString &, const QByteArray & ) ) ); |
567 | 575 | ||
568 | if ( f.isOpen() ) { | 576 | if ( f.isOpen() ) { |
569 | d->keep_running = FALSE; | 577 | d->keep_running = FALSE; |
570 | QDataStream ds( &f ); | 578 | QDataStream ds( &f ); |
571 | QCString channel, message; | 579 | QCString channel, message; |
572 | QByteArray data; | 580 | QByteArray data; |
573 | while ( !ds.atEnd() ) { | 581 | while ( !ds.atEnd() ) { |
574 | ds >> channel >> message >> data; | 582 | ds >> channel >> message >> data; |
575 | d->enqueueQCop( channel, message, data ); | 583 | d->enqueueQCop( channel, message, data ); |
576 | } | 584 | } |
577 | 585 | ||
578 | flock( f.handle(), LOCK_UN ); | 586 | flock( f.handle(), LOCK_UN ); |
579 | f.close(); | 587 | f.close(); |
580 | f.remove(); | 588 | f.remove(); |
581 | } | 589 | } |
582 | 590 | ||
583 | for ( int a = 0; a < argc; a++ ) { | 591 | for ( int a = 0; a < argc; a++ ) { |
584 | if ( qstrcmp( argv[ a ], "-preload" ) == 0 ) { | 592 | if ( qstrcmp( argv[ a ], "-preload" ) == 0 ) { |
585 | argv[ a ] = argv[ a + 1 ]; | 593 | argv[ a ] = argv[ a + 1 ]; |
586 | a++; | 594 | a++; |
587 | d->preloaded = TRUE; | 595 | d->preloaded = TRUE; |
588 | argc -= 1; | 596 | argc -= 1; |
589 | } | 597 | } |
590 | else if ( qstrcmp( argv[ a ], "-preload-show" ) == 0 ) { | 598 | else if ( qstrcmp( argv[ a ], "-preload-show" ) == 0 ) { |
591 | argv[ a ] = argv[ a + 1 ]; | 599 | argv[ a ] = argv[ a + 1 ]; |
592 | a++; | 600 | a++; |
593 | d->preloaded = TRUE; | 601 | d->preloaded = TRUE; |
594 | d->forceshow = TRUE; | 602 | d->forceshow = TRUE; |
595 | argc -= 1; | 603 | argc -= 1; |
596 | } | 604 | } |
597 | } | 605 | } |
598 | 606 | ||
599 | /* overide stored arguments */ | 607 | /* overide stored arguments */ |
600 | setArgs( argc, argv ); | 608 | setArgs( argc, argv ); |
601 | 609 | ||
602 | #endif | 610 | #endif |
603 | 611 | ||
604 | // qwsSetDecoration( new QPEDecoration() ); | 612 | // qwsSetDecoration( new QPEDecoration() ); |
605 | 613 | ||
606 | #ifndef QT_NO_TRANSLATION | 614 | #ifndef QT_NO_TRANSLATION |
607 | 615 | ||
608 | QStringList langs = Global::languageList(); | 616 | QStringList langs = Global::languageList(); |
609 | for ( QStringList::ConstIterator it = langs.begin(); it != langs.end(); ++it ) { | 617 | for ( QStringList::ConstIterator it = langs.begin(); it != langs.end(); ++it ) { |
610 | QString lang = *it; | 618 | QString lang = *it; |
611 | 619 | ||
612 | installTranslation( lang + "/libopie.qm"); | 620 | installTranslation( lang + "/libopie.qm"); |
613 | installTranslation( lang + "/libqpe.qm" ); | 621 | installTranslation( lang + "/libqpe.qm" ); |
614 | installTranslation( lang + "/" + d->appName + ".qm" ); | 622 | installTranslation( lang + "/" + d->appName + ".qm" ); |
615 | 623 | ||
616 | 624 | ||
617 | //###language/font hack; should look it up somewhere | 625 | //###language/font hack; should look it up somewhere |
618 | #ifdef QWS | 626 | #ifdef QWS |
619 | 627 | ||
620 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { | 628 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { |
621 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); | 629 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); |
622 | setFont( fn ); | 630 | setFont( fn ); |
623 | } | 631 | } |
624 | #endif | 632 | #endif |
625 | 633 | ||
626 | } | 634 | } |
627 | #endif | 635 | #endif |
628 | 636 | ||
629 | applyStyle(); | 637 | applyStyle(); |
630 | 638 | ||
631 | if ( type() == GuiServer ) { | 639 | if ( type() == GuiServer ) { |
632 | setVolume(); | 640 | setVolume(); |
633 | } | 641 | } |
634 | 642 | ||
635 | installEventFilter( this ); | 643 | installEventFilter( this ); |
636 | 644 | ||
637 | QPEMenuToolFocusManager::initialize(); | 645 | QPEMenuToolFocusManager::initialize(); |
638 | 646 | ||
639 | #ifdef QT_NO_QWS_CURSOR | 647 | #ifdef QT_NO_QWS_CURSOR |
640 | // if we have no cursor, probably don't want tooltips | 648 | // if we have no cursor, probably don't want tooltips |
641 | QToolTip::setEnabled( FALSE ); | 649 | QToolTip::setEnabled( FALSE ); |
642 | #endif | 650 | #endif |
643 | } | 651 | } |
644 | 652 | ||
645 | static QPtrDict<void>* inputMethodDict = 0; | 653 | static QPtrDict<void>* inputMethodDict = 0; |
646 | static void createInputMethodDict() | 654 | static void createInputMethodDict() |
647 | { | 655 | { |
648 | if ( !inputMethodDict ) | 656 | if ( !inputMethodDict ) |
649 | inputMethodDict = new QPtrDict<void>; | 657 | inputMethodDict = new QPtrDict<void>; |
650 | } | 658 | } |
651 | 659 | ||
652 | /*! | 660 | /*! |
653 | Returns the currently set hint to the system as to whether | 661 | Returns the currently set hint to the system as to whether |
654 | widget \a w has any use for text input methods. | 662 | widget \a w has any use for text input methods. |
655 | 663 | ||
656 | 664 | ||
657 | \sa setInputMethodHint() InputMethodHint | 665 | \sa setInputMethodHint() InputMethodHint |
658 | */ | 666 | */ |
659 | QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w ) | 667 | QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w ) |
660 | { | 668 | { |
661 | if ( inputMethodDict && w ) | 669 | if ( inputMethodDict && w ) |
662 | return ( InputMethodHint ) ( int ) inputMethodDict->find( w ); | 670 | return ( InputMethodHint ) ( int ) inputMethodDict->find( w ); |
663 | return Normal; | 671 | return Normal; |
664 | } | 672 | } |
665 | 673 | ||
666 | /*! | 674 | /*! |
667 | \enum QPEApplication::InputMethodHint | 675 | \enum QPEApplication::InputMethodHint |
668 | 676 | ||
669 | \value Normal the application sometimes needs text input (the default). | 677 | \value Normal the application sometimes needs text input (the default). |
670 | \value AlwaysOff the application never needs text input. | 678 | \value AlwaysOff the application never needs text input. |
671 | \value AlwaysOn the application always needs text input. | 679 | \value AlwaysOn the application always needs text input. |
672 | */ | 680 | */ |
673 | 681 | ||
674 | /*! | 682 | /*! |
675 | Hints to the system that widget \a w has use for text input methods | 683 | Hints to the system that widget \a w has use for text input methods |
676 | as specified by \a mode. | 684 | as specified by \a mode. |
677 | 685 | ||
678 | \sa inputMethodHint() InputMethodHint | 686 | \sa inputMethodHint() InputMethodHint |
679 | */ | 687 | */ |
680 | void QPEApplication::setInputMethodHint( QWidget * w, InputMethodHint mode ) | 688 | void QPEApplication::setInputMethodHint( QWidget * w, InputMethodHint mode ) |
681 | { | 689 | { |
682 | createInputMethodDict(); | 690 | createInputMethodDict(); |
683 | if ( mode == Normal ) { | 691 | if ( mode == Normal ) { |
684 | inputMethodDict->remove | 692 | inputMethodDict->remove |
685 | ( w ); | 693 | ( w ); |
686 | } | 694 | } |
687 | else { | 695 | else { |
688 | inputMethodDict->insert( w, ( void* ) mode ); | 696 | inputMethodDict->insert( w, ( void* ) mode ); |
689 | } | 697 | } |
690 | } | 698 | } |
691 | 699 | ||
692 | class HackDialog : public QDialog | 700 | class HackDialog : public QDialog |
693 | { | 701 | { |
694 | public: | 702 | public: |
695 | void acceptIt() | 703 | void acceptIt() |
696 | { | 704 | { |
697 | accept(); | 705 | accept(); |
698 | } | 706 | } |
699 | void rejectIt() | 707 | void rejectIt() |
700 | { | 708 | { |
701 | reject(); | 709 | reject(); |
702 | } | 710 | } |
703 | }; | 711 | }; |
704 | 712 | ||
705 | 713 | ||
706 | void QPEApplication::mapToDefaultAction( QWSKeyEvent * ke, int key ) | 714 | void QPEApplication::mapToDefaultAction( QWSKeyEvent * ke, int key ) |
707 | { | 715 | { |
708 | // specialised actions for certain widgets. May want to | 716 | // specialised actions for certain widgets. May want to |
709 | // add more stuff here. | 717 | // add more stuff here. |
710 | if ( activePopupWidget() && activePopupWidget() ->inherits( "QListBox" ) | 718 | if ( activePopupWidget() && activePopupWidget() ->inherits( "QListBox" ) |
711 | && activePopupWidget() ->parentWidget() | 719 | && activePopupWidget() ->parentWidget() |
712 | && activePopupWidget() ->parentWidget() ->inherits( "QComboBox" ) ) | 720 | && activePopupWidget() ->parentWidget() ->inherits( "QComboBox" ) ) |
713 | key = Qt::Key_Return; | 721 | key = Qt::Key_Return; |
714 | 722 | ||
715 | if ( activePopupWidget() && activePopupWidget() ->inherits( "QPopupMenu" ) ) | 723 | if ( activePopupWidget() && activePopupWidget() ->inherits( "QPopupMenu" ) ) |
716 | key = Qt::Key_Return; | 724 | key = Qt::Key_Return; |
717 | 725 | ||
718 | #ifdef QWS | 726 | #ifdef QWS |
719 | 727 | ||
720 | ke->simpleData.keycode = key; | 728 | ke->simpleData.keycode = key; |
721 | #endif | 729 | #endif |
722 | } | 730 | } |
723 | 731 | ||
724 | class HackWidget : public QWidget | 732 | class HackWidget : public QWidget |
725 | { | 733 | { |
726 | public: | 734 | public: |
727 | bool needsOk() | 735 | bool needsOk() |
728 | { | 736 | { |
729 | return ( getWState() & WState_Reserved1 ); | 737 | return ( getWState() & WState_Reserved1 ); |
730 | } | 738 | } |
731 | }; | 739 | }; |
732 | 740 | ||
733 | /*! | 741 | /*! |
734 | \internal | 742 | \internal |
735 | */ | 743 | */ |
736 | 744 | ||
737 | #ifdef QWS | 745 | #ifdef QWS |
738 | bool QPEApplication::qwsEventFilter( QWSEvent * e ) | 746 | bool QPEApplication::qwsEventFilter( QWSEvent * e ) |
739 | { | 747 | { |
740 | if ( !d->notbusysent && e->type == QWSEvent::Focus ) { | 748 | if ( !d->notbusysent && e->type == QWSEvent::Focus ) { |
741 | if ( qApp->type() != QApplication::GuiServer ) { | 749 | if ( qApp->type() != QApplication::GuiServer ) { |
742 | QCopEnvelope e( "QPE/System", "notBusy(QString)" ); | 750 | QCopEnvelope e( "QPE/System", "notBusy(QString)" ); |
743 | e << d->appName; | 751 | e << d->appName; |
744 | } | 752 | } |
745 | d->notbusysent = TRUE; | 753 | d->notbusysent = TRUE; |
746 | } | 754 | } |
747 | if ( type() == GuiServer ) { | 755 | if ( type() == GuiServer ) { |
748 | switch ( e->type ) { | 756 | switch ( e->type ) { |
749 | case QWSEvent::Mouse: | 757 | case QWSEvent::Mouse: |
750 | if ( e->asMouse() ->simpleData.state && !QWidget::find( e->window() ) ) | 758 | if ( e->asMouse() ->simpleData.state && !QWidget::find( e->window() ) ) |
751 | emit clientMoused(); | 759 | emit clientMoused(); |
752 | break; | 760 | break; |
753 | default: | 761 | default: |
754 | break; | 762 | break; |
755 | } | 763 | } |
756 | } | 764 | } |
757 | if ( e->type == QWSEvent::Key ) { | 765 | if ( e->type == QWSEvent::Key ) { |
758 | QWSKeyEvent *ke = ( QWSKeyEvent * ) e; | 766 | QWSKeyEvent *ke = ( QWSKeyEvent * ) e; |
759 | if ( ke->simpleData.keycode == Qt::Key_F33 ) { | 767 | if ( ke->simpleData.keycode == Qt::Key_F33 ) { |
760 | // Use special "OK" key to press "OK" on top level widgets | 768 | // Use special "OK" key to press "OK" on top level widgets |
761 | QWidget * active = activeWindow(); | 769 | QWidget * active = activeWindow(); |
762 | QWidget *popup = 0; | 770 | QWidget *popup = 0; |
763 | if ( active && active->isPopup() ) { | 771 | if ( active && active->isPopup() ) { |
764 | popup = active; | 772 | popup = active; |
765 | active = active->parentWidget(); | 773 | active = active->parentWidget(); |
766 | } | 774 | } |
767 | if ( active && ( int ) active->winId() == ke->simpleData.window && | 775 | if ( active && ( int ) active->winId() == ke->simpleData.window && |
768 | !active->testWFlags( WStyle_Customize | WType_Popup | WType_Desktop ) ) { | 776 | !active->testWFlags( WStyle_Customize | WType_Popup | WType_Desktop ) ) { |
769 | if ( ke->simpleData.is_press ) { | 777 | if ( ke->simpleData.is_press ) { |
770 | if ( popup ) | 778 | if ( popup ) |
771 | popup->close(); | 779 | popup->close(); |
772 | if ( active->inherits( "QDialog" ) ) { | 780 | if ( active->inherits( "QDialog" ) ) { |
773 | HackDialog * d = ( HackDialog * ) active; | 781 | HackDialog * d = ( HackDialog * ) active; |
774 | d->acceptIt(); | 782 | d->acceptIt(); |
775 | return TRUE; | 783 | return TRUE; |
776 | } | 784 | } |
777 | else if ( ( ( HackWidget * ) active ) ->needsOk() ) { | 785 | else if ( ( ( HackWidget * ) active ) ->needsOk() ) { |
778 | QSignal s; | 786 | QSignal s; |
779 | s.connect( active, SLOT( accept() ) ); | 787 | s.connect( active, SLOT( accept() ) ); |
780 | s.activate(); | 788 | s.activate(); |
781 | } | 789 | } |
782 | else { | 790 | else { |
783 | // do the same as with the select key: Map to the default action of the widget: | 791 | // do the same as with the select key: Map to the default action of the widget: |
784 | mapToDefaultAction( ke, Qt::Key_Return ); | 792 | mapToDefaultAction( ke, Qt::Key_Return ); |
785 | } | 793 | } |
786 | } | 794 | } |
787 | } | 795 | } |
788 | } | 796 | } |
789 | else if ( ke->simpleData.keycode == Qt::Key_F30 ) { | 797 | else if ( ke->simpleData.keycode == Qt::Key_F30 ) { |
790 | // Use special "select" key to do whatever default action a widget has | 798 | // Use special "select" key to do whatever default action a widget has |
791 | mapToDefaultAction( ke, Qt::Key_Space ); | 799 | mapToDefaultAction( ke, Qt::Key_Space ); |
792 | } | 800 | } |
793 | else if ( ke->simpleData.keycode == Qt::Key_Escape && | 801 | else if ( ke->simpleData.keycode == Qt::Key_Escape && |
794 | ke->simpleData.is_press ) { | 802 | ke->simpleData.is_press ) { |
795 | // Escape key closes app if focus on toplevel | 803 | // Escape key closes app if focus on toplevel |
796 | QWidget * active = activeWindow(); | 804 | QWidget * active = activeWindow(); |
797 | if ( active && active->testWFlags( WType_TopLevel ) && | 805 | if ( active && active->testWFlags( WType_TopLevel ) && |
798 | ( int ) active->winId() == ke->simpleData.window && | 806 | ( int ) active->winId() == ke->simpleData.window && |
799 | !active->testWFlags( WStyle_Dialog | WStyle_Customize | WType_Popup | WType_Desktop ) ) { | 807 | !active->testWFlags( WStyle_Dialog | WStyle_Customize | WType_Popup | WType_Desktop ) ) { |
800 | if ( active->inherits( "QDialog" ) ) { | 808 | if ( active->inherits( "QDialog" ) ) { |
801 | HackDialog * d = ( HackDialog * ) active; | 809 | HackDialog * d = ( HackDialog * ) active; |
802 | d->rejectIt(); | 810 | d->rejectIt(); |
803 | return TRUE; | 811 | return TRUE; |
804 | } | 812 | } |
805 | else if ( strcmp( argv() [ 0 ], "embeddedkonsole" ) != 0 ) { | 813 | else if ( strcmp( argv() [ 0 ], "embeddedkonsole" ) != 0 ) { |
806 | active->close(); | 814 | active->close(); |
807 | } | 815 | } |
808 | } | 816 | } |
809 | } | 817 | } |
810 | else if ( ke->simpleData.keycode >= Qt::Key_F1 && ke->simpleData.keycode <= Qt::Key_F29 ) { | 818 | else if ( ke->simpleData.keycode >= Qt::Key_F1 && ke->simpleData.keycode <= Qt::Key_F29 ) { |
811 | // this should be if ( ODevice::inst ( )-> buttonForKeycode ( ... )) | 819 | // this should be if ( ODevice::inst ( )-> buttonForKeycode ( ... )) |
812 | // but we cannot access libopie function within libqpe :( | 820 | // but we cannot access libopie function within libqpe :( |
813 | 821 | ||
814 | QWidget * active = activeWindow ( ); | 822 | QWidget * active = activeWindow ( ); |
815 | if ( active && ((int) active-> winId ( ) == ke-> simpleData.window )) { | 823 | if ( active && ((int) active-> winId ( ) == ke-> simpleData.window )) { |
816 | if ( d-> kbgrabbed ) { // we grabbed the keyboard | 824 | if ( d-> kbgrabbed ) { // we grabbed the keyboard |
817 | QChar ch ( ke-> simpleData.unicode ); | 825 | QChar ch ( ke-> simpleData.unicode ); |
818 | QKeyEvent qke ( ke-> simpleData. is_press ? QEvent::KeyPress : QEvent::KeyRelease, | 826 | QKeyEvent qke ( ke-> simpleData. is_press ? QEvent::KeyPress : QEvent::KeyRelease, |
819 | ke-> simpleData.keycode, | 827 | ke-> simpleData.keycode, |
820 | ch. latin1 ( ), | 828 | ch. latin1 ( ), |
821 | ke-> simpleData.modifiers, | 829 | ke-> simpleData.modifiers, |
822 | QString ( ch ), | 830 | QString ( ch ), |
823 | ke-> simpleData.is_auto_repeat, 1 ); | 831 | ke-> simpleData.is_auto_repeat, 1 ); |
824 | 832 | ||
825 | QObject *which = QWidget::keyboardGrabber ( ); | 833 | QObject *which = QWidget::keyboardGrabber ( ); |
826 | if ( !which ) | 834 | if ( !which ) |
827 | which = QApplication::focusWidget ( ); | 835 | which = QApplication::focusWidget ( ); |
828 | if ( !which ) | 836 | if ( !which ) |
829 | which = QApplication::activeWindow ( ); | 837 | which = QApplication::activeWindow ( ); |
830 | if ( !which ) | 838 | if ( !which ) |
831 | which = qApp; | 839 | which = qApp; |
832 | 840 | ||
833 | QApplication::sendEvent ( which, &qke ); | 841 | QApplication::sendEvent ( which, &qke ); |
834 | } | 842 | } |
835 | else { // we didn't grab the keyboard, so send the event to the launcher | 843 | else { // we didn't grab the keyboard, so send the event to the launcher |
836 | QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); | 844 | QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); |
837 | e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); | 845 | e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); |
838 | } | 846 | } |
839 | } | 847 | } |
840 | return true; | 848 | return true; |
841 | } | 849 | } |
842 | } | 850 | } |
843 | if ( e->type == QWSEvent::Focus ) { | 851 | if ( e->type == QWSEvent::Focus ) { |
844 | QWSFocusEvent * fe = ( QWSFocusEvent* ) e; | 852 | QWSFocusEvent * fe = ( QWSFocusEvent* ) e; |
845 | if ( !fe->simpleData.get_focus ) { | 853 | if ( !fe->simpleData.get_focus ) { |
846 | QWidget * active = activeWindow(); | 854 | QWidget * active = activeWindow(); |
847 | while ( active && active->isPopup() ) { | 855 | while ( active && active->isPopup() ) { |
848 | active->close(); | 856 | active->close(); |
849 | active = activeWindow(); | 857 | active = activeWindow(); |
850 | } | 858 | } |
851 | } | 859 | } |
852 | else { | 860 | else { |
853 | // make sure our modal widget is ALWAYS on top | 861 | // make sure our modal widget is ALWAYS on top |
854 | QWidget *topm = activeModalWidget(); | 862 | QWidget *topm = activeModalWidget(); |
855 | if ( topm ) { | 863 | if ( topm ) { |
856 | topm->raise(); | 864 | topm->raise(); |
857 | } | 865 | } |
858 | } | 866 | } |
859 | if ( fe->simpleData.get_focus && inputMethodDict ) { | 867 | if ( fe->simpleData.get_focus && inputMethodDict ) { |
860 | InputMethodHint m = inputMethodHint( QWidget::find( e->window() ) ); | 868 | InputMethodHint m = inputMethodHint( QWidget::find( e->window() ) ); |
861 | if ( m == AlwaysOff ) | 869 | if ( m == AlwaysOff ) |
862 | Global::hideInputMethod(); | 870 | Global::hideInputMethod(); |
863 | if ( m == AlwaysOn ) | 871 | if ( m == AlwaysOn ) |
864 | Global::showInputMethod(); | 872 | Global::showInputMethod(); |
865 | } | 873 | } |
866 | } | 874 | } |
867 | 875 | ||
868 | 876 | ||
869 | return QApplication::qwsEventFilter( e ); | 877 | return QApplication::qwsEventFilter( e ); |
870 | } | 878 | } |
871 | #endif | 879 | #endif |
872 | 880 | ||
873 | /*! | 881 | /*! |
874 | Destroys the QPEApplication. | 882 | Destroys the QPEApplication. |
875 | */ | 883 | */ |
876 | QPEApplication::~QPEApplication() | 884 | QPEApplication::~QPEApplication() |
877 | { | 885 | { |
878 | ungrabKeyboard(); | 886 | ungrabKeyboard(); |
879 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 887 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
880 | // Need to delete QCopChannels early, since the display will | 888 | // Need to delete QCopChannels early, since the display will |
881 | // be gone by the time we get to ~QObject(). | 889 | // be gone by the time we get to ~QObject(). |
882 | delete sysChannel; | 890 | delete sysChannel; |
883 | delete pidChannel; | 891 | delete pidChannel; |
884 | #endif | 892 | #endif |
885 | 893 | ||
886 | delete d; | 894 | delete d; |
887 | } | 895 | } |
888 | 896 | ||
889 | /*! | 897 | /*! |
890 | Returns <tt>$OPIEDIR/</tt>. | 898 | Returns <tt>$OPIEDIR/</tt>. |
891 | */ | 899 | */ |
892 | QString QPEApplication::qpeDir() | 900 | QString QPEApplication::qpeDir() |
893 | { | 901 | { |
894 | const char * base = getenv( "OPIEDIR" ); | 902 | const char * base = getenv( "OPIEDIR" ); |
895 | if ( base ) | 903 | if ( base ) |
896 | return QString( base ) + "/"; | 904 | return QString( base ) + "/"; |
897 | 905 | ||
898 | return QString( "../" ); | 906 | return QString( "../" ); |
899 | } | 907 | } |
900 | 908 | ||
901 | /*! | 909 | /*! |
902 | Returns the user's current Document directory. There is a trailing "/". | 910 | Returns the user's current Document directory. There is a trailing "/". |
903 | .. well, it does now,, and there's no trailing '/' | 911 | .. well, it does now,, and there's no trailing '/' |
904 | */ | 912 | */ |
905 | QString QPEApplication::documentDir() | 913 | QString QPEApplication::documentDir() |
906 | { | 914 | { |
907 | const char* base = getenv( "HOME"); | 915 | const char* base = getenv( "HOME"); |
908 | if ( base ) | 916 | if ( base ) |
909 | return QString( base ) + "/Documents"; | 917 | return QString( base ) + "/Documents"; |
910 | 918 | ||
911 | return QString( "../Documents" ); | 919 | return QString( "../Documents" ); |
912 | } | 920 | } |
913 | 921 | ||
914 | static int deforient = -1; | 922 | static int deforient = -1; |
915 | 923 | ||
916 | /*! | 924 | /*! |
917 | \internal | 925 | \internal |
918 | */ | 926 | */ |
919 | int QPEApplication::defaultRotation() | 927 | int QPEApplication::defaultRotation() |
920 | { | 928 | { |
921 | if ( deforient < 0 ) { | 929 | if ( deforient < 0 ) { |
922 | QString d = getenv( "QWS_DISPLAY" ); | 930 | QString d = getenv( "QWS_DISPLAY" ); |
923 | if ( d.contains( "Rot90" ) ) { | 931 | if ( d.contains( "Rot90" ) ) { |
924 | deforient = 90; | 932 | deforient = 90; |
925 | } | 933 | } |
926 | else if ( d.contains( "Rot180" ) ) { | 934 | else if ( d.contains( "Rot180" ) ) { |
927 | deforient = 180; | 935 | deforient = 180; |
928 | } | 936 | } |
929 | else if ( d.contains( "Rot270" ) ) { | 937 | else if ( d.contains( "Rot270" ) ) { |
930 | deforient = 270; | 938 | deforient = 270; |
931 | } | 939 | } |
932 | else { | 940 | else { |
933 | deforient = 0; | 941 | deforient = 0; |
934 | } | 942 | } |
935 | } | 943 | } |
936 | return deforient; | 944 | return deforient; |
937 | } | 945 | } |
938 | 946 | ||
939 | /*! | 947 | /*! |
940 | \internal | 948 | \internal |
941 | */ | 949 | */ |
942 | void QPEApplication::setDefaultRotation( int r ) | 950 | void QPEApplication::setDefaultRotation( int r ) |
943 | { | 951 | { |
944 | if ( qApp->type() == GuiServer ) { | 952 | if ( qApp->type() == GuiServer ) { |
945 | deforient = r; | 953 | deforient = r; |
946 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); | 954 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); |
947 | Config config("qpe"); | 955 | Config config("qpe"); |
948 | config.setGroup( "Rotation" ); | 956 | config.setGroup( "Rotation" ); |
949 | config.writeEntry( "Rot", r ); | 957 | config.writeEntry( "Rot", r ); |
950 | } | 958 | } |
951 | else { | 959 | else { |
952 | #ifndef QT_NO_COP | 960 | #ifndef QT_NO_COP |
953 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); | 961 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); |
954 | e << r; | 962 | e << r; |
955 | } | 963 | } |
956 | #endif | 964 | #endif |
957 | 965 | ||
958 | } | 966 | } |
959 | } | 967 | } |
960 | 968 | ||
961 | 969 | ||
962 | /*! | 970 | /*! |
963 | \internal | 971 | \internal |
964 | */ | 972 | */ |
965 | void QPEApplication::applyStyle() | 973 | void QPEApplication::applyStyle() |
966 | { | 974 | { |
967 | Config config( "qpe" ); | 975 | Config config( "qpe" ); |
968 | config.setGroup( "Appearance" ); | 976 | config.setGroup( "Appearance" ); |
969 | 977 | ||
970 | #if QT_VERSION > 233 | 978 | #if QT_VERSION > 233 |
971 | // don't block ourselves ... | 979 | // don't block ourselves ... |
972 | Opie::force_appearance = 0; | 980 | Opie::force_appearance = 0; |
973 | 981 | ||
974 | static QString appname = Opie::binaryName ( ); | 982 | static QString appname = Opie::binaryName ( ); |
975 | 983 | ||
976 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); | 984 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); |
977 | int nostyle = 0; | 985 | int nostyle = 0; |
978 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { | 986 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { |
979 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { | 987 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { |
980 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); | 988 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); |
981 | break; | 989 | break; |
982 | } | 990 | } |
983 | } | 991 | } |
984 | 992 | ||
985 | // Widget style | 993 | // Widget style |
986 | QString style = config.readEntry( "Style", "Light" ); | 994 | QString style = config.readEntry( "Style", "FlatStyle" ); |
987 | 995 | ||
988 | // don't set a custom style | 996 | // don't set a custom style |
989 | if ( nostyle & Opie::Force_Style ) | 997 | if ( nostyle & Opie::Force_Style ) |
990 | style = "Light"; | 998 | style = "FlatStyle"; |
991 | 999 | ||
992 | internalSetStyle ( style ); | 1000 | internalSetStyle ( style ); |
993 | 1001 | ||
994 | // Colors | 1002 | // Colors - from /etc/colors/Liquid.scheme |
995 | QColor bgcolor( config.readEntry( "Background", "#E5E1D5" ) ); | 1003 | QColor bgcolor( config.readEntry( "Background", "#E0E0E0" ) ); |
996 | QColor btncolor( config.readEntry( "Button", "#D6CDBB" ) ); | 1004 | QColor btncolor( config.readEntry( "Button", "#96c8fa" ) ); |
997 | QPalette pal( btncolor, bgcolor ); | 1005 | QPalette pal( btncolor, bgcolor ); |
998 | QString color = config.readEntry( "Highlight", "#800000" ); | 1006 | QString color = config.readEntry( "Highlight", "#73adef" ); |
999 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); | 1007 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); |
1000 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); | 1008 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); |
1001 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); | 1009 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); |
1002 | color = config.readEntry( "Text", "#000000" ); | 1010 | color = config.readEntry( "Text", "#000000" ); |
1003 | pal.setColor( QColorGroup::Text, QColor( color ) ); | 1011 | pal.setColor( QColorGroup::Text, QColor( color ) ); |
1004 | color = config.readEntry( "ButtonText", "#000000" ); | 1012 | color = config.readEntry( "ButtonText", "#000000" ); |
1005 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); | 1013 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); |
1006 | color = config.readEntry( "Base", "#FFFFFF" ); | 1014 | color = config.readEntry( "Base", "#FFFFFF" ); |
1007 | pal.setColor( QColorGroup::Base, QColor( color ) ); | 1015 | pal.setColor( QColorGroup::Base, QColor( color ) ); |
1008 | 1016 | ||
1009 | pal.setColor( QPalette::Disabled, QColorGroup::Text, | 1017 | pal.setColor( QPalette::Disabled, QColorGroup::Text, |
1010 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); | 1018 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); |
1011 | 1019 | ||
1012 | setPalette( pal, TRUE ); | 1020 | setPalette( pal, TRUE ); |
1013 | 1021 | ||
1014 | // Window Decoration | 1022 | // Window Decoration |
1015 | QString dec = config.readEntry( "Decoration", "Qtopia" ); | 1023 | QString dec = config.readEntry( "Decoration", "Flat" ); |
1016 | 1024 | ||
1017 | // don't set a custom deco | 1025 | // don't set a custom deco |
1018 | if ( nostyle & Opie::Force_Decoration ) | 1026 | if ( nostyle & Opie::Force_Decoration ) |
1019 | dec = ""; | 1027 | dec = ""; |
1020 | 1028 | ||
1021 | //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); | 1029 | //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); |
1022 | 1030 | ||
1023 | if ( dec != d->decorationName ) { | 1031 | if ( dec != d->decorationName ) { |
1024 | qwsSetDecoration( new QPEDecoration( dec ) ); | 1032 | qwsSetDecoration( new QPEDecoration( dec ) ); |
1025 | d->decorationName = dec; | 1033 | d->decorationName = dec; |
1026 | } | 1034 | } |
1027 | 1035 | ||
1028 | // Font | 1036 | // Font |
1029 | QString ff = config.readEntry( "FontFamily", font().family() ); | 1037 | QString ff = config.readEntry( "FontFamily", font().family() ); |
1030 | int fs = config.readNumEntry( "FontSize", font().pointSize() ); | 1038 | int fs = config.readNumEntry( "FontSize", font().pointSize() ); |
1031 | 1039 | ||
1032 | // don't set a custom font | 1040 | // don't set a custom font |
1033 | if ( nostyle & Opie::Force_Font ) { | 1041 | if ( nostyle & Opie::Force_Font ) { |
1034 | ff = "Vera"; | 1042 | ff = "Vera"; |
1035 | fs = 10; | 1043 | fs = 10; |
1036 | } | 1044 | } |
1037 | 1045 | ||
1038 | setFont ( QFont ( ff, fs ), true ); | 1046 | setFont ( QFont ( ff, fs ), true ); |
1039 | 1047 | ||
1040 | // revert to global blocking policy ... | 1048 | // revert to global blocking policy ... |
1041 | Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None; | 1049 | Opie::force_appearance = config. readBoolEntry ( "ForceStyle", false ) ? Opie::Force_All : Opie::Force_None; |
1042 | Opie::force_appearance &= ~nostyle; | 1050 | Opie::force_appearance &= ~nostyle; |
1043 | #endif | 1051 | #endif |
1044 | } | 1052 | } |
1045 | 1053 | ||
1046 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) | 1054 | void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data ) |
1047 | { | 1055 | { |
1048 | #ifdef Q_WS_QWS | 1056 | #ifdef Q_WS_QWS |
1049 | QDataStream stream( data, IO_ReadOnly ); | 1057 | QDataStream stream( data, IO_ReadOnly ); |
1050 | if ( msg == "applyStyle()" ) { | 1058 | if ( msg == "applyStyle()" ) { |
1051 | applyStyle(); | 1059 | applyStyle(); |
1052 | } | 1060 | } |
1053 | else if ( msg == "toggleApplicationMenu()" ) { | 1061 | else if ( msg == "toggleApplicationMenu()" ) { |
1054 | QWidget *active = activeWindow ( ); | 1062 | QWidget *active = activeWindow ( ); |
1055 | 1063 | ||
1056 | if ( active ) { | 1064 | if ( active ) { |
1057 | QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); | 1065 | QPEMenuToolFocusManager *man = QPEMenuToolFocusManager::manager ( ); |
1058 | bool oldactive = man-> isActive ( ); | 1066 | bool oldactive = man-> isActive ( ); |
1059 | 1067 | ||
1060 | man-> setActive( !man-> isActive() ); | 1068 | man-> setActive( !man-> isActive() ); |
1061 | 1069 | ||
1062 | if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu | 1070 | if ( !oldactive && !man-> isActive ( )) { // no menubar to toggle -> try O-Menu |
1063 | QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); | 1071 | QCopEnvelope e ( "QPE/TaskBar", "toggleStartMenu()" ); |
1064 | } | 1072 | } |
1065 | } | 1073 | } |
1066 | } | 1074 | } |
1067 | else if ( msg == "setDefaultRotation(int)" ) { | 1075 | else if ( msg == "setDefaultRotation(int)" ) { |
1068 | if ( type() == GuiServer ) { | 1076 | if ( type() == GuiServer ) { |
1069 | int r; | 1077 | int r; |
1070 | stream >> r; | 1078 | stream >> r; |
1071 | setDefaultRotation( r ); | 1079 | setDefaultRotation( r ); |
1072 | } | 1080 | } |
1073 | } | 1081 | } |
1074 | else if ( msg == "setCurrentRotation(int)" ) { | 1082 | else if ( msg == "setCurrentRotation(int)" ) { |
1075 | int r; | 1083 | int r; |
1076 | stream >> r; | 1084 | stream >> r; |
1077 | setCurrentRotation( r ); | 1085 | setCurrentRotation( r ); |
1078 | } | 1086 | } |
1079 | else if ( msg == "shutdown()" ) { | 1087 | else if ( msg == "shutdown()" ) { |
1080 | if ( type() == GuiServer ) | 1088 | if ( type() == GuiServer ) |
1081 | shutdown(); | 1089 | shutdown(); |
1082 | } | 1090 | } |
1083 | else if ( msg == "quit()" ) { | 1091 | else if ( msg == "quit()" ) { |
1084 | if ( type() != GuiServer ) | 1092 | if ( type() != GuiServer ) |
1085 | tryQuit(); | 1093 | tryQuit(); |
1086 | } | 1094 | } |
1087 | else if ( msg == "forceQuit()" ) { | 1095 | else if ( msg == "forceQuit()" ) { |
1088 | if ( type() != GuiServer ) | 1096 | if ( type() != GuiServer ) |
1089 | quit(); | 1097 | quit(); |
1090 | } | 1098 | } |
1091 | else if ( msg == "restart()" ) { | 1099 | else if ( msg == "restart()" ) { |
1092 | if ( type() == GuiServer ) | 1100 | if ( type() == GuiServer ) |
1093 | restart(); | 1101 | restart(); |
1094 | } | 1102 | } |
1095 | else if ( msg == "language(QString)" ) { | 1103 | else if ( msg == "language(QString)" ) { |
1096 | if ( type() == GuiServer ) { | 1104 | if ( type() == GuiServer ) { |
1097 | QString l; | 1105 | QString l; |
1098 | stream >> l; | 1106 | stream >> l; |
1099 | QString cl = getenv( "LANG" ); | 1107 | QString cl = getenv( "LANG" ); |
1100 | if ( cl != l ) { | 1108 | if ( cl != l ) { |
1101 | if ( l.isNull() ) | 1109 | if ( l.isNull() ) |
1102 | unsetenv( "LANG" ); | 1110 | unsetenv( "LANG" ); |
1103 | else | 1111 | else |
1104 | setenv( "LANG", l.latin1(), 1 ); | 1112 | setenv( "LANG", l.latin1(), 1 ); |
1105 | restart(); | 1113 | restart(); |
1106 | } | 1114 | } |
1107 | } | 1115 | } |
1108 | } | 1116 | } |
1109 | else if ( msg == "timeChange(QString)" ) { | 1117 | else if ( msg == "timeChange(QString)" ) { |
1110 | QString t; | 1118 | QString t; |
1111 | stream >> t; | 1119 | stream >> t; |
1112 | if ( t.isNull() ) | 1120 | if ( t.isNull() ) |
1113 | unsetenv( "TZ" ); | 1121 | unsetenv( "TZ" ); |
1114 | else | 1122 | else |
1115 | setenv( "TZ", t.latin1(), 1 ); | 1123 | setenv( "TZ", t.latin1(), 1 ); |
1116 | // emit the signal so everyone else knows... | 1124 | // emit the signal so everyone else knows... |
1117 | emit timeChanged(); | 1125 | emit timeChanged(); |
1118 | } | 1126 | } |
1119 | else if ( msg == "execute(QString)" ) { | 1127 | else if ( msg == "execute(QString)" ) { |
1120 | if ( type() == GuiServer ) { | 1128 | if ( type() == GuiServer ) { |
1121 | QString t; | 1129 | QString t; |
1122 | stream >> t; | 1130 | stream >> t; |
1123 | Global::execute( t ); | 1131 | Global::execute( t ); |
1124 | } | 1132 | } |
1125 | } | 1133 | } |
1126 | else if ( msg == "execute(QString,QString)" ) { | 1134 | else if ( msg == "execute(QString,QString)" ) { |
1127 | if ( type() == GuiServer ) { | 1135 | if ( type() == GuiServer ) { |
1128 | QString t, d; | 1136 | QString t, d; |
1129 | stream >> t >> d; | 1137 | stream >> t >> d; |
1130 | Global::execute( t, d ); | 1138 | Global::execute( t, d ); |
1131 | } | 1139 | } |
1132 | } | 1140 | } |
1133 | else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { | 1141 | else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { |
1134 | if ( type() == GuiServer ) { | 1142 | if ( type() == GuiServer ) { |
1135 | QDateTime when; | 1143 | QDateTime when; |
1136 | QCString channel, message; | 1144 | QCString channel, message; |
1137 | int data; | 1145 | int data; |
1138 | stream >> when >> channel >> message >> data; | 1146 | stream >> when >> channel >> message >> data; |
1139 | AlarmServer::addAlarm( when, channel, message, data ); | 1147 | AlarmServer::addAlarm( when, channel, message, data ); |
1140 | } | 1148 | } |
1141 | } | 1149 | } |
1142 | else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) { | 1150 | else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) { |
1143 | if ( type() == GuiServer ) { | 1151 | if ( type() == GuiServer ) { |
1144 | QDateTime when; | 1152 | QDateTime when; |
1145 | QCString channel, message; | 1153 | QCString channel, message; |
1146 | int data; | 1154 | int data; |
1147 | stream >> when >> channel >> message >> data; | 1155 | stream >> when >> channel >> message >> data; |
1148 | AlarmServer::deleteAlarm( when, channel, message, data ); | 1156 | AlarmServer::deleteAlarm( when, channel, message, data ); |
1149 | } | 1157 | } |
1150 | } | 1158 | } |
1151 | else if ( msg == "clockChange(bool)" ) { | 1159 | else if ( msg == "clockChange(bool)" ) { |
1152 | int tmp; | 1160 | int tmp; |
1153 | stream >> tmp; | 1161 | stream >> tmp; |
1154 | emit clockChanged( tmp ); | 1162 | emit clockChanged( tmp ); |
1155 | } | 1163 | } |
1156 | else if ( msg == "weekChange(bool)" ) { | 1164 | else if ( msg == "weekChange(bool)" ) { |
1157 | int tmp; | 1165 | int tmp; |
1158 | stream >> tmp; | 1166 | stream >> tmp; |
1159 | emit weekChanged( tmp ); | 1167 | emit weekChanged( tmp ); |
1160 | } | 1168 | } |
1161 | else if ( msg == "setDateFormat(DateFormat)" ) { | 1169 | else if ( msg == "setDateFormat(DateFormat)" ) { |
1162 | DateFormat tmp; | 1170 | DateFormat tmp; |
1163 | stream >> tmp; | 1171 | stream >> tmp; |
1164 | emit dateFormatChanged( tmp ); | 1172 | emit dateFormatChanged( tmp ); |
1165 | } | 1173 | } |
1166 | else if ( msg == "setVolume(int,int)" ) { | 1174 | else if ( msg == "setVolume(int,int)" ) { |
1167 | int t, v; | 1175 | int t, v; |
1168 | stream >> t >> v; | 1176 | stream >> t >> v; |
1169 | setVolume( t, v ); | 1177 | setVolume( t, v ); |
1170 | emit volumeChanged( muted ); | 1178 | emit volumeChanged( muted ); |
1171 | } | 1179 | } |
1172 | else if ( msg == "volumeChange(bool)" ) { | 1180 | else if ( msg == "volumeChange(bool)" ) { |
1173 | stream >> muted; | 1181 | stream >> muted; |
1174 | setVolume(); | 1182 | setVolume(); |
1175 | emit volumeChanged( muted ); | 1183 | emit volumeChanged( muted ); |
1176 | } | 1184 | } |
1177 | else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> | 1185 | else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> |
1178 | int t, v; | 1186 | int t, v; |
1179 | stream >> t >> v; | 1187 | stream >> t >> v; |
1180 | setMic( t, v ); | 1188 | setMic( t, v ); |
1181 | emit micChanged( micMuted ); | 1189 | emit micChanged( micMuted ); |
1182 | } | 1190 | } |
1183 | else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> | 1191 | else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com> |
1184 | stream >> micMuted; | 1192 | stream >> micMuted; |
1185 | setMic(); | 1193 | setMic(); |
1186 | emit micChanged( micMuted ); | 1194 | emit micChanged( micMuted ); |
1187 | } | 1195 | } |
1188 | else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1196 | else if ( msg == "setBass(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1189 | int t, v; | 1197 | int t, v; |
1190 | stream >> t >> v; | 1198 | stream >> t >> v; |
1191 | setBass( t, v ); | 1199 | setBass( t, v ); |
1192 | } | 1200 | } |
1193 | else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1201 | else if ( msg == "bassChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1194 | setBass(); | 1202 | setBass(); |
1195 | } | 1203 | } |
1196 | else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1204 | else if ( msg == "setTreble(int,int)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1197 | int t, v; | 1205 | int t, v; |
1198 | stream >> t >> v; | 1206 | stream >> t >> v; |
1199 | setTreble( t, v ); | 1207 | setTreble( t, v ); |
1200 | } | 1208 | } |
1201 | else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1209 | else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1202 | setTreble(); | 1210 | setTreble(); |
1203 | } | 1211 | } |
1204 | 1212 | ||
1205 | 1213 | ||
1206 | 1214 | ||
1207 | #endif | 1215 | #endif |
1208 | } | 1216 | } |
1209 | 1217 | ||
1210 | /*! | 1218 | /*! |
1211 | \internal | 1219 | \internal |
1212 | */ | 1220 | */ |
1213 | bool QPEApplication::raiseAppropriateWindow() | 1221 | bool QPEApplication::raiseAppropriateWindow() |
1214 | { | 1222 | { |
1215 | bool r = FALSE; | 1223 | bool r = FALSE; |
1216 | // ########## raise()ing main window should raise and set active | 1224 | // ########## raise()ing main window should raise and set active |
1217 | // ########## it and then all childen. This belongs in Qt/Embedded | 1225 | // ########## it and then all childen. This belongs in Qt/Embedded |
1218 | QWidget *top = d->qpe_main_widget; | 1226 | QWidget *top = d->qpe_main_widget; |
1219 | if ( !top ) | 1227 | if ( !top ) |
1220 | top = mainWidget(); | 1228 | top = mainWidget(); |
1221 | if ( top && d->keep_running ) { | 1229 | if ( top && d->keep_running ) { |
1222 | if ( top->isVisible() ) | 1230 | if ( top->isVisible() ) |
1223 | r = TRUE; | 1231 | r = TRUE; |
1224 | else if (d->preloaded) { | 1232 | else if (d->preloaded) { |
1225 | // We are preloaded and not visible.. pretend we just started.. | 1233 | // We are preloaded and not visible.. pretend we just started.. |
1226 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); | 1234 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); |
1227 | e << d->appName; | 1235 | e << d->appName; |
1228 | } | 1236 | } |
1229 | 1237 | ||
1230 | d->show_mx(top, d->nomaximize); | 1238 | d->show_mx(top, d->nomaximize); |
1231 | top->raise(); | 1239 | top->raise(); |
1232 | top->setActiveWindow(); | 1240 | top->setActiveWindow(); |
1233 | } | 1241 | } |
1234 | QWidget *topm = activeModalWidget(); | 1242 | QWidget *topm = activeModalWidget(); |
1235 | if ( topm && topm != top ) { | 1243 | if ( topm && topm != top ) { |
1236 | topm->show(); | 1244 | topm->show(); |
1237 | topm->raise(); | 1245 | topm->raise(); |
1238 | topm->setActiveWindow(); | 1246 | topm->setActiveWindow(); |
1239 | // If we haven't already handled the fastAppShowing message | 1247 | // If we haven't already handled the fastAppShowing message |
1240 | if (!top && d->preloaded) { | 1248 | if (!top && d->preloaded) { |
1241 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); | 1249 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); |
1242 | e << d->appName; | 1250 | e << d->appName; |
1243 | } | 1251 | } |
1244 | r = FALSE; | 1252 | r = FALSE; |
1245 | } | 1253 | } |
1246 | return r; | 1254 | return r; |
1247 | } | 1255 | } |
1248 | 1256 | ||
1249 | void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data) | 1257 | void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data) |
1250 | { | 1258 | { |
1251 | #ifdef Q_WS_QWS | 1259 | #ifdef Q_WS_QWS |
1252 | 1260 | ||
1253 | if ( msg == "quit()" ) { | 1261 | if ( msg == "quit()" ) { |
1254 | tryQuit(); | 1262 | tryQuit(); |
1255 | } | 1263 | } |
1256 | else if ( msg == "quitIfInvisible()" ) { | 1264 | else if ( msg == "quitIfInvisible()" ) { |
1257 | if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() ) | 1265 | if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() ) |
1258 | quit(); | 1266 | quit(); |
1259 | } | 1267 | } |
1260 | else if ( msg == "close()" ) { | 1268 | else if ( msg == "close()" ) { |
1261 | hideOrQuit(); | 1269 | hideOrQuit(); |
1262 | } | 1270 | } |
1263 | else if ( msg == "disablePreload()" ) { | 1271 | else if ( msg == "disablePreload()" ) { |
1264 | d->preloaded = FALSE; | 1272 | d->preloaded = FALSE; |
1265 | d->keep_running = TRUE; | 1273 | d->keep_running = TRUE; |
1266 | /* so that quit will quit */ | 1274 | /* so that quit will quit */ |
1267 | } | 1275 | } |
1268 | else if ( msg == "enablePreload()" ) { | 1276 | else if ( msg == "enablePreload()" ) { |
1269 | if (d->qpe_main_widget) | 1277 | if (d->qpe_main_widget) |
1270 | d->preloaded = TRUE; | 1278 | d->preloaded = TRUE; |
1271 | d->keep_running = TRUE; | 1279 | d->keep_running = TRUE; |
1272 | /* so next quit won't quit */ | 1280 | /* so next quit won't quit */ |
1273 | } | 1281 | } |
1274 | else if ( msg == "raise()" ) { | 1282 | else if ( msg == "raise()" ) { |
1275 | d->keep_running = TRUE; | 1283 | d->keep_running = TRUE; |
1276 | d->notbusysent = FALSE; | 1284 | d->notbusysent = FALSE; |
1277 | raiseAppropriateWindow(); | 1285 | raiseAppropriateWindow(); |
1278 | // Tell the system we're still chugging along... | 1286 | // Tell the system we're still chugging along... |
1279 | QCopEnvelope e("QPE/System", "appRaised(QString)"); | 1287 | QCopEnvelope e("QPE/System", "appRaised(QString)"); |
1280 | e << d->appName; | 1288 | e << d->appName; |
1281 | } | 1289 | } |
1282 | else if ( msg == "flush()" ) { | 1290 | else if ( msg == "flush()" ) { |
1283 | emit flush(); | 1291 | emit flush(); |
1284 | // we need to tell the desktop | 1292 | // we need to tell the desktop |
1285 | QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" ); | 1293 | QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" ); |
1286 | e << d->appName; | 1294 | e << d->appName; |
1287 | } | 1295 | } |
1288 | else if ( msg == "reload()" ) { | 1296 | else if ( msg == "reload()" ) { |
1289 | emit reload(); | 1297 | emit reload(); |
1290 | } | 1298 | } |
1291 | else if ( msg == "setDocument(QString)" ) { | 1299 | else if ( msg == "setDocument(QString)" ) { |
1292 | d->keep_running = TRUE; | 1300 | d->keep_running = TRUE; |
1293 | QDataStream stream( data, IO_ReadOnly ); | 1301 | QDataStream stream( data, IO_ReadOnly ); |
1294 | QString doc; | 1302 | QString doc; |
1295 | stream >> doc; | 1303 | stream >> doc; |
1296 | QWidget *mw = mainWidget(); | 1304 | QWidget *mw = mainWidget(); |
1297 | if ( !mw ) | 1305 | if ( !mw ) |
1298 | mw = d->qpe_main_widget; | 1306 | mw = d->qpe_main_widget; |
1299 | if ( mw ) | 1307 | if ( mw ) |
1300 | Global::setDocument( mw, doc ); | 1308 | Global::setDocument( mw, doc ); |
1309 | } else { | ||
1310 | bool p = d->keep_running; | ||
1311 | d->keep_running = FALSE; | ||
1312 | emit appMessage( msg, data); | ||
1313 | if ( d->keep_running ) { | ||
1314 | d->notbusysent = FALSE; | ||
1315 | raiseAppropriateWindow(); | ||
1316 | if ( !p ) { | ||
1317 | // Tell the system we're still chugging along... | ||
1318 | #ifndef QT_NO_COP | ||
1319 | QCopEnvelope e("QPE/System", "appRaised(QString)"); | ||
1320 | e << d->appName; | ||
1321 | #endif | ||
1322 | } | ||
1323 | } | ||
1324 | if ( p ) | ||
1325 | d->keep_running = p; | ||
1301 | } | 1326 | } |
1302 | else if ( msg == "nextView()" ) { | ||
1303 | qDebug("got nextView()"); | ||
1304 | /* | ||
1305 | if ( raiseAppropriateWindow() ) | ||
1306 | */ | ||
1307 | emit appMessage( msg, data); | ||
1308 | } | ||
1309 | else { | ||
1310 | emit appMessage( msg, data); | ||
1311 | } | ||
1312 | |||
1313 | #endif | 1327 | #endif |
1314 | } | 1328 | } |
1315 | 1329 | ||
1316 | 1330 | ||
1317 | /*! | 1331 | /*! |
1318 | Sets widget \a mw as the mainWidget() and shows it. For small windows, | 1332 | Sets widget \a mw as the mainWidget() and shows it. For small windows, |
1319 | consider passing TRUE for \a nomaximize rather than the default FALSE. | 1333 | consider passing TRUE for \a nomaximize rather than the default FALSE. |
1320 | 1334 | ||
1321 | \sa showMainDocumentWidget() | 1335 | \sa showMainDocumentWidget() |
1322 | */ | 1336 | */ |
1323 | void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize ) | 1337 | void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize ) |
1324 | { | 1338 | { |
1325 | d->show(mw, nomaximize ); | 1339 | d->show(mw, nomaximize ); |
1326 | } | 1340 | } |
1327 | 1341 | ||
1328 | /*! | 1342 | /*! |
1329 | Sets widget \a mw as the mainWidget() and shows it. For small windows, | 1343 | Sets widget \a mw as the mainWidget() and shows it. For small windows, |
1330 | consider passing TRUE for \a nomaximize rather than the default FALSE. | 1344 | consider passing TRUE for \a nomaximize rather than the default FALSE. |
1331 | 1345 | ||
1332 | This calls designates the application as | 1346 | This calls designates the application as |
1333 | a \link docwidget.html document-oriented\endlink application. | 1347 | a \link docwidget.html document-oriented\endlink application. |
1334 | 1348 | ||
1335 | The \a mw widget \e must have this slot: setDocument(const QString&). | 1349 | The \a mw widget \e must have this slot: setDocument(const QString&). |
1336 | 1350 | ||
1337 | \sa showMainWidget() | 1351 | \sa showMainWidget() |
1338 | */ | 1352 | */ |
1339 | void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize ) | 1353 | void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize ) |
1340 | { | 1354 | { |
1341 | if ( mw && argc() == 2 ) | 1355 | if ( mw && argc() == 2 ) |
1342 | Global::setDocument( mw, QString::fromUtf8(argv()[1]) ); | 1356 | Global::setDocument( mw, QString::fromUtf8(argv()[1]) ); |
1343 | 1357 | ||
1344 | 1358 | ||
1345 | d->show(mw, nomaximize ); | 1359 | d->show(mw, nomaximize ); |
1346 | } | 1360 | } |
1347 | 1361 | ||
1348 | 1362 | ||
1349 | /*! | 1363 | /*! |
1350 | If an application is started via a \link qcop.html QCop\endlink | 1364 | If an application is started via a \link qcop.html QCop\endlink |
1351 | message, the application will process the \link qcop.html | 1365 | message, the application will process the \link qcop.html |
1352 | QCop\endlink message and then quit. If the application calls this | 1366 | QCop\endlink message and then quit. If the application calls this |
1353 | function while processing a \link qcop.html QCop\endlink message, | 1367 | function while processing a \link qcop.html QCop\endlink message, |
1354 | after processing its outstanding \link qcop.html QCop\endlink | 1368 | after processing its outstanding \link qcop.html QCop\endlink |
1355 | messages the application will start 'properly' and show itself. | 1369 | messages the application will start 'properly' and show itself. |
1356 | 1370 | ||
1357 | \sa keepRunning() | 1371 | \sa keepRunning() |
1358 | */ | 1372 | */ |
1359 | void QPEApplication::setKeepRunning() | 1373 | void QPEApplication::setKeepRunning() |
1360 | { | 1374 | { |
1361 | if ( qApp && qApp->inherits( "QPEApplication" ) ) { | 1375 | if ( qApp && qApp->inherits( "QPEApplication" ) ) { |
1362 | QPEApplication * qpeApp = ( QPEApplication* ) qApp; | 1376 | QPEApplication * qpeApp = ( QPEApplication* ) qApp; |
1363 | qpeApp->d->keep_running = TRUE; | 1377 | qpeApp->d->keep_running = TRUE; |
1364 | } | 1378 | } |
1365 | } | 1379 | } |
1366 | 1380 | ||
1367 | /*! | 1381 | /*! |
1368 | Returns TRUE if the application will quit after processing the | 1382 | Returns TRUE if the application will quit after processing the |
1369 | current list of qcop messages; otherwise returns FALSE. | 1383 | current list of qcop messages; otherwise returns FALSE. |
1370 | 1384 | ||
1371 | \sa setKeepRunning() | 1385 | \sa setKeepRunning() |
1372 | */ | 1386 | */ |
1373 | bool QPEApplication::keepRunning() const | 1387 | bool QPEApplication::keepRunning() const |
1374 | { | 1388 | { |
1375 | return d->keep_running; | 1389 | return d->keep_running; |
1376 | } | 1390 | } |
1377 | 1391 | ||
1378 | /*! | 1392 | /*! |
1379 | \internal | 1393 | \internal |
1380 | */ | 1394 | */ |
1381 | void QPEApplication::internalSetStyle( const QString &style ) | 1395 | void QPEApplication::internalSetStyle( const QString &style ) |
1382 | { | 1396 | { |
1383 | #if QT_VERSION >= 300 | 1397 | #if QT_VERSION >= 300 |
1384 | if ( style == "QPE" ) { | 1398 | if ( style == "QPE" ) { |
1385 | setStyle( new QPEStyle ); | 1399 | setStyle( new QPEStyle ); |
1386 | } | 1400 | } |
1387 | else { | 1401 | else { |
1388 | QStyle *s = QStyleFactory::create( style ); | 1402 | QStyle *s = QStyleFactory::create( style ); |
1389 | if ( s ) | 1403 | if ( s ) |
1390 | setStyle( s ); | 1404 | setStyle( s ); |
1391 | } | 1405 | } |
1392 | #else | 1406 | #else |
1393 | if ( style == "Windows" ) { | 1407 | if ( style == "Windows" ) { |
1394 | setStyle( new QWindowsStyle ); | 1408 | setStyle( new QWindowsStyle ); |
1395 | } | 1409 | } |
1396 | else if ( style == "QPE" ) { | 1410 | else if ( style == "QPE" ) { |
1397 | setStyle( new QPEStyle ); | 1411 | setStyle( new QPEStyle ); |
1398 | } | 1412 | } |
1399 | else if ( style == "Light" ) { | 1413 | else if ( style == "Light" ) { |
1400 | setStyle( new LightStyle ); | 1414 | setStyle( new LightStyle ); |
1401 | } | 1415 | } |
1402 | #ifndef QT_NO_STYLE_PLATINUM | 1416 | #ifndef QT_NO_STYLE_PLATINUM |
1403 | else if ( style == "Platinum" ) { | 1417 | else if ( style == "Platinum" ) { |
1404 | setStyle( new QPlatinumStyle ); | 1418 | setStyle( new QPlatinumStyle ); |
1405 | } | 1419 | } |
1406 | #endif | 1420 | #endif |
1407 | #ifndef QT_NO_STYLE_MOTIF | 1421 | #ifndef QT_NO_STYLE_MOTIF |
1408 | else if ( style == "Motif" ) { | 1422 | else if ( style == "Motif" ) { |
1409 | setStyle( new QMotifStyle ); | 1423 | setStyle( new QMotifStyle ); |
1410 | } | 1424 | } |
1411 | #endif | 1425 | #endif |
1412 | #ifndef QT_NO_STYLE_MOTIFPLUS | 1426 | #ifndef QT_NO_STYLE_MOTIFPLUS |
1413 | else if ( style == "MotifPlus" ) { | 1427 | else if ( style == "MotifPlus" ) { |
1414 | setStyle( new QMotifPlusStyle ); | 1428 | setStyle( new QMotifPlusStyle ); |
1415 | } | 1429 | } |
1416 | #endif | 1430 | #endif |
1417 | 1431 | ||
1418 | else { | 1432 | else { |
1419 | QStyle *sty = 0; | 1433 | QStyle *sty = 0; |
1420 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; | 1434 | QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; |
1421 | 1435 | ||
1422 | if ( style. find ( ".so" ) > 0 ) | 1436 | if ( style. find ( ".so" ) > 0 ) |
1423 | path += style; | 1437 | path += style; |
1424 | else | 1438 | else |
1425 | path = path + "lib" + style. lower ( ) + ".so"; // compatibility | 1439 | path = path + "lib" + style. lower ( ) + ".so"; // compatibility |
1426 | 1440 | ||
1427 | static QLibrary *lastlib = 0; | 1441 | static QLibrary *lastlib = 0; |
1428 | static StyleInterface *lastiface = 0; | 1442 | static StyleInterface *lastiface = 0; |
1429 | 1443 | ||
1430 | QLibrary *lib = new QLibrary ( path ); | 1444 | QLibrary *lib = new QLibrary ( path ); |
1431 | StyleInterface *iface = 0; | 1445 | StyleInterface *iface = 0; |
1432 | 1446 | ||
1433 | if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) | 1447 | if (( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK ) && iface ) |
1434 | sty = iface-> style ( ); | 1448 | sty = iface-> style ( ); |
1435 | 1449 | ||
1436 | if ( sty ) { | 1450 | if ( sty ) { |
1437 | setStyle ( sty ); | 1451 | setStyle ( sty ); |
1438 | 1452 | ||
1439 | if ( lastiface ) | 1453 | if ( lastiface ) |
1440 | lastiface-> release ( ); | 1454 | lastiface-> release ( ); |
1441 | lastiface = iface; | 1455 | lastiface = iface; |
1442 | 1456 | ||
1443 | if ( lastlib ) { | 1457 | if ( lastlib ) { |
1444 | lastlib-> unload ( ); | 1458 | lastlib-> unload ( ); |
1445 | delete lastlib; | 1459 | delete lastlib; |
1446 | } | 1460 | } |
1447 | lastlib = lib; | 1461 | lastlib = lib; |
1448 | } | 1462 | } |
1449 | else { | 1463 | else { |
1450 | if ( iface ) | 1464 | if ( iface ) |
1451 | iface-> release ( ); | 1465 | iface-> release ( ); |
1452 | delete lib; | 1466 | delete lib; |
1453 | 1467 | ||
1454 | setStyle ( new LightStyle ( )); | 1468 | setStyle ( new LightStyle ( )); |
1455 | } | 1469 | } |
1456 | } | 1470 | } |
1457 | #endif | 1471 | #endif |
1458 | } | 1472 | } |
1459 | 1473 | ||
1460 | /*! | 1474 | /*! |
1461 | \internal | 1475 | \internal |
1462 | */ | 1476 | */ |
1463 | void QPEApplication::prepareForTermination( bool willrestart ) | 1477 | void QPEApplication::prepareForTermination( bool willrestart ) |
1464 | { | 1478 | { |
1465 | if ( willrestart ) { | 1479 | if ( willrestart ) { |
1466 | // Draw a big wait icon, the image can be altered in later revisions | 1480 | // Draw a big wait icon, the image can be altered in later revisions |
1467 | // QWidget *d = QApplication::desktop(); | 1481 | // QWidget *d = QApplication::desktop(); |
1468 | QImage img = Resource::loadImage( "launcher/new_wait" ); | 1482 | QImage img = Resource::loadImage( "launcher/new_wait" ); |
1469 | QPixmap pix; | 1483 | QPixmap pix; |
1470 | pix.convertFromImage( img.smoothScale( 1 * img.width(), 1 * img.height() ) ); | 1484 | pix.convertFromImage( img.smoothScale( 1 * img.width(), 1 * img.height() ) ); |
1471 | QLabel *lblWait = new QLabel( 0, "wait hack!", QWidget::WStyle_Customize | | 1485 | QLabel *lblWait = new QLabel( 0, "wait hack!", QWidget::WStyle_Customize | |
1472 | QWidget::WStyle_NoBorder | QWidget::WStyle_Tool ); | 1486 | QWidget::WStyle_NoBorder | QWidget::WStyle_Tool ); |
1473 | lblWait->setPixmap( pix ); | 1487 | lblWait->setPixmap( pix ); |
1474 | lblWait->setAlignment( QWidget::AlignCenter ); | 1488 | lblWait->setAlignment( QWidget::AlignCenter ); |
1475 | lblWait->show(); | 1489 | lblWait->show(); |
1476 | lblWait->showMaximized(); | 1490 | lblWait->showMaximized(); |
1477 | } | 1491 | } |
1478 | #ifndef SINGLE_APP | 1492 | #ifndef SINGLE_APP |
1479 | { QCopEnvelope envelope( "QPE/System", "forceQuit()" ); | 1493 | { QCopEnvelope envelope( "QPE/System", "forceQuit()" ); |
1480 | } | 1494 | } |
1481 | processEvents(); // ensure the message goes out. | 1495 | processEvents(); // ensure the message goes out. |
1482 | sleep( 1 ); // You have 1 second to comply. | 1496 | sleep( 1 ); // You have 1 second to comply. |
1483 | #endif | 1497 | #endif |
1484 | } | 1498 | } |
1485 | 1499 | ||
1486 | /*! | 1500 | /*! |
1487 | \internal | 1501 | \internal |
1488 | */ | 1502 | */ |
1489 | void QPEApplication::shutdown() | 1503 | void QPEApplication::shutdown() |
1490 | { | 1504 | { |
1491 | // Implement in server's QPEApplication subclass | 1505 | // Implement in server's QPEApplication subclass |
1492 | } | 1506 | } |
1493 | 1507 | ||
1494 | /*! | 1508 | /*! |
1495 | \internal | 1509 | \internal |
1496 | */ | 1510 | */ |
1497 | void QPEApplication::restart() | 1511 | void QPEApplication::restart() |
1498 | { | 1512 | { |
1499 | // Implement in server's QPEApplication subclass | 1513 | // Implement in server's QPEApplication subclass |
1500 | } | 1514 | } |
1501 | 1515 | ||
1502 | static QPtrDict<void>* stylusDict = 0; | 1516 | static QPtrDict<void>* stylusDict = 0; |
1503 | static void createDict() | 1517 | static void createDict() |
1504 | { | 1518 | { |
1505 | if ( !stylusDict ) | 1519 | if ( !stylusDict ) |
1506 | stylusDict = new QPtrDict<void>; | 1520 | stylusDict = new QPtrDict<void>; |
1507 | } | 1521 | } |
1508 | 1522 | ||
1509 | /*! | 1523 | /*! |
1510 | Returns the current StylusMode for widget \a w. | 1524 | Returns the current StylusMode for widget \a w. |
1511 | 1525 | ||
1512 | \sa setStylusOperation() StylusMode | 1526 | \sa setStylusOperation() StylusMode |
1513 | */ | 1527 | */ |
1514 | QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w ) | 1528 | QPEApplication::StylusMode QPEApplication::stylusOperation( QWidget* w ) |
1515 | { | 1529 | { |
1516 | if ( stylusDict ) | 1530 | if ( stylusDict ) |
1517 | return ( StylusMode ) ( int ) stylusDict->find( w ); | 1531 | return ( StylusMode ) ( int ) stylusDict->find( w ); |
1518 | return LeftOnly; | 1532 | return LeftOnly; |
1519 | } | 1533 | } |
1520 | 1534 | ||
1521 | /*! | 1535 | /*! |
1522 | \enum QPEApplication::StylusMode | 1536 | \enum QPEApplication::StylusMode |
1523 | 1537 | ||
1524 | \value LeftOnly the stylus only generates LeftButton | 1538 | \value LeftOnly the stylus only generates LeftButton |
1525 | events (the default). | 1539 | events (the default). |
1526 | \value RightOnHold the stylus generates RightButton events | 1540 | \value RightOnHold the stylus generates RightButton events |
1527 | if the user uses the press-and-hold gesture. | 1541 | if the user uses the press-and-hold gesture. |
1528 | 1542 | ||
1529 | \sa setStylusOperation() stylusOperation() | 1543 | \sa setStylusOperation() stylusOperation() |
1530 | */ | 1544 | */ |
1531 | 1545 | ||
1532 | /*! | 1546 | /*! |
1533 | Causes widget \a w to receive mouse events according to the stylus | 1547 | Causes widget \a w to receive mouse events according to the stylus |
1534 | \a mode. | 1548 | \a mode. |
1535 | 1549 | ||
1536 | \sa stylusOperation() StylusMode | 1550 | \sa stylusOperation() StylusMode |
1537 | */ | 1551 | */ |
1538 | void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode ) | 1552 | void QPEApplication::setStylusOperation( QWidget * w, StylusMode mode ) |
1539 | { | 1553 | { |
1540 | createDict(); | 1554 | createDict(); |
1541 | if ( mode == LeftOnly ) { | 1555 | if ( mode == LeftOnly ) { |
1542 | stylusDict->remove | 1556 | stylusDict->remove |
1543 | ( w ); | 1557 | ( w ); |
1544 | w->removeEventFilter( qApp ); | 1558 | w->removeEventFilter( qApp ); |
1545 | } | 1559 | } |
1546 | else { | 1560 | else { |
1547 | stylusDict->insert( w, ( void* ) mode ); | 1561 | stylusDict->insert( w, ( void* ) mode ); |
1548 | connect( w, SIGNAL( destroyed() ), qApp, SLOT( removeSenderFromStylusDict() ) ); | 1562 | connect( w, SIGNAL( destroyed() ), qApp, SLOT( removeSenderFromStylusDict() ) ); |
1549 | w->installEventFilter( qApp ); | 1563 | w->installEventFilter( qApp ); |
1550 | } | 1564 | } |
1551 | } | 1565 | } |
1552 | 1566 | ||
1553 | 1567 | ||
1554 | /*! | 1568 | /*! |
1555 | \reimp | 1569 | \reimp |
1556 | */ | 1570 | */ |
1557 | bool QPEApplication::eventFilter( QObject *o, QEvent *e ) | 1571 | bool QPEApplication::eventFilter( QObject *o, QEvent *e ) |
1558 | { | 1572 | { |
1559 | if ( stylusDict && e->type() >= QEvent::MouseButtonPress && e->type() <= QEvent::MouseMove ) { | 1573 | if ( stylusDict && e->type() >= QEvent::MouseButtonPress && e->type() <= QEvent::MouseMove ) { |
1560 | QMouseEvent * me = ( QMouseEvent* ) e; | 1574 | QMouseEvent * me = ( QMouseEvent* ) e; |
1561 | StylusMode mode = (StylusMode)(int)stylusDict->find(o); | 1575 | StylusMode mode = (StylusMode)(int)stylusDict->find(o); |
1562 | switch (mode) { | 1576 | switch (mode) { |
1563 | case RightOnHold: | 1577 | case RightOnHold: |
1564 | switch ( me->type() ) { | 1578 | switch ( me->type() ) { |
1565 | case QEvent::MouseButtonPress: | 1579 | case QEvent::MouseButtonPress: |
1566 | if ( me->button() == LeftButton ) { | 1580 | if ( me->button() == LeftButton ) { |
1567 | d->presstimer = startTimer(500); // #### pref. | 1581 | d->presstimer = startTimer(500); // #### pref. |
1568 | d->presswidget = (QWidget*)o; | 1582 | d->presswidget = (QWidget*)o; |
1569 | d->presspos = me->pos(); | 1583 | d->presspos = me->pos(); |
1570 | d->rightpressed = FALSE; | 1584 | d->rightpressed = FALSE; |
1571 | } | 1585 | } |
1572 | break; | 1586 | break; |
1573 | case QEvent::MouseMove: | 1587 | case QEvent::MouseMove: |
1574 | if (d->presstimer && (me->pos() - d->presspos).manhattanLength() > 8) { | 1588 | if (d->presstimer && (me->pos() - d->presspos).manhattanLength() > 8) { |
1575 | killTimer(d->presstimer); | 1589 | killTimer(d->presstimer); |
1576 | d->presstimer = 0; | 1590 | d->presstimer = 0; |
1577 | } | 1591 | } |
1578 | break; | 1592 | break; |
1579 | case QEvent::MouseButtonRelease: | 1593 | case QEvent::MouseButtonRelease: |
1580 | if ( me->button() == LeftButton ) { | 1594 | if ( me->button() == LeftButton ) { |
1581 | if ( d->presstimer ) { | 1595 | if ( d->presstimer ) { |
1582 | killTimer(d->presstimer); | 1596 | killTimer(d->presstimer); |
1583 | d->presstimer = 0; | 1597 | d->presstimer = 0; |
1584 | } | 1598 | } |
1585 | if ( d->rightpressed && d->presswidget ) { | 1599 | if ( d->rightpressed && d->presswidget ) { |
1586 | // Right released | 1600 | // Right released |
1587 | postEvent( d->presswidget, | 1601 | postEvent( d->presswidget, |
1588 | new QMouseEvent( QEvent::MouseButtonRelease, me->pos(), | 1602 | new QMouseEvent( QEvent::MouseButtonRelease, me->pos(), |
1589 | RightButton, LeftButton + RightButton ) ); | 1603 | RightButton, LeftButton + RightButton ) ); |
1590 | // Left released, off-widget | 1604 | // Left released, off-widget |
1591 | postEvent( d->presswidget, | 1605 | postEvent( d->presswidget, |
1592 | new QMouseEvent( QEvent::MouseMove, QPoint( -1, -1), | 1606 | new QMouseEvent( QEvent::MouseMove, QPoint( -1, -1), |
1593 | LeftButton, LeftButton ) ); | 1607 | LeftButton, LeftButton ) ); |
1594 | postEvent( d->presswidget, | 1608 | postEvent( d->presswidget, |
1595 | new QMouseEvent( QEvent::MouseButtonRelease, QPoint( -1, -1), | 1609 | new QMouseEvent( QEvent::MouseButtonRelease, QPoint( -1, -1), |
1596 | LeftButton, LeftButton ) ); | 1610 | LeftButton, LeftButton ) ); |
1597 | d->rightpressed = FALSE; | 1611 | d->rightpressed = FALSE; |
1598 | return TRUE; // don't send the real Left release | 1612 | return TRUE; // don't send the real Left release |
1599 | } | 1613 | } |
1600 | } | 1614 | } |
1601 | break; | 1615 | break; |
1602 | default: | 1616 | default: |
1603 | break; | 1617 | break; |
1604 | } | 1618 | } |
1605 | break; | 1619 | break; |
1606 | default: | 1620 | default: |
1607 | ; | 1621 | ; |
1608 | } | 1622 | } |
1609 | } | 1623 | } |
1610 | else if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { | 1624 | else if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) { |
1611 | QKeyEvent *ke = (QKeyEvent *)e; | 1625 | QKeyEvent *ke = (QKeyEvent *)e; |
1612 | if ( ke->key() == Key_Enter ) { | 1626 | if ( ke->key() == Key_Enter ) { |
1613 | if ( o->isA( "QRadioButton" ) || o->isA( "QCheckBox" ) ) { | 1627 | if ( o->isA( "QRadioButton" ) || o->isA( "QCheckBox" ) ) { |
1614 | postEvent( o, new QKeyEvent( e->type(), Key_Space, ' ', | 1628 | postEvent( o, new QKeyEvent( e->type(), Key_Space, ' ', |
1615 | ke->state(), " ", ke->isAutoRepeat(), ke->count() ) ); | 1629 | ke->state(), " ", ke->isAutoRepeat(), ke->count() ) ); |
1616 | return TRUE; | 1630 | return TRUE; |
1617 | } | 1631 | } |
1618 | } | 1632 | } |
1619 | } | 1633 | } |
1620 | return FALSE; | 1634 | return FALSE; |
1621 | } | 1635 | } |
1622 | 1636 | ||
1623 | /*! | 1637 | /*! |
1624 | \reimp | 1638 | \reimp |
1625 | */ | 1639 | */ |
1626 | void QPEApplication::timerEvent( QTimerEvent *e ) | 1640 | void QPEApplication::timerEvent( QTimerEvent *e ) |
1627 | { | 1641 | { |
1628 | if ( e->timerId() == d->presstimer && d->presswidget ) { | 1642 | if ( e->timerId() == d->presstimer && d->presswidget ) { |
1629 | // Right pressed | 1643 | // Right pressed |
1630 | postEvent( d->presswidget, | 1644 | postEvent( d->presswidget, |
1631 | new QMouseEvent( QEvent::MouseButtonPress, d->presspos, | 1645 | new QMouseEvent( QEvent::MouseButtonPress, d->presspos, |
1632 | RightButton, LeftButton ) ); | 1646 | RightButton, LeftButton ) ); |
1633 | killTimer( d->presstimer ); | 1647 | killTimer( d->presstimer ); |
1634 | d->presstimer = 0; | 1648 | d->presstimer = 0; |
1635 | d->rightpressed = TRUE; | 1649 | d->rightpressed = TRUE; |
1636 | } | 1650 | } |
1637 | } | 1651 | } |
1638 | 1652 | ||
1639 | void QPEApplication::removeSenderFromStylusDict() | 1653 | void QPEApplication::removeSenderFromStylusDict() |
1640 | { | 1654 | { |
1641 | stylusDict->remove | 1655 | stylusDict->remove |
1642 | ( ( void* ) sender() ); | 1656 | ( ( void* ) sender() ); |
1643 | if ( d->presswidget == sender() ) | 1657 | if ( d->presswidget == sender() ) |
1644 | d->presswidget = 0; | 1658 | d->presswidget = 0; |
1645 | } | 1659 | } |
1646 | 1660 | ||
1647 | /*! | 1661 | /*! |
1648 | \internal | 1662 | \internal |
1649 | */ | 1663 | */ |
1650 | bool QPEApplication::keyboardGrabbed() const | 1664 | bool QPEApplication::keyboardGrabbed() const |
1651 | { | 1665 | { |
1652 | return d->kbgrabbed; | 1666 | return d->kbgrabbed; |
1653 | } | 1667 | } |
1654 | 1668 | ||
1655 | 1669 | ||
1656 | /*! | 1670 | /*! |
1657 | Reverses the effect of grabKeyboard(). This is called automatically | 1671 | Reverses the effect of grabKeyboard(). This is called automatically |
1658 | on program exit. | 1672 | on program exit. |
1659 | */ | 1673 | */ |
1660 | void QPEApplication::ungrabKeyboard() | 1674 | void QPEApplication::ungrabKeyboard() |
1661 | { | 1675 | { |
1662 | ((QPEApplication *) qApp )-> d-> kbgrabbed = false; | 1676 | ((QPEApplication *) qApp )-> d-> kbgrabbed = false; |
1663 | } | 1677 | } |
1664 | 1678 | ||
1665 | /*! | 1679 | /*! |
1666 | Grabs the physical keyboard keys, e.g. the application's launching | 1680 | Grabs the physical keyboard keys, e.g. the application's launching |
1667 | keys. Instead of launching applications when these keys are pressed | 1681 | keys. Instead of launching applications when these keys are pressed |
1668 | the signals emitted are sent to this application instead. Some games | 1682 | the signals emitted are sent to this application instead. Some games |
1669 | programs take over the launch keys in this way to make interaction | 1683 | programs take over the launch keys in this way to make interaction |
1670 | easier. | 1684 | easier. |
1671 | 1685 | ||
1672 | \sa ungrabKeyboard() | 1686 | \sa ungrabKeyboard() |
1673 | */ | 1687 | */ |
1674 | void QPEApplication::grabKeyboard() | 1688 | void QPEApplication::grabKeyboard() |
1675 | { | 1689 | { |
1676 | ((QPEApplication *) qApp )-> d-> kbgrabbed = true; | 1690 | ((QPEApplication *) qApp )-> d-> kbgrabbed = true; |
1677 | } | 1691 | } |
1678 | 1692 | ||
1679 | /*! | 1693 | /*! |
1680 | \reimp | 1694 | \reimp |
1681 | */ | 1695 | */ |
1682 | int QPEApplication::exec() | 1696 | int QPEApplication::exec() |
1683 | { | 1697 | { |
1684 | #ifndef QT_NO_COP | 1698 | #ifndef QT_NO_COP |
1685 | d->sendQCopQ(); | 1699 | d->sendQCopQ(); |
1686 | #endif | 1700 | #endif |
1687 | 1701 | ||
1688 | if ( d->keep_running ) | 1702 | if ( d->keep_running ) |
1689 | //|| d->qpe_main_widget && d->qpe_main_widget->isVisible() ) | 1703 | //|| d->qpe_main_widget && d->qpe_main_widget->isVisible() ) |
1690 | return QApplication::exec(); | 1704 | return QApplication::exec(); |
1691 | 1705 | ||
1692 | #ifndef QT_NO_COP | 1706 | #ifndef QT_NO_COP |
1693 | 1707 | ||
1694 | { | 1708 | { |
1695 | QCopEnvelope e( "QPE/System", "closing(QString)" ); | 1709 | QCopEnvelope e( "QPE/System", "closing(QString)" ); |
1696 | e << d->appName; | 1710 | e << d->appName; |
1697 | } | 1711 | } |
1698 | #endif | 1712 | #endif |
1699 | processEvents(); | 1713 | processEvents(); |
1700 | return 0; | 1714 | return 0; |
1701 | } | 1715 | } |
1702 | 1716 | ||
1703 | /*! | 1717 | /*! |
1704 | \internal | 1718 | \internal |
1705 | External request for application to quit. Quits if possible without | 1719 | External request for application to quit. Quits if possible without |
1706 | loosing state. | 1720 | loosing state. |
1707 | */ | 1721 | */ |
1708 | void QPEApplication::tryQuit() | 1722 | void QPEApplication::tryQuit() |
1709 | { | 1723 | { |
1710 | if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 ) | 1724 | if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 ) |
1711 | return ; // Inside modal loop or konsole. Too hard to save state. | 1725 | return ; // Inside modal loop or konsole. Too hard to save state. |
1712 | #ifndef QT_NO_COP | 1726 | #ifndef QT_NO_COP |
1713 | 1727 | ||
1714 | { | 1728 | { |
1715 | QCopEnvelope e( "QPE/System", "closing(QString)" ); | 1729 | QCopEnvelope e( "QPE/System", "closing(QString)" ); |
1716 | e << d->appName; | 1730 | e << d->appName; |
1717 | } | 1731 | } |
1718 | #endif | 1732 | #endif |
1719 | processEvents(); | 1733 | processEvents(); |
1720 | 1734 | ||
1721 | quit(); | 1735 | quit(); |
1722 | } | 1736 | } |
1723 | 1737 | ||
1724 | /*! | 1738 | /*! |
1725 | \internal | 1739 | \internal |
1726 | */ | 1740 | */ |
1727 | void QPEApplication::installTranslation( const QString& baseName ) { | 1741 | void QPEApplication::installTranslation( const QString& baseName ) { |
1728 | QTranslator* trans = new QTranslator(this); | 1742 | QTranslator* trans = new QTranslator(this); |
1729 | QString tfn = qpeDir() + "/i18n/"+baseName; | 1743 | QString tfn = qpeDir() + "/i18n/"+baseName; |
1730 | if ( trans->load( tfn ) ) | 1744 | if ( trans->load( tfn ) ) |
1731 | installTranslator( trans ); | 1745 | installTranslator( trans ); |
1732 | else | 1746 | else |
1733 | delete trans; | 1747 | delete trans; |
1734 | } | 1748 | } |
1735 | 1749 | ||
1736 | /*! | 1750 | /*! |
1737 | \internal | 1751 | \internal |
1738 | User initiated quit. Makes the window 'Go Away'. If preloaded this means | 1752 | User initiated quit. Makes the window 'Go Away'. If preloaded this means |
1739 | hiding the window. If not it means quitting the application. | 1753 | hiding the window. If not it means quitting the application. |
1740 | As this is user initiated we don't need to check state. | 1754 | As this is user initiated we don't need to check state. |
1741 | */ | 1755 | */ |
1742 | void QPEApplication::hideOrQuit() | 1756 | void QPEApplication::hideOrQuit() |
1743 | { | 1757 | { |
1744 | processEvents(); | 1758 | processEvents(); |
1745 | 1759 | ||
1746 | // If we are a preloaded application we don't actually quit, so emit | 1760 | // If we are a preloaded application we don't actually quit, so emit |
1747 | // a System message indicating we're quasi-closing. | 1761 | // a System message indicating we're quasi-closing. |
1748 | if ( d->preloaded && d->qpe_main_widget ) | 1762 | if ( d->preloaded && d->qpe_main_widget ) |
1749 | #ifndef QT_NO_COP | 1763 | #ifndef QT_NO_COP |
1750 | 1764 | ||
1751 | { | 1765 | { |
1752 | QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); | 1766 | QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); |
1753 | e << d->appName; | 1767 | e << d->appName; |
1754 | d->qpe_main_widget->hide(); | 1768 | d->qpe_main_widget->hide(); |
1755 | } | 1769 | } |
1756 | #endif | 1770 | #endif |
1757 | else | 1771 | else |
1758 | quit(); | 1772 | quit(); |
1759 | } | 1773 | } |
1760 | 1774 | ||
1761 | 1775 | ||
1762 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_RAMSES) | 1776 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_RAMSES) |
1763 | 1777 | ||
1764 | // The libraries with the skiff package (and possibly others) have | 1778 | // The libraries with the skiff package (and possibly others) have |
1765 | // completely useless implementations of builtin new and delete that | 1779 | // completely useless implementations of builtin new and delete that |
1766 | // use about 50% of your CPU. Here we revert to the simple libc | 1780 | // use about 50% of your CPU. Here we revert to the simple libc |
1767 | // functions. | 1781 | // functions. |
1768 | 1782 | ||
1769 | void* operator new[]( size_t size ) | 1783 | void* operator new[]( size_t size ) |
1770 | { | 1784 | { |
1771 | return malloc( size ); | 1785 | return malloc( size ); |
1772 | } | 1786 | } |
1773 | 1787 | ||
1774 | void* operator new( size_t size ) | 1788 | void* operator new( size_t size ) |
1775 | { | 1789 | { |
1776 | return malloc( size ); | 1790 | return malloc( size ); |
1777 | } | 1791 | } |
1778 | 1792 | ||
1779 | void operator delete[]( void* p ) | 1793 | void operator delete[]( void* p ) |
1780 | { | 1794 | { |
1781 | free( p ); | 1795 | free( p ); |
1782 | } | 1796 | } |
1783 | 1797 | ||
1784 | void operator delete[]( void* p, size_t /*size*/ ) | 1798 | void operator delete[]( void* p, size_t /*size*/ ) |
1785 | { | 1799 | { |
1786 | free( p ); | 1800 | free( p ); |
1787 | } | 1801 | } |
1788 | 1802 | ||
1789 | 1803 | ||
1790 | void operator delete( void* p ) | 1804 | void operator delete( void* p ) |
1791 | { | 1805 | { |
1792 | free( p ); | 1806 | free( p ); |
1793 | } | 1807 | } |
1794 | 1808 | ||
1795 | void operator delete( void* p, size_t /*size*/ ) | 1809 | void operator delete( void* p, size_t /*size*/ ) |
1796 | { | 1810 | { |
1797 | free( p ); | 1811 | free( p ); |
1798 | } | 1812 | } |
1799 | 1813 | ||
1800 | #endif | 1814 | #endif |
1801 | 1815 | ||
1802 | #if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP) | 1816 | #if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP) |
1803 | #include <qwidgetlist.h> | 1817 | #include <qwidgetlist.h> |
1804 | #ifdef QWS | 1818 | #ifdef QWS |
1805 | #include <qgfx_qws.h> | 1819 | #include <qgfx_qws.h> |
1806 | extern QRect qt_maxWindowRect; | 1820 | extern QRect qt_maxWindowRect; |
1807 | void qt_setMaxWindowRect(const QRect& r ) | 1821 | void qt_setMaxWindowRect(const QRect& r ) |
1808 | { | 1822 | { |
1809 | qt_maxWindowRect = qt_screen->mapFromDevice( r, | 1823 | qt_maxWindowRect = qt_screen->mapFromDevice( r, |
1810 | qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) ); | 1824 | qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) ); |
1811 | // Re-resize any maximized windows | 1825 | // Re-resize any maximized windows |
1812 | QWidgetList* l = QApplication::topLevelWidgets(); | 1826 | QWidgetList* l = QApplication::topLevelWidgets(); |
1813 | if ( l ) { | 1827 | if ( l ) { |
1814 | QWidget * w = l->first(); | 1828 | QWidget * w = l->first(); |
1815 | while ( w ) { | 1829 | while ( w ) { |
1816 | if ( w->isVisible() && w->isMaximized() ) { | 1830 | if ( w->isVisible() && w->isMaximized() ) { |
1817 | w->showMaximized(); | 1831 | w->showMaximized(); |
1818 | } | 1832 | } |
1819 | w = l->next(); | 1833 | w = l->next(); |
1820 | } | 1834 | } |
1821 | delete l; | 1835 | delete l; |
1822 | } | 1836 | } |
1823 | } | 1837 | } |
1824 | #endif | 1838 | #endif |
1825 | #endif | 1839 | #endif |
diff --git a/library/qpedecoration_qws.cpp b/library/qpedecoration_qws.cpp index 5e0c32a..933542d 100644 --- a/library/qpedecoration_qws.cpp +++ b/library/qpedecoration_qws.cpp | |||
@@ -1,910 +1,918 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #define QTOPIA_INTERNAL_LANGLIST | 20 | #define QTOPIA_INTERNAL_LANGLIST |
21 | #include <qapplication.h> | 21 | #include <qapplication.h> |
22 | #include <qstyle.h> | 22 | #include <qstyle.h> |
23 | #include <qwidget.h> | 23 | #include <qwidget.h> |
24 | #include <qpainter.h> | 24 | #include <qpainter.h> |
25 | #include <qtimer.h> | 25 | #include <qtimer.h> |
26 | #include <qwhatsthis.h> | 26 | #include <qwhatsthis.h> |
27 | #include "qcopenvelope_qws.h" | 27 | #include "qcopenvelope_qws.h" |
28 | #include "qpedecoration_qws.h" | 28 | #include "qpedecoration_qws.h" |
29 | #include <qdialog.h> | 29 | #include <qdialog.h> |
30 | #include <qdrawutil.h> | 30 | #include <qdrawutil.h> |
31 | #include <qgfx_qws.h> | 31 | #include <qgfx_qws.h> |
32 | #include "qpeapplication.h" | 32 | #include "qpeapplication.h" |
33 | #include "resource.h" | 33 | #include "resource.h" |
34 | #include "global.h" | 34 | #include "global.h" |
35 | #include "qlibrary.h" | 35 | #include "qlibrary.h" |
36 | #include "windowdecorationinterface.h" | 36 | #include "windowdecorationinterface.h" |
37 | #include <qfile.h> | 37 | #include <qfile.h> |
38 | #include <qsignal.h> | 38 | #include <qsignal.h> |
39 | 39 | ||
40 | #include <stdlib.h> | 40 | #include <stdlib.h> |
41 | 41 | ||
42 | extern QRect qt_maxWindowRect; | 42 | extern QRect qt_maxWindowRect; |
43 | 43 | ||
44 | #define WHATSTHIS_MODE | 44 | #define WHATSTHIS_MODE |
45 | 45 | ||
46 | #ifndef QT_NO_QWS_QPE_WM_STYLE | 46 | #ifndef QT_NO_QWS_QPE_WM_STYLE |
47 | 47 | ||
48 | #ifndef QT_NO_IMAGEIO_XPM | 48 | #ifndef QT_NO_IMAGEIO_XPM |
49 | 49 | ||
50 | /* XPM */ | 50 | /* XPM */ |
51 | static const char * const qpe_close_xpm[] = { | 51 | static const char * const qpe_close_xpm[] = { |
52 | "16 16 3 1", | 52 | "16 16 3 1", |
53 | " c None", | 53 | " c None", |
54 | ". c #FFFFFF", | 54 | ". c #FFFFFF", |
55 | "+ c #000000", | 55 | "+ c #000000", |
56 | " ", | 56 | " ", |
57 | " ", | 57 | " ", |
58 | " ..... ", | 58 | " ..... ", |
59 | " ..+++++.. ", | 59 | " ..+++++.. ", |
60 | " .+++++++++. ", | 60 | " .+++++++++. ", |
61 | " .+..+++..+. ", | 61 | " .+..+++..+. ", |
62 | " .++...+...++. ", | 62 | " .++...+...++. ", |
63 | " .+++.....+++. ", | 63 | " .+++.....+++. ", |
64 | " .++++...++++. ", | 64 | " .++++...++++. ", |
65 | " .+++.....+++. ", | 65 | " .+++.....+++. ", |
66 | " .++...+...++. ", | 66 | " .++...+...++. ", |
67 | " .+..+++..+. ", | 67 | " .+..+++..+. ", |
68 | " .+++++++++. ", | 68 | " .+++++++++. ", |
69 | " ..+++++.. ", | 69 | " ..+++++.. ", |
70 | " ..... ", | 70 | " ..... ", |
71 | " "}; | 71 | " "}; |
72 | 72 | ||
73 | /* XPM */ | 73 | /* XPM */ |
74 | static const char * const qpe_accept_xpm[] = { | 74 | static const char * const qpe_accept_xpm[] = { |
75 | "16 16 3 1", | 75 | "16 16 3 1", |
76 | " c None", | 76 | " c None", |
77 | ". c #FFFFFF", | 77 | ". c #FFFFFF", |
78 | "+ c #000000", | 78 | "+ c #000000", |
79 | " ", | 79 | " ", |
80 | " ", | 80 | " ", |
81 | " ..... ", | 81 | " ..... ", |
82 | " ..+++++.. ", | 82 | " ..+++++.. ", |
83 | " .+++++++++. ", | 83 | " .+++++++++. ", |
84 | " .+++++++++. ", | 84 | " .+++++++++. ", |
85 | " .+++++++..++. ", | 85 | " .+++++++..++. ", |
86 | " .++.+++...++. ", | 86 | " .++.+++...++. ", |
87 | " .+...+...+++. ", | 87 | " .+...+...+++. ", |
88 | " .+......++++. ", | 88 | " .+......++++. ", |
89 | " .++....+++++. ", | 89 | " .++....+++++. ", |
90 | " .++..+++++. ", | 90 | " .++..+++++. ", |
91 | " .+++++++++. ", | 91 | " .+++++++++. ", |
92 | " ..+++++.. ", | 92 | " ..+++++.. ", |
93 | " ..... ", | 93 | " ..... ", |
94 | " "}; | 94 | " "}; |
95 | 95 | ||
96 | #endif // QT_NO_IMAGEIO_XPM | 96 | #endif // QT_NO_IMAGEIO_XPM |
97 | 97 | ||
98 | class HackWidget : public QWidget | 98 | class HackWidget : public QWidget |
99 | { | 99 | { |
100 | public: | 100 | public: |
101 | bool needsOk() { | 101 | bool needsOk() { |
102 | return (getWState() & WState_Reserved1 ) || | 102 | return (getWState() & WState_Reserved1 ) || |
103 | (inherits( "QDialog" ) && !inherits( "QMessageBox" ) ); | 103 | (inherits( "QDialog" ) && !inherits( "QMessageBox" ) ); |
104 | } | 104 | } |
105 | }; | 105 | }; |
106 | 106 | ||
107 | static QImage scaleButton( const QImage &img, int height ) | 107 | static QImage scaleButton( const QImage &img, int height ) |
108 | { | 108 | { |
109 | if ( img.height() != 0 && img.height() != height ) { | 109 | if ( img.height() != 0 && img.height() != height ) { |
110 | return img.smoothScale( img.width()*height/img.height(), height ); | 110 | return img.smoothScale( img.width()*height/img.height(), height ); |
111 | } else { | 111 | } else { |
112 | return img; | 112 | return img; |
113 | } | 113 | } |
114 | } | 114 | } |
115 | 115 | ||
116 | class TLWidget : public QWidget | 116 | class TLWidget : public QWidget |
117 | { | 117 | { |
118 | public: | 118 | public: |
119 | QWSManager *manager() | 119 | QWSManager *manager() |
120 | { | 120 | { |
121 | return topData()->qwsManager; | 121 | return topData()->qwsManager; |
122 | } | 122 | } |
123 | 123 | ||
124 | QTLWExtra *topExtra() | 124 | QTLWExtra *topExtra() |
125 | { | 125 | { |
126 | return topData(); | 126 | return topData(); |
127 | } | 127 | } |
128 | 128 | ||
129 | void setWState( uint s ) { QWidget::setWState( s ); } | 129 | void setWState( uint s ) { QWidget::setWState( s ); } |
130 | void clearWState( uint s ) { QWidget::clearWState( s ); } | 130 | void clearWState( uint s ) { QWidget::clearWState( s ); } |
131 | }; | 131 | }; |
132 | 132 | ||
133 | 133 | ||
134 | QPEManager::QPEManager( QPEDecoration *d, QObject *parent ) | 134 | QPEManager::QPEManager( QPEDecoration *d, QObject *parent ) |
135 | : QObject( parent ), decoration( d ), helpState(0), inWhatsThis(FALSE) | 135 | : QObject( parent ), decoration( d ), helpState(0), inWhatsThis(FALSE) |
136 | { | 136 | { |
137 | wtTimer = new QTimer( this ); | 137 | wtTimer = new QTimer( this ); |
138 | connect( wtTimer, SIGNAL(timeout()), this, SLOT(whatsThisTimeout()) ); | 138 | connect( wtTimer, SIGNAL(timeout()), this, SLOT(whatsThisTimeout()) ); |
139 | } | 139 | } |
140 | 140 | ||
141 | 141 | ||
142 | void QPEManager::updateActive() | 142 | void QPEManager::updateActive() |
143 | { | 143 | { |
144 | QWidget *newActive = qApp->activeWindow(); | 144 | QWidget *newActive = qApp->activeWindow(); |
145 | if ( newActive && (QWidget*)active == newActive ) | 145 | if ( newActive && (QWidget*)active == newActive ) |
146 | return; | 146 | return; |
147 | 147 | ||
148 | if ( active && (!newActive || ((TLWidget *)newActive)->manager()) ) { | 148 | if ( active && (!newActive || ((TLWidget *)newActive)->manager()) ) { |
149 | ((TLWidget *)(QWidget*)active)->manager()->removeEventFilter( this ); | 149 | ((TLWidget *)(QWidget*)active)->manager()->removeEventFilter( this ); |
150 | } | 150 | } |
151 | 151 | ||
152 | if ( newActive && ((TLWidget *)newActive)->manager() ) { | 152 | if ( newActive && ((TLWidget *)newActive)->manager() ) { |
153 | active = newActive; | 153 | active = newActive; |
154 | ((TLWidget *)(QWidget*)active)->manager()->installEventFilter( this ); | 154 | ((TLWidget *)(QWidget*)active)->manager()->installEventFilter( this ); |
155 | } else if ( !newActive ) { | 155 | } else if ( !newActive ) { |
156 | active = 0; | 156 | active = 0; |
157 | } | 157 | } |
158 | } | 158 | } |
159 | 159 | ||
160 | int QPEManager::pointInQpeRegion( QWidget *w, const QPoint &p ) | 160 | int QPEManager::pointInQpeRegion( QWidget *w, const QPoint &p ) |
161 | { | 161 | { |
162 | QRect rect(w->geometry()); | 162 | QRect rect(w->geometry()); |
163 | 163 | ||
164 | if ( decoration->region( w, rect, | 164 | if ( decoration->region( w, rect, |
165 | (QWSDecoration::Region)QPEDecoration::Help ).contains(p) ) | 165 | (QWSDecoration::Region)QPEDecoration::Help ).contains(p) ) |
166 | return QPEDecoration::Help; | 166 | return QPEDecoration::Help; |
167 | 167 | ||
168 | for (int i = QWSDecoration::LastRegion; i >= QWSDecoration::Title; i--) { | 168 | for (int i = QWSDecoration::LastRegion; i >= QWSDecoration::Title; i--) { |
169 | if (decoration->region(w, rect, (QWSDecoration::Region)i).contains(p)) | 169 | if (decoration->region(w, rect, (QWSDecoration::Region)i).contains(p)) |
170 | return (QWSDecoration::Region)i; | 170 | return (QWSDecoration::Region)i; |
171 | } | 171 | } |
172 | 172 | ||
173 | return QWSDecoration::None; | 173 | return QWSDecoration::None; |
174 | } | 174 | } |
175 | 175 | ||
176 | bool QPEManager::eventFilter( QObject *o, QEvent *e ) | 176 | bool QPEManager::eventFilter( QObject *o, QEvent *e ) |
177 | { | 177 | { |
178 | QWSManager *mgr = (QWSManager *)o; | 178 | QWSManager *mgr = (QWSManager *)o; |
179 | QWidget *w = mgr->widget(); | 179 | QWidget *w = mgr->widget(); |
180 | switch ( e->type() ) { | 180 | switch ( e->type() ) { |
181 | case QEvent::MouseButtonPress: | 181 | case QEvent::MouseButtonPress: |
182 | { | 182 | { |
183 | pressTime = QTime::currentTime(); | 183 | pressTime = QTime::currentTime(); |
184 | QPoint p = ((QMouseEvent*)e)->globalPos(); | 184 | QPoint p = ((QMouseEvent*)e)->globalPos(); |
185 | int inRegion = pointInQpeRegion( w, p ); | 185 | int inRegion = pointInQpeRegion( w, p ); |
186 | #ifdef WHATSTHIS_MODE | 186 | #ifdef WHATSTHIS_MODE |
187 | if ( !w->geometry().contains(p) && QWhatsThis::inWhatsThisMode() ) { | 187 | if ( !w->geometry().contains(p) && QWhatsThis::inWhatsThisMode() ) { |
188 | QString text; | 188 | QString text; |
189 | switch ( inRegion ) { | 189 | switch ( inRegion ) { |
190 | case QWSDecoration::Close: | 190 | case QWSDecoration::Close: |
191 | if ( ((HackWidget*)w)->needsOk() ) | 191 | if ( ((HackWidget*)w)->needsOk() ) |
192 | text = tr("Click to close this window, discarding changes."); | 192 | text = QObject::tr("Click to close this window, discarding changes."); |
193 | else | 193 | else |
194 | text = tr("Click to close this window."); | 194 | text = QObject::tr("Click to close this window."); |
195 | break; | 195 | break; |
196 | case QWSDecoration::Minimize: | 196 | case QWSDecoration::Minimize: |
197 | text = tr("Click to close this window and apply changes."); | 197 | text = QObject::tr("Click to close this window and apply changes."); |
198 | break; | 198 | break; |
199 | case QWSDecoration::Maximize: | 199 | case QWSDecoration::Maximize: |
200 | if ( w->isMaximized() ) | 200 | if ( w->isMaximized() ) |
201 | text = tr("Click to make this window moveable."); | 201 | text = QObject::tr("Click to make this window moveable."); |
202 | else | 202 | else |
203 | text = tr("Click to make this window use all available screen area."); | 203 | text = QObject::tr("Click to make this window use all available screen area."); |
204 | break; | 204 | break; |
205 | default: | 205 | default: |
206 | break; | 206 | break; |
207 | } | 207 | } |
208 | QWhatsThis::leaveWhatsThisMode( text ); | 208 | QWhatsThis::leaveWhatsThisMode( text ); |
209 | whatsThisTimeout(); | 209 | whatsThisTimeout(); |
210 | helpState = 0; | 210 | helpState = 0; |
211 | return true; | 211 | return true; |
212 | } | 212 | } |
213 | #endif | 213 | #endif |
214 | if ( inRegion == QPEDecoration::Help ) { | 214 | if ( inRegion == QPEDecoration::Help ) { |
215 | #ifdef WHATSTHIS_MODE | 215 | #ifdef WHATSTHIS_MODE |
216 | wtTimer->start( 400, TRUE ); | 216 | wtTimer->start( 400, TRUE ); |
217 | #endif | 217 | #endif |
218 | helpState = QWSButton::Clicked|QWSButton::MouseOver; | 218 | helpState = QWSButton::Clicked|QWSButton::MouseOver; |
219 | drawButton( w, QPEDecoration::Help, helpState ); | 219 | drawButton( w, QPEDecoration::Help, helpState ); |
220 | return true; | 220 | return true; |
221 | } | 221 | } |
222 | } | 222 | } |
223 | break; | 223 | break; |
224 | case QEvent::MouseButtonRelease: | 224 | case QEvent::MouseButtonRelease: |
225 | if ( helpState & QWSButton::Clicked ) { | 225 | if ( helpState & QWSButton::Clicked ) { |
226 | wtTimer->stop(); | 226 | wtTimer->stop(); |
227 | helpState = 0; | 227 | helpState = 0; |
228 | drawButton( w, QPEDecoration::Help, helpState ); | 228 | drawButton( w, QPEDecoration::Help, helpState ); |
229 | QPoint p = ((QMouseEvent*)e)->globalPos(); | 229 | QPoint p = ((QMouseEvent*)e)->globalPos(); |
230 | if ( pointInQpeRegion( w, p ) == QPEDecoration::Help ) { | 230 | if ( pointInQpeRegion( w, p ) == QPEDecoration::Help ) { |
231 | decoration->help( w ); | 231 | decoration->help( w ); |
232 | } | 232 | } |
233 | return true; | 233 | return true; |
234 | } | 234 | } |
235 | break; | 235 | break; |
236 | case QEvent::MouseMove: | 236 | case QEvent::MouseMove: |
237 | if ( helpState & QWSButton::Clicked ) { | 237 | if ( helpState & QWSButton::Clicked ) { |
238 | int oldState = helpState; | 238 | int oldState = helpState; |
239 | QPoint p = ((QMouseEvent*)e)->globalPos(); | 239 | QPoint p = ((QMouseEvent*)e)->globalPos(); |
240 | if ( pointInQpeRegion( w, p ) == QPEDecoration::Help ) { | 240 | if ( pointInQpeRegion( w, p ) == QPEDecoration::Help ) { |
241 | helpState = QWSButton::Clicked|QWSButton::MouseOver; | 241 | helpState = QWSButton::Clicked|QWSButton::MouseOver; |
242 | } else { | 242 | } else { |
243 | helpState = 0; | 243 | helpState = 0; |
244 | } | 244 | } |
245 | if ( helpState != oldState ) | 245 | if ( helpState != oldState ) |
246 | drawButton( w, QPEDecoration::Help, helpState ); | 246 | drawButton( w, QPEDecoration::Help, helpState ); |
247 | } | 247 | } |
248 | break; | 248 | break; |
249 | default: | 249 | default: |
250 | break; | 250 | break; |
251 | } | 251 | } |
252 | return QObject::eventFilter( o, e ); | 252 | return QObject::eventFilter( o, e ); |
253 | } | 253 | } |
254 | 254 | ||
255 | void QPEManager::drawButton( QWidget *w, QPEDecoration::QPERegion r, int state ) | 255 | void QPEManager::drawButton( QWidget *w, QPEDecoration::QPERegion r, int state ) |
256 | { | 256 | { |
257 | QPainter painter(w); | 257 | QPainter painter(w); |
258 | QRegion rgn = ((TLWidget *)w)->topExtra()->decor_allocated_region; | 258 | QRegion rgn = ((TLWidget *)w)->topExtra()->decor_allocated_region; |
259 | painter.internalGfx()->setWidgetDeviceRegion( rgn ); | 259 | painter.internalGfx()->setWidgetDeviceRegion( rgn ); |
260 | painter.setClipRegion(decoration->region(w, w->rect(),QWSDecoration::All)); | 260 | painter.setClipRegion(decoration->region(w, w->rect(),QWSDecoration::All)); |
261 | decoration->paintButton( &painter, w, (QWSDecoration::Region)r, state ); | 261 | decoration->paintButton( &painter, w, (QWSDecoration::Region)r, state ); |
262 | } | 262 | } |
263 | 263 | ||
264 | void QPEManager::drawTitle( QWidget *w ) | 264 | void QPEManager::drawTitle( QWidget *w ) |
265 | { | 265 | { |
266 | QPainter painter(w); | 266 | QPainter painter(w); |
267 | QRegion rgn = ((TLWidget *)w)->topExtra()->decor_allocated_region; | 267 | QRegion rgn = ((TLWidget *)w)->topExtra()->decor_allocated_region; |
268 | painter.internalGfx()->setWidgetDeviceRegion( rgn ); | 268 | painter.internalGfx()->setWidgetDeviceRegion( rgn ); |
269 | painter.setClipRegion(decoration->region(w, w->rect(),QWSDecoration::All)); | 269 | painter.setClipRegion(decoration->region(w, w->rect(),QWSDecoration::All)); |
270 | decoration->paint( &painter, w ); | 270 | decoration->paint( &painter, w ); |
271 | decoration->paintButton(&painter, w, QWSDecoration::Menu, 0); | 271 | decoration->paintButton(&painter, w, QWSDecoration::Menu, 0); |
272 | decoration->paintButton(&painter, w, QWSDecoration::Close, 0); | 272 | decoration->paintButton(&painter, w, QWSDecoration::Close, 0); |
273 | decoration->paintButton(&painter, w, QWSDecoration::Minimize, 0); | 273 | decoration->paintButton(&painter, w, QWSDecoration::Minimize, 0); |
274 | decoration->paintButton(&painter, w, QWSDecoration::Maximize, 0); | 274 | decoration->paintButton(&painter, w, QWSDecoration::Maximize, 0); |
275 | } | 275 | } |
276 | 276 | ||
277 | void QPEManager::whatsThisTimeout() | 277 | void QPEManager::whatsThisTimeout() |
278 | { | 278 | { |
279 | if ( !QWhatsThis::inWhatsThisMode() ) { | 279 | if ( !QWhatsThis::inWhatsThisMode() ) { |
280 | if ( inWhatsThis ) { | 280 | if ( inWhatsThis ) { |
281 | if ( whatsThis ) { | 281 | if ( whatsThis ) { |
282 | QWidget *w = whatsThis; | 282 | QWidget *w = whatsThis; |
283 | whatsThis = 0; | 283 | whatsThis = 0; |
284 | drawTitle( w ); | 284 | drawTitle( w ); |
285 | } | 285 | } |
286 | wtTimer->stop(); | 286 | wtTimer->stop(); |
287 | } else { | 287 | } else { |
288 | QWhatsThis::enterWhatsThisMode(); | 288 | QWhatsThis::enterWhatsThisMode(); |
289 | helpState = 0; | 289 | helpState = 0; |
290 | updateActive(); | 290 | updateActive(); |
291 | if ( active ) { | 291 | if ( active ) { |
292 | whatsThis = active; | 292 | whatsThis = active; |
293 | drawTitle( active ); | 293 | drawTitle( active ); |
294 | // check periodically to see if we've left whats this mode | 294 | // check periodically to see if we've left whats this mode |
295 | wtTimer->start( 250 ); | 295 | wtTimer->start( 250 ); |
296 | } | 296 | } |
297 | } | 297 | } |
298 | inWhatsThis = !inWhatsThis; | 298 | inWhatsThis = !inWhatsThis; |
299 | } | 299 | } |
300 | } | 300 | } |
301 | 301 | ||
302 | //=========================================================================== | 302 | //=========================================================================== |
303 | 303 | ||
304 | static QImage *okImage( int th ) | 304 | static QImage *okImage( int th ) |
305 | { | 305 | { |
306 | static QImage *i = 0; | 306 | static QImage *i = 0; |
307 | if ( !i || i->height() != th ) { | 307 | if ( !i || i->height() != th ) { |
308 | delete i; | 308 | delete i; |
309 | i = new QImage(scaleButton(Resource::loadImage("OKButton"),th)); | 309 | i = new QImage(scaleButton(Resource::loadImage("OKButton"),th)); |
310 | } | 310 | } |
311 | return i; | 311 | return i; |
312 | } | 312 | } |
313 | 313 | ||
314 | static QImage *closeImage( int th ) | 314 | static QImage *closeImage( int th ) |
315 | { | 315 | { |
316 | static QImage *i = 0; | 316 | static QImage *i = 0; |
317 | if ( !i || i->height() != th ) { | 317 | if ( !i || i->height() != th ) { |
318 | delete i; | 318 | delete i; |
319 | i = new QImage(scaleButton(Resource::loadImage("CloseButton"),th)); | 319 | i = new QImage(scaleButton(Resource::loadImage("CloseButton"),th)); |
320 | } | 320 | } |
321 | return i; | 321 | return i; |
322 | } | 322 | } |
323 | 323 | ||
324 | static QImage *helpImage( int th ) | 324 | static QImage *helpImage( int th ) |
325 | { | 325 | { |
326 | static QImage *i = 0; | 326 | static QImage *i = 0; |
327 | if ( !i || i->height() != th ) { | 327 | if ( !i || i->height() != th ) { |
328 | delete i; | 328 | delete i; |
329 | i = new QImage(scaleButton(Resource::loadImage("HelpButton"),th)); | 329 | i = new QImage(scaleButton(Resource::loadImage("HelpButton"),th)); |
330 | } | 330 | } |
331 | return i; | 331 | return i; |
332 | } | 332 | } |
333 | 333 | ||
334 | static QImage *maximizeImage( int th ) | 334 | static QImage *maximizeImage( int th ) |
335 | { | 335 | { |
336 | static QImage *i = 0; | 336 | static QImage *i = 0; |
337 | if ( !i || i->height() != th ) { | 337 | if ( !i || i->height() != th ) { |
338 | delete i; | 338 | delete i; |
339 | i = new QImage(scaleButton(Resource::loadImage("MaximizeButton"),th)); | 339 | i = new QImage(scaleButton(Resource::loadImage("MaximizeButton"),th)); |
340 | } | 340 | } |
341 | return i; | 341 | return i; |
342 | } | 342 | } |
343 | 343 | ||
344 | int WindowDecorationInterface::metric( Metric m, const WindowData *wd ) const | 344 | int WindowDecorationInterface::metric( Metric m, const WindowData *wd ) const |
345 | { | 345 | { |
346 | switch ( m ) { | 346 | switch ( m ) { |
347 | case TitleHeight: | 347 | case TitleHeight: |
348 | if ( QApplication::desktop()->height() > 320 ) | 348 | if ( QApplication::desktop()->height() > 320 ) |
349 | return 19; | 349 | return 19; |
350 | else | 350 | else |
351 | return 15; | 351 | return 15; |
352 | case LeftBorder: | 352 | case LeftBorder: |
353 | case RightBorder: | 353 | case RightBorder: |
354 | case TopBorder: | 354 | case TopBorder: |
355 | case BottomBorder: | 355 | case BottomBorder: |
356 | return 4; | 356 | return 4; |
357 | case OKWidth: | 357 | case OKWidth: |
358 | return okImage(metric(TitleHeight,wd))->width(); | 358 | return okImage(metric(TitleHeight,wd))->width(); |
359 | case CloseWidth: | 359 | case CloseWidth: |
360 | return closeImage(metric(TitleHeight,wd))->width(); | 360 | return closeImage(metric(TitleHeight,wd))->width(); |
361 | case HelpWidth: | 361 | case HelpWidth: |
362 | return helpImage(metric(TitleHeight,wd))->width(); | 362 | return helpImage(metric(TitleHeight,wd))->width(); |
363 | case MaximizeWidth: | 363 | case MaximizeWidth: |
364 | return maximizeImage(metric(TitleHeight,wd))->width(); | 364 | return maximizeImage(metric(TitleHeight,wd))->width(); |
365 | case CornerGrabSize: | 365 | case CornerGrabSize: |
366 | return 16; | 366 | return 16; |
367 | } | 367 | } |
368 | 368 | ||
369 | return 0; | 369 | return 0; |
370 | } | 370 | } |
371 | 371 | ||
372 | void WindowDecorationInterface::drawArea( Area a, QPainter *p, const WindowData *wd ) const | 372 | void WindowDecorationInterface::drawArea( Area a, QPainter *p, const WindowData *wd ) const |
373 | { | 373 | { |
374 | int th = metric( TitleHeight, wd ); | 374 | int th = metric( TitleHeight, wd ); |
375 | QRect r = wd->rect; | 375 | QRect r = wd->rect; |
376 | 376 | ||
377 | switch ( a ) { | 377 | switch ( a ) { |
378 | case Border: | 378 | case Border: |
379 | { | 379 | { |
380 | const QColorGroup &cg = wd->palette.active(); | 380 | const QColorGroup &cg = wd->palette.active(); |
381 | qDrawWinPanel(p, r.x()-metric(LeftBorder,wd), | 381 | qDrawWinPanel(p, r.x()-metric(LeftBorder,wd), |
382 | r.y()-th-metric(TopBorder,wd), | 382 | r.y()-th-metric(TopBorder,wd), |
383 | r.width()+metric(LeftBorder,wd)+metric(RightBorder,wd), | 383 | r.width()+metric(LeftBorder,wd)+metric(RightBorder,wd), |
384 | r.height()+th+metric(TopBorder,wd)+metric(BottomBorder,wd), | 384 | r.height()+th+metric(TopBorder,wd)+metric(BottomBorder,wd), |
385 | cg, FALSE, &cg.brush(QColorGroup::Background)); | 385 | cg, FALSE, &cg.brush(QColorGroup::Background)); |
386 | } | 386 | } |
387 | break; | 387 | break; |
388 | case Title: | 388 | case Title: |
389 | { | 389 | { |
390 | const QColorGroup &cg = wd->palette.active(); | 390 | const QColorGroup &cg = wd->palette.active(); |
391 | QBrush titleBrush; | 391 | QBrush titleBrush; |
392 | QPen titleLines; | 392 | QPen titleLines; |
393 | 393 | ||
394 | if ( wd->flags & WindowData::Active ) { | 394 | if ( wd->flags & WindowData::Active ) { |
395 | titleBrush = cg.brush(QColorGroup::Highlight); | 395 | titleBrush = cg.brush(QColorGroup::Highlight); |
396 | titleLines = titleBrush.color().dark(); | 396 | titleLines = titleBrush.color().dark(); |
397 | } else { | 397 | } else { |
398 | titleBrush = cg.brush(QColorGroup::Background); | 398 | titleBrush = cg.brush(QColorGroup::Background); |
399 | titleLines = titleBrush.color(); | 399 | titleLines = titleBrush.color(); |
400 | } | 400 | } |
401 | 401 | ||
402 | p->fillRect( r.x(), r.y()-th, r.width(), th, titleBrush); | 402 | p->fillRect( r.x(), r.y()-th, r.width(), th, titleBrush); |
403 | 403 | ||
404 | p->setPen( titleLines ); | 404 | p->setPen( titleLines ); |
405 | for ( int i = r.y()-th; i < r.y(); i += 2 ) | 405 | for ( int i = r.y()-th; i < r.y(); i += 2 ) |
406 | p->drawLine( r.left(), i, r.right(), i ); | 406 | p->drawLine( r.left(), i, r.right(), i ); |
407 | } | 407 | } |
408 | break; | 408 | break; |
409 | case TitleText: | 409 | case TitleText: |
410 | p->drawText( r.x()+3+metric(HelpWidth,wd), r.top()-th, | 410 | p->drawText( r.x()+3+metric(HelpWidth,wd), r.top()-th, |
411 | r.width()-metric(OKWidth,wd)-metric(CloseWidth,wd), | 411 | r.width()-metric(OKWidth,wd)-metric(CloseWidth,wd), |
412 | th, QPainter::AlignVCenter, wd->caption); | 412 | th, QPainter::AlignVCenter, wd->caption); |
413 | break; | 413 | break; |
414 | } | 414 | } |
415 | } | 415 | } |
416 | 416 | ||
417 | void WindowDecorationInterface::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int, int, QWSButton::State state ) const | 417 | void WindowDecorationInterface::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int, int, QWSButton::State state ) const |
418 | { | 418 | { |
419 | QImage *img = 0; | 419 | QImage *img = 0; |
420 | switch ( b ) { | 420 | switch ( b ) { |
421 | case OK: | 421 | case OK: |
422 | img = okImage(metric(TitleHeight,wd)); | 422 | img = okImage(metric(TitleHeight,wd)); |
423 | break; | 423 | break; |
424 | case Close: | 424 | case Close: |
425 | img = closeImage(metric(TitleHeight,wd)); | 425 | img = closeImage(metric(TitleHeight,wd)); |
426 | break; | 426 | break; |
427 | case Help: | 427 | case Help: |
428 | img = helpImage(metric(TitleHeight,wd)); | 428 | img = helpImage(metric(TitleHeight,wd)); |
429 | break; | 429 | break; |
430 | case Maximize: | 430 | case Maximize: |
431 | img = maximizeImage(metric(TitleHeight,wd)); | 431 | img = maximizeImage(metric(TitleHeight,wd)); |
432 | break; | 432 | break; |
433 | } | 433 | } |
434 | 434 | ||
435 | if ( img ) { | 435 | if ( img ) { |
436 | if ((state & QWSButton::MouseOver) && (state & QWSButton::Clicked)) | 436 | if ((state & QWSButton::MouseOver) && (state & QWSButton::Clicked)) |
437 | p->drawImage(x+2, y+2, *img); | 437 | p->drawImage(x+2, y+2, *img); |
438 | else | 438 | else |
439 | p->drawImage(x+1, y+1, *img); | 439 | p->drawImage(x+1, y+1, *img); |
440 | } | 440 | } |
441 | } | 441 | } |
442 | 442 | ||
443 | QRegion WindowDecorationInterface::mask( const WindowData *wd ) const | 443 | QRegion WindowDecorationInterface::mask( const WindowData *wd ) const |
444 | { | 444 | { |
445 | int th = metric(TitleHeight,wd); | 445 | int th = metric(TitleHeight,wd); |
446 | QRect rect( wd->rect ); | 446 | QRect rect( wd->rect ); |
447 | QRect r(rect.left() - metric(LeftBorder,wd), | 447 | QRect r(rect.left() - metric(LeftBorder,wd), |
448 | rect.top() - th - metric(TopBorder,wd), | 448 | rect.top() - th - metric(TopBorder,wd), |
449 | rect.width() + metric(LeftBorder,wd) + metric(RightBorder,wd), | 449 | rect.width() + metric(LeftBorder,wd) + metric(RightBorder,wd), |
450 | rect.height() + th + metric(TopBorder,wd) + metric(BottomBorder,wd)); | 450 | rect.height() + th + metric(TopBorder,wd) + metric(BottomBorder,wd)); |
451 | return QRegion(r) - rect; | 451 | return QRegion(r) - rect; |
452 | } | 452 | } |
453 | 453 | ||
454 | class DefaultWindowDecoration : public WindowDecorationInterface | 454 | class DefaultWindowDecoration : public WindowDecorationInterface |
455 | { | 455 | { |
456 | public: | 456 | public: |
457 | DefaultWindowDecoration() : ref(0) {} | 457 | DefaultWindowDecoration() : ref(0) {} |
458 | QString name() const { | 458 | QString name() const { |
459 | return "Default"; | 459 | return "Default"; |
460 | } | 460 | } |
461 | QPixmap icon() const { | 461 | QPixmap icon() const { |
462 | return QPixmap(); | 462 | return QPixmap(); |
463 | } | 463 | } |
464 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { | 464 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { |
465 | *iface = 0; | 465 | *iface = 0; |
466 | if ( uuid == IID_QUnknown ) | 466 | if ( uuid == IID_QUnknown ) |
467 | *iface = this; | 467 | *iface = this; |
468 | else if ( uuid == IID_WindowDecoration ) | 468 | else if ( uuid == IID_WindowDecoration ) |
469 | *iface = this; | 469 | *iface = this; |
470 | 470 | ||
471 | if ( *iface ) | 471 | if ( *iface ) |
472 | (*iface)->addRef(); | 472 | (*iface)->addRef(); |
473 | return QS_OK; | 473 | return QS_OK; |
474 | } | 474 | } |
475 | Q_REFCOUNT | 475 | Q_REFCOUNT |
476 | 476 | ||
477 | private: | 477 | private: |
478 | ulong ref; | 478 | ulong ref; |
479 | }; | 479 | }; |
480 | 480 | ||
481 | static WindowDecorationInterface *wdiface = 0; | 481 | static WindowDecorationInterface *wdiface = 0; |
482 | static QLibrary *wdlib = 0; | 482 | static QLibrary *wdlib = 0; |
483 | static QString libname; | 483 | static QString libname; |
484 | 484 | ||
485 | //=========================================================================== | 485 | //=========================================================================== |
486 | 486 | ||
487 | QPEDecoration::QPEDecoration() | 487 | QPEDecoration::QPEDecoration() |
488 | : QWSDefaultDecoration() | 488 | : QWSDefaultDecoration() |
489 | { | 489 | { |
490 | init ( libname ); | 490 | init ( libname ); |
491 | } | 491 | } |
492 | 492 | ||
493 | QPEDecoration::QPEDecoration( const QString &plugin ) | 493 | QPEDecoration::QPEDecoration( const QString &plugin ) |
494 | : QWSDefaultDecoration() | 494 | : QWSDefaultDecoration() |
495 | { | 495 | { |
496 | init ( plugin ); | 496 | init ( plugin ); |
497 | } | 497 | } |
498 | 498 | ||
499 | void QPEDecoration::init ( const QString &plugin ) | 499 | void QPEDecoration::init ( const QString &plugin ) |
500 | { | 500 | { |
501 | libname = plugin; | 501 | libname = plugin; |
502 | 502 | ||
503 | if ( wdlib ) { | 503 | if ( wdlib ) { |
504 | wdiface->release(); | 504 | wdiface->release(); |
505 | wdlib->unload(); | 505 | wdlib->unload(); |
506 | delete wdlib; | 506 | delete wdlib; |
507 | wdlib = 0; | 507 | wdlib = 0; |
508 | } else { | 508 | } else { |
509 | delete wdiface; | 509 | delete wdiface; |
510 | } | 510 | } |
511 | 511 | ||
512 | WindowDecorationInterface *iface = 0; | 512 | WindowDecorationInterface *iface = 0; |
513 | QString path = QPEApplication::qpeDir() + "/plugins/decorations"; | 513 | QString path = QPEApplication::qpeDir() + "/plugins/decorations/"; |
514 | QLibrary *lib = new QLibrary( path + "/" + plugin ); | 514 | |
515 | if ( plugin.find( ".so" ) > 0 ) { | ||
516 | // full library name supplied | ||
517 | path += plugin; | ||
518 | } else { | ||
519 | path += "lib" + plugin.lower() + ".so"; // compatibility | ||
520 | } | ||
521 | |||
522 | QLibrary *lib = new QLibrary( path ); | ||
515 | if ( lib->queryInterface( IID_WindowDecoration, (QUnknownInterface**)&iface ) == QS_OK && iface ) { | 523 | if ( lib->queryInterface( IID_WindowDecoration, (QUnknownInterface**)&iface ) == QS_OK && iface ) { |
516 | wdiface = iface; | 524 | wdiface = iface; |
517 | wdlib = lib; | 525 | wdlib = lib; |
518 | } else { | 526 | } else { |
519 | delete lib; | 527 | delete lib; |
520 | wdiface = new DefaultWindowDecoration; | 528 | wdiface = new DefaultWindowDecoration; |
521 | } | 529 | } |
522 | 530 | ||
523 | helpFile = QString(qApp->argv()[0]) + ".html"; | 531 | helpFile = QString(qApp->argv()[0]) + ".html"; |
524 | QStringList helpPath = Global::helpPath(); | 532 | QStringList helpPath = Global::helpPath(); |
525 | helpExists = FALSE; | 533 | helpExists = FALSE; |
526 | for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) { | 534 | for (QStringList::ConstIterator it=helpPath.begin(); it!=helpPath.end() && !helpExists; ++it) { |
527 | helpExists = QFile::exists( *it + "/" + helpFile ); | 535 | helpExists = QFile::exists( *it + "/" + helpFile ); |
528 | //qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists); | 536 | //qDebug ( "Checking %s/%s for help: %d", (*it).latin1(), helpFile.latin1(),helpExists); |
529 | } | 537 | } |
530 | qpeManager = new QPEManager( this ); | 538 | qpeManager = new QPEManager( this ); |
531 | 539 | ||
532 | // Qtopia 1.5 compatibility | 540 | // Qtopia 1.5 compatibility |
533 | imageOk = *okImage ( 15 ); | 541 | imageOk = *okImage ( 15 ); |
534 | imageClose = *closeImage ( 15 ); | 542 | imageClose = *closeImage ( 15 ); |
535 | imageHelp = *helpImage ( 15 ); | 543 | imageHelp = *helpImage ( 15 ); |
536 | } | 544 | } |
537 | 545 | ||
538 | QPEDecoration::~QPEDecoration() | 546 | QPEDecoration::~QPEDecoration() |
539 | { | 547 | { |
540 | delete qpeManager; | 548 | delete qpeManager; |
541 | } | 549 | } |
542 | 550 | ||
543 | const char **QPEDecoration::menuPixmap() | 551 | const char **QPEDecoration::menuPixmap() |
544 | { | 552 | { |
545 | return (const char **)0; | 553 | return (const char **)0; |
546 | } | 554 | } |
547 | 555 | ||
548 | const char **QPEDecoration::closePixmap() | 556 | const char **QPEDecoration::closePixmap() |
549 | { | 557 | { |
550 | return (const char **)qpe_close_xpm; | 558 | return (const char **)qpe_close_xpm; |
551 | } | 559 | } |
552 | 560 | ||
553 | const char **QPEDecoration::minimizePixmap() | 561 | const char **QPEDecoration::minimizePixmap() |
554 | { | 562 | { |
555 | return (const char **)qpe_accept_xpm; | 563 | return (const char **)qpe_accept_xpm; |
556 | } | 564 | } |
557 | 565 | ||
558 | const char **QPEDecoration::maximizePixmap() | 566 | const char **QPEDecoration::maximizePixmap() |
559 | { | 567 | { |
560 | return (const char **)0; | 568 | return (const char **)0; |
561 | } | 569 | } |
562 | 570 | ||
563 | const char **QPEDecoration::normalizePixmap() | 571 | const char **QPEDecoration::normalizePixmap() |
564 | { | 572 | { |
565 | return (const char **)0; | 573 | return (const char **)0; |
566 | } | 574 | } |
567 | 575 | ||
568 | int QPEDecoration::getTitleHeight( const QWidget *w ) | 576 | int QPEDecoration::getTitleHeight( const QWidget *w ) |
569 | { | 577 | { |
570 | WindowDecorationInterface::WindowData wd; | 578 | WindowDecorationInterface::WindowData wd; |
571 | windowData( w, wd ); | 579 | windowData( w, wd ); |
572 | return wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); | 580 | return wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); |
573 | } | 581 | } |
574 | 582 | ||
575 | /* | 583 | /* |
576 | If rect is empty, no frame is added. (a hack, really) | 584 | If rect is empty, no frame is added. (a hack, really) |
577 | */ | 585 | */ |
578 | QRegion QPEDecoration::region(const QWidget *widget, const QRect &rect, QWSDecoration::Region type) | 586 | QRegion QPEDecoration::region(const QWidget *widget, const QRect &rect, QWSDecoration::Region type) |
579 | { | 587 | { |
580 | qpeManager->updateActive(); | 588 | qpeManager->updateActive(); |
581 | 589 | ||
582 | WindowDecorationInterface::WindowData wd; | 590 | WindowDecorationInterface::WindowData wd; |
583 | windowData( widget, wd ); | 591 | windowData( widget, wd ); |
584 | wd.rect = rect; | 592 | wd.rect = rect; |
585 | 593 | ||
586 | int titleHeight = wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); | 594 | int titleHeight = wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); |
587 | int okWidth = wdiface->metric(WindowDecorationInterface::OKWidth,&wd); | 595 | int okWidth = wdiface->metric(WindowDecorationInterface::OKWidth,&wd); |
588 | int closeWidth = wdiface->metric(WindowDecorationInterface::CloseWidth,&wd); | 596 | int closeWidth = wdiface->metric(WindowDecorationInterface::CloseWidth,&wd); |
589 | int helpWidth = wdiface->metric(WindowDecorationInterface::HelpWidth,&wd); | 597 | int helpWidth = wdiface->metric(WindowDecorationInterface::HelpWidth,&wd); |
590 | int grab = wdiface->metric(WindowDecorationInterface::CornerGrabSize,&wd); | 598 | int grab = wdiface->metric(WindowDecorationInterface::CornerGrabSize,&wd); |
591 | 599 | ||
592 | QRegion region; | 600 | QRegion region; |
593 | 601 | ||
594 | switch ((int)type) { | 602 | switch ((int)type) { |
595 | case Menu: | 603 | case Menu: |
596 | break; | 604 | break; |
597 | case Maximize: | 605 | case Maximize: |
598 | if ( !widget->inherits( "QDialog" ) && qApp->desktop()->width() > 350 ) { | 606 | if ( !widget->inherits( "QDialog" ) && qApp->desktop()->width() > 350 ) { |
599 | int maximizeWidth = wdiface->metric(WindowDecorationInterface::MaximizeWidth,&wd); | 607 | int maximizeWidth = wdiface->metric(WindowDecorationInterface::MaximizeWidth,&wd); |
600 | int left = rect.right() - maximizeWidth - closeWidth; | 608 | int left = rect.right() - maximizeWidth - closeWidth; |
601 | if ( ((HackWidget *)widget)->needsOk() ) | 609 | if ( ((HackWidget *)widget)->needsOk() ) |
602 | left -= okWidth; | 610 | left -= okWidth; |
603 | QRect r(left, rect.top() - titleHeight, closeWidth, titleHeight); | 611 | QRect r(left, rect.top() - titleHeight, closeWidth, titleHeight); |
604 | region = r; | 612 | region = r; |
605 | } | 613 | } |
606 | break; | 614 | break; |
607 | case Minimize: | 615 | case Minimize: |
608 | if ( ((HackWidget *)widget)->needsOk() ) { | 616 | if ( ((HackWidget *)widget)->needsOk() ) { |
609 | QRect r(rect.right() - okWidth, | 617 | QRect r(rect.right() - okWidth, |
610 | rect.top() - titleHeight, okWidth, titleHeight); | 618 | rect.top() - titleHeight, okWidth, titleHeight); |
611 | if (r.left() > rect.left() + titleHeight) | 619 | if (r.left() > rect.left() + titleHeight) |
612 | region = r; | 620 | region = r; |
613 | } | 621 | } |
614 | break; | 622 | break; |
615 | case Close: | 623 | case Close: |
616 | { | 624 | { |
617 | int left = rect.right() - closeWidth; | 625 | int left = rect.right() - closeWidth; |
618 | if ( ((HackWidget *)widget)->needsOk() ) | 626 | if ( ((HackWidget *)widget)->needsOk() ) |
619 | left -= okWidth; | 627 | left -= okWidth; |
620 | QRect r(left, rect.top() - titleHeight, closeWidth, titleHeight); | 628 | QRect r(left, rect.top() - titleHeight, closeWidth, titleHeight); |
621 | region = r; | 629 | region = r; |
622 | } | 630 | } |
623 | break; | 631 | break; |
624 | case Title: | 632 | case Title: |
625 | if ( !widget->isMaximized() ) { | 633 | if ( !widget->isMaximized() ) { |
626 | int width = rect.width() - helpWidth - closeWidth; | 634 | int width = rect.width() - helpWidth - closeWidth; |
627 | if ( ((HackWidget *)widget)->needsOk() ) | 635 | if ( ((HackWidget *)widget)->needsOk() ) |
628 | width -= okWidth; | 636 | width -= okWidth; |
629 | QRect r(rect.left()+helpWidth, rect.top() - titleHeight, | 637 | QRect r(rect.left()+helpWidth, rect.top() - titleHeight, |
630 | width, titleHeight); | 638 | width, titleHeight); |
631 | if (r.width() > 0) | 639 | if (r.width() > 0) |
632 | region = r; | 640 | region = r; |
633 | } | 641 | } |
634 | break; | 642 | break; |
635 | case Help: | 643 | case Help: |
636 | if ( helpExists || widget->testWFlags(Qt::WStyle_ContextHelp) ) { | 644 | if ( helpExists || widget->testWFlags(Qt::WStyle_ContextHelp) ) { |
637 | QRect r(rect.left(), rect.top() - titleHeight, | 645 | QRect r(rect.left(), rect.top() - titleHeight, |
638 | helpWidth, titleHeight); | 646 | helpWidth, titleHeight); |
639 | region = r; | 647 | region = r; |
640 | } | 648 | } |
641 | break; | 649 | break; |
642 | case Top: | 650 | case Top: |
643 | if ( !widget->isMaximized() ) { | 651 | if ( !widget->isMaximized() ) { |
644 | QRegion m = wdiface->mask(&wd); | 652 | QRegion m = wdiface->mask(&wd); |
645 | QRect br = m.boundingRect(); | 653 | QRect br = m.boundingRect(); |
646 | int b = wdiface->metric(WindowDecorationInterface::TopBorder,&wd); | 654 | int b = wdiface->metric(WindowDecorationInterface::TopBorder,&wd); |
647 | region = m & QRect( br.left()+grab, br.top(), | 655 | region = m & QRect( br.left()+grab, br.top(), |
648 | br.width()-2*grab, b ); | 656 | br.width()-2*grab, b ); |
649 | } | 657 | } |
650 | break; | 658 | break; |
651 | case Left: | 659 | case Left: |
652 | if ( !widget->isMaximized() ) { | 660 | if ( !widget->isMaximized() ) { |
653 | QRegion m = wdiface->mask(&wd); | 661 | QRegion m = wdiface->mask(&wd); |
654 | QRect br = m.boundingRect(); | 662 | QRect br = m.boundingRect(); |
655 | int b = wdiface->metric(WindowDecorationInterface::LeftBorder,&wd); | 663 | int b = wdiface->metric(WindowDecorationInterface::LeftBorder,&wd); |
656 | region = m & QRect( br.left(), br.top()+grab, | 664 | region = m & QRect( br.left(), br.top()+grab, |
657 | b, br.height()-2*grab ); | 665 | b, br.height()-2*grab ); |
658 | } | 666 | } |
659 | break; | 667 | break; |
660 | case Right: | 668 | case Right: |
661 | if ( !widget->isMaximized() ) { | 669 | if ( !widget->isMaximized() ) { |
662 | QRegion m = wdiface->mask(&wd); | 670 | QRegion m = wdiface->mask(&wd); |
663 | QRect br = m.boundingRect(); | 671 | QRect br = m.boundingRect(); |
664 | int b = wdiface->metric(WindowDecorationInterface::RightBorder,&wd); | 672 | int b = wdiface->metric(WindowDecorationInterface::RightBorder,&wd); |
665 | region = m & QRect( rect.right(), br.top()+grab, | 673 | region = m & QRect( rect.right(), br.top()+grab, |
666 | b, br.height()-2*grab ); | 674 | b, br.height()-2*grab ); |
667 | } | 675 | } |
668 | break; | 676 | break; |
669 | case Bottom: | 677 | case Bottom: |
670 | if ( !widget->isMaximized() ) { | 678 | if ( !widget->isMaximized() ) { |
671 | QRegion m = wdiface->mask(&wd); | 679 | QRegion m = wdiface->mask(&wd); |
672 | QRect br = m.boundingRect(); | 680 | QRect br = m.boundingRect(); |
673 | int b = wdiface->metric(WindowDecorationInterface::BottomBorder,&wd); | 681 | int b = wdiface->metric(WindowDecorationInterface::BottomBorder,&wd); |
674 | region = m & QRect( br.left()+grab, rect.bottom(), | 682 | region = m & QRect( br.left()+grab, rect.bottom(), |
675 | br.width()-2*grab, b ); | 683 | br.width()-2*grab, b ); |
676 | } | 684 | } |
677 | break; | 685 | break; |
678 | case TopLeft: | 686 | case TopLeft: |
679 | if ( !widget->isMaximized() ) { | 687 | if ( !widget->isMaximized() ) { |
680 | QRegion m = wdiface->mask(&wd); | 688 | QRegion m = wdiface->mask(&wd); |
681 | QRect br = m.boundingRect(); | 689 | QRect br = m.boundingRect(); |
682 | int tb = wdiface->metric(WindowDecorationInterface::TopBorder,&wd); | 690 | int tb = wdiface->metric(WindowDecorationInterface::TopBorder,&wd); |
683 | int lb = wdiface->metric(WindowDecorationInterface::LeftBorder,&wd); | 691 | int lb = wdiface->metric(WindowDecorationInterface::LeftBorder,&wd); |
684 | QRegion crgn( br.left(), br.top(), grab, tb ); | 692 | QRegion crgn( br.left(), br.top(), grab, tb ); |
685 | crgn |= QRect( br.left(), br.top(), lb, grab ); | 693 | crgn |= QRect( br.left(), br.top(), lb, grab ); |
686 | region = m & crgn; | 694 | region = m & crgn; |
687 | } | 695 | } |
688 | break; | 696 | break; |
689 | case TopRight: | 697 | case TopRight: |
690 | if ( !widget->isMaximized() ) { | 698 | if ( !widget->isMaximized() ) { |
691 | QRegion m = wdiface->mask(&wd); | 699 | QRegion m = wdiface->mask(&wd); |
692 | QRect br = m.boundingRect(); | 700 | QRect br = m.boundingRect(); |
693 | int tb = wdiface->metric(WindowDecorationInterface::TopBorder,&wd); | 701 | int tb = wdiface->metric(WindowDecorationInterface::TopBorder,&wd); |
694 | int rb = wdiface->metric(WindowDecorationInterface::RightBorder,&wd); | 702 | int rb = wdiface->metric(WindowDecorationInterface::RightBorder,&wd); |
695 | QRegion crgn( br.right()-grab, br.top(), grab, tb ); | 703 | QRegion crgn( br.right()-grab, br.top(), grab, tb ); |
696 | crgn |= QRect( br.right()-rb, br.top(), rb, grab ); | 704 | crgn |= QRect( br.right()-rb, br.top(), rb, grab ); |
697 | region = m & crgn; | 705 | region = m & crgn; |
698 | } | 706 | } |
699 | break; | 707 | break; |
700 | case BottomLeft: | 708 | case BottomLeft: |
701 | if ( !widget->isMaximized() ) { | 709 | if ( !widget->isMaximized() ) { |
702 | QRegion m = wdiface->mask(&wd); | 710 | QRegion m = wdiface->mask(&wd); |
703 | QRect br = m.boundingRect(); | 711 | QRect br = m.boundingRect(); |
704 | region = m & QRect( br.left(), br.bottom()-grab, grab, grab ); | 712 | region = m & QRect( br.left(), br.bottom()-grab, grab, grab ); |
705 | } | 713 | } |
706 | break; | 714 | break; |
707 | case BottomRight: | 715 | case BottomRight: |
708 | if ( !widget->isMaximized() ) { | 716 | if ( !widget->isMaximized() ) { |
709 | QRegion m = wdiface->mask(&wd); | 717 | QRegion m = wdiface->mask(&wd); |
710 | QRect br = m.boundingRect(); | 718 | QRect br = m.boundingRect(); |
711 | region = m & QRect( br.right()-grab, br.bottom()-grab, grab, grab ); | 719 | region = m & QRect( br.right()-grab, br.bottom()-grab, grab, grab ); |
712 | } | 720 | } |
713 | break; | 721 | break; |
714 | case All: | 722 | case All: |
715 | if ( widget->isMaximized() ) | 723 | if ( widget->isMaximized() ) |
716 | region = QWSDefaultDecoration::region(widget, rect, type); | 724 | region = QWSDefaultDecoration::region(widget, rect, type); |
717 | else | 725 | else |
718 | region = wdiface->mask(&wd) - rect; | 726 | region = wdiface->mask(&wd) - rect; |
719 | break; | 727 | break; |
720 | default: | 728 | default: |
721 | region = QWSDefaultDecoration::region(widget, rect, type); | 729 | region = QWSDefaultDecoration::region(widget, rect, type); |
722 | break; | 730 | break; |
723 | } | 731 | } |
724 | 732 | ||
725 | return region; | 733 | return region; |
726 | } | 734 | } |
727 | 735 | ||
728 | void QPEDecoration::paint(QPainter *painter, const QWidget *widget) | 736 | void QPEDecoration::paint(QPainter *painter, const QWidget *widget) |
729 | { | 737 | { |
730 | WindowDecorationInterface::WindowData wd; | 738 | WindowDecorationInterface::WindowData wd; |
731 | windowData( widget, wd ); | 739 | windowData( widget, wd ); |
732 | 740 | ||
733 | int titleWidth = getTitleWidth(widget); | 741 | int titleWidth = getTitleWidth(widget); |
734 | int titleHeight = wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); | 742 | int titleHeight = wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); |
735 | 743 | ||
736 | QRect rect(widget->rect()); | 744 | QRect rect(widget->rect()); |
737 | 745 | ||
738 | // title bar rect | 746 | // title bar rect |
739 | QRect tr( rect.left(), rect.top() - titleHeight, rect.width(), titleHeight ); | 747 | QRect tr( rect.left(), rect.top() - titleHeight, rect.width(), titleHeight ); |
740 | 748 | ||
741 | #ifndef QT_NO_PALETTE | 749 | #ifndef QT_NO_PALETTE |
742 | QRegion oldClip = painter->clipRegion(); | 750 | QRegion oldClip = painter->clipRegion(); |
743 | painter->setClipRegion( oldClip - QRegion( tr ) );// reduce flicker | 751 | painter->setClipRegion( oldClip - QRegion( tr ) );// reduce flicker |
744 | wdiface->drawArea( WindowDecorationInterface::Border, painter, &wd ); | 752 | wdiface->drawArea( WindowDecorationInterface::Border, painter, &wd ); |
745 | painter->setClipRegion( oldClip ); | 753 | painter->setClipRegion( oldClip ); |
746 | 754 | ||
747 | if (titleWidth > 0) { | 755 | if (titleWidth > 0) { |
748 | const QColorGroup &cg = widget->palette().active(); | 756 | const QColorGroup &cg = widget->palette().active(); |
749 | QBrush titleBrush; | 757 | QBrush titleBrush; |
750 | QPen titlePen; | 758 | QPen titlePen; |
751 | 759 | ||
752 | if ( wd.flags & WindowDecorationInterface::WindowData::Active ) { | 760 | if ( wd.flags & WindowDecorationInterface::WindowData::Active ) { |
753 | titleBrush = cg.brush(QColorGroup::Highlight); | 761 | titleBrush = cg.brush(QColorGroup::Highlight); |
754 | titlePen = cg.color(QColorGroup::HighlightedText); | 762 | titlePen = cg.color(QColorGroup::HighlightedText); |
755 | } else { | 763 | } else { |
756 | titleBrush = cg.brush(QColorGroup::Background); | 764 | titleBrush = cg.brush(QColorGroup::Background); |
757 | titlePen = cg.color(QColorGroup::Text); | 765 | titlePen = cg.color(QColorGroup::Text); |
758 | } | 766 | } |
759 | 767 | ||
760 | wdiface->drawArea( WindowDecorationInterface::Title, painter, &wd ); | 768 | wdiface->drawArea( WindowDecorationInterface::Title, painter, &wd ); |
761 | 769 | ||
762 | // Draw caption | 770 | // Draw caption |
763 | painter->setPen(titlePen); | 771 | painter->setPen(titlePen); |
764 | QFont f( QApplication::font() ); | 772 | QFont f( QApplication::font() ); |
765 | f.setWeight( QFont::Bold ); | 773 | f.setWeight( QFont::Bold ); |
766 | painter->setFont(f); | 774 | painter->setFont(f); |
767 | wdiface->drawArea( WindowDecorationInterface::TitleText, painter, &wd ); | 775 | wdiface->drawArea( WindowDecorationInterface::TitleText, painter, &wd ); |
768 | } | 776 | } |
769 | #endif //QT_NO_PALETTE | 777 | #endif //QT_NO_PALETTE |
770 | 778 | ||
771 | paintButton( painter, widget, (QWSDecoration::Region)Help, 0 ); | 779 | paintButton( painter, widget, (QWSDecoration::Region)Help, 0 ); |
772 | } | 780 | } |
773 | 781 | ||
774 | void QPEDecoration::paintButton(QPainter *painter, const QWidget *w, | 782 | void QPEDecoration::paintButton(QPainter *painter, const QWidget *w, |
775 | QWSDecoration::Region type, int state) | 783 | QWSDecoration::Region type, int state) |
776 | { | 784 | { |
777 | WindowDecorationInterface::Button b; | 785 | WindowDecorationInterface::Button b; |
778 | switch ((int)type) { | 786 | switch ((int)type) { |
779 | case Close: | 787 | case Close: |
780 | b = WindowDecorationInterface::Close; | 788 | b = WindowDecorationInterface::Close; |
781 | break; | 789 | break; |
782 | case Minimize: | 790 | case Minimize: |
783 | if ( ((HackWidget *)w)->needsOk() ) | 791 | if ( ((HackWidget *)w)->needsOk() ) |
784 | b = WindowDecorationInterface::OK; | 792 | b = WindowDecorationInterface::OK; |
785 | else if ( helpExists ) | 793 | else if ( helpExists ) |
786 | b = WindowDecorationInterface::Help; | 794 | b = WindowDecorationInterface::Help; |
787 | else | 795 | else |
788 | return; | 796 | return; |
789 | break; | 797 | break; |
790 | case Help: | 798 | case Help: |
791 | b = WindowDecorationInterface::Help; | 799 | b = WindowDecorationInterface::Help; |
792 | break; | 800 | break; |
793 | case Maximize: | 801 | case Maximize: |
794 | b = WindowDecorationInterface::Maximize; | 802 | b = WindowDecorationInterface::Maximize; |
795 | break; | 803 | break; |
796 | default: | 804 | default: |
797 | return; | 805 | return; |
798 | } | 806 | } |
799 | 807 | ||
800 | WindowDecorationInterface::WindowData wd; | 808 | WindowDecorationInterface::WindowData wd; |
801 | windowData( w, wd ); | 809 | windowData( w, wd ); |
802 | 810 | ||
803 | int titleHeight = wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); | 811 | int titleHeight = wdiface->metric(WindowDecorationInterface::TitleHeight,&wd); |
804 | QRect rect(w->rect()); | 812 | QRect rect(w->rect()); |
805 | QRect tr( rect.left(), rect.top() - titleHeight, rect.width(), titleHeight ); | 813 | QRect tr( rect.left(), rect.top() - titleHeight, rect.width(), titleHeight ); |
806 | QRect brect(region(w, w->rect(), type).boundingRect()); | 814 | QRect brect(region(w, w->rect(), type).boundingRect()); |
807 | 815 | ||
808 | const QColorGroup &cg = w->palette().active(); | 816 | const QColorGroup &cg = w->palette().active(); |
809 | if ( wd.flags & WindowDecorationInterface::WindowData::Active ) | 817 | if ( wd.flags & WindowDecorationInterface::WindowData::Active ) |
810 | painter->setPen( cg.color(QColorGroup::HighlightedText) ); | 818 | painter->setPen( cg.color(QColorGroup::HighlightedText) ); |
811 | else | 819 | else |
812 | painter->setPen( cg.color(QColorGroup::Text) ); | 820 | painter->setPen( cg.color(QColorGroup::Text) ); |
813 | 821 | ||
814 | QRegion oldClip = painter->clipRegion(); | 822 | QRegion oldClip = painter->clipRegion(); |
815 | painter->setClipRegion( QRect(brect.x(), tr.y(), brect.width(), tr.height()) ); // reduce flicker | 823 | painter->setClipRegion( QRect(brect.x(), tr.y(), brect.width(), tr.height()) ); // reduce flicker |
816 | wdiface->drawArea( WindowDecorationInterface::Title, painter, &wd ); | 824 | wdiface->drawArea( WindowDecorationInterface::Title, painter, &wd ); |
817 | wdiface->drawButton( b, painter, &wd, brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)state ); | 825 | wdiface->drawButton( b, painter, &wd, brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)state ); |
818 | painter->setClipRegion( oldClip ); | 826 | painter->setClipRegion( oldClip ); |
819 | } | 827 | } |
820 | 828 | ||
821 | //#define QPE_DONT_SHOW_TITLEBAR | 829 | //#define QPE_DONT_SHOW_TITLEBAR |
822 | 830 | ||
823 | void QPEDecoration::maximize( QWidget *widget ) | 831 | void QPEDecoration::maximize( QWidget *widget ) |
824 | { | 832 | { |
825 | #ifdef QPE_DONT_SHOW_TITLEBAR | 833 | #ifdef QPE_DONT_SHOW_TITLEBAR |
826 | if ( !widget->inherits( "QDialog" ) ) { | 834 | if ( !widget->inherits( "QDialog" ) ) { |
827 | widget->setGeometry( qt_maxWindowRect ); | 835 | widget->setGeometry( qt_maxWindowRect ); |
828 | } else | 836 | } else |
829 | #endif | 837 | #endif |
830 | { | 838 | { |
831 | QWSDecoration::maximize( widget ); | 839 | QWSDecoration::maximize( widget ); |
832 | } | 840 | } |
833 | } | 841 | } |
834 | 842 | ||
835 | #ifndef QT_NO_DIALOG | 843 | #ifndef QT_NO_DIALOG |
836 | class HackDialog : public QDialog | 844 | class HackDialog : public QDialog |
837 | { | 845 | { |
838 | public: | 846 | public: |
839 | void acceptIt() { | 847 | void acceptIt() { |
840 | if ( isA( "QMessageBox" ) ) | 848 | if ( isA( "QMessageBox" ) ) |
841 | qApp->postEvent( this, new QKeyEvent( QEvent::KeyPress, Key_Enter, '\n', 0, "\n" ) ); | 849 | qApp->postEvent( this, new QKeyEvent( QEvent::KeyPress, Key_Enter, '\n', 0, "\n" ) ); |
842 | else | 850 | else |
843 | accept(); | 851 | accept(); |
844 | } | 852 | } |
845 | }; | 853 | }; |
846 | #endif | 854 | #endif |
847 | 855 | ||
848 | 856 | ||
849 | void QPEDecoration::minimize( QWidget *widget ) | 857 | void QPEDecoration::minimize( QWidget *widget ) |
850 | { | 858 | { |
851 | #ifndef QT_NO_DIALOG | 859 | #ifndef QT_NO_DIALOG |
852 | // We use the minimize button as an "accept" button. | 860 | // We use the minimize button as an "accept" button. |
853 | if ( widget->inherits( "QDialog" ) ) { | 861 | if ( widget->inherits( "QDialog" ) ) { |
854 | HackDialog *d = (HackDialog *)widget; | 862 | HackDialog *d = (HackDialog *)widget; |
855 | d->acceptIt(); | 863 | d->acceptIt(); |
856 | } | 864 | } |
857 | #endif | 865 | #endif |
858 | else if ( ((HackWidget *)widget)->needsOk() ) { | 866 | else if ( ((HackWidget *)widget)->needsOk() ) { |
859 | QSignal s; | 867 | QSignal s; |
860 | s.connect( widget, SLOT( accept() ) ); | 868 | s.connect( widget, SLOT( accept() ) ); |
861 | s.activate(); | 869 | s.activate(); |
862 | } else { | 870 | } else { |
863 | help( widget ); | 871 | help( widget ); |
864 | } | 872 | } |
865 | } | 873 | } |
866 | 874 | ||
867 | void QPEDecoration::help( QWidget *w ) | 875 | void QPEDecoration::help( QWidget *w ) |
868 | { | 876 | { |
869 | if ( helpExists ) { | 877 | if ( helpExists ) { |
870 | Global::execute( "helpbrowser", helpFile ); | 878 | Global::execute( "helpbrowser", helpFile ); |
871 | } else if ( w && w->testWFlags(Qt::WStyle_ContextHelp) ) { | 879 | } else if ( w && w->testWFlags(Qt::WStyle_ContextHelp) ) { |
872 | QWhatsThis::enterWhatsThisMode(); | 880 | QWhatsThis::enterWhatsThisMode(); |
873 | QWhatsThis::leaveWhatsThisMode( qApp->tr( | 881 | QWhatsThis::leaveWhatsThisMode( QObject::tr( |
874 | "<Qt>Comprehensive help is not available for this application, " | 882 | "<Qt>Comprehensive help is not available for this application, " |
875 | "however there is context-sensitive help.<p>To use context-sensitive help:<p>" | 883 | "however there is context-sensitive help.<p>To use context-sensitive help:<p>" |
876 | "<ol><li>click and hold the help button." | 884 | "<ol><li>click and hold the help button." |
877 | "<li>when the title bar shows <b>What's this...</b>, " | 885 | "<li>when the title bar shows <b>What's this...</b>, " |
878 | "click on any control.</ol></Qt>" ) ); | 886 | "click on any control.</ol></Qt>" ) ); |
879 | } | 887 | } |
880 | } | 888 | } |
881 | 889 | ||
882 | void QPEDecoration::windowData( const QWidget *w, WindowDecorationInterface::WindowData &wd ) const | 890 | void QPEDecoration::windowData( const QWidget *w, WindowDecorationInterface::WindowData &wd ) const |
883 | { | 891 | { |
884 | wd.rect = w->rect(); | 892 | wd.rect = w->rect(); |
885 | if ( qpeManager->whatsThisWidget() == w ) | 893 | if ( qpeManager->whatsThisWidget() == w ) |
886 | wd.caption = qApp->tr("What's this..." ); | 894 | wd.caption = QObject::tr("What's this..." ); |
887 | else | 895 | else |
888 | wd.caption = w->caption(); | 896 | wd.caption = w->caption(); |
889 | wd.palette = qApp->palette(); | 897 | wd.palette = qApp->palette(); |
890 | wd.flags = 0; | 898 | wd.flags = 0; |
891 | wd.flags |= w->isMaximized() ? WindowDecorationInterface::WindowData::Maximized : 0; | 899 | wd.flags |= w->isMaximized() ? WindowDecorationInterface::WindowData::Maximized : 0; |
892 | wd.flags |= w->testWFlags(Qt::WStyle_Dialog) ? WindowDecorationInterface::WindowData::Dialog : 0; | 900 | wd.flags |= w->testWFlags(Qt::WStyle_Dialog) ? WindowDecorationInterface::WindowData::Dialog : 0; |
893 | const QWidget *active = qpeManager->activeWidget(); | 901 | const QWidget *active = qpeManager->activeWidget(); |
894 | wd.flags |= w == active ? WindowDecorationInterface::WindowData::Active : 0; | 902 | wd.flags |= w == active ? WindowDecorationInterface::WindowData::Active : 0; |
895 | wd.reserved = 1; | 903 | wd.reserved = 1; |
896 | } | 904 | } |
897 | 905 | ||
898 | /* | 906 | /* |
899 | #ifndef QT_NO_POPUPMENU | 907 | #ifndef QT_NO_POPUPMENU |
900 | QPopupMenu *QPEDecoration::menu(QWSManager*, const QWidget*, const QPoint&) | 908 | QPopupMenu *QPEDecoration::menu(QWSManager*, const QWidget*, const QPoint&) |
901 | { | 909 | { |
902 | return 0; | 910 | return 0; |
903 | } | 911 | } |
904 | #endif | 912 | #endif |
905 | */ | 913 | */ |
906 | 914 | ||
907 | 915 | ||
908 | 916 | ||
909 | 917 | ||
910 | #endif // QT_NO_QWS_QPE_WM_STYLE | 918 | #endif // QT_NO_QWS_QPE_WM_STYLE |
diff --git a/library/qpedecoration_qws.h b/library/qpedecoration_qws.h index 6628ba2..d0a2005 100644 --- a/library/qpedecoration_qws.h +++ b/library/qpedecoration_qws.h | |||
@@ -1,113 +1,113 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 QPE_DECORATION_QWS_H__ | 20 | #ifndef QPE_DECORATION_QWS_H__ |
21 | #define QPE_DECORATION_QWS_H__ | 21 | #define QPE_DECORATION_QWS_H__ |
22 | 22 | ||
23 | 23 | ||
24 | #ifdef QWS | 24 | #ifdef QWS |
25 | #include <qwsdefaultdecoration_qws.h> | 25 | #include <qwsdefaultdecoration_qws.h> |
26 | #include <qimage.h> | 26 | #include <qimage.h> |
27 | #include <qdatetime.h> | 27 | #include <qdatetime.h> |
28 | #include <qguardedptr.h> | 28 | #include <qguardedptr.h> |
29 | #include "windowdecorationinterface.h" | 29 | #include "windowdecorationinterface.h" |
30 | 30 | ||
31 | 31 | ||
32 | #ifndef QT_NO_QWS_QPE_WM_STYLE | 32 | #ifndef QT_NO_QWS_QPE_WM_STYLE |
33 | 33 | ||
34 | class QPEManager; | 34 | class QPEManager; |
35 | class QTimer; | 35 | class QTimer; |
36 | 36 | ||
37 | class QPEDecoration : public QWSDefaultDecoration | 37 | class QPEDecoration : public QWSDefaultDecoration |
38 | { | 38 | { |
39 | public: | 39 | public: |
40 | QPEDecoration(); | 40 | QPEDecoration(); |
41 | QPEDecoration( const QString &plugin ); | 41 | QPEDecoration( const QString &plugin ); |
42 | virtual ~QPEDecoration(); | 42 | virtual ~QPEDecoration(); |
43 | 43 | ||
44 | virtual QRegion region(const QWidget *, const QRect &rect, Region); | 44 | virtual QRegion region(const QWidget *, const QRect &rect, Region); |
45 | virtual void paint(QPainter *, const QWidget *); | 45 | virtual void paint(QPainter *, const QWidget *); |
46 | virtual void paintButton(QPainter *, const QWidget *, Region, int state); | 46 | virtual void paintButton(QPainter *, const QWidget *, Region, int state); |
47 | 47 | ||
48 | void maximize( QWidget * ); | 48 | void maximize( QWidget * ); |
49 | void minimize( QWidget * ); | 49 | void minimize( QWidget * ); |
50 | virtual void help( QWidget * ); | 50 | virtual void help( QWidget * ); |
51 | 51 | ||
52 | enum QPERegion { Help=LastRegion+1 }; | 52 | enum QPERegion { Help=LastRegion+1 }; |
53 | void buttonClicked( QPERegion r ); | 53 | void buttonClicked( QPERegion r ); |
54 | 54 | ||
55 | protected: | 55 | protected: |
56 | virtual int getTitleHeight(const QWidget *); | 56 | virtual int getTitleHeight(const QWidget *); |
57 | virtual const char **menuPixmap(); | 57 | virtual const char **menuPixmap(); |
58 | virtual const char **closePixmap(); | 58 | virtual const char **closePixmap(); |
59 | virtual const char **minimizePixmap(); | 59 | virtual const char **minimizePixmap(); |
60 | virtual const char **maximizePixmap(); | 60 | virtual const char **maximizePixmap(); |
61 | virtual const char **normalizePixmap(); | 61 | virtual const char **normalizePixmap(); |
62 | 62 | ||
63 | private: | 63 | private: |
64 | void windowData( const QWidget *w, WindowDecorationInterface::WindowData &wd ) const; | 64 | void windowData( const QWidget *w, WindowDecorationInterface::WindowData &wd ) const; |
65 | 65 | ||
66 | void init ( const QString & ); | 66 | void init ( const QString & ); |
67 | 67 | ||
68 | protected: | 68 | protected: |
69 | QImage imageOk; | 69 | QImage imageOk; |
70 | QImage imageClose; | 70 | QImage imageClose; |
71 | QImage imageHelp; | 71 | QImage imageHelp; |
72 | QString helpFile; | 72 | QString helpFile; |
73 | bool helpExists; | 73 | bool helpExists; |
74 | QPEManager *qpeManager; | 74 | QPEManager *qpeManager; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | 77 | ||
78 | class QPEManager : public QObject | 78 | class QPEManager : public QObject |
79 | { | 79 | { |
80 | Q_OBJECT | 80 | Q_OBJECT |
81 | friend class QPEDecoration; | 81 | friend class QPEDecoration; |
82 | public: | 82 | public: |
83 | QPEManager( QPEDecoration *d, QObject *parent=0 ); | 83 | QPEManager( QPEDecoration *d, QObject *parent=0 ); |
84 | 84 | ||
85 | void updateActive(); | 85 | void updateActive(); |
86 | const QWidget *activeWidget() const { return (const QWidget *)active; } | 86 | const QWidget *activeWidget() const { return (const QWidget *)active; } |
87 | const QWidget *whatsThisWidget() const { return (const QWidget *)whatsThis; } | 87 | const QWidget *whatsThisWidget() const { return (const QWidget *)whatsThis; } |
88 | 88 | ||
89 | protected: | 89 | protected: |
90 | int pointInQpeRegion( QWidget *w, const QPoint &p ); | 90 | int pointInQpeRegion( QWidget *w, const QPoint &p ); |
91 | virtual bool eventFilter( QObject *, QEvent * ); | 91 | virtual bool eventFilter( QObject *, QEvent * ); |
92 | void drawButton( QWidget *w, QPEDecoration::QPERegion r, int state ); | 92 | void drawButton( QWidget *w, QPEDecoration::QPERegion r, int state ); |
93 | void drawTitle( QWidget *w ); | 93 | void drawTitle( QWidget *w ); |
94 | 94 | ||
95 | protected slots: | 95 | protected slots: |
96 | void whatsThisTimeout(); | 96 | void whatsThisTimeout(); |
97 | 97 | ||
98 | protected: | 98 | protected: |
99 | QPEDecoration *decoration; | 99 | QPEDecoration *decoration; |
100 | QGuardedPtr<QWidget> active; | 100 | QGuardedPtr<QWidget> active; |
101 | int helpState; | 101 | int helpState; |
102 | QTime pressTime; | 102 | QTime pressTime; |
103 | QTimer *wtTimer; | 103 | QTimer *wtTimer; |
104 | bool inWhatsThis; | 104 | bool inWhatsThis; |
105 | QGuardedPtr<QWidget> whatsThis; | 105 | QGuardedPtr<QWidget> whatsThis; |
106 | }; | 106 | }; |
107 | 107 | ||
108 | 108 | ||
109 | #endif // QT_NO_QWS_QPE_WM_STYLE | 109 | #endif // QT_NO_QWS_QPE_WM_STYLE |
110 | 110 | ||
111 | 111 | ||
112 | #endif // QPE_DECORATION_QWS_H__ | 112 | #endif // QPE_DECORATION_QWS_H__ |
113 | #endif // QWS | 113 | #endif // QWS |
diff --git a/library/qpemessagebox.cpp b/library/qpemessagebox.cpp index 02db760..13c45f1 100644 --- a/library/qpemessagebox.cpp +++ b/library/qpemessagebox.cpp | |||
@@ -1,13 +1,33 @@ | |||
1 | #include "stringutil.h" | ||
2 | |||
1 | #include "qpemessagebox.h" | 3 | #include "qpemessagebox.h" |
2 | #include <qmessagebox.h> | 4 | #include <qmessagebox.h> |
3 | 5 | ||
6 | static void never_called_tr_function_um_libqpe_ts_etwas_unter_zu_jubeln() { | ||
7 | (void)QMessageBox::tr("Yes"); | ||
8 | (void)QMessageBox::tr("No"); | ||
9 | } | ||
10 | |||
11 | |||
12 | /*! | ||
13 | \class QPEMessageBox qpemessagebox.h | ||
14 | \brief A message box that provides yes, no and cancel options. | ||
15 | |||
16 | \ingroup qtopiaemb | ||
17 | */ | ||
18 | |||
19 | /*! | ||
20 | Displays a QMessageBox with parent \a parent and caption \a caption. | ||
21 | The message displayed is "Are you sure you want to delete: ", | ||
22 | followed by \a object. | ||
23 | */ | ||
4 | bool QPEMessageBox::confirmDelete( QWidget *parent, const QString & caption, | 24 | bool QPEMessageBox::confirmDelete( QWidget *parent, const QString & caption, |
5 | const QString & object ) | 25 | const QString & object ) |
6 | { | 26 | { |
7 | QString msg = QObject::tr("Are you sure you want to delete\n %1?").arg( object ); | 27 | QString msg = QObject::tr("<qt>Are you sure you want to delete\n %1?</qt>").arg( Qtopia::escapeString( object ) ); // use <qt> an esacpe String.... |
8 | int r = QMessageBox::warning( parent, caption, msg, QMessageBox::Yes, | 28 | int r = QMessageBox::warning( parent, caption, msg, QMessageBox::Yes, |
9 | QMessageBox::No|QMessageBox::Default| | 29 | QMessageBox::No|QMessageBox::Default| |
10 | QMessageBox::Escape, 0 ); | 30 | QMessageBox::Escape, 0 ); |
11 | 31 | ||
12 | return r == QMessageBox::Yes; | 32 | return r == QMessageBox::Yes; |
13 | } | 33 | } |
diff --git a/library/sound.cpp b/library/sound.cpp index 1ff3b3f..c8704f9 100644 --- a/library/sound.cpp +++ b/library/sound.cpp | |||
@@ -1,198 +1,221 @@ | |||
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 <qpe/resource.h> | 21 | #include <qpe/resource.h> |
22 | #include <qpe/sound.h> | 22 | #include <qpe/sound.h> |
23 | #include <qpe/qcopenvelope_qws.h> | 23 | #include <qpe/qcopenvelope_qws.h> |
24 | 24 | ||
25 | #include <qsound.h> | 25 | #include <qsound.h> |
26 | #include <qfile.h> | 26 | #include <qfile.h> |
27 | 27 | ||
28 | #include <unistd.h> | 28 | #include <unistd.h> |
29 | #include <fcntl.h> | 29 | #include <fcntl.h> |
30 | #include <sys/ioctl.h> | 30 | #include <sys/ioctl.h> |
31 | #include <sys/soundcard.h> | 31 | #include <sys/soundcard.h> |
32 | 32 | ||
33 | #include "config.h" | 33 | #include "config.h" |
34 | #include <qmessagebox.h> | 34 | #include <qmessagebox.h> |
35 | #ifndef QT_NO_SOUND | 35 | #ifndef QT_NO_SOUND |
36 | static int WAVsoundDuration(const QString& filename) | 36 | static int WAVsoundDuration(const QString& filename) |
37 | { | 37 | { |
38 | // bad solution | 38 | // bad solution |
39 | 39 | ||
40 | // most of this is copied from qsoundqss.cpp | 40 | // most of this is copied from qsoundqss.cpp |
41 | 41 | ||
42 | QFile input(filename); | 42 | QFile input(filename); |
43 | if ( !input.open(IO_ReadOnly) ) | 43 | if ( !input.open(IO_ReadOnly) ) |
44 | return 0; | 44 | return 0; |
45 | 45 | ||
46 | struct QRiffChunk { | 46 | struct QRiffChunk { |
47 | char id[4]; | 47 | char id[4]; |
48 | Q_UINT32 size; | 48 | Q_UINT32 size; |
49 | char data[4/*size*/]; | 49 | char data[4/*size*/]; |
50 | } chunk; | 50 | } chunk; |
51 | 51 | ||
52 | struct { | 52 | struct { |
53 | Q_INT16 formatTag; | 53 | Q_INT16 formatTag; |
54 | Q_INT16 channels; | 54 | Q_INT16 channels; |
55 | Q_INT32 samplesPerSec; | 55 | Q_INT32 samplesPerSec; |
56 | Q_INT32 avgBytesPerSec; | 56 | Q_INT32 avgBytesPerSec; |
57 | Q_INT16 blockAlign; | 57 | Q_INT16 blockAlign; |
58 | Q_INT16 wBitsPerSample; | 58 | Q_INT16 wBitsPerSample; |
59 | } chunkdata; | 59 | } chunkdata; |
60 | 60 | ||
61 | int total = 0; | 61 | int total = 0; |
62 | 62 | ||
63 | while(1) { | 63 | while(1) { |
64 | // Keep reading chunks... | 64 | // Keep reading chunks... |
65 | const int n = sizeof(chunk)-sizeof(chunk.data); | 65 | const int n = sizeof(chunk)-sizeof(chunk.data); |
66 | if ( input.readBlock((char*)&chunk,n) != n ) | 66 | if ( input.readBlock((char*)&chunk,n) != n ) |
67 | break; | 67 | break; |
68 | if ( qstrncmp(chunk.id,"data",4) == 0 ) { | 68 | if ( qstrncmp(chunk.id,"data",4) == 0 ) { |
69 | total += chunkdata.avgBytesPerSec ? | 69 | total += chunkdata.avgBytesPerSec ? |
70 | chunk.size * 1000 / chunkdata.avgBytesPerSec : 0; | 70 | chunk.size * 1000 / chunkdata.avgBytesPerSec : 0; |
71 | //qDebug("%d bytes of PCM (%dms)", chunk.size,chunkdata.avgBytesPerSec ? chunk.size * 1000 / chunkdata.avgBytesPerSec : 0); | 71 | //qDebug("%d bytes of PCM (%dms)", chunk.size,chunkdata.avgBytesPerSec ? chunk.size * 1000 / chunkdata.avgBytesPerSec : 0); |
72 | input.at(input.at()+chunk.size-4); | 72 | input.at(input.at()+chunk.size-4); |
73 | } else if ( qstrncmp(chunk.id,"RIFF",4) == 0 ) { | 73 | } else if ( qstrncmp(chunk.id,"RIFF",4) == 0 ) { |
74 | char d[4]; | 74 | char d[4]; |
75 | if ( input.readBlock(d,4) != 4 ) | 75 | if ( input.readBlock(d,4) != 4 ) |
76 | return 0; | 76 | return 0; |
77 | if ( qstrncmp(d,"WAVE",4) != 0 ) { | 77 | if ( qstrncmp(d,"WAVE",4) != 0 ) { |
78 | // skip | 78 | // skip |
79 | //qDebug("skip %.4s RIFF chunk",d); | 79 | //qDebug("skip %.4s RIFF chunk",d); |
80 | if ( chunk.size < 10000000 ) | 80 | if ( chunk.size < 10000000 ) |
81 | (void)input.at(input.at()+chunk.size-4); | 81 | (void)input.at(input.at()+chunk.size-4); |
82 | } | 82 | } |
83 | } else if ( qstrncmp(chunk.id,"fmt ",4) == 0 ) { | 83 | } else if ( qstrncmp(chunk.id,"fmt ",4) == 0 ) { |
84 | if ( input.readBlock((char*)&chunkdata,sizeof(chunkdata)) != sizeof(chunkdata) ) | 84 | if ( input.readBlock((char*)&chunkdata,sizeof(chunkdata)) != sizeof(chunkdata) ) |
85 | return 0; | 85 | return 0; |
86 | #define WAVE_FORMAT_PCM 1 | 86 | #define WAVE_FORMAT_PCM 1 |
87 | if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { | 87 | if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { |
88 | //qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); | 88 | //qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); |
89 | return 0; | 89 | return 0; |
90 | } | 90 | } |
91 | } else { | 91 | } else { |
92 | //qDebug("skip %.4s chunk",chunk.id); | 92 | //qDebug("skip %.4s chunk",chunk.id); |
93 | // ignored chunk | 93 | // ignored chunk |
94 | if ( chunk.size < 10000000 ) | 94 | if ( chunk.size < 10000000 ) |
95 | (void)input.at(input.at()+chunk.size); | 95 | (void)input.at(input.at()+chunk.size); |
96 | } | 96 | } |
97 | } | 97 | } |
98 | 98 | ||
99 | //qDebug("%dms",total); | 99 | //qDebug("%dms",total); |
100 | return total; | 100 | return total; |
101 | } | 101 | } |
102 | 102 | ||
103 | class SoundData : public QSound { | 103 | class SoundData : public QSound { |
104 | public: | 104 | public: |
105 | SoundData ( const QString& name ) : | 105 | SoundData ( const QString& name ) : |
106 | QSound ( Resource::findSound ( name )), | 106 | QSound ( Resource::findSound ( name )), |
107 | filename ( Resource::findSound ( name )) | 107 | filename ( Resource::findSound ( name )) |
108 | { | 108 | { |
109 | loopsleft=0; | 109 | loopsleft=0; |
110 | ms = WAVsoundDuration(filename); | 110 | ms = WAVsoundDuration(filename); |
111 | } | 111 | } |
112 | 112 | ||
113 | void playLoop ( int loopcnt = -1 ) | 113 | void playLoop ( int loopcnt = -1 ) |
114 | { | 114 | { |
115 | // needs server support | 115 | // needs server support |
116 | loopsleft = loopcnt; | 116 | loopsleft = loopcnt; |
117 | 117 | ||
118 | if ( ms ) | 118 | if ( ms ) |
119 | startTimer ( ms > 50 ? ms-50 : 0 ); // 50 for latency | 119 | startTimer ( ms > 50 ? ms-50 : 0 ); // 50 for latency |
120 | play ( ); | 120 | play ( ); |
121 | } | 121 | } |
122 | 122 | ||
123 | void timerEvent ( QTimerEvent *e ) | 123 | void timerEvent ( QTimerEvent *e ) |
124 | { | 124 | { |
125 | if ( loopsleft >= 0 ) { | 125 | if ( loopsleft >= 0 ) { |
126 | if ( --loopsleft <= 0 ) { | 126 | if ( --loopsleft <= 0 ) { |
127 | killTimer ( e-> timerId ( )); | 127 | killTimer ( e-> timerId ( )); |
128 | loopsleft = 0; | 128 | loopsleft = 0; |
129 | return; | 129 | return; |
130 | } | 130 | } |
131 | } | 131 | } |
132 | play(); | 132 | play(); |
133 | } | 133 | } |
134 | 134 | ||
135 | bool isFinished ( ) const | 135 | bool isFinished ( ) const |
136 | { | 136 | { |
137 | return ( loopsleft == 0 ); | 137 | return ( loopsleft == 0 ); |
138 | } | 138 | } |
139 | 139 | ||
140 | private: | 140 | private: |
141 | QString filename; | 141 | QString filename; |
142 | int loopsleft; | 142 | int loopsleft; |
143 | int ms; | 143 | int ms; |
144 | }; | 144 | }; |
145 | 145 | ||
146 | #endif | 146 | #endif |
147 | 147 | ||
148 | /*! Opens a wave sound file \a name for playing | ||
149 | * Resource is used for finding the file | ||
150 | **/ | ||
148 | Sound::Sound(const QString& name) | 151 | Sound::Sound(const QString& name) |
149 | { | 152 | { |
150 | #ifndef QT_NO_SOUND | 153 | #ifndef QT_NO_SOUND |
151 | d = new SoundData(name); | 154 | d = new SoundData(name); |
152 | #endif | 155 | #endif |
153 | } | 156 | } |
154 | 157 | ||
158 | /*! Destroys the sound */ | ||
155 | Sound::~Sound() | 159 | Sound::~Sound() |
156 | { | 160 | { |
157 | #ifndef QT_NO_SOUND | 161 | #ifndef QT_NO_SOUND |
158 | delete d; | 162 | delete d; |
159 | #endif | 163 | #endif |
160 | } | 164 | } |
161 | 165 | ||
166 | /*! Play the sound once */ | ||
162 | void Sound::play() | 167 | void Sound::play() |
163 | { | 168 | { |
164 | #ifndef QT_NO_SOUND | 169 | #ifndef QT_NO_SOUND |
165 | d->playLoop(1); | 170 | d->playLoop(1); |
166 | #endif | 171 | #endif |
167 | } | 172 | } |
168 | 173 | ||
174 | /*! Play the sound, repeatedly until stop() is called */ | ||
169 | void Sound::playLoop() | 175 | void Sound::playLoop() |
170 | { | 176 | { |
171 | #ifndef QT_NO_SOUND | 177 | #ifndef QT_NO_SOUND |
172 | d->killTimers(); | 178 | d->killTimers(); |
173 | d->playLoop(); | 179 | d->playLoop(); |
174 | #endif | 180 | #endif |
175 | } | 181 | } |
176 | 182 | ||
183 | /*! Do not repeat the sound after it finishes. This will end a playLoop() */ | ||
177 | void Sound::stop() | 184 | void Sound::stop() |
178 | { | 185 | { |
179 | #ifndef QT_NO_SOUND | 186 | #ifndef QT_NO_SOUND |
180 | d->killTimers(); | 187 | d->killTimers(); |
181 | #endif | 188 | #endif |
182 | } | 189 | } |
183 | 190 | ||
184 | bool Sound::isFinished() const | 191 | bool Sound::isFinished() const |
185 | { | 192 | { |
186 | #ifndef QT_NO_SOUND | 193 | #ifndef QT_NO_SOUND |
187 | return d->isFinished(); | 194 | return d->isFinished(); |
188 | #else | 195 | #else |
189 | return true; | 196 | return true; |
190 | #endif | 197 | #endif |
191 | } | 198 | } |
192 | 199 | ||
200 | /*! Sounds the audible system alarm. This is used for applications such | ||
201 | as Calendar when it needs to alarm the user of an event. | ||
202 | */ | ||
193 | void Sound::soundAlarm() | 203 | void Sound::soundAlarm() |
194 | { | 204 | { |
195 | #ifndef QT_NO_COP | 205 | #ifndef QT_NO_COP |
196 | QCopEnvelope( "QPE/TaskBar", "soundAlarm()" ); | 206 | QCopEnvelope( "QPE/TaskBar", "soundAlarm()" ); |
197 | #endif | 207 | #endif |
198 | } | 208 | } |
209 | |||
210 | |||
211 | /*! \class Sound | ||
212 | \brief The Sound class plays WAVE sound files and can invoke the audible alarm. | ||
213 | |||
214 | The Sound class is constructed with the .wav music file name. The Sound | ||
215 | class retrieves the sound file from the shared Resource class. This class | ||
216 | ties together QSound and the available sound resources. | ||
217 | |||
218 | To sound an audible system alarm, call the static method soundAlarm() | ||
219 | |||
220 | \ingroup qtopiaemb | ||
221 | */ | ||
diff --git a/library/storage.cpp b/library/storage.cpp index 4e07ec6..1ce43bc 100644 --- a/library/storage.cpp +++ b/library/storage.cpp | |||
@@ -1,261 +1,346 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) Holger 'zecke' Freyther <freyther@kde.org> | 2 | ** Copyright (C) Holger 'zecke' Freyther <freyther@kde.org> |
3 | ** Copyright (C) Lorn Potter <llornkcor@handhelds.org> | 3 | ** Copyright (C) Lorn Potter <llornkcor@handhelds.org> |
4 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 4 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
5 | ** | 5 | ** |
6 | ** This file is part of Opie Environment. | 6 | ** This file is part of Opie Environment. |
7 | ** | 7 | ** |
8 | ** This file may be distributed and/or modified under the terms of the | 8 | ** This file may be distributed and/or modified under the terms of the |
9 | ** GNU General Public License version 2 as published by the Free Software | 9 | ** GNU General Public License version 2 as published by the Free Software |
10 | ** Foundation and appearing in the file LICENSE.GPL included in the | 10 | ** Foundation and appearing in the file LICENSE.GPL included in the |
11 | ** packaging of this file. | 11 | ** packaging of this file. |
12 | ** | 12 | ** |
13 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 13 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
14 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 14 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
15 | ** | 15 | ** |
16 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 16 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
17 | ** | 17 | ** |
18 | ** Contact info@trolltech.com if any conditions of this licensing are | 18 | ** Contact info@trolltech.com if any conditions of this licensing are |
19 | ** not clear to you. | 19 | ** not clear to you. |
20 | ** | 20 | ** |
21 | **********************************************************************/ | 21 | **********************************************************************/ |
22 | 22 | ||
23 | #include <qpe/storage.h> | 23 | #include <qpe/storage.h> |
24 | #if defined(QT_QWS_SL5XXX) | 24 | #if defined(QT_QWS_SL5XXX) |
25 | #include <qpe/custom.h> | 25 | #include <qpe/custom.h> |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | #include <qfile.h> | 28 | #include <qfile.h> |
29 | #include <qtimer.h> | 29 | #include <qtimer.h> |
30 | #include <qcopchannel_qws.h> | 30 | #include <qcopchannel_qws.h> |
31 | 31 | ||
32 | #include <stdio.h> | 32 | #include <stdio.h> |
33 | 33 | ||
34 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 34 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
35 | #include <sys/vfs.h> | 35 | #include <sys/vfs.h> |
36 | #include <mntent.h> | 36 | #include <mntent.h> |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | #include <qstringlist.h> | 39 | #include <qstringlist.h> |
40 | 40 | ||
41 | #include <sys/vfs.h> | 41 | #include <sys/vfs.h> |
42 | #include <mntent.h> | 42 | #include <mntent.h> |
43 | 43 | ||
44 | 44 | ||
45 | static bool isCF(const QString& m) | 45 | static bool isCF(const QString& m) |
46 | { | 46 | { |
47 | FILE* f = fopen("/var/run/stab", "r"); | 47 | FILE* f = fopen("/var/run/stab", "r"); |
48 | if (!f) f = fopen("/var/state/pcmcia/stab", "r"); | 48 | if (!f) f = fopen("/var/state/pcmcia/stab", "r"); |
49 | if (!f) f = fopen("/var/lib/pcmcia/stab", "r"); | 49 | if (!f) f = fopen("/var/lib/pcmcia/stab", "r"); |
50 | if ( f ) { | 50 | if ( f ) { |
51 | char line[1024]; | 51 | char line[1024]; |
52 | char devtype[80]; | 52 | char devtype[80]; |
53 | char devname[80]; | 53 | char devname[80]; |
54 | while ( fgets( line, 1024, f ) ) { | 54 | while ( fgets( line, 1024, f ) ) { |
55 | // 0 ide ide-cs 0 hda 3 0 | 55 | // 0 ide ide-cs 0 hda 3 0 |
56 | if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 ) | 56 | if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 ) |
57 | { | 57 | { |
58 | if ( QString(devtype) == "ide" && m.find(devname)>0 ) { | 58 | if ( QString(devtype) == "ide" && m.find(devname)>0 ) { |
59 | fclose(f); | 59 | fclose(f); |
60 | return TRUE; | 60 | return TRUE; |
61 | } | 61 | } |
62 | } | 62 | } |
63 | } | 63 | } |
64 | fclose(f); | 64 | fclose(f); |
65 | } | 65 | } |
66 | return FALSE; | 66 | return FALSE; |
67 | } | 67 | } |
68 | 68 | ||
69 | /*! \class StorageInfo storage.h | ||
70 | \brief The StorageInfo class describes the disks mounted on the file system. | ||
71 | |||
72 | This class provides access to the mount information for the Linux | ||
73 | filesystem. Each mount point is represented by the FileSystem class. | ||
74 | To ensure this class has the most up to date size information, call | ||
75 | the update() method. Note that this will automatically be signaled | ||
76 | by the operating system when a disk has been mounted or unmounted. | ||
77 | |||
78 | \ingroup qtopiaemb | ||
79 | */ | ||
80 | |||
81 | /*! Constructor that determines the current mount points of the filesystem. | ||
82 | The standard \a parent parameters is passed on to QObject. | ||
83 | */ | ||
69 | StorageInfo::StorageInfo( QObject *parent ) | 84 | StorageInfo::StorageInfo( QObject *parent ) |
70 | : QObject( parent ) | 85 | : QObject( parent ) |
71 | { | 86 | { |
72 | mFileSystems.setAutoDelete( TRUE ); | 87 | mFileSystems.setAutoDelete( TRUE ); |
73 | channel = new QCopChannel( "QPE/Card", this ); | 88 | channel = new QCopChannel( "QPE/Card", this ); |
74 | connect( channel, SIGNAL(received(const QCString &, const QByteArray &)), | 89 | connect( channel, SIGNAL(received(const QCString &, const QByteArray &)), |
75 | this, SLOT(cardMessage( const QCString &, const QByteArray &)) ); | 90 | this, SLOT(cardMessage( const QCString &, const QByteArray &)) ); |
76 | update(); | 91 | update(); |
77 | } | 92 | } |
78 | 93 | ||
94 | /*! Returns the longest matching FileSystem that starts with the | ||
95 | same prefix as \a filename as its mount point. | ||
96 | */ | ||
79 | const FileSystem *StorageInfo::fileSystemOf( const QString &filename ) | 97 | const FileSystem *StorageInfo::fileSystemOf( const QString &filename ) |
80 | { | 98 | { |
81 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { | 99 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { |
82 | if ( filename.startsWith( (*i)->path() ) ) | 100 | if ( filename.startsWith( (*i)->path() ) ) |
83 | return (*i); | 101 | return (*i); |
84 | } | 102 | } |
85 | return 0; | 103 | return 0; |
86 | } | 104 | } |
87 | 105 | ||
88 | 106 | ||
89 | void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) | 107 | void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) |
90 | { | 108 | { |
91 | if ( msg == "mtabChanged()" ) | 109 | if ( msg == "mtabChanged()" ) |
92 | update(); | 110 | update(); |
93 | } | 111 | } |
112 | |||
113 | |||
114 | /*! Updates the mount and free space available information for each mount | ||
115 | point. This method is automatically called when a disk is mounted or | ||
116 | unmounted. | ||
117 | */ | ||
94 | // cause of the lack of a d pointer we need | 118 | // cause of the lack of a d pointer we need |
95 | // to store informations in a config file :( | 119 | // to store informations in a config file :( |
96 | void StorageInfo::update() | 120 | void StorageInfo::update() |
97 | { | 121 | { |
98 | //qDebug("StorageInfo::updating"); | 122 | //qDebug("StorageInfo::updating"); |
99 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 123 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
100 | struct mntent *me; | 124 | struct mntent *me; |
101 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); | 125 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); |
102 | 126 | ||
103 | QStringList curdisks; | 127 | QStringList curdisks; |
104 | QStringList curopts; | 128 | QStringList curopts; |
105 | QStringList curfs; | 129 | QStringList curfs; |
106 | bool rebuild = FALSE; | 130 | bool rebuild = FALSE; |
107 | int n=0; | 131 | int n=0; |
108 | if ( mntfp ) { | 132 | if ( mntfp ) { |
109 | while ( (me = getmntent( mntfp )) != 0 ) { | 133 | while ( (me = getmntent( mntfp )) != 0 ) { |
110 | QString fs = me->mnt_fsname; | 134 | QString fs = me->mnt_fsname; |
111 | if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" | 135 | if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" |
112 | || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" | 136 | || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" |
113 | || fs.left( 14 ) == "/dev/mmc/part1" | 137 | || fs.left( 14 ) == "/dev/mmc/part1" |
114 | || fs.left(5)=="tmpfs" || fs.left(9)=="/dev/root" ) | 138 | || fs.left(5)=="tmpfs" || fs.left(9)=="/dev/root" ) |
115 | { | 139 | { |
116 | n++; | 140 | n++; |
117 | curdisks.append(fs); | 141 | curdisks.append(fs); |
118 | curopts.append( me->mnt_opts ); | 142 | curopts.append( me->mnt_opts ); |
119 | //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts ); | 143 | //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts ); |
120 | curfs.append( me->mnt_dir ); | 144 | curfs.append( me->mnt_dir ); |
121 | bool found = FALSE; | 145 | bool found = FALSE; |
122 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { | 146 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { |
123 | if ( (*i)->disk() == fs ) { | 147 | if ( (*i)->disk() == fs ) { |
124 | found = TRUE; | 148 | found = TRUE; |
125 | break; | 149 | break; |
126 | } | 150 | } |
127 | } | 151 | } |
128 | if ( !found ) | 152 | if ( !found ) |
129 | rebuild = TRUE; | 153 | rebuild = TRUE; |
130 | } | 154 | } |
131 | } | 155 | } |
132 | endmntent( mntfp ); | 156 | endmntent( mntfp ); |
133 | } | 157 | } |
134 | if ( rebuild || n != (int)mFileSystems.count() ) { | 158 | if ( rebuild || n != (int)mFileSystems.count() ) { |
135 | mFileSystems.clear(); | 159 | mFileSystems.clear(); |
136 | QStringList::ConstIterator it=curdisks.begin(); | 160 | QStringList::ConstIterator it=curdisks.begin(); |
137 | QStringList::ConstIterator fsit=curfs.begin(); | 161 | QStringList::ConstIterator fsit=curfs.begin(); |
138 | QStringList::ConstIterator optsIt=curopts.begin(); | 162 | QStringList::ConstIterator optsIt=curopts.begin(); |
139 | for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) { | 163 | for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) { |
140 | QString opts = *optsIt; | 164 | QString opts = *optsIt; |
141 | 165 | ||
142 | QString disk = *it; | 166 | QString disk = *it; |
143 | QString humanname; | 167 | QString humanname; |
144 | bool removable = FALSE; | 168 | bool removable = FALSE; |
145 | if ( isCF(disk) ) { | 169 | if ( isCF(disk) ) { |
146 | humanname = tr("CF Card"); | 170 | humanname = tr("CF Card"); |
147 | removable = TRUE; | 171 | removable = TRUE; |
148 | } else if ( disk == "/dev/hda1" ) { | 172 | } else if ( disk == "/dev/hda1" ) { |
149 | humanname = tr("Hard Disk"); | 173 | humanname = tr("Hard Disk"); |
150 | } else if ( disk.left(9) == "/dev/mmcd" ) { | 174 | } else if ( disk.left(9) == "/dev/mmcd" ) { |
151 | humanname = tr("SD Card"); | 175 | humanname = tr("SD Card"); |
152 | removable = TRUE; | 176 | removable = TRUE; |
153 | } else if ( disk.left( 14 ) == "/dev/mmc/part1" ) { | 177 | } else if ( disk.left( 14 ) == "/dev/mmc/part1" ) { |
154 | humanname = tr("MMC Card"); | 178 | humanname = tr("MMC Card"); |
155 | removable = TRUE; | 179 | removable = TRUE; |
156 | } else if ( disk.left(7) == "/dev/hd" ) | 180 | } else if ( disk.left(7) == "/dev/hd" ) |
157 | humanname = tr("Hard Disk") + " " + disk; | 181 | humanname = tr("Hard Disk") + " " + disk; |
158 | else if ( disk.left(7) == "/dev/sd" ) | 182 | else if ( disk.left(7) == "/dev/sd" ) |
159 | humanname = tr("SCSI Hard Disk") + " " + disk; | 183 | humanname = tr("SCSI Hard Disk") + " " + disk; |
160 | else if ( disk.left(14) == "/dev/mtdblock6" ) //openzaurus ramfs | 184 | else if ( disk.left(14) == "/dev/mtdblock6" ) //openzaurus ramfs |
161 | humanname = tr("Internal Memory"); | 185 | humanname = tr("Internal Memory"); |
162 | else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) | 186 | else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) |
163 | humanname = tr("Internal Storage"); | 187 | humanname = tr("Internal Storage"); |
164 | else if ( disk.left(14) == "/dev/mtdblock/" ) | 188 | else if ( disk.left(14) == "/dev/mtdblock/" ) |
165 | humanname = tr("Internal Storage") + " " + disk; | 189 | humanname = tr("Internal Storage") + " " + disk; |
166 | else if ( disk.left(13) == "/dev/mtdblock" ) | 190 | else if ( disk.left(13) == "/dev/mtdblock" ) |
167 | humanname = tr("Internal Storage") + " " + disk; | 191 | humanname = tr("Internal Storage") + " " + disk; |
168 | else if ( disk.left(9) == "/dev/root" ) | 192 | else if ( disk.left(9) == "/dev/root" ) |
169 | humanname = tr("Internal Storage") + " " + disk; | 193 | humanname = tr("Internal Storage") + " " + disk; |
170 | else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs | 194 | else if ( disk.left(5) == "tmpfs" ) //ipaqs /mnt/ramfs |
171 | humanname = tr("Internal Memory"); | 195 | humanname = tr("Internal Memory"); |
172 | FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts ); | 196 | FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts ); |
173 | mFileSystems.append( fs ); | 197 | mFileSystems.append( fs ); |
174 | } | 198 | } |
175 | emit disksChanged(); | 199 | emit disksChanged(); |
176 | } else { | 200 | } else { |
177 | // just update them | 201 | // just update them |
178 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) | 202 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) |
179 | i.current()->update(); | 203 | i.current()->update(); |
180 | } | 204 | } |
181 | #endif | 205 | #endif |
182 | } | 206 | } |
183 | 207 | ||
184 | bool deviceTab( const char *device) { | 208 | bool deviceTab( const char *device) { |
185 | QString name = device; | 209 | QString name = device; |
186 | bool hasDevice=false; | 210 | bool hasDevice=false; |
187 | struct mntent *me; | 211 | struct mntent *me; |
188 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); | 212 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); |
189 | if ( mntfp ) { | 213 | if ( mntfp ) { |
190 | while ( (me = getmntent( mntfp )) != 0 ) { | 214 | while ( (me = getmntent( mntfp )) != 0 ) { |
191 | QString deviceName = me->mnt_fsname; | 215 | QString deviceName = me->mnt_fsname; |
192 | // qDebug(deviceName); | 216 | // qDebug(deviceName); |
193 | if( deviceName.left(name.length()) == name) { | 217 | if( deviceName.left(name.length()) == name) { |
194 | hasDevice = true; | 218 | hasDevice = true; |
195 | } | 219 | } |
196 | } | 220 | } |
197 | } | 221 | } |
198 | endmntent( mntfp ); | 222 | endmntent( mntfp ); |
199 | return hasDevice; | 223 | return hasDevice; |
200 | } | 224 | } |
201 | 225 | ||
202 | /*! | 226 | /*! |
203 | * @fn static bool StorageInfo::hasCf() | 227 | * @fn static bool StorageInfo::hasCf() |
204 | * @brief returns whether device has Cf mounted | 228 | * @brief returns whether device has Cf mounted |
205 | * | 229 | * |
206 | */ | 230 | */ |
207 | bool StorageInfo::hasCf() | 231 | bool StorageInfo::hasCf() |
208 | { | 232 | { |
209 | return deviceTab("/dev/hd"); | 233 | return deviceTab("/dev/hd"); |
210 | } | 234 | } |
211 | 235 | ||
212 | /*! | 236 | /*! |
213 | * @fn static bool StorageInfo::hasSd() | 237 | * @fn static bool StorageInfo::hasSd() |
214 | * @brief returns whether device has SD mounted | 238 | * @brief returns whether device has SD mounted |
215 | * | 239 | * |
216 | */ | 240 | */ |
217 | bool StorageInfo::hasSd() | 241 | bool StorageInfo::hasSd() |
218 | { | 242 | { |
219 | return deviceTab("/dev/mmcd"); | 243 | return deviceTab("/dev/mmcd"); |
220 | } | 244 | } |
221 | 245 | ||
222 | /*! | 246 | /*! |
223 | * @fn static bool StorageInfo::hasMmc() | 247 | * @fn static bool StorageInfo::hasMmc() |
224 | * @brief reutrns whether device has mmc mounted | 248 | * @brief reutrns whether device has mmc mounted |
225 | * | 249 | * |
226 | */ | 250 | */ |
227 | bool StorageInfo::hasMmc() | 251 | bool StorageInfo::hasMmc() |
228 | { | 252 | { |
229 | bool hasMmc=false; | 253 | bool hasMmc=false; |
230 | if( deviceTab("/dev/mmc/part")) | 254 | if( deviceTab("/dev/mmc/part")) |
231 | hasMmc=true; | 255 | hasMmc=true; |
232 | if( deviceTab("/dev/mmcd")) | 256 | if( deviceTab("/dev/mmcd")) |
233 | hasMmc=true; | 257 | hasMmc=true; |
234 | return hasMmc; | 258 | return hasMmc; |
235 | } | 259 | } |
236 | 260 | ||
261 | /*! \fn const QList<FileSystem> &StorageInfo::fileSystems() const | ||
262 | Returns a list of all available mounted file systems. | ||
263 | |||
264 | \warning This may change in Qtopia 3.x to return only relevant Qtopia file systems (and ignore mount points such as /tmp) | ||
265 | */ | ||
237 | 266 | ||
267 | /*! \fn void StorageInfo::disksChanged() | ||
268 | Gets emitted when a disk has been mounted or unmounted, such as when | ||
269 | a CF c | ||
270 | */ | ||
238 | //--------------------------------------------------------------------------- | 271 | //--------------------------------------------------------------------------- |
239 | 272 | ||
240 | FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o ) | 273 | FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o ) |
241 | : fsdisk( disk ), fspath( path ), humanname( name ), blkSize(512), totalBlks(0), availBlks(0), removable( rem ), opts( o ) | 274 | : fsdisk( disk ), fspath( path ), humanname( name ), blkSize(512), totalBlks(0), availBlks(0), removable( rem ), opts( o ) |
242 | { | 275 | { |
243 | update(); | 276 | update(); |
244 | } | 277 | } |
245 | 278 | ||
246 | void FileSystem::update() | 279 | void FileSystem::update() |
247 | { | 280 | { |
248 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 281 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
249 | struct statfs fs; | 282 | struct statfs fs; |
250 | if ( !statfs( fspath.latin1(), &fs ) ) { | 283 | if ( !statfs( fspath.latin1(), &fs ) ) { |
251 | blkSize = fs.f_bsize; | 284 | blkSize = fs.f_bsize; |
252 | totalBlks = fs.f_blocks; | 285 | totalBlks = fs.f_blocks; |
253 | availBlks = fs.f_bavail; | 286 | availBlks = fs.f_bavail; |
254 | } else { | 287 | } else { |
255 | blkSize = 0; | 288 | blkSize = 0; |
256 | totalBlks = 0; | 289 | totalBlks = 0; |
257 | availBlks = 0; | 290 | availBlks = 0; |
258 | } | 291 | } |
259 | #endif | 292 | #endif |
260 | } | 293 | } |
261 | 294 | ||
295 | /*! \class FileSystem storage.h | ||
296 | \brief The FileSystem class describes a single mount point. | ||
297 | |||
298 | This class simply returns information about a mount point, including | ||
299 | file system name, mount point, human readable name, size information | ||
300 | and mount options information. | ||
301 | \ingroup qtopiaemb | ||
302 | |||
303 | \sa StorageInfo | ||
304 | */ | ||
305 | |||
306 | /*! \fn const QString &FileSystem::disk() const | ||
307 | Returns the file system name, such as /dev/hda3 | ||
308 | */ | ||
309 | |||
310 | /*! \fn const QString &FileSystem::path() const | ||
311 | Returns the mount path, such as /home | ||
312 | */ | ||
313 | |||
314 | /*! \fn const QString &FileSystem::name() const | ||
315 | Returns the translated, human readable name for the mount directory. | ||
316 | */ | ||
317 | |||
318 | /*! \fn const QString &FileSystem::options() const | ||
319 | Returns the mount options | ||
320 | */ | ||
321 | |||
322 | /*! \fn long FileSystem::blockSize() const | ||
323 | Returns the size of each block on the file system. | ||
324 | */ | ||
325 | |||
326 | /*! \fn long FileSystem::totalBlocks() const | ||
327 | Returns the total number of blocks on the file system | ||
328 | */ | ||
329 | |||
330 | /*! \fn long FileSystem::availBlocks() const | ||
331 | Returns the number of available blocks on the file system | ||
332 | */ | ||
333 | |||
334 | /*! \fn bool FileSystem::isRemovable() const | ||
335 | Returns flag whether the file system can be removed, such as a CF card | ||
336 | would be removable, but the internal memory wouldn't | ||
337 | */ | ||
338 | |||
339 | /*! \fn bool FileSystem::isWritable() const | ||
340 | Returns flag whether the file system is mounted as writable or read-only. | ||
341 | Returns FALSE if read-only, TRUE if read and write. | ||
342 | */ | ||
343 | |||
344 | /*! \fn QStringList StorageInfo::fileSystemNames() const | ||
345 | Returns a list of filesystem names. | ||
346 | */ | ||
diff --git a/library/task-opie-applets.control b/library/task-opie-applets.control index 6ab1bb0..4714321 100644 --- a/library/task-opie-applets.control +++ b/library/task-opie-applets.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: task-opie-applets | 1 | Package: task-opie-applets |
2 | Files: | 2 | Files: |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/applications | 4 | Section: opie/applications |
5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> | 5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | ||
8 | Depends: task-opie-minimal, opie-batteryapplet, opie-clockapplet, opie-vmemo, opie-volumeapplet, opie-screenshotapplet, opie-pickboard, opie-multikey, opie-jumpx, opie-handwriting, opie-dvorak, opie-unikeyboard | 7 | Depends: task-opie-minimal, opie-batteryapplet, opie-clockapplet, opie-vmemo, opie-volumeapplet, opie-screenshotapplet, opie-pickboard, opie-multikey, opie-jumpx, opie-handwriting, opie-dvorak, opie-unikeyboard |
9 | Description: Opie taskbar applets | 8 | Description: Opie taskbar applets |
10 | All applets for the taskbar | 9 | All applets for the taskbar |
10 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie-apps.control b/library/task-opie-apps.control index 567b50a..a9f00db 100644 --- a/library/task-opie-apps.control +++ b/library/task-opie-apps.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: task-opie-apps | 1 | Package: task-opie-apps |
2 | Files: | 2 | Files: |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/applications | 4 | Section: opie/applications |
5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> | 5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | 7 | Depends: task-opie-pim, opie-advancedfm, opie-calculator, opie-citytime, opie-clock, opie-embeddedkonsole, opie-libmadplugin, opie-libmpeg3plugin, opie-mail2, opie-mediaplayer, opie-qpdf, opie-showimg, opie-sounds, opie-sheet, opie-sysinfo, opie-systemtime, opie-tableviewer, opie-textedit, opie-wavplugin, timezones |
8 | Depends: task-opie-pim, opie-advancedfm, opie-calculator, opie-citytime, opie-clock, opie-embeddedkonsole, opie-filebrowser, opie-libmadplugin, opie-libmpeg3plugin, opie-mail2, opie-mediaplayer, opie-qpdf, opie-showimg, opie-sounds, opie-sheet, opie-sysinfo, opie-systemtime, opie-tableviewer, opie-textedit, opie-wavplugin, timezones | ||
9 | Description: Opie apps | 8 | Description: Opie apps |
10 | Most applications. | 9 | Most applications. |
10 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie-complete.control b/library/task-opie-complete.control index 74ed446..983f6fb 100644 --- a/library/task-opie-complete.control +++ b/library/task-opie-complete.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: task-opie-complete | 1 | Package: task-opie-complete |
2 | Files: | 2 | Files: |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/applications | 4 | Section: opie/applications |
5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> | 5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | ||
8 | Depends: task-opie-apps, task-opie-settings, task-opie-games, task-opie-applets | 7 | Depends: task-opie-apps, task-opie-settings, task-opie-games, task-opie-applets |
9 | Description: All of Opie | 8 | Description: All of Opie |
10 | All apps that are in the feed. | 9 | All apps that are in the feed. |
10 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie-games.control b/library/task-opie-games.control index 4e40b8e..e2a0ade 100644 --- a/library/task-opie-games.control +++ b/library/task-opie-games.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: task-opie-games | 1 | Package: task-opie-games |
2 | Files: | 2 | Files: |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/games | 4 | Section: opie/games |
5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> | 5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | ||
8 | Depends: task-opie-minimal, opie-fifteen, opie-go, opie-kbill, opie-kcheckers, opie-kpacman, opie-minesweep, opie-parashoot, opie-qasteroids, opie-snake, opie-solitaire, opie-tetrix, opie-tictac, opie-wordgame | 7 | Depends: task-opie-minimal, opie-fifteen, opie-go, opie-kbill, opie-kcheckers, opie-kpacman, opie-minesweep, opie-parashoot, opie-qasteroids, opie-snake, opie-solitaire, opie-tetrix, opie-tictac, opie-wordgame |
9 | Description: Opie game pack | 8 | Description: Opie game pack |
10 | The full load of Opie games. | 9 | The full load of Opie games. |
10 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie-minimal.control b/library/task-opie-minimal.control index 6dec827..c629d51 100644 --- a/library/task-opie-minimal.control +++ b/library/task-opie-minimal.control | |||
@@ -1,13 +1,14 @@ | |||
1 | Package: task-opie-minimal | 1 | Package: task-opie-minimal |
2 | Files: | 2 | Files: |
3 | Priority: required | 3 | Priority: required |
4 | Section: opie/system | 4 | Section: opie/system |
5 | Maintainer: Opie Team <opie@handhelds.org> | 5 | Maintainer: Opie Team <opie@handhelds.org> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | 7 | Version: $QPE_VERSION-$SUB_VERSION |
8 | Depends: libqte2 (>=$QTE_VERSION), qte-fonts (>=$QTE_VERSION), opie-common, libqpe1, libopie1, opie-qcop, opie-sounds, apmd, opie-pics, timezones, opie-taskbar, opie-opiealarm | 8 | Depends: libqte2 (>=$QTE_VERSION), qte-fonts (>=$QTE_VERSION), opie-common, libqpe1, libopie1, opie-qcop, opie-sounds, apmd, opie-pics, timezones, opie-aqpkg, opie-taskbar, opie-opiealarm, opie-login |
9 | Provides: opie-base, qpe-base | 9 | Provides: opie-base, qpe-base |
10 | Replaces: opie-base, qpe-base | 10 | Replaces: opie-base, qpe-base |
11 | Description: Bootstrap Opie environment(minimal) | 11 | Description: Bootstrap Opie environment(minimal) |
12 | A complete GUI environment for handhelds. This is the _minimal_ version. | 12 | A complete GUI environment for handhelds. This is the _minimal_ version. |
13 | You will probably want to install one of the opie-i18n-* packages. | 13 | You will probably want to install one of the opie-i18n-* packages. |
14 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie-pim.control b/library/task-opie-pim.control index addbab5..4ee4ede 100644 --- a/library/task-opie-pim.control +++ b/library/task-opie-pim.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Package: task-opie-pim | 1 | Package: task-opie-pim |
2 | Files: | 2 | Files: |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/applications | 4 | Section: opie/applications |
5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> | 5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | 7 | Depends: task-opie-minimal, opie-datebook, opie-todo, opie-addressbook, task-opie-today, opie-drawpad, opie-multikey, opie-osearch |
8 | Depends: task-opie-minimal, opie-datebook, opie-todo, opie-addressbook, task-opie-today, opie-drawpad, opie-multikey | ||
9 | Description: Opie pim applications | 8 | Description: Opie pim applications |
10 | Base pack of opie pim applications. Also includes keyboard input. | 9 | Base pack of opie pim applications. Also includes keyboard input. |
10 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie-settings.control b/library/task-opie-settings.control index 4944229..e8ffb45 100644 --- a/library/task-opie-settings.control +++ b/library/task-opie-settings.control | |||
@@ -1,10 +1,11 @@ | |||
1 | Package: task-opie-settings | 1 | Package: task-opie-settings |
2 | Files: | 2 | Files: |
3 | Priority: optional | 3 | Priority: optional |
4 | Section: opie/applications | 4 | Section: opie/applications |
5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> | 5 | Maintainer: Maximilian Reiss <max.reiss@gmx.de> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | 7 | Version: $QPE_VERSION-$SUB_VERSION |
8 | Depends: task-opie-minimal, opie-citytime, opie-launcher-settings, opie-light-and-power, opie-security, opie-appearance, opie-backup, opie-language, opie-mediummount, opie-networksettings, opie-networksettingsplugin-wlan, opie-tabmanager | 8 | Depends: task-opie-minimal, opie-appearance, opie-security, opie-systemtime, opie-light-and-power |
9 | Description: Opie settings app | 9 | Description: Opie settings app |
10 | All settings apps | 10 | All settings apps |
11 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/task-opie.control b/library/task-opie.control index 00841d3..57bb403 100644 --- a/library/task-opie.control +++ b/library/task-opie.control | |||
@@ -1,11 +1,11 @@ | |||
1 | Package: task-opie | 1 | Package: task-opie |
2 | Files: | 2 | Files: |
3 | Priority: required | 3 | Priority: required |
4 | Section: opie/system | 4 | Section: opie/system |
5 | Maintainer: Opie Team <opie@handhelds.org> | 5 | Maintainer: Opie Team <opie@handhelds.org> |
6 | Architecture: arm | 6 | Architecture: arm |
7 | Version: $QPE_VERSION-$SUB_VERSION | 7 | Depends: task-opie-pim, opie-aqpkg, opie-multikey, opie-handwriting, opie-batteryapplet, opie-clockapplet, opie-volumeapplet, opie-clipboardapplet, opie-advancedfm, opie-calculator, opie-citytime, opie-clock, opie-embeddedkonsole, opie-irdaapplet, opie-launcher-settings, opie-light-and-power, opie-appearance, opie-login, opie-opiealarm, opie-qpdf, opie-showimg, opie-solitaire, opie-sysinfo, opie-textedit, opie-systemtime, opie-cardmon, opie-backup, opie-networksettings, opie-button-settings, opie-deco-flat, opie-style-flat |
8 | Depends: task-opie-pim, opie-aqpkg, opie-multikey, opie-handwriting, opie-batteryapplet, opie-clockapplet, opie-volumeapplet, opie-clipboardapplet, opie-advancedfm, opie-calculator, opie-citytime, opie-clock, opie-embeddedkonsole, opie-irdaapplet, opie-launcher-settings, opie-light-and-power, opie-appearance, opie-login, opie-opiealarm, opie-qpdf, opie-showimg, opie-solitaire, opie-sysinfo, opie-textedit, opie-systemtime, opie-cardmon, opie-backup, opie-networksettings, opie-button-settings | ||
9 | Description: Bootstrap Opie environment | 8 | Description: Bootstrap Opie environment |
10 | A complete GUI environment for handhelds. | 9 | A complete GUI environment for handhelds. |
11 | You will probably want to install one of the opie-i18n-* packages. | 10 | You will probably want to install one of the opie-i18n-* packages. |
11 | Version: $QPE_VERSION$EXTRAVERSION | ||
diff --git a/library/timestring.cpp b/library/timestring.cpp index 6443b6b..8f60b72 100644 --- a/library/timestring.cpp +++ b/library/timestring.cpp | |||
@@ -1,365 +1,365 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 "timestring.h" | 21 | #include "timestring.h" |
22 | #include <qobject.h> | 22 | #include <qobject.h> |
23 | #include <qpe/qpeapplication.h> //for qApp | 23 | #include <qpe/qpeapplication.h> //for qApp |
24 | #include "config.h" | 24 | #include "config.h" |
25 | 25 | ||
26 | 26 | ||
27 | class TimeStringFormatKeeper : public QObject | 27 | class TimeStringFormatKeeper : public QObject |
28 | { | 28 | { |
29 | Q_OBJECT | 29 | Q_OBJECT |
30 | public: | 30 | public: |
31 | static DateFormat currentFormat() | 31 | static DateFormat currentFormat() |
32 | { | 32 | { |
33 | if ( !self ) | 33 | if ( !self ) |
34 | self = new TimeStringFormatKeeper; | 34 | self = new TimeStringFormatKeeper; |
35 | return self->format; | 35 | return self->format; |
36 | } | 36 | } |
37 | private slots: | 37 | private slots: |
38 | void formatChanged( DateFormat f ) | 38 | void formatChanged( DateFormat f ) |
39 | { | 39 | { |
40 | format = f; | 40 | format = f; |
41 | } | 41 | } |
42 | private: | 42 | private: |
43 | static TimeStringFormatKeeper *self; | 43 | static TimeStringFormatKeeper *self; |
44 | DateFormat format; | 44 | DateFormat format; |
45 | 45 | ||
46 | TimeStringFormatKeeper() | 46 | TimeStringFormatKeeper() |
47 | : QObject( qApp ) | 47 | : QObject( qApp ) |
48 | { | 48 | { |
49 | Config config("qpe"); | 49 | Config config("qpe"); |
50 | config.setGroup( "Date" ); | 50 | config.setGroup( "Date" ); |
51 | format = DateFormat(QChar(config.readEntry("Separator", "/")[0]), | 51 | format = DateFormat(QChar(config.readEntry("Separator", "/")[0]), |
52 | (DateFormat::Order)config .readNumEntry("ShortOrder", DateFormat::DayMonthYear), | 52 | (DateFormat::Order)config .readNumEntry("ShortOrder", DateFormat::DayMonthYear), |
53 | (DateFormat::Order)config.readNumEntry("LongOrder", DateFormat::DayMonthYear)); | 53 | (DateFormat::Order)config.readNumEntry("LongOrder", DateFormat::DayMonthYear)); |
54 | 54 | ||
55 | connect( qApp, SIGNAL( dateFormatChanged(DateFormat) ), | 55 | connect( qApp, SIGNAL( dateFormatChanged(DateFormat) ), |
56 | this, SLOT( formatChanged( DateFormat ) ) ); | 56 | this, SLOT( formatChanged( DateFormat ) ) ); |
57 | } | 57 | } |
58 | }; | 58 | }; |
59 | 59 | ||
60 | TimeStringFormatKeeper *TimeStringFormatKeeper::self = 0; | 60 | TimeStringFormatKeeper *TimeStringFormatKeeper::self = 0; |
61 | 61 | ||
62 | QString DateFormat::toNumberString() const | 62 | QString DateFormat::toNumberString() const |
63 | { | 63 | { |
64 | QString buf = ""; | 64 | QString buf = ""; |
65 | // for each part of the order | 65 | // for each part of the order |
66 | for (int i = 0; i < 3; i++) { | 66 | for (int i = 0; i < 3; i++) { |
67 | // switch on the relavent 3 bits. | 67 | // switch on the relavent 3 bits. |
68 | switch((_shortOrder >> (i * 3)) & 0x0007) { | 68 | switch((_shortOrder >> (i * 3)) & 0x0007) { |
69 | case 0x0001: | 69 | case 0x0001: |
70 | buf += QObject::tr( "D" ); | 70 | buf += QObject::tr( "D" ); |
71 | break; | 71 | break; |
72 | case 0x0002: | 72 | case 0x0002: |
73 | buf += QObject::tr( "M" ); | 73 | buf += QObject::tr( "M" ); |
74 | break; | 74 | break; |
75 | case 0x0004: | 75 | case 0x0004: |
76 | buf += QObject::tr( "Y" ); | 76 | buf += QObject::tr( "Y" ); |
77 | break; | 77 | break; |
78 | } | 78 | } |
79 | if (i < 2) | 79 | if (i < 2) |
80 | buf += _shortSeparator; | 80 | buf += _shortSeparator; |
81 | } | 81 | } |
82 | return buf; | 82 | return buf; |
83 | } | 83 | } |
84 | 84 | ||
85 | QString DateFormat::toWordString() const | 85 | QString DateFormat::toWordString() const |
86 | { | 86 | { |
87 | QString buf = ""; | 87 | QString buf = ""; |
88 | // for each part of the order | 88 | // for each part of the order |
89 | for (int i = 0; i < 3; i++) { | 89 | for (int i = 0; i < 3; i++) { |
90 | // switch on the relavent 3 bits. | 90 | // switch on the relavent 3 bits. |
91 | switch((_longOrder >> (i * 3)) & 0x0007) { | 91 | switch((_longOrder >> (i * 3)) & 0x0007) { |
92 | case 0x0001: | 92 | case 0x0001: |
93 | buf += QObject::tr( "day" ); | 93 | buf += QObject::tr( "day" ); |
94 | if (i < 2) { | 94 | if (i < 2) { |
95 | if ((_shortOrder << ((i+1) * 3)) & 0x0007) | 95 | if ((_shortOrder << ((i+1) * 3)) & 0x0007) |
96 | buf += ", "; | 96 | buf += ", "; |
97 | else | 97 | else |
98 | buf += " "; | 98 | buf += " "; |
99 | } | 99 | } |
100 | break; | 100 | break; |
101 | case 0x0002: | 101 | case 0x0002: |
102 | buf += QObject::tr( "month" ); | 102 | buf += QObject::tr( "month" ); |
103 | if (i < 2) | 103 | if (i < 2) |
104 | buf += " "; | 104 | buf += " "; |
105 | break; | 105 | break; |
106 | case 0x0004: | 106 | case 0x0004: |
107 | buf += QObject::tr( "year" ); | 107 | buf += QObject::tr( "year" ); |
108 | if (i < 2) | 108 | if (i < 2) |
109 | buf += ", "; | 109 | buf += ", "; |
110 | break; | 110 | break; |
111 | } | 111 | } |
112 | } | 112 | } |
113 | return buf; | 113 | return buf; |
114 | } | 114 | } |
115 | 115 | ||
116 | QString DateFormat::numberDate(const QDate &d, int v) const | 116 | QString DateFormat::numberDate(const QDate &d, int v) const |
117 | { | 117 | { |
118 | QString buf = ""; | 118 | QString buf = ""; |
119 | 119 | ||
120 | int pad = 2; | 120 | int pad = 2; |
121 | 121 | ||
122 | // for each part of the order | 122 | // for each part of the order |
123 | for (int i = 0; i < 3; i++) { | 123 | for (int i = 0; i < 3; i++) { |
124 | // switch on the relavent 3 bits. | 124 | // switch on the relavent 3 bits. |
125 | switch((_shortOrder >> (i * 3)) & 0x0007) { | 125 | switch((_shortOrder >> (i * 3)) & 0x0007) { |
126 | case 0x0001: | 126 | case 0x0001: |
127 | if (pad==2) buf += QString().sprintf("%02d",d.day()); | 127 | if (pad==2) buf += QString().sprintf("%02d",d.day()); |
128 | else buf += QString().sprintf("%d",d.day()); | 128 | else buf += QString().sprintf("%d",d.day()); |
129 | break; | 129 | break; |
130 | case 0x0002: | 130 | case 0x0002: |
131 | if (i==0) { // no padding with only MM/DD/YY format | 131 | if (i==0) { // no padding with only MM/DD/YY format |
132 | pad=0; | 132 | pad=0; |
133 | } | 133 | } |
134 | if (pad==2) buf += QString().sprintf("%02d",d.month()); | 134 | if (pad==2) buf += QString().sprintf("%02d",d.month()); |
135 | else buf += QString().sprintf("%d",d.month()); | 135 | else buf += QString().sprintf("%d",d.month()); |
136 | break; | 136 | break; |
137 | case 0x0004: | 137 | case 0x0004: |
138 | { | 138 | { |
139 | int year = d.year(); | 139 | int year = d.year(); |
140 | if (!(v & longNumber)) | 140 | if (!(v & longNumber)) |
141 | year = year % 100; | 141 | year = year % 100; |
142 | buf += QString().sprintf("%02d",year); | 142 | buf += QString().sprintf("%02d",year); |
143 | } | 143 | } |
144 | break; | 144 | break; |
145 | } | 145 | } |
146 | if (i < 2) | 146 | if (i < 2) |
147 | buf += _shortSeparator; | 147 | buf += _shortSeparator; |
148 | } | 148 | } |
149 | return buf; | 149 | return buf; |
150 | } | 150 | } |
151 | 151 | ||
152 | QString DateFormat::wordDate(const QDate &d, int v) const | 152 | QString DateFormat::wordDate(const QDate &d, int v) const |
153 | { | 153 | { |
154 | QString buf = ""; | 154 | QString buf = ""; |
155 | // for each part of the order | 155 | // for each part of the order |
156 | if (v & showWeekDay) { | 156 | if (v & showWeekDay) { |
157 | QString weekDay = d.dayName(d.dayOfWeek()); | 157 | QString weekDay = d.dayName(d.dayOfWeek()); |
158 | if (!(v & longWord)) { | 158 | if (!(v & longWord)) { |
159 | weekDay = weekDay.left(3); | 159 | weekDay = weekDay.left(3); |
160 | } | 160 | } |
161 | buf += weekDay; | 161 | buf += weekDay; |
162 | if ((_longOrder & 0x0007) == 0x0002) | 162 | if ((_longOrder & 0x0007) == 0x0002) |
163 | buf += ' '; | 163 | buf += ' '; |
164 | else | 164 | else |
165 | buf += ", "; | 165 | buf += ", "; |
166 | } | 166 | } |
167 | 167 | ||
168 | for (int i = 0; i < 3; i++) { | 168 | for (int i = 0; i < 3; i++) { |
169 | // switch on the relavent 3 bits. | 169 | // switch on the relavent 3 bits. |
170 | switch((_longOrder >> (i * 3)) & 0x0007) { | 170 | switch((_longOrder >> (i * 3)) & 0x0007) { |
171 | case 0x0001: | 171 | case 0x0001: |
172 | if (i==1) { | 172 | if (i==1) { |
173 | buf += QString().sprintf("%02d, ",d.day()); | 173 | buf += QString().sprintf("%02d, ",d.day()); |
174 | } else { | 174 | } else { |
175 | buf += QString().sprintf("%2d",d.day()); | 175 | buf += QString().sprintf("%2d",d.day()); |
176 | if (separator()=='.') // 2002/1/11 | 176 | if (separator()=='.') // 2002/1/11 |
177 | buf += ". "; | 177 | buf += ". "; |
178 | else | 178 | else |
179 | buf += " "; | 179 | buf += " "; |
180 | } | 180 | } |
181 | break; | 181 | break; |
182 | case 0x0002: | 182 | case 0x0002: |
183 | { | 183 | { |
184 | QString monthName = d.monthName(d.month()); | 184 | QString monthName = d.monthName(d.month()); |
185 | if (!(v & longWord)) { | 185 | if (!(v & longWord)) { |
186 | monthName = monthName.left(3); | 186 | monthName = monthName.left(3); |
187 | } | 187 | } |
188 | buf += monthName; | 188 | buf += monthName; |
189 | } | 189 | } |
190 | if (i < 2) | 190 | if (i < 2) |
191 | buf += " "; | 191 | buf += " "; |
192 | break; | 192 | break; |
193 | case 0x0004: | 193 | case 0x0004: |
194 | { | 194 | { |
195 | int year = d.year(); | 195 | int year = d.year(); |
196 | if (!(v & longNumber)) | 196 | if (!(v & longNumber)) |
197 | year = year % 100; | 197 | year = year % 100; |
198 | 198 | ||
199 | if (year < 10) | 199 | if (year < 10) |
200 | buf += "0"; | 200 | buf += "0"; |
201 | 201 | ||
202 | buf += QString::number(year); | 202 | buf += QString::number(year); |
203 | } | 203 | } |
204 | if (i < 2) | 204 | if (i < 2) |
205 | buf += ", "; | 205 | buf += ", "; |
206 | break; | 206 | break; |
207 | } | 207 | } |
208 | } | 208 | } |
209 | return buf; | 209 | return buf; |
210 | } | 210 | } |
211 | 211 | ||
212 | #ifndef QT_NO_DATASTREAM | 212 | #ifndef QT_NO_DATASTREAM |
213 | void DateFormat::save(QDataStream &d) const | 213 | void DateFormat::save(QDataStream &d) const |
214 | { | 214 | { |
215 | d << _shortSeparator.unicode(); | 215 | d << _shortSeparator.unicode(); |
216 | uint v= _shortOrder; | 216 | uint v= _shortOrder; |
217 | d << v; | 217 | d << v; |
218 | v = _longOrder; | 218 | v = _longOrder; |
219 | d << v; | 219 | d << v; |
220 | } | 220 | } |
221 | 221 | ||
222 | void DateFormat::load(QDataStream &d) | 222 | void DateFormat::load(QDataStream &d) |
223 | { | 223 | { |
224 | ushort value; | 224 | ushort value; |
225 | d >> value; | 225 | d >> value; |
226 | _shortSeparator = QChar(value); | 226 | _shortSeparator = QChar(value); |
227 | uint v = 0; | 227 | uint v = 0; |
228 | d >> v; | 228 | d >> v; |
229 | _shortOrder = (Order)v; | 229 | _shortOrder = (Order)v; |
230 | v = 0; | 230 | v = 0; |
231 | d >> v; | 231 | d >> v; |
232 | _longOrder = (Order)v; | 232 | _longOrder = (Order)v; |
233 | } | 233 | } |
234 | 234 | ||
235 | QDataStream &operator<<(QDataStream &s, const DateFormat&df) | 235 | QDataStream &operator<<(QDataStream &s, const DateFormat&df) |
236 | { | 236 | { |
237 | df.save(s); | 237 | df.save(s); |
238 | return s; | 238 | return s; |
239 | } | 239 | } |
240 | QDataStream &operator>>(QDataStream &s, DateFormat&df) | 240 | QDataStream &operator>>(QDataStream &s, DateFormat&df) |
241 | { | 241 | { |
242 | df.load(s); | 242 | df.load(s); |
243 | return s; | 243 | return s; |
244 | } | 244 | } |
245 | #endif | 245 | #endif |
246 | 246 | ||
247 | QString TimeString::shortDate( const QDate &d, DateFormat dtf ) | 247 | QString TimeString::shortDate( const QDate &d, DateFormat dtf ) |
248 | { | 248 | { |
249 | return dtf.wordDate(d); | 249 | return dtf.wordDate(d); |
250 | } | 250 | } |
251 | 251 | ||
252 | QString TimeString::dateString( const QDate &d, DateFormat dtf ) | 252 | QString TimeString::dateString( const QDate &d, DateFormat dtf ) |
253 | { | 253 | { |
254 | return dtf.wordDate(d, DateFormat::longNumber | DateFormat::longWord); | 254 | return QObject::tr( dtf.wordDate(d, DateFormat::longNumber | DateFormat::longWord) ); |
255 | } | 255 | } |
256 | 256 | ||
257 | 257 | ||
258 | QString TimeString::longDateString( const QDate &d, DateFormat dtf ) | 258 | QString TimeString::longDateString( const QDate &d, DateFormat dtf ) |
259 | { | 259 | { |
260 | return dtf.wordDate(d, DateFormat::showWeekDay | DateFormat::longNumber | 260 | return QObject::tr( dtf.wordDate(d, DateFormat::showWeekDay | DateFormat::longNumber |
261 | | DateFormat::longWord); | 261 | | DateFormat::longWord) ); |
262 | } | 262 | } |
263 | 263 | ||
264 | DateFormat TimeString::currentDateFormat() | 264 | DateFormat TimeString::currentDateFormat() |
265 | { | 265 | { |
266 | return TimeStringFormatKeeper::currentFormat(); | 266 | return TimeStringFormatKeeper::currentFormat(); |
267 | } | 267 | } |
268 | 268 | ||
269 | 269 | ||
270 | QString TimeString::dateString( const QDateTime &dt, bool ampm, bool seconds, DateFormat dtf ) | 270 | QString TimeString::dateString( const QDateTime &dt, bool ampm, bool seconds, DateFormat dtf ) |
271 | { | 271 | { |
272 | const QDate& d = dt.date(); | 272 | const QDate& d = dt.date(); |
273 | const QTime& t = dt.time(); | 273 | const QTime& t = dt.time(); |
274 | 274 | ||
275 | // based on QDateTime::toString() | 275 | // based on QDateTime::toString() |
276 | QString buf = timeString(t,ampm,seconds); | 276 | QString buf = timeString(t,ampm,seconds); |
277 | buf += " "; | 277 | buf += " "; |
278 | buf += longDateString( d, dtf ); | 278 | buf += longDateString( d, dtf ); |
279 | 279 | ||
280 | return buf; | 280 | return buf; |
281 | } | 281 | } |
282 | 282 | ||
283 | QString TimeString::timeString( const QTime &t, bool ampm, bool seconds ) | 283 | QString TimeString::timeString( const QTime &t, bool ampm, bool seconds ) |
284 | { | 284 | { |
285 | if ( !ampm ) { | 285 | if ( !ampm ) { |
286 | if ( seconds ) | 286 | if ( seconds ) |
287 | return t.toString(); | 287 | return t.toString(); |
288 | QString r = QString::number(t.hour()); | 288 | QString r = QString::number(t.hour()); |
289 | if ( t.hour() < 10 ) r.prepend( "0" ); | 289 | if ( t.hour() < 10 ) r.prepend( "0" ); |
290 | r.append( ":" ); | 290 | r.append( ":" ); |
291 | if ( t.minute() < 10 ) r.append( "0" ); | 291 | if ( t.minute() < 10 ) r.append( "0" ); |
292 | r.append(QString::number(t.minute())); | 292 | r.append(QString::number(t.minute())); |
293 | return r; | 293 | return r; |
294 | } | 294 | } |
295 | // ### else the hard case that should disappear in Qt 3.0 | 295 | // ### else the hard case that should disappear in Qt 3.0 |
296 | QString argString = seconds ? "%4:%5:%6 %7" : "%4:%5 %7"; | 296 | QString argString = seconds ? "%4:%5:%6 %7" : "%4:%5 %7"; |
297 | int hour = t.hour(); | 297 | int hour = t.hour(); |
298 | QString strMin = QString::number( t.minute() ); | 298 | QString strMin = QString::number( t.minute() ); |
299 | QString strSec = QString::number( t.second() ); | 299 | QString strSec = QString::number( t.second() ); |
300 | if ( hour > 12 ) | 300 | if ( hour > 12 ) |
301 | argString = argString.arg( hour - 12, 2 ); | 301 | argString = argString.arg( hour - 12, 2 ); |
302 | else { | 302 | else { |
303 | if ( hour == 0 ) | 303 | if ( hour == 0 ) |
304 | argString = argString.arg( 12 ); | 304 | argString = argString.arg( 12 ); |
305 | else | 305 | else |
306 | argString = argString.arg( hour, 2 ); | 306 | argString = argString.arg( hour, 2 ); |
307 | } | 307 | } |
308 | if ( t.minute() < 10 ) | 308 | if ( t.minute() < 10 ) |
309 | strMin.prepend( "0" ); | 309 | strMin.prepend( "0" ); |
310 | if ( t.second() < 10 ) | 310 | if ( t.second() < 10 ) |
311 | strSec.prepend( "0" ); | 311 | strSec.prepend( "0" ); |
312 | argString = argString.arg( strMin ); | 312 | argString = argString.arg( strMin ); |
313 | if ( seconds ) | 313 | if ( seconds ) |
314 | argString = argString.arg( strSec ); | 314 | argString = argString.arg( strSec ); |
315 | if ( hour >= 12 ) | 315 | if ( hour >= 12 ) |
316 | argString = argString.arg( QObject::tr("PM") ); | 316 | argString = argString.arg( QObject::tr("PM") ); |
317 | else | 317 | else |
318 | argString = argString.arg( QObject::tr("AM") ); | 318 | argString = argString.arg( QObject::tr("AM") ); |
319 | return argString; | 319 | return argString; |
320 | } | 320 | } |
321 | 321 | ||
322 | QString TimeString::shortTime( bool ampm, bool seconds ) | 322 | QString TimeString::shortTime( bool ampm, bool seconds ) |
323 | { | 323 | { |
324 | static const char* const day[] = { | 324 | static const char* const day[] = { |
325 | QT_TRANSLATE_NOOP( "QObject", "Mon" ), | 325 | QT_TRANSLATE_NOOP( "QObject", "Mon" ), |
326 | QT_TRANSLATE_NOOP( "QObject", "Tue" ), | 326 | QT_TRANSLATE_NOOP( "QObject", "Tue" ), |
327 | QT_TRANSLATE_NOOP( "QObject", "Wed" ), | 327 | QT_TRANSLATE_NOOP( "QObject", "Wed" ), |
328 | QT_TRANSLATE_NOOP( "QObject", "Thu" ), | 328 | QT_TRANSLATE_NOOP( "QObject", "Thu" ), |
329 | QT_TRANSLATE_NOOP( "QObject", "Fri" ), | 329 | QT_TRANSLATE_NOOP( "QObject", "Fri" ), |
330 | QT_TRANSLATE_NOOP( "QObject", "Sat" ), | 330 | QT_TRANSLATE_NOOP( "QObject", "Sat" ), |
331 | QT_TRANSLATE_NOOP( "QObject", "Sun" ) | 331 | QT_TRANSLATE_NOOP( "QObject", "Sun" ) |
332 | }; | 332 | }; |
333 | // just create a shorter time String | 333 | // just create a shorter time String |
334 | QDateTime dtTmp = QDateTime::currentDateTime(); | 334 | QDateTime dtTmp = QDateTime::currentDateTime(); |
335 | QString strTime; | 335 | QString strTime; |
336 | strTime = QObject::tr( day[dtTmp.date().dayOfWeek()-1] ) + " " + | 336 | strTime = QObject::tr( day[dtTmp.date().dayOfWeek()-1] ) + " " + |
337 | timeString( dtTmp.time(), ampm, seconds ); | 337 | timeString( dtTmp.time(), ampm, seconds ); |
338 | return strTime; | 338 | return strTime; |
339 | } | 339 | } |
340 | 340 | ||
341 | QString TimeString::dateString( const QDateTime &t, bool ampm ) | 341 | QString TimeString::dateString( const QDateTime &t, bool ampm ) |
342 | { | 342 | { |
343 | return dateString(t,ampm,FALSE); | 343 | return dateString(t,ampm,FALSE); |
344 | } | 344 | } |
345 | 345 | ||
346 | QString TimeString::timeString( const QTime &t, bool ampm) | 346 | QString TimeString::timeString( const QTime &t, bool ampm) |
347 | { | 347 | { |
348 | return timeString(t,ampm,FALSE); | 348 | return timeString(t,ampm,FALSE); |
349 | } | 349 | } |
350 | 350 | ||
351 | QString TimeString::shortTime( bool ampm ) | 351 | QString TimeString::shortTime( bool ampm ) |
352 | { | 352 | { |
353 | return shortTime(ampm,FALSE); | 353 | return shortTime(ampm,FALSE); |
354 | } | 354 | } |
355 | 355 | ||
356 | QString TimeString::numberDateString( const QDate &d, DateFormat dtf ) | 356 | QString TimeString::numberDateString( const QDate &d, DateFormat dtf ) |
357 | { | 357 | { |
358 | return dtf.numberDate(d); | 358 | return dtf.numberDate(d); |
359 | } | 359 | } |
360 | QString TimeString::longNumberDateString( const QDate &d, DateFormat dtf ) | 360 | QString TimeString::longNumberDateString( const QDate &d, DateFormat dtf ) |
361 | { | 361 | { |
362 | return dtf.numberDate(d,DateFormat::longNumber); | 362 | return dtf.numberDate(d,DateFormat::longNumber); |
363 | } | 363 | } |
364 | 364 | ||
365 | #include "timestring.moc" | 365 | #include "timestring.moc" |
diff --git a/library/tzselect.cpp b/library/tzselect.cpp index 335037e..4343eab 100644 --- a/library/tzselect.cpp +++ b/library/tzselect.cpp | |||
@@ -1,277 +1,303 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #define QTOPIA_INTERNAL_TZSELECT_INC_LOCAL | 21 | #define QTOPIA_INTERNAL_TZSELECT_INC_LOCAL |
22 | 22 | ||
23 | #include "tzselect.h" | 23 | #include "tzselect.h" |
24 | #include "resource.h" | 24 | #include "resource.h" |
25 | #include "global.h" | 25 | #include "global.h" |
26 | #include "config.h" | 26 | #include "config.h" |
27 | #include <qtoolbutton.h> | 27 | #include <qtoolbutton.h> |
28 | #include <qfile.h> | 28 | #include <qfile.h> |
29 | #include <stdlib.h> | 29 | #include <stdlib.h> |
30 | 30 | ||
31 | #include <qcopchannel_qws.h> | 31 | #include <qcopchannel_qws.h> |
32 | #include <qpe/qpeapplication.h> | 32 | #include <qpe/qpeapplication.h> |
33 | #include <qmessagebox.h> | 33 | #include <qmessagebox.h> |
34 | 34 | ||
35 | /*! | ||
36 | \class TimeZoneSelector | ||
37 | |||
38 | \brief The TimeZoneSelector widget allows users to configure their time zone information. | ||
39 | |||
40 | \ingroup qtopiaemb | ||
41 | */ | ||
42 | |||
35 | class TimeZoneSelectorPrivate | 43 | class TimeZoneSelectorPrivate |
36 | { | 44 | { |
37 | public: | 45 | public: |
38 | TimeZoneSelectorPrivate() : includeLocal(FALSE) {} | 46 | TimeZoneSelectorPrivate() : includeLocal(FALSE) {} |
39 | bool includeLocal; | 47 | bool includeLocal; |
40 | }; | 48 | }; |
41 | 49 | ||
42 | TZCombo::TZCombo( QWidget *p, const char* n ) | 50 | TZCombo::TZCombo( QWidget *p, const char* n ) |
43 | : QComboBox( p, n ) | 51 | : QComboBox( p, n ) |
44 | { | 52 | { |
45 | updateZones(); | 53 | updateZones(); |
46 | // check to see if TZ is set, if it is set the current item to that | 54 | // check to see if TZ is set, if it is set the current item to that |
47 | QString tz = getenv("TZ"); | 55 | QString tz = getenv("TZ"); |
48 | if (parent()->inherits("TimeZoneSelector")) { | 56 | if (parent()->inherits("TimeZoneSelector")) { |
49 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { | 57 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { |
50 | // overide to the 'local' type. | 58 | // overide to the 'local' type. |
51 | tz = "None"; | 59 | tz = "None"; |
52 | } | 60 | } |
53 | } | 61 | } |
54 | if ( !tz.isNull() ) { | 62 | if ( !tz.isNull() ) { |
55 | int n = 0, | 63 | int n = 0, |
56 | index = 0; | 64 | index = 0; |
57 | for ( QStringList::Iterator it=identifiers.begin(); | 65 | for ( QStringList::Iterator it=identifiers.begin(); |
58 | it!=identifiers.end(); ++it) { | 66 | it!=identifiers.end(); ++it) { |
59 | if ( *it == tz ) | 67 | if ( *it == tz ) |
60 | index = n; | 68 | index = n; |
61 | n++; | 69 | n++; |
62 | } | 70 | } |
63 | setCurrentItem(index); | 71 | setCurrentItem(index); |
64 | } else { | 72 | } else { |
65 | setCurrentItem(0); | 73 | setCurrentItem(0); |
66 | } | 74 | } |
67 | 75 | ||
68 | 76 | ||
69 | 77 | ||
70 | // listen on QPE/System | 78 | // listen on QPE/System |
71 | #if !defined(QT_NO_COP) | 79 | #if !defined(QT_NO_COP) |
72 | QCopChannel *channel = new QCopChannel( "QPE/System", this ); | 80 | QCopChannel *channel = new QCopChannel( "QPE/System", this ); |
73 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 81 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), |
74 | this, SLOT(handleSystemChannel(const QCString&, const QByteArray&)) ); | 82 | this, SLOT(handleSystemChannel(const QCString&, const QByteArray&)) ); |
75 | #endif | 83 | #endif |
76 | 84 | ||
77 | 85 | ||
78 | } | 86 | } |
79 | 87 | ||
80 | TZCombo::~TZCombo() | 88 | TZCombo::~TZCombo() |
81 | { | 89 | { |
82 | } | 90 | } |
83 | 91 | ||
84 | void TZCombo::updateZones() | 92 | void TZCombo::updateZones() |
85 | { | 93 | { |
86 | QString cur = currentText(); | 94 | QString cur = currentText(); |
87 | clear(); | 95 | clear(); |
88 | identifiers.clear(); | 96 | identifiers.clear(); |
89 | int curix=0; | 97 | int curix=0; |
90 | QString tz = getenv("TZ"); | 98 | QString tz = getenv("TZ"); |
91 | bool tzFound = FALSE; | 99 | bool tzFound = FALSE; |
92 | Config cfg("CityTime"); | 100 | Config cfg("CityTime"); |
93 | cfg.setGroup("TimeZones"); | 101 | cfg.setGroup("TimeZones"); |
94 | int listIndex = 0; | 102 | int listIndex = 0; |
95 | if (parent()->inherits("TimeZoneSelector")) { | 103 | if (parent()->inherits("TimeZoneSelector")) { |
96 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { | 104 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { |
97 | // overide to the 'local' type. | 105 | // overide to the 'local' type. |
98 | identifiers.append( "None" ); | 106 | identifiers.append( "None" ); |
99 | insertItem( tr("None") ); | 107 | insertItem( tr("None") ); |
100 | if ( cur == tr("None")) | 108 | if ( cur == tr("None")) |
101 | curix = 0; | 109 | curix = 0; |
102 | listIndex++; | 110 | listIndex++; |
103 | } | 111 | } |
104 | } | 112 | } |
105 | int cfgIndex = 0; | 113 | int cfgIndex = 0; |
106 | while (1) { | 114 | while (1) { |
107 | QString zn = cfg.readEntry("Zone"+QString::number(cfgIndex), QString::null); | 115 | QString zn = cfg.readEntry("Zone"+QString::number(cfgIndex), QString::null); |
108 | if ( zn.isNull() ) | 116 | if ( zn.isNull() ) |
109 | break; | 117 | break; |
110 | if ( zn == tz ) | 118 | if ( zn == tz ) |
111 | tzFound = TRUE; | 119 | tzFound = TRUE; |
112 | QString nm = cfg.readEntry("ZoneName"+QString::number(cfgIndex)); | 120 | QString nm = cfg.readEntry("ZoneName"+QString::number(cfgIndex)); |
113 | identifiers.append(zn); | 121 | identifiers.append(zn); |
114 | insertItem(nm); | 122 | insertItem(nm); |
115 | if ( nm == cur ) | 123 | if ( nm == cur ) |
116 | curix = listIndex; | 124 | curix = listIndex; |
117 | ++cfgIndex; | 125 | ++cfgIndex; |
118 | ++listIndex; | 126 | ++listIndex; |
119 | } | 127 | } |
120 | if ( !listIndex ) { | 128 | if ( !listIndex ) { |
121 | QStringList list = timezoneDefaults(); | 129 | QStringList list = timezoneDefaults(); |
122 | for ( QStringList::Iterator it = list.begin(); it!=list.end(); ++it ) { | 130 | for ( QStringList::Iterator it = list.begin(); it!=list.end(); ++it ) { |
123 | QString zn = *it; | 131 | QString zn = *it; |
124 | QString nm = *++it; | 132 | QString nm = *++it; |
125 | if ( zn == tz ) | 133 | if ( zn == tz ) |
126 | tzFound = TRUE; | 134 | tzFound = TRUE; |
127 | if ( nm == cur ) | 135 | if ( nm == cur ) |
128 | curix = listIndex; | 136 | curix = listIndex; |
129 | identifiers.append(zn); | 137 | identifiers.append(zn); |
130 | insertItem(nm); | 138 | insertItem(nm); |
131 | ++listIndex; | 139 | ++listIndex; |
132 | } | 140 | } |
133 | } | 141 | } |
134 | for (QStringList::Iterator it=extras.begin(); it!=extras.end(); ++it) { | 142 | for (QStringList::Iterator it=extras.begin(); it!=extras.end(); ++it) { |
135 | insertItem(*it); | 143 | insertItem(*it); |
136 | identifiers.append(*it); | 144 | identifiers.append(*it); |
137 | if ( *it == cur ) | 145 | if ( *it == cur ) |
138 | curix = listIndex; | 146 | curix = listIndex; |
139 | ++listIndex; | 147 | ++listIndex; |
140 | } | 148 | } |
141 | if ( !tzFound && !tz.isEmpty()) { | 149 | if ( !tzFound && !tz.isEmpty()) { |
142 | int i = tz.find( '/' ); | 150 | int i = tz.find( '/' ); |
143 | QString nm = tz.mid( i+1 ).replace(QRegExp("_"), " "); | 151 | QString nm = tz.mid( i+1 ).replace(QRegExp("_"), " "); |
144 | identifiers.append(tz); | 152 | identifiers.append(tz); |
145 | insertItem(nm); | 153 | insertItem(nm); |
146 | if ( nm == cur ) | 154 | if ( nm == cur ) |
147 | curix = listIndex; | 155 | curix = listIndex; |
148 | ++listIndex; | 156 | ++listIndex; |
149 | } | 157 | } |
150 | setCurrentItem(curix); | 158 | setCurrentItem(curix); |
151 | } | 159 | } |
152 | 160 | ||
153 | 161 | ||
154 | void TZCombo::keyPressEvent( QKeyEvent *e ) | 162 | void TZCombo::keyPressEvent( QKeyEvent *e ) |
155 | { | 163 | { |
156 | // ### should popup() in Qt 3.0 (it's virtual there) | 164 | // ### should popup() in Qt 3.0 (it's virtual there) |
157 | // updateZones(); | 165 | // updateZones(); |
158 | QComboBox::keyPressEvent(e); | 166 | QComboBox::keyPressEvent(e); |
159 | } | 167 | } |
160 | 168 | ||
161 | void TZCombo::mousePressEvent(QMouseEvent*e) | 169 | void TZCombo::mousePressEvent(QMouseEvent*e) |
162 | { | 170 | { |
163 | // ### should popup() in Qt 3.0 (it's virtual there) | 171 | // ### should popup() in Qt 3.0 (it's virtual there) |
164 | // updateZones(); | 172 | // updateZones(); |
165 | QComboBox::mousePressEvent(e); | 173 | QComboBox::mousePressEvent(e); |
166 | } | 174 | } |
167 | 175 | ||
168 | QString TZCombo::currZone() const | 176 | QString TZCombo::currZone() const |
169 | { | 177 | { |
170 | return identifiers[currentItem()]; | 178 | return identifiers[currentItem()]; |
171 | } | 179 | } |
172 | 180 | ||
173 | void TZCombo::setCurrZone( const QString& id ) | 181 | void TZCombo::setCurrZone( const QString& id ) |
174 | { | 182 | { |
175 | for (int i=0; i< count(); i++) { | 183 | for (int i=0; i< count(); i++) { |
176 | if ( identifiers[i] == id ) { | 184 | if ( identifiers[i] == id ) { |
177 | setCurrentItem(i); | 185 | setCurrentItem(i); |
178 | return; | 186 | return; |
179 | } | 187 | } |
180 | } | 188 | } |
181 | insertItem(id); | 189 | insertItem(id); |
182 | setCurrentItem( count() - 1); | 190 | setCurrentItem( count() - 1); |
183 | identifiers.append(id); | 191 | identifiers.append(id); |
184 | extras.append(id); | 192 | extras.append(id); |
185 | } | 193 | } |
186 | 194 | ||
187 | 195 | ||
188 | 196 | ||
189 | void TZCombo::handleSystemChannel(const QCString&msg, const QByteArray&) | 197 | void TZCombo::handleSystemChannel(const QCString&msg, const QByteArray&) |
190 | { | 198 | { |
191 | if ( msg == "timeZoneListChange()" ) { | 199 | if ( msg == "timeZoneListChange()" ) { |
192 | updateZones(); | 200 | updateZones(); |
193 | } | 201 | } |
194 | } | 202 | } |
195 | 203 | ||
204 | /*! | ||
205 | Creates a new TimeZoneSelector with parent \a p and name \a n. The combobox will be | ||
206 | populated with the available timezones. | ||
207 | */ | ||
196 | 208 | ||
197 | TimeZoneSelector::TimeZoneSelector(QWidget* p, const char* n) : | 209 | TimeZoneSelector::TimeZoneSelector(QWidget* p, const char* n) : |
198 | QHBox(p,n) | 210 | QHBox(p,n) |
199 | { | 211 | { |
200 | d = new TimeZoneSelectorPrivate(); | 212 | d = new TimeZoneSelectorPrivate(); |
201 | // build the combobox before we do any updates... | 213 | // build the combobox before we do any updates... |
202 | cmbTz = new TZCombo( this, "timezone combo" ); | 214 | cmbTz = new TZCombo( this, "timezone combo" ); |
203 | 215 | ||
204 | cmdTz = new QToolButton( this, "timezone button" ); | 216 | cmdTz = new QToolButton( this, "timezone button" ); |
205 | cmdTz->setIconSet( Resource::loadIconSet( "citytime_icon" ) ); | 217 | cmdTz->setIconSet( Resource::loadIconSet( "citytime_icon" ) ); |
206 | cmdTz->setMaximumSize( cmdTz->sizeHint() ); | 218 | cmdTz->setMaximumSize( cmdTz->sizeHint() ); |
207 | 219 | ||
208 | // set up a connection to catch a newly selected item and throw our | 220 | // set up a connection to catch a newly selected item and throw our |
209 | // signal | 221 | // signal |
210 | QObject::connect( cmbTz, SIGNAL( activated( int ) ), | 222 | QObject::connect( cmbTz, SIGNAL( activated( int ) ), |
211 | this, SLOT( slotTzActive( int ) ) ); | 223 | this, SLOT( slotTzActive( int ) ) ); |
212 | QObject::connect( cmdTz, SIGNAL( clicked() ), | 224 | QObject::connect( cmdTz, SIGNAL( clicked() ), |
213 | this, SLOT( slotExecute() ) ); | 225 | this, SLOT( slotExecute() ) ); |
214 | } | 226 | } |
215 | 227 | ||
228 | /*! | ||
229 | Destroys a TimeZoneSelector. | ||
230 | */ | ||
216 | TimeZoneSelector::~TimeZoneSelector() | 231 | TimeZoneSelector::~TimeZoneSelector() |
217 | { | 232 | { |
218 | } | 233 | } |
219 | 234 | ||
220 | void TimeZoneSelector::setLocalIncluded(bool b) | 235 | void TimeZoneSelector::setLocalIncluded(bool b) |
221 | { | 236 | { |
222 | d->includeLocal = b; | 237 | d->includeLocal = b; |
223 | cmbTz->updateZones(); | 238 | cmbTz->updateZones(); |
224 | } | 239 | } |
225 | 240 | ||
226 | bool TimeZoneSelector::localIncluded() const | 241 | bool TimeZoneSelector::localIncluded() const |
227 | { | 242 | { |
228 | return d->includeLocal; | 243 | return d->includeLocal; |
229 | } | 244 | } |
230 | 245 | ||
231 | 246 | /*! | |
247 | Returns the currently selected timezone as a string in location format, e.g. | ||
248 | \code Australia/Brisbane \endcode | ||
249 | */ | ||
232 | QString TimeZoneSelector::currentZone() const | 250 | QString TimeZoneSelector::currentZone() const |
233 | { | 251 | { |
234 | return cmbTz->currZone(); | 252 | return cmbTz->currZone(); |
235 | } | 253 | } |
236 | 254 | ||
255 | /*! | ||
256 | Sets the current timezone to \a id. | ||
257 | */ | ||
237 | void TimeZoneSelector::setCurrentZone( const QString& id ) | 258 | void TimeZoneSelector::setCurrentZone( const QString& id ) |
238 | { | 259 | { |
239 | cmbTz->setCurrZone( id ); | 260 | cmbTz->setCurrZone( id ); |
240 | } | 261 | } |
262 | /*! \fn void TimeZoneSelector::signalNewTz( const QString& id ) | ||
263 | This signal is emitted when a timezone has been selected by the user. The id | ||
264 | is a \l QString in location format, eg \code Australia/Brisbane \endcode | ||
265 | */ | ||
266 | |||
241 | 267 | ||
242 | void TimeZoneSelector::slotTzActive( int ) | 268 | void TimeZoneSelector::slotTzActive( int ) |
243 | { | 269 | { |
244 | emit signalNewTz( cmbTz->currZone() ); | 270 | emit signalNewTz( cmbTz->currZone() ); |
245 | } | 271 | } |
246 | 272 | ||
247 | void TimeZoneSelector::slotExecute( void ) | 273 | void TimeZoneSelector::slotExecute( void ) |
248 | { | 274 | { |
249 | // execute the world time application... | 275 | // execute the world time application... |
250 | if (QFile::exists(QPEApplication::qpeDir()+"bin/citytime")) | 276 | if (QFile::exists(QPEApplication::qpeDir()+"bin/citytime")) |
251 | Global::execute( "citytime" ); | 277 | Global::execute( "citytime" ); |
252 | else | 278 | else |
253 | QMessageBox::warning(this,tr("citytime executable not found"), | 279 | QMessageBox::warning(this,tr("citytime executable not found"), |
254 | tr("In order to choose the time zones,\nplease install citytime.")); | 280 | tr("In order to choose the time zones,\nplease install citytime.")); |
255 | } | 281 | } |
256 | 282 | ||
257 | QStringList timezoneDefaults( void ) | 283 | QStringList timezoneDefaults( void ) |
258 | { | 284 | { |
259 | QStringList tzs; | 285 | QStringList tzs; |
260 | // load up the list just like the file format (citytime.cpp) | 286 | // load up the list just like the file format (citytime.cpp) |
261 | tzs.append( "America/New_York" ); | 287 | tzs.append( "America/New_York" ); |
262 | tzs.append( "New York" ); | 288 | tzs.append( "New York" ); |
263 | tzs.append( "America/Los_Angeles" ); | 289 | tzs.append( "America/Los_Angeles" ); |
264 | tzs.append( "Los Angeles" ); | 290 | tzs.append( "Los Angeles" ); |
265 | tzs.append( "Australia/Brisbane" ); | 291 | tzs.append( "Australia/Brisbane" ); |
266 | tzs.append( "Brisbane" ); | 292 | tzs.append( "Brisbane" ); |
267 | tzs.append( "Europe/Berlin" ); | 293 | tzs.append( "Europe/Berlin" ); |
268 | tzs.append( "Berlin" ); | 294 | tzs.append( "Berlin" ); |
269 | tzs.append( "Asia/Tokyo" ); | 295 | tzs.append( "Asia/Tokyo" ); |
270 | tzs.append( "Tokyo" ); | 296 | tzs.append( "Tokyo" ); |
271 | tzs.append( "America/Denver" ); | 297 | tzs.append( "America/Denver" ); |
272 | tzs.append( "Denver" ); | 298 | tzs.append( "Denver" ); |
273 | 299 | ||
274 | return tzs; | 300 | return tzs; |
275 | } | 301 | } |
276 | 302 | ||
277 | 303 | ||
diff --git a/library/version.h b/library/version.h index d72af53..bef9aa7 100644 --- a/library/version.h +++ b/library/version.h | |||
@@ -1,3 +1,3 @@ | |||
1 | #define QPE_VENDOR "Project Opie" | 1 | #define QPE_VENDOR "Project Opie" |
2 | #define QPE_VERSION "0.9.3-snapshot" | 2 | #define QPE_VERSION "1.0.1-snapshot" |
3 | #define SUB_VERSION "" | 3 | #define SUB_VERSION "" |