author | mickeyl <mickeyl> | 2004-01-04 16:34:58 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-01-04 16:34:58 (UTC) |
commit | c076942e5b0cdaa68a467354a563d1071c866d92 (patch) (side-by-side diff) | |
tree | 4da1b79ef326101b410dd85f57f25014b618c23c | |
parent | 6ee1d5d35243f611e0a848d454bfa309b8de0fc9 (diff) | |
download | opie-c076942e5b0cdaa68a467354a563d1071c866d92.zip opie-c076942e5b0cdaa68a467354a563d1071c866d92.tar.gz opie-c076942e5b0cdaa68a467354a563d1071c866d92.tar.bz2 |
- implement action on closing the hinge for devices with hinge sensors
- first batch of minor code cleanup
-rw-r--r-- | core/applets/rotateapplet/rotate.cpp | 116 |
1 files changed, 70 insertions, 46 deletions
diff --git a/core/applets/rotateapplet/rotate.cpp b/core/applets/rotateapplet/rotate.cpp index dd71cad..ea114bb 100644 --- a/core/applets/rotateapplet/rotate.cpp +++ b/core/applets/rotateapplet/rotate.cpp @@ -1,7 +1,10 @@ /* - =. This file is part of the OPIE Project - .=l. Copyright (c) 2003 Maximilian Reiss <harlekin@handhelds.org> + This file is part of the OPIE Project + Copyright (C) 2003 Maximilian Reiss <harlekin@handhelds.org> + Copyright (C) 2003 Greg Gilbert <ggilbert@treke.net> + =. Copyright (C) 2004 Michael Lauer <mickey@Vanille.de> + .=l. .>+-= _;:, .> :=|. This library is free software; you can .> <, > . <= redistribute it and/or modify it under :=1 )Y*s>-.-- : the terms of the GNU Library General Public @@ -22,27 +25,27 @@ -- :-= this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ +#include "rotate.h" -#include <qpe/resource.h> +/* OPIE */ +#include <opie/odevice.h> +#include <qpe/applnk.h> +#include <qpe/config.h> +#include <qpe/power.h> +#include <qpe/qpeapplication.h> #include <qpe/qcopenvelope_qws.h> +#include <qpe/resource.h> -#include <qpe/qpeapplication.h> -#include <qpe/config.h> +/* QT */ #include <qiconset.h> #include <qpopupmenu.h> -#include <opie/odevice.h> - -#include "rotate.h" - using namespace Opie; - RotateApplet::RotateApplet ( ) : QObject ( 0, "RotateApplet" ), ref ( 0 ), m_flipped( false ) { @@ -54,25 +57,47 @@ RotateApplet::RotateApplet ( ) } RotateApplet::~RotateApplet ( ) -{ -} - +{} /** * Qcop receive method. */ -void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data ) { +void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data ) +{ + qDebug( "RotateApplet::channelReceived( '%s' )", (const char*) msg ); + + if ( ODevice::inst()->hasHingeSensor() ) + { + OHingeStatus status = ODevice::inst()->readHingeSensor(); + qDebug( "RotateApplet::readHingeSensor = %d", (int) status ); + if ( status == CASE_CLOSED ) + { + Config cfg( "apm" ); + cfg.setGroup( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ? "AC" : "Battery" ); + int action = cfg.readNumEntry( "CloseHingeAction", 0 ); + switch ( action ) + { + case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayStatus( false ); ODevice::inst()->setDisplayBrightness( 0 ); break; + case 2: /* SUSPEND */ ODevice::inst()->suspend(); break; + default: /* IGNORE */ break; + } + qDebug( "RotateApplet::switchAction %d performed.", cfg.readNumEntry( "CloseHingeAction", 0 ) ); + } + } + QDataStream stream( data, IO_ReadOnly ); - if ( msg == "flip()" ) { + if ( msg == "flip()" ) + { activated ( ); - } else if ( msg == "rotateDefault()") { + } + else if ( msg == "rotateDefault()") + { rotateDefault(); } } - int RotateApplet::position ( ) const { return 3; } @@ -101,9 +126,8 @@ QString RotateApplet::tr( const char* s, const char* p ) const QIconSet RotateApplet::icon ( ) const { QPixmap pix; QImage img = Resource::loadImage ( "Rotation" ); - if ( !img. isNull ( )) pix. convertFromImage ( img. smoothScale ( 14, 14 )); return pix; } @@ -114,35 +138,25 @@ QPopupMenu *RotateApplet::popup ( QWidget * ) const } void RotateApplet::rotateDefault ( ) { - int rot = ODevice::inst()->rotation(); - switch (rot) { - case Rot0: - rot=0; - break; - case Rot90: - rot=90; - break; - case Rot180: - rot=180; - break; - case Rot270: - rot=270; - break; - default: - rot=0; - break; + switch (rot) + { + case Rot0: rot=0; break; + case Rot90: rot=90; break; + case Rot180: rot=180; break; + case Rot270: rot=270; break; + default: rot=0; break; } + Config cfg( "qpe" ); cfg.setGroup( "Appearance" ); bool rotateEnabled = cfg.readBoolEntry( "rotateEnabled",true ); - if (rotateEnabled == false) - return; + if ( !rotateEnabled) return; // hide inputs methods before rotation QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" ); @@ -153,9 +167,8 @@ void RotateApplet::rotateDefault ( ) } void RotateApplet::activated ( ) { - int defaultRotation = QPEApplication::defaultRotation(); int newRotation = defaultRotation; Config cfg( "qpe" ); @@ -163,27 +176,38 @@ void RotateApplet::activated ( ) int rotDirection = cfg.readNumEntry( "rotatedir" ); ODirection rot = CW; - if (rotDirection == -1) { + if (rotDirection == -1) + { rot = ODevice::inst ( )-> direction ( ); - } else { + } + else + { rot = (ODirection)rotDirection; } // hide inputs methods before rotation QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" ); - if ( m_flipped ) { + if ( m_flipped ) + { // if flipped, flip back to the original state, // regardless of rotation direction newRotation = defaultRotation; - } else { - if ( rot == CCW ) { + } + else + { + if ( rot == CCW ) + { newRotation = ( defaultRotation + 90 ) % 360; - } else if ( rot == CW ) { + } + else if ( rot == CW ) + { newRotation = ( defaultRotation + 270 ) % 360; - } else if ( rot == Flip ) { + } + else if ( rot == Flip ) + { newRotation = ( defaultRotation + 180 ) % 360; } } |