author | drw <drw> | 2005-04-24 20:24:00 (UTC) |
---|---|---|
committer | drw <drw> | 2005-04-24 20:24:00 (UTC) |
commit | 01ab9377017060c7ad3ab9e4ed2b76a879d442f6 (patch) (unidiff) | |
tree | c265ad8794f510a4808e545d8d18ca73ea32f04e | |
parent | 9f4dd8e0d2cbe83d23c5405394d5e076dd6c2c6b (diff) | |
download | opie-01ab9377017060c7ad3ab9e4ed2b76a879d442f6.zip opie-01ab9377017060c7ad3ab9e4ed2b76a879d442f6.tar.gz opie-01ab9377017060c7ad3ab9e4ed2b76a879d442f6.tar.bz2 |
Resource -> OResource
-rw-r--r-- | core/settings/button/buttonsettings.cpp | 46 | ||||
-rw-r--r-- | core/settings/button/buttonutils.cpp | 8 |
2 files changed, 28 insertions, 26 deletions
diff --git a/core/settings/button/buttonsettings.cpp b/core/settings/button/buttonsettings.cpp index a90b4a1..a476a6b 100644 --- a/core/settings/button/buttonsettings.cpp +++ b/core/settings/button/buttonsettings.cpp | |||
@@ -1,268 +1,268 @@ | |||
1 | /* | 1 | /* |
2 | =. This file is part of the OPIE Project | 2 | =. This file is part of the OPIE Project |
3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
4 | .>+-= | 4 | .>+-= |
5 | _;:, .> :=|. This file is free software; you can | 5 | _;:, .> :=|. This file is free software; you can |
6 | .> <`_, > . <= redistribute it and/or modify it under | 6 | .> <`_, > . <= redistribute it and/or modify it under |
7 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 7 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
8 | .="- .-=="i, .._ License as published by the Free Software | 8 | .="- .-=="i, .._ License as published by the Free Software |
9 | - . .-<_> .<> Foundation; either version 2 of the License, | 9 | - . .-<_> .<> Foundation; either version 2 of the License, |
10 | ._= =} : or (at your option) any later version. | 10 | ._= =} : or (at your option) any later version. |
11 | .%`+i> _;_. | 11 | .%`+i> _;_. |
12 | .i_,=:_. -<s. This file is distributed in the hope that | 12 | .i_,=:_. -<s. This file is distributed in the hope that |
13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
14 | : .. .:, . . . without even the implied warranty of | 14 | : .. .:, . . . without even the implied warranty of |
15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
17 | ..}^=.= = ; Public License for more details. | 17 | ..}^=.= = ; Public License for more details. |
18 | ++= -. .` .: | 18 | ++= -. .` .: |
19 | : = ...= . :.=- You should have received a copy of the GNU | 19 | : = ...= . :.=- You should have received a copy of the GNU |
20 | -. .:....=;==+<; General Public License along with this file; | 20 | -. .:....=;==+<; General Public License along with this file; |
21 | -_. . . )=. = see the file COPYING. If not, write to the | 21 | -_. . . )=. = see the file COPYING. If not, write to the |
22 | -- :-=` Free Software Foundation, Inc., | 22 | -- :-=` Free Software Foundation, Inc., |
23 | 59 Temple Place - Suite 330, | 23 | 59 Temple Place - Suite 330, |
24 | Boston, MA 02111-1307, USA. | 24 | Boston, MA 02111-1307, USA. |
25 | 25 | ||
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include "buttonsettings.h" | 28 | #include "buttonsettings.h" |
29 | #include "buttonutils.h" | 29 | #include "buttonutils.h" |
30 | #include "remapdlg.h" | 30 | #include "remapdlg.h" |
31 | 31 | ||
32 | #include <opie2/odevice.h> | 32 | #include <opie2/odevice.h> |
33 | 33 | ||
34 | #include <qpe/applnk.h> | 34 | #include <qpe/applnk.h> |
35 | 35 | ||
36 | #include <qlayout.h> | 36 | #include <qlayout.h> |
37 | #include <qlabel.h> | 37 | #include <qlabel.h> |
38 | #include <qtimer.h> | 38 | #include <qtimer.h> |
39 | #include <qscrollview.h> | 39 | #include <qscrollview.h> |
40 | 40 | ||
41 | 41 | ||
42 | using namespace Opie::Core; | 42 | using namespace Opie::Core; |
43 | 43 | ||
44 | struct buttoninfo { | 44 | struct buttoninfo { |
45 | const ODeviceButton *m_button; | 45 | const ODeviceButton *m_button; |
46 | int m_index; | 46 | int m_index; |
47 | 47 | ||
48 | OQCopMessage m_pmsg; | 48 | OQCopMessage m_pmsg; |
49 | QLabel *m_picon; | 49 | QLabel *m_picon; |
50 | QLabel *m_plabel; | 50 | QLabel *m_plabel; |
51 | 51 | ||
52 | OQCopMessage m_hmsg; | 52 | OQCopMessage m_hmsg; |
53 | QLabel *m_hicon; | 53 | QLabel *m_hicon; |
54 | QLabel *m_hlabel; | 54 | QLabel *m_hlabel; |
55 | 55 | ||
56 | bool m_pdirty : 1; | 56 | bool m_pdirty : 1; |
57 | bool m_hdirty : 1; | 57 | bool m_hdirty : 1; |
58 | }; | 58 | }; |
59 | 59 | ||
60 | 60 | ||
61 | ButtonSettings::ButtonSettings ( QWidget *parent , const char *, bool, WFlags ) | 61 | ButtonSettings::ButtonSettings ( QWidget *parent , const char *, bool, WFlags ) |
62 | : QDialog ( parent, "ButtonSettings", false, WStyle_ContextHelp ) | 62 | : QDialog ( parent, "ButtonSettings", false, WStyle_ContextHelp ) |
63 | { | 63 | { |
64 | const QValueList <ODeviceButton> &buttons = ODevice::inst ( )-> buttons ( ); | 64 | const QValueList <ODeviceButton> &buttons = ODevice::inst ( )-> buttons ( ); |
65 | (void) ButtonUtils::inst ( ); // initialise | 65 | (void) ButtonUtils::inst ( ); // initialise |
66 | 66 | ||
67 | setCaption ( tr( "Button Settings" )); | 67 | setCaption ( tr( "Button Settings" )); |
68 | 68 | ||
69 | QVBoxLayout *toplay = new QVBoxLayout ( this, 3, 3 ); | 69 | QVBoxLayout *toplay = new QVBoxLayout ( this, 3, 3 ); |
70 | QScrollView*mainview = new QScrollView(this); | 70 | QScrollView*mainview = new QScrollView(this); |
71 | mainview->setResizePolicy( QScrollView::AutoOneFit ); | 71 | mainview->setResizePolicy( QScrollView::AutoOneFit ); |
72 | 72 | ||
73 | toplay->addWidget(mainview); | 73 | toplay->addWidget(mainview); |
74 | QFrame*framehold=new QFrame(mainview->viewport()); | 74 | QFrame*framehold=new QFrame(mainview->viewport()); |
75 | framehold->setFrameStyle(QFrame::NoFrame|QFrame::Plain); | 75 | framehold->setFrameStyle(QFrame::NoFrame|QFrame::Plain); |
76 | mainview->addChild(framehold); | 76 | mainview->addChild(framehold); |
77 | toplay = new QVBoxLayout (framehold, 3, 3 ); | 77 | toplay = new QVBoxLayout (framehold, 3, 3 ); |
78 | 78 | ||
79 | QLabel *l = new QLabel ( tr( "<center>Press or hold the button you want to remap.</center>" ), framehold ); | 79 | QLabel *l = new QLabel ( tr( "<center>Press or hold the button you want to remap.</center>" ), framehold ); |
80 | toplay-> addWidget ( l ); | 80 | toplay-> addWidget ( l ); |
81 | 81 | ||
82 | QGridLayout *lay = new QGridLayout ( toplay ); | 82 | QGridLayout *lay = new QGridLayout ( toplay ); |
83 | lay-> setMargin ( 0 ); | 83 | lay-> setMargin ( 0 ); |
84 | lay-> setColStretch ( 0, 0 ); | 84 | lay-> setColStretch ( 0, 0 ); |
85 | lay-> setColStretch ( 1, 0 ); | 85 | lay-> setColStretch ( 1, 0 ); |
86 | lay-> setColStretch ( 2, 0 ); | 86 | lay-> setColStretch ( 2, 0 ); |
87 | lay-> setColStretch ( 3, 10 ); | 87 | lay-> setColStretch ( 3, 10 ); |
88 | 88 | ||
89 | m_infos. setAutoDelete ( true ); | 89 | m_infos. setAutoDelete ( true ); |
90 | 90 | ||
91 | int i = 1; | 91 | int i = 1; |
92 | int index = 0; | 92 | int index = 0; |
93 | for ( QValueList<ODeviceButton>::ConstIterator it = buttons. begin ( ); it != buttons. end ( ); it++ ) { | 93 | for ( QValueList<ODeviceButton>::ConstIterator it = buttons. begin ( ); it != buttons. end ( ); it++ ) { |
94 | if ( it != buttons. begin ( )) { | 94 | if ( it != buttons. begin ( )) { |
95 | QFrame *f = new QFrame ( framehold ); | 95 | QFrame *f = new QFrame ( framehold ); |
96 | f-> setFrameStyle ( QFrame::Sunken | QFrame::VLine ); | 96 | f-> setFrameStyle ( QFrame::Sunken | QFrame::VLine ); |
97 | lay-> addMultiCellWidget ( f, i, i, 0, 3 ); | 97 | lay-> addMultiCellWidget ( f, i, i, 0, 3 ); |
98 | i++; | 98 | i++; |
99 | } | 99 | } |
100 | 100 | ||
101 | buttoninfo *bi = new buttoninfo ( ); | 101 | buttoninfo *bi = new buttoninfo ( ); |
102 | bi-> m_button = &(*it); | 102 | bi-> m_button = &(*it); |
103 | bi-> m_index = index++; | 103 | bi-> m_index = index++; |
104 | bi-> m_pmsg = (*it). pressedAction ( ); | 104 | bi-> m_pmsg = (*it). pressedAction ( ); |
105 | bi-> m_hmsg = (*it). heldAction ( ); | 105 | bi-> m_hmsg = (*it). heldAction ( ); |
106 | bi-> m_pdirty = false; | 106 | bi-> m_pdirty = false; |
107 | bi-> m_hdirty = false; | 107 | bi-> m_hdirty = false; |
108 | 108 | ||
109 | l = new QLabel ( framehold ); | 109 | l = new QLabel ( framehold ); |
110 | l-> setPixmap (( *it ). pixmap ( )); | 110 | l-> setPixmap (( *it ). pixmap ( )); |
111 | 111 | ||
112 | lay-> addMultiCellWidget ( l, i, i + 1, 0, 0 ); | 112 | lay-> addMultiCellWidget ( l, i, i + 1, 0, 0 ); |
113 | 113 | ||
114 | l = new QLabel ( tr( "Press:" ), framehold ); | 114 | l = new QLabel ( tr( "Press:" ), framehold ); |
115 | lay-> addWidget ( l, i, 1, AlignLeft | AlignBottom ); | 115 | lay-> addWidget ( l, i, 1, AlignLeft | AlignBottom ); |
116 | l = new QLabel ( tr( "Hold:" ), framehold ); | 116 | l = new QLabel ( tr( "Hold:" ), framehold ); |
117 | lay-> addWidget ( l, i + 1, 1, AlignLeft | AlignTop ); | 117 | lay-> addWidget ( l, i + 1, 1, AlignLeft | AlignTop ); |
118 | 118 | ||
119 | l = new QLabel ( framehold ); | 119 | l = new QLabel ( framehold ); |
120 | l-> setFixedSize ( 16, 16 ); | 120 | l-> setFixedSize ( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); |
121 | lay-> addWidget ( l, i, 2, AlignLeft | AlignBottom ); | 121 | lay-> addWidget ( l, i, 2, AlignLeft | AlignBottom ); |
122 | bi-> m_picon = l; | 122 | bi-> m_picon = l; |
123 | 123 | ||
124 | l = new QLabel ( framehold ); | 124 | l = new QLabel ( framehold ); |
125 | l-> setAlignment ( AlignLeft | AlignVCenter | SingleLine ); | 125 | l-> setAlignment ( AlignLeft | AlignVCenter | SingleLine ); |
126 | lay-> addWidget ( l, i, 3, AlignLeft | AlignBottom ); | 126 | lay-> addWidget ( l, i, 3, AlignLeft | AlignBottom ); |
127 | bi-> m_plabel = l; | 127 | bi-> m_plabel = l; |
128 | 128 | ||
129 | l = new QLabel ( framehold ); | 129 | l = new QLabel ( framehold ); |
130 | l-> setFixedSize ( 16, 16 ); | 130 | l-> setFixedSize ( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); |
131 | lay-> addWidget ( l, i + 1, 2, AlignLeft | AlignTop ); | 131 | lay-> addWidget ( l, i + 1, 2, AlignLeft | AlignTop ); |
132 | bi-> m_hicon = l; | 132 | bi-> m_hicon = l; |
133 | 133 | ||
134 | l = new QLabel ( framehold ); | 134 | l = new QLabel ( framehold ); |
135 | l-> setAlignment ( AlignLeft | AlignVCenter | SingleLine ); | 135 | l-> setAlignment ( AlignLeft | AlignVCenter | SingleLine ); |
136 | lay-> addWidget ( l, i + 1, 3, AlignLeft | AlignTop ); | 136 | lay-> addWidget ( l, i + 1, 3, AlignLeft | AlignTop ); |
137 | bi-> m_hlabel = l; | 137 | bi-> m_hlabel = l; |
138 | 138 | ||
139 | i += 2; | 139 | i += 2; |
140 | 140 | ||
141 | m_infos. append ( bi ); | 141 | m_infos. append ( bi ); |
142 | } | 142 | } |
143 | 143 | ||
144 | toplay-> addStretch ( 10 ); | 144 | toplay-> addStretch ( 10 ); |
145 | 145 | ||
146 | m_last_button = 0; | 146 | m_last_button = 0; |
147 | m_lock = false; | 147 | m_lock = false; |
148 | 148 | ||
149 | m_timer = new QTimer ( this ); | 149 | m_timer = new QTimer ( this ); |
150 | connect ( m_timer, SIGNAL( timeout()), this, SLOT( keyTimeout())); | 150 | connect ( m_timer, SIGNAL( timeout()), this, SLOT( keyTimeout())); |
151 | 151 | ||
152 | updateLabels ( ); | 152 | updateLabels ( ); |
153 | 153 | ||
154 | QPEApplication::grabKeyboard ( ); | 154 | QPEApplication::grabKeyboard ( ); |
155 | } | 155 | } |
156 | 156 | ||
157 | ButtonSettings::~ButtonSettings ( ) | 157 | ButtonSettings::~ButtonSettings ( ) |
158 | { | 158 | { |
159 | QPEApplication::ungrabKeyboard ( ); | 159 | QPEApplication::ungrabKeyboard ( ); |
160 | } | 160 | } |
161 | 161 | ||
162 | void ButtonSettings::updateLabels ( ) | 162 | void ButtonSettings::updateLabels ( ) |
163 | { | 163 | { |
164 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { | 164 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { |
165 | qCopInfo cip = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_pmsg ); | 165 | qCopInfo cip = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_pmsg ); |
166 | 166 | ||
167 | QPixmap pic; | 167 | QPixmap pic; |
168 | pic.convertFromImage( cip.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); | 168 | pic.convertFromImage( cip.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); |
169 | (*it)-> m_picon-> setPixmap ( pic ); | 169 | (*it)-> m_picon-> setPixmap ( pic ); |
170 | (*it)-> m_plabel-> setText ( cip. m_name ); | 170 | (*it)-> m_plabel-> setText ( cip. m_name ); |
171 | 171 | ||
172 | qCopInfo cih = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_hmsg ); | 172 | qCopInfo cih = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_hmsg ); |
173 | 173 | ||
174 | pic.convertFromImage( cih.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); | 174 | pic.convertFromImage( cih.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); |
175 | (*it)-> m_hicon-> setPixmap ( pic ); | 175 | (*it)-> m_hicon-> setPixmap ( pic ); |
176 | (*it)-> m_hlabel-> setText ( cih. m_name ); | 176 | (*it)-> m_hlabel-> setText ( cih. m_name ); |
177 | } | 177 | } |
178 | } | 178 | } |
179 | 179 | ||
180 | buttoninfo *ButtonSettings::buttonInfoForKeycode ( ushort key ) | 180 | buttoninfo *ButtonSettings::buttonInfoForKeycode ( ushort key ) |
181 | { | 181 | { |
182 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { | 182 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { |
183 | if ((*it)-> m_button-> keycode ( ) == key ) | 183 | if ((*it)-> m_button-> keycode ( ) == key ) |
184 | return *it; | 184 | return *it; |
185 | } | 185 | } |
186 | return 0; | 186 | return 0; |
187 | } | 187 | } |
188 | 188 | ||
189 | void ButtonSettings::keyPressEvent ( QKeyEvent *e ) | 189 | void ButtonSettings::keyPressEvent ( QKeyEvent *e ) |
190 | { | 190 | { |
191 | buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); | 191 | buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); |
192 | 192 | ||
193 | if ( bi && !e-> isAutoRepeat ( )) { | 193 | if ( bi && !e-> isAutoRepeat ( )) { |
194 | m_timer-> stop ( ); | 194 | m_timer-> stop ( ); |
195 | m_last_button = bi; | 195 | m_last_button = bi; |
196 | m_timer-> start ( ODevice::inst ( )-> buttonHoldTime ( ), true ); | 196 | m_timer-> start ( ODevice::inst ( )-> buttonHoldTime ( ), true ); |
197 | } | 197 | } |
198 | else | 198 | else |
199 | QDialog::keyPressEvent ( e ); | 199 | QDialog::keyPressEvent ( e ); |
200 | } | 200 | } |
201 | 201 | ||
202 | void ButtonSettings::keyReleaseEvent ( QKeyEvent *e ) | 202 | void ButtonSettings::keyReleaseEvent ( QKeyEvent *e ) |
203 | { | 203 | { |
204 | buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); | 204 | buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); |
205 | 205 | ||
206 | if ( bi && !e-> isAutoRepeat ( ) && m_timer-> isActive ( )) { | 206 | if ( bi && !e-> isAutoRepeat ( ) && m_timer-> isActive ( )) { |
207 | m_timer-> stop ( ); | 207 | m_timer-> stop ( ); |
208 | edit ( bi, false ); | 208 | edit ( bi, false ); |
209 | } | 209 | } |
210 | else | 210 | else |
211 | QDialog::keyReleaseEvent ( e ); | 211 | QDialog::keyReleaseEvent ( e ); |
212 | } | 212 | } |
213 | 213 | ||
214 | void ButtonSettings::keyTimeout ( ) | 214 | void ButtonSettings::keyTimeout ( ) |
215 | { | 215 | { |
216 | if ( m_last_button ) { | 216 | if ( m_last_button ) { |
217 | edit ( m_last_button, true ); | 217 | edit ( m_last_button, true ); |
218 | m_last_button = false; | 218 | m_last_button = false; |
219 | } | 219 | } |
220 | } | 220 | } |
221 | 221 | ||
222 | void ButtonSettings::edit ( buttoninfo *bi, bool hold ) | 222 | void ButtonSettings::edit ( buttoninfo *bi, bool hold ) |
223 | { | 223 | { |
224 | 224 | ||
225 | if ( m_lock ) | 225 | if ( m_lock ) |
226 | return; | 226 | return; |
227 | m_lock = true; | 227 | m_lock = true; |
228 | 228 | ||
229 | RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this ); | 229 | RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this ); |
230 | 230 | ||
231 | if ( QPEApplication::execDialog ( d ) == QDialog::Accepted ) { | 231 | if ( QPEApplication::execDialog ( d ) == QDialog::Accepted ) { |
232 | 232 | ||
233 | 233 | ||
234 | if ( hold ) { | 234 | if ( hold ) { |
235 | bi-> m_hmsg = d-> message ( ); | 235 | bi-> m_hmsg = d-> message ( ); |
236 | bi-> m_hdirty = true; | 236 | bi-> m_hdirty = true; |
237 | } | 237 | } |
238 | else { | 238 | else { |
239 | bi-> m_pmsg = d-> message ( ); | 239 | bi-> m_pmsg = d-> message ( ); |
240 | bi-> m_pdirty = true; | 240 | bi-> m_pdirty = true; |
241 | } | 241 | } |
242 | 242 | ||
243 | updateLabels ( ); | 243 | updateLabels ( ); |
244 | } | 244 | } |
245 | 245 | ||
246 | delete d; | 246 | delete d; |
247 | 247 | ||
248 | m_lock = false; | 248 | m_lock = false; |
249 | } | 249 | } |
250 | 250 | ||
251 | void ButtonSettings::accept ( ) | 251 | void ButtonSettings::accept ( ) |
252 | { | 252 | { |
253 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { | 253 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { |
254 | buttoninfo *bi = *it; | 254 | buttoninfo *bi = *it; |
255 | 255 | ||
256 | if ( bi-> m_pdirty ) | 256 | if ( bi-> m_pdirty ) |
257 | ODevice::inst ( )-> remapPressedAction ( bi-> m_index, bi-> m_pmsg ); | 257 | ODevice::inst ( )-> remapPressedAction ( bi-> m_index, bi-> m_pmsg ); |
258 | if ( bi-> m_hdirty ) | 258 | if ( bi-> m_hdirty ) |
259 | ODevice::inst ( )-> remapHeldAction ( bi-> m_index, bi-> m_hmsg ); | 259 | ODevice::inst ( )-> remapHeldAction ( bi-> m_index, bi-> m_hmsg ); |
260 | } | 260 | } |
261 | QDialog::accept ( ); | 261 | QDialog::accept ( ); |
262 | } | 262 | } |
263 | 263 | ||
264 | void ButtonSettings::done ( int r ) | 264 | void ButtonSettings::done ( int r ) |
265 | { | 265 | { |
266 | QDialog::done ( r ); | 266 | QDialog::done ( r ); |
267 | close ( ); | 267 | close ( ); |
268 | } | 268 | } |
diff --git a/core/settings/button/buttonutils.cpp b/core/settings/button/buttonutils.cpp index 9bf4b53..05fa883 100644 --- a/core/settings/button/buttonutils.cpp +++ b/core/settings/button/buttonutils.cpp | |||
@@ -1,129 +1,131 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | 2 | ||
3 | #include <opie2/oresource.h> | ||
4 | |||
3 | #include <qapplication.h> | 5 | #include <qapplication.h> |
4 | #include <qlistview.h> | 6 | #include <qlistview.h> |
5 | #include <qpe/applnk.h> | 7 | #include <qpe/applnk.h> |
6 | #include <qpe/mimetype.h> | 8 | #include <qpe/mimetype.h> |
7 | #include <qpe/resource.h> | ||
8 | 9 | ||
9 | #include "buttonutils.h" | 10 | #include "buttonutils.h" |
10 | 11 | ||
11 | using namespace Opie; | 12 | using namespace Opie; |
12 | 13 | ||
13 | using namespace Opie::Core; | 14 | using namespace Opie::Core; |
14 | struct predef_qcop { | 15 | struct predef_qcop { |
15 | const char *m_text; | 16 | const char *m_text; |
16 | const char *m_pixmap; | 17 | const char *m_pixmap; |
17 | const char *m_channel; | 18 | const char *m_channel; |
18 | const char *m_function; | 19 | const char *m_function; |
19 | }; | 20 | }; |
20 | 21 | ||
21 | static const predef_qcop predef [] = { | 22 | static const predef_qcop predef [] = { |
22 | 23 | ||
23 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Beam VCard" ), "beam", "QPE/Application/addressbook", "beamBusinessCard()" }, | 24 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Beam VCard" ), "beam", "QPE/Application/addressbook", "beamBusinessCard()" }, |
24 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Send eMail" ), "buttonsettings/mail", "QPE/Application/mail", "newMail()" }, | 25 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Send eMail" ), "buttonsettings/mail", "QPE/Application/mail", "newMail()" }, |
25 | 26 | ||
26 | 27 | ||
27 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Toggle Menu" ), "buttonsettings/menu", "QPE/TaskBar", "toggleMenu()" }, | 28 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Toggle Menu" ), "buttonsettings/menu", "QPE/TaskBar", "toggleMenu()" }, |
28 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Toggle O-Menu" ), "buttonsettings/omenu", "QPE/TaskBar", "toggleStartMenu()" }, | 29 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Toggle O-Menu" ), "buttonsettings/omenu", "QPE/TaskBar", "toggleStartMenu()" }, |
29 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Show Desktop" ), "home", "QPE/Launcher", "home()" }, | 30 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Show Desktop" ), "home", "QPE/Launcher", "home()" }, |
30 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Toggle Recording" ), "buttonsettings/record", "QPE/VMemo", "toggleRecord()" }, | 31 | { QT_TRANSLATE_NOOP( "ButtonSettings", "Toggle Recording" ), "buttonsettings/record", "QPE/VMemo", "toggleRecord()" }, |
31 | 32 | ||
32 | { 0, 0, 0, 0 } | 33 | { 0, 0, 0, 0 } |
33 | }; | 34 | }; |
34 | 35 | ||
35 | 36 | ||
36 | 37 | ||
37 | 38 | ||
38 | ButtonUtils *ButtonUtils::ButtonUtils::inst ( ) | 39 | ButtonUtils *ButtonUtils::ButtonUtils::inst ( ) |
39 | { | 40 | { |
40 | static ButtonUtils *p = 0; | 41 | static ButtonUtils *p = 0; |
41 | 42 | ||
42 | if ( !p ) { | 43 | if ( !p ) { |
43 | p = new ButtonUtils ( ); | 44 | p = new ButtonUtils ( ); |
44 | ::atexit ( cleanup ); | 45 | ::atexit ( cleanup ); |
45 | } | 46 | } |
46 | return p; | 47 | return p; |
47 | } | 48 | } |
48 | 49 | ||
49 | void ButtonUtils::cleanup ( ) | 50 | void ButtonUtils::cleanup ( ) |
50 | { | 51 | { |
51 | delete inst ( ); | 52 | delete inst ( ); |
52 | } | 53 | } |
53 | 54 | ||
54 | ButtonUtils::ButtonUtils ( ) | 55 | ButtonUtils::ButtonUtils ( ) |
55 | { | 56 | { |
56 | m_apps = new AppLnkSet( MimeType::appsFolderName ( )); | 57 | m_apps = new AppLnkSet( MimeType::appsFolderName ( )); |
57 | } | 58 | } |
58 | 59 | ||
59 | ButtonUtils::~ButtonUtils ( ) | 60 | ButtonUtils::~ButtonUtils ( ) |
60 | { | 61 | { |
61 | delete m_apps; | 62 | delete m_apps; |
62 | } | 63 | } |
63 | 64 | ||
64 | qCopInfo ButtonUtils::messageToInfo ( const OQCopMessage &c ) | 65 | qCopInfo ButtonUtils::messageToInfo ( const OQCopMessage &c ) |
65 | { | 66 | { |
66 | QCString ch = c. channel ( ); | 67 | QCString ch = c. channel ( ); |
67 | QCString f = c. message ( ); | 68 | QCString f = c. message ( ); |
68 | 69 | ||
69 | 70 | ||
70 | if ( ch == "ignore" ) | 71 | if ( ch == "ignore" ) |
71 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Ignored</nobr>" )); | 72 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Ignored</nobr>" )); |
72 | 73 | ||
73 | for ( const predef_qcop *p = predef; p-> m_text; p++ ) { | 74 | for ( const predef_qcop *p = predef; p-> m_text; p++ ) { |
74 | if (( ch == p-> m_channel ) && ( f == p-> m_function )) | 75 | if (( ch == p-> m_channel ) && ( f == p-> m_function )) |
75 | return qCopInfo ( qApp-> translate ( "ButtonSettings", p-> m_text ), Resource::loadPixmap ( p-> m_pixmap )); | 76 | return qCopInfo ( qApp-> translate ( "ButtonSettings", p-> m_text ), |
77 | Opie::Core::OResource::loadPixmap( p->m_pixmap, Opie::Core::OResource::SmallIcon ) ); | ||
76 | } | 78 | } |
77 | 79 | ||
78 | if ( ch. left ( 16 ) == "QPE/Application/" ) { | 80 | if ( ch. left ( 16 ) == "QPE/Application/" ) { |
79 | QString app = ch. mid ( 16 ); | 81 | QString app = ch. mid ( 16 ); |
80 | const AppLnk *applnk = m_apps-> findExec ( app ); | 82 | const AppLnk *applnk = m_apps-> findExec ( app ); |
81 | if ( applnk ) | 83 | if ( applnk ) |
82 | app = applnk-> name ( ); | 84 | app = applnk-> name ( ); |
83 | 85 | ||
84 | if (( f == "raise()" ) || ( f == "nextView()" )) | 86 | if (( f == "raise()" ) || ( f == "nextView()" )) |
85 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Show <b>%1</b></nobr>" ). arg ( app ), applnk ? applnk-> pixmap ( ) : QPixmap ( )); | 87 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Show <b>%1</b></nobr>" ). arg ( app ), applnk ? applnk-> pixmap ( ) : QPixmap ( )); |
86 | else | 88 | else |
87 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Call <b>%1</b>: <i>%2</i></nobr>" ). arg ( app ). arg ( f ), applnk ? applnk-> pixmap ( ) : QPixmap ( )); | 89 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Call <b>%1</b>: <i>%2</i></nobr>" ). arg ( app ). arg ( f ), applnk ? applnk-> pixmap ( ) : QPixmap ( )); |
88 | } | 90 | } |
89 | else { | 91 | else { |
90 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Call <b>%1</b> <i>%2</i></nobr>" ). arg (( ch. left ( 4 ) == "QPE/" ) ? ch. mid ( 4 ) : ch ). arg ( f )); | 92 | return qCopInfo ( qApp-> translate ( "ButtonSettings", "<nobr>Call <b>%1</b> <i>%2</i></nobr>" ). arg (( ch. left ( 4 ) == "QPE/" ) ? ch. mid ( 4 ) : ch ). arg ( f )); |
91 | } | 93 | } |
92 | } | 94 | } |
93 | 95 | ||
94 | 96 | ||
95 | void ButtonUtils::insertActions ( QListViewItem *here ) | 97 | void ButtonUtils::insertActions ( QListViewItem *here ) |
96 | { | 98 | { |
97 | for ( const predef_qcop *p = predef; p-> m_text; p++ ) { | 99 | for ( const predef_qcop *p = predef; p-> m_text; p++ ) { |
98 | QListViewItem *item = new QListViewItem ( here, qApp-> translate ( "ButtonSettings", p-> m_text ), p-> m_channel, p-> m_function ); | 100 | QListViewItem *item = new QListViewItem ( here, qApp-> translate ( "ButtonSettings", p-> m_text ), p-> m_channel, p-> m_function ); |
99 | item-> setPixmap ( 0, Resource::loadPixmap ( p-> m_pixmap )); | 101 | item-> setPixmap ( 0, Opie::Core::OResource::loadPixmap( p->m_pixmap, Opie::Core::OResource::SmallIcon ) ); |
100 | } | 102 | } |
101 | } | 103 | } |
102 | 104 | ||
103 | 105 | ||
104 | void ButtonUtils::insertAppLnks ( QListViewItem *here ) | 106 | void ButtonUtils::insertAppLnks ( QListViewItem *here ) |
105 | { | 107 | { |
106 | QStringList types = m_apps-> types ( ); | 108 | QStringList types = m_apps-> types ( ); |
107 | QListViewItem *typeitem [types. count ( )]; | 109 | QListViewItem *typeitem [types. count ( )]; |
108 | 110 | ||
109 | int i = 0; | 111 | int i = 0; |
110 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { | 112 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { |
111 | QListViewItem *item = new QListViewItem ( here, m_apps-> typeName ( *it )); | 113 | QListViewItem *item = new QListViewItem ( here, m_apps-> typeName ( *it )); |
112 | item-> setPixmap ( 0, m_apps-> typePixmap ( *it )); | 114 | item-> setPixmap ( 0, m_apps-> typePixmap ( *it )); |
113 | 115 | ||
114 | typeitem [i++] = item; | 116 | typeitem [i++] = item; |
115 | } | 117 | } |
116 | 118 | ||
117 | for ( QListIterator <AppLnk> appit ( m_apps-> children ( )); *appit; ++appit ) { | 119 | for ( QListIterator <AppLnk> appit ( m_apps-> children ( )); *appit; ++appit ) { |
118 | AppLnk *l = *appit; | 120 | AppLnk *l = *appit; |
119 | 121 | ||
120 | int i = 0; | 122 | int i = 0; |
121 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { | 123 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { |
122 | if ( l-> type ( ) == *it ) { | 124 | if ( l-> type ( ) == *it ) { |
123 | QListViewItem *sub = new QListViewItem ( typeitem [i], l-> name ( ), QString ( "QPE/Application/" ) + l-> exec ( ), "raise()" ); | 125 | QListViewItem *sub = new QListViewItem ( typeitem [i], l-> name ( ), QString ( "QPE/Application/" ) + l-> exec ( ), "raise()" ); |
124 | sub-> setPixmap ( 0, l-> pixmap ( )); | 126 | sub-> setPixmap ( 0, l-> pixmap ( )); |
125 | } | 127 | } |
126 | i++; | 128 | i++; |
127 | } | 129 | } |
128 | } | 130 | } |
129 | } | 131 | } |