-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | core/settings/button/buttonsettings.cpp | 3 |
2 files changed, 3 insertions, 1 deletions
@@ -1,139 +1,140 @@ 2005-??-?? Opie 1.2.2 New Features ------------ Fixed Bugs ---------- * #1695 - Date selector use too small fontsize on VGA screen (hrw) * #1686 - opie-console lack UI setting for switching scrollbar (hrw) + * #1624 - Button settngs changes are applied only after restart (hrw) * n.a. - remove hardcoded font size from wellenreiter (hrw) * n.a. - added patch to build QT/E 2.3.10 with gc 4.x.x (hrw) 2005-09-11 Opie 1.2.1 New Features ------------ * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker) * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly) * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer) * Wellenreiter: Remove Joining networks - use OpieStumbler for that (mickeyl) * Opie-Mobilemsg has gone unsupported - it never really worked and there will be a replacement (mickeyl) * Opie-Tabmanager has gone unsupported - it barely works and there is not much of a use of it anyway (mickeyl) * Checkbook: Added configuration option to use smaller font for checkbook transaction tab (hrw) * ZSafe: Made UI conform to Opie standards (drw) * Today Addressbook plugin: Fixed configuration to show/not show birthdays, use checkboxes for selection (hrw) * Opie-Console: Read initial fixed font configuration from qpe.conf (mickeyl) * Opie-PcmciaApplet: Configure insert/resume actions and bind unsupported cards (mickeyl) * SysInfo: Remove CPU tab and add Devices tab instead (mickeyl) * Opie-smb: Added Opie front end for Samba (ljp) * Opie-Bluetooth: Replace obex send implementation and patch libopieobex and the bluetoothapplet (Michael Haynie) * Opieplayer: rudimentary podcast support (ljp) Fixed Bugs ---------- * #1377 - Suspend Powermanagement when switched to another VT (mickeyl) - We actually suspend the complete Opie now in that case. * #1384 - Battery status updated improperly when charging (skyhusker) * #1476 - Wrong order of application entries in the O-menu (skyhusker) * #1514 - Remove usage of cardmon/pcmcia picture in applications. pcmcia is now an inline picture (mickeyl) * #1535 - Missing line break and unnecessary location shown with Today-Calendar plugin (deller) * #1543 - Time Settings: "predict" tab is displayed twice after reopen (hrw) * #1546 - Battery applet popup is not always large enough to show jacket remaining info (skyhusker) * #1557 - Light&Power-Settings don't store warning intervall and warning levels (skyhusker) * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller) * #1614 - Make Opie-console start in $HOME instead of / (skyhusker) * #1635 - opie-today, datebook-plugin does not show notes (skyhusker) * #1665 - Opie-IRC displays the host prepended to the message when peer is using and ipv6 address (skyhusker) * #1666 - Opie-IRC does not allow to add !channels in config as autojoin ones (skyhusker) * #1667 - Opie-IRC does not show messages from !channel (skyhusker) * #1679 - Security PIN plugin is QVGA sized (hrw) * #1682 - Properly resize tab control in OTabWidget (drw) * n.a. - always show volume and wireless applet popups inside visible screen (deller) * n.a. - scale O-Menu-Applets appropriately (mickeyl) * n.a. - libopienet: fix bugs in wireless scanning and setting SSID (skyhusker) * n.a. - Wellenreiter: relax WE version matching test a bit (mickeyl) * n.a. - scale BluezApplet appropriately and use larger icons (mickeyl) * n.a. - memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham) * n.a. - networksettings: ignore hostap control interfaces wifi* (mickeyl) * n.a. - Today Addressbook plugin fix configuration to show/not show birthdays, use checkboxes for selection (hrw) * n.a. - remove hardcoded font size from netsystemtime (hrw) * n.a. - remove hardcoded font size from checkbook graphs (hrw) * n.a. - Dagger - fixes for Sword 1.5.8, morph tag x-refs, closing last tab crash (drw) Internal -------- * Make BluezApplet use OTaskbarApplet (mickeyl) * libopiecore: rewrite OFileNotification to use the Linux 2.6 inotify interface (mickeyl) * libopiecore: add ODirNotification - recursive directory notifications (mickeyl) * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl) * libopieui: Remove OVersatileView and OVersatileViewItem (mickeyl) * libopienet: Miscellaneous API cleanups (mickeyl) * libopiecore: Add linux pcmcia system abstraction classes (mickeyl) * libopiecore: ODevice now knows the default gfx driver to use (mteira,mickeyl) * libopiecore: Add support for the Sharp SL-C3100 "Borzoi" (mickeyl) * libopiecore: Add support for the new Linux Inputsystem Switches type [necessary for auto rotation in 2.6.13] (mickeyl) * Remove assumptions about default gfx driver ("Transformed") all over the place (mteira,mickeyl) * Fix / Optimize number of scanned directories (ljp) * Use five point mouse calibration to make calibrated mouse drivers work on newer Zaurii (rp,mickeyl) 2005-03-25 Opie 1.2.0 Fixed Bugs ---------- * #1613 - AdvancedFM - scale toolbar icons appropriately (drw) * #1620 - OFileSelector - show the button on press and not on press on hold (alwin) * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke) * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw) * n.a. - make qpeglobal.h include qglobal.h (zecke) 2005-03-20 Opie 1.2.0-rc1 New Features ------------ * Launcher: Support a static background pixmap (mickeyl) * LauncherSettings: Choose whether to have a static background pixmap (mickeyl) * PackageManager supports the 'lists_dir' ipkg configuration option (drw) * Added hi-res inline images for large resolution devices (drw) * Improved launcher icons for consistency (ar) * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin) Fixed Bugs ---------- * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers) * #1412 - Launcher Settings - fixed default settings for background in Edit tab dialog (drw) * #1472 - Opie textedit now check for unsaved changes on ESC key (ljp) * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke) * #1482 - Fix double '/' in paths (zecke) * #1536 - Autosave of custom locations in opie backup (ar) * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke) * #1540 - Implemented deletion of DocLnks in opie-eye (zecke) * #1542 - Fixed Todo crash when priority < 1 or > 5 (drw) * #1550 - Browse for alarm sound start in QPEDIR/sounds/ (zecke) * #1554 - Fixed Opie-Console name in .desktop file (mickeyl) * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke) * #1558 - Fixed opie-login breaking opie startup (mickeyl) * #1560 - Fixed Opie-Console picking up the wrong shell (bluelightning) * #1570 - Confirmation needed befor Restore a backup and overwrite local data (ar) * #1591 - Addressbook sortorder changed by clicking on column 0 (eilers) * #1599 - Security - change recommendation for opie-multiauth to opie-securityplugin (gints) * #1604 - Checkbook crashed on startup (drw) * #1608 - Addressbook crashed after search, which may caused by not initialzed member variable (eilers) * #1608 - QueryByExampe-Datediff on SQL database did not worked properly (eilers) * n.a. - Netsystemtime - fixed UI to prevent error dialog from displaying when it shouldn't, get rid of some compiler warnings (drw) * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw) * n.a. - PackageManager - fixed bug where lists_dir was not being honored at startup (drw) * n.a. - PackageManager - provided default value for lists_dir when none is entered in configuration dialog (drw) * n.a. - OTabWidget - fixed scroll buttons, fix display position of tabs (drw) * n.a. - AddressBook - fixed sorting by 'File As' name (drw) * n.a. - AddressBook - fixed category handling for 'All' and 'Unfiled' (eilers) * n.a. - AddressBook - fixed letter picker record selection and sort records afterwards (drw) Internal -------- * Worked around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (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,268 +1,269 @@ /* =. This file is part of the OPIE Project .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> .>+-= _;:, .> :=|. This file is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This file is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General ..}^=.= = ; Public License for more details. ++= -. .` .: : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "buttonsettings.h" #include "buttonutils.h" #include "remapdlg.h" #include <opie2/odevice.h> #include <qpe/applnk.h> #include <qlayout.h> #include <qlabel.h> #include <qtimer.h> #include <qscrollview.h> - +#include <qcopchannel_qws.h> using namespace Opie::Core; struct buttoninfo { const ODeviceButton *m_button; int m_index; OQCopMessage m_pmsg; QLabel *m_picon; QLabel *m_plabel; OQCopMessage m_hmsg; QLabel *m_hicon; QLabel *m_hlabel; bool m_pdirty : 1; bool m_hdirty : 1; }; ButtonSettings::ButtonSettings ( QWidget *parent , const char *, bool, WFlags ) : QDialog ( parent, "ButtonSettings", false, WStyle_ContextHelp ) { const QValueList <ODeviceButton> &buttons = ODevice::inst ( )-> buttons ( ); (void) ButtonUtils::inst ( ); // initialise setCaption ( tr( "Button Settings" )); QVBoxLayout *toplay = new QVBoxLayout ( this, 3, 3 ); QScrollView*mainview = new QScrollView(this); mainview->setResizePolicy( QScrollView::AutoOneFit ); toplay->addWidget(mainview); QFrame*framehold=new QFrame(mainview->viewport()); framehold->setFrameStyle(QFrame::NoFrame|QFrame::Plain); mainview->addChild(framehold); toplay = new QVBoxLayout (framehold, 3, 3 ); QLabel *l = new QLabel ( tr( "<center>Press or hold the button you want to remap.</center>" ), framehold ); toplay-> addWidget ( l ); QGridLayout *lay = new QGridLayout ( toplay ); lay-> setMargin ( 0 ); lay-> setColStretch ( 0, 0 ); lay-> setColStretch ( 1, 0 ); lay-> setColStretch ( 2, 0 ); lay-> setColStretch ( 3, 10 ); m_infos. setAutoDelete ( true ); int i = 1; int index = 0; for ( QValueList<ODeviceButton>::ConstIterator it = buttons. begin ( ); it != buttons. end ( ); it++ ) { if ( it != buttons. begin ( )) { QFrame *f = new QFrame ( framehold ); f-> setFrameStyle ( QFrame::Sunken | QFrame::VLine ); lay-> addMultiCellWidget ( f, i, i, 0, 3 ); i++; } buttoninfo *bi = new buttoninfo ( ); bi-> m_button = &(*it); bi-> m_index = index++; bi-> m_pmsg = (*it). pressedAction ( ); bi-> m_hmsg = (*it). heldAction ( ); bi-> m_pdirty = false; bi-> m_hdirty = false; l = new QLabel ( framehold ); l-> setPixmap (( *it ). pixmap ( )); lay-> addMultiCellWidget ( l, i, i + 1, 0, 0 ); l = new QLabel ( tr( "Press:" ), framehold ); lay-> addWidget ( l, i, 1, AlignLeft | AlignBottom ); l = new QLabel ( tr( "Hold:" ), framehold ); lay-> addWidget ( l, i + 1, 1, AlignLeft | AlignTop ); l = new QLabel ( framehold ); l-> setFixedSize ( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); lay-> addWidget ( l, i, 2, AlignLeft | AlignBottom ); bi-> m_picon = l; l = new QLabel ( framehold ); l-> setAlignment ( AlignLeft | AlignVCenter | SingleLine ); lay-> addWidget ( l, i, 3, AlignLeft | AlignBottom ); bi-> m_plabel = l; l = new QLabel ( framehold ); l-> setFixedSize ( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); lay-> addWidget ( l, i + 1, 2, AlignLeft | AlignTop ); bi-> m_hicon = l; l = new QLabel ( framehold ); l-> setAlignment ( AlignLeft | AlignVCenter | SingleLine ); lay-> addWidget ( l, i + 1, 3, AlignLeft | AlignTop ); bi-> m_hlabel = l; i += 2; m_infos. append ( bi ); } toplay-> addStretch ( 10 ); m_last_button = 0; m_lock = false; m_timer = new QTimer ( this ); connect ( m_timer, SIGNAL( timeout()), this, SLOT( keyTimeout())); updateLabels ( ); QPEApplication::grabKeyboard ( ); } ButtonSettings::~ButtonSettings ( ) { QPEApplication::ungrabKeyboard ( ); + QCopChannel::send ("QPE/System", "deviceButtonMappingChanged()" ); } void ButtonSettings::updateLabels ( ) { for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { qCopInfo cip = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_pmsg ); QPixmap pic; pic.convertFromImage( cip.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); (*it)-> m_picon-> setPixmap ( pic ); (*it)-> m_plabel-> setText ( cip. m_name ); qCopInfo cih = ButtonUtils::inst ( )-> messageToInfo ((*it)-> m_hmsg ); pic.convertFromImage( cih.m_icon.convertToImage().smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); (*it)-> m_hicon-> setPixmap ( pic ); (*it)-> m_hlabel-> setText ( cih. m_name ); } } buttoninfo *ButtonSettings::buttonInfoForKeycode ( ushort key ) { for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { if ((*it)-> m_button-> keycode ( ) == key ) return *it; } return 0; } void ButtonSettings::keyPressEvent ( QKeyEvent *e ) { buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); if ( bi && !e-> isAutoRepeat ( )) { m_timer-> stop ( ); m_last_button = bi; m_timer-> start ( ODevice::inst ( )-> buttonHoldTime ( ), true ); } else QDialog::keyPressEvent ( e ); } void ButtonSettings::keyReleaseEvent ( QKeyEvent *e ) { buttoninfo *bi = buttonInfoForKeycode ( e-> key ( )); if ( bi && !e-> isAutoRepeat ( ) && m_timer-> isActive ( )) { m_timer-> stop ( ); edit ( bi, false ); } else QDialog::keyReleaseEvent ( e ); } void ButtonSettings::keyTimeout ( ) { if ( m_last_button ) { edit ( m_last_button, true ); m_last_button = false; } } void ButtonSettings::edit ( buttoninfo *bi, bool hold ) { if ( m_lock ) return; m_lock = true; RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this ); if ( QPEApplication::execDialog ( d ) == QDialog::Accepted ) { if ( hold ) { bi-> m_hmsg = d-> message ( ); bi-> m_hdirty = true; } else { bi-> m_pmsg = d-> message ( ); bi-> m_pdirty = true; } updateLabels ( ); } delete d; m_lock = false; } void ButtonSettings::accept ( ) { for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) { buttoninfo *bi = *it; if ( bi-> m_pdirty ) ODevice::inst ( )-> remapPressedAction ( bi-> m_index, bi-> m_pmsg ); if ( bi-> m_hdirty ) ODevice::inst ( )-> remapHeldAction ( bi-> m_index, bi-> m_hmsg ); } QDialog::accept ( ); } void ButtonSettings::done ( int r ) { QDialog::done ( r ); close ( ); } |