summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/rotateapplet/rotate.cpp27
-rw-r--r--core/applets/rotateapplet/rotate.h4
2 files changed, 24 insertions, 7 deletions
diff --git a/core/applets/rotateapplet/rotate.cpp b/core/applets/rotateapplet/rotate.cpp
index 79098d4..d8081a6 100644
--- a/core/applets/rotateapplet/rotate.cpp
+++ b/core/applets/rotateapplet/rotate.cpp
@@ -17,94 +17,111 @@
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .     .: details. 21++=   -.     .     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-= this library; see the file COPYING.LIB. 25    --        :-= this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#include "rotate.h" 31#include "rotate.h"
32 32
33/* OPIE */ 33/* OPIE */
34#include <opie/odevice.h> 34#include <opie/odevice.h>
35#include <qpe/applnk.h> 35#include <qpe/applnk.h>
36#include <qpe/config.h> 36#include <qpe/config.h>
37#include <qpe/power.h> 37#include <qpe/power.h>
38#include <qpe/qpeapplication.h> 38#include <qpe/qpeapplication.h>
39#include <qpe/qcopenvelope_qws.h> 39#include <qpe/qcopenvelope_qws.h>
40#include <qpe/resource.h> 40#include <qpe/resource.h>
41using namespace Opie;
41 42
42/* QT */ 43/* QT */
43#include <qiconset.h> 44#include <qiconset.h>
44#include <qpopupmenu.h> 45#include <qpopupmenu.h>
45 46
46using namespace Opie; 47#include <time.h>
47 48
48RotateApplet::RotateApplet() 49RotateApplet::RotateApplet()
49 :QObject( 0, "RotateApplet" ), ref( 0 ), m_flipped( false ) 50 :QObject( 0, "RotateApplet" ), ref( 0 ), m_flipped( false )
50{ 51{
51 52
52#if !defined(QT_NO_COP) 53#if !defined(QT_NO_COP)
53 QCopChannel *rotateChannel = new QCopChannel( "QPE/Rotation" , this ); 54 QCopChannel *rotateChannel = new QCopChannel( "QPE/Rotation" , this );
54 connect ( rotateChannel, SIGNAL( received( const QCString &, const QByteArray &) ), 55 connect ( rotateChannel, SIGNAL( received( const QCString &, const QByteArray &) ),
55 this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) ); 56 this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) );
56#endif 57#endif
57 58
58} 59}
59 60
60RotateApplet::~RotateApplet ( ) 61RotateApplet::~RotateApplet ( )
61{} 62{}
62 63
63/** 64/**
64 * Qcop receive method. 65 * Qcop receive method.
65 */ 66 */
66void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data ) 67void RotateApplet::channelReceived( const QCString &msg, const QByteArray & data )
67{ 68{
68 qDebug( "RotateApplet::channelReceived( '%s' )", (const char*) msg ); 69 qDebug( "RotateApplet::channelReceived( '%s' )", (const char*) msg );
69 70
70 if ( ODevice::inst()->hasHingeSensor() ) 71 if ( ODevice::inst()->hasHingeSensor() )
71 { 72 {
73 struct timespec interval;
74 struct timespec remain;
75 interval.tv_sec = 0;
76 interval.tv_nsec = 600;
77 ::nanosleep( &interval, &remain );
72 OHingeStatus status = ODevice::inst()->readHingeSensor(); 78 OHingeStatus status = ODevice::inst()->readHingeSensor();
73 qDebug( "RotateApplet::readHingeSensor = %d", (int) status ); 79 qDebug( "RotateApplet::readHingeSensor = %d", (int) status );
80
81 Config cfg( "apm" );
82 cfg.setGroup( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ? "AC" : "Battery" );
83 int action = cfg.readNumEntry( "CloseHingeAction", 0 );
84
74 if ( status == CASE_CLOSED ) 85 if ( status == CASE_CLOSED )
75 { 86 {
76 Config cfg( "apm" );
77 cfg.setGroup( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ? "AC" : "Battery" );
78 int action = cfg.readNumEntry( "CloseHingeAction", 0 );
79 switch ( action ) 87 switch ( action )
80 { 88 {
81 case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 0 ); break; 89 case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 0 ); break;
82 case 2: /* SUSPEND */ ODevice::inst()->suspend(); break; 90 case 2: /* SUSPEND */ ODevice::inst()->suspend(); break;
83 default: /* IGNORE */ break; 91 default: /* IGNORE */ break;
84 } 92 }
85 qDebug( "RotateApplet::switchAction %d performed.", cfg.readNumEntry( "CloseHingeAction", 0 ) );
86 } 93 }
94 else /* status != CASE_CLOSED */
95 {
96 switch ( action )
97 {
98 case 1: /* DISPLAY OFF */ ODevice::inst()->setDisplayBrightness( 127 ); break;
99 case 2: /* SUSPEND */ /* How to wake up the device from kernel? */; break;
100 default: /* IGNORE */ break;
101 }
102 }
103 qDebug( "RotateApplet::switchAction %d performed.", cfg.readNumEntry( "CloseHingeAction", 0 ) );
87 } 104 }
88 105
89 QDataStream stream( data, IO_ReadOnly ); 106 QDataStream stream( data, IO_ReadOnly );
90 if ( msg == "flip()" ) 107 if ( msg == "flip()" )
91 { 108 {
92 activated ( ); 109 activated ( );
93 } 110 }
94 else if ( msg == "rotateDefault()") 111 else if ( msg == "rotateDefault()")
95 { 112 {
96 rotateDefault(); 113 rotateDefault();
97 } 114 }
98} 115}
99 116
100int RotateApplet::position() const 117int RotateApplet::position() const
101{ 118{
102 return 3; 119 return 3;
103} 120}
104 121
105QString RotateApplet::name() const 122QString RotateApplet::name() const
106{ 123{
107 return tr( "Rotate shortcut" ); 124 return tr( "Rotate shortcut" );
108} 125}
109 126
110QString RotateApplet::text() const 127QString RotateApplet::text() const
diff --git a/core/applets/rotateapplet/rotate.h b/core/applets/rotateapplet/rotate.h
index 572b82a..4403c7d 100644
--- a/core/applets/rotateapplet/rotate.h
+++ b/core/applets/rotateapplet/rotate.h
@@ -36,37 +36,37 @@
36 36
37#include <qobject.h> 37#include <qobject.h>
38 38
39class RotateApplet : public QObject, public MenuAppletInterface 39class RotateApplet : public QObject, public MenuAppletInterface
40{ 40{
41 41
42 Q_OBJECT 42 Q_OBJECT
43 43
44public: 44public:
45 RotateApplet ( ); 45 RotateApplet ( );
46 virtual ~RotateApplet ( ); 46 virtual ~RotateApplet ( );
47 47
48 QRESULT queryInterface( const QUuid&, QUnknownInterface** ); 48 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
49 Q_REFCOUNT 49 Q_REFCOUNT
50 50
51 virtual int position() const; 51 virtual int position() const;
52 52
53 virtual QString name ( ) const; 53 virtual QString name ( ) const;
54 virtual QIconSet icon ( ) const; 54 virtual QIconSet icon ( ) const;
55 virtual QString text ( ) const; 55 virtual QString text ( ) const;
56 /* virtual QString tr( const char* ) const; 56 /* virtual QString tr( const char* ) const;
57 virtual QString tr( const char*, const char* ) const; 57 virtual QString tr( const char*, const char* ) const;
58 */ 58 */
59 virtual QPopupMenu *popup ( QWidget *parent ) const; 59 virtual QPopupMenu *popup ( QWidget *parent ) const;
60 virtual void activated ( ); 60 virtual void activated ( );
61 virtual void rotateDefault ( ); 61 virtual void rotateDefault ( );
62 62
63private slots: 63private slots:
64 void channelReceived( const QCString &msg, const QByteArray & data ); 64 void channelReceived( const QCString &msg, const QByteArray & data );
65 65
66private: 66private:
67 ulong ref; 67 ulong ref;
68 bool m_flipped; 68 bool m_flipped;
69 69
70}; 70};
71 71
72#endif 72#endif