-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | core/settings/button/buttonsettings.cpp | 3 |
2 files changed, 3 insertions, 1 deletions
@@ -1,75 +1,76 @@ | |||
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) |
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,223 +1,224 @@ | |||
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 | ||
42 | using namespace Opie::Core; | 42 | using namespace Opie::Core; |
43 | 43 | ||
44 | struct buttoninfo { | 44 | struct 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 | ||
61 | ButtonSettings::ButtonSettings ( QWidget *parent , const char *, bool, WFlags ) | 61 | ButtonSettings::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 | ||
157 | ButtonSettings::~ButtonSettings ( ) | 157 | ButtonSettings::~ButtonSettings ( ) |
158 | { | 158 | { |
159 | QPEApplication::ungrabKeyboard ( ); | 159 | QPEApplication::ungrabKeyboard ( ); |
160 | QCopChannel::send ("QPE/System", "deviceButtonMappingChanged()" ); | ||
160 | } | 161 | } |
161 | 162 | ||
162 | void ButtonSettings::updateLabels ( ) | 163 | void 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 | ||
180 | buttoninfo *ButtonSettings::buttonInfoForKeycode ( ushort key ) | 181 | buttoninfo *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 | ||
189 | void ButtonSettings::keyPressEvent ( QKeyEvent *e ) | 190 | void 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 | ||
202 | void ButtonSettings::keyReleaseEvent ( QKeyEvent *e ) | 203 | void 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 | ||
214 | void ButtonSettings::keyTimeout ( ) | 215 | void 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 | ||
222 | void ButtonSettings::edit ( buttoninfo *bi, bool hold ) | 223 | void ButtonSettings::edit ( buttoninfo *bi, bool hold ) |
223 | { | 224 | { |