-rw-r--r-- | core/applets/rotateapplet/rotate.cpp | 43 | ||||
-rw-r--r-- | core/applets/rotateapplet/rotate.h | 1 |
2 files changed, 43 insertions, 1 deletions
diff --git a/core/applets/rotateapplet/rotate.cpp b/core/applets/rotateapplet/rotate.cpp index ac6b259..0da2f0c 100644 --- a/core/applets/rotateapplet/rotate.cpp +++ b/core/applets/rotateapplet/rotate.cpp @@ -45,93 +45,134 @@ using namespace Opie; RotateApplet::RotateApplet ( ) : QObject ( 0, "RotateApplet" ), ref ( 0 ), m_flipped( false ) { #if !defined(QT_NO_COP) QCopChannel *rotateChannel = new QCopChannel( "QPE/Rotation" , this ); connect ( rotateChannel, SIGNAL( received( const QCString &, const QByteArray &) ), this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) ); #endif } RotateApplet::~RotateApplet ( ) { } /** * Qcop receive method. */ void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data ) { QDataStream stream( data, IO_ReadOnly ); if ( msg == "flip()" ) { activated ( ); - } + } else if ( msg == "rotateDefault()") { + rotateDefault(); + } } int RotateApplet::position ( ) const { return 3; } QString RotateApplet::name ( ) const { return tr( "Rotate shortcut" ); } QString RotateApplet::text ( ) const { return tr( "Rotate" ); } /*QString RotateApplet::tr( const char* s ) const { return qApp->translate( "RotateApplet", s, 0 ); } QString RotateApplet::tr( const char* s, const char* p ) const { return qApp->translate( "RotateApplet", s, p ); } */ QIconSet RotateApplet::icon ( ) const { QPixmap pix; QImage img = Resource::loadImage ( "Rotation" ); if ( !img. isNull ( )) pix. convertFromImage ( img. smoothScale ( 14, 14 )); return pix; } QPopupMenu *RotateApplet::popup ( QWidget * ) const { return 0; } +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; + } + Config cfg( "qpe" ); + cfg.setGroup( "Appearance" ); + + bool rotateDisabled = cfg.readBoolEntry( "rotateEnabled",false ); + + if (rotateDisabled == true) + return; + + // hide inputs methods before rotation + QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" ); + + QCopEnvelope env( "QPE/System", "setCurrentRotation(int)" ); + env << rot; + + m_flipped = false; + +} void RotateApplet::activated ( ) { int defaultRotation = QPEApplication::defaultRotation(); int newRotation = defaultRotation; Config cfg( "qpe" ); cfg.setGroup( "Appearance" ); int rotDirection = cfg.readNumEntry( "rotatedir" ); ODirection rot = CW; if (rotDirection == -1) { rot = ODevice::inst ( )-> direction ( ); } else { rot = (ODirection)rotDirection; } // hide inputs methods before rotation QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" ); if ( m_flipped ) { // if flipped, flip back to the original state, // regardless of rotation direction diff --git a/core/applets/rotateapplet/rotate.h b/core/applets/rotateapplet/rotate.h index de2a707..572b82a 100644 --- a/core/applets/rotateapplet/rotate.h +++ b/core/applets/rotateapplet/rotate.h @@ -37,35 +37,36 @@ #include <qobject.h> class RotateApplet : public QObject, public MenuAppletInterface { Q_OBJECT public: RotateApplet ( ); virtual ~RotateApplet ( ); QRESULT queryInterface( const QUuid&, QUnknownInterface** ); Q_REFCOUNT virtual int position() const; virtual QString name ( ) const; virtual QIconSet icon ( ) const; virtual QString text ( ) const; /* virtual QString tr( const char* ) const; virtual QString tr( const char*, const char* ) const; */ virtual QPopupMenu *popup ( QWidget *parent ) const; virtual void activated ( ); + virtual void rotateDefault ( ); private slots: void channelReceived( const QCString &msg, const QByteArray & data ); private: ulong ref; bool m_flipped; }; #endif |