summaryrefslogtreecommitdiff
authorsandman <sandman>2002-12-23 03:24:31 (UTC)
committer sandman <sandman>2002-12-23 03:24:31 (UTC)
commite91351d2c22ab041b85f49e243e1f510edf7984e (patch) (unidiff)
treec068e1a8ad21db9995f2a3c5a2d97bb983fa04a9
parent8bd190d162b538e4226e830f442450f5a95f4434 (diff)
downloadopie-e91351d2c22ab041b85f49e243e1f510edf7984e.zip
opie-e91351d2c22ab041b85f49e243e1f510edf7984e.tar.gz
opie-e91351d2c22ab041b85f49e243e1f510edf7984e.tar.bz2
small bugfixes and speedup
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/button/buttonsettings.cpp8
-rw-r--r--core/settings/button/buttonsettings.h1
-rw-r--r--core/settings/button/buttonutils.cpp22
-rw-r--r--core/settings/button/remapdlg.cpp27
-rw-r--r--core/settings/button/remapdlg.h4
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
59ButtonSettings::ButtonSettings ( ) 59ButtonSettings::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
207void ButtonSettings::edit ( buttoninfo *bi, bool hold ) 209void 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
232void ButtonSettings::accept ( ) 240void 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
102void ButtonUtils::insertAppLnks ( QListViewItem *here ) 102void 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
8using namespace Opie; 9using namespace Opie;
9 10
10class NoSortItem : public QListViewItem { 11class NoSortItem : public QListViewItem {
11public: 12public:
@@ -41,46 +42,58 @@ private:
41 bool m_def; 42 bool m_def;
42}; 43};
43 44
44 45
45RemapDlg::RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget *parent, const char *name ) 46RemapDlg::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
75RemapDlg::~RemapDlg ( ) 76RemapDlg::~RemapDlg ( )
76{ 77{
77} 78}
78 79
80void 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
79void RemapDlg::itemChanged ( QListViewItem *it ) 92void 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
20public slots: 20public slots:
21 virtual void itemChanged ( QListViewItem * ); 21 virtual void itemChanged ( QListViewItem * );
22 virtual void textChanged ( const QString & ); 22 virtual void textChanged ( const QString & );
23
24private slots:
25 void delayedInit ( );
23 26
24private: 27private:
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