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,59 +1,60 @@
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)
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,88 +1,88 @@
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
@@ -112,96 +112,97 @@ ButtonSettings::ButtonSettings ( QWidget *parent , const char *, bool, WFlags
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 ( );