author | sandman <sandman> | 2002-12-23 03:24:31 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-12-23 03:24:31 (UTC) |
commit | e91351d2c22ab041b85f49e243e1f510edf7984e (patch) (unidiff) | |
tree | c068e1a8ad21db9995f2a3c5a2d97bb983fa04a9 | |
parent | 8bd190d162b538e4226e830f442450f5a95f4434 (diff) | |
download | opie-e91351d2c22ab041b85f49e243e1f510edf7984e.zip opie-e91351d2c22ab041b85f49e243e1f510edf7984e.tar.gz opie-e91351d2c22ab041b85f49e243e1f510edf7984e.tar.bz2 |
small bugfixes and speedup
-rw-r--r-- | core/settings/button/buttonsettings.cpp | 8 | ||||
-rw-r--r-- | core/settings/button/buttonsettings.h | 1 | ||||
-rw-r--r-- | core/settings/button/buttonutils.cpp | 22 | ||||
-rw-r--r-- | core/settings/button/remapdlg.cpp | 27 | ||||
-rw-r--r-- | core/settings/button/remapdlg.h | 4 |
5 files changed, 48 insertions, 14 deletions
diff --git a/core/settings/button/buttonsettings.cpp b/core/settings/button/buttonsettings.cpp index c71514c..8b0b0a8 100644 --- a/core/settings/button/buttonsettings.cpp +++ b/core/settings/button/buttonsettings.cpp | |||
@@ -55,16 +55,17 @@ struct buttoninfo { | |||
55 | bool m_hdirty : 1; | 55 | bool m_hdirty : 1; |
56 | }; | 56 | }; |
57 | 57 | ||
58 | 58 | ||
59 | ButtonSettings::ButtonSettings ( ) | 59 | ButtonSettings::ButtonSettings ( ) |
60 | : QDialog ( 0, "ButtonSettings", false, WStyle_ContextHelp ) | 60 | : QDialog ( 0, "ButtonSettings", false, WStyle_ContextHelp ) |
61 | { | 61 | { |
62 | const QValueList <ODeviceButton> &buttons = ODevice::inst ( )-> buttons ( ); | 62 | const QValueList <ODeviceButton> &buttons = ODevice::inst ( )-> buttons ( ); |
63 | (void) ButtonUtils::inst ( ); // initialise | ||
63 | 64 | ||
64 | setCaption ( tr( "Button Settings" )); | 65 | setCaption ( tr( "Button Settings" )); |
65 | 66 | ||
66 | QVBoxLayout *toplay = new QVBoxLayout ( this, 3, 3 ); | 67 | QVBoxLayout *toplay = new QVBoxLayout ( this, 3, 3 ); |
67 | 68 | ||
68 | QLabel *l = new QLabel ( tr( "<center>Press or hold the button you want to remap.</center>" ), this ); | 69 | QLabel *l = new QLabel ( tr( "<center>Press or hold the button you want to remap.</center>" ), this ); |
69 | toplay-> addWidget ( l ); | 70 | toplay-> addWidget ( l ); |
70 | 71 | ||
@@ -128,16 +129,17 @@ ButtonSettings::ButtonSettings ( ) | |||
128 | i += 2; | 129 | i += 2; |
129 | 130 | ||
130 | m_infos. append ( bi ); | 131 | m_infos. append ( bi ); |
131 | } | 132 | } |
132 | 133 | ||
133 | toplay-> addStretch ( 10 ); | 134 | toplay-> addStretch ( 10 ); |
134 | 135 | ||
135 | m_last_button = 0; | 136 | m_last_button = 0; |
137 | m_lock = false; | ||
136 | 138 | ||
137 | m_timer = new QTimer ( this ); | 139 | m_timer = new QTimer ( this ); |
138 | connect ( m_timer, SIGNAL( timeout ( )), this, SLOT( keyTimeout ( ))); | 140 | connect ( m_timer, SIGNAL( timeout ( )), this, SLOT( keyTimeout ( ))); |
139 | 141 | ||
140 | updateLabels ( ); | 142 | updateLabels ( ); |
141 | 143 | ||
142 | QPEApplication::grabKeyboard ( ); | 144 | QPEApplication::grabKeyboard ( ); |
143 | } | 145 | } |
@@ -203,16 +205,20 @@ void ButtonSettings::keyTimeout ( ) | |||
203 | m_last_button = false; | 205 | m_last_button = false; |
204 | } | 206 | } |
205 | } | 207 | } |
206 | 208 | ||
207 | void ButtonSettings::edit ( buttoninfo *bi, bool hold ) | 209 | void ButtonSettings::edit ( buttoninfo *bi, bool hold ) |
208 | { | 210 | { |
209 | qDebug ( "remap %s for %s", hold ? "hold" : "press", bi-> m_button-> userText ( ). latin1 ( )); | 211 | qDebug ( "remap %s for %s", hold ? "hold" : "press", bi-> m_button-> userText ( ). latin1 ( )); |
210 | 212 | ||
213 | if ( m_lock ) | ||
214 | return; | ||
215 | m_lock = true; | ||
216 | |||
211 | RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this ); | 217 | RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this ); |
212 | 218 | ||
213 | d-> showMaximized ( ); | 219 | d-> showMaximized ( ); |
214 | if ( d-> exec ( ) == QDialog::Accepted ) { | 220 | if ( d-> exec ( ) == QDialog::Accepted ) { |
215 | qDebug ( " -> %s %s", d-> message ( ). channel ( ). data ( ), d-> message ( ). message ( ). data ( )); | 221 | qDebug ( " -> %s %s", d-> message ( ). channel ( ). data ( ), d-> message ( ). message ( ). data ( )); |
216 | 222 | ||
217 | if ( hold ) { | 223 | if ( hold ) { |
218 | bi-> m_hmsg = d-> message ( ); | 224 | bi-> m_hmsg = d-> message ( ); |
@@ -222,16 +228,18 @@ void ButtonSettings::edit ( buttoninfo *bi, bool hold ) | |||
222 | bi-> m_pmsg = d-> message ( ); | 228 | bi-> m_pmsg = d-> message ( ); |
223 | bi-> m_pdirty = true; | 229 | bi-> m_pdirty = true; |
224 | } | 230 | } |
225 | 231 | ||
226 | updateLabels ( ); | 232 | updateLabels ( ); |
227 | } | 233 | } |
228 | 234 | ||
229 | delete d; | 235 | delete d; |
236 | |||
237 | m_lock = false; | ||
230 | } | 238 | } |
231 | 239 | ||
232 | void ButtonSettings::accept ( ) | 240 | void ButtonSettings::accept ( ) |
233 | { | 241 | { |
234 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { | 242 | for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { |
235 | buttoninfo *bi = *it; | 243 | buttoninfo *bi = *it; |
236 | 244 | ||
237 | if ( bi-> m_pdirty ) | 245 | if ( bi-> m_pdirty ) |
diff --git a/core/settings/button/buttonsettings.h b/core/settings/button/buttonsettings.h index f571825..d41a209 100644 --- a/core/settings/button/buttonsettings.h +++ b/core/settings/button/buttonsettings.h | |||
@@ -62,13 +62,14 @@ private: | |||
62 | void edit ( buttoninfo *bi, bool hold ); | 62 | void edit ( buttoninfo *bi, bool hold ); |
63 | QString qcopToString ( const OQCopMessage &c ); | 63 | QString qcopToString ( const OQCopMessage &c ); |
64 | 64 | ||
65 | private: | 65 | private: |
66 | QTimer *m_timer; | 66 | QTimer *m_timer; |
67 | buttoninfo *m_last_button; | 67 | buttoninfo *m_last_button; |
68 | 68 | ||
69 | QList <buttoninfo> m_infos; | 69 | QList <buttoninfo> m_infos; |
70 | bool m_lock; | ||
70 | }; | 71 | }; |
71 | 72 | ||
72 | #endif | 73 | #endif |
73 | 74 | ||
74 | 75 | ||
diff --git a/core/settings/button/buttonutils.cpp b/core/settings/button/buttonutils.cpp index bb70047..91d2af3 100644 --- a/core/settings/button/buttonutils.cpp +++ b/core/settings/button/buttonutils.cpp | |||
@@ -96,24 +96,32 @@ void ButtonUtils::insertActions ( QListViewItem *here ) | |||
96 | QListViewItem *item = new QListViewItem ( here, qApp-> translate ( "ButtonSettings", p-> m_text ), p-> m_channel, p-> m_function ); | 96 | QListViewItem *item = new QListViewItem ( here, qApp-> translate ( "ButtonSettings", p-> m_text ), p-> m_channel, p-> m_function ); |
97 | item-> setPixmap ( 0, Resource::loadPixmap ( p-> m_pixmap )); | 97 | item-> setPixmap ( 0, Resource::loadPixmap ( p-> m_pixmap )); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | 101 | ||
102 | void ButtonUtils::insertAppLnks ( QListViewItem *here ) | 102 | void ButtonUtils::insertAppLnks ( QListViewItem *here ) |
103 | { | 103 | { |
104 | QStringList types = m_apps-> types ( ); | 104 | QStringList types = m_apps-> types ( ); |
105 | QListViewItem *typeitem [types. count ( )]; | ||
105 | 106 | ||
107 | int i = 0; | ||
106 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { | 108 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { |
107 | QListViewItem *item = new QListViewItem ( here, m_apps-> typeName ( *it )); | 109 | QListViewItem *item = new QListViewItem ( here, m_apps-> typeName ( *it )); |
108 | item-> setPixmap ( 0, m_apps-> typePixmap ( *it )); | 110 | item-> setPixmap ( 0, m_apps-> typePixmap ( *it )); |
109 | 111 | ||
110 | for ( QListIterator <AppLnk> appit ( m_apps-> children ( )); *appit; ++appit ) { | 112 | typeitem [i++] = item; |
111 | AppLnk *l = *appit; | 113 | } |
112 | 114 | ||
115 | for ( QListIterator <AppLnk> appit ( m_apps-> children ( )); *appit; ++appit ) { | ||
116 | AppLnk *l = *appit; | ||
117 | |||
118 | int i = 0; | ||
119 | for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) { | ||
113 | if ( l-> type ( ) == *it ) { | 120 | if ( l-> type ( ) == *it ) { |
114 | QListViewItem *sub = new QListViewItem ( item, l-> name ( ), QString ( "QPE/Application/" ) + l-> exec ( ), "raise()" ); | 121 | QListViewItem *sub = new QListViewItem ( typeitem [i], l-> name ( ), QString ( "QPE/Application/" ) + l-> exec ( ), "raise()" ); |
115 | sub-> setPixmap ( 0, l-> pixmap ( )); | 122 | sub-> setPixmap ( 0, l-> pixmap ( )); |
116 | } | 123 | } |
117 | } | 124 | i++; |
125 | } | ||
118 | } | 126 | } |
119 | } | 127 | } |
diff --git a/core/settings/button/remapdlg.cpp b/core/settings/button/remapdlg.cpp index 511d0e7..a251bd4 100644 --- a/core/settings/button/remapdlg.cpp +++ b/core/settings/button/remapdlg.cpp | |||
@@ -1,11 +1,12 @@ | |||
1 | #include <qlistview.h> | 1 | #include <qlistview.h> |
2 | #include <qlabel.h> | 2 | #include <qlabel.h> |
3 | #include <qcombobox.h> | 3 | #include <qcombobox.h> |
4 | #include <qtimer.h> | ||
4 | 5 | ||
5 | #include "remapdlg.h" | 6 | #include "remapdlg.h" |
6 | #include "buttonutils.h" | 7 | #include "buttonutils.h" |
7 | 8 | ||
8 | using namespace Opie; | 9 | using namespace Opie; |
9 | 10 | ||
10 | class NoSortItem : public QListViewItem { | 11 | class NoSortItem : public QListViewItem { |
11 | public: | 12 | public: |
@@ -41,46 +42,58 @@ private: | |||
41 | bool m_def; | 42 | bool m_def; |
42 | }; | 43 | }; |
43 | 44 | ||
44 | 45 | ||
45 | RemapDlg::RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget *parent, const char *name ) | 46 | RemapDlg::RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget *parent, const char *name ) |
46 | : RemapDlgBase ( parent, name, true, WStyle_ContextHelp ) | 47 | : RemapDlgBase ( parent, name, true, WStyle_ContextHelp ) |
47 | { | 48 | { |
48 | setCaption ( tr( "%1 %2", "(hold|press) buttoname" ). arg( hold ? tr( "Held" ) : tr( "Pressed" )). arg ( b-> userText ( ))); | 49 | setCaption ( tr( "%1 %2", "(hold|press) buttoname" ). arg( hold ? tr( "Held" ) : tr( "Pressed" )). arg ( b-> userText ( ))); |
50 | |||
51 | m_current = 0; | ||
52 | |||
53 | static const char * const def_channels [] = { "QPE/Application/", "QPE/Launcher", "QPE/System", "QPE/TaskBar", "QPE/", 0 }; | ||
54 | w_channel-> insertStrList ((const char **) def_channels ); | ||
49 | 55 | ||
50 | m_msg = hold ? b-> heldAction ( ) : b-> pressedAction ( ); | 56 | m_msg = hold ? b-> heldAction ( ) : b-> pressedAction ( ); |
51 | m_msg_preset = hold ? b-> factoryPresetHeldAction ( ) : b-> factoryPresetPressedAction ( ); | 57 | m_msg_preset = hold ? b-> factoryPresetHeldAction ( ) : b-> factoryPresetPressedAction ( ); |
52 | 58 | ||
53 | m_map_none = new NoSortItem ( w_list, 0, tr( "No mapping" )); | 59 | m_map_none = new NoSortItem ( w_list, 0, tr( "No mapping" )); |
54 | m_map_preset = new NoSortItem ( w_list, 1, tr( "Default" ), m_msg_preset. channel ( ), m_msg_preset. message ( )); | 60 | m_map_preset = new NoSortItem ( w_list, 1, tr( "Default" ), m_msg_preset. channel ( ), m_msg_preset. message ( )); |
55 | ((NoSortItem *) m_map_preset )-> setDefault ( true ); | 61 | ((NoSortItem *) m_map_preset )-> setDefault ( true ); |
56 | m_map_custom = new NoSortItem ( w_list, 2, tr( "Custom" ), m_msg. channel ( ), m_msg. message ( )); | 62 | m_map_custom = new NoSortItem ( w_list, 2, tr( "Custom" ), m_msg. channel ( ), m_msg. message ( )); |
57 | 63 | ||
58 | QListViewItem *it = new NoSortItem ( w_list, 3, tr( "Actions" )); | 64 | QListViewItem *it = new NoSortItem ( w_list, 3, tr( "Actions" )); |
59 | ButtonUtils::inst ( )-> insertActions ( it ); | 65 | ButtonUtils::inst ( )-> insertActions ( it ); |
60 | it-> setOpen ( true ); | 66 | it-> setOpen ( true ); |
61 | 67 | ||
62 | it = new NoSortItem ( w_list, 4, tr( "Show" )); | 68 | m_map_show = new NoSortItem ( w_list, 4, tr( "Show" )); |
63 | ButtonUtils::inst ( )-> insertAppLnks ( it ); | ||
64 | 69 | ||
65 | m_current = m_map_custom; | 70 | m_current = m_map_custom; |
66 | w_list-> setCurrentItem ( m_current ); | 71 | w_list-> setCurrentItem ( m_current ); |
67 | 72 | ||
68 | static const char * const def_channels [] = { | 73 | QTimer::singleShot ( 0, this, SLOT( delayedInit ( ))); |
69 | "QPE/Application/", "QPE/Launcher", "QPE/System", "QPE/TaskBar", "QPE/", 0 | ||
70 | }; | ||
71 | |||
72 | w_channel-> insertStrList ((const char **) def_channels ); | ||
73 | } | 74 | } |
74 | 75 | ||
75 | RemapDlg::~RemapDlg ( ) | 76 | RemapDlg::~RemapDlg ( ) |
76 | { | 77 | { |
77 | } | 78 | } |
78 | 79 | ||
80 | void RemapDlg::delayedInit ( ) | ||
81 | { | ||
82 | bool b = w_list-> viewport ( )-> isUpdatesEnabled ( ); | ||
83 | w_list-> viewport ( )-> setUpdatesEnabled ( false ); | ||
84 | |||
85 | ButtonUtils::inst ( )-> insertAppLnks ( m_map_show ); | ||
86 | |||
87 | w_list-> viewport ( )-> setUpdatesEnabled ( b ); | ||
88 | |||
89 | m_map_show-> repaint ( ); | ||
90 | } | ||
91 | |||
79 | void RemapDlg::itemChanged ( QListViewItem *it ) | 92 | void RemapDlg::itemChanged ( QListViewItem *it ) |
80 | { | 93 | { |
81 | bool enabled = false; | 94 | bool enabled = false; |
82 | OQCopMessage m; | 95 | OQCopMessage m; |
83 | 96 | ||
84 | m_current = it; | 97 | m_current = it; |
85 | 98 | ||
86 | if ( it == m_map_none ) | 99 | if ( it == m_map_none ) |
diff --git a/core/settings/button/remapdlg.h b/core/settings/button/remapdlg.h index 8c9cc02..046a22f 100644 --- a/core/settings/button/remapdlg.h +++ b/core/settings/button/remapdlg.h | |||
@@ -15,21 +15,25 @@ public: | |||
15 | RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget* parent = 0, const char* name = 0 ); | 15 | RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget* parent = 0, const char* name = 0 ); |
16 | ~RemapDlg ( ); | 16 | ~RemapDlg ( ); |
17 | 17 | ||
18 | Opie::OQCopMessage message ( ); | 18 | Opie::OQCopMessage message ( ); |
19 | 19 | ||
20 | public slots: | 20 | public slots: |
21 | virtual void itemChanged ( QListViewItem * ); | 21 | virtual void itemChanged ( QListViewItem * ); |
22 | virtual void textChanged ( const QString & ); | 22 | virtual void textChanged ( const QString & ); |
23 | |||
24 | private slots: | ||
25 | void delayedInit ( ); | ||
23 | 26 | ||
24 | private: | 27 | private: |
25 | Opie::OQCopMessage m_msg; | 28 | Opie::OQCopMessage m_msg; |
26 | Opie::OQCopMessage m_msg_preset; | 29 | Opie::OQCopMessage m_msg_preset; |
27 | 30 | ||
28 | QListViewItem *m_current; | 31 | QListViewItem *m_current; |
29 | 32 | ||
30 | QListViewItem *m_map_none; | 33 | QListViewItem *m_map_none; |
31 | QListViewItem *m_map_preset; | 34 | QListViewItem *m_map_preset; |
32 | QListViewItem *m_map_custom; | 35 | QListViewItem *m_map_custom; |
36 | QListViewItem *m_map_show; | ||
33 | }; | 37 | }; |
34 | 38 | ||
35 | #endif | 39 | #endif |