author | kergoth <kergoth> | 2003-03-27 05:26:47 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-03-27 05:26:47 (UTC) |
commit | a16e4becf2de9b5e26e179a6c664e830a06406a9 (patch) (unidiff) | |
tree | 329141983db204e7fb6b78d82e2e7107080d0bf6 | |
parent | 06bcd227c2806a35d77e9da4c1338d578680e3ed (diff) | |
download | opie-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.
-rw-r--r-- | core/applets/rotateapplet/rotate.cpp | 24 |
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 | ||
41 | RotateApplet::RotateApplet ( ) | 41 | RotateApplet::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 | ||
47 | RotateApplet::~RotateApplet ( ) | 46 | RotateApplet::~RotateApplet ( ) |
48 | { | 47 | { |
49 | } | 48 | } |
50 | 49 | ||
51 | int RotateApplet::position ( ) const | 50 | int RotateApplet::position ( ) const |
52 | { | 51 | { |
53 | return 2; | 52 | return 2; |
54 | } | 53 | } |
55 | 54 | ||
56 | QString RotateApplet::name ( ) const | 55 | QString RotateApplet::name ( ) const |
57 | { | 56 | { |
58 | return tr( "Rotate shortcut" ); | 57 | return tr( "Rotate shortcut" ); |
59 | } | 58 | } |
60 | 59 | ||
61 | QString RotateApplet::text ( ) const | 60 | QString RotateApplet::text ( ) const |
62 | { | 61 | { |
63 | return tr( "Rotate" ); | 62 | return tr( "Rotate" ); |
64 | } | 63 | } |
65 | 64 | ||
66 | QString RotateApplet::tr( const char* s ) const | 65 | QString 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 | ||
71 | QString RotateApplet::tr( const char* s, const char* p ) const | 70 | QString 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 | ||
76 | QIconSet RotateApplet::icon ( ) const | 75 | QIconSet 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 | ||
86 | QPopupMenu *RotateApplet::popup ( QWidget * ) const | 85 | QPopupMenu *RotateApplet::popup ( QWidget * ) const |
87 | { | 86 | { |
88 | return 0; | 87 | return 0; |
89 | } | 88 | } |
90 | 89 | ||
91 | void RotateApplet::activated ( ) | 90 | void 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 | ||
128 | QRESULT RotateApplet::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) | 124 | QRESULT 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 | ||
141 | Q_EXPORT_INTERFACE( ) | 137 | Q_EXPORT_INTERFACE( ) |
142 | { | 138 | { |
143 | Q_CREATE_INSTANCE( RotateApplet ) | 139 | Q_CREATE_INSTANCE( RotateApplet ) |
144 | } | 140 | } |
145 | 141 | ||
146 | 142 | ||