summaryrefslogtreecommitdiff
Unidiff
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
@@ -59,8 +59,9 @@ struct buttoninfo {
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 );
@@ -132,8 +133,9 @@ ButtonSettings::ButtonSettings ( )
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
@@ -207,8 +209,12 @@ void ButtonSettings::keyTimeout ( )
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 ) {
@@ -226,8 +232,10 @@ void ButtonSettings::edit ( buttoninfo *bi, bool hold )
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{
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
@@ -66,8 +66,9 @@ 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
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
@@ -100,20 +100,28 @@ void ButtonUtils::insertActions ( QListViewItem *here )
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,7 +1,8 @@
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
@@ -45,8 +46,13 @@ private:
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
@@ -58,25 +64,32 @@ RemapDlg::RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget *parent, c
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;
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
@@ -19,8 +19,11 @@ public:
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;
@@ -29,7 +32,8 @@ private:
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