summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-03-27 05:26:47 (UTC)
committer kergoth <kergoth>2003-03-27 05:26:47 (UTC)
commita16e4becf2de9b5e26e179a6c664e830a06406a9 (patch) (unidiff)
tree329141983db204e7fb6b78d82e2e7107080d0bf6
parent06bcd227c2806a35d77e9da4c1338d578680e3ed (diff)
downloadopie-a16e4becf2de9b5e26e179a6c664e830a06406a9.zip
opie-a16e4becf2de9b5e26e179a6c664e830a06406a9.tar.gz
opie-a16e4becf2de9b5e26e179a6c664e830a06406a9.tar.bz2
1) now that setCurrentRotation sets QWS_DISPLAY, dont call setDefaultRotation
2) now that we arent calling setDefaultRotation, we can rely on defaultRotation() returning the actual original default rotation (deforient). So in turn, we can simply 'flip back' to the original rotation, rather than trying to calculate what the original rotation would have been.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/rotateapplet/rotate.cpp24
1 files changed, 10 insertions, 14 deletions
diff --git a/core/applets/rotateapplet/rotate.cpp b/core/applets/rotateapplet/rotate.cpp
index 3a5a3c9..42406da 100644
--- a/core/applets/rotateapplet/rotate.cpp
+++ b/core/applets/rotateapplet/rotate.cpp
@@ -1,146 +1,142 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2003 Maximilian Reiss <harlekin@handhelds.org> 3             .=l. Copyright (c) 2003 Maximilian Reiss <harlekin@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can 5 _;:,     .>    :=|. This library 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 Library General Public 7:=1 )Y*s>-.--   : the terms of the GNU Library 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 library is distributed in the hope that 12    .i_,=:_.      -<s. This library 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 16  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .     .: details. 18++=   -.     .     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with 21  -_. . .   )=.  = Library General Public License along with
22    --        :-= this library; see the file COPYING.LIB. 22    --        :-= this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29 29
30#include <qpe/resource.h> 30#include <qpe/resource.h>
31#include <qpe/qcopenvelope_qws.h> 31#include <qpe/qcopenvelope_qws.h>
32 32
33#include <qpe/qpeapplication.h> 33#include <qpe/qpeapplication.h>
34#include <qpe/config.h> 34#include <qpe/config.h>
35#include <qiconset.h> 35#include <qiconset.h>
36#include <qpopupmenu.h> 36#include <qpopupmenu.h>
37 37
38#include "rotate.h" 38#include "rotate.h"
39 39
40 40
41RotateApplet::RotateApplet ( ) 41RotateApplet::RotateApplet ( )
42 : QObject ( 0, "RotateApplet" ), ref ( 0 ) 42 : QObject ( 0, "RotateApplet" ), ref ( 0 ), m_flipped( false )
43{ 43{
44 m_flipped = false;
45} 44}
46 45
47RotateApplet::~RotateApplet ( ) 46RotateApplet::~RotateApplet ( )
48{ 47{
49} 48}
50 49
51int RotateApplet::position ( ) const 50int RotateApplet::position ( ) const
52{ 51{
53 return 2; 52 return 2;
54} 53}
55 54
56QString RotateApplet::name ( ) const 55QString RotateApplet::name ( ) const
57{ 56{
58 return tr( "Rotate shortcut" ); 57 return tr( "Rotate shortcut" );
59} 58}
60 59
61QString RotateApplet::text ( ) const 60QString RotateApplet::text ( ) const
62{ 61{
63 return tr( "Rotate" ); 62 return tr( "Rotate" );
64} 63}
65 64
66QString RotateApplet::tr( const char* s ) const 65QString RotateApplet::tr( const char* s ) const
67{ 66{
68 return qApp->translate( "RotateApplet", s, 0 ); 67 return qApp->translate( "RotateApplet", s, 0 );
69} 68}
70 69
71QString RotateApplet::tr( const char* s, const char* p ) const 70QString RotateApplet::tr( const char* s, const char* p ) const
72{ 71{
73 return qApp->translate( "RotateApplet", s, p ); 72 return qApp->translate( "RotateApplet", s, p );
74} 73}
75 74
76QIconSet RotateApplet::icon ( ) const 75QIconSet RotateApplet::icon ( ) const
77{ 76{
78 QPixmap pix; 77 QPixmap pix;
79 QImage img = Resource::loadImage ( "Rotation" ); 78 QImage img = Resource::loadImage ( "Rotation" );
80 79
81 if ( !img. isNull ( )) 80 if ( !img. isNull ( ))
82 pix. convertFromImage ( img. smoothScale ( 14, 14 )); 81 pix. convertFromImage ( img. smoothScale ( 14, 14 ));
83 return pix; 82 return pix;
84} 83}
85 84
86QPopupMenu *RotateApplet::popup ( QWidget * ) const 85QPopupMenu *RotateApplet::popup ( QWidget * ) const
87{ 86{
88 return 0; 87 return 0;
89} 88}
90 89
91void RotateApplet::activated ( ) 90void RotateApplet::activated ( )
92{ 91{
93 int currentRotation = QPEApplication::defaultRotation(); 92 int defaultRotation = QPEApplication::defaultRotation();
94 93
95 int newRotation; 94 int newRotation;
96 95
97 Config cfg( "qpe" ); 96 Config cfg( "qpe" );
98 cfg.setGroup( "Appearance" ); 97 cfg.setGroup( "Appearance" );
99 98
100 // 0 -> 90° clockwise, 1 -> 90° counterclockwise 99 // 0 -> 90° clockwise, 1 -> 90° counterclockwise
101 bool rotDirection = cfg.readBoolEntry( "rotatedir" ); 100 bool rotDirection = cfg.readBoolEntry( "rotatedir", 0 );
102 101
103 // hide inputs methods before rotation 102 // hide inputs methods before rotation
104 QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" ); 103 QCopEnvelope en( "QPE/TaskBar", "hideInputMethod()" );
105 104
106 if ( m_flipped ) { 105 if ( m_flipped ) {
107 if ( rotDirection ) { 106 // if flipped, flip back to the original state,
108 newRotation = ( currentRotation + 270 ) % 360; 107 // regardless of rotation direction
109 } else { 108 newRotation = defaultRotation;
110 newRotation = ( currentRotation + 90 ) % 360;
111 }
112 } else { 109 } else {
113 if ( rotDirection ) { 110 if ( rotDirection ) {
114 newRotation = ( currentRotation + 90 ) % 360; 111 newRotation = ( defaultRotation + 90 ) % 360;
115 } else { 112 } else {
116 newRotation = ( currentRotation + 270 ) % 360; 113 newRotation = ( defaultRotation + 270 ) % 360;
117 } 114 }
118 } 115 }
116
119 QCopEnvelope env( "QPE/System", "setCurrentRotation(int)" ); 117 QCopEnvelope env( "QPE/System", "setCurrentRotation(int)" );
120 env << newRotation; 118 env << newRotation;
121 QCopEnvelope env2( "QPE/System", "setDefaultRotation(int)" );
122 env2 << newRotation;
123 119
124 m_flipped = !m_flipped; 120 m_flipped = !m_flipped;
125} 121}
126 122
127 123
128QRESULT RotateApplet::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) 124QRESULT RotateApplet::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
129{ 125{
130 *iface = 0; 126 *iface = 0;
131 if ( uuid == IID_QUnknown ) 127 if ( uuid == IID_QUnknown )
132 *iface = this; 128 *iface = this;
133 else if ( uuid == IID_MenuApplet ) 129 else if ( uuid == IID_MenuApplet )
134 *iface = this; 130 *iface = this;
135 131
136 if ( *iface ) 132 if ( *iface )
137 (*iface)-> addRef ( ); 133 (*iface)-> addRef ( );
138 return QS_OK; 134 return QS_OK;
139} 135}
140 136
141Q_EXPORT_INTERFACE( ) 137Q_EXPORT_INTERFACE( )
142{ 138{
143 Q_CREATE_INSTANCE( RotateApplet ) 139 Q_CREATE_INSTANCE( RotateApplet )
144} 140}
145 141
146 142