author | alwin <alwin> | 2004-02-21 01:37:11 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-02-21 01:37:11 (UTC) |
commit | b38daa3f05f3a250a8c5114890158863ab02a99f (patch) (unidiff) | |
tree | 465f331c2281e49460eb230950fac731e4e99336 | |
parent | d9e2ecd5619616d041ae8ac7a6f0776faee2310c (diff) | |
download | opie-b38daa3f05f3a250a8c5114890158863ab02a99f.zip opie-b38daa3f05f3a250a8c5114890158863ab02a99f.tar.gz opie-b38daa3f05f3a250a8c5114890158863ab02a99f.tar.bz2 |
some global helper functions implemented
-rw-r--r-- | libopie2/opiecore/oglobal.cpp | 152 | ||||
-rw-r--r-- | libopie2/opiecore/oglobal.h | 47 |
2 files changed, 153 insertions, 46 deletions
diff --git a/libopie2/opiecore/oglobal.cpp b/libopie2/opiecore/oglobal.cpp index 352151b..879e80f 100644 --- a/libopie2/opiecore/oglobal.cpp +++ b/libopie2/opiecore/oglobal.cpp | |||
@@ -1,42 +1,48 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de> | 3 | Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de> |
4 | Copyright (C) 2004 Holger 'zecke' Freyther <zecke@handhelds.org> | 4 | =. Copyright (C) 2004 Holger 'zecke' Freyther <zecke@handhelds.org> |
5 | =. | ||
6 | .=l. | 5 | .=l. |
7 | .>+-= | 6 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 7 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 13 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 14 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 19 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 20 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 21 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 22 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 23 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 24 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 25 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
29 | */ | 28 | */ |
30 | 29 | ||
31 | #include <opie2/oglobal.h> | 30 | #include <opie2/oglobal.h> |
32 | 31 | ||
33 | #include <qfile.h> | 32 | #include <qfile.h> |
34 | #include <qtextstream.h> | 33 | #include <qtextstream.h> |
34 | #include <qdir.h> | ||
35 | #include <qpe/mimetype.h> | ||
36 | #include <qpe/qpeapplication.h> | ||
37 | #include <qpe/storage.h> | ||
38 | |||
39 | #include <unistd.h> | ||
40 | #include <sys/types.h> | ||
35 | 41 | ||
36 | static const char Base64EncMap[64] = | 42 | static const char Base64EncMap[64] = |
37 | { | 43 | { |
38 | 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, | 44 | 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, |
39 | 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, | 45 | 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, |
40 | 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | 46 | 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, |
41 | 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, | 47 | 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, |
42 | 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, | 48 | 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, |
@@ -62,16 +68,17 @@ static char Base64DecMap[128] = | |||
62 | 0x00, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, | 68 | 0x00, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, |
63 | 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, | 69 | 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, |
64 | 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, | 70 | 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, |
65 | 0x31, 0x32, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00 | 71 | 0x31, 0x32, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00 |
66 | }; | 72 | }; |
67 | 73 | ||
68 | 74 | ||
69 | OConfig* OGlobal::_config = 0; | 75 | OConfig* OGlobal::_config = 0; |
76 | OConfig* OGlobal::_qpe_config = 0; | ||
70 | 77 | ||
71 | OConfig* OGlobal::config() | 78 | OConfig* OGlobal::config() |
72 | { | 79 | { |
73 | if ( !OGlobal::_config ) | 80 | if ( !OGlobal::_config ) |
74 | { | 81 | { |
75 | // odebug classes are reading config, so can't use them here! | 82 | // odebug classes are reading config, so can't use them here! |
76 | qDebug( "OGlobal::creating global configuration instance." ); | 83 | qDebug( "OGlobal::creating global configuration instance." ); |
77 | OGlobal::_config = new OConfig( "global" ); | 84 | OGlobal::_config = new OConfig( "global" ); |
@@ -298,8 +305,107 @@ QByteArray OGlobal::decodeBase64( const QByteArray& in) { | |||
298 | out[didx] = (((out[sidx+1] << 4) & 255) | ((out[sidx+2] >> 2) & 017)); | 305 | out[didx] = (((out[sidx+1] << 4) & 255) | ((out[sidx+2] >> 2) & 017)); |
299 | 306 | ||
300 | // Resize the output buffer | 307 | // Resize the output buffer |
301 | if ( len == 0 || len < out.size() ) | 308 | if ( len == 0 || len < out.size() ) |
302 | out.resize(len); | 309 | out.resize(len); |
303 | 310 | ||
304 | return out; | 311 | return out; |
305 | } | 312 | } |
313 | |||
314 | bool OGlobal::isAppLnkFileName( const QString& str ) | ||
315 | { | ||
316 | if (str.length()==0||str.at(str.length()-1)==QDir::separator()) return false; | ||
317 | return str.startsWith(MimeType::appsFolderName()+QDir::separator()); | ||
318 | } | ||
319 | |||
320 | /* ToDo: | ||
321 | * This fun should check the document-path value for the mounted media | ||
322 | * which has to be implemented later. this moment we just check for a | ||
323 | * mounted media name. | ||
324 | */ | ||
325 | bool OGlobal::isDocumentFileName( const QString& file ) | ||
326 | { | ||
327 | if (file.length()==0||file.at(file.length()-1)==QDir::separator()) return false; | ||
328 | if (file.startsWith(QPEApplication::documentDir()+QDir::separator())) return true; | ||
329 | StorageInfo si; | ||
330 | QList< FileSystem > fl = si.fileSystems(); | ||
331 | FileSystem*fs; | ||
332 | for (fs = fl.first();fs!=0;fs=fl.next()) { | ||
333 | if (fs->isRemovable()&&file.startsWith(fs->name()+QDir::separator())) | ||
334 | return true; | ||
335 | } | ||
336 | if (file.startsWith(homeDirPath())+"/Documents/") return true; | ||
337 | return false; | ||
338 | } | ||
339 | |||
340 | QString OGlobal::tempDirPath() | ||
341 | { | ||
342 | static QString defstring="/tmp"; | ||
343 | char * tmpp = 0; | ||
344 | if ( (tmpp=getenv("TEMP"))) { | ||
345 | return tmpp; | ||
346 | } | ||
347 | return defstring; | ||
348 | } | ||
349 | |||
350 | QString OGlobal::homeDirPath() | ||
351 | { | ||
352 | char * tmpp = getenv("HOME"); | ||
353 | return (tmpp?tmpp:"/"); | ||
354 | } | ||
355 | |||
356 | bool OGlobal::weekStartsOnMonday() | ||
357 | { | ||
358 | OConfig*conf=OGlobal::qpe_config(); | ||
359 | if (!conf)return false; | ||
360 | conf->setGroup("Time"); | ||
361 | return conf->readBoolEntry("MONDAY",true); | ||
362 | } | ||
363 | |||
364 | void OGlobal::setWeekStartsOnMonday( bool what) | ||
365 | { | ||
366 | OConfig*conf=OGlobal::qpe_config(); | ||
367 | if (!conf)return; | ||
368 | conf->setGroup("Time"); | ||
369 | return conf->writeEntry("MONDAY",what); | ||
370 | } | ||
371 | |||
372 | bool OGlobal::useAMPM() | ||
373 | { | ||
374 | OConfig*conf=OGlobal::qpe_config(); | ||
375 | if (!conf)return false; | ||
376 | conf->setGroup("Time"); | ||
377 | return conf->readBoolEntry("AMPM",false); | ||
378 | } | ||
379 | |||
380 | void OGlobal::setUseAMPM( bool what) | ||
381 | { | ||
382 | OConfig*conf=OGlobal::qpe_config(); | ||
383 | if (!conf)return; | ||
384 | conf->setGroup("Time"); | ||
385 | return conf->writeEntry("AMPM",what); | ||
386 | } | ||
387 | |||
388 | OConfig* OGlobal::qpe_config() | ||
389 | { | ||
390 | if ( !OGlobal::_qpe_config ) { | ||
391 | OGlobal::_qpe_config = new OConfig( "qpe" ); | ||
392 | } | ||
393 | return OGlobal::_qpe_config; | ||
394 | } | ||
395 | |||
396 | bool OGlobal::truncateFile( QFile &f, off_t size ) | ||
397 | { | ||
398 | /* or should we let enlarge Files? then remove this | ||
399 | f.size()< part! - Alwin | ||
400 | */ | ||
401 | if (!f.exists()||f.size()<(unsigned)size) return false; | ||
402 | bool closeit=false; | ||
403 | if (!f.isOpen()) { | ||
404 | closeit=true; | ||
405 | f.open(IO_Raw | IO_ReadWrite | IO_Append); | ||
406 | } | ||
407 | if (!f.isOpen()) { return false; } | ||
408 | int r = ftruncate(f.handle(),size); | ||
409 | if (closeit) f.close(); | ||
410 | return r==0; | ||
411 | } | ||
diff --git a/libopie2/opiecore/oglobal.h b/libopie2/opiecore/oglobal.h index d09d73e..5b43f01 100644 --- a/libopie2/opiecore/oglobal.h +++ b/libopie2/opiecore/oglobal.h | |||
@@ -1,33 +1,32 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de> | 3 | Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@Vanille.de> |
4 | Copyright (C) 2004 Holger 'zecke' Freyther <zecke@handhelds.org> | 4 | =. Copyright (C) 2004 Holger 'zecke' Freyther <zecke@handhelds.org> |
5 | =. | ||
6 | .=l. | 5 | .=l. |
7 | .>+-= | 6 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 7 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 13 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 14 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 19 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 20 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 21 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 22 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 23 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 24 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 25 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
29 | */ | 28 | */ |
30 | 29 | ||
31 | #ifndef OGLOBAL_H | 30 | #ifndef OGLOBAL_H |
32 | #define OGLOBAL_H | 31 | #define OGLOBAL_H |
33 | 32 | ||
@@ -103,16 +102,17 @@ public: | |||
103 | //FIXME Do we want to put that into OApplication as in KApplication? -zecke | 102 | //FIXME Do we want to put that into OApplication as in KApplication? -zecke |
104 | // We already have a per-application config in OApplication | 103 | // We already have a per-application config in OApplication |
105 | // ( accessed through oApp->config() ), but this one is the global one! -mickeyl | 104 | // ( accessed through oApp->config() ), but this one is the global one! -mickeyl |
106 | /** @name Config and Owner related Information | 105 | /** @name Config and Owner related Information |
107 | * | 106 | * |
108 | */ | 107 | */ |
109 | //@{ | 108 | //@{ |
110 | static OConfig* config(); | 109 | static OConfig* config(); |
110 | static OConfig* qpe_config(); | ||
111 | static QString ownerName(); | 111 | static QString ownerName(); |
112 | static bool weekStartsOnMonday(); | 112 | static bool weekStartsOnMonday(); |
113 | static bool useAMPM(); | 113 | static bool useAMPM(); |
114 | #ifdef ODP | 114 | #ifdef ODP |
115 | #error "Fix dateFormat" | 115 | #error "Fix dateFormat" |
116 | /** | 116 | /** |
117 | * For Qt3/Qt4 we can use QDate::toString(OGlobal::dateFormat) | 117 | * For Qt3/Qt4 we can use QDate::toString(OGlobal::dateFormat) |
118 | * See if we need to use the function with String in it | 118 | * See if we need to use the function with String in it |
@@ -130,11 +130,12 @@ public: | |||
130 | 130 | ||
131 | //@{ | 131 | //@{ |
132 | static Global::Command* builtinCommands(); | 132 | static Global::Command* builtinCommands(); |
133 | static QGuardedPtr<QWidget>* builtinRunning(); | 133 | static QGuardedPtr<QWidget>* builtinRunning(); |
134 | //@} | 134 | //@} |
135 | 135 | ||
136 | private: | 136 | private: |
137 | static OConfig* _config; | 137 | static OConfig* _config; |
138 | static OConfig* _qpe_config; | ||
138 | }; | 139 | }; |
139 | 140 | ||
140 | #endif // OGLOBAL_H | 141 | #endif // OGLOBAL_H |