1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
/*
* copyright : (c) 2003 by Greg Gilbert
* email : greg@treke.net
* based on the cardmon applet by Max Reiss
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
*************************************************************************/
#include "autorotate.h"
#include <qpe/resource.h>
#include <opie/odevice.h>
#include <qpe/applnk.h>
#include <qpe/config.h>
#include <qcopchannel_qws.h>
#include <qpainter.h>
#include <qmessagebox.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qtimer.h>
#include <qapplication.h>
using namespace Opie;
AutoRotate::AutoRotate(QWidget * parent):QWidget(parent),
enabledPm( Resource::loadPixmap("autorotate/rotate") ),
disabledPm( Resource::loadPixmap("autorotate/norotate") )
{
setFixedWidth ( AppLnk::smallIconSize() );
setFixedHeight ( AppLnk::smallIconSize() );
repaint(true);
popupMenu = 0;
show();
}
AutoRotate::~AutoRotate()
{
if (popupMenu) {
delete popupMenu;
}
}
void AutoRotate::mousePressEvent(QMouseEvent *)
{
QPopupMenu *menu = new QPopupMenu(this);
if (isRotateEnabled())
menu->insertItem("Disable Rotation",1);
else
menu->insertItem("Enable Rotation",1);
QPoint p = mapToGlobal(QPoint(0, 0));
QSize s = menu->sizeHint();
int opt = menu->exec(QPoint(p.x() + (width() / 2) - (s.width() / 2),
p.y() - s.height()), 0);
if (opt==1) {
if (isRotateEnabled())
setRotateEnabled(false);
else
setRotateEnabled(true);
repaint(true);
}
delete menu;
}
void AutoRotate::paintEvent(QPaintEvent *)
{
QPainter p(this);
if ( isRotateEnabled() ) {
p.drawPixmap(0, 0, enabledPm );
} else {
p.drawPixmap(0, 0, disabledPm );
}
}
void AutoRotate::setRotateEnabled(bool status)
{
Config cfg( "qpe" );
cfg.setGroup( "Appearance" );
cfg.writeEntry( "rotateEnabled",status );
}
bool AutoRotate::isRotateEnabled()
{
Config cfg( "qpe" );
cfg.setGroup( "Appearance" );
bool res = cfg.readBoolEntry( "rotateEnabled" );
if (res )
qDebug("Enabled");
else
qDebug("Disabled");
return res;
}
|