summaryrefslogtreecommitdiff
authorhrw <hrw>2005-10-12 21:08:35 (UTC)
committer hrw <hrw>2005-10-12 21:08:35 (UTC)
commit611de84768e4825d6851dc833bd6402efd572383 (patch) (unidiff)
treee8eeb258651884f7b3f6b4aecf7f46a06fb12c43
parent6d3c752d2e93f5a43a4b5156f9968e07b3144c0a (diff)
downloadopie-611de84768e4825d6851dc833bd6402efd572383.zip
opie-611de84768e4825d6851dc833bd6402efd572383.tar.gz
opie-611de84768e4825d6851dc833bd6402efd572383.tar.bz2
fixed bug #1624: Button settngs changes are applied only after restart
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ChangeLog1
-rw-r--r--core/settings/button/buttonsettings.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b817062..53a498d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,107 +1,108 @@
1 2005-??-??Opie 1.2.2 1 2005-??-??Opie 1.2.2
2 2
3 3
4 New Features 4 New Features
5 ------------ 5 ------------
6 6
7 7
8 Fixed Bugs 8 Fixed Bugs
9 ---------- 9 ----------
10 * #1695 - Date selector use too small fontsize on VGA screen (hrw) 10 * #1695 - Date selector use too small fontsize on VGA screen (hrw)
11 * #1686 - opie-console lack UI setting for switching scrollbar (hrw) 11 * #1686 - opie-console lack UI setting for switching scrollbar (hrw)
12 * #1624 - Button settngs changes are applied only after restart (hrw)
12 * n.a. - remove hardcoded font size from wellenreiter (hrw) 13 * n.a. - remove hardcoded font size from wellenreiter (hrw)
13 * n.a. - added patch to build QT/E 2.3.10 with gc 4.x.x (hrw) 14 * n.a. - added patch to build QT/E 2.3.10 with gc 4.x.x (hrw)
14 15
15 2005-09-11Opie 1.2.1 16 2005-09-11Opie 1.2.1
16 17
17 18
18 New Features 19 New Features
19 ------------ 20 ------------
20 * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker) 21 * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker)
21 * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly) 22 * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly)
22 * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer) 23 * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer)
23 * Wellenreiter: Remove Joining networks - use OpieStumbler for that (mickeyl) 24 * Wellenreiter: Remove Joining networks - use OpieStumbler for that (mickeyl)
24 * Opie-Mobilemsg has gone unsupported - it never really worked and there will be a replacement (mickeyl) 25 * Opie-Mobilemsg has gone unsupported - it never really worked and there will be a replacement (mickeyl)
25 * Opie-Tabmanager has gone unsupported - it barely works and there is not much of a use of it anyway (mickeyl) 26 * Opie-Tabmanager has gone unsupported - it barely works and there is not much of a use of it anyway (mickeyl)
26 * Checkbook: Added configuration option to use smaller font for checkbook transaction tab (hrw) 27 * Checkbook: Added configuration option to use smaller font for checkbook transaction tab (hrw)
27 * ZSafe: Made UI conform to Opie standards (drw) 28 * ZSafe: Made UI conform to Opie standards (drw)
28 * Today Addressbook plugin: Fixed configuration to show/not show birthdays, use checkboxes for selection (hrw) 29 * Today Addressbook plugin: Fixed configuration to show/not show birthdays, use checkboxes for selection (hrw)
29 * Opie-Console: Read initial fixed font configuration from qpe.conf (mickeyl) 30 * Opie-Console: Read initial fixed font configuration from qpe.conf (mickeyl)
30 * Opie-PcmciaApplet: Configure insert/resume actions and bind unsupported cards (mickeyl) 31 * Opie-PcmciaApplet: Configure insert/resume actions and bind unsupported cards (mickeyl)
31 * SysInfo: Remove CPU tab and add Devices tab instead (mickeyl) 32 * SysInfo: Remove CPU tab and add Devices tab instead (mickeyl)
32 * Opie-smb: Added Opie front end for Samba (ljp) 33 * Opie-smb: Added Opie front end for Samba (ljp)
33 * Opie-Bluetooth: Replace obex send implementation and patch libopieobex and the bluetoothapplet (Michael Haynie) 34 * Opie-Bluetooth: Replace obex send implementation and patch libopieobex and the bluetoothapplet (Michael Haynie)
34 * Opieplayer: rudimentary podcast support (ljp) 35 * Opieplayer: rudimentary podcast support (ljp)
35 36
36 Fixed Bugs 37 Fixed Bugs
37 ---------- 38 ----------
38 * #1377 - Suspend Powermanagement when switched to another VT (mickeyl) 39 * #1377 - Suspend Powermanagement when switched to another VT (mickeyl)
39 - We actually suspend the complete Opie now in that case. 40 - We actually suspend the complete Opie now in that case.
40 * #1384 - Battery status updated improperly when charging (skyhusker) 41 * #1384 - Battery status updated improperly when charging (skyhusker)
41 * #1476 - Wrong order of application entries in the O-menu (skyhusker) 42 * #1476 - Wrong order of application entries in the O-menu (skyhusker)
42 * #1514 - Remove usage of cardmon/pcmcia picture in applications. pcmcia is now an inline picture (mickeyl) 43 * #1514 - Remove usage of cardmon/pcmcia picture in applications. pcmcia is now an inline picture (mickeyl)
43 * #1535- Missing line break and unnecessary location shown with Today-Calendar plugin (deller) 44 * #1535- Missing line break and unnecessary location shown with Today-Calendar plugin (deller)
44 * #1543 - Time Settings: "predict" tab is displayed twice after reopen (hrw) 45 * #1543 - Time Settings: "predict" tab is displayed twice after reopen (hrw)
45 * #1546 - Battery applet popup is not always large enough to show jacket remaining info (skyhusker) 46 * #1546 - Battery applet popup is not always large enough to show jacket remaining info (skyhusker)
46 * #1557 - Light&Power-Settings don't store warning intervall and warning levels (skyhusker) 47 * #1557 - Light&Power-Settings don't store warning intervall and warning levels (skyhusker)
47 * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller) 48 * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller)
48 * #1614 - Make Opie-console start in $HOME instead of / (skyhusker) 49 * #1614 - Make Opie-console start in $HOME instead of / (skyhusker)
49 * #1635 - opie-today, datebook-plugin does not show notes (skyhusker) 50 * #1635 - opie-today, datebook-plugin does not show notes (skyhusker)
50 * #1665 - Opie-IRC displays the host prepended to the message when peer is using and ipv6 address (skyhusker) 51 * #1665 - Opie-IRC displays the host prepended to the message when peer is using and ipv6 address (skyhusker)
51 * #1666 - Opie-IRC does not allow to add !channels in config asautojoin ones (skyhusker) 52 * #1666 - Opie-IRC does not allow to add !channels in config asautojoin ones (skyhusker)
52 * #1667 - Opie-IRC does not show messages from !channel (skyhusker) 53 * #1667 - Opie-IRC does not show messages from !channel (skyhusker)
53 * #1679 - Security PIN plugin is QVGA sized (hrw) 54 * #1679 - Security PIN plugin is QVGA sized (hrw)
54 * #1682 - Properly resize tab control in OTabWidget (drw) 55 * #1682 - Properly resize tab control in OTabWidget (drw)
55 * n.a. - always show volume and wireless applet popups inside visible screen (deller) 56 * n.a. - always show volume and wireless applet popups inside visible screen (deller)
56 * n.a. - scale O-Menu-Applets appropriately (mickeyl) 57 * n.a. - scale O-Menu-Applets appropriately (mickeyl)
57 * n.a. - libopienet: fix bugs in wireless scanning and setting SSID (skyhusker) 58 * n.a. - libopienet: fix bugs in wireless scanning and setting SSID (skyhusker)
58 * n.a. - Wellenreiter: relax WE version matching test a bit (mickeyl) 59 * n.a. - Wellenreiter: relax WE version matching test a bit (mickeyl)
59 * n.a. - scale BluezApplet appropriately and use larger icons (mickeyl) 60 * n.a. - scale BluezApplet appropriately and use larger icons (mickeyl)
60 * n.a. - memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham) 61 * n.a. - memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham)
61 * n.a. - networksettings: ignore hostap control interfaces wifi* (mickeyl) 62 * n.a. - networksettings: ignore hostap control interfaces wifi* (mickeyl)
62 * n.a. - Today Addressbook plugin fix configuration to show/not show birthdays, use checkboxes for selection (hrw) 63 * n.a. - Today Addressbook plugin fix configuration to show/not show birthdays, use checkboxes for selection (hrw)
63 * n.a. - remove hardcoded font size from netsystemtime (hrw) 64 * n.a. - remove hardcoded font size from netsystemtime (hrw)
64 * n.a. - remove hardcoded font size from checkbook graphs (hrw) 65 * n.a. - remove hardcoded font size from checkbook graphs (hrw)
65 * n.a. - Dagger - fixes for Sword 1.5.8, morph tag x-refs, closing last tab crash (drw) 66 * n.a. - Dagger - fixes for Sword 1.5.8, morph tag x-refs, closing last tab crash (drw)
66 67
67 68
68 Internal 69 Internal
69 -------- 70 --------
70 * Make BluezApplet use OTaskbarApplet (mickeyl) 71 * Make BluezApplet use OTaskbarApplet (mickeyl)
71 * libopiecore: rewrite OFileNotification to use the Linux 2.6 inotify interface (mickeyl) 72 * libopiecore: rewrite OFileNotification to use the Linux 2.6 inotify interface (mickeyl)
72 * libopiecore: add ODirNotification - recursive directory notifications (mickeyl) 73 * libopiecore: add ODirNotification - recursive directory notifications (mickeyl)
73 * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl) 74 * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl)
74 * libopieui: Remove OVersatileView and OVersatileViewItem (mickeyl) 75 * libopieui: Remove OVersatileView and OVersatileViewItem (mickeyl)
75 * libopienet: Miscellaneous API cleanups (mickeyl) 76 * libopienet: Miscellaneous API cleanups (mickeyl)
76 * libopiecore: Add linux pcmcia system abstraction classes (mickeyl) 77 * libopiecore: Add linux pcmcia system abstraction classes (mickeyl)
77 * libopiecore: ODevice now knows the default gfx driver to use (mteira,mickeyl) 78 * libopiecore: ODevice now knows the default gfx driver to use (mteira,mickeyl)
78 * libopiecore: Add support for the Sharp SL-C3100 "Borzoi" (mickeyl) 79 * libopiecore: Add support for the Sharp SL-C3100 "Borzoi" (mickeyl)
79 * libopiecore: Add support for the new Linux Inputsystem Switches type [necessary for auto rotation in 2.6.13] (mickeyl) 80 * libopiecore: Add support for the new Linux Inputsystem Switches type [necessary for auto rotation in 2.6.13] (mickeyl)
80 * Remove assumptions about default gfx driver ("Transformed") all over the place (mteira,mickeyl) 81 * Remove assumptions about default gfx driver ("Transformed") all over the place (mteira,mickeyl)
81 * Fix / Optimize number of scanned directories (ljp) 82 * Fix / Optimize number of scanned directories (ljp)
82 * Use five point mouse calibration to make calibrated mouse drivers work on newer Zaurii (rp,mickeyl) 83 * Use five point mouse calibration to make calibrated mouse drivers work on newer Zaurii (rp,mickeyl)
83 84
84 2005-03-25Opie 1.2.0 85 2005-03-25Opie 1.2.0
85 86
86 Fixed Bugs 87 Fixed Bugs
87 ---------- 88 ----------
88 * #1613 - AdvancedFM - scale toolbar icons appropriately (drw) 89 * #1613 - AdvancedFM - scale toolbar icons appropriately (drw)
89 * #1620 - OFileSelector - show the button on press and not on press on hold (alwin) 90 * #1620 - OFileSelector - show the button on press and not on press on hold (alwin)
90 * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke) 91 * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke)
91 * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw) 92 * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw)
92 * n.a.- make qpeglobal.h include qglobal.h (zecke) 93 * n.a.- make qpeglobal.h include qglobal.h (zecke)
93 94
94 2005-03-20Opie 1.2.0-rc1 95 2005-03-20Opie 1.2.0-rc1
95 96
96 97
97 New Features 98 New Features
98 ------------ 99 ------------
99 * Launcher: Support a static background pixmap (mickeyl) 100 * Launcher: Support a static background pixmap (mickeyl)
100 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl) 101 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl)
101 * PackageManager supports the 'lists_dir' ipkg configuration option (drw) 102 * PackageManager supports the 'lists_dir' ipkg configuration option (drw)
102 * Added hi-res inline images for large resolution devices (drw) 103 * Added hi-res inline images for large resolution devices (drw)
103 * Improved launcher icons for consistency (ar) 104 * Improved launcher icons for consistency (ar)
104 * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin) 105 * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin)
105 106
106 Fixed Bugs 107 Fixed Bugs
107 ---------- 108 ----------
diff --git a/core/settings/button/buttonsettings.cpp b/core/settings/button/buttonsettings.cpp
index a476a6b..a600d57 100644
--- a/core/settings/button/buttonsettings.cpp
+++ b/core/settings/button/buttonsettings.cpp
@@ -1,255 +1,256 @@
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#include <qcopchannel_qws.h>
41 41
42using namespace Opie::Core; 42using namespace Opie::Core;
43 43
44struct buttoninfo { 44struct 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
61ButtonSettings::ButtonSettings ( QWidget *parent , const char *, bool, WFlags ) 61ButtonSettings::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 ( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); 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 ( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); 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
157ButtonSettings::~ButtonSettings ( ) 157ButtonSettings::~ButtonSettings ( )
158{ 158{
159 QPEApplication::ungrabKeyboard ( ); 159 QPEApplication::ungrabKeyboard ( );
160 QCopChannel::send ("QPE/System", "deviceButtonMappingChanged()" );
160} 161}
161 162
162void ButtonSettings::updateLabels ( ) 163void ButtonSettings::updateLabels ( )
163{ 164{
164 for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { 165 for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) {
165 qCopInfo cip = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_pmsg ); 166 qCopInfo cip = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_pmsg );
166 167
167 QPixmap pic; 168 QPixmap pic;
168 pic.convertFromImage( cip.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 169 pic.convertFromImage( cip.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
169 (*it)-> m_picon-> setPixmap ( pic ); 170 (*it)-> m_picon-> setPixmap ( pic );
170 (*it)-> m_plabel-> setText ( cip. m_name ); 171 (*it)-> m_plabel-> setText ( cip. m_name );
171 172
172 qCopInfo cih = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_hmsg ); 173 qCopInfo cih = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_hmsg );
173 174
174 pic.convertFromImage( cih.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 175 pic.convertFromImage( cih.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
175 (*it)-> m_hicon-> setPixmap ( pic ); 176 (*it)-> m_hicon-> setPixmap ( pic );
176 (*it)-> m_hlabel-> setText ( cih. m_name ); 177 (*it)-> m_hlabel-> setText ( cih. m_name );
177 } 178 }
178} 179}
179 180
180buttoninfo *ButtonSettings::buttonInfoForKeycode ( ushort key ) 181buttoninfo *ButtonSettings::buttonInfoForKeycode ( ushort key )
181{ 182{
182 for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { 183 for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) {
183 if ((*it)-> m_button-> keycode ( ) == key ) 184 if ((*it)-> m_button-> keycode ( ) == key )
184 return *it; 185 return *it;
185 } 186 }
186 return 0; 187 return 0;
187} 188}
188 189
189void ButtonSettings::keyPressEvent ( QKeyEvent *e ) 190void ButtonSettings::keyPressEvent ( QKeyEvent *e )
190{ 191{
191 buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); 192 buttoninfo *bi = buttonInfoForKeycode ( e-> key ( ));
192 193
193 if ( bi && !e-> isAutoRepeat ( )) { 194 if ( bi && !e-> isAutoRepeat ( )) {
194 m_timer-> stop ( ); 195 m_timer-> stop ( );
195 m_last_button = bi; 196 m_last_button = bi;
196 m_timer-> start ( ODevice::inst ( )-> buttonHoldTime ( ), true ); 197 m_timer-> start ( ODevice::inst ( )-> buttonHoldTime ( ), true );
197 } 198 }
198 else 199 else
199 QDialog::keyPressEvent ( e ); 200 QDialog::keyPressEvent ( e );
200} 201}
201 202
202void ButtonSettings::keyReleaseEvent ( QKeyEvent *e ) 203void ButtonSettings::keyReleaseEvent ( QKeyEvent *e )
203{ 204{
204 buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); 205 buttoninfo *bi = buttonInfoForKeycode ( e-> key ( ));
205 206
206 if ( bi && !e-> isAutoRepeat ( ) && m_timer-> isActive ( )) { 207 if ( bi && !e-> isAutoRepeat ( ) && m_timer-> isActive ( )) {
207 m_timer-> stop ( ); 208 m_timer-> stop ( );
208 edit ( bi, false ); 209 edit ( bi, false );
209 } 210 }
210 else 211 else
211 QDialog::keyReleaseEvent ( e ); 212 QDialog::keyReleaseEvent ( e );
212} 213}
213 214
214void ButtonSettings::keyTimeout ( ) 215void ButtonSettings::keyTimeout ( )
215{ 216{
216 if ( m_last_button ) { 217 if ( m_last_button ) {
217 edit ( m_last_button, true ); 218 edit ( m_last_button, true );
218 m_last_button = false; 219 m_last_button = false;
219 } 220 }
220} 221}
221 222
222void ButtonSettings::edit ( buttoninfo *bi, bool hold ) 223void ButtonSettings::edit ( buttoninfo *bi, bool hold )
223{ 224{
224 225
225 if ( m_lock ) 226 if ( m_lock )
226 return; 227 return;
227 m_lock = true; 228 m_lock = true;
228 229
229 RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this ); 230 RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this );
230 231
231 if ( QPEApplication::execDialog ( d ) == QDialog::Accepted ) { 232 if ( QPEApplication::execDialog ( d ) == QDialog::Accepted ) {
232 233
233 234
234 if ( hold ) { 235 if ( hold ) {
235 bi-> m_hmsg = d-> message ( ); 236 bi-> m_hmsg = d-> message ( );
236 bi-> m_hdirty = true; 237 bi-> m_hdirty = true;
237 } 238 }
238 else { 239 else {
239 bi-> m_pmsg = d-> message ( ); 240 bi-> m_pmsg = d-> message ( );
240 bi-> m_pdirty = true; 241 bi-> m_pdirty = true;
241 } 242 }
242 243
243 updateLabels ( ); 244 updateLabels ( );
244 } 245 }
245 246
246 delete d; 247 delete d;
247 248
248 m_lock = false; 249 m_lock = false;
249} 250}
250 251
251void ButtonSettings::accept ( ) 252void ButtonSettings::accept ( )
252{ 253{
253 for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { 254 for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) {
254 buttoninfo *bi = *it; 255 buttoninfo *bi = *it;
255 256