author | chicken <chicken> | 2004-03-01 18:10:37 (UTC) |
---|---|---|
committer | chicken <chicken> | 2004-03-01 18:10:37 (UTC) |
commit | 7fd20d139e2d9bc37ce22bbdb07f4ebc54903f91 (patch) (unidiff) | |
tree | 15ef5e3d00c5476ea98ca36ba6c8392eb02e53c8 /library | |
parent | 5b4e342004537f84fa53911a46cd00d810378da7 (diff) | |
download | opie-7fd20d139e2d9bc37ce22bbdb07f4ebc54903f91.zip opie-7fd20d139e2d9bc37ce22bbdb07f4ebc54903f91.tar.gz opie-7fd20d139e2d9bc37ce22bbdb07f4ebc54903f91.tar.bz2 |
fix includes
-rw-r--r-- | library/alarmserver.cpp | 5 | ||||
-rw-r--r-- | library/applnk.cpp | 4 | ||||
-rw-r--r-- | library/categoryedit_p.cpp | 3 | ||||
-rw-r--r-- | library/categorymenu.cpp | 2 | ||||
-rw-r--r-- | library/config.cpp | 2 | ||||
-rw-r--r-- | library/datebookdb.cpp | 5 | ||||
-rw-r--r-- | library/datebookmonth.cpp | 5 | ||||
-rw-r--r-- | library/filemanager.cpp | 3 | ||||
-rw-r--r-- | library/fileselector.cpp | 2 | ||||
-rw-r--r-- | library/finddialog.cpp | 1 | ||||
-rw-r--r-- | library/findwidget_p.cpp | 6 | ||||
-rw-r--r-- | library/fontdatabase.cpp | 2 | ||||
-rw-r--r-- | library/global.cpp | 2 | ||||
-rw-r--r-- | library/imageedit.cpp | 1 | ||||
-rw-r--r-- | library/ir.cpp | 2 | ||||
-rw-r--r-- | library/lnkproperties.cpp | 3 | ||||
-rw-r--r-- | library/mimetype.cpp | 4 | ||||
-rw-r--r-- | library/qcopenvelope_qws.cpp | 2 | ||||
-rw-r--r-- | library/qdawg.cpp | 2 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 1 | ||||
-rw-r--r-- | library/qpemenubar.cpp | 1 | ||||
-rw-r--r-- | library/qpestyle.cpp | 3 | ||||
-rw-r--r-- | library/qpetoolbar.cpp | 2 | ||||
-rw-r--r-- | library/qt_override.cpp | 2 | ||||
-rw-r--r-- | library/resource.cpp | 3 | ||||
-rw-r--r-- | library/sound.cpp | 2 | ||||
-rw-r--r-- | library/storage.cpp | 4 | ||||
-rw-r--r-- | library/tzselect.cpp | 1 |
28 files changed, 1 insertions, 74 deletions
diff --git a/library/alarmserver.cpp b/library/alarmserver.cpp index 6f6f32d..48ab9c1 100644 --- a/library/alarmserver.cpp +++ b/library/alarmserver.cpp | |||
@@ -1,125 +1,120 @@ | |||
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 <qdir.h> | 21 | #include <qdir.h> |
22 | #include <qfile.h> | ||
23 | #include <qmessagebox.h> | ||
24 | #include <qtextstream.h> | ||
25 | 22 | ||
26 | 23 | ||
27 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
28 | #include "global.h" | ||
29 | #include "resource.h" | ||
30 | 25 | ||
31 | #include <qpe/qcopenvelope_qws.h> | 26 | #include <qpe/qcopenvelope_qws.h> |
32 | #include "alarmserver.h" | 27 | #include "alarmserver.h" |
33 | #include <qpe/timeconversion.h> | 28 | #include <qpe/timeconversion.h> |
34 | 29 | ||
35 | #include <sys/types.h> | 30 | #include <sys/types.h> |
36 | #include <sys/stat.h> | 31 | #include <sys/stat.h> |
37 | 32 | ||
38 | #include <stdlib.h> | 33 | #include <stdlib.h> |
39 | #include <unistd.h> | 34 | #include <unistd.h> |
40 | 35 | ||
41 | 36 | ||
42 | #undef USE_ATD // not used anymore -- we run opie-alarm on suspend/resume | 37 | #undef USE_ATD // not used anymore -- we run opie-alarm on suspend/resume |
43 | 38 | ||
44 | 39 | ||
45 | struct timerEventItem | 40 | struct timerEventItem |
46 | { | 41 | { |
47 | time_t UTCtime; | 42 | time_t UTCtime; |
48 | QCString channel, message; | 43 | QCString channel, message; |
49 | int data; | 44 | int data; |
50 | bool operator==( const timerEventItem &right ) const | 45 | bool operator==( const timerEventItem &right ) const |
51 | { | 46 | { |
52 | return ( UTCtime == right.UTCtime | 47 | return ( UTCtime == right.UTCtime |
53 | && channel == right.channel | 48 | && channel == right.channel |
54 | && message == right.message | 49 | && message == right.message |
55 | && data == right.data ); | 50 | && data == right.data ); |
56 | } | 51 | } |
57 | }; | 52 | }; |
58 | 53 | ||
59 | class TimerReceiverObject : public QObject | 54 | class TimerReceiverObject : public QObject |
60 | { | 55 | { |
61 | public: | 56 | public: |
62 | TimerReceiverObject() | 57 | TimerReceiverObject() |
63 | { } | 58 | { } |
64 | ~TimerReceiverObject() | 59 | ~TimerReceiverObject() |
65 | { } | 60 | { } |
66 | void resetTimer(); | 61 | void resetTimer(); |
67 | void setTimerEventItem(); | 62 | void setTimerEventItem(); |
68 | void deleteTimer(); | 63 | void deleteTimer(); |
69 | protected: | 64 | protected: |
70 | void timerEvent( QTimerEvent *te ); | 65 | void timerEvent( QTimerEvent *te ); |
71 | 66 | ||
72 | #ifdef USE_ATD | 67 | #ifdef USE_ATD |
73 | private: | 68 | private: |
74 | QString atfilename; | 69 | QString atfilename; |
75 | #endif | 70 | #endif |
76 | }; | 71 | }; |
77 | 72 | ||
78 | TimerReceiverObject *timerEventReceiver = NULL; | 73 | TimerReceiverObject *timerEventReceiver = NULL; |
79 | QList<timerEventItem> timerEventList; | 74 | QList<timerEventItem> timerEventList; |
80 | timerEventItem *nearestTimerEvent = NULL; | 75 | timerEventItem *nearestTimerEvent = NULL; |
81 | 76 | ||
82 | 77 | ||
83 | // set the timer to go off on the next event in the list | 78 | // set the timer to go off on the next event in the list |
84 | void setNearestTimerEvent() | 79 | void setNearestTimerEvent() |
85 | { | 80 | { |
86 | nearestTimerEvent = NULL; | 81 | nearestTimerEvent = NULL; |
87 | QListIterator<timerEventItem> it( timerEventList ); | 82 | QListIterator<timerEventItem> it( timerEventList ); |
88 | if ( *it ) | 83 | if ( *it ) |
89 | nearestTimerEvent = *it; | 84 | nearestTimerEvent = *it; |
90 | for ( ; *it; ++it ) | 85 | for ( ; *it; ++it ) |
91 | if ( (*it)->UTCtime < nearestTimerEvent->UTCtime ) | 86 | if ( (*it)->UTCtime < nearestTimerEvent->UTCtime ) |
92 | nearestTimerEvent = *it; | 87 | nearestTimerEvent = *it; |
93 | if (nearestTimerEvent) | 88 | if (nearestTimerEvent) |
94 | timerEventReceiver->resetTimer(); | 89 | timerEventReceiver->resetTimer(); |
95 | else | 90 | else |
96 | timerEventReceiver->deleteTimer(); | 91 | timerEventReceiver->deleteTimer(); |
97 | } | 92 | } |
98 | 93 | ||
99 | 94 | ||
100 | //store current state to file | 95 | //store current state to file |
101 | //Simple implementation. Should run on a timer. | 96 | //Simple implementation. Should run on a timer. |
102 | 97 | ||
103 | static void saveState() | 98 | static void saveState() |
104 | { | 99 | { |
105 | QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" ); | 100 | QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" ); |
106 | if ( timerEventList.isEmpty() ) { | 101 | if ( timerEventList.isEmpty() ) { |
107 | unlink( savefilename ); | 102 | unlink( savefilename ); |
108 | return ; | 103 | return ; |
109 | } | 104 | } |
110 | 105 | ||
111 | QFile savefile(savefilename + ".new"); | 106 | QFile savefile(savefilename + ".new"); |
112 | if ( savefile.open(IO_WriteOnly) ) { | 107 | if ( savefile.open(IO_WriteOnly) ) { |
113 | QDataStream ds( &savefile ); | 108 | QDataStream ds( &savefile ); |
114 | 109 | ||
115 | //save | 110 | //save |
116 | 111 | ||
117 | QListIterator<timerEventItem> it( timerEventList ); | 112 | QListIterator<timerEventItem> it( timerEventList ); |
118 | for ( ; *it; ++it ) { | 113 | for ( ; *it; ++it ) { |
119 | ds << it.current()->UTCtime; | 114 | ds << it.current()->UTCtime; |
120 | ds << it.current()->channel; | 115 | ds << it.current()->channel; |
121 | ds << it.current()->message; | 116 | ds << it.current()->message; |
122 | ds << it.current()->data; | 117 | ds << it.current()->data; |
123 | } | 118 | } |
124 | 119 | ||
125 | 120 | ||
diff --git a/library/applnk.cpp b/library/applnk.cpp index 8763eb2..9c60f1a 100644 --- a/library/applnk.cpp +++ b/library/applnk.cpp | |||
@@ -1,137 +1,133 @@ | |||
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> | ||
32 | #include <qpe/mimetype.h> | 31 | #include <qpe/mimetype.h> |
33 | #include <qpe/config.h> | 32 | #include <qpe/config.h> |
34 | #include <qpe/storage.h> | 33 | #include <qpe/storage.h> |
35 | #include <qpe/resource.h> | 34 | #include <qpe/resource.h> |
36 | 35 | ||
37 | #include <qdict.h> | ||
38 | #include <qdir.h> | 36 | #include <qdir.h> |
39 | #include <qregexp.h> | ||
40 | 37 | ||
41 | #include <qgfx_qws.h> | ||
42 | 38 | ||
43 | #include <stdlib.h> | 39 | #include <stdlib.h> |
44 | 40 | ||
45 | int AppLnk::lastId = 5000; | 41 | int AppLnk::lastId = 5000; |
46 | 42 | ||
47 | static int smallSize = 14; | 43 | static int smallSize = 14; |
48 | static int bigSize = 32; | 44 | static int bigSize = 32; |
49 | 45 | ||
50 | static QString safeFileName(const QString& n) | 46 | static QString safeFileName(const QString& n) |
51 | { | 47 | { |
52 | QString safename=n; | 48 | QString safename=n; |
53 | safename.replace(QRegExp("[^0-9A-Za-z.]"),"_"); | 49 | safename.replace(QRegExp("[^0-9A-Za-z.]"),"_"); |
54 | safename.replace(QRegExp("^[^A-Za-z]*"),""); | 50 | safename.replace(QRegExp("^[^A-Za-z]*"),""); |
55 | if ( safename.isEmpty() ) | 51 | if ( safename.isEmpty() ) |
56 | safename = "_"; | 52 | safename = "_"; |
57 | return safename; | 53 | return safename; |
58 | } | 54 | } |
59 | 55 | ||
60 | static bool prepareDirectories(const QString& lf) | 56 | static bool prepareDirectories(const QString& lf) |
61 | { | 57 | { |
62 | if ( !QFile::exists(lf) ) { | 58 | if ( !QFile::exists(lf) ) { |
63 | // May need to create directories | 59 | // May need to create directories |
64 | QFileInfo fi(lf); | 60 | QFileInfo fi(lf); |
65 | if ( system(("mkdir -p "+fi.dirPath(TRUE))) ) | 61 | if ( system(("mkdir -p "+fi.dirPath(TRUE))) ) |
66 | return FALSE; | 62 | return FALSE; |
67 | } | 63 | } |
68 | return TRUE; | 64 | return TRUE; |
69 | } | 65 | } |
70 | 66 | ||
71 | class AppLnkPrivate | 67 | class AppLnkPrivate |
72 | { | 68 | { |
73 | public: | 69 | public: |
74 | /* the size of the Pixmap */ | 70 | /* the size of the Pixmap */ |
75 | enum Size {Normal = 0, Big }; | 71 | enum Size {Normal = 0, Big }; |
76 | AppLnkPrivate() { | 72 | AppLnkPrivate() { |
77 | /* we want one normal and one big item */ | 73 | /* we want one normal and one big item */ |
78 | 74 | ||
79 | QPixmap pix; | 75 | QPixmap pix; |
80 | mPixmaps.insert(0, pix ); | 76 | mPixmaps.insert(0, pix ); |
81 | mPixmaps.insert(1, pix); | 77 | mPixmaps.insert(1, pix); |
82 | } | 78 | } |
83 | 79 | ||
84 | QStringList mCatList; // always correct | 80 | QStringList mCatList; // always correct |
85 | QArray<int> mCat; // cached value; correct if not empty | 81 | QArray<int> mCat; // cached value; correct if not empty |
86 | QMap<int, QPixmap> mPixmaps; | 82 | QMap<int, QPixmap> mPixmaps; |
87 | 83 | ||
88 | void updateCatListFromArray() | 84 | void updateCatListFromArray() |
89 | { | 85 | { |
90 | Categories cat( 0 ); | 86 | Categories cat( 0 ); |
91 | cat.load( categoryFileName() ); | 87 | cat.load( categoryFileName() ); |
92 | // we need to update the names for the mCat... to mCatList | 88 | // we need to update the names for the mCat... to mCatList |
93 | mCatList.clear(); | 89 | mCatList.clear(); |
94 | for (uint i = 0; i < mCat.count(); i++ ) | 90 | for (uint i = 0; i < mCat.count(); i++ ) |
95 | mCatList << cat.label("Document View", mCat[i] ); | 91 | mCatList << cat.label("Document View", mCat[i] ); |
96 | 92 | ||
97 | } | 93 | } |
98 | 94 | ||
99 | void setCatArrayDirty() | 95 | void setCatArrayDirty() |
100 | { | 96 | { |
101 | mCat.resize(0); | 97 | mCat.resize(0); |
102 | } | 98 | } |
103 | 99 | ||
104 | void ensureCatArray() | 100 | void ensureCatArray() |
105 | { | 101 | { |
106 | if ( mCat.count() > 0 || mCatList.count()==0 ) | 102 | if ( mCat.count() > 0 || mCatList.count()==0 ) |
107 | return; | 103 | return; |
108 | 104 | ||
109 | Categories cat( 0 ); | 105 | Categories cat( 0 ); |
110 | cat.load( categoryFileName() ); | 106 | cat.load( categoryFileName() ); |
111 | mCat.resize( mCatList.count() ); | 107 | mCat.resize( mCatList.count() ); |
112 | int i; | 108 | int i; |
113 | QStringList::ConstIterator it; | 109 | QStringList::ConstIterator it; |
114 | for ( i = 0, it = mCatList.begin(); it != mCatList.end(); | 110 | for ( i = 0, it = mCatList.begin(); it != mCatList.end(); |
115 | ++it, i++ ) { | 111 | ++it, i++ ) { |
116 | 112 | ||
117 | bool number; | 113 | bool number; |
118 | int id = (*it).toInt( &number ); | 114 | int id = (*it).toInt( &number ); |
119 | if ( !number ) { | 115 | if ( !number ) { |
120 | id = cat.id( "Document View", *it ); | 116 | id = cat.id( "Document View", *it ); |
121 | if ( id == 0 ) | 117 | if ( id == 0 ) |
122 | id = cat.addCategory( "Document View", *it ); | 118 | id = cat.addCategory( "Document View", *it ); |
123 | } | 119 | } |
124 | mCat[i] = id; | 120 | mCat[i] = id; |
125 | } | 121 | } |
126 | } | 122 | } |
127 | }; | 123 | }; |
128 | 124 | ||
129 | /*! | 125 | /*! |
130 | \class AppLnk applnk.h | 126 | \class AppLnk applnk.h |
131 | \brief The AppLnk class represents an application available on the system. | 127 | \brief The AppLnk class represents an application available on the system. |
132 | 128 | ||
133 | Every Qtopia application \e app has a corresponding \e app.desktop | 129 | 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 | 130 | file. When one of these files is read its data is stored as an |
135 | AppLnk object. | 131 | AppLnk object. |
136 | 132 | ||
137 | The AppLnk class introduces some Qtopia-specific concepts, and | 133 | The AppLnk class introduces some Qtopia-specific concepts, and |
diff --git a/library/categoryedit_p.cpp b/library/categoryedit_p.cpp index 9321259..14ac2e1 100644 --- a/library/categoryedit_p.cpp +++ b/library/categoryedit_p.cpp | |||
@@ -1,126 +1,123 @@ | |||
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> | ||
29 | #include <qstringlist.h> | ||
30 | #include <qtoolbutton.h> | ||
31 | 28 | ||
32 | #include <sys/types.h> | 29 | #include <sys/types.h> |
33 | #include <sys/stat.h> | 30 | #include <sys/stat.h> |
34 | 31 | ||
35 | #include <stdlib.h> | 32 | #include <stdlib.h> |
36 | 33 | ||
37 | 34 | ||
38 | using namespace Qtopia; | 35 | using namespace Qtopia; |
39 | 36 | ||
40 | class CategoryEditPrivate | 37 | class CategoryEditPrivate |
41 | { | 38 | { |
42 | public: | 39 | public: |
43 | CategoryEditPrivate( QWidget *parent, const QString &appName ) | 40 | CategoryEditPrivate( QWidget *parent, const QString &appName ) |
44 | : mCategories( parent, "" ), | 41 | : mCategories( parent, "" ), |
45 | mStrApp( appName ) | 42 | mStrApp( appName ) |
46 | { | 43 | { |
47 | editItem = 0; | 44 | editItem = 0; |
48 | mCategories.load( categoryFileName() ); | 45 | mCategories.load( categoryFileName() ); |
49 | } | 46 | } |
50 | Categories mCategories; | 47 | Categories mCategories; |
51 | QListViewItem *editItem; | 48 | QListViewItem *editItem; |
52 | QString mStrApp; | 49 | QString mStrApp; |
53 | QString mVisible; | 50 | QString mVisible; |
54 | }; | 51 | }; |
55 | 52 | ||
56 | CategoryEdit::CategoryEdit( QWidget *parent, const char *name ) | 53 | CategoryEdit::CategoryEdit( QWidget *parent, const char *name ) |
57 | : CategoryEditBase( parent, name ) | 54 | : CategoryEditBase( parent, name ) |
58 | { | 55 | { |
59 | d = 0; | 56 | d = 0; |
60 | } | 57 | } |
61 | 58 | ||
62 | CategoryEdit::CategoryEdit( const QArray<int> &recCats, | 59 | CategoryEdit::CategoryEdit( const QArray<int> &recCats, |
63 | const QString &appName, const QString &visibleName, | 60 | const QString &appName, const QString &visibleName, |
64 | QWidget *parent, const char *name ) | 61 | QWidget *parent, const char *name ) |
65 | : CategoryEditBase( parent, name ) | 62 | : CategoryEditBase( parent, name ) |
66 | { | 63 | { |
67 | d = 0; | 64 | d = 0; |
68 | setCategories( recCats, appName, visibleName ); | 65 | setCategories( recCats, appName, visibleName ); |
69 | } | 66 | } |
70 | 67 | ||
71 | void CategoryEdit::setCategories( const QArray<int> &recCats, | 68 | void CategoryEdit::setCategories( const QArray<int> &recCats, |
72 | const QString &appName, const QString &visibleName ) | 69 | const QString &appName, const QString &visibleName ) |
73 | { | 70 | { |
74 | if ( !d ) | 71 | if ( !d ) |
75 | d = new CategoryEditPrivate( (QWidget*)parent(), name() ); | 72 | d = new CategoryEditPrivate( (QWidget*)parent(), name() ); |
76 | d->mStrApp = appName; | 73 | d->mStrApp = appName; |
77 | d->mVisible = visibleName; | 74 | d->mVisible = visibleName; |
78 | 75 | ||
79 | QStringList appCats = d->mCategories.labels( d->mStrApp ); | 76 | QStringList appCats = d->mCategories.labels( d->mStrApp ); |
80 | QArray<int> cats = d->mCategories.ids(d->mStrApp, appCats); | 77 | QArray<int> cats = d->mCategories.ids(d->mStrApp, appCats); |
81 | lvView->clear(); | 78 | lvView->clear(); |
82 | 79 | ||
83 | QStringList::ConstIterator it; | 80 | QStringList::ConstIterator it; |
84 | int i, j; | 81 | int i, j; |
85 | for ( i = 0, it = appCats.begin(); it != appCats.end(); i++, ++it ) { | 82 | for ( i = 0, it = appCats.begin(); it != appCats.end(); i++, ++it ) { |
86 | QCheckListItem *chk; | 83 | QCheckListItem *chk; |
87 | chk = new QCheckListItem( lvView, (*it), QCheckListItem::CheckBox ); | 84 | chk = new QCheckListItem( lvView, (*it), QCheckListItem::CheckBox ); |
88 | if ( !d->mCategories.isGlobal((*it)) ) | 85 | if ( !d->mCategories.isGlobal((*it)) ) |
89 | chk->setText( 1, tr(d->mVisible) ); | 86 | chk->setText( 1, tr(d->mVisible) ); |
90 | else | 87 | else |
91 | chk->setText( 1, tr("All") ); | 88 | chk->setText( 1, tr("All") ); |
92 | // Is this record using this category, then we should check it | 89 | // Is this record using this category, then we should check it |
93 | for ( j = 0; j < int(recCats.count()); j++ ) { | 90 | for ( j = 0; j < int(recCats.count()); j++ ) { |
94 | if ( cats[i] == recCats[j] ) { | 91 | if ( cats[i] == recCats[j] ) { |
95 | chk->setOn( true ); | 92 | chk->setOn( true ); |
96 | break; | 93 | break; |
97 | } | 94 | } |
98 | } | 95 | } |
99 | } | 96 | } |
100 | lvView->setSorting( 0, TRUE ); | 97 | lvView->setSorting( 0, TRUE ); |
101 | lvView->sort(); | 98 | lvView->sort(); |
102 | if ( lvView->childCount() < 1 ) | 99 | if ( lvView->childCount() < 1 ) |
103 | txtCat->setEnabled( FALSE ); | 100 | txtCat->setEnabled( FALSE ); |
104 | else { | 101 | else { |
105 | lvView->setSelected( lvView->firstChild(), true ); | 102 | lvView->setSelected( lvView->firstChild(), true ); |
106 | } | 103 | } |
107 | } | 104 | } |
108 | 105 | ||
109 | CategoryEdit::~CategoryEdit() | 106 | CategoryEdit::~CategoryEdit() |
110 | { | 107 | { |
111 | if ( d ) | 108 | if ( d ) |
112 | delete d; | 109 | delete d; |
113 | } | 110 | } |
114 | 111 | ||
115 | void CategoryEdit::slotSetText( QListViewItem *selected ) | 112 | void CategoryEdit::slotSetText( QListViewItem *selected ) |
116 | { | 113 | { |
117 | d->editItem = selected; | 114 | d->editItem = selected; |
118 | if ( !d->editItem ) | 115 | if ( !d->editItem ) |
119 | return; | 116 | return; |
120 | txtCat->setText( d->editItem->text(0) ); | 117 | txtCat->setText( d->editItem->text(0) ); |
121 | txtCat->setEnabled( true ); | 118 | txtCat->setEnabled( true ); |
122 | if ( d->editItem->text(1) == tr("All") ) | 119 | if ( d->editItem->text(1) == tr("All") ) |
123 | chkGlobal->setChecked( true ); | 120 | chkGlobal->setChecked( true ); |
124 | else | 121 | else |
125 | chkGlobal->setChecked( false ); | 122 | chkGlobal->setChecked( false ); |
126 | } | 123 | } |
diff --git a/library/categorymenu.cpp b/library/categorymenu.cpp index 5d7adf7..9bbb448 100644 --- a/library/categorymenu.cpp +++ b/library/categorymenu.cpp | |||
@@ -1,121 +1,119 @@ | |||
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> | ||
25 | #include <qmap.h> | ||
26 | 24 | ||
27 | /*! | 25 | /*! |
28 | \class CategoryMenu | 26 | \class CategoryMenu |
29 | \brief The CategoryMenu widget aids in filtering records or files by Category. | 27 | \brief The CategoryMenu widget aids in filtering records or files by Category. |
30 | 28 | ||
31 | The CategoryMenu widget provides a popup menu that will make filtering records | 29 | 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 | 30 | 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 | 31 | 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 | 32 | 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 | 33 | by the isSelected() function to see if a record or file containing those |
36 | categories would be allowed through by the filter. | 34 | categories would be allowed through by the filter. |
37 | 35 | ||
38 | \warning Currently this class is not suitable for extending. | 36 | \warning Currently this class is not suitable for extending. |
39 | 37 | ||
40 | \ingroup qtopiaemb | 38 | \ingroup qtopiaemb |
41 | */ | 39 | */ |
42 | 40 | ||
43 | /*! | 41 | /*! |
44 | \fn void CategoryMenu::categoryChange() | 42 | \fn void CategoryMenu::categoryChange() |
45 | This signal is emitted when the user selects a different category in the | 43 | This signal is emitted when the user selects a different category in the |
46 | menu, hence changing what records or files should be selected. | 44 | menu, hence changing what records or files should be selected. |
47 | */ | 45 | */ |
48 | 46 | ||
49 | /*! | 47 | /*! |
50 | Creates a new CategoryMenu with \a parent and \a name. The menu will be | 48 | Creates a new CategoryMenu with \a parent and \a name. The menu will be |
51 | populated with the available categories for \a application. | 49 | populated with the available categories for \a application. |
52 | 50 | ||
53 | If \a globals is TRUE then it will also poplulate the menu with the | 51 | If \a globals is TRUE then it will also poplulate the menu with the |
54 | global categories. | 52 | global categories. |
55 | */ | 53 | */ |
56 | CategoryMenu::CategoryMenu( const QString &n, bool ig = TRUE, | 54 | CategoryMenu::CategoryMenu( const QString &n, bool ig = TRUE, |
57 | QWidget *parent, const char *name ) : | 55 | QWidget *parent, const char *name ) : |
58 | QPopupMenu(parent, name), | 56 | QPopupMenu(parent, name), |
59 | appName(n), | 57 | appName(n), |
60 | includeGlobal(ig) | 58 | includeGlobal(ig) |
61 | { | 59 | { |
62 | currentMid = 1; | 60 | currentMid = 1; |
63 | reload(); | 61 | reload(); |
64 | connect(this, SIGNAL(activated(int)), this, SLOT(mapMenuId(int))); | 62 | connect(this, SIGNAL(activated(int)), this, SLOT(mapMenuId(int))); |
65 | } | 63 | } |
66 | 64 | ||
67 | /*! | 65 | /*! |
68 | Destroys a CategoryMenu. | 66 | Destroys a CategoryMenu. |
69 | */ | 67 | */ |
70 | CategoryMenu::~CategoryMenu( ) | 68 | CategoryMenu::~CategoryMenu( ) |
71 | { | 69 | { |
72 | } | 70 | } |
73 | 71 | ||
74 | /*! | 72 | /*! |
75 | Repopulates the widget's list of available categories. | 73 | Repopulates the widget's list of available categories. |
76 | */ | 74 | */ |
77 | void CategoryMenu::reload() | 75 | void CategoryMenu::reload() |
78 | { | 76 | { |
79 | clear(); | 77 | clear(); |
80 | Categories c; | 78 | Categories c; |
81 | 79 | ||
82 | c.load(categoryFileName()); | 80 | c.load(categoryFileName()); |
83 | 81 | ||
84 | QStringList sl = c.labels(appName, includeGlobal); | 82 | QStringList sl = c.labels(appName, includeGlobal); |
85 | int mid = 1; | 83 | int mid = 1; |
86 | 84 | ||
87 | insertItem(tr("All"), mid); | 85 | insertItem(tr("All"), mid); |
88 | mid++; | 86 | mid++; |
89 | insertItem(tr("Unfiled"), mid); | 87 | insertItem(tr("Unfiled"), mid); |
90 | mid++; | 88 | mid++; |
91 | 89 | ||
92 | for (QStringList::Iterator it = sl.begin(); | 90 | for (QStringList::Iterator it = sl.begin(); |
93 | it != sl.end(); ++it ) { | 91 | it != sl.end(); ++it ) { |
94 | int cid = c.id(appName, *it); | 92 | int cid = c.id(appName, *it); |
95 | insertItem(*it, mid); | 93 | insertItem(*it, mid); |
96 | menuToId.insert(mid, cid); | 94 | menuToId.insert(mid, cid); |
97 | idToMenu.insert(cid, mid); | 95 | idToMenu.insert(cid, mid); |
98 | mid++; | 96 | mid++; |
99 | } | 97 | } |
100 | 98 | ||
101 | setItemChecked(currentMid, TRUE ); | 99 | setItemChecked(currentMid, TRUE ); |
102 | } | 100 | } |
103 | 101 | ||
104 | /*! | 102 | /*! |
105 | \internal | 103 | \internal |
106 | */ | 104 | */ |
107 | void CategoryMenu::mapMenuId(int id) | 105 | void CategoryMenu::mapMenuId(int id) |
108 | { | 106 | { |
109 | if (id == currentMid) | 107 | if (id == currentMid) |
110 | return; | 108 | return; |
111 | setItemChecked( currentMid, FALSE ); | 109 | setItemChecked( currentMid, FALSE ); |
112 | setItemChecked( id, TRUE ); | 110 | setItemChecked( id, TRUE ); |
113 | currentMid = id; | 111 | currentMid = id; |
114 | 112 | ||
115 | emit categoryChange(); | 113 | emit categoryChange(); |
116 | } | 114 | } |
117 | 115 | ||
118 | /*! | 116 | /*! |
119 | Returns TRUE if a record or file with the set of category ids \a cUids | 117 | 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. | 118 | is allowed by the current selection in the CategoryMenu. |
121 | Otherwise returns FALSE. | 119 | Otherwise returns FALSE. |
diff --git a/library/config.cpp b/library/config.cpp index b28c771..8b60f60 100644 --- a/library/config.cpp +++ b/library/config.cpp | |||
@@ -1,119 +1,117 @@ | |||
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> | ||
23 | #include <qfileinfo.h> | ||
24 | #include <qmessagebox.h> | 22 | #include <qmessagebox.h> |
25 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | 23 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) |
26 | #include <qtextcodec.h> | 24 | #include <qtextcodec.h> |
27 | #endif | 25 | #endif |
28 | #include <qtextstream.h> | 26 | #include <qtextstream.h> |
29 | 27 | ||
30 | #include <sys/stat.h> | 28 | #include <sys/stat.h> |
31 | #include <sys/types.h> | 29 | #include <sys/types.h> |
32 | #include <fcntl.h> | 30 | #include <fcntl.h> |
33 | #include <stdlib.h> | 31 | #include <stdlib.h> |
34 | #include <unistd.h> | 32 | #include <unistd.h> |
35 | 33 | ||
36 | #define QTOPIA_INTERNAL_LANGLIST | 34 | #define QTOPIA_INTERNAL_LANGLIST |
37 | #include "config.h" | 35 | #include "config.h" |
38 | #include "global.h" | 36 | #include "global.h" |
39 | 37 | ||
40 | 38 | ||
41 | /*! | 39 | /*! |
42 | \internal | 40 | \internal |
43 | */ | 41 | */ |
44 | QString Config::configFilename(const QString& name, Domain d) | 42 | QString Config::configFilename(const QString& name, Domain d) |
45 | { | 43 | { |
46 | switch (d) { | 44 | switch (d) { |
47 | case File: | 45 | case File: |
48 | return name; | 46 | return name; |
49 | case User: { | 47 | case User: { |
50 | QDir dir = (QString(getenv("HOME")) + "/Settings"); | 48 | QDir dir = (QString(getenv("HOME")) + "/Settings"); |
51 | if ( !dir.exists() ) | 49 | if ( !dir.exists() ) |
52 | mkdir(dir.path().local8Bit(),0700); | 50 | mkdir(dir.path().local8Bit(),0700); |
53 | return dir.path() + "/" + name + ".conf"; | 51 | return dir.path() + "/" + name + ".conf"; |
54 | } | 52 | } |
55 | } | 53 | } |
56 | return name; | 54 | return name; |
57 | } | 55 | } |
58 | 56 | ||
59 | /*! | 57 | /*! |
60 | \class Config config.h | 58 | \class Config config.h |
61 | \brief The Config class provides for saving application cofniguration state. | 59 | \brief The Config class provides for saving application cofniguration state. |
62 | 60 | ||
63 | You should keep a Config in existence only while you do not want others | 61 | 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 | 62 | to be able to change the state. There is no locking currently, but there |
65 | may be in the future. | 63 | may be in the future. |
66 | */ | 64 | */ |
67 | 65 | ||
68 | /*! | 66 | /*! |
69 | \enum Config::ConfigGroup | 67 | \enum Config::ConfigGroup |
70 | \internal | 68 | \internal |
71 | */ | 69 | */ |
72 | 70 | ||
73 | /*! | 71 | /*! |
74 | \enum Config::Domain | 72 | \enum Config::Domain |
75 | 73 | ||
76 | \value File | 74 | \value File |
77 | \value User | 75 | \value User |
78 | 76 | ||
79 | See Config for details. | 77 | See Config for details. |
80 | */ | 78 | */ |
81 | 79 | ||
82 | /*! | 80 | /*! |
83 | Constructs a config that will load or create a configuration with the | 81 | Constructs a config that will load or create a configuration with the |
84 | given \a name in the given \a domain. | 82 | given \a name in the given \a domain. |
85 | 83 | ||
86 | You must call setGroup() before doing much else with the Config. | 84 | You must call setGroup() before doing much else with the Config. |
87 | 85 | ||
88 | In the default Domain, \e User, | 86 | In the default Domain, \e User, |
89 | the configuration is user-specific. \a name should not contain "/" in | 87 | 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 | 88 | this case, and in general should be the name of the C++ class that is |
91 | primarily responsible for maintaining the configuration. | 89 | primarily responsible for maintaining the configuration. |
92 | 90 | ||
93 | In the File Domain, \a name is an absolute filename. | 91 | In the File Domain, \a name is an absolute filename. |
94 | */ | 92 | */ |
95 | Config::Config( const QString &name, Domain domain ) | 93 | Config::Config( const QString &name, Domain domain ) |
96 | : filename( configFilename(name,domain) ) | 94 | : filename( configFilename(name,domain) ) |
97 | { | 95 | { |
98 | git = groups.end(); | 96 | git = groups.end(); |
99 | read(); | 97 | read(); |
100 | QStringList l = Global::languageList(); | 98 | QStringList l = Global::languageList(); |
101 | lang = l[0]; | 99 | lang = l[0]; |
102 | glang = l[1]; | 100 | glang = l[1]; |
103 | } | 101 | } |
104 | 102 | ||
105 | 103 | ||
106 | // Sharp ROM compatibility | 104 | // Sharp ROM compatibility |
107 | Config::Config ( const QString &name, bool what ) | 105 | Config::Config ( const QString &name, bool what ) |
108 | : filename( configFilename(name,what ? User : File) ) | 106 | : filename( configFilename(name,what ? User : File) ) |
109 | { | 107 | { |
110 | git = groups.end(); | 108 | git = groups.end(); |
111 | read(); | 109 | read(); |
112 | QStringList l = Global::languageList(); | 110 | QStringList l = Global::languageList(); |
113 | lang = l[0]; | 111 | lang = l[0]; |
114 | glang = l[1]; | 112 | glang = l[1]; |
115 | } | 113 | } |
116 | 114 | ||
117 | /*! | 115 | /*! |
118 | Writes any changes to disk and destroys the in-memory object. | 116 | Writes any changes to disk and destroys the in-memory object. |
119 | */ | 117 | */ |
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp index 188d8e1..e4ec2bf 100644 --- a/library/datebookdb.cpp +++ b/library/datebookdb.cpp | |||
@@ -1,129 +1,124 @@ | |||
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> | ||
23 | #include <qmessagebox.h> | 22 | #include <qmessagebox.h> |
24 | #include <qstring.h> | ||
25 | #include <qtextcodec.h> | ||
26 | #include <qtextstream.h> | ||
27 | #include <qtl.h> | 23 | #include <qtl.h> |
28 | 24 | ||
29 | #include <qpe/alarmserver.h> | 25 | #include <qpe/alarmserver.h> |
30 | #include <qpe/global.h> | 26 | #include <qpe/global.h> |
31 | #include "datebookdb.h" | 27 | #include "datebookdb.h" |
32 | #include <qpe/stringutil.h> | 28 | #include <qpe/stringutil.h> |
33 | #include <qpe/timeconversion.h> | ||
34 | 29 | ||
35 | #include <errno.h> | 30 | #include <errno.h> |
36 | #include <stdlib.h> | 31 | #include <stdlib.h> |
37 | 32 | ||
38 | 33 | ||
39 | class DateBookDBPrivate | 34 | class DateBookDBPrivate |
40 | { | 35 | { |
41 | public: | 36 | public: |
42 | bool clean; // indcate whether we need to write to disk... | 37 | bool clean; // indcate whether we need to write to disk... |
43 | }; | 38 | }; |
44 | 39 | ||
45 | 40 | ||
46 | // Helper functions | 41 | // Helper functions |
47 | 42 | ||
48 | static QString dateBookJournalFile() | 43 | static QString dateBookJournalFile() |
49 | { | 44 | { |
50 | QString str = getenv("HOME"); | 45 | QString str = getenv("HOME"); |
51 | return QString( str +"/.caljournal" ); | 46 | return QString( str +"/.caljournal" ); |
52 | } | 47 | } |
53 | 48 | ||
54 | static QString dateBookFilename() | 49 | static QString dateBookFilename() |
55 | { | 50 | { |
56 | return Global::applicationFileName("datebook","datebook.xml"); | 51 | return Global::applicationFileName("datebook","datebook.xml"); |
57 | } | 52 | } |
58 | 53 | ||
59 | /* Calculating the next event of a recuring event is actually | 54 | /* Calculating the next event of a recuring event is actually |
60 | computationally inexpensive, esp. compared to checking each day | 55 | computationally inexpensive, esp. compared to checking each day |
61 | individually. There are bad worse cases for say the 29th of | 56 | individually. There are bad worse cases for say the 29th of |
62 | february or the 31st of some other months. However | 57 | february or the 31st of some other months. However |
63 | these are still bounded */ | 58 | these are still bounded */ |
64 | bool nextOccurance(const Event &e, const QDate &from, QDateTime &next) | 59 | bool nextOccurance(const Event &e, const QDate &from, QDateTime &next) |
65 | { | 60 | { |
66 | // easy checks, first are we too far in the future or too far in the past? | 61 | // easy checks, first are we too far in the future or too far in the past? |
67 | QDate tmpDate; | 62 | QDate tmpDate; |
68 | int freq = e.repeatPattern().frequency; | 63 | int freq = e.repeatPattern().frequency; |
69 | int diff, diff2, a; | 64 | int diff, diff2, a; |
70 | int iday, imonth, iyear; | 65 | int iday, imonth, iyear; |
71 | int dayOfWeek = 0; | 66 | int dayOfWeek = 0; |
72 | int firstOfWeek = 0; | 67 | int firstOfWeek = 0; |
73 | int weekOfMonth; | 68 | int weekOfMonth; |
74 | 69 | ||
75 | 70 | ||
76 | if (e.repeatPattern().hasEndDate && e.repeatPattern().endDate() < from) | 71 | if (e.repeatPattern().hasEndDate && e.repeatPattern().endDate() < from) |
77 | return FALSE; | 72 | return FALSE; |
78 | 73 | ||
79 | if (e.start() >= from) { | 74 | if (e.start() >= from) { |
80 | next = e.start(); | 75 | next = e.start(); |
81 | return TRUE; | 76 | return TRUE; |
82 | } | 77 | } |
83 | 78 | ||
84 | switch ( e.repeatPattern().type ) { | 79 | switch ( e.repeatPattern().type ) { |
85 | case Event::Weekly: | 80 | case Event::Weekly: |
86 | /* weekly is just daily by 7 */ | 81 | /* weekly is just daily by 7 */ |
87 | /* first convert the repeatPattern.Days() mask to the next | 82 | /* first convert the repeatPattern.Days() mask to the next |
88 | day of week valid after from */ | 83 | day of week valid after from */ |
89 | dayOfWeek = from.dayOfWeek(); | 84 | dayOfWeek = from.dayOfWeek(); |
90 | dayOfWeek--; /* we want 0-6, doco for above specs 1-7 */ | 85 | dayOfWeek--; /* we want 0-6, doco for above specs 1-7 */ |
91 | 86 | ||
92 | /* this is done in case freq > 1 and from in week not | 87 | /* this is done in case freq > 1 and from in week not |
93 | for this round */ | 88 | for this round */ |
94 | // firstOfWeek = 0; this is already done at decl. | 89 | // firstOfWeek = 0; this is already done at decl. |
95 | while(!((1 << firstOfWeek) & e.repeatPattern().days)) | 90 | while(!((1 << firstOfWeek) & e.repeatPattern().days)) |
96 | firstOfWeek++; | 91 | firstOfWeek++; |
97 | 92 | ||
98 | 93 | ||
99 | 94 | ||
100 | /* there is at least one 'day', or there would be no event */ | 95 | /* there is at least one 'day', or there would be no event */ |
101 | while(!((1 << (dayOfWeek % 7)) & e.repeatPattern().days)) | 96 | while(!((1 << (dayOfWeek % 7)) & e.repeatPattern().days)) |
102 | dayOfWeek++; | 97 | dayOfWeek++; |
103 | 98 | ||
104 | 99 | ||
105 | dayOfWeek = dayOfWeek % 7; /* the actual day of week */ | 100 | dayOfWeek = dayOfWeek % 7; /* the actual day of week */ |
106 | dayOfWeek -= e.start().date().dayOfWeek() -1; | 101 | dayOfWeek -= e.start().date().dayOfWeek() -1; |
107 | 102 | ||
108 | firstOfWeek = firstOfWeek % 7; /* the actual first of week */ | 103 | firstOfWeek = firstOfWeek % 7; /* the actual first of week */ |
109 | firstOfWeek -= e.start().date().dayOfWeek() -1; | 104 | firstOfWeek -= e.start().date().dayOfWeek() -1; |
110 | 105 | ||
111 | // dayOfWeek may be negitive now | 106 | // dayOfWeek may be negitive now |
112 | // day of week is number of days to add to start day | 107 | // day of week is number of days to add to start day |
113 | 108 | ||
114 | freq *= 7; | 109 | freq *= 7; |
115 | // FALL-THROUGH !!!!! | 110 | // FALL-THROUGH !!!!! |
116 | case Event::Daily: | 111 | case Event::Daily: |
117 | // the add is for the possible fall through from weekly */ | 112 | // the add is for the possible fall through from weekly */ |
118 | if(e.start().date().addDays(dayOfWeek) > from) { | 113 | if(e.start().date().addDays(dayOfWeek) > from) { |
119 | /* first week exception */ | 114 | /* first week exception */ |
120 | next = QDateTime(e.start().date().addDays(dayOfWeek), | 115 | next = QDateTime(e.start().date().addDays(dayOfWeek), |
121 | e.start().time()); | 116 | e.start().time()); |
122 | if ((next.date() > e.repeatPattern().endDate()) | 117 | if ((next.date() > e.repeatPattern().endDate()) |
123 | && e.repeatPattern().hasEndDate) | 118 | && e.repeatPattern().hasEndDate) |
124 | return FALSE; | 119 | return FALSE; |
125 | return TRUE; | 120 | return TRUE; |
126 | } | 121 | } |
127 | /* if from is middle of a non-week */ | 122 | /* if from is middle of a non-week */ |
128 | 123 | ||
129 | diff = e.start().date().addDays(dayOfWeek).daysTo(from) % freq; | 124 | diff = e.start().date().addDays(dayOfWeek).daysTo(from) % freq; |
diff --git a/library/datebookmonth.cpp b/library/datebookmonth.cpp index 728045f..76e022f 100644 --- a/library/datebookmonth.cpp +++ b/library/datebookmonth.cpp | |||
@@ -1,129 +1,124 @@ | |||
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> | ||
24 | #include "resource.h" | 23 | #include "resource.h" |
25 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
26 | #include "timestring.h" | ||
27 | 25 | ||
28 | #include <qtoolbutton.h> | 26 | #include <qtoolbutton.h> |
29 | #include <qspinbox.h> | 27 | #include <qspinbox.h> |
30 | #include <qcombobox.h> | 28 | #include <qcombobox.h> |
31 | #include <qdatetime.h> | ||
32 | #include <qpainter.h> | ||
33 | #include <qpopupmenu.h> | ||
34 | #include <qvaluestack.h> | 29 | #include <qvaluestack.h> |
35 | #include <qwhatsthis.h> | 30 | #include <qwhatsthis.h> |
36 | 31 | ||
37 | 32 | ||
38 | DateBookMonthHeader::DateBookMonthHeader( QWidget *parent, const char *name ) | 33 | DateBookMonthHeader::DateBookMonthHeader( QWidget *parent, const char *name ) |
39 | : QHBox( parent, name ) | 34 | : QHBox( parent, name ) |
40 | { | 35 | { |
41 | setBackgroundMode( PaletteButton ); | 36 | setBackgroundMode( PaletteButton ); |
42 | 37 | ||
43 | begin = new QToolButton( this ); | 38 | begin = new QToolButton( this ); |
44 | begin->setFocusPolicy(NoFocus); | 39 | begin->setFocusPolicy(NoFocus); |
45 | begin->setPixmap( Resource::loadPixmap( "start" ) ); | 40 | begin->setPixmap( Resource::loadPixmap( "start" ) ); |
46 | begin->setAutoRaise( TRUE ); | 41 | begin->setAutoRaise( TRUE ); |
47 | begin->setFixedSize( begin->sizeHint() ); | 42 | begin->setFixedSize( begin->sizeHint() ); |
48 | QWhatsThis::add( begin, tr("Show January in the selected year") ); | 43 | QWhatsThis::add( begin, tr("Show January in the selected year") ); |
49 | 44 | ||
50 | back = new QToolButton( this ); | 45 | back = new QToolButton( this ); |
51 | back->setFocusPolicy(NoFocus); | 46 | back->setFocusPolicy(NoFocus); |
52 | back->setPixmap( Resource::loadPixmap( "back" ) ); | 47 | back->setPixmap( Resource::loadPixmap( "back" ) ); |
53 | back->setAutoRaise( TRUE ); | 48 | back->setAutoRaise( TRUE ); |
54 | back->setFixedSize( back->sizeHint() ); | 49 | back->setFixedSize( back->sizeHint() ); |
55 | QWhatsThis::add( back, tr("Show the previous month") ); | 50 | QWhatsThis::add( back, tr("Show the previous month") ); |
56 | 51 | ||
57 | month = new QComboBox( FALSE, this ); | 52 | month = new QComboBox( FALSE, this ); |
58 | for ( int i = 0; i < 12; ++i ) | 53 | for ( int i = 0; i < 12; ++i ) |
59 | month->insertItem( Calendar::nameOfMonth( i + 1 ) ); | 54 | month->insertItem( Calendar::nameOfMonth( i + 1 ) ); |
60 | 55 | ||
61 | year = new QSpinBox( 1752, 8000, 1, this ); | 56 | year = new QSpinBox( 1752, 8000, 1, this ); |
62 | 57 | ||
63 | next = new QToolButton( this ); | 58 | next = new QToolButton( this ); |
64 | next->setFocusPolicy(NoFocus); | 59 | next->setFocusPolicy(NoFocus); |
65 | next->setPixmap( Resource::loadPixmap( "forward" ) ); | 60 | next->setPixmap( Resource::loadPixmap( "forward" ) ); |
66 | next->setAutoRaise( TRUE ); | 61 | next->setAutoRaise( TRUE ); |
67 | next->setFixedSize( next->sizeHint() ); | 62 | next->setFixedSize( next->sizeHint() ); |
68 | QWhatsThis::add( next, tr("Show the next month") ); | 63 | QWhatsThis::add( next, tr("Show the next month") ); |
69 | 64 | ||
70 | end = new QToolButton( this ); | 65 | end = new QToolButton( this ); |
71 | end->setFocusPolicy(NoFocus); | 66 | end->setFocusPolicy(NoFocus); |
72 | end->setPixmap( Resource::loadPixmap( "finish" ) ); | 67 | end->setPixmap( Resource::loadPixmap( "finish" ) ); |
73 | end->setAutoRaise( TRUE ); | 68 | end->setAutoRaise( TRUE ); |
74 | end->setFixedSize( end->sizeHint() ); | 69 | end->setFixedSize( end->sizeHint() ); |
75 | QWhatsThis::add( end, tr("Show December in the selected year") ); | 70 | QWhatsThis::add( end, tr("Show December in the selected year") ); |
76 | 71 | ||
77 | connect( month, SIGNAL( activated( int ) ), | 72 | connect( month, SIGNAL( activated( int ) ), |
78 | this, SLOT( updateDate() ) ); | 73 | this, SLOT( updateDate() ) ); |
79 | connect( year, SIGNAL( valueChanged( int ) ), | 74 | connect( year, SIGNAL( valueChanged( int ) ), |
80 | this, SLOT( updateDate() ) ); | 75 | this, SLOT( updateDate() ) ); |
81 | connect( begin, SIGNAL( clicked() ), | 76 | connect( begin, SIGNAL( clicked() ), |
82 | this, SLOT( firstMonth() ) ); | 77 | this, SLOT( firstMonth() ) ); |
83 | connect( end, SIGNAL( clicked() ), | 78 | connect( end, SIGNAL( clicked() ), |
84 | this, SLOT( lastMonth() ) ); | 79 | this, SLOT( lastMonth() ) ); |
85 | connect( back, SIGNAL( clicked() ), | 80 | connect( back, SIGNAL( clicked() ), |
86 | this, SLOT( monthBack() ) ); | 81 | this, SLOT( monthBack() ) ); |
87 | connect( next, SIGNAL( clicked() ), | 82 | connect( next, SIGNAL( clicked() ), |
88 | this, SLOT( monthForward() ) ); | 83 | this, SLOT( monthForward() ) ); |
89 | back->setAutoRepeat( TRUE ); | 84 | back->setAutoRepeat( TRUE ); |
90 | next->setAutoRepeat( TRUE ); | 85 | next->setAutoRepeat( TRUE ); |
91 | } | 86 | } |
92 | 87 | ||
93 | 88 | ||
94 | DateBookMonthHeader::~DateBookMonthHeader() | 89 | DateBookMonthHeader::~DateBookMonthHeader() |
95 | { | 90 | { |
96 | 91 | ||
97 | } | 92 | } |
98 | 93 | ||
99 | void DateBookMonthHeader::updateDate() | 94 | void DateBookMonthHeader::updateDate() |
100 | { | 95 | { |
101 | emit dateChanged( year->value(), month->currentItem() + 1 ); | 96 | emit dateChanged( year->value(), month->currentItem() + 1 ); |
102 | } | 97 | } |
103 | 98 | ||
104 | void DateBookMonthHeader::firstMonth() | 99 | void DateBookMonthHeader::firstMonth() |
105 | { | 100 | { |
106 | emit dateChanged( year->value(), 1 ); | 101 | emit dateChanged( year->value(), 1 ); |
107 | month->setCurrentItem( 0 ); | 102 | month->setCurrentItem( 0 ); |
108 | } | 103 | } |
109 | 104 | ||
110 | void DateBookMonthHeader::lastMonth() | 105 | void DateBookMonthHeader::lastMonth() |
111 | { | 106 | { |
112 | emit dateChanged( year->value(), 12 ); | 107 | emit dateChanged( year->value(), 12 ); |
113 | month->setCurrentItem( 11 ); | 108 | month->setCurrentItem( 11 ); |
114 | } | 109 | } |
115 | 110 | ||
116 | void DateBookMonthHeader::monthBack() | 111 | void DateBookMonthHeader::monthBack() |
117 | { | 112 | { |
118 | if ( month->currentItem() > 0 ) { | 113 | if ( month->currentItem() > 0 ) { |
119 | emit dateChanged( year->value(), month->currentItem() ); | 114 | emit dateChanged( year->value(), month->currentItem() ); |
120 | month->setCurrentItem( month->currentItem() - 1 ); | 115 | month->setCurrentItem( month->currentItem() - 1 ); |
121 | } else { | 116 | } else { |
122 | emit dateChanged( year->value() - 1, 12 ); | 117 | emit dateChanged( year->value() - 1, 12 ); |
123 | // we have a signal set to a changed value in year so we only need to change | 118 | // we have a signal set to a changed value in year so we only need to change |
124 | // year to get the result... | 119 | // year to get the result... |
125 | month->setCurrentItem( 11 ); | 120 | month->setCurrentItem( 11 ); |
126 | year->setValue( year->value() - 1 ); | 121 | year->setValue( year->value() - 1 ); |
127 | } | 122 | } |
128 | } | 123 | } |
129 | 124 | ||
diff --git a/library/filemanager.cpp b/library/filemanager.cpp index 408be20..1e7384e 100644 --- a/library/filemanager.cpp +++ b/library/filemanager.cpp | |||
@@ -1,123 +1,120 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #include "filemanager.h" | 20 | #include "filemanager.h" |
21 | #include "applnk.h" | 21 | #include "applnk.h" |
22 | 22 | ||
23 | #include <qdir.h> | ||
24 | #include <qfile.h> | ||
25 | #include <qfileinfo.h> | 23 | #include <qfileinfo.h> |
26 | #include <qtextstream.h> | 24 | #include <qtextstream.h> |
27 | #include <qtextcodec.h> | ||
28 | 25 | ||
29 | #include <errno.h> | 26 | #include <errno.h> |
30 | #include <stdlib.h> | 27 | #include <stdlib.h> |
31 | #include <unistd.h> | 28 | #include <unistd.h> |
32 | #include <sys/stat.h> | 29 | #include <sys/stat.h> |
33 | #include <dirent.h> | 30 | #include <dirent.h> |
34 | #ifdef Q_OS_MACX | 31 | #ifdef Q_OS_MACX |
35 | // MacOS X does not have sendfile.. :( | 32 | // MacOS X does not have sendfile.. :( |
36 | // But maybe in the future.. !? | 33 | // But maybe in the future.. !? |
37 | # ifdef SENDFILE | 34 | # ifdef SENDFILE |
38 | # include <sys/types.h> | 35 | # include <sys/types.h> |
39 | # include <sys/socket.h> | 36 | # include <sys/socket.h> |
40 | # endif | 37 | # endif |
41 | #else | 38 | #else |
42 | # include <sys/sendfile.h> | 39 | # include <sys/sendfile.h> |
43 | #endif /* Q_OS_MACX */ | 40 | #endif /* Q_OS_MACX */ |
44 | #include <fcntl.h> | 41 | #include <fcntl.h> |
45 | 42 | ||
46 | /*! | 43 | /*! |
47 | \class FileManager | 44 | \class FileManager |
48 | \brief The FileManager class assists with AppLnk input/output. | 45 | \brief The FileManager class assists with AppLnk input/output. |
49 | */ | 46 | */ |
50 | 47 | ||
51 | /*! | 48 | /*! |
52 | Constructs a FileManager. | 49 | Constructs a FileManager. |
53 | */ | 50 | */ |
54 | FileManager::FileManager() | 51 | FileManager::FileManager() |
55 | { | 52 | { |
56 | } | 53 | } |
57 | 54 | ||
58 | /*! | 55 | /*! |
59 | Destroys a FileManager. | 56 | Destroys a FileManager. |
60 | */ | 57 | */ |
61 | FileManager::~FileManager() | 58 | FileManager::~FileManager() |
62 | { | 59 | { |
63 | 60 | ||
64 | } | 61 | } |
65 | 62 | ||
66 | /*! | 63 | /*! |
67 | Saves \a data as the document specified by \a f. | 64 | Saves \a data as the document specified by \a f. |
68 | 65 | ||
69 | Returns whether the operation succeeded. | 66 | Returns whether the operation succeeded. |
70 | */ | 67 | */ |
71 | bool FileManager::saveFile( const DocLnk &f, const QByteArray &data ) | 68 | bool FileManager::saveFile( const DocLnk &f, const QByteArray &data ) |
72 | { | 69 | { |
73 | QString fn = f.file() + ".new"; | 70 | QString fn = f.file() + ".new"; |
74 | ensurePathExists( fn ); | 71 | ensurePathExists( fn ); |
75 | QFile fl( fn ); | 72 | QFile fl( fn ); |
76 | if ( !fl.open( IO_WriteOnly|IO_Raw ) ) { | 73 | if ( !fl.open( IO_WriteOnly|IO_Raw ) ) { |
77 | qWarning("open failed"); | 74 | qWarning("open failed"); |
78 | return FALSE; | 75 | return FALSE; |
79 | } | 76 | } |
80 | int total_written = fl.writeBlock( data ); | 77 | int total_written = fl.writeBlock( data ); |
81 | fl.close(); | 78 | fl.close(); |
82 | if ( total_written != int(data.size()) || !f.writeLink() ) { | 79 | if ( total_written != int(data.size()) || !f.writeLink() ) { |
83 | QFile::remove( fn ); | 80 | QFile::remove( fn ); |
84 | return FALSE; | 81 | return FALSE; |
85 | } | 82 | } |
86 | qDebug("total written %d out of %d", total_written, data.size()); | 83 | qDebug("total written %d out of %d", total_written, data.size()); |
87 | // else rename the file... | 84 | // else rename the file... |
88 | if ( !renameFile( fn.latin1(), f.file().latin1() ) ) { | 85 | if ( !renameFile( fn.latin1(), f.file().latin1() ) ) { |
89 | qWarning( "problem renaming file %s to %s, errno: %d", fn.latin1(), | 86 | qWarning( "problem renaming file %s to %s, errno: %d", fn.latin1(), |
90 | f.file().latin1(), errno ); | 87 | f.file().latin1(), errno ); |
91 | // remove the file... | 88 | // remove the file... |
92 | } | 89 | } |
93 | return TRUE; | 90 | return TRUE; |
94 | } | 91 | } |
95 | 92 | ||
96 | /*! | 93 | /*! |
97 | Saves \a text as the document specified by \a f. | 94 | Saves \a text as the document specified by \a f. |
98 | 95 | ||
99 | The text is saved in UTF8 format. | 96 | The text is saved in UTF8 format. |
100 | 97 | ||
101 | Returns whether the operation succeeded. | 98 | Returns whether the operation succeeded. |
102 | */ | 99 | */ |
103 | bool FileManager::saveFile( const DocLnk &f, const QString &text ) | 100 | bool FileManager::saveFile( const DocLnk &f, const QString &text ) |
104 | { | 101 | { |
105 | QString fn = f.file() + ".new"; | 102 | QString fn = f.file() + ".new"; |
106 | ensurePathExists( fn ); | 103 | ensurePathExists( fn ); |
107 | QFile fl( fn ); | 104 | QFile fl( fn ); |
108 | if ( !fl.open( IO_WriteOnly|IO_Raw ) ) { | 105 | if ( !fl.open( IO_WriteOnly|IO_Raw ) ) { |
109 | qWarning("open failed"); | 106 | qWarning("open failed"); |
110 | return FALSE; | 107 | return FALSE; |
111 | } | 108 | } |
112 | 109 | ||
113 | QCString cstr = text.utf8(); | 110 | QCString cstr = text.utf8(); |
114 | int total_written; | 111 | int total_written; |
115 | total_written = fl.writeBlock( cstr.data(), cstr.length() ); | 112 | total_written = fl.writeBlock( cstr.data(), cstr.length() ); |
116 | fl.close(); | 113 | fl.close(); |
117 | if ( total_written != int(cstr.length()) || !f.writeLink() ) { | 114 | if ( total_written != int(cstr.length()) || !f.writeLink() ) { |
118 | QFile::remove( fn ); | 115 | QFile::remove( fn ); |
119 | return FALSE; | 116 | return FALSE; |
120 | } | 117 | } |
121 | // okay now rename the file.. | 118 | // okay now rename the file.. |
122 | if ( !renameFile( fn.latin1(), f.file().latin1() ) ) { | 119 | if ( !renameFile( fn.latin1(), f.file().latin1() ) ) { |
123 | qWarning( "problem renaming file %s to %s, errno: %d", fn.latin1(), | 120 | qWarning( "problem renaming file %s to %s, errno: %d", fn.latin1(), |
diff --git a/library/fileselector.cpp b/library/fileselector.cpp index 4039243..7c29aba 100644 --- a/library/fileselector.cpp +++ b/library/fileselector.cpp | |||
@@ -1,131 +1,129 @@ | |||
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 | // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT | 21 | // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT |
22 | // have this class. | 22 | // have this class. |
23 | #define QTOPIA_INTERNAL_FSLP | 23 | #define QTOPIA_INTERNAL_FSLP |
24 | 24 | ||
25 | #include "fileselector.h" | 25 | #include "fileselector.h" |
26 | #include "fileselector_p.h" | 26 | #include "fileselector_p.h" |
27 | #include "global.h" | 27 | #include "global.h" |
28 | #include "resource.h" | 28 | #include "resource.h" |
29 | #include "config.h" | 29 | #include "config.h" |
30 | #include "applnk.h" | ||
31 | #include "storage.h" | 30 | #include "storage.h" |
32 | #include "qpemenubar.h" | 31 | #include "qpemenubar.h" |
33 | #include <qcopchannel_qws.h> | 32 | #include <qcopchannel_qws.h> |
34 | #include "lnkproperties.h" | 33 | #include "lnkproperties.h" |
35 | #include "applnk.h" | ||
36 | #include <qpe/qpeapplication.h> | 34 | #include <qpe/qpeapplication.h> |
37 | #include "categorymenu.h" | 35 | #include "categorymenu.h" |
38 | #include "categoryselect.h" | 36 | #include "categoryselect.h" |
39 | #include "mimetype.h" | 37 | #include "mimetype.h" |
40 | #include <qpe/categories.h> | 38 | #include <qpe/categories.h> |
41 | 39 | ||
42 | #include <stdlib.h> | 40 | #include <stdlib.h> |
43 | 41 | ||
44 | #include <qdir.h> | 42 | #include <qdir.h> |
45 | #include <qwidget.h> | 43 | #include <qwidget.h> |
46 | #include <qpopupmenu.h> | 44 | #include <qpopupmenu.h> |
47 | #include <qtoolbutton.h> | 45 | #include <qtoolbutton.h> |
48 | #include <qpushbutton.h> | 46 | #include <qpushbutton.h> |
49 | #include <qheader.h> | 47 | #include <qheader.h> |
50 | #include <qtooltip.h> | 48 | #include <qtooltip.h> |
51 | #include <qwhatsthis.h> | 49 | #include <qwhatsthis.h> |
52 | 50 | ||
53 | class TypeCombo : public QComboBox | 51 | class TypeCombo : public QComboBox |
54 | { | 52 | { |
55 | Q_OBJECT | 53 | Q_OBJECT |
56 | public: | 54 | public: |
57 | TypeCombo( QWidget *parent, const char *name=0 ) | 55 | TypeCombo( QWidget *parent, const char *name=0 ) |
58 | : QComboBox( parent, name ) | 56 | : QComboBox( parent, name ) |
59 | { | 57 | { |
60 | connect( this, SIGNAL(activated(int)), this, SLOT(selectType(int)) ); | 58 | connect( this, SIGNAL(activated(int)), this, SLOT(selectType(int)) ); |
61 | } | 59 | } |
62 | 60 | ||
63 | void reread( DocLnkSet &files, const QString &filter ); | 61 | void reread( DocLnkSet &files, const QString &filter ); |
64 | 62 | ||
65 | signals: | 63 | signals: |
66 | void selected( const QString & ); | 64 | void selected( const QString & ); |
67 | 65 | ||
68 | protected slots: | 66 | protected slots: |
69 | void selectType( int idx ) { | 67 | void selectType( int idx ) { |
70 | emit selected( typelist[idx] ); | 68 | emit selected( typelist[idx] ); |
71 | } | 69 | } |
72 | 70 | ||
73 | protected: | 71 | protected: |
74 | QStringList typelist; | 72 | QStringList typelist; |
75 | QString prev; | 73 | QString prev; |
76 | }; | 74 | }; |
77 | 75 | ||
78 | void TypeCombo::reread( DocLnkSet &files, const QString &filter ) | 76 | void TypeCombo::reread( DocLnkSet &files, const QString &filter ) |
79 | { | 77 | { |
80 | typelist.clear(); | 78 | typelist.clear(); |
81 | QStringList filters = QStringList::split( ';', filter ); | 79 | QStringList filters = QStringList::split( ';', filter ); |
82 | int pos = filter.find( '/' ); | 80 | int pos = filter.find( '/' ); |
83 | //### do for each filter | 81 | //### do for each filter |
84 | if ( filters.count() == 1 && pos >= 0 && filter[pos+1] != '*' ) { | 82 | if ( filters.count() == 1 && pos >= 0 && filter[pos+1] != '*' ) { |
85 | typelist.append( filter ); | 83 | typelist.append( filter ); |
86 | clear(); | 84 | clear(); |
87 | QString minor = filter.mid( pos+1 ); | 85 | QString minor = filter.mid( pos+1 ); |
88 | minor[0] = minor[0].upper(); | 86 | minor[0] = minor[0].upper(); |
89 | insertItem( tr("%1 files").arg(minor) ); | 87 | insertItem( tr("%1 files").arg(minor) ); |
90 | setCurrentItem(0); | 88 | setCurrentItem(0); |
91 | setEnabled( FALSE ); | 89 | setEnabled( FALSE ); |
92 | return; | 90 | return; |
93 | } | 91 | } |
94 | 92 | ||
95 | QListIterator<DocLnk> dit( files.children() ); | 93 | QListIterator<DocLnk> dit( files.children() ); |
96 | for ( ; dit.current(); ++dit ) { | 94 | for ( ; dit.current(); ++dit ) { |
97 | if ( !typelist.contains( (*dit)->type() ) ) | 95 | if ( !typelist.contains( (*dit)->type() ) ) |
98 | typelist.append( (*dit)->type() ); | 96 | typelist.append( (*dit)->type() ); |
99 | } | 97 | } |
100 | 98 | ||
101 | QStringList types; | 99 | QStringList types; |
102 | QStringList::ConstIterator it; | 100 | QStringList::ConstIterator it; |
103 | for (it = typelist.begin(); it!=typelist.end(); ++it) { | 101 | for (it = typelist.begin(); it!=typelist.end(); ++it) { |
104 | QString t = *it; | 102 | QString t = *it; |
105 | if ( t.left(12) == "application/" ) { | 103 | if ( t.left(12) == "application/" ) { |
106 | MimeType mt(t); | 104 | MimeType mt(t); |
107 | const AppLnk* app = mt.application(); | 105 | const AppLnk* app = mt.application(); |
108 | if ( app ) | 106 | if ( app ) |
109 | t = app->name(); | 107 | t = app->name(); |
110 | else | 108 | else |
111 | t = t.mid(12); | 109 | t = t.mid(12); |
112 | } else { | 110 | } else { |
113 | QString major, minor; | 111 | QString major, minor; |
114 | int pos = t.find( '/' ); | 112 | int pos = t.find( '/' ); |
115 | if ( pos >= 0 ) { | 113 | if ( pos >= 0 ) { |
116 | major = t.left( pos ); | 114 | major = t.left( pos ); |
117 | minor = t.mid( pos+1 ); | 115 | minor = t.mid( pos+1 ); |
118 | } | 116 | } |
119 | if ( minor.find( "x-" ) == 0 ) | 117 | if ( minor.find( "x-" ) == 0 ) |
120 | minor = minor.mid( 2 ); | 118 | minor = minor.mid( 2 ); |
121 | minor[0] = minor[0].upper(); | 119 | minor[0] = minor[0].upper(); |
122 | major[0] = major[0].upper(); | 120 | major[0] = major[0].upper(); |
123 | if ( filters.count() > 1 ) | 121 | if ( filters.count() > 1 ) |
124 | t = tr("%1 %2", "minor mimetype / major mimetype").arg(minor).arg(major); | 122 | t = tr("%1 %2", "minor mimetype / major mimetype").arg(minor).arg(major); |
125 | else | 123 | else |
126 | t = minor; | 124 | t = minor; |
127 | } | 125 | } |
128 | types += tr("%1 files").arg(t); | 126 | types += tr("%1 files").arg(t); |
129 | } | 127 | } |
130 | for (it = filters.begin(); it!=filters.end(); ++it) { | 128 | for (it = filters.begin(); it!=filters.end(); ++it) { |
131 | typelist.append( *it ); | 129 | typelist.append( *it ); |
diff --git a/library/finddialog.cpp b/library/finddialog.cpp index ddf41a7..64487c9 100644 --- a/library/finddialog.cpp +++ b/library/finddialog.cpp | |||
@@ -1,85 +1,84 @@ | |||
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 | // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT | 21 | // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT |
22 | // have this class. | 22 | // have this class. |
23 | #define QTOPIA_INTERNAL_FD | 23 | #define QTOPIA_INTERNAL_FD |
24 | 24 | ||
25 | #include "finddialog.h" | 25 | #include "finddialog.h" |
26 | #include "findwidget_p.h" | 26 | #include "findwidget_p.h" |
27 | 27 | ||
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qpushbutton.h> | ||
30 | 29 | ||
31 | /*! | 30 | /*! |
32 | \class FindDialog finddialog.h | 31 | \class FindDialog finddialog.h |
33 | \brief A simple FindDialog | 32 | \brief A simple FindDialog |
34 | 33 | ||
35 | A find dialog. FIXME!!!! | 34 | A find dialog. FIXME!!!! |
36 | 35 | ||
37 | */ | 36 | */ |
38 | FindDialog::FindDialog( const QString &appName, QWidget *parent, | 37 | FindDialog::FindDialog( const QString &appName, QWidget *parent, |
39 | const char *name, bool modal ) | 38 | const char *name, bool modal ) |
40 | : QDialog( parent, name, modal ) | 39 | : QDialog( parent, name, modal ) |
41 | { | 40 | { |
42 | setCaption( tr("Find") ); | 41 | setCaption( tr("Find") ); |
43 | QVBoxLayout *vb; | 42 | QVBoxLayout *vb; |
44 | vb = new QVBoxLayout( this ); | 43 | vb = new QVBoxLayout( this ); |
45 | fw = new FindWidget( appName, this, "Find Widget" ); | 44 | fw = new FindWidget( appName, this, "Find Widget" ); |
46 | vb->addWidget( fw ); | 45 | vb->addWidget( fw ); |
47 | QObject::connect( fw, SIGNAL(signalFindClicked(const QString&, | 46 | QObject::connect( fw, SIGNAL(signalFindClicked(const QString&, |
48 | bool,bool,int)), | 47 | bool,bool,int)), |
49 | this, SIGNAL(signalFindClicked(const QString&, | 48 | this, SIGNAL(signalFindClicked(const QString&, |
50 | bool,bool,int)) ); | 49 | bool,bool,int)) ); |
51 | QObject::connect( fw, SIGNAL(signalFindClicked(const QString&,const QDate&, | 50 | QObject::connect( fw, SIGNAL(signalFindClicked(const QString&,const QDate&, |
52 | bool,bool,int)), | 51 | bool,bool,int)), |
53 | this, SIGNAL(signalFindClicked(const QString&, | 52 | this, SIGNAL(signalFindClicked(const QString&, |
54 | const QDate&,bool,bool,int)) ); | 53 | const QDate&,bool,bool,int)) ); |
55 | d = 0; | 54 | d = 0; |
56 | } | 55 | } |
57 | 56 | ||
58 | FindDialog::~FindDialog() | 57 | FindDialog::~FindDialog() |
59 | { | 58 | { |
60 | } | 59 | } |
61 | 60 | ||
62 | QString FindDialog::findText() const | 61 | QString FindDialog::findText() const |
63 | { | 62 | { |
64 | return fw->findText(); | 63 | return fw->findText(); |
65 | } | 64 | } |
66 | 65 | ||
67 | void FindDialog::setUseDate( bool show ) | 66 | void FindDialog::setUseDate( bool show ) |
68 | { | 67 | { |
69 | fw->setUseDate( show ); | 68 | fw->setUseDate( show ); |
70 | } | 69 | } |
71 | 70 | ||
72 | void FindDialog::setDate( const QDate &dt ) | 71 | void FindDialog::setDate( const QDate &dt ) |
73 | { | 72 | { |
74 | fw->setDate( dt ); | 73 | fw->setDate( dt ); |
75 | } | 74 | } |
76 | 75 | ||
77 | void FindDialog::slotNotFound() | 76 | void FindDialog::slotNotFound() |
78 | { | 77 | { |
79 | fw->slotNotFound(); | 78 | fw->slotNotFound(); |
80 | } | 79 | } |
81 | 80 | ||
82 | void FindDialog::slotWrapAround() | 81 | void FindDialog::slotWrapAround() |
83 | { | 82 | { |
84 | fw->slotWrapAround(); | 83 | fw->slotWrapAround(); |
85 | } | 84 | } |
diff --git a/library/findwidget_p.cpp b/library/findwidget_p.cpp index 287e125..e91d789 100644 --- a/library/findwidget_p.cpp +++ b/library/findwidget_p.cpp | |||
@@ -1,120 +1,114 @@ | |||
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 "findwidget_p.h" | 21 | #include "findwidget_p.h" |
22 | 22 | ||
23 | #include <qpe/categories.h> | ||
24 | #include <qpe/categoryselect.h> | 23 | #include <qpe/categoryselect.h> |
25 | #include <qpe/datebookmonth.h> | 24 | #include <qpe/datebookmonth.h> |
26 | #include <qpe/timestring.h> | ||
27 | 25 | ||
28 | #include <qcheckbox.h> | 26 | #include <qcheckbox.h> |
29 | #include <qlabel.h> | 27 | #include <qlabel.h> |
30 | #include <qlineedit.h> | 28 | #include <qlineedit.h> |
31 | #include <qmessagebox.h> | ||
32 | #include <qpushbutton.h> | ||
33 | #include <qpopupmenu.h> | ||
34 | #include <qtoolbutton.h> | ||
35 | 29 | ||
36 | FindWidget::FindWidget( const QString &appName, QWidget *parent, | 30 | FindWidget::FindWidget( const QString &appName, QWidget *parent, |
37 | const char *name ) | 31 | const char *name ) |
38 | : FindWidgetBase( parent, name ), | 32 | : FindWidgetBase( parent, name ), |
39 | mStrApp( appName ), | 33 | mStrApp( appName ), |
40 | mDate( QDate::currentDate() ) | 34 | mDate( QDate::currentDate() ) |
41 | { | 35 | { |
42 | setMaximumSize( sizeHint() ); | 36 | setMaximumSize( sizeHint() ); |
43 | QArray<int> vl(0); | 37 | QArray<int> vl(0); |
44 | cmbCat->setCategories( vl, mStrApp ); | 38 | cmbCat->setCategories( vl, mStrApp ); |
45 | cmbCat->setRemoveCategoryEdit( TRUE ); | 39 | cmbCat->setRemoveCategoryEdit( TRUE ); |
46 | cmbCat->setAllCategories( TRUE ); | 40 | cmbCat->setAllCategories( TRUE ); |
47 | // hide junk for the moment... | 41 | // hide junk for the moment... |
48 | lblStartDate->hide(); | 42 | lblStartDate->hide(); |
49 | cmdStartDate->hide(); | 43 | cmdStartDate->hide(); |
50 | QPopupMenu *m1 = new QPopupMenu( this ); | 44 | QPopupMenu *m1 = new QPopupMenu( this ); |
51 | dtPicker = new DateBookMonth( m1, 0, TRUE ); | 45 | dtPicker = new DateBookMonth( m1, 0, TRUE ); |
52 | dtPicker->setDate( mDate.year(), mDate.month(), mDate.day() ); | 46 | dtPicker->setDate( mDate.year(), mDate.month(), mDate.day() ); |
53 | m1->insertItem( dtPicker ); | 47 | m1->insertItem( dtPicker ); |
54 | cmdStartDate->setPopup( m1 ); | 48 | cmdStartDate->setPopup( m1 ); |
55 | cmdStartDate->setText( TimeString::shortDate(mDate) ); | 49 | cmdStartDate->setText( TimeString::shortDate(mDate) ); |
56 | QObject::connect( dtPicker, SIGNAL(dateClicked(int, int, int)), | 50 | QObject::connect( dtPicker, SIGNAL(dateClicked(int, int, int)), |
57 | this, SLOT(slotDateChanged(int, int, int)) ); | 51 | this, SLOT(slotDateChanged(int, int, int)) ); |
58 | 52 | ||
59 | QObject::connect( cmdFind, SIGNAL(clicked()), | 53 | QObject::connect( cmdFind, SIGNAL(clicked()), |
60 | this, SLOT(slotFindClicked()) ); | 54 | this, SLOT(slotFindClicked()) ); |
61 | } | 55 | } |
62 | 56 | ||
63 | FindWidget::~FindWidget() | 57 | FindWidget::~FindWidget() |
64 | { | 58 | { |
65 | } | 59 | } |
66 | 60 | ||
67 | QString FindWidget::findText() const | 61 | QString FindWidget::findText() const |
68 | { | 62 | { |
69 | return txtFind->text(); | 63 | return txtFind->text(); |
70 | } | 64 | } |
71 | 65 | ||
72 | void FindWidget::slotFindClicked() | 66 | void FindWidget::slotFindClicked() |
73 | { | 67 | { |
74 | lblStatus->setText( "" ); | 68 | lblStatus->setText( "" ); |
75 | if ( cmdStartDate->isVisible() ) | 69 | if ( cmdStartDate->isVisible() ) |
76 | emit signalFindClicked( findText(), | 70 | emit signalFindClicked( findText(), |
77 | mDate, | 71 | mDate, |
78 | chkCase->isChecked(), | 72 | chkCase->isChecked(), |
79 | chkBackwards->isChecked(), | 73 | chkBackwards->isChecked(), |
80 | cmbCat->currentCategory() ); | 74 | cmbCat->currentCategory() ); |
81 | else | 75 | else |
82 | emit signalFindClicked( findText(), chkCase->isChecked(), | 76 | emit signalFindClicked( findText(), chkCase->isChecked(), |
83 | chkBackwards->isChecked(), | 77 | chkBackwards->isChecked(), |
84 | cmbCat->currentCategory() ); | 78 | cmbCat->currentCategory() ); |
85 | } | 79 | } |
86 | 80 | ||
87 | void FindWidget::setUseDate( bool show ) | 81 | void FindWidget::setUseDate( bool show ) |
88 | { | 82 | { |
89 | if ( show ) { | 83 | if ( show ) { |
90 | lblStartDate->show(); | 84 | lblStartDate->show(); |
91 | cmdStartDate->show(); | 85 | cmdStartDate->show(); |
92 | } else { | 86 | } else { |
93 | lblStartDate->hide(); | 87 | lblStartDate->hide(); |
94 | cmdStartDate->hide(); | 88 | cmdStartDate->hide(); |
95 | } | 89 | } |
96 | chkBackwards->setDisabled( show ); | 90 | chkBackwards->setDisabled( show ); |
97 | } | 91 | } |
98 | 92 | ||
99 | void FindWidget::setDate( const QDate &dt ) | 93 | void FindWidget::setDate( const QDate &dt ) |
100 | { | 94 | { |
101 | slotDateChanged( dt.year(), dt.month(), dt.day() ); | 95 | slotDateChanged( dt.year(), dt.month(), dt.day() ); |
102 | } | 96 | } |
103 | 97 | ||
104 | void FindWidget::slotNotFound() | 98 | void FindWidget::slotNotFound() |
105 | { | 99 | { |
106 | lblStatus->setText( tr("String Not Found.") ); | 100 | lblStatus->setText( tr("String Not Found.") ); |
107 | } | 101 | } |
108 | 102 | ||
109 | void FindWidget::slotWrapAround() | 103 | void FindWidget::slotWrapAround() |
110 | { | 104 | { |
111 | lblStatus->setText( tr("End reached, starting at %1", "Date using TimeString::shortDate") | 105 | lblStatus->setText( tr("End reached, starting at %1", "Date using TimeString::shortDate") |
112 | .arg(TimeString::shortDate( mDate ) ) ); | 106 | .arg(TimeString::shortDate( mDate ) ) ); |
113 | } | 107 | } |
114 | 108 | ||
115 | void FindWidget::slotDateChanged( int year, int month, int day ) | 109 | void FindWidget::slotDateChanged( int year, int month, int day ) |
116 | { | 110 | { |
117 | mDate.setYMD( year, month, day ); | 111 | mDate.setYMD( year, month, day ); |
118 | cmdStartDate->setText( TimeString::shortDate( mDate ) ); | 112 | cmdStartDate->setText( TimeString::shortDate( mDate ) ); |
119 | dtPicker->setDate( year, month, day ); | 113 | dtPicker->setDate( year, month, day ); |
120 | } | 114 | } |
diff --git a/library/fontdatabase.cpp b/library/fontdatabase.cpp index 2ad8e95..d94e338 100644 --- a/library/fontdatabase.cpp +++ b/library/fontdatabase.cpp | |||
@@ -1,125 +1,123 @@ | |||
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 <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
22 | #include "fontfactoryinterface.h" | ||
23 | #include "fontdatabase.h" | 22 | #include "fontdatabase.h" |
24 | 23 | ||
25 | #include <qpe/qlibrary.h> | 24 | #include <qpe/qlibrary.h> |
26 | 25 | ||
27 | #include <qfontmanager_qws.h> | 26 | #include <qfontmanager_qws.h> |
28 | #include <qdir.h> | 27 | #include <qdir.h> |
29 | #include <qdict.h> | ||
30 | #include <stdio.h> | 28 | #include <stdio.h> |
31 | #include <stdlib.h> | 29 | #include <stdlib.h> |
32 | 30 | ||
33 | static QString fontDir() | 31 | static QString fontDir() |
34 | { | 32 | { |
35 | QString qtdir = getenv("QTDIR"); | 33 | QString qtdir = getenv("QTDIR"); |
36 | if ( qtdir.isEmpty() ) qtdir = "/usr/local/qt-embedded"; | 34 | if ( qtdir.isEmpty() ) qtdir = "/usr/local/qt-embedded"; |
37 | return qtdir+"/lib/fonts/"; | 35 | return qtdir+"/lib/fonts/"; |
38 | } | 36 | } |
39 | 37 | ||
40 | #ifdef QT_NO_FONTDATABASE | 38 | #ifdef QT_NO_FONTDATABASE |
41 | static QString fontFamily( const QString& key ) | 39 | static QString fontFamily( const QString& key ) |
42 | { | 40 | { |
43 | int u0 = key.find('_'); | 41 | int u0 = key.find('_'); |
44 | int u1 = key.find('_',u0+1); | 42 | int u1 = key.find('_',u0+1); |
45 | int u2 = key.find('_',u1+1); | 43 | int u2 = key.find('_',u1+1); |
46 | QString family = key.left(u0); | 44 | QString family = key.left(u0); |
47 | //int pointSize = key.mid(u0+1,u1-u0-1).toInt(); | 45 | //int pointSize = key.mid(u0+1,u1-u0-1).toInt(); |
48 | //int weight = key.mid(u1+1,u2-u1-1).toInt(); | 46 | //int weight = key.mid(u1+1,u2-u1-1).toInt(); |
49 | //bool italic = key.mid(u2-1,1) == "i"; | 47 | //bool italic = key.mid(u2-1,1) == "i"; |
50 | // #### ignores _t and _I fields | 48 | // #### ignores _t and _I fields |
51 | return family; | 49 | return family; |
52 | } | 50 | } |
53 | #endif | 51 | #endif |
54 | 52 | ||
55 | 53 | ||
56 | QValueList<FontFactory> *FontDatabase::factoryList = 0; | 54 | QValueList<FontFactory> *FontDatabase::factoryList = 0; |
57 | /*! | 55 | /*! |
58 | \class FontDatabase fontdatabase.h | 56 | \class FontDatabase fontdatabase.h |
59 | \brief The FontDatabase class provides information about available fonts. | 57 | \brief The FontDatabase class provides information about available fonts. |
60 | 58 | ||
61 | Most often you will simply want to query the database for the | 59 | Most often you will simply want to query the database for the |
62 | available font families(). | 60 | available font families(). |
63 | 61 | ||
64 | Use FontDatabase rather than QFontDatabase when you may need access | 62 | Use FontDatabase rather than QFontDatabase when you may need access |
65 | to fonts that are not normally available. For example, if the | 63 | to fonts that are not normally available. For example, if the |
66 | freetype library and the Qtopia freetype plugin are installed, | 64 | freetype library and the Qtopia freetype plugin are installed, |
67 | TrueType fonts will be available to your application. Font renderer | 65 | TrueType fonts will be available to your application. Font renderer |
68 | plugins have greater resource requirements than system fonts so they | 66 | plugins have greater resource requirements than system fonts so they |
69 | should be used only when necessary. You can force the loading of | 67 | should be used only when necessary. You can force the loading of |
70 | font renderer plugins with loadRenderers(). | 68 | font renderer plugins with loadRenderers(). |
71 | 69 | ||
72 | \ingroup qtopiaemb | 70 | \ingroup qtopiaemb |
73 | */ | 71 | */ |
74 | 72 | ||
75 | /*! | 73 | /*! |
76 | Constructs a FontDatabase object. | 74 | Constructs a FontDatabase object. |
77 | */ | 75 | */ |
78 | FontDatabase::FontDatabase() | 76 | FontDatabase::FontDatabase() |
79 | #ifndef QT_NO_FONTDATABASE | 77 | #ifndef QT_NO_FONTDATABASE |
80 | : QFontDatabase() | 78 | : QFontDatabase() |
81 | #endif | 79 | #endif |
82 | { | 80 | { |
83 | if ( !factoryList ) | 81 | if ( !factoryList ) |
84 | loadRenderers(); | 82 | loadRenderers(); |
85 | } | 83 | } |
86 | 84 | ||
87 | /*! | 85 | /*! |
88 | Returns a list of names of all the available font families. | 86 | Returns a list of names of all the available font families. |
89 | */ | 87 | */ |
90 | QStringList FontDatabase::families() const | 88 | QStringList FontDatabase::families() const |
91 | { | 89 | { |
92 | #ifndef QT_NO_FONTDATABASE | 90 | #ifndef QT_NO_FONTDATABASE |
93 | return QFontDatabase::families(); | 91 | return QFontDatabase::families(); |
94 | #else | 92 | #else |
95 | 93 | ||
96 | #ifndef QWS | 94 | #ifndef QWS |
97 | QStringList list; | 95 | QStringList list; |
98 | return list; | 96 | return list; |
99 | #else | 97 | #else |
100 | QStringList list; | 98 | QStringList list; |
101 | QDict<void> familyDict; | 99 | QDict<void> familyDict; |
102 | QDiskFont *qdf; | 100 | QDiskFont *qdf; |
103 | for ( qdf=qt_fontmanager->diskfonts.first(); qdf!=0; | 101 | for ( qdf=qt_fontmanager->diskfonts.first(); qdf!=0; |
104 | qdf=qt_fontmanager->diskfonts.next()) { | 102 | qdf=qt_fontmanager->diskfonts.next()) { |
105 | QString familyname = qdf->name; | 103 | QString familyname = qdf->name; |
106 | if ( !familyDict.find( familyname ) ) { | 104 | if ( !familyDict.find( familyname ) ) { |
107 | familyDict.insert( familyname, (void *)1 ); | 105 | familyDict.insert( familyname, (void *)1 ); |
108 | list.append( familyname ); | 106 | list.append( familyname ); |
109 | } | 107 | } |
110 | } | 108 | } |
111 | 109 | ||
112 | QDir dir(fontDir(),"*.qpf"); | 110 | QDir dir(fontDir(),"*.qpf"); |
113 | for (int i=0; i<(int)dir.count(); i++) { | 111 | for (int i=0; i<(int)dir.count(); i++) { |
114 | QString familyname = fontFamily(dir[i]); | 112 | QString familyname = fontFamily(dir[i]); |
115 | if ( !familyDict.find( familyname ) ) { | 113 | if ( !familyDict.find( familyname ) ) { |
116 | familyDict.insert( familyname, (void *)1 ); | 114 | familyDict.insert( familyname, (void *)1 ); |
117 | list.append( familyname ); | 115 | list.append( familyname ); |
118 | } | 116 | } |
119 | } | 117 | } |
120 | 118 | ||
121 | return list; | 119 | return list; |
122 | #endif | 120 | #endif |
123 | #endif | 121 | #endif |
124 | } | 122 | } |
125 | 123 | ||
diff --git a/library/global.cpp b/library/global.cpp index a627348..5ac969b 100644 --- a/library/global.cpp +++ b/library/global.cpp | |||
@@ -1,147 +1,145 @@ | |||
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 | #include <qpe/config.h> | 29 | #include <qpe/config.h> |
30 | 30 | ||
31 | #include <qfile.h> | ||
32 | #include <qlabel.h> | 31 | #include <qlabel.h> |
33 | #include <qtimer.h> | 32 | #include <qtimer.h> |
34 | #include <qmap.h> | 33 | #include <qmap.h> |
35 | #include <qdict.h> | 34 | #include <qdict.h> |
36 | #include <qdir.h> | 35 | #include <qdir.h> |
37 | #include <qmessagebox.h> | 36 | #include <qmessagebox.h> |
38 | #include <qregexp.h> | 37 | #include <qregexp.h> |
39 | 38 | ||
40 | #include <stdlib.h> | 39 | #include <stdlib.h> |
41 | #include <sys/stat.h> | 40 | #include <sys/stat.h> |
42 | #include <sys/wait.h> | 41 | #include <sys/wait.h> |
43 | #include <sys/types.h> | 42 | #include <sys/types.h> |
44 | #include <fcntl.h> | 43 | #include <fcntl.h> |
45 | #include <unistd.h> | 44 | #include <unistd.h> |
46 | #include <errno.h> | 45 | #include <errno.h> |
47 | 46 | ||
48 | #include <qwindowsystem_qws.h> // for qwsServer | 47 | #include <qwindowsystem_qws.h> // for qwsServer |
49 | #include <qdatetime.h> | 48 | #include <qdatetime.h> |
50 | 49 | ||
51 | #include <qfile.h> | ||
52 | 50 | ||
53 | //#include "quickexec_p.h" | 51 | //#include "quickexec_p.h" |
54 | 52 | ||
55 | class Emitter : public QObject { | 53 | class Emitter : public QObject { |
56 | Q_OBJECT | 54 | Q_OBJECT |
57 | public: | 55 | public: |
58 | Emitter( QWidget* receiver, const QString& document ) | 56 | Emitter( QWidget* receiver, const QString& document ) |
59 | { | 57 | { |
60 | connect(this, SIGNAL(setDocument(const QString&)), | 58 | connect(this, SIGNAL(setDocument(const QString&)), |
61 | receiver, SLOT(setDocument(const QString&))); | 59 | receiver, SLOT(setDocument(const QString&))); |
62 | emit setDocument(document); | 60 | emit setDocument(document); |
63 | disconnect(this, SIGNAL(setDocument(const QString&)), | 61 | disconnect(this, SIGNAL(setDocument(const QString&)), |
64 | receiver, SLOT(setDocument(const QString&))); | 62 | receiver, SLOT(setDocument(const QString&))); |
65 | } | 63 | } |
66 | 64 | ||
67 | signals: | 65 | signals: |
68 | void setDocument(const QString&); | 66 | void setDocument(const QString&); |
69 | }; | 67 | }; |
70 | 68 | ||
71 | 69 | ||
72 | class StartingAppList : public QObject { | 70 | class StartingAppList : public QObject { |
73 | Q_OBJECT | 71 | Q_OBJECT |
74 | public: | 72 | public: |
75 | static void add( const QString& name ); | 73 | static void add( const QString& name ); |
76 | static bool isStarting( const QString name ); | 74 | static bool isStarting( const QString name ); |
77 | private slots: | 75 | private slots: |
78 | void handleNewChannel( const QString &); | 76 | void handleNewChannel( const QString &); |
79 | private: | 77 | private: |
80 | StartingAppList( QObject *parent=0, const char* name=0 ) ; | 78 | StartingAppList( QObject *parent=0, const char* name=0 ) ; |
81 | 79 | ||
82 | QDict<QTime> dict; | 80 | QDict<QTime> dict; |
83 | static StartingAppList *appl; | 81 | static StartingAppList *appl; |
84 | }; | 82 | }; |
85 | 83 | ||
86 | StartingAppList* StartingAppList::appl = 0; | 84 | StartingAppList* StartingAppList::appl = 0; |
87 | 85 | ||
88 | StartingAppList::StartingAppList( QObject *parent, const char* name ) | 86 | StartingAppList::StartingAppList( QObject *parent, const char* name ) |
89 | :QObject( parent, name ) | 87 | :QObject( parent, name ) |
90 | { | 88 | { |
91 | #if QT_VERSION >= 232 && defined(QWS) | 89 | #if QT_VERSION >= 232 && defined(QWS) |
92 | connect( qwsServer, SIGNAL( newChannel(const QString&)), | 90 | connect( qwsServer, SIGNAL( newChannel(const QString&)), |
93 | this, SLOT( handleNewChannel(const QString&)) ); | 91 | this, SLOT( handleNewChannel(const QString&)) ); |
94 | #endif | 92 | #endif |
95 | dict.setAutoDelete( TRUE ); | 93 | dict.setAutoDelete( TRUE ); |
96 | } | 94 | } |
97 | 95 | ||
98 | void StartingAppList::add( const QString& name ) | 96 | void StartingAppList::add( const QString& name ) |
99 | { | 97 | { |
100 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) | 98 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) |
101 | if ( !appl ) | 99 | if ( !appl ) |
102 | appl = new StartingAppList; | 100 | appl = new StartingAppList; |
103 | QTime *t = new QTime; | 101 | QTime *t = new QTime; |
104 | t->start(); | 102 | t->start(); |
105 | appl->dict.insert( "QPE/Application/" + name, t ); | 103 | appl->dict.insert( "QPE/Application/" + name, t ); |
106 | #endif | 104 | #endif |
107 | } | 105 | } |
108 | 106 | ||
109 | bool StartingAppList::isStarting( const QString name ) | 107 | bool StartingAppList::isStarting( const QString name ) |
110 | { | 108 | { |
111 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) | 109 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) |
112 | if ( appl ) { | 110 | if ( appl ) { |
113 | QTime *t = appl->dict.find( "QPE/Application/" + name ); | 111 | QTime *t = appl->dict.find( "QPE/Application/" + name ); |
114 | if ( !t ) | 112 | if ( !t ) |
115 | return FALSE; | 113 | return FALSE; |
116 | if ( t->elapsed() > 10000 ) { | 114 | if ( t->elapsed() > 10000 ) { |
117 | // timeout in case of crash or something | 115 | // timeout in case of crash or something |
118 | appl->dict.remove( "QPE/Application/" + name ); | 116 | appl->dict.remove( "QPE/Application/" + name ); |
119 | return FALSE; | 117 | return FALSE; |
120 | } | 118 | } |
121 | return TRUE; | 119 | return TRUE; |
122 | } | 120 | } |
123 | #endif | 121 | #endif |
124 | return FALSE; | 122 | return FALSE; |
125 | } | 123 | } |
126 | 124 | ||
127 | void StartingAppList::handleNewChannel( const QString & name ) | 125 | void StartingAppList::handleNewChannel( const QString & name ) |
128 | { | 126 | { |
129 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) | 127 | #if QT_VERSION >= 232 && !defined(QT_NO_COP) |
130 | dict.remove( name ); | 128 | dict.remove( name ); |
131 | #endif | 129 | #endif |
132 | } | 130 | } |
133 | 131 | ||
134 | static bool docDirCreated = FALSE; | 132 | static bool docDirCreated = FALSE; |
135 | static QDawg* fixed_dawg = 0; | 133 | static QDawg* fixed_dawg = 0; |
136 | static QDict<QDawg> *named_dawg = 0; | 134 | static QDict<QDawg> *named_dawg = 0; |
137 | 135 | ||
138 | static QString qpeDir() | 136 | static QString qpeDir() |
139 | { | 137 | { |
140 | QString dir = getenv("OPIEDIR"); | 138 | QString dir = getenv("OPIEDIR"); |
141 | if ( dir.isEmpty() ) dir = ".."; | 139 | if ( dir.isEmpty() ) dir = ".."; |
142 | return dir; | 140 | return dir; |
143 | } | 141 | } |
144 | 142 | ||
145 | static QString dictDir() | 143 | static QString dictDir() |
146 | { | 144 | { |
147 | return qpeDir() + "/etc/dict"; | 145 | return qpeDir() + "/etc/dict"; |
diff --git a/library/imageedit.cpp b/library/imageedit.cpp index caa538a..3a559f4 100644 --- a/library/imageedit.cpp +++ b/library/imageedit.cpp | |||
@@ -1,97 +1,96 @@ | |||
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 "imageedit.h" | 20 | #include "imageedit.h" |
21 | #include <qpainter.h> | ||
22 | 21 | ||
23 | ImageEdit::ImageEdit( QWidget *parent, const char *name) | 22 | ImageEdit::ImageEdit( QWidget *parent, const char *name) |
24 | : QScrollView( parent, name, WNorthWestGravity | WResizeNoErase ), buffer() | 23 | : QScrollView( parent, name, WNorthWestGravity | WResizeNoErase ), buffer() |
25 | { | 24 | { |
26 | buffer.resize( size() ); | 25 | buffer.resize( size() ); |
27 | buffer.fill( colorGroup().color( QColorGroup::Base ) ); | 26 | buffer.fill( colorGroup().color( QColorGroup::Base ) ); |
28 | } | 27 | } |
29 | 28 | ||
30 | ImageEdit::~ImageEdit() | 29 | ImageEdit::~ImageEdit() |
31 | { | 30 | { |
32 | 31 | ||
33 | } | 32 | } |
34 | 33 | ||
35 | void ImageEdit::contentsMousePressEvent( QMouseEvent *e ) | 34 | void ImageEdit::contentsMousePressEvent( QMouseEvent *e ) |
36 | { | 35 | { |
37 | lastPos = e->pos(); | 36 | lastPos = e->pos(); |
38 | } | 37 | } |
39 | 38 | ||
40 | void ImageEdit::contentsMouseMoveEvent( QMouseEvent *e ) | 39 | void ImageEdit::contentsMouseMoveEvent( QMouseEvent *e ) |
41 | { | 40 | { |
42 | QPainter pw( viewport() ); | 41 | QPainter pw( viewport() ); |
43 | QPainter pb( &buffer ); | 42 | QPainter pb( &buffer ); |
44 | pb.drawLine( lastPos, e->pos() ); | 43 | pb.drawLine( lastPos, e->pos() ); |
45 | pw.drawLine( contentsToViewport( lastPos ), | 44 | pw.drawLine( contentsToViewport( lastPos ), |
46 | contentsToViewport( e->pos() ) ); | 45 | contentsToViewport( e->pos() ) ); |
47 | lastPos = e->pos(); | 46 | lastPos = e->pos(); |
48 | } | 47 | } |
49 | 48 | ||
50 | void ImageEdit::contentsMouseReleaseEvent( QMouseEvent * ) | 49 | void ImageEdit::contentsMouseReleaseEvent( QMouseEvent * ) |
51 | { | 50 | { |
52 | } | 51 | } |
53 | 52 | ||
54 | void ImageEdit::viewportResizeEvent( QResizeEvent *e ) | 53 | void ImageEdit::viewportResizeEvent( QResizeEvent *e ) |
55 | { | 54 | { |
56 | enlargeBuffer(e->size()); | 55 | enlargeBuffer(e->size()); |
57 | } | 56 | } |
58 | 57 | ||
59 | void ImageEdit::enlargeBuffer( const QSize& sz ) | 58 | void ImageEdit::enlargeBuffer( const QSize& sz ) |
60 | { | 59 | { |
61 | QSize osz = buffer.size(); | 60 | QSize osz = buffer.size(); |
62 | QSize nsz( QMAX( osz.width(), sz.width() ), QMAX( osz.height(), sz.height() ) ); | 61 | QSize nsz( QMAX( osz.width(), sz.width() ), QMAX( osz.height(), sz.height() ) ); |
63 | buffer.resize( nsz.width(), nsz.height() ); | 62 | buffer.resize( nsz.width(), nsz.height() ); |
64 | // clear new area | 63 | // clear new area |
65 | QPainter p( &buffer ); | 64 | QPainter p( &buffer ); |
66 | if ( sz.width() > osz.width() ) | 65 | if ( sz.width() > osz.width() ) |
67 | p.fillRect( osz.width(), 0, sz.width() - osz.width(), nsz.height(), colorGroup().color( QColorGroup::Base ) ); | 66 | p.fillRect( osz.width(), 0, sz.width() - osz.width(), nsz.height(), colorGroup().color( QColorGroup::Base ) ); |
68 | if ( sz.height() > osz.height() ) | 67 | if ( sz.height() > osz.height() ) |
69 | p.fillRect( 0, osz.height(), nsz.width(), sz.height() - osz.height(), colorGroup().color( QColorGroup::Base ) ); | 68 | p.fillRect( 0, osz.height(), nsz.width(), sz.height() - osz.height(), colorGroup().color( QColorGroup::Base ) ); |
70 | p.end(); | 69 | p.end(); |
71 | } | 70 | } |
72 | 71 | ||
73 | void ImageEdit::drawContents( QPainter *p, int cx, int cy, int cw, int ch ) | 72 | void ImageEdit::drawContents( QPainter *p, int cx, int cy, int cw, int ch ) |
74 | { | 73 | { |
75 | p->drawPixmap( cx, cy, buffer, cx, cy, cw, ch ); | 74 | p->drawPixmap( cx, cy, buffer, cx, cy, cw, ch ); |
76 | } | 75 | } |
77 | 76 | ||
78 | void ImageEdit::setPixmap( const QPixmap &pm ) | 77 | void ImageEdit::setPixmap( const QPixmap &pm ) |
79 | { | 78 | { |
80 | QSize osz = buffer.size(); | 79 | QSize osz = buffer.size(); |
81 | if ( pm.width() < osz.width() || pm.height() < osz.height() ) { | 80 | if ( pm.width() < osz.width() || pm.height() < osz.height() ) { |
82 | buffer.fill(white); | 81 | buffer.fill(white); |
83 | enlargeBuffer( pm.size() ); | 82 | enlargeBuffer( pm.size() ); |
84 | QPainter p(&buffer); | 83 | QPainter p(&buffer); |
85 | p.drawPixmap(0,0,pm); | 84 | p.drawPixmap(0,0,pm); |
86 | } else { | 85 | } else { |
87 | buffer = pm; | 86 | buffer = pm; |
88 | } | 87 | } |
89 | resizeContents( buffer.width(), buffer.height() ); | 88 | resizeContents( buffer.width(), buffer.height() ); |
90 | viewport()->repaint( FALSE ); | 89 | viewport()->repaint( FALSE ); |
91 | } | 90 | } |
92 | 91 | ||
93 | QPixmap ImageEdit::pixmap() const | 92 | QPixmap ImageEdit::pixmap() const |
94 | { | 93 | { |
95 | return buffer; | 94 | return buffer; |
96 | } | 95 | } |
97 | 96 | ||
diff --git a/library/ir.cpp b/library/ir.cpp index b5b726d..32c0925 100644 --- a/library/ir.cpp +++ b/library/ir.cpp | |||
@@ -1,118 +1,116 @@ | |||
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 "ir.h" | 21 | #include "ir.h" |
22 | 22 | ||
23 | #include <qstring.h> | ||
24 | #include "qcopenvelope_qws.h" | 23 | #include "qcopenvelope_qws.h" |
25 | #include <qcopchannel_qws.h> | ||
26 | #include "applnk.h" | 24 | #include "applnk.h" |
27 | 25 | ||
28 | /*! | 26 | /*! |
29 | \class Ir ir.h | 27 | \class Ir ir.h |
30 | \brief The Ir class implements basic support for sending objects over an | 28 | \brief The Ir class implements basic support for sending objects over an |
31 | infrared communication link. | 29 | infrared communication link. |
32 | 30 | ||
33 | Both \link doclnk.html DocLnk\endlink objects and files can be | 31 | Both \link doclnk.html DocLnk\endlink objects and files can be |
34 | sent to another device via the infrared link using the send() | 32 | sent to another device via the infrared link using the send() |
35 | function. When the send has completed the done() signal is | 33 | function. When the send has completed the done() signal is |
36 | emitted. | 34 | emitted. |
37 | 35 | ||
38 | The supported() function returns whether the device supports | 36 | The supported() function returns whether the device supports |
39 | infrared communication or not. | 37 | infrared communication or not. |
40 | 38 | ||
41 | \ingroup qtopiaemb | 39 | \ingroup qtopiaemb |
42 | */ | 40 | */ |
43 | 41 | ||
44 | /*! | 42 | /*! |
45 | Constructs an Ir object. The \a parent and \a name classes are the | 43 | Constructs an Ir object. The \a parent and \a name classes are the |
46 | standard QObject parameters. | 44 | standard QObject parameters. |
47 | */ | 45 | */ |
48 | Ir::Ir( QObject *parent, const char *name ) | 46 | Ir::Ir( QObject *parent, const char *name ) |
49 | : QObject( parent, name ) | 47 | : QObject( parent, name ) |
50 | { | 48 | { |
51 | #ifndef QT_NO_COP | 49 | #ifndef QT_NO_COP |
52 | ch = new QCopChannel( "QPE/Obex" ); | 50 | ch = new QCopChannel( "QPE/Obex" ); |
53 | connect( ch, SIGNAL(received(const QCString &, const QByteArray &)), | 51 | connect( ch, SIGNAL(received(const QCString &, const QByteArray &)), |
54 | this, SLOT(obexMessage( const QCString &, const QByteArray &)) ); | 52 | this, SLOT(obexMessage( const QCString &, const QByteArray &)) ); |
55 | #endif | 53 | #endif |
56 | } | 54 | } |
57 | 55 | ||
58 | /*! | 56 | /*! |
59 | Returns TRUE if the system supports infrared communication; | 57 | Returns TRUE if the system supports infrared communication; |
60 | otherwise returns FALSE. | 58 | otherwise returns FALSE. |
61 | */ | 59 | */ |
62 | bool Ir::supported() | 60 | bool Ir::supported() |
63 | { | 61 | { |
64 | #ifndef QT_NO_COP | 62 | #ifndef QT_NO_COP |
65 | return QCopChannel::isRegistered( "QPE/Obex" ); | 63 | return QCopChannel::isRegistered( "QPE/Obex" ); |
66 | #endif | 64 | #endif |
67 | } | 65 | } |
68 | 66 | ||
69 | /*! | 67 | /*! |
70 | Sends the object in file \a fn over the infrared link. The \a | 68 | Sends the object in file \a fn over the infrared link. The \a |
71 | description is used in the text shown to the user while sending | 69 | description is used in the text shown to the user while sending |
72 | is in progress. The optional \a mimetype parameter specifies the | 70 | is in progress. The optional \a mimetype parameter specifies the |
73 | mimetype of the object. If this parameter is not set, it is | 71 | mimetype of the object. If this parameter is not set, it is |
74 | determined by the the filename's suffix. | 72 | determined by the the filename's suffix. |
75 | 73 | ||
76 | \sa done() | 74 | \sa done() |
77 | */ | 75 | */ |
78 | void Ir::send( const QString &fn, const QString &description, const QString &mimetype) | 76 | void Ir::send( const QString &fn, const QString &description, const QString &mimetype) |
79 | { | 77 | { |
80 | if ( !filename.isEmpty() ) return; | 78 | if ( !filename.isEmpty() ) return; |
81 | filename = fn; | 79 | filename = fn; |
82 | #ifndef QT_NO_COP | 80 | #ifndef QT_NO_COP |
83 | QCopEnvelope e("QPE/Obex", "send(QString,QString,QString)"); | 81 | QCopEnvelope e("QPE/Obex", "send(QString,QString,QString)"); |
84 | e << description << filename << mimetype; | 82 | e << description << filename << mimetype; |
85 | #endif | 83 | #endif |
86 | } | 84 | } |
87 | 85 | ||
88 | /*! | 86 | /*! |
89 | \overload | 87 | \overload |
90 | 88 | ||
91 | Uses the DocLnk::file() and DocLnk::type() of \a doc. | 89 | Uses the DocLnk::file() and DocLnk::type() of \a doc. |
92 | 90 | ||
93 | \sa done() | 91 | \sa done() |
94 | */ | 92 | */ |
95 | void Ir::send( const DocLnk &doc, const QString &description ) | 93 | void Ir::send( const DocLnk &doc, const QString &description ) |
96 | { | 94 | { |
97 | send( doc.file(), description, doc.type() ); | 95 | send( doc.file(), description, doc.type() ); |
98 | } | 96 | } |
99 | 97 | ||
100 | /*! | 98 | /*! |
101 | \fn Ir::done( Ir *ir ); | 99 | \fn Ir::done( Ir *ir ); |
102 | 100 | ||
103 | This signal is emitted by \a ir, when the send comand has been processed. | 101 | This signal is emitted by \a ir, when the send comand has been processed. |
104 | */ | 102 | */ |
105 | 103 | ||
106 | /*!\internal | 104 | /*!\internal |
107 | */ | 105 | */ |
108 | void Ir::obexMessage( const QCString &msg, const QByteArray &data) | 106 | void Ir::obexMessage( const QCString &msg, const QByteArray &data) |
109 | { | 107 | { |
110 | if ( msg == "done(QString)" ) { | 108 | if ( msg == "done(QString)" ) { |
111 | QString fn; | 109 | QString fn; |
112 | QDataStream stream( data, IO_ReadOnly ); | 110 | QDataStream stream( data, IO_ReadOnly ); |
113 | stream >> fn; | 111 | stream >> fn; |
114 | if ( fn == filename ) | 112 | if ( fn == filename ) |
115 | emit done( this ); | 113 | emit done( this ); |
116 | } | 114 | } |
117 | } | 115 | } |
118 | 116 | ||
diff --git a/library/lnkproperties.cpp b/library/lnkproperties.cpp index 8dca4ab..0661423 100644 --- a/library/lnkproperties.cpp +++ b/library/lnkproperties.cpp | |||
@@ -1,122 +1,121 @@ | |||
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 | // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT | 21 | // WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT |
22 | // have this class. | 22 | // have this class. |
23 | #define QTOPIA_INTERNAL_FSLP | 23 | #define QTOPIA_INTERNAL_FSLP |
24 | #include "lnkproperties.h" | ||
25 | #include "lnkproperties.h" | ||
26 | #include "lnkpropertiesbase_p.h" | 24 | #include "lnkpropertiesbase_p.h" |
25 | #include "lnkproperties.h" | ||
27 | #include "ir.h" | 26 | #include "ir.h" |
28 | 27 | ||
29 | #include <qpe/qpeapplication.h> | 28 | #include <qpe/qpeapplication.h> |
30 | #include <qpe/applnk.h> | 29 | #include <qpe/applnk.h> |
31 | #include <qpe/global.h> | 30 | #include <qpe/global.h> |
32 | #include <qpe/categorywidget.h> | 31 | #include <qpe/categorywidget.h> |
33 | #include <qpe/qcopenvelope_qws.h> | 32 | #include <qpe/qcopenvelope_qws.h> |
34 | #include <qpe/filemanager.h> | 33 | #include <qpe/filemanager.h> |
35 | #include <qpe/config.h> | 34 | #include <qpe/config.h> |
36 | #include <qpe/storage.h> | 35 | #include <qpe/storage.h> |
37 | #include <qpe/qpemessagebox.h> | 36 | #include <qpe/qpemessagebox.h> |
38 | #include <qpe/mimetype.h> | 37 | #include <qpe/mimetype.h> |
39 | 38 | ||
40 | #include <qlineedit.h> | 39 | #include <qlineedit.h> |
41 | #include <qtoolbutton.h> | 40 | #include <qtoolbutton.h> |
42 | #include <qpushbutton.h> | 41 | #include <qpushbutton.h> |
43 | #include <qgroupbox.h> | 42 | #include <qgroupbox.h> |
44 | #include <qcheckbox.h> | 43 | #include <qcheckbox.h> |
45 | #include <qlabel.h> | 44 | #include <qlabel.h> |
46 | #include <qlayout.h> | 45 | #include <qlayout.h> |
47 | #include <qfile.h> | 46 | #include <qfile.h> |
48 | #include <qfileinfo.h> | 47 | #include <qfileinfo.h> |
49 | #include <qmessagebox.h> | 48 | #include <qmessagebox.h> |
50 | #include <qsize.h> | 49 | #include <qsize.h> |
51 | #include <qcombobox.h> | 50 | #include <qcombobox.h> |
52 | #include <qregexp.h> | 51 | #include <qregexp.h> |
53 | #include <qbuttongroup.h> | 52 | #include <qbuttongroup.h> |
54 | 53 | ||
55 | #include <stdlib.h> | 54 | #include <stdlib.h> |
56 | 55 | ||
57 | LnkProperties::LnkProperties( AppLnk* l, QWidget* parent ) | 56 | LnkProperties::LnkProperties( AppLnk* l, QWidget* parent ) |
58 | : QDialog( parent, 0, TRUE ), lnk(l), fileSize( 0 ) | 57 | : QDialog( parent, 0, TRUE ), lnk(l), fileSize( 0 ) |
59 | { | 58 | { |
60 | setCaption( tr("Properties") ); | 59 | setCaption( tr("Properties") ); |
61 | 60 | ||
62 | QVBoxLayout *vbox = new QVBoxLayout( this ); | 61 | QVBoxLayout *vbox = new QVBoxLayout( this ); |
63 | d = new LnkPropertiesBase( this ); | 62 | d = new LnkPropertiesBase( this ); |
64 | vbox->add( d ); | 63 | vbox->add( d ); |
65 | 64 | ||
66 | // hide custom rotation feature for now, need a new implementation to fit quicklauch, | 65 | // hide custom rotation feature for now, need a new implementation to fit quicklauch, |
67 | // is confusing for the user and doubtable useful since life rotation | 66 | // is confusing for the user and doubtable useful since life rotation |
68 | d->rotate->hide(); | 67 | d->rotate->hide(); |
69 | d->rotateButtons->hide(); | 68 | d->rotateButtons->hide(); |
70 | 69 | ||
71 | d->docname->setText(l->name()); | 70 | d->docname->setText(l->name()); |
72 | QString inf; | 71 | QString inf; |
73 | if ( l->type().isEmpty() ) { | 72 | if ( l->type().isEmpty() ) { |
74 | d->type->hide(); | 73 | d->type->hide(); |
75 | d->typeLabel->hide(); | 74 | d->typeLabel->hide(); |
76 | } else { | 75 | } else { |
77 | d->type->setText( l->type() ); | 76 | d->type->setText( l->type() ); |
78 | } | 77 | } |
79 | 78 | ||
80 | if ( l->comment().isEmpty() ) { | 79 | if ( l->comment().isEmpty() ) { |
81 | d->comment->hide(); | 80 | d->comment->hide(); |
82 | d->commentLabel->hide(); | 81 | d->commentLabel->hide(); |
83 | } else { | 82 | } else { |
84 | d->comment->setText( l->comment() ); | 83 | d->comment->setText( l->comment() ); |
85 | } | 84 | } |
86 | 85 | ||
87 | connect(d->beam,SIGNAL(clicked()),this,SLOT(beamLnk())); | 86 | connect(d->beam,SIGNAL(clicked()),this,SLOT(beamLnk())); |
88 | if ( lnk->type().contains('/') ) { // A document? (#### better predicate needed) | 87 | if ( lnk->type().contains('/') ) { // A document? (#### better predicate needed) |
89 | connect(d->unlink,SIGNAL(clicked()),this,SLOT(unlinkLnk())); | 88 | connect(d->unlink,SIGNAL(clicked()),this,SLOT(unlinkLnk())); |
90 | connect(d->duplicate,SIGNAL(clicked()),this,SLOT(duplicateLnk())); | 89 | connect(d->duplicate,SIGNAL(clicked()),this,SLOT(duplicateLnk())); |
91 | 90 | ||
92 | d->docname->setReadOnly( FALSE ); | 91 | d->docname->setReadOnly( FALSE ); |
93 | d->preload->hide(); | 92 | d->preload->hide(); |
94 | d->rotate->hide(); | 93 | d->rotate->hide(); |
95 | d->rotateButtons->hide(); | 94 | d->rotateButtons->hide(); |
96 | d->labelspacer->hide(); | 95 | d->labelspacer->hide(); |
97 | 96 | ||
98 | // ### THIS MUST GO, FIX WIERD BUG in QLAYOUT | 97 | // ### THIS MUST GO, FIX WIERD BUG in QLAYOUT |
99 | d->categoryEdit->kludge(); | 98 | d->categoryEdit->kludge(); |
100 | 99 | ||
101 | d->categoryEdit->setCategories( lnk->categories(), | 100 | d->categoryEdit->setCategories( lnk->categories(), |
102 | "Document View", | 101 | "Document View", |
103 | tr("Document View") ); | 102 | tr("Document View") ); |
104 | setupLocations(); | 103 | setupLocations(); |
105 | } else { | 104 | } else { |
106 | d->unlink->hide(); | 105 | d->unlink->hide(); |
107 | d->duplicate->hide(); | 106 | d->duplicate->hide(); |
108 | d->beam->hide(); | 107 | d->beam->hide(); |
109 | d->hline->hide(); | 108 | d->hline->hide(); |
110 | d->locationLabel->hide(); | 109 | d->locationLabel->hide(); |
111 | d->locationCombo->hide(); | 110 | d->locationCombo->hide(); |
112 | 111 | ||
113 | // Can't edit categories, since the app .desktop files are global, | 112 | // Can't edit categories, since the app .desktop files are global, |
114 | // possibly read-only. | 113 | // possibly read-only. |
115 | d->categoryEdit->hide(); | 114 | d->categoryEdit->hide(); |
116 | 115 | ||
117 | d->docname->setReadOnly( TRUE ); | 116 | d->docname->setReadOnly( TRUE ); |
118 | 117 | ||
119 | if ( l->property("CanFastload") == "0" ) | 118 | if ( l->property("CanFastload") == "0" ) |
120 | d->preload->hide(); | 119 | d->preload->hide(); |
121 | if ( !l->property("Rotation"). isEmpty ()) { | 120 | if ( !l->property("Rotation"). isEmpty ()) { |
122 | d->rotate->setChecked ( true ); | 121 | d->rotate->setChecked ( true ); |
diff --git a/library/mimetype.cpp b/library/mimetype.cpp index d0a578e..23de70b 100644 --- a/library/mimetype.cpp +++ b/library/mimetype.cpp | |||
@@ -1,129 +1,125 @@ | |||
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> | ||
30 | #include <qregexp.h> | ||
31 | #include <qstringlist.h> | ||
32 | #include <qtextstream.h> | 29 | #include <qtextstream.h> |
33 | #include <qmap.h> | ||
34 | 30 | ||
35 | 31 | ||
36 | static void cleanupMime() | 32 | static void cleanupMime() |
37 | { | 33 | { |
38 | MimeType::clear(); | 34 | MimeType::clear(); |
39 | } | 35 | } |
40 | 36 | ||
41 | class MimeTypeData { | 37 | class MimeTypeData { |
42 | public: | 38 | public: |
43 | MimeTypeData(const QString& i) : | 39 | MimeTypeData(const QString& i) : |
44 | id(i) | 40 | id(i) |
45 | { | 41 | { |
46 | apps.setAutoDelete(TRUE); | 42 | apps.setAutoDelete(TRUE); |
47 | } | 43 | } |
48 | QString id; | 44 | QString id; |
49 | QString extension; | 45 | QString extension; |
50 | QList<AppLnk> apps; | 46 | QList<AppLnk> apps; |
51 | 47 | ||
52 | QString description() | 48 | QString description() |
53 | { | 49 | { |
54 | if ( desc.isEmpty() ) | 50 | if ( desc.isEmpty() ) |
55 | desc = QPEApplication::tr("%1 document").arg(apps.first()->name()); | 51 | desc = QPEApplication::tr("%1 document").arg(apps.first()->name()); |
56 | return desc; | 52 | return desc; |
57 | } | 53 | } |
58 | 54 | ||
59 | QPixmap regIcon() | 55 | QPixmap regIcon() |
60 | { | 56 | { |
61 | if ( regicon.isNull() ) | 57 | if ( regicon.isNull() ) |
62 | loadPixmaps(); | 58 | loadPixmaps(); |
63 | return regicon; | 59 | return regicon; |
64 | } | 60 | } |
65 | 61 | ||
66 | QPixmap bigIcon() | 62 | QPixmap bigIcon() |
67 | { | 63 | { |
68 | if ( bigicon.isNull() ) | 64 | if ( bigicon.isNull() ) |
69 | loadPixmaps(); | 65 | loadPixmaps(); |
70 | return bigicon; | 66 | return bigicon; |
71 | } | 67 | } |
72 | 68 | ||
73 | private: | 69 | private: |
74 | void loadPixmaps() | 70 | void loadPixmaps() |
75 | { | 71 | { |
76 | if ( apps.count() ) { | 72 | if ( apps.count() ) { |
77 | QString icon; | 73 | QString icon; |
78 | for (AppLnk* lnk = apps.first(); icon.isNull() && lnk; lnk=apps.next()) { | 74 | for (AppLnk* lnk = apps.first(); icon.isNull() && lnk; lnk=apps.next()) { |
79 | QStringList icons = lnk->mimeTypeIcons(); | 75 | QStringList icons = lnk->mimeTypeIcons(); |
80 | if ( icons.count() ) { | 76 | if ( icons.count() ) { |
81 | QStringList types = lnk->mimeTypes(); | 77 | QStringList types = lnk->mimeTypes(); |
82 | for (QStringList::ConstIterator t=types.begin(),i=icons.begin(); t!=types.end() && i!=icons.end(); ++i,++t) { | 78 | for (QStringList::ConstIterator t=types.begin(),i=icons.begin(); t!=types.end() && i!=icons.end(); ++i,++t) { |
83 | if ( *t == id ) { | 79 | if ( *t == id ) { |
84 | icon = *i; | 80 | icon = *i; |
85 | break; | 81 | break; |
86 | } | 82 | } |
87 | } | 83 | } |
88 | } | 84 | } |
89 | } | 85 | } |
90 | if ( icon.isNull() ) { | 86 | if ( icon.isNull() ) { |
91 | AppLnk* lnk = apps.first(); | 87 | AppLnk* lnk = apps.first(); |
92 | regicon = lnk->pixmap(); | 88 | regicon = lnk->pixmap(); |
93 | bigicon = lnk->bigPixmap(); | 89 | bigicon = lnk->bigPixmap(); |
94 | } else { | 90 | } else { |
95 | QImage unscaledIcon = Resource::loadImage( icon ); | 91 | QImage unscaledIcon = Resource::loadImage( icon ); |
96 | regicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); | 92 | regicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); |
97 | bigicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() ) ); | 93 | bigicon.convertFromImage( unscaledIcon.smoothScale( AppLnk::bigIconSize(), AppLnk::bigIconSize() ) ); |
98 | } | 94 | } |
99 | } | 95 | } |
100 | } | 96 | } |
101 | 97 | ||
102 | QPixmap regicon; | 98 | QPixmap regicon; |
103 | QPixmap bigicon; | 99 | QPixmap bigicon; |
104 | QString desc; | 100 | QString desc; |
105 | }; | 101 | }; |
106 | 102 | ||
107 | class MimeType::Private : public QDict<MimeTypeData> { | 103 | class MimeType::Private : public QDict<MimeTypeData> { |
108 | public: | 104 | public: |
109 | Private() {} | 105 | Private() {} |
110 | ~Private() {} | 106 | ~Private() {} |
111 | 107 | ||
112 | // ... | 108 | // ... |
113 | }; | 109 | }; |
114 | 110 | ||
115 | MimeType::Private* MimeType::d=0; | 111 | MimeType::Private* MimeType::d=0; |
116 | static QMap<QString,QString> *typeFor = 0; | 112 | static QMap<QString,QString> *typeFor = 0; |
117 | static QMap<QString,QStringList> *extFor = 0; | 113 | static QMap<QString,QStringList> *extFor = 0; |
118 | 114 | ||
119 | MimeType::Private& MimeType::data() | 115 | MimeType::Private& MimeType::data() |
120 | { | 116 | { |
121 | if ( !d ) { | 117 | if ( !d ) { |
122 | d = new Private; | 118 | d = new Private; |
123 | d->setAutoDelete(TRUE); | 119 | d->setAutoDelete(TRUE); |
124 | static bool setCleanup = FALSE; | 120 | static bool setCleanup = FALSE; |
125 | if ( !setCleanup ) { | 121 | if ( !setCleanup ) { |
126 | qAddPostRoutine( cleanupMime ); | 122 | qAddPostRoutine( cleanupMime ); |
127 | setCleanup = TRUE; | 123 | setCleanup = TRUE; |
128 | } | 124 | } |
129 | } | 125 | } |
diff --git a/library/qcopenvelope_qws.cpp b/library/qcopenvelope_qws.cpp index 0aac32b..8f58787 100644 --- a/library/qcopenvelope_qws.cpp +++ b/library/qcopenvelope_qws.cpp | |||
@@ -1,122 +1,120 @@ | |||
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 | #ifndef QT_NO_COP | 21 | #ifndef QT_NO_COP |
22 | #include "qcopenvelope_qws.h" | 22 | #include "qcopenvelope_qws.h" |
23 | #endif | 23 | #endif |
24 | #include "global.h" | ||
25 | #include <qbuffer.h> | 24 | #include <qbuffer.h> |
26 | #include <qdatastream.h> | ||
27 | #include <qfile.h> | 25 | #include <qfile.h> |
28 | #include <unistd.h> | 26 | #include <unistd.h> |
29 | #include <errno.h> | 27 | #include <errno.h> |
30 | #include <sys/file.h> | 28 | #include <sys/file.h> |
31 | #include <sys/types.h> | 29 | #include <sys/types.h> |
32 | #include <sys/stat.h> | 30 | #include <sys/stat.h> |
33 | #include <time.h> | 31 | #include <time.h> |
34 | 32 | ||
35 | #ifndef QT_NO_COP | 33 | #ifndef QT_NO_COP |
36 | 34 | ||
37 | /*! | 35 | /*! |
38 | \class QCopEnvelope qcopenvelope_qws.h | 36 | \class QCopEnvelope qcopenvelope_qws.h |
39 | \brief The QCopEnvelope class encapsulates and sends QCop messages | 37 | \brief The QCopEnvelope class encapsulates and sends QCop messages |
40 | over QCopChannels. | 38 | over QCopChannels. |
41 | 39 | ||
42 | QCop messages allow applications to communicate with each other. | 40 | QCop messages allow applications to communicate with each other. |
43 | These messages are sent using QCopEnvelope, and received by connecting | 41 | These messages are sent using QCopEnvelope, and received by connecting |
44 | to a QCopChannel. | 42 | to a QCopChannel. |
45 | 43 | ||
46 | To send a message, use the following protocol: | 44 | To send a message, use the following protocol: |
47 | 45 | ||
48 | \code | 46 | \code |
49 | QCopEnvelope e(channelname, messagename); | 47 | QCopEnvelope e(channelname, messagename); |
50 | e << parameter1 << parameter2 << ...; | 48 | e << parameter1 << parameter2 << ...; |
51 | \endcode | 49 | \endcode |
52 | 50 | ||
53 | For messages without parameters, simply use: | 51 | For messages without parameters, simply use: |
54 | 52 | ||
55 | \code | 53 | \code |
56 | QCopEnvelope e(channelname, messagename); | 54 | QCopEnvelope e(channelname, messagename); |
57 | \endcode | 55 | \endcode |
58 | 56 | ||
59 | (Do not try to simplify this further as it may confuse some | 57 | (Do not try to simplify this further as it may confuse some |
60 | compilers.) | 58 | compilers.) |
61 | 59 | ||
62 | The \c{channelname} of channels within Qtopia all start with "QPE/". | 60 | The \c{channelname} of channels within Qtopia all start with "QPE/". |
63 | The \c{messagename} is a function identifier followed by a list of types | 61 | The \c{messagename} is a function identifier followed by a list of types |
64 | in parentheses. There is no whitespace in the message name. | 62 | in parentheses. There is no whitespace in the message name. |
65 | 63 | ||
66 | To receive a message, you will generally just use your application's | 64 | To receive a message, you will generally just use your application's |
67 | predefined QPE/Application/\e{appname} channel | 65 | predefined QPE/Application/\e{appname} channel |
68 | (see QPEApplication::appMessage()), but you can make another channel | 66 | (see QPEApplication::appMessage()), but you can make another channel |
69 | and connect it to a slot like this: | 67 | and connect it to a slot like this: |
70 | 68 | ||
71 | \code | 69 | \code |
72 | myChannel = new QCopChannel( "QPE/FooBar", this ); | 70 | myChannel = new QCopChannel( "QPE/FooBar", this ); |
73 | connect( myChannel, SIGNAL(received(const QCString &, const QByteArray &)), | 71 | connect( myChannel, SIGNAL(received(const QCString &, const QByteArray &)), |
74 | this, SLOT(fooBarMessage( const QCString &, const QByteArray &)) ); | 72 | this, SLOT(fooBarMessage( const QCString &, const QByteArray &)) ); |
75 | \endcode | 73 | \endcode |
76 | 74 | ||
77 | See also, the \link qcop.html list of Qtopia messages\endlink. | 75 | See also, the \link qcop.html list of Qtopia messages\endlink. |
78 | */ | 76 | */ |
79 | 77 | ||
80 | /*! | 78 | /*! |
81 | Constructs a QCopEnvelope that will write \a message to \a channel. | 79 | Constructs a QCopEnvelope that will write \a message to \a channel. |
82 | If \a message has parameters, you must then use operator<<() to | 80 | If \a message has parameters, you must then use operator<<() to |
83 | add these parameters to the envelope. | 81 | add these parameters to the envelope. |
84 | */ | 82 | */ |
85 | QCopEnvelope::QCopEnvelope( const QCString& channel, const QCString& message ) : | 83 | QCopEnvelope::QCopEnvelope( const QCString& channel, const QCString& message ) : |
86 | QDataStream(new QBuffer), | 84 | QDataStream(new QBuffer), |
87 | ch(channel), msg(message) | 85 | ch(channel), msg(message) |
88 | { | 86 | { |
89 | device()->open(IO_WriteOnly); | 87 | device()->open(IO_WriteOnly); |
90 | } | 88 | } |
91 | 89 | ||
92 | /*! | 90 | /*! |
93 | Writes the message and then destroys the QCopEnvelope. | 91 | Writes the message and then destroys the QCopEnvelope. |
94 | */ | 92 | */ |
95 | QCopEnvelope::~QCopEnvelope() | 93 | QCopEnvelope::~QCopEnvelope() |
96 | { | 94 | { |
97 | QByteArray data = ((QBuffer*)device())->buffer(); | 95 | QByteArray data = ((QBuffer*)device())->buffer(); |
98 | const int pref=16; | 96 | const int pref=16; |
99 | if ( qstrncmp(ch.data(),"QPE/Application/",pref)==0 ) { | 97 | if ( qstrncmp(ch.data(),"QPE/Application/",pref)==0 ) { |
100 | QString qcopfn("/tmp/qcop-msg-"); | 98 | QString qcopfn("/tmp/qcop-msg-"); |
101 | qcopfn += ch.mid(pref); | 99 | qcopfn += ch.mid(pref); |
102 | QFile qcopfile(qcopfn); | 100 | QFile qcopfile(qcopfn); |
103 | 101 | ||
104 | if ( qcopfile.open(IO_WriteOnly | IO_Append) ) { | 102 | if ( qcopfile.open(IO_WriteOnly | IO_Append) ) { |
105 | #ifndef Q_OS_WIN32 | 103 | #ifndef Q_OS_WIN32 |
106 | if(flock(qcopfile.handle(), LOCK_EX)) { | 104 | if(flock(qcopfile.handle(), LOCK_EX)) { |
107 | /* some error occurred */ | 105 | /* some error occurred */ |
108 | qWarning(QString("Failed to obtain file lock on %1 (%2)") | 106 | qWarning(QString("Failed to obtain file lock on %1 (%2)") |
109 | .arg(qcopfn).arg( errno )); | 107 | .arg(qcopfn).arg( errno )); |
110 | } | 108 | } |
111 | #endif | 109 | #endif |
112 | { | 110 | { |
113 | QDataStream ds(&qcopfile); | 111 | QDataStream ds(&qcopfile); |
114 | ds << ch << msg << data; | 112 | ds << ch << msg << data; |
115 | qcopfile.flush(); | 113 | qcopfile.flush(); |
116 | #ifndef Q_OS_WIN32 | 114 | #ifndef Q_OS_WIN32 |
117 | flock(qcopfile.handle(), LOCK_UN); | 115 | flock(qcopfile.handle(), LOCK_UN); |
118 | #endif | 116 | #endif |
119 | qcopfile.close(); | 117 | qcopfile.close(); |
120 | } | 118 | } |
121 | 119 | ||
122 | QByteArray b; | 120 | QByteArray b; |
diff --git a/library/qdawg.cpp b/library/qdawg.cpp index af5dc82..2ea5734 100644 --- a/library/qdawg.cpp +++ b/library/qdawg.cpp | |||
@@ -1,119 +1,117 @@ | |||
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 "qdawg.h" | 20 | #include "qdawg.h" |
21 | #include <qintdict.h> | 21 | #include <qintdict.h> |
22 | #include <qvaluelist.h> | ||
23 | #include <qtextstream.h> | ||
24 | #include <qfile.h> | 22 | #include <qfile.h> |
25 | #include <qtl.h> | 23 | #include <qtl.h> |
26 | 24 | ||
27 | #include <limits.h> | 25 | #include <limits.h> |
28 | #include <stdio.h> | 26 | #include <stdio.h> |
29 | 27 | ||
30 | // for mmap | 28 | // for mmap |
31 | #include <sys/types.h> | 29 | #include <sys/types.h> |
32 | #include <sys/stat.h> | 30 | #include <sys/stat.h> |
33 | #include <sys/mman.h> | 31 | #include <sys/mman.h> |
34 | #include <fcntl.h> | 32 | #include <fcntl.h> |
35 | #include <errno.h> | 33 | #include <errno.h> |
36 | #include <unistd.h> | 34 | #include <unistd.h> |
37 | 35 | ||
38 | class QDawgPrivate; | 36 | class QDawgPrivate; |
39 | class QTrie; | 37 | class QTrie; |
40 | 38 | ||
41 | typedef QValueList<QTrie*> TrieClub; | 39 | typedef QValueList<QTrie*> TrieClub; |
42 | typedef QIntDict<TrieClub> TrieClubDirectory; | 40 | typedef QIntDict<TrieClub> TrieClubDirectory; |
43 | 41 | ||
44 | class TriePtr { | 42 | class TriePtr { |
45 | public: | 43 | public: |
46 | QChar letter; | 44 | QChar letter; |
47 | QTrie* p; | 45 | QTrie* p; |
48 | int operator <(const TriePtr& o) const; | 46 | int operator <(const TriePtr& o) const; |
49 | int operator >(const TriePtr& o) const; | 47 | int operator >(const TriePtr& o) const; |
50 | int operator <=(const TriePtr& o) const; | 48 | int operator <=(const TriePtr& o) const; |
51 | }; | 49 | }; |
52 | 50 | ||
53 | class TrieList : public QValueList<TriePtr> { | 51 | class TrieList : public QValueList<TriePtr> { |
54 | bool sorted; | 52 | bool sorted; |
55 | public: | 53 | public: |
56 | TrieList() | 54 | TrieList() |
57 | { | 55 | { |
58 | sorted=TRUE; | 56 | sorted=TRUE; |
59 | } | 57 | } |
60 | 58 | ||
61 | QTrie* findAdd(QChar c); | 59 | QTrie* findAdd(QChar c); |
62 | bool equal(TrieList& l); | 60 | bool equal(TrieList& l); |
63 | 61 | ||
64 | void sort() | 62 | void sort() |
65 | { | 63 | { |
66 | if ( !sorted ) { | 64 | if ( !sorted ) { |
67 | qHeapSort(*this); | 65 | qHeapSort(*this); |
68 | sorted = TRUE; | 66 | sorted = TRUE; |
69 | } | 67 | } |
70 | } | 68 | } |
71 | }; | 69 | }; |
72 | 70 | ||
73 | // A fast but memory-wasting temporary class. The Dawg is the goal. | 71 | // A fast but memory-wasting temporary class. The Dawg is the goal. |
74 | class QTrie { | 72 | class QTrie { |
75 | public: | 73 | public: |
76 | QTrie(); | 74 | QTrie(); |
77 | ~QTrie(); | 75 | ~QTrie(); |
78 | 76 | ||
79 | void insertWord(const QString& s, uint index=0); | 77 | void insertWord(const QString& s, uint index=0); |
80 | bool equal(QTrie* o); | 78 | bool equal(QTrie* o); |
81 | void dump(int indent=0); | 79 | void dump(int indent=0); |
82 | 80 | ||
83 | private: | 81 | private: |
84 | TrieList children; | 82 | TrieList children; |
85 | bool isword; | 83 | bool isword; |
86 | 84 | ||
87 | friend class QDawgPrivate; | 85 | friend class QDawgPrivate; |
88 | int maxdepth; | 86 | int maxdepth; |
89 | int decendants; | 87 | int decendants; |
90 | int key; | 88 | int key; |
91 | void distributeKeys(TrieClubDirectory& directory); | 89 | void distributeKeys(TrieClubDirectory& directory); |
92 | QTrie* clubLeader(TrieClubDirectory& directory); | 90 | QTrie* clubLeader(TrieClubDirectory& directory); |
93 | int collectKeys(); | 91 | int collectKeys(); |
94 | friend class TriePtr; | 92 | friend class TriePtr; |
95 | friend class TrieList; | 93 | friend class TrieList; |
96 | }; | 94 | }; |
97 | 95 | ||
98 | QTrie::QTrie() | 96 | QTrie::QTrie() |
99 | { | 97 | { |
100 | key = 0; | 98 | key = 0; |
101 | isword = FALSE; | 99 | isword = FALSE; |
102 | } | 100 | } |
103 | 101 | ||
104 | QTrie::~QTrie() | 102 | QTrie::~QTrie() |
105 | { | 103 | { |
106 | // NOTE: we do not delete the children - after conversion to DAWG | 104 | // NOTE: we do not delete the children - after conversion to DAWG |
107 | // it's too difficult. The QTrie's are deleted via the directory. | 105 | // it's too difficult. The QTrie's are deleted via the directory. |
108 | } | 106 | } |
109 | 107 | ||
110 | void QTrie::insertWord(const QString& s, uint index) | 108 | void QTrie::insertWord(const QString& s, uint index) |
111 | { | 109 | { |
112 | if ( index == s.length() ) { | 110 | if ( index == s.length() ) { |
113 | isword = TRUE; | 111 | isword = TRUE; |
114 | } else { | 112 | } else { |
115 | QTrie* t = children.findAdd(s[index]); | 113 | QTrie* t = children.findAdd(s[index]); |
116 | t->insertWord(s,index+1); | 114 | t->insertWord(s,index+1); |
117 | } | 115 | } |
118 | } | 116 | } |
119 | 117 | ||
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index c7ef2b7..262221e 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -1009,193 +1009,192 @@ bool QPEApplication::qwsEventFilter( QWSEvent * e ) | |||
1009 | 1009 | ||
1010 | 1010 | ||
1011 | return QApplication::qwsEventFilter( e ); | 1011 | return QApplication::qwsEventFilter( e ); |
1012 | } | 1012 | } |
1013 | #endif | 1013 | #endif |
1014 | 1014 | ||
1015 | /*! | 1015 | /*! |
1016 | Destroys the QPEApplication. | 1016 | Destroys the QPEApplication. |
1017 | */ | 1017 | */ |
1018 | QPEApplication::~QPEApplication() | 1018 | QPEApplication::~QPEApplication() |
1019 | { | 1019 | { |
1020 | ungrabKeyboard(); | 1020 | ungrabKeyboard(); |
1021 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 1021 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
1022 | // Need to delete QCopChannels early, since the display will | 1022 | // Need to delete QCopChannels early, since the display will |
1023 | // be gone by the time we get to ~QObject(). | 1023 | // be gone by the time we get to ~QObject(). |
1024 | delete sysChannel; | 1024 | delete sysChannel; |
1025 | delete pidChannel; | 1025 | delete pidChannel; |
1026 | #endif | 1026 | #endif |
1027 | 1027 | ||
1028 | delete d; | 1028 | delete d; |
1029 | } | 1029 | } |
1030 | 1030 | ||
1031 | /*! | 1031 | /*! |
1032 | Returns <tt>$OPIEDIR/</tt>. | 1032 | Returns <tt>$OPIEDIR/</tt>. |
1033 | */ | 1033 | */ |
1034 | QString QPEApplication::qpeDir() | 1034 | QString QPEApplication::qpeDir() |
1035 | { | 1035 | { |
1036 | const char * base = getenv( "OPIEDIR" ); | 1036 | const char * base = getenv( "OPIEDIR" ); |
1037 | if ( base ) | 1037 | if ( base ) |
1038 | return QString( base ) + "/"; | 1038 | return QString( base ) + "/"; |
1039 | 1039 | ||
1040 | return QString( "../" ); | 1040 | return QString( "../" ); |
1041 | } | 1041 | } |
1042 | 1042 | ||
1043 | /*! | 1043 | /*! |
1044 | Returns the user's current Document directory. There is a trailing "/". | 1044 | Returns the user's current Document directory. There is a trailing "/". |
1045 | .. well, it does now,, and there's no trailing '/' | 1045 | .. well, it does now,, and there's no trailing '/' |
1046 | */ | 1046 | */ |
1047 | QString QPEApplication::documentDir() | 1047 | QString QPEApplication::documentDir() |
1048 | { | 1048 | { |
1049 | const char* base = getenv( "HOME"); | 1049 | const char* base = getenv( "HOME"); |
1050 | if ( base ) | 1050 | if ( base ) |
1051 | return QString( base ) + "/Documents"; | 1051 | return QString( base ) + "/Documents"; |
1052 | 1052 | ||
1053 | return QString( "../Documents" ); | 1053 | return QString( "../Documents" ); |
1054 | } | 1054 | } |
1055 | 1055 | ||
1056 | static int deforient = -1; | 1056 | static int deforient = -1; |
1057 | 1057 | ||
1058 | /*! | 1058 | /*! |
1059 | \internal | 1059 | \internal |
1060 | */ | 1060 | */ |
1061 | int QPEApplication::defaultRotation() | 1061 | int QPEApplication::defaultRotation() |
1062 | { | 1062 | { |
1063 | if ( deforient < 0 ) { | 1063 | if ( deforient < 0 ) { |
1064 | QString d = getenv( "QWS_DISPLAY" ); | 1064 | QString d = getenv( "QWS_DISPLAY" ); |
1065 | if ( d.contains( "Rot90" ) ) { | 1065 | if ( d.contains( "Rot90" ) ) { |
1066 | deforient = 90; | 1066 | deforient = 90; |
1067 | } | 1067 | } |
1068 | else if ( d.contains( "Rot180" ) ) { | 1068 | else if ( d.contains( "Rot180" ) ) { |
1069 | deforient = 180; | 1069 | deforient = 180; |
1070 | } | 1070 | } |
1071 | else if ( d.contains( "Rot270" ) ) { | 1071 | else if ( d.contains( "Rot270" ) ) { |
1072 | deforient = 270; | 1072 | deforient = 270; |
1073 | } | 1073 | } |
1074 | else { | 1074 | else { |
1075 | deforient = 0; | 1075 | deforient = 0; |
1076 | } | 1076 | } |
1077 | } | 1077 | } |
1078 | return deforient; | 1078 | return deforient; |
1079 | } | 1079 | } |
1080 | 1080 | ||
1081 | /*! | 1081 | /*! |
1082 | \internal | 1082 | \internal |
1083 | */ | 1083 | */ |
1084 | void QPEApplication::setDefaultRotation( int r ) | 1084 | void QPEApplication::setDefaultRotation( int r ) |
1085 | { | 1085 | { |
1086 | if ( qApp->type() == GuiServer ) { | 1086 | if ( qApp->type() == GuiServer ) { |
1087 | deforient = r; | 1087 | deforient = r; |
1088 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); | 1088 | setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); |
1089 | Config config("qpe"); | 1089 | Config config("qpe"); |
1090 | config.setGroup( "Rotation" ); | 1090 | config.setGroup( "Rotation" ); |
1091 | config.writeEntry( "Rot", r ); | 1091 | config.writeEntry( "Rot", r ); |
1092 | } | 1092 | } |
1093 | else { | 1093 | else { |
1094 | #ifndef QT_NO_COP | 1094 | #ifndef QT_NO_COP |
1095 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); | 1095 | { QCopEnvelope e( "QPE/System", "setDefaultRotation(int)" ); |
1096 | e << r; | 1096 | e << r; |
1097 | } | 1097 | } |
1098 | #endif | 1098 | #endif |
1099 | 1099 | ||
1100 | } | 1100 | } |
1101 | } | 1101 | } |
1102 | 1102 | ||
1103 | #include <qgfx_qws.h> | 1103 | #include <qgfx_qws.h> |
1104 | #include <qwindowsystem_qws.h> | 1104 | #include <qwindowsystem_qws.h> |
1105 | #include <qpixmapcache.h> | ||
1106 | 1105 | ||
1107 | extern void qws_clearLoadedFonts(); | 1106 | extern void qws_clearLoadedFonts(); |
1108 | 1107 | ||
1109 | void QPEApplication::setCurrentMode( int x, int y, int depth ) | 1108 | void QPEApplication::setCurrentMode( int x, int y, int depth ) |
1110 | { | 1109 | { |
1111 | // Reset the caches | 1110 | // Reset the caches |
1112 | qws_clearLoadedFonts(); | 1111 | qws_clearLoadedFonts(); |
1113 | QPixmapCache::clear(); | 1112 | QPixmapCache::clear(); |
1114 | 1113 | ||
1115 | // Change the screen mode | 1114 | // Change the screen mode |
1116 | qt_screen->setMode(x, y, depth); | 1115 | qt_screen->setMode(x, y, depth); |
1117 | 1116 | ||
1118 | if ( qApp->type() == GuiServer ) { | 1117 | if ( qApp->type() == GuiServer ) { |
1119 | // Reconfigure the GuiServer | 1118 | // Reconfigure the GuiServer |
1120 | qwsServer->beginDisplayReconfigure(); | 1119 | qwsServer->beginDisplayReconfigure(); |
1121 | qwsServer->endDisplayReconfigure(); | 1120 | qwsServer->endDisplayReconfigure(); |
1122 | 1121 | ||
1123 | // Get all the running apps to reset | 1122 | // Get all the running apps to reset |
1124 | QCopEnvelope env( "QPE/System", "reset()" ); | 1123 | QCopEnvelope env( "QPE/System", "reset()" ); |
1125 | } | 1124 | } |
1126 | } | 1125 | } |
1127 | 1126 | ||
1128 | void QPEApplication::reset() { | 1127 | void QPEApplication::reset() { |
1129 | // Reconnect to the screen | 1128 | // Reconnect to the screen |
1130 | qt_screen->disconnect(); | 1129 | qt_screen->disconnect(); |
1131 | qt_screen->connect( QString::null ); | 1130 | qt_screen->connect( QString::null ); |
1132 | 1131 | ||
1133 | // Redraw everything | 1132 | // Redraw everything |
1134 | applyStyle(); | 1133 | applyStyle(); |
1135 | } | 1134 | } |
1136 | 1135 | ||
1137 | /*! | 1136 | /*! |
1138 | \internal | 1137 | \internal |
1139 | */ | 1138 | */ |
1140 | void QPEApplication::applyStyle() | 1139 | void QPEApplication::applyStyle() |
1141 | { | 1140 | { |
1142 | Config config( "qpe" ); | 1141 | Config config( "qpe" ); |
1143 | config.setGroup( "Appearance" ); | 1142 | config.setGroup( "Appearance" ); |
1144 | 1143 | ||
1145 | #if QT_VERSION > 233 | 1144 | #if QT_VERSION > 233 |
1146 | #if !defined(OPIE_NO_OVERRIDE_QT) | 1145 | #if !defined(OPIE_NO_OVERRIDE_QT) |
1147 | // don't block ourselves ... | 1146 | // don't block ourselves ... |
1148 | Opie::force_appearance = 0; | 1147 | Opie::force_appearance = 0; |
1149 | 1148 | ||
1150 | static QString appname = Opie::binaryName ( ); | 1149 | static QString appname = Opie::binaryName ( ); |
1151 | 1150 | ||
1152 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); | 1151 | QStringList ex = config. readListEntry ( "NoStyle", ';' ); |
1153 | int nostyle = 0; | 1152 | int nostyle = 0; |
1154 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { | 1153 | for ( QStringList::Iterator it = ex. begin ( ); it != ex. end ( ); ++it ) { |
1155 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { | 1154 | if ( QRegExp (( *it ). mid ( 1 ), false, true ). find ( appname, 0 ) >= 0 ) { |
1156 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); | 1155 | nostyle = ( *it ). left ( 1 ). toInt ( 0, 32 ); |
1157 | break; | 1156 | break; |
1158 | } | 1157 | } |
1159 | } | 1158 | } |
1160 | #else | 1159 | #else |
1161 | int nostyle = 0; | 1160 | int nostyle = 0; |
1162 | #endif | 1161 | #endif |
1163 | 1162 | ||
1164 | // Widget style | 1163 | // Widget style |
1165 | QString style = config.readEntry( "Style", "FlatStyle" ); | 1164 | QString style = config.readEntry( "Style", "FlatStyle" ); |
1166 | 1165 | ||
1167 | // don't set a custom style | 1166 | // don't set a custom style |
1168 | if ( nostyle & Opie::Force_Style ) | 1167 | if ( nostyle & Opie::Force_Style ) |
1169 | style = "FlatStyle"; | 1168 | style = "FlatStyle"; |
1170 | 1169 | ||
1171 | internalSetStyle ( style ); | 1170 | internalSetStyle ( style ); |
1172 | 1171 | ||
1173 | // Colors - from /etc/colors/Liquid.scheme | 1172 | // Colors - from /etc/colors/Liquid.scheme |
1174 | QColor bgcolor( config.readEntry( "Background", "#E0E0E0" ) ); | 1173 | QColor bgcolor( config.readEntry( "Background", "#E0E0E0" ) ); |
1175 | QColor btncolor( config.readEntry( "Button", "#96c8fa" ) ); | 1174 | QColor btncolor( config.readEntry( "Button", "#96c8fa" ) ); |
1176 | QPalette pal( btncolor, bgcolor ); | 1175 | QPalette pal( btncolor, bgcolor ); |
1177 | QString color = config.readEntry( "Highlight", "#73adef" ); | 1176 | QString color = config.readEntry( "Highlight", "#73adef" ); |
1178 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); | 1177 | pal.setColor( QColorGroup::Highlight, QColor( color ) ); |
1179 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); | 1178 | color = config.readEntry( "HighlightedText", "#FFFFFF" ); |
1180 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); | 1179 | pal.setColor( QColorGroup::HighlightedText, QColor( color ) ); |
1181 | color = config.readEntry( "Text", "#000000" ); | 1180 | color = config.readEntry( "Text", "#000000" ); |
1182 | pal.setColor( QColorGroup::Text, QColor( color ) ); | 1181 | pal.setColor( QColorGroup::Text, QColor( color ) ); |
1183 | color = config.readEntry( "ButtonText", "#000000" ); | 1182 | color = config.readEntry( "ButtonText", "#000000" ); |
1184 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); | 1183 | pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor( color ) ); |
1185 | color = config.readEntry( "Base", "#FFFFFF" ); | 1184 | color = config.readEntry( "Base", "#FFFFFF" ); |
1186 | pal.setColor( QColorGroup::Base, QColor( color ) ); | 1185 | pal.setColor( QColorGroup::Base, QColor( color ) ); |
1187 | 1186 | ||
1188 | pal.setColor( QPalette::Disabled, QColorGroup::Text, | 1187 | pal.setColor( QPalette::Disabled, QColorGroup::Text, |
1189 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); | 1188 | pal.color( QPalette::Active, QColorGroup::Background ).dark() ); |
1190 | 1189 | ||
1191 | setPalette( pal, TRUE ); | 1190 | setPalette( pal, TRUE ); |
1192 | 1191 | ||
1193 | // Window Decoration | 1192 | // Window Decoration |
1194 | QString dec = config.readEntry( "Decoration", "Flat" ); | 1193 | QString dec = config.readEntry( "Decoration", "Flat" ); |
1195 | 1194 | ||
1196 | // don't set a custom deco | 1195 | // don't set a custom deco |
1197 | if ( nostyle & Opie::Force_Decoration ) | 1196 | if ( nostyle & Opie::Force_Decoration ) |
1198 | dec = ""; | 1197 | dec = ""; |
1199 | 1198 | ||
1200 | //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); | 1199 | //qDebug ( "Setting Deco: %s -- old %s (%d)", dec.latin1(), d-> decorationName.latin1(), nostyle); |
1201 | 1200 | ||
diff --git a/library/qpemenubar.cpp b/library/qpemenubar.cpp index 3e5bad5..1d8eff4 100644 --- a/library/qpemenubar.cpp +++ b/library/qpemenubar.cpp | |||
@@ -1,121 +1,120 @@ | |||
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 INCLUDE_MENUITEM_DEF | 21 | #define INCLUDE_MENUITEM_DEF |
22 | 22 | ||
23 | #include "qpemenubar.h" | 23 | #include "qpemenubar.h" |
24 | #include <qapplication.h> | 24 | #include <qapplication.h> |
25 | #include <qguardedptr.h> | ||
26 | #include <qtimer.h> | 25 | #include <qtimer.h> |
27 | 26 | ||
28 | 27 | ||
29 | class QMenuBarHack : public QMenuBar | 28 | class QMenuBarHack : public QMenuBar |
30 | { | 29 | { |
31 | public: | 30 | public: |
32 | int activeItem() const { return actItem; } | 31 | int activeItem() const { return actItem; } |
33 | 32 | ||
34 | void goodbye() | 33 | void goodbye() |
35 | { | 34 | { |
36 | activateItemAt(-1); | 35 | activateItemAt(-1); |
37 | for ( unsigned int i = 0; i < count(); i++ ) { | 36 | for ( unsigned int i = 0; i < count(); i++ ) { |
38 | QMenuItem *mi = findItem( idAt(i) ); | 37 | QMenuItem *mi = findItem( idAt(i) ); |
39 | if ( mi->popup() ) { | 38 | if ( mi->popup() ) { |
40 | mi->popup()->hide(); | 39 | mi->popup()->hide(); |
41 | } | 40 | } |
42 | } | 41 | } |
43 | } | 42 | } |
44 | }; | 43 | }; |
45 | 44 | ||
46 | 45 | ||
47 | // Sharp ROM compatibility | 46 | // Sharp ROM compatibility |
48 | void QPEMenuToolFocusManager::setMenukeyEnabled ( bool ) | 47 | void QPEMenuToolFocusManager::setMenukeyEnabled ( bool ) |
49 | { | 48 | { |
50 | } | 49 | } |
51 | int QPEMenuBar::getOldFocus ( ) | 50 | int QPEMenuBar::getOldFocus ( ) |
52 | { | 51 | { |
53 | return 0; | 52 | return 0; |
54 | } | 53 | } |
55 | 54 | ||
56 | QPEMenuToolFocusManager *QPEMenuToolFocusManager::me = 0; | 55 | QPEMenuToolFocusManager *QPEMenuToolFocusManager::me = 0; |
57 | 56 | ||
58 | QPEMenuToolFocusManager::QPEMenuToolFocusManager() : QObject() | 57 | QPEMenuToolFocusManager::QPEMenuToolFocusManager() : QObject() |
59 | { | 58 | { |
60 | qApp->installEventFilter( this ); | 59 | qApp->installEventFilter( this ); |
61 | } | 60 | } |
62 | 61 | ||
63 | void QPEMenuToolFocusManager::addWidget( QWidget *w ) | 62 | void QPEMenuToolFocusManager::addWidget( QWidget *w ) |
64 | { | 63 | { |
65 | list.append( GuardedWidget(w) ); | 64 | list.append( GuardedWidget(w) ); |
66 | } | 65 | } |
67 | 66 | ||
68 | void QPEMenuToolFocusManager::removeWidget( QWidget *w ) | 67 | void QPEMenuToolFocusManager::removeWidget( QWidget *w ) |
69 | { | 68 | { |
70 | list.remove( GuardedWidget(w) ); | 69 | list.remove( GuardedWidget(w) ); |
71 | } | 70 | } |
72 | 71 | ||
73 | void QPEMenuToolFocusManager::setActive( bool a ) | 72 | void QPEMenuToolFocusManager::setActive( bool a ) |
74 | { | 73 | { |
75 | if ( a ) { | 74 | if ( a ) { |
76 | oldFocus = qApp->focusWidget(); | 75 | oldFocus = qApp->focusWidget(); |
77 | QValueList<GuardedWidget>::Iterator it; | 76 | QValueList<GuardedWidget>::Iterator it; |
78 | it = list.begin(); | 77 | it = list.begin(); |
79 | while ( it != list.end() ) { | 78 | while ( it != list.end() ) { |
80 | QWidget *w = (*it); | 79 | QWidget *w = (*it); |
81 | if ( w && w->isEnabled() && w->isVisible() && | 80 | if ( w && w->isEnabled() && w->isVisible() && |
82 | w->topLevelWidget() == qApp->activeWindow() ) { | 81 | w->topLevelWidget() == qApp->activeWindow() ) { |
83 | setFocus( w ); | 82 | setFocus( w ); |
84 | return; | 83 | return; |
85 | } | 84 | } |
86 | ++it; | 85 | ++it; |
87 | } | 86 | } |
88 | } else { | 87 | } else { |
89 | if ( inFocus ) { | 88 | if ( inFocus ) { |
90 | if ( inFocus->inherits( "QMenuBar" ) ) | 89 | if ( inFocus->inherits( "QMenuBar" ) ) |
91 | ((QMenuBarHack *)(QWidget *)inFocus)->goodbye(); | 90 | ((QMenuBarHack *)(QWidget *)inFocus)->goodbye(); |
92 | if ( inFocus->hasFocus() ) { | 91 | if ( inFocus->hasFocus() ) { |
93 | if ( oldFocus && oldFocus->isVisible() && oldFocus->isEnabled() ) { | 92 | if ( oldFocus && oldFocus->isVisible() && oldFocus->isEnabled() ) { |
94 | oldFocus->setFocus(); | 93 | oldFocus->setFocus(); |
95 | } else { | 94 | } else { |
96 | inFocus->clearFocus(); | 95 | inFocus->clearFocus(); |
97 | } | 96 | } |
98 | } | 97 | } |
99 | } | 98 | } |
100 | inFocus = 0; | 99 | inFocus = 0; |
101 | oldFocus = 0; | 100 | oldFocus = 0; |
102 | } | 101 | } |
103 | } | 102 | } |
104 | 103 | ||
105 | bool QPEMenuToolFocusManager::isActive() const | 104 | bool QPEMenuToolFocusManager::isActive() const |
106 | { | 105 | { |
107 | return !inFocus.isNull(); | 106 | return !inFocus.isNull(); |
108 | } | 107 | } |
109 | 108 | ||
110 | void QPEMenuToolFocusManager::moveFocus( bool next ) | 109 | void QPEMenuToolFocusManager::moveFocus( bool next ) |
111 | { | 110 | { |
112 | if ( !isActive() ) | 111 | if ( !isActive() ) |
113 | return; | 112 | return; |
114 | 113 | ||
115 | int n = list.count(); | 114 | int n = list.count(); |
116 | QValueList<GuardedWidget>::Iterator it; | 115 | QValueList<GuardedWidget>::Iterator it; |
117 | it = list.find( inFocus ); | 116 | it = list.find( inFocus ); |
118 | if ( it == list.end() ) | 117 | if ( it == list.end() ) |
119 | it = list.begin(); | 118 | it = list.begin(); |
120 | while ( --n ) { | 119 | while ( --n ) { |
121 | if ( next ) { | 120 | if ( next ) { |
diff --git a/library/qpestyle.cpp b/library/qpestyle.cpp index 665910c..b61ada4 100644 --- a/library/qpestyle.cpp +++ b/library/qpestyle.cpp | |||
@@ -1,121 +1,118 @@ | |||
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 "qpestyle.h" | 21 | #include "qpestyle.h" |
22 | #include <qpe/qpeapplication.h> | ||
23 | #include <qpushbutton.h> | ||
24 | 22 | ||
25 | #include <qpainter.h> | ||
26 | 23 | ||
27 | #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) | 24 | #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) |
28 | 25 | ||
29 | #if QT_VERSION >= 300 | 26 | #if QT_VERSION >= 300 |
30 | 27 | ||
31 | #include <qdrawutil.h> | 28 | #include <qdrawutil.h> |
32 | #include <qcombobox.h> | 29 | #include <qcombobox.h> |
33 | #include <qtabbar.h> | 30 | #include <qtabbar.h> |
34 | 31 | ||
35 | QPEStyle::QPEStyle() | 32 | QPEStyle::QPEStyle() |
36 | { | 33 | { |
37 | } | 34 | } |
38 | 35 | ||
39 | QPEStyle::~QPEStyle() | 36 | QPEStyle::~QPEStyle() |
40 | { | 37 | { |
41 | } | 38 | } |
42 | 39 | ||
43 | void QPEStyle::drawPrimitive( PrimitiveElement pe, QPainter *p, const QRect &r, | 40 | void QPEStyle::drawPrimitive( PrimitiveElement pe, QPainter *p, const QRect &r, |
44 | const QColorGroup &cg, SFlags flags, const QStyleOption &data) const | 41 | const QColorGroup &cg, SFlags flags, const QStyleOption &data) const |
45 | { | 42 | { |
46 | switch ( pe ) { | 43 | switch ( pe ) { |
47 | case PE_ButtonTool: | 44 | case PE_ButtonTool: |
48 | { | 45 | { |
49 | QColorGroup mycg = cg; | 46 | QColorGroup mycg = cg; |
50 | if ( flags & Style_On ) { | 47 | if ( flags & Style_On ) { |
51 | QBrush fill( cg.mid(), Dense4Pattern ); | 48 | QBrush fill( cg.mid(), Dense4Pattern ); |
52 | mycg.setBrush( QColorGroup::Button, fill ); | 49 | mycg.setBrush( QColorGroup::Button, fill ); |
53 | } | 50 | } |
54 | drawPrimitive( PE_ButtonBevel, p, r, mycg, flags, data ); | 51 | drawPrimitive( PE_ButtonBevel, p, r, mycg, flags, data ); |
55 | break; | 52 | break; |
56 | } | 53 | } |
57 | case PE_ButtonCommand: | 54 | case PE_ButtonCommand: |
58 | case PE_ButtonDefault: | 55 | case PE_ButtonDefault: |
59 | case PE_ButtonBevel: | 56 | case PE_ButtonBevel: |
60 | case PE_HeaderSection: | 57 | case PE_HeaderSection: |
61 | { | 58 | { |
62 | QPen oldPen = p->pen(); | 59 | QPen oldPen = p->pen(); |
63 | p->fillRect( r.x()+1, r.y()+1, r.width()-2, r.height()-2, cg.brush(QColorGroup::Button) ); | 60 | p->fillRect( r.x()+1, r.y()+1, r.width()-2, r.height()-2, cg.brush(QColorGroup::Button) ); |
64 | 61 | ||
65 | int x2 = r.right(); | 62 | int x2 = r.right(); |
66 | int y2 = r.bottom(); | 63 | int y2 = r.bottom(); |
67 | 64 | ||
68 | if ( flags & (Style_Sunken | Style_Down | Style_On) ) | 65 | if ( flags & (Style_Sunken | Style_Down | Style_On) ) |
69 | p->setPen( cg.dark() ); | 66 | p->setPen( cg.dark() ); |
70 | else | 67 | else |
71 | p->setPen( cg.light() ); | 68 | p->setPen( cg.light() ); |
72 | p->drawLine( r.x(), r.y()+1, r.x(), y2-1 ); | 69 | p->drawLine( r.x(), r.y()+1, r.x(), y2-1 ); |
73 | p->drawLine( r.x()+1, r.y(), x2-1, r.y() ); | 70 | p->drawLine( r.x()+1, r.y(), x2-1, r.y() ); |
74 | 71 | ||
75 | if ( flags & (Style_Sunken | Style_Down | Style_On) ) | 72 | if ( flags & (Style_Sunken | Style_Down | Style_On) ) |
76 | p->setPen( cg.light() ); | 73 | p->setPen( cg.light() ); |
77 | else | 74 | else |
78 | p->setPen( cg.dark() ); | 75 | p->setPen( cg.dark() ); |
79 | p->drawLine( x2, r.y()+1, x2, y2-1 ); | 76 | p->drawLine( x2, r.y()+1, x2, y2-1 ); |
80 | p->drawLine( r.x()+1, y2, x2-1, y2 ); | 77 | p->drawLine( r.x()+1, y2, x2-1, y2 ); |
81 | p->setPen( oldPen ); | 78 | p->setPen( oldPen ); |
82 | break; | 79 | break; |
83 | } | 80 | } |
84 | case PE_FocusRect: | 81 | case PE_FocusRect: |
85 | break; | 82 | break; |
86 | case PE_Indicator: | 83 | case PE_Indicator: |
87 | { | 84 | { |
88 | QColorGroup mycg( cg ); | 85 | QColorGroup mycg( cg ); |
89 | QBrush fill; | 86 | QBrush fill; |
90 | if ( flags & Style_Down ) | 87 | if ( flags & Style_Down ) |
91 | fill = cg.brush( QColorGroup::Button ); | 88 | fill = cg.brush( QColorGroup::Button ); |
92 | else | 89 | else |
93 | fill = cg.brush( (flags&Style_Enabled) ? QColorGroup::Base : QColorGroup::Background ); | 90 | fill = cg.brush( (flags&Style_Enabled) ? QColorGroup::Base : QColorGroup::Background ); |
94 | mycg.setBrush( QColorGroup::Button, fill ); | 91 | mycg.setBrush( QColorGroup::Button, fill ); |
95 | if ( flags&Style_Enabled ) | 92 | if ( flags&Style_Enabled ) |
96 | flags |= Style_Sunken; | 93 | flags |= Style_Sunken; |
97 | drawPrimitive( PE_ButtonBevel, p, r, mycg, flags ); | 94 | drawPrimitive( PE_ButtonBevel, p, r, mycg, flags ); |
98 | if ( flags & Style_On ) { | 95 | if ( flags & Style_On ) { |
99 | QPointArray a( 7*2 ); | 96 | QPointArray a( 7*2 ); |
100 | int i, xx, yy; | 97 | int i, xx, yy; |
101 | xx = r.x()+3; | 98 | xx = r.x()+3; |
102 | yy = r.y()+5; | 99 | yy = r.y()+5; |
103 | for ( i=0; i<3; i++ ) { | 100 | for ( i=0; i<3; i++ ) { |
104 | a.setPoint( 2*i, xx, yy ); | 101 | a.setPoint( 2*i, xx, yy ); |
105 | a.setPoint( 2*i+1, xx, yy+2 ); | 102 | a.setPoint( 2*i+1, xx, yy+2 ); |
106 | xx++; yy++; | 103 | xx++; yy++; |
107 | } | 104 | } |
108 | yy -= 2; | 105 | yy -= 2; |
109 | for ( i=3; i<7; i++ ) { | 106 | for ( i=3; i<7; i++ ) { |
110 | a.setPoint( 2*i, xx, yy ); | 107 | a.setPoint( 2*i, xx, yy ); |
111 | a.setPoint( 2*i+1, xx, yy+2 ); | 108 | a.setPoint( 2*i+1, xx, yy+2 ); |
112 | xx++; yy--; | 109 | xx++; yy--; |
113 | } | 110 | } |
114 | if ( flags & Style_NoChange ) { | 111 | if ( flags & Style_NoChange ) { |
115 | p->setPen( mycg.dark() ); | 112 | p->setPen( mycg.dark() ); |
116 | } else { | 113 | } else { |
117 | p->setPen( mycg.text() ); | 114 | p->setPen( mycg.text() ); |
118 | } | 115 | } |
119 | p->drawLineSegments( a ); | 116 | p->drawLineSegments( a ); |
120 | } | 117 | } |
121 | break; | 118 | break; |
diff --git a/library/qpetoolbar.cpp b/library/qpetoolbar.cpp index 7f95eda..bd2c9b7 100644 --- a/library/qpetoolbar.cpp +++ b/library/qpetoolbar.cpp | |||
@@ -1,52 +1,50 @@ | |||
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 "qpetoolbar.h" | 21 | #include "qpetoolbar.h" |
22 | #include "qpemenubar.h" | ||
23 | #include <qtoolbutton.h> | ||
24 | 22 | ||
25 | /*! | 23 | /*! |
26 | \class QPEToolBar qpemenubar.h | 24 | \class QPEToolBar qpemenubar.h |
27 | \brief The QPEToolBar class is obsolete. Use QToolBar instead. | 25 | \brief The QPEToolBar class is obsolete. Use QToolBar instead. |
28 | 26 | ||
29 | \obsolete | 27 | \obsolete |
30 | 28 | ||
31 | The QPEToolBar class is obsolete. Use QToolBar instead. | 29 | The QPEToolBar class is obsolete. Use QToolBar instead. |
32 | 30 | ||
33 | \sa QToolBar | 31 | \sa QToolBar |
34 | */ | 32 | */ |
35 | 33 | ||
36 | /*! | 34 | /*! |
37 | Constructs a QPEToolBar just as you would construct | 35 | Constructs a QPEToolBar just as you would construct |
38 | a QToolBar, passing \a parent and \a name. | 36 | a QToolBar, passing \a parent and \a name. |
39 | */ | 37 | */ |
40 | QPEToolBar::QPEToolBar( QMainWindow *parent, const char *name ) | 38 | QPEToolBar::QPEToolBar( QMainWindow *parent, const char *name ) |
41 | : QToolBar( parent, name ) | 39 | : QToolBar( parent, name ) |
42 | { | 40 | { |
43 | } | 41 | } |
44 | 42 | ||
45 | /*! | 43 | /*! |
46 | \internal | 44 | \internal |
47 | */ | 45 | */ |
48 | void QPEToolBar::childEvent( QChildEvent *e ) | 46 | void QPEToolBar::childEvent( QChildEvent *e ) |
49 | { | 47 | { |
50 | QToolBar::childEvent( e ); | 48 | QToolBar::childEvent( e ); |
51 | } | 49 | } |
52 | 50 | ||
diff --git a/library/qt_override.cpp b/library/qt_override.cpp index df5a419..4d1f475 100644 --- a/library/qt_override.cpp +++ b/library/qt_override.cpp | |||
@@ -1,100 +1,98 @@ | |||
1 | 1 | ||
2 | #include <qpe/qpeapplication.h> | 2 | #include <qpe/qpeapplication.h> |
3 | #include <qwsdecoration_qws.h> | ||
4 | #include <qcommonstyle.h> | ||
5 | #include <qfontdatabase.h> | 3 | #include <qfontdatabase.h> |
6 | 4 | ||
7 | #include <unistd.h> | 5 | #include <unistd.h> |
8 | #include <stdlib.h> | 6 | #include <stdlib.h> |
9 | #include <stdio.h> | 7 | #include <stdio.h> |
10 | #include <limits.h> | 8 | #include <limits.h> |
11 | #include <sys/param.h> // for toolchains with old libc headers | 9 | #include <sys/param.h> // for toolchains with old libc headers |
12 | 10 | ||
13 | #include "qt_override_p.h" | 11 | #include "qt_override_p.h" |
14 | 12 | ||
15 | #if QT_VERSION > 233 | 13 | #if QT_VERSION > 233 |
16 | 14 | ||
17 | struct color_fix_t { | 15 | struct color_fix_t { |
18 | char *m_app; | 16 | char *m_app; |
19 | char *m_class; | 17 | char *m_class; |
20 | char *m_name; | 18 | char *m_name; |
21 | QColorGroup::ColorRole m_set; | 19 | QColorGroup::ColorRole m_set; |
22 | QColorGroup::ColorRole m_get; | 20 | QColorGroup::ColorRole m_get; |
23 | }; | 21 | }; |
24 | 22 | ||
25 | #ifndef OPIE_NO_OVERRIDE_QT | 23 | #ifndef OPIE_NO_OVERRIDE_QT |
26 | 24 | ||
27 | static const color_fix_t apps_that_need_special_colors [] = { | 25 | static const color_fix_t apps_that_need_special_colors [] = { |
28 | { "HancomMobileWord", "HTextEdit", 0, QColorGroup::Background, QColorGroup::Base }, | 26 | { "HancomMobileWord", "HTextEdit", 0, QColorGroup::Background, QColorGroup::Base }, |
29 | { "neocal", "Display", 0, QColorGroup::Background, QColorGroup::Base }, | 27 | { "neocal", "Display", 0, QColorGroup::Background, QColorGroup::Base }, |
30 | 28 | ||
31 | { 0, 0, 0, QColorGroup::Base, QColorGroup::Base } | 29 | { 0, 0, 0, QColorGroup::Base, QColorGroup::Base } |
32 | }; | 30 | }; |
33 | 31 | ||
34 | static const char * const apps_that_need_pointsizes_times_10 [] = { | 32 | static const char * const apps_that_need_pointsizes_times_10 [] = { |
35 | "HancomMobileWord", | 33 | "HancomMobileWord", |
36 | "hancomsheet", | 34 | "hancomsheet", |
37 | "HancomPresenterViewer", | 35 | "HancomPresenterViewer", |
38 | 36 | ||
39 | 0 | 37 | 0 |
40 | }; | 38 | }; |
41 | 39 | ||
42 | 40 | ||
43 | 41 | ||
44 | 42 | ||
45 | int Opie::force_appearance = 0; | 43 | int Opie::force_appearance = 0; |
46 | 44 | ||
47 | 45 | ||
48 | // Return the *real* name of the binary - not just a quick guess | 46 | // Return the *real* name of the binary - not just a quick guess |
49 | // by looking at argv [0] (which could be anything) | 47 | // by looking at argv [0] (which could be anything) |
50 | 48 | ||
51 | static void binaryNameFree ( ) | 49 | static void binaryNameFree ( ) |
52 | { | 50 | { |
53 | ::free ((void *) Opie::binaryName ( )); // we need to cast away the const here | 51 | ::free ((void *) Opie::binaryName ( )); // we need to cast away the const here |
54 | } | 52 | } |
55 | 53 | ||
56 | const char *Opie::binaryName ( ) | 54 | const char *Opie::binaryName ( ) |
57 | { | 55 | { |
58 | static const char *appname = 0; | 56 | static const char *appname = 0; |
59 | 57 | ||
60 | if ( !appname ) { | 58 | if ( !appname ) { |
61 | char dst [PATH_MAX + 1]; | 59 | char dst [PATH_MAX + 1]; |
62 | int l = ::readlink ( "/proc/self/exe", dst, PATH_MAX ); | 60 | int l = ::readlink ( "/proc/self/exe", dst, PATH_MAX ); |
63 | 61 | ||
64 | if ( l <= 0 ) | 62 | if ( l <= 0 ) |
65 | l = 0; | 63 | l = 0; |
66 | 64 | ||
67 | dst [l] = 0; | 65 | dst [l] = 0; |
68 | const char *b = ::strrchr ( dst, '/' ); | 66 | const char *b = ::strrchr ( dst, '/' ); |
69 | appname = ::strdup ( b ? b + 1 : dst ); | 67 | appname = ::strdup ( b ? b + 1 : dst ); |
70 | 68 | ||
71 | ::atexit ( binaryNameFree ); | 69 | ::atexit ( binaryNameFree ); |
72 | } | 70 | } |
73 | return appname; | 71 | return appname; |
74 | } | 72 | } |
75 | 73 | ||
76 | #else | 74 | #else |
77 | int Opie::force_appearance = 0; | 75 | int Opie::force_appearance = 0; |
78 | #endif | 76 | #endif |
79 | 77 | ||
80 | // Fix for a toolchain incompatibility (binaries compiled with | 78 | // Fix for a toolchain incompatibility (binaries compiled with |
81 | // old tcs using shared libs compiled with newer tcs) | 79 | // old tcs using shared libs compiled with newer tcs) |
82 | 80 | ||
83 | extern "C" { | 81 | extern "C" { |
84 | 82 | ||
85 | extern void __gmon_start__ ( ) __attribute__(( weak )); | 83 | extern void __gmon_start__ ( ) __attribute__(( weak )); |
86 | 84 | ||
87 | extern void __gmon_start__ ( ) | 85 | extern void __gmon_start__ ( ) |
88 | { | 86 | { |
89 | } | 87 | } |
90 | 88 | ||
91 | } | 89 | } |
92 | 90 | ||
93 | 91 | ||
94 | // Fix for apps, that use QPainter::eraseRect() which doesn't work with styles | 92 | // Fix for apps, that use QPainter::eraseRect() which doesn't work with styles |
95 | // that set a background pixmap (it would be easier to fix eraseRect(), but | 93 | // that set a background pixmap (it would be easier to fix eraseRect(), but |
96 | // TT made it an inline ...) | 94 | // TT made it an inline ...) |
97 | 95 | ||
98 | void QPEApplication::polish ( QWidget *w ) | 96 | void QPEApplication::polish ( QWidget *w ) |
99 | { | 97 | { |
100 | #ifndef OPIE_NO_OVERRIDE_QT | 98 | #ifndef OPIE_NO_OVERRIDE_QT |
diff --git a/library/resource.cpp b/library/resource.cpp index f70658d..cfa0d26 100644 --- a/library/resource.cpp +++ b/library/resource.cpp | |||
@@ -1,125 +1,122 @@ | |||
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 <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
23 | #include "resource.h" | 23 | #include "resource.h" |
24 | #include "mimetype.h" | 24 | #include "mimetype.h" |
25 | #include <qdir.h> | 25 | #include <qdir.h> |
26 | #include <qfile.h> | ||
27 | #include <qregexp.h> | ||
28 | #include <qpixmapcache.h> | 26 | #include <qpixmapcache.h> |
29 | #include <qpainter.h> | ||
30 | 27 | ||
31 | // this namespace is just a workaround for a gcc bug | 28 | // this namespace is just a workaround for a gcc bug |
32 | // gcc exports inline functions in the generated file | 29 | // gcc exports inline functions in the generated file |
33 | // inlinepics_p.h | 30 | // inlinepics_p.h |
34 | 31 | ||
35 | namespace { | 32 | namespace { |
36 | #include "inlinepics_p.h" | 33 | #include "inlinepics_p.h" |
37 | } | 34 | } |
38 | 35 | ||
39 | static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET"); | 36 | static bool g_notUseSet = ::getenv("OVERWRITE_ICON_SET"); |
40 | 37 | ||
41 | /*! | 38 | /*! |
42 | \class Resource resource.h | 39 | \class Resource resource.h |
43 | \brief The Resource class provides access to named resources. | 40 | \brief The Resource class provides access to named resources. |
44 | 41 | ||
45 | The resources may be provided from files or other sources. | 42 | The resources may be provided from files or other sources. |
46 | 43 | ||
47 | The allSounds() function returns a list of all the sounds available. | 44 | The allSounds() function returns a list of all the sounds available. |
48 | A particular sound can be searched for using findSound(). | 45 | A particular sound can be searched for using findSound(). |
49 | 46 | ||
50 | Images can be loaded with loadImage(), loadPixmap(), loadBitmap() | 47 | Images can be loaded with loadImage(), loadPixmap(), loadBitmap() |
51 | and loadIconSet(). | 48 | and loadIconSet(). |
52 | 49 | ||
53 | \ingroup qtopiaemb | 50 | \ingroup qtopiaemb |
54 | */ | 51 | */ |
55 | 52 | ||
56 | /*! | 53 | /*! |
57 | \fn Resource::Resource() | 54 | \fn Resource::Resource() |
58 | \internal | 55 | \internal |
59 | */ | 56 | */ |
60 | 57 | ||
61 | /*! | 58 | /*! |
62 | Returns the QPixmap called \a pix. You should avoid including | 59 | Returns the QPixmap called \a pix. You should avoid including |
63 | any filename type extension (e.g. .png, .xpm). | 60 | any filename type extension (e.g. .png, .xpm). |
64 | */ | 61 | */ |
65 | QPixmap Resource::loadPixmap( const QString &pix ) | 62 | QPixmap Resource::loadPixmap( const QString &pix ) |
66 | { | 63 | { |
67 | QPixmap pm; | 64 | QPixmap pm; |
68 | QString key="QPE_"+pix; | 65 | QString key="QPE_"+pix; |
69 | if ( !QPixmapCache::find(key,pm) ) { | 66 | if ( !QPixmapCache::find(key,pm) ) { |
70 | pm.convertFromImage(loadImage(pix)); | 67 | pm.convertFromImage(loadImage(pix)); |
71 | QPixmapCache::insert(key,pm); | 68 | QPixmapCache::insert(key,pm); |
72 | } | 69 | } |
73 | return pm; | 70 | return pm; |
74 | } | 71 | } |
75 | 72 | ||
76 | /*! | 73 | /*! |
77 | Returns the QBitmap called \a pix. You should avoid including | 74 | Returns the QBitmap called \a pix. You should avoid including |
78 | any filename type extension (e.g. .png, .xpm). | 75 | any filename type extension (e.g. .png, .xpm). |
79 | */ | 76 | */ |
80 | QBitmap Resource::loadBitmap( const QString &pix ) | 77 | QBitmap Resource::loadBitmap( const QString &pix ) |
81 | { | 78 | { |
82 | QBitmap bm; | 79 | QBitmap bm; |
83 | bm = loadPixmap(pix); | 80 | bm = loadPixmap(pix); |
84 | return bm; | 81 | return bm; |
85 | } | 82 | } |
86 | 83 | ||
87 | /*! | 84 | /*! |
88 | Returns the filename of a pixmap called \a pix. You should avoid including | 85 | Returns the filename of a pixmap called \a pix. You should avoid including |
89 | any filename type extension (e.g. .png, .xpm). | 86 | any filename type extension (e.g. .png, .xpm). |
90 | 87 | ||
91 | Normally you will use loadPixmap() rather than this function. | 88 | Normally you will use loadPixmap() rather than this function. |
92 | */ | 89 | */ |
93 | QString Resource::findPixmap( const QString &pix ) | 90 | QString Resource::findPixmap( const QString &pix ) |
94 | { | 91 | { |
95 | QString picsPath = QPEApplication::qpeDir() + "pics/"; | 92 | QString picsPath = QPEApplication::qpeDir() + "pics/"; |
96 | 93 | ||
97 | QString f; | 94 | QString f; |
98 | 95 | ||
99 | // Common case optimizations... | 96 | // Common case optimizations... |
100 | f = picsPath + pix + ".png"; | 97 | f = picsPath + pix + ".png"; |
101 | if ( QFile( f ).exists() ) | 98 | if ( QFile( f ).exists() ) |
102 | return f; | 99 | return f; |
103 | f = picsPath + pix + ".xpm"; | 100 | f = picsPath + pix + ".xpm"; |
104 | if ( QFile( f ).exists() ) | 101 | if ( QFile( f ).exists() ) |
105 | return f; | 102 | return f; |
106 | 103 | ||
107 | 104 | ||
108 | // All formats... | 105 | // All formats... |
109 | QStrList fileFormats = QImageIO::inputFormats(); | 106 | QStrList fileFormats = QImageIO::inputFormats(); |
110 | QString ff = fileFormats.first(); | 107 | QString ff = fileFormats.first(); |
111 | while ( fileFormats.current() ) { | 108 | while ( fileFormats.current() ) { |
112 | QStringList exts = MimeType("image/"+ff.lower()).extensions(); | 109 | QStringList exts = MimeType("image/"+ff.lower()).extensions(); |
113 | for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) { | 110 | for ( QStringList::ConstIterator it = exts.begin(); it!=exts.end(); ++it ) { |
114 | QString f = picsPath + pix + "." + *it; | 111 | QString f = picsPath + pix + "." + *it; |
115 | if ( QFile(f).exists() ) | 112 | if ( QFile(f).exists() ) |
116 | return f; | 113 | return f; |
117 | } | 114 | } |
118 | ff = fileFormats.next(); | 115 | ff = fileFormats.next(); |
119 | } | 116 | } |
120 | 117 | ||
121 | // Finally, no (or existing) extension... | 118 | // Finally, no (or existing) extension... |
122 | if ( QFile( picsPath + pix ).exists() ) | 119 | if ( QFile( picsPath + pix ).exists() ) |
123 | return picsPath + pix; | 120 | return picsPath + pix; |
124 | 121 | ||
125 | //qDebug("Cannot find pixmap: %s", pix.latin1()); | 122 | //qDebug("Cannot find pixmap: %s", pix.latin1()); |
diff --git a/library/sound.cpp b/library/sound.cpp index 5b67995..ee2aabc 100644 --- a/library/sound.cpp +++ b/library/sound.cpp | |||
@@ -1,133 +1,131 @@ | |||
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 | 31 | ||
32 | #ifndef QT_NO_SOUND | 32 | #ifndef QT_NO_SOUND |
33 | #include <sys/soundcard.h> | 33 | #include <sys/soundcard.h> |
34 | #endif | 34 | #endif |
35 | 35 | ||
36 | #include "config.h" | ||
37 | #include <qmessagebox.h> | ||
38 | #ifndef QT_NO_SOUND | 36 | #ifndef QT_NO_SOUND |
39 | static int WAVsoundDuration(const QString& filename) | 37 | static int WAVsoundDuration(const QString& filename) |
40 | { | 38 | { |
41 | // bad solution | 39 | // bad solution |
42 | 40 | ||
43 | // most of this is copied from qsoundqss.cpp | 41 | // most of this is copied from qsoundqss.cpp |
44 | 42 | ||
45 | QFile input(filename); | 43 | QFile input(filename); |
46 | if ( !input.open(IO_ReadOnly) ) | 44 | if ( !input.open(IO_ReadOnly) ) |
47 | return 0; | 45 | return 0; |
48 | 46 | ||
49 | struct QRiffChunk { | 47 | struct QRiffChunk { |
50 | char id[4]; | 48 | char id[4]; |
51 | Q_UINT32 size; | 49 | Q_UINT32 size; |
52 | char data[4/*size*/]; | 50 | char data[4/*size*/]; |
53 | } chunk; | 51 | } chunk; |
54 | 52 | ||
55 | struct { | 53 | struct { |
56 | Q_INT16 formatTag; | 54 | Q_INT16 formatTag; |
57 | Q_INT16 channels; | 55 | Q_INT16 channels; |
58 | Q_INT32 samplesPerSec; | 56 | Q_INT32 samplesPerSec; |
59 | Q_INT32 avgBytesPerSec; | 57 | Q_INT32 avgBytesPerSec; |
60 | Q_INT16 blockAlign; | 58 | Q_INT16 blockAlign; |
61 | Q_INT16 wBitsPerSample; | 59 | Q_INT16 wBitsPerSample; |
62 | } chunkdata; | 60 | } chunkdata; |
63 | 61 | ||
64 | int total = 0; | 62 | int total = 0; |
65 | 63 | ||
66 | while(1) { | 64 | while(1) { |
67 | // Keep reading chunks... | 65 | // Keep reading chunks... |
68 | const int n = sizeof(chunk)-sizeof(chunk.data); | 66 | const int n = sizeof(chunk)-sizeof(chunk.data); |
69 | if ( input.readBlock((char*)&chunk,n) != n ) | 67 | if ( input.readBlock((char*)&chunk,n) != n ) |
70 | break; | 68 | break; |
71 | if ( qstrncmp(chunk.id,"data",4) == 0 ) { | 69 | if ( qstrncmp(chunk.id,"data",4) == 0 ) { |
72 | total += chunkdata.avgBytesPerSec ? | 70 | total += chunkdata.avgBytesPerSec ? |
73 | chunk.size * 1000 / chunkdata.avgBytesPerSec : 0; | 71 | chunk.size * 1000 / chunkdata.avgBytesPerSec : 0; |
74 | //qDebug("%d bytes of PCM (%dms)", chunk.size,chunkdata.avgBytesPerSec ? chunk.size * 1000 / chunkdata.avgBytesPerSec : 0); | 72 | //qDebug("%d bytes of PCM (%dms)", chunk.size,chunkdata.avgBytesPerSec ? chunk.size * 1000 / chunkdata.avgBytesPerSec : 0); |
75 | input.at(input.at()+chunk.size-4); | 73 | input.at(input.at()+chunk.size-4); |
76 | } else if ( qstrncmp(chunk.id,"RIFF",4) == 0 ) { | 74 | } else if ( qstrncmp(chunk.id,"RIFF",4) == 0 ) { |
77 | char d[4]; | 75 | char d[4]; |
78 | if ( input.readBlock(d,4) != 4 ) | 76 | if ( input.readBlock(d,4) != 4 ) |
79 | return 0; | 77 | return 0; |
80 | if ( qstrncmp(d,"WAVE",4) != 0 ) { | 78 | if ( qstrncmp(d,"WAVE",4) != 0 ) { |
81 | // skip | 79 | // skip |
82 | //qDebug("skip %.4s RIFF chunk",d); | 80 | //qDebug("skip %.4s RIFF chunk",d); |
83 | if ( chunk.size < 10000000 ) | 81 | if ( chunk.size < 10000000 ) |
84 | (void)input.at(input.at()+chunk.size-4); | 82 | (void)input.at(input.at()+chunk.size-4); |
85 | } | 83 | } |
86 | } else if ( qstrncmp(chunk.id,"fmt ",4) == 0 ) { | 84 | } else if ( qstrncmp(chunk.id,"fmt ",4) == 0 ) { |
87 | if ( input.readBlock((char*)&chunkdata,sizeof(chunkdata)) != sizeof(chunkdata) ) | 85 | if ( input.readBlock((char*)&chunkdata,sizeof(chunkdata)) != sizeof(chunkdata) ) |
88 | return 0; | 86 | return 0; |
89 | #define WAVE_FORMAT_PCM 1 | 87 | #define WAVE_FORMAT_PCM 1 |
90 | if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { | 88 | if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { |
91 | //qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); | 89 | //qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); |
92 | return 0; | 90 | return 0; |
93 | } | 91 | } |
94 | } else { | 92 | } else { |
95 | //qDebug("skip %.4s chunk",chunk.id); | 93 | //qDebug("skip %.4s chunk",chunk.id); |
96 | // ignored chunk | 94 | // ignored chunk |
97 | if ( chunk.size < 10000000 ) | 95 | if ( chunk.size < 10000000 ) |
98 | (void)input.at(input.at()+chunk.size); | 96 | (void)input.at(input.at()+chunk.size); |
99 | } | 97 | } |
100 | } | 98 | } |
101 | 99 | ||
102 | //qDebug("%dms",total); | 100 | //qDebug("%dms",total); |
103 | return total; | 101 | return total; |
104 | } | 102 | } |
105 | 103 | ||
106 | class SoundData : public QSound { | 104 | class SoundData : public QSound { |
107 | public: | 105 | public: |
108 | SoundData ( const QString& name ) : | 106 | SoundData ( const QString& name ) : |
109 | QSound ( Resource::findSound ( name )), | 107 | QSound ( Resource::findSound ( name )), |
110 | filename ( Resource::findSound ( name )) | 108 | filename ( Resource::findSound ( name )) |
111 | { | 109 | { |
112 | loopsleft=0; | 110 | loopsleft=0; |
113 | ms = WAVsoundDuration(filename); | 111 | ms = WAVsoundDuration(filename); |
114 | } | 112 | } |
115 | 113 | ||
116 | void playLoop ( int loopcnt = -1 ) | 114 | void playLoop ( int loopcnt = -1 ) |
117 | { | 115 | { |
118 | // needs server support | 116 | // needs server support |
119 | loopsleft = loopcnt; | 117 | loopsleft = loopcnt; |
120 | 118 | ||
121 | if ( ms ) | 119 | if ( ms ) |
122 | startTimer ( ms > 50 ? ms-50 : 0 ); // 50 for latency | 120 | startTimer ( ms > 50 ? ms-50 : 0 ); // 50 for latency |
123 | play ( ); | 121 | play ( ); |
124 | } | 122 | } |
125 | 123 | ||
126 | void timerEvent ( QTimerEvent *e ) | 124 | void timerEvent ( QTimerEvent *e ) |
127 | { | 125 | { |
128 | if ( loopsleft >= 0 ) { | 126 | if ( loopsleft >= 0 ) { |
129 | if ( --loopsleft <= 0 ) { | 127 | if ( --loopsleft <= 0 ) { |
130 | killTimer ( e-> timerId ( )); | 128 | killTimer ( e-> timerId ( )); |
131 | loopsleft = 0; | 129 | loopsleft = 0; |
132 | return; | 130 | return; |
133 | } | 131 | } |
diff --git a/library/storage.cpp b/library/storage.cpp index d98139b..0ea465b 100644 --- a/library/storage.cpp +++ b/library/storage.cpp | |||
@@ -1,141 +1,137 @@ | |||
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 | #include <qpe/custom.h> | ||
25 | 24 | ||
26 | #include <qfile.h> | ||
27 | #include <qtimer.h> | ||
28 | #include <qcopchannel_qws.h> | 25 | #include <qcopchannel_qws.h> |
29 | 26 | ||
30 | #include <stdio.h> | 27 | #include <stdio.h> |
31 | 28 | ||
32 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 29 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
33 | #include <sys/vfs.h> | 30 | #include <sys/vfs.h> |
34 | #include <mntent.h> | 31 | #include <mntent.h> |
35 | #endif | 32 | #endif |
36 | 33 | ||
37 | #ifdef Q_OS_MACX | 34 | #ifdef Q_OS_MACX |
38 | # include <sys/param.h> | 35 | # include <sys/param.h> |
39 | # include <sys/ucred.h> | 36 | # include <sys/ucred.h> |
40 | # include <sys/mount.h> | 37 | # include <sys/mount.h> |
41 | # include <stdio.h> // For strerror() | 38 | # include <stdio.h> // For strerror() |
42 | # include <errno.h> | 39 | # include <errno.h> |
43 | #endif /* Q_OS_MACX */ | 40 | #endif /* Q_OS_MACX */ |
44 | 41 | ||
45 | #include <qstringlist.h> | ||
46 | 42 | ||
47 | // Shouldn't be here ! (eilers) | 43 | // Shouldn't be here ! (eilers) |
48 | // #include <sys/vfs.h> | 44 | // #include <sys/vfs.h> |
49 | // #include <mntent.h> | 45 | // #include <mntent.h> |
50 | 46 | ||
51 | 47 | ||
52 | static bool isCF(const QString& m) | 48 | static bool isCF(const QString& m) |
53 | { | 49 | { |
54 | 50 | ||
55 | #ifndef Q_OS_MACX | 51 | #ifndef Q_OS_MACX |
56 | FILE* f = fopen("/var/run/stab", "r"); | 52 | FILE* f = fopen("/var/run/stab", "r"); |
57 | if (!f) f = fopen("/var/state/pcmcia/stab", "r"); | 53 | if (!f) f = fopen("/var/state/pcmcia/stab", "r"); |
58 | if (!f) f = fopen("/var/lib/pcmcia/stab", "r"); | 54 | if (!f) f = fopen("/var/lib/pcmcia/stab", "r"); |
59 | if ( f ) | 55 | if ( f ) |
60 | { | 56 | { |
61 | char line[1024]; | 57 | char line[1024]; |
62 | char devtype[80]; | 58 | char devtype[80]; |
63 | char devname[80]; | 59 | char devname[80]; |
64 | while ( fgets( line, 1024, f ) ) | 60 | while ( fgets( line, 1024, f ) ) |
65 | { | 61 | { |
66 | // 0 ide ide-cs 0 hda 3 0 | 62 | // 0 ide ide-cs 0 hda 3 0 |
67 | if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 ) | 63 | if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 ) |
68 | { | 64 | { |
69 | if ( QString(devtype) == "ide" && m.find(devname)>0 ) | 65 | if ( QString(devtype) == "ide" && m.find(devname)>0 ) |
70 | { | 66 | { |
71 | fclose(f); | 67 | fclose(f); |
72 | return TRUE; | 68 | return TRUE; |
73 | } | 69 | } |
74 | } | 70 | } |
75 | } | 71 | } |
76 | fclose(f); | 72 | fclose(f); |
77 | } | 73 | } |
78 | #endif /* Q_OS_MACX */ | 74 | #endif /* Q_OS_MACX */ |
79 | return FALSE; | 75 | return FALSE; |
80 | } | 76 | } |
81 | 77 | ||
82 | /*! \class StorageInfo storage.h | 78 | /*! \class StorageInfo storage.h |
83 | \brief The StorageInfo class describes the disks mounted on the file system. | 79 | \brief The StorageInfo class describes the disks mounted on the file system. |
84 | 80 | ||
85 | This class provides access to the mount information for the Linux | 81 | This class provides access to the mount information for the Linux |
86 | filesystem. Each mount point is represented by the FileSystem class. | 82 | filesystem. Each mount point is represented by the FileSystem class. |
87 | To ensure this class has the most up to date size information, call | 83 | To ensure this class has the most up to date size information, call |
88 | the update() method. Note that this will automatically be signaled | 84 | the update() method. Note that this will automatically be signaled |
89 | by the operating system when a disk has been mounted or unmounted. | 85 | by the operating system when a disk has been mounted or unmounted. |
90 | 86 | ||
91 | \ingroup qtopiaemb | 87 | \ingroup qtopiaemb |
92 | */ | 88 | */ |
93 | 89 | ||
94 | /*! Constructor that determines the current mount points of the filesystem. | 90 | /*! Constructor that determines the current mount points of the filesystem. |
95 | The standard \a parent parameters is passed on to QObject. | 91 | The standard \a parent parameters is passed on to QObject. |
96 | */ | 92 | */ |
97 | StorageInfo::StorageInfo( QObject *parent ) | 93 | StorageInfo::StorageInfo( QObject *parent ) |
98 | : QObject( parent ) | 94 | : QObject( parent ) |
99 | { | 95 | { |
100 | mFileSystems.setAutoDelete( TRUE ); | 96 | mFileSystems.setAutoDelete( TRUE ); |
101 | channel = new QCopChannel( "QPE/Card", this ); | 97 | channel = new QCopChannel( "QPE/Card", this ); |
102 | connect( channel, SIGNAL(received(const QCString &, const QByteArray &)), | 98 | connect( channel, SIGNAL(received(const QCString &, const QByteArray &)), |
103 | this, SLOT(cardMessage( const QCString &, const QByteArray &)) ); | 99 | this, SLOT(cardMessage( const QCString &, const QByteArray &)) ); |
104 | update(); | 100 | update(); |
105 | } | 101 | } |
106 | 102 | ||
107 | /*! Returns the longest matching FileSystem that starts with the | 103 | /*! Returns the longest matching FileSystem that starts with the |
108 | same prefix as \a filename as its mount point. | 104 | same prefix as \a filename as its mount point. |
109 | */ | 105 | */ |
110 | const FileSystem *StorageInfo::fileSystemOf( const QString &filename ) | 106 | const FileSystem *StorageInfo::fileSystemOf( const QString &filename ) |
111 | { | 107 | { |
112 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) | 108 | for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) |
113 | { | 109 | { |
114 | if ( filename.startsWith( (*i)->path() ) ) | 110 | if ( filename.startsWith( (*i)->path() ) ) |
115 | return (*i); | 111 | return (*i); |
116 | } | 112 | } |
117 | return 0; | 113 | return 0; |
118 | } | 114 | } |
119 | 115 | ||
120 | 116 | ||
121 | void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) | 117 | void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) |
122 | { | 118 | { |
123 | if ( msg == "mtabChanged()" ) | 119 | if ( msg == "mtabChanged()" ) |
124 | update(); | 120 | update(); |
125 | } | 121 | } |
126 | 122 | ||
127 | 123 | ||
128 | /*! Updates the mount and free space available information for each mount | 124 | /*! Updates the mount and free space available information for each mount |
129 | point. This method is automatically called when a disk is mounted or | 125 | point. This method is automatically called when a disk is mounted or |
130 | unmounted. | 126 | unmounted. |
131 | */ | 127 | */ |
132 | // cause of the lack of a d pointer we need | 128 | // cause of the lack of a d pointer we need |
133 | // to store informations in a config file :( | 129 | // to store informations in a config file :( |
134 | void StorageInfo::update() | 130 | void StorageInfo::update() |
135 | { | 131 | { |
136 | //qDebug("StorageInfo::updating"); | 132 | //qDebug("StorageInfo::updating"); |
137 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 133 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
138 | struct mntent *me; | 134 | struct mntent *me; |
139 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); | 135 | FILE *mntfp = setmntent( "/etc/mtab", "r" ); |
140 | 136 | ||
141 | QStringList curdisks; | 137 | QStringList curdisks; |
diff --git a/library/tzselect.cpp b/library/tzselect.cpp index 4343eab..f28100b 100644 --- a/library/tzselect.cpp +++ b/library/tzselect.cpp | |||
@@ -1,121 +1,120 @@ | |||
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" | ||
26 | #include "config.h" | 25 | #include "config.h" |
27 | #include <qtoolbutton.h> | 26 | #include <qtoolbutton.h> |
28 | #include <qfile.h> | 27 | #include <qfile.h> |
29 | #include <stdlib.h> | 28 | #include <stdlib.h> |
30 | 29 | ||
31 | #include <qcopchannel_qws.h> | 30 | #include <qcopchannel_qws.h> |
32 | #include <qpe/qpeapplication.h> | 31 | #include <qpe/qpeapplication.h> |
33 | #include <qmessagebox.h> | 32 | #include <qmessagebox.h> |
34 | 33 | ||
35 | /*! | 34 | /*! |
36 | \class TimeZoneSelector | 35 | \class TimeZoneSelector |
37 | 36 | ||
38 | \brief The TimeZoneSelector widget allows users to configure their time zone information. | 37 | \brief The TimeZoneSelector widget allows users to configure their time zone information. |
39 | 38 | ||
40 | \ingroup qtopiaemb | 39 | \ingroup qtopiaemb |
41 | */ | 40 | */ |
42 | 41 | ||
43 | class TimeZoneSelectorPrivate | 42 | class TimeZoneSelectorPrivate |
44 | { | 43 | { |
45 | public: | 44 | public: |
46 | TimeZoneSelectorPrivate() : includeLocal(FALSE) {} | 45 | TimeZoneSelectorPrivate() : includeLocal(FALSE) {} |
47 | bool includeLocal; | 46 | bool includeLocal; |
48 | }; | 47 | }; |
49 | 48 | ||
50 | TZCombo::TZCombo( QWidget *p, const char* n ) | 49 | TZCombo::TZCombo( QWidget *p, const char* n ) |
51 | : QComboBox( p, n ) | 50 | : QComboBox( p, n ) |
52 | { | 51 | { |
53 | updateZones(); | 52 | updateZones(); |
54 | // check to see if TZ is set, if it is set the current item to that | 53 | // check to see if TZ is set, if it is set the current item to that |
55 | QString tz = getenv("TZ"); | 54 | QString tz = getenv("TZ"); |
56 | if (parent()->inherits("TimeZoneSelector")) { | 55 | if (parent()->inherits("TimeZoneSelector")) { |
57 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { | 56 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { |
58 | // overide to the 'local' type. | 57 | // overide to the 'local' type. |
59 | tz = "None"; | 58 | tz = "None"; |
60 | } | 59 | } |
61 | } | 60 | } |
62 | if ( !tz.isNull() ) { | 61 | if ( !tz.isNull() ) { |
63 | int n = 0, | 62 | int n = 0, |
64 | index = 0; | 63 | index = 0; |
65 | for ( QStringList::Iterator it=identifiers.begin(); | 64 | for ( QStringList::Iterator it=identifiers.begin(); |
66 | it!=identifiers.end(); ++it) { | 65 | it!=identifiers.end(); ++it) { |
67 | if ( *it == tz ) | 66 | if ( *it == tz ) |
68 | index = n; | 67 | index = n; |
69 | n++; | 68 | n++; |
70 | } | 69 | } |
71 | setCurrentItem(index); | 70 | setCurrentItem(index); |
72 | } else { | 71 | } else { |
73 | setCurrentItem(0); | 72 | setCurrentItem(0); |
74 | } | 73 | } |
75 | 74 | ||
76 | 75 | ||
77 | 76 | ||
78 | // listen on QPE/System | 77 | // listen on QPE/System |
79 | #if !defined(QT_NO_COP) | 78 | #if !defined(QT_NO_COP) |
80 | QCopChannel *channel = new QCopChannel( "QPE/System", this ); | 79 | QCopChannel *channel = new QCopChannel( "QPE/System", this ); |
81 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 80 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), |
82 | this, SLOT(handleSystemChannel(const QCString&, const QByteArray&)) ); | 81 | this, SLOT(handleSystemChannel(const QCString&, const QByteArray&)) ); |
83 | #endif | 82 | #endif |
84 | 83 | ||
85 | 84 | ||
86 | } | 85 | } |
87 | 86 | ||
88 | TZCombo::~TZCombo() | 87 | TZCombo::~TZCombo() |
89 | { | 88 | { |
90 | } | 89 | } |
91 | 90 | ||
92 | void TZCombo::updateZones() | 91 | void TZCombo::updateZones() |
93 | { | 92 | { |
94 | QString cur = currentText(); | 93 | QString cur = currentText(); |
95 | clear(); | 94 | clear(); |
96 | identifiers.clear(); | 95 | identifiers.clear(); |
97 | int curix=0; | 96 | int curix=0; |
98 | QString tz = getenv("TZ"); | 97 | QString tz = getenv("TZ"); |
99 | bool tzFound = FALSE; | 98 | bool tzFound = FALSE; |
100 | Config cfg("CityTime"); | 99 | Config cfg("CityTime"); |
101 | cfg.setGroup("TimeZones"); | 100 | cfg.setGroup("TimeZones"); |
102 | int listIndex = 0; | 101 | int listIndex = 0; |
103 | if (parent()->inherits("TimeZoneSelector")) { | 102 | if (parent()->inherits("TimeZoneSelector")) { |
104 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { | 103 | if ( ((TimeZoneSelector *)parent())->localIncluded() ) { |
105 | // overide to the 'local' type. | 104 | // overide to the 'local' type. |
106 | identifiers.append( "None" ); | 105 | identifiers.append( "None" ); |
107 | insertItem( tr("None") ); | 106 | insertItem( tr("None") ); |
108 | if ( cur == tr("None")) | 107 | if ( cur == tr("None")) |
109 | curix = 0; | 108 | curix = 0; |
110 | listIndex++; | 109 | listIndex++; |
111 | } | 110 | } |
112 | } | 111 | } |
113 | int cfgIndex = 0; | 112 | int cfgIndex = 0; |
114 | while (1) { | 113 | while (1) { |
115 | QString zn = cfg.readEntry("Zone"+QString::number(cfgIndex), QString::null); | 114 | QString zn = cfg.readEntry("Zone"+QString::number(cfgIndex), QString::null); |
116 | if ( zn.isNull() ) | 115 | if ( zn.isNull() ) |
117 | break; | 116 | break; |
118 | if ( zn == tz ) | 117 | if ( zn == tz ) |
119 | tzFound = TRUE; | 118 | tzFound = TRUE; |
120 | QString nm = cfg.readEntry("ZoneName"+QString::number(cfgIndex)); | 119 | QString nm = cfg.readEntry("ZoneName"+QString::number(cfgIndex)); |
121 | identifiers.append(zn); | 120 | identifiers.append(zn); |