summaryrefslogtreecommitdiff
authorsandman <sandman>2002-11-01 18:13:18 (UTC)
committer sandman <sandman>2002-11-01 18:13:18 (UTC)
commit2259e3ab9f2e06a4ee4dbd633c17221a47fdb7ba (patch) (unidiff)
treef3e6bb8ee6c0d8f2671a63c240d1145e710da82d
parent7b7b760ca3886d5b6562a88b5c2ef8e610b73eb8 (diff)
downloadopie-2259e3ab9f2e06a4ee4dbd633c17221a47fdb7ba.zip
opie-2259e3ab9f2e06a4ee4dbd633c17221a47fdb7ba.tar.gz
opie-2259e3ab9f2e06a4ee4dbd633c17221a47fdb7ba.tar.bz2
- Completly reworked the backlight "preview":
every slider/control that relates to backlight levels, is now switching the lcd to this level for 2 seconds - after that the backlight switches back to the standard level (or light sensor control) - Many bugfixes and usability improvements in light sensor calibration
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/light-and-power/calibration.cpp111
-rw-r--r--core/settings/light-and-power/calibration.h4
-rw-r--r--core/settings/light-and-power/light-and-power.pro4
-rw-r--r--core/settings/light-and-power/light.cpp57
-rw-r--r--core/settings/light-and-power/lightsettingsbase.ui86
-rw-r--r--core/settings/light-and-power/main.cpp2
-rw-r--r--core/settings/light-and-power/sensor.cpp34
-rw-r--r--core/settings/light-and-power/sensor.h8
8 files changed, 164 insertions, 142 deletions
diff --git a/core/settings/light-and-power/calibration.cpp b/core/settings/light-and-power/calibration.cpp
index 6a3360f..aed2bc8 100644
--- a/core/settings/light-and-power/calibration.cpp
+++ b/core/settings/light-and-power/calibration.cpp
@@ -29,12 +29,15 @@
29 29
30#include <qpainter.h> 30#include <qpainter.h>
31#include <qpalette.h> 31#include <qpalette.h>
32#include <qpixmap.h>
32 33
33#define BRD 2 34#define BRD 3
34 35
35Calibration::Calibration ( QWidget *parent, const char *name, WFlags fl ) 36Calibration::Calibration ( QWidget *parent, const char *name, WFlags fl )
36 : QWidget ( parent, name, fl ) 37 : QWidget ( parent, name, fl | WRepaintNoErase )
37{ 38{
39 setBackgroundMode ( NoBackground );
40
38 m_scale = QSize ( 256, 256 ); 41 m_scale = QSize ( 256, 256 );
39 m_steps = 5; 42 m_steps = 5;
40 m_dragged = -1; 43 m_dragged = -1;
@@ -121,20 +124,28 @@ void Calibration::checkPoints ( )
121 int dx = m_scale. width ( ); 124 int dx = m_scale. width ( );
122 int dy = m_scale. height ( ); 125 int dy = m_scale. height ( );
123 126
127 if ( m_p [1]. x ( ) < 0 )
128 m_p [1]. setX ( 0 );
124 if ( m_p [1]. x ( ) >= dx ) 129 if ( m_p [1]. x ( ) >= dx )
125 m_p [1]. setX ( dx - 1 ); 130 m_p [1]. setX ( dx - 1 );
131 if ( m_p [0]. x ( ) < 0 )
132 m_p [0]. setX ( 0 );
126 if ( m_p [0]. x ( ) > m_p [1]. x ( )) 133 if ( m_p [0]. x ( ) > m_p [1]. x ( ))
127 m_p [0]. setX ( m_p [1]. x ( )); 134 m_p [0]. setX ( m_p [1]. x ( ));
128 135
136 if ( m_p [1]. y ( ) < 0 )
137 m_p [1]. setY ( 0 );
129 if ( m_p [1]. y ( ) >= dy ) 138 if ( m_p [1]. y ( ) >= dy )
130 m_p [1]. setY ( dy - 1 ); 139 m_p [1]. setY ( dy - 1 );
140 if ( m_p [0]. y ( ) < 0 )
141 m_p [0]. setY ( 0 );
131 if ( m_p [0]. y ( ) > m_p [1]. y ( )) 142 if ( m_p [0]. y ( ) > m_p [1]. y ( ))
132 m_p [0]. setY ( m_p [1]. y ( )); 143 m_p [0]. setY ( m_p [1]. y ( ));
133} 144}
134 145
135 146
136#define SCALEX(x) (BRD+x*(width()- 2*BRD)/m_scale.width()) 147#define SCALEX(x) (BRD+(x)*(width()- 2*BRD)/m_scale.width())
137#define SCALEY(y) (BRD+y*(height()-2*BRD)/m_scale.height()) 148#define SCALEY(y) (BRD+(y)*(height()-2*BRD)/m_scale.height())
138 149
139 150
140static QRect around ( int x, int y ) 151static QRect around ( int x, int y )
@@ -155,8 +166,8 @@ void Calibration::mousePressEvent ( QMouseEvent *e )
155 x [i] = SCALEX( m_p [i]. x ( )); 166 x [i] = SCALEX( m_p [i]. x ( ));
156 y [i] = SCALEY( m_p [i]. y ( )); 167 y [i] = SCALEY( m_p [i]. y ( ));
157 168
158 if (( QABS( e-> x ( ) - x [i] ) <= BRD ) && 169 if (( QABS( e-> x ( ) - x [i] ) <= 2 * BRD ) &&
159 ( QABS( e-> y ( ) - y [i] ) <= BRD )) { 170 ( QABS( e-> y ( ) - y [i] ) <= 2 * BRD )) {
160 m_dragged = i; 171 m_dragged = i;
161 break; 172 break;
162 } 173 }
@@ -169,7 +180,7 @@ void Calibration::mousePressEvent ( QMouseEvent *e )
169 r |= around ( x [olddragged], y [olddragged] ); 180 r |= around ( x [olddragged], y [olddragged] );
170 if ( m_dragged >= 0 ) 181 if ( m_dragged >= 0 )
171 r |= around ( x [m_dragged], y [m_dragged] ); 182 r |= around ( x [m_dragged], y [m_dragged] );
172 repaint ( r ); 183 repaint ( r, false );
173 } 184 }
174} 185}
175 186
@@ -184,10 +195,18 @@ void Calibration::mouseMoveEvent ( QMouseEvent *e )
184 n [m_dragged]. setY (( e-> y ( ) - BRD ) * m_scale. height ( ) / ( height ( ) - 2 * BRD )); 195 n [m_dragged]. setY (( e-> y ( ) - BRD ) * m_scale. height ( ) / ( height ( ) - 2 * BRD ));
185 n [1 - m_dragged] = m_p [1 - m_dragged]; 196 n [1 - m_dragged] = m_p [1 - m_dragged];
186 197
187 if (( n [0]. x ( ) > n [1]. x ( )) || ( n [m_dragged]. x ( ) < 0 ) || ( n [m_dragged]. x ( ) >= m_scale. width ( ))) 198 if ( n [m_dragged]. x ( ) < 0 )
188 n [m_dragged]. setX ( m_p [m_dragged]. x ( )); 199 n [m_dragged]. setX ( 0 );
189 if (( n [0]. y ( ) > n [1]. y ( )) || ( n [m_dragged]. y ( ) < 0 ) || ( n [m_dragged]. y ( ) >= m_scale. height ( ))) 200 if ( n [m_dragged]. x ( ) >= m_scale. width ( ))
190 n [m_dragged]. setY ( m_p [m_dragged]. y ( )); 201 n [m_dragged]. setX ( m_scale. width ( ) - 1 );
202 if ( n [0]. x ( ) > n [1]. x ( ))
203 n [m_dragged]. setX ( n [1 - m_dragged]. x ( ));
204 if ( n [m_dragged]. y ( ) < 0 )
205 n [m_dragged]. setY ( 0 );
206 if ( n [m_dragged]. y ( ) >= m_scale. height ( ))
207 n [m_dragged]. setY ( m_scale. height ( ) - 1 );
208 if ( n [0]. y ( ) > n [1]. y ( ))
209 n [m_dragged]. setY ( n [1 - m_dragged]. y ( ));
191 210
192 QRect r; 211 QRect r;
193 int ox [2], oy [2], nx [2], ny [2]; 212 int ox [2], oy [2], nx [2], ny [2];
@@ -206,10 +225,14 @@ void Calibration::mouseMoveEvent ( QMouseEvent *e )
206 if ( i == 0 ) { 225 if ( i == 0 ) {
207 r |= QRect ( 0, ny [0], nx [0] - 0 + 1, 1 ); 226 r |= QRect ( 0, ny [0], nx [0] - 0 + 1, 1 );
208 r |= QRect ( 0, oy [0], ox [0] - 0 + 1, 1 ); 227 r |= QRect ( 0, oy [0], ox [0] - 0 + 1, 1 );
228
229 emit startPointChanged ( startPoint ( ));
209 } 230 }
210 else if ( i == 1 ) { 231 else if ( i == 1 ) {
211 r |= QRect ( nx [1], ny [1], width ( ) - nx [1], 1 ); 232 r |= QRect ( nx [1], ny [1], width ( ) - nx [1], 1 );
212 r |= QRect ( ox [1], oy [1], width ( ) - ox [1], 1 ); 233 r |= QRect ( ox [1], oy [1], width ( ) - ox [1], 1 );
234
235 emit endPointChanged ( endPoint ( ));
213 } 236 }
214 } 237 }
215 } 238 }
@@ -217,7 +240,7 @@ void Calibration::mouseMoveEvent ( QMouseEvent *e )
217 r |= QRect ( nx [0], ny [0], nx [1] - nx [0] + 1, ny [1] - ny [0] + 1 ); 240 r |= QRect ( nx [0], ny [0], nx [1] - nx [0] + 1, ny [1] - ny [0] + 1 );
218 r |= QRect ( ox [0], oy [0], ox [1] - ox [0] + 1, oy [1] - oy [0] + 1 ); 241 r |= QRect ( ox [0], oy [0], ox [1] - ox [0] + 1, oy [1] - oy [0] + 1 );
219 242
220 repaint ( r ); 243 repaint ( r, false );
221 } 244 }
222} 245}
223 246
@@ -233,14 +256,15 @@ void Calibration::mouseReleaseEvent ( QMouseEvent *e )
233 int y = SCALEY( m_p [m_dragged]. y ( )); 256 int y = SCALEY( m_p [m_dragged]. y ( ));
234 m_dragged = -1; 257 m_dragged = -1;
235 258
236 repaint ( around ( x, y )); 259 repaint ( around ( x, y ), false );
237} 260}
238 261
239void Calibration::paintEvent ( QPaintEvent * ) 262void Calibration::paintEvent ( QPaintEvent *pe )
240{ 263{
241 QPainter p ( this ); 264 QPixmap pix ( size ( ));
242 QColorGroup g = colorGroup ( ); 265 QPainter p ( &pix, this );
243 266 QRect cr = pe-> rect ( );
267
244 int x0 = SCALEX( m_p [0]. x ( )); 268 int x0 = SCALEX( m_p [0]. x ( ));
245 int y0 = SCALEY( m_p [0]. y ( )); 269 int y0 = SCALEY( m_p [0]. y ( ));
246 int x1 = SCALEX( m_p [1]. x ( )); 270 int x1 = SCALEX( m_p [1]. x ( ));
@@ -249,15 +273,48 @@ void Calibration::paintEvent ( QPaintEvent * )
249 int dx = x1 - x0; 273 int dx = x1 - x0;
250 int dy = y1 - y0; 274 int dy = y1 - y0;
251 275
276 // restrict steps to real x and y resolution
277 int st = QMIN( QMIN( m_steps, ( dx + 1 )), ( dy + 1 ));
278
279 QString stepstr = tr( "%1 Steps" ). arg ( st );
280 QRect tr = p. boundingRect ( BRD, BRD, width ( ) - 2*BRD, height() - 2*BRD, AlignTop | AlignRight, stepstr );
281 tr. setLeft ( tr. left ( ) - 20 );
282 if ( p. hasClipping ( ))
283 p. setClipRegion ( p. clipRegion ( ) | QRegion ( tr ));
284
285 QColorGroup g = colorGroup ( );
286
287 p. fillRect ( cr, g. base ( ));
288 p. fillRect ( tr, g. base ( ));
289
252 int ex = x0, ey = y0; 290 int ex = x0, ey = y0;
253 291
292 p. setPen ( g. mid ( ));
293
294 int gx0 = SCALEX( 0 );
295 int gy0 = SCALEY( 0 );
296 int gx1 = SCALEX( m_scale. width ( ) - 1 );
297 int gy1 = SCALEY( m_scale. height ( ) - 1 );
298
299 int xdiv = QMIN( 4, m_scale. width ( ));
300 int ydiv = QMIN( 4, m_scale. height ( ));
301
302 xdiv = ( gx1 - gx0 + 1 ) / xdiv;
303 ydiv = ( gy1 - gy0 + 1 ) / ydiv;
304
305 for ( int i = gx0 + xdiv; i <= ( gx1 - xdiv ); i += xdiv )
306 p. drawLine ( i, gy0, i, gy1 );
307
308 for ( int i = gy0 + ydiv; i <= ( gy1 - ydiv ); i += ydiv )
309 p. drawLine ( gx0, i, gx1, i );
310
254 p. setPen ( g. highlight ( )); 311 p. setPen ( g. highlight ( ));
255 312
256 p. drawLine ( BRD, ey, ex, ey ); 313 p. drawLine ( BRD, ey, ex, ey );
257 314
258 for ( int i = 1; i < m_steps; i++ ) { 315 for ( int i = 1; i < st; i++ ) {
259 int fx = x0 + dx * i / m_steps; 316 int fx = x0 + dx * i / st;
260 int fy = y0 + dy * i / ( m_steps - 1 ); 317 int fy = y0 + dy * i / ( st - 1 );
261 318
262 p. drawLine ( ex, ey, fx, ey ); 319 p. drawLine ( ex, ey, fx, ey );
263 p. drawLine ( fx, ey, fx, fy ); 320 p. drawLine ( fx, ey, fx, fy );
@@ -265,13 +322,25 @@ void Calibration::paintEvent ( QPaintEvent * )
265 ex = fx; 322 ex = fx;
266 ey = fy; 323 ey = fy;
267 } 324 }
325 if ( st == 1 ) {
326 p. drawLine ( ex, ey, ex, y1 );
327 ey = y1;
328 }
268 329
269 p. drawLine ( ex, ey, width ( ) - 1 - BRD, ey ); 330 p. drawLine ( ex, ey, width ( ) - 1 - BRD, ey );
270 331
332
271 p. fillRect ( around ( x0, y0 ), m_dragged == 0 ? g. highlightedText ( ) : g. text ( )); 333 p. fillRect ( around ( x0, y0 ), m_dragged == 0 ? g. highlightedText ( ) : g. text ( ));
334 p. drawRect ( around ( x0, y0 ));
272 p. fillRect ( around ( x1, y1 ), m_dragged == 1 ? g. highlightedText ( ) : g. text ( )); 335 p. fillRect ( around ( x1, y1 ), m_dragged == 1 ? g. highlightedText ( ) : g. text ( ));
336 p. drawRect ( around ( x1, y1 ));
273 337
274 p. setPen ( g. text ( )); 338 p. setPen ( g. text ( ));
275 p. drawText ( QRect ( BRD, BRD, width ( ) - 2*BRD, height() - 2*BRD ), AlignTop | AlignRight, tr( "%1 Steps" ). arg ( m_steps )); 339 p. drawText ( tr, AlignTop | AlignRight, stepstr );
340
341 p. end ( );
342 bitBlt ( this, cr. topLeft ( ), &pix, cr );
343 if ( !cr. contains ( tr ))
344 bitBlt ( this, tr. topLeft ( ), &pix, tr );
276} 345}
277 346
diff --git a/core/settings/light-and-power/calibration.h b/core/settings/light-and-power/calibration.h
index 2bff69a..ffa63b2 100644
--- a/core/settings/light-and-power/calibration.h
+++ b/core/settings/light-and-power/calibration.h
@@ -43,6 +43,10 @@ public:
43 QPoint startPoint ( ) const; 43 QPoint startPoint ( ) const;
44 QPoint endPoint ( ) const; 44 QPoint endPoint ( ) const;
45 45
46signals:
47 void startPointChanged ( const QPoint & );
48 void endPointChanged ( const QPoint & );
49
46public slots: 50public slots:
47 void setScale ( const QSize &s ); 51 void setScale ( const QSize &s );
48 void setLineSteps ( int step ); 52 void setLineSteps ( int step );
diff --git a/core/settings/light-and-power/light-and-power.pro b/core/settings/light-and-power/light-and-power.pro
index c89a26d..80c6631 100644
--- a/core/settings/light-and-power/light-and-power.pro
+++ b/core/settings/light-and-power/light-and-power.pro
@@ -1,7 +1,7 @@
1 TEMPLATE= app 1 TEMPLATE= app
2 CONFIG += qt warn_on release 2 CONFIG += qt warn_on debug
3 DESTDIR = $(OPIEDIR)/bin 3 DESTDIR = $(OPIEDIR)/bin
4 HEADERS = settings.h sensor.h calibration.h 4 HEADERS = light.h sensor.h calibration.h
5 SOURCES = light.cpp main.cpp sensor.cpp calibration.cpp 5 SOURCES = light.cpp main.cpp sensor.cpp calibration.cpp
6 INTERFACES= lightsettingsbase.ui sensorbase.ui 6 INTERFACES= lightsettingsbase.ui sensorbase.ui
7INCLUDEPATH += $(OPIEDIR)/include 7INCLUDEPATH += $(OPIEDIR)/include
diff --git a/core/settings/light-and-power/light.cpp b/core/settings/light-and-power/light.cpp
index c0ba60b..21377b7 100644
--- a/core/settings/light-and-power/light.cpp
+++ b/core/settings/light-and-power/light.cpp
@@ -26,7 +26,7 @@
26 26
27*/ 27*/
28 28
29#include "settings.h" 29#include "light.h"
30 30
31#include <qpe/config.h> 31#include <qpe/config.h>
32#include <qpe/qpeapplication.h> 32#include <qpe/qpeapplication.h>
@@ -38,6 +38,7 @@
38#include <qcheckbox.h> 38#include <qcheckbox.h>
39#include <qtabwidget.h> 39#include <qtabwidget.h>
40#include <qslider.h> 40#include <qslider.h>
41#include <qtimer.h>
41#include <qspinbox.h> 42#include <qspinbox.h>
42#include <qpushbutton.h> 43#include <qpushbutton.h>
43 44
@@ -48,7 +49,7 @@
48using namespace Opie; 49using namespace Opie;
49 50
50LightSettings::LightSettings( QWidget* parent, const char* name, WFlags ) 51LightSettings::LightSettings( QWidget* parent, const char* name, WFlags )
51 : LightSettingsBase( parent, name, true, WStyle_ContextHelp ) 52 : LightSettingsBase( parent, name, false, WStyle_ContextHelp )
52{ 53{
53 m_res = ODevice::inst ( )-> displayBrightnessResolution ( ); 54 m_res = ODevice::inst ( )-> displayBrightnessResolution ( );
54 55
@@ -63,14 +64,14 @@ LightSettings::LightSettings( QWidget* parent, const char* name, WFlags )
63 config. setGroup ( "Battery" ); 64 config. setGroup ( "Battery" );
64 65
65 // battery spinboxes 66 // battery spinboxes
66 interval_dim-> setValue ( config. readNumEntry ( "Dim", 20 )); 67 interval_dim-> setValue ( config. readNumEntry ( "Dim", 30 ));
67 interval_lightoff-> setValue ( config. readNumEntry ( "LightOff", 30 )); 68 interval_lightoff-> setValue ( config. readNumEntry ( "LightOff", 20 ));
68 interval_suspend-> setValue ( config. readNumEntry ( "Suspend", 60 )); 69 interval_suspend-> setValue ( config. readNumEntry ( "Suspend", 60 ));
69 70
70 // battery check and slider 71 // battery check and slider
71 LcdOffOnly-> setChecked ( config. readBoolEntry ( "LcdOffOnly", false )); 72 LcdOffOnly-> setChecked ( config. readBoolEntry ( "LcdOffOnly", false ));
72 73
73 int bright = config. readNumEntry ( "Brightness", 255 ); 74 int bright = config. readNumEntry ( "Brightness", 127 );
74 brightness-> setMaxValue ( m_res - 1 ); 75 brightness-> setMaxValue ( m_res - 1 );
75 brightness-> setTickInterval ( QMAX( 1, m_res / 16 )); 76 brightness-> setTickInterval ( QMAX( 1, m_res / 16 ));
76 brightness-> setLineStep ( QMAX( 1, m_res / 16 )); 77 brightness-> setLineStep ( QMAX( 1, m_res / 16 ));
@@ -84,9 +85,9 @@ LightSettings::LightSettings( QWidget* parent, const char* name, WFlags )
84 config. setGroup ( "AC" ); 85 config. setGroup ( "AC" );
85 86
86 // ac spinboxes 87 // ac spinboxes
87 interval_dim_ac_3-> setValue ( config. readNumEntry ( "Dim", 20 )); 88 interval_dim_ac_3-> setValue ( config. readNumEntry ( "Dim", 60 ));
88 interval_lightoff_ac_3-> setValue ( config. readNumEntry ( "LightOff", 30 )); 89 interval_lightoff_ac_3-> setValue ( config. readNumEntry ( "LightOff", 120 ));
89 interval_suspend_ac_3-> setValue ( config. readNumEntry ( "Suspend", 60 )); 90 interval_suspend_ac_3-> setValue ( config. readNumEntry ( "Suspend", 0 ));
90 91
91 // ac check and slider 92 // ac check and slider
92 LcdOffOnly_2_3-> setChecked ( config. readBoolEntry ( "LcdOffOnly", false )); 93 LcdOffOnly_2_3-> setChecked ( config. readBoolEntry ( "LcdOffOnly", false ));
@@ -108,24 +109,28 @@ LightSettings::LightSettings( QWidget* parent, const char* name, WFlags )
108 lowSpinBox-> setValue ( config. readNumEntry ( "powerverylow", 10 ) ); 109 lowSpinBox-> setValue ( config. readNumEntry ( "powerverylow", 10 ) );
109 criticalSpinBox-> setValue ( config. readNumEntry ( "powercritical", 5 ) ); 110 criticalSpinBox-> setValue ( config. readNumEntry ( "powercritical", 5 ) );
110 111
112 m_resettimer = new QTimer ( this );
113 connect ( m_resettimer, SIGNAL( timeout ( )), this, SLOT( resetBacklight ( )));
114
111 if ( PowerStatusManager::readStatus ( ). acStatus ( ) != PowerStatus::Online ) { 115 if ( PowerStatusManager::readStatus ( ). acStatus ( ) != PowerStatus::Online ) {
112 connect ( brightness, SIGNAL( valueChanged ( int )), this, SLOT( setBacklight ( int )));
113 tabs-> setCurrentPage ( 0 ); 116 tabs-> setCurrentPage ( 0 );
114 } 117 }
115 else { 118 else {
116 connect ( brightness_ac_3, SIGNAL( valueChanged ( int )), this, SLOT( setBacklight ( int )));
117 tabs-> setCurrentPage ( 1 ); 119 tabs-> setCurrentPage ( 1 );
118 } 120 }
121
122 connect ( brightness, SIGNAL( valueChanged ( int )), this, SLOT( setBacklight ( int )));
123 connect ( brightness_ac_3, SIGNAL( valueChanged ( int )), this, SLOT( setBacklight ( int )));
119} 124}
120 125
121LightSettings::~LightSettings ( ) 126LightSettings::~LightSettings ( )
122{ 127{
123} 128}
124 129
125
126void LightSettings::calibrateSensor ( ) 130void LightSettings::calibrateSensor ( )
127{ 131{
128 Sensor *s = new Sensor ( m_sensordata, this ); 132 Sensor *s = new Sensor ( m_sensordata, this );
133 connect ( s, SIGNAL( viewBacklight ( int )), this, SLOT( setBacklight ( int )));
129 s-> showMaximized ( ); 134 s-> showMaximized ( );
130 s-> exec ( ); 135 s-> exec ( );
131 delete s; 136 delete s;
@@ -134,6 +139,7 @@ void LightSettings::calibrateSensor ( )
134void LightSettings::calibrateSensorAC ( ) 139void LightSettings::calibrateSensorAC ( )
135{ 140{
136 Sensor *s = new Sensor ( m_sensordata_ac, this ); 141 Sensor *s = new Sensor ( m_sensordata_ac, this );
142 connect ( s, SIGNAL( viewBacklight ( int )), this, SLOT( setBacklight ( int )));
137 s-> showMaximized ( ); 143 s-> showMaximized ( );
138 s-> exec ( ); 144 s-> exec ( );
139 delete s; 145 delete s;
@@ -141,18 +147,21 @@ void LightSettings::calibrateSensorAC ( )
141 147
142void LightSettings::setBacklight ( int bright ) 148void LightSettings::setBacklight ( int bright )
143{ 149{
144 bright = bright * 255 / ( m_res - 1 ); 150 if ( bright >= 0 )
151 bright = bright * 255 / ( m_res - 1 );
152
145 QCopEnvelope e ( "QPE/System", "setBacklight(int)" ); 153 QCopEnvelope e ( "QPE/System", "setBacklight(int)" );
146 e << bright; 154 e << bright;
155
156 if ( bright != -1 ) {
157 m_resettimer-> stop ( );
158 m_resettimer-> start ( 2000, true );
159 }
147} 160}
148 161
149void LightSettings::reject ( ) 162void LightSettings::resetBacklight ( )
150{ 163{
151 { 164 setBacklight ( -1 );
152 QCopEnvelope e ( "QPE/System", "setBacklight(int)" );
153 e << -1;
154 }
155 QDialog::reject ( );
156} 165}
157 166
158void LightSettings::accept ( ) 167void LightSettings::accept ( )
@@ -200,16 +209,14 @@ void LightSettings::accept ( )
200 QCopEnvelope e ( "QPE/System", "setScreenSaverInterval(int)" ); 209 QCopEnvelope e ( "QPE/System", "setScreenSaverInterval(int)" );
201 e << -1; 210 e << -1;
202 } 211 }
203 { 212 LightSettingsBase::accept ( );
204 QCopEnvelope e ( "QPE/System", "setBacklight(int)" );
205 e << -1;
206 }
207
208 QDialog::accept ( );
209} 213}
210 214
211void LightSettings::done ( int r ) 215void LightSettings::done ( int r )
212{ 216{
213 QDialog::done ( r ); 217 m_resettimer-> stop ( );
218 resetBacklight ( );
219
220 LightSettingsBase::done ( r );
214 close ( ); 221 close ( );
215} 222}
diff --git a/core/settings/light-and-power/lightsettingsbase.ui b/core/settings/light-and-power/lightsettingsbase.ui
index 04c6726..309b95d 100644
--- a/core/settings/light-and-power/lightsettingsbase.ui
+++ b/core/settings/light-and-power/lightsettingsbase.ui
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>379</width> 14 <width>371</width>
15 <height>532</height> 15 <height>532</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -1189,90 +1189,6 @@
1189</images> 1189</images>
1190<connections> 1190<connections>
1191 <connection> 1191 <connection>
1192 <sender>auto_brightness</sender>
1193 <signal>toggled(bool)</signal>
1194 <receiver>brightness</receiver>
1195 <slot>setDisabled(bool)</slot>
1196 </connection>
1197 <connection>
1198 <sender>auto_brightness_ac_3</sender>
1199 <signal>toggled(bool)</signal>
1200 <receiver>brightness_ac_3</receiver>
1201 <slot>setDisabled(bool)</slot>
1202 </connection>
1203 <connection>
1204 <sender>auto_brightness_ac_3</sender>
1205 <signal>toggled(bool)</signal>
1206 <receiver>TextLabel1_3_2</receiver>
1207 <slot>setDisabled(bool)</slot>
1208 </connection>
1209 <connection>
1210 <sender>auto_brightness</sender>
1211 <signal>toggled(bool)</signal>
1212 <receiver>TextLabel1_3</receiver>
1213 <slot>setDisabled(bool)</slot>
1214 </connection>
1215 <connection>
1216 <sender>auto_brightness</sender>
1217 <signal>toggled(bool)</signal>
1218 <receiver>interval_dim</receiver>
1219 <slot>setDisabled(bool)</slot>
1220 </connection>
1221 <connection>
1222 <sender>auto_brightness_ac_3</sender>
1223 <signal>toggled(bool)</signal>
1224 <receiver>interval_dim_ac_3</receiver>
1225 <slot>setDisabled(bool)</slot>
1226 </connection>
1227 <connection>
1228 <sender>auto_brightness</sender>
1229 <signal>toggled(bool)</signal>
1230 <receiver>PixmapLabel2</receiver>
1231 <slot>setDisabled(bool)</slot>
1232 </connection>
1233 <connection>
1234 <sender>auto_brightness</sender>
1235 <signal>toggled(bool)</signal>
1236 <receiver>TextLabel4</receiver>
1237 <slot>setDisabled(bool)</slot>
1238 </connection>
1239 <connection>
1240 <sender>auto_brightness</sender>
1241 <signal>toggled(bool)</signal>
1242 <receiver>TextLabel5</receiver>
1243 <slot>setDisabled(bool)</slot>
1244 </connection>
1245 <connection>
1246 <sender>auto_brightness</sender>
1247 <signal>toggled(bool)</signal>
1248 <receiver>PixmapLabel1</receiver>
1249 <slot>setDisabled(bool)</slot>
1250 </connection>
1251 <connection>
1252 <sender>auto_brightness_ac_3</sender>
1253 <signal>toggled(bool)</signal>
1254 <receiver>PixmapLabel2_2_3</receiver>
1255 <slot>setDisabled(bool)</slot>
1256 </connection>
1257 <connection>
1258 <sender>auto_brightness_ac_3</sender>
1259 <signal>toggled(bool)</signal>
1260 <receiver>TextLabel6</receiver>
1261 <slot>setDisabled(bool)</slot>
1262 </connection>
1263 <connection>
1264 <sender>auto_brightness_ac_3</sender>
1265 <signal>toggled(bool)</signal>
1266 <receiver>TextLabel7</receiver>
1267 <slot>setDisabled(bool)</slot>
1268 </connection>
1269 <connection>
1270 <sender>auto_brightness_ac_3</sender>
1271 <signal>toggled(bool)</signal>
1272 <receiver>PixmapLabel1_2_3</receiver>
1273 <slot>setDisabled(bool)</slot>
1274 </connection>
1275 <connection>
1276 <sender>CalibrateLightSensor</sender> 1192 <sender>CalibrateLightSensor</sender>
1277 <signal>clicked()</signal> 1193 <signal>clicked()</signal>
1278 <receiver>LightSettingsBase</receiver> 1194 <receiver>LightSettingsBase</receiver>
diff --git a/core/settings/light-and-power/main.cpp b/core/settings/light-and-power/main.cpp
index 051fdec..ecacf69 100644
--- a/core/settings/light-and-power/main.cpp
+++ b/core/settings/light-and-power/main.cpp
@@ -18,7 +18,7 @@
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "settings.h" 21#include "light.h"
22 22
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <qpe/qcopenvelope_qws.h> 24#include <qpe/qcopenvelope_qws.h>
diff --git a/core/settings/light-and-power/sensor.cpp b/core/settings/light-and-power/sensor.cpp
index c1df04d..5ca54d4 100644
--- a/core/settings/light-and-power/sensor.cpp
+++ b/core/settings/light-and-power/sensor.cpp
@@ -30,6 +30,10 @@
30#include <qslider.h> 30#include <qslider.h>
31#include <qspinbox.h> 31#include <qspinbox.h>
32 32
33#include <opie/odevice.h>
34
35using namespace Opie;
36
33#include "calibration.h" 37#include "calibration.h"
34#include "sensor.h" 38#include "sensor.h"
35 39
@@ -52,34 +56,48 @@ Sensor::Sensor ( QStringList &params, QWidget *parent, const char *name )
52 case 2: steps = params [1]. toInt ( ); 56 case 2: steps = params [1]. toInt ( );
53 case 1: inter = params [0]. toInt ( ) / 1000; 57 case 1: inter = params [0]. toInt ( ) / 1000;
54 } 58 }
59
60 int xscale = ODevice::inst ( )-> lightSensorResolution ( );
61 int yscale = ODevice::inst ( )-> displayBrightnessResolution ( );
55 62
56 QVBoxLayout *lay = new QVBoxLayout ( frame ); 63 QVBoxLayout *lay = new QVBoxLayout ( frame );
57 lay-> setMargin ( 2 ); 64 lay-> setMargin ( 2 );
58 m_calib = new Calibration ( frame ); 65 m_calib = new Calibration ( frame );
59 lay-> add ( m_calib ); 66 lay-> add ( m_calib );
60 67
61 m_calib-> setScale ( QSize ( 256, 256 )); 68 m_calib-> setScale ( QSize ( xscale, yscale ));
62 m_calib-> setLineSteps ( steps ); 69 m_calib-> setLineSteps ( steps );
63 m_calib-> setInterval ( inter ); 70 m_calib-> setInterval ( inter );
64 m_calib-> setStartPoint ( QPoint ( smin, lmax )); 71 m_calib-> setStartPoint ( QPoint ( smin * xscale / 256, lmax * yscale / 256 ));
65 m_calib-> setEndPoint ( QPoint ( smax, lmin )); 72 m_calib-> setEndPoint ( QPoint ( smax * xscale / 256, lmin * yscale / 256 ));
66 73
67 interval-> setValue ( inter ); 74 interval-> setValue ( inter );
68 linesteps-> setValue ( steps ); 75 linesteps-> setValue ( steps );
69 76
70 connect ( interval, SIGNAL( valueChanged ( int )), m_calib, SLOT( setInterval ( int ))); 77 connect ( interval, SIGNAL( valueChanged ( int )), m_calib, SLOT( setInterval ( int )));
71 connect ( linesteps, SIGNAL( valueChanged ( int )), m_calib, SLOT( setLineSteps ( int ))); 78 connect ( linesteps, SIGNAL( valueChanged ( int )), m_calib, SLOT( setLineSteps ( int )));
79
80 connect ( m_calib, SIGNAL( startPointChanged ( const QPoint & )), this, SLOT( pointDrag ( const QPoint & )));
81 connect ( m_calib, SIGNAL( endPointChanged ( const QPoint & )), this, SLOT( pointDrag ( const QPoint & )));
72} 82}
73 83
74void Sensor::accept ( ) 84void Sensor::accept ( )
75{ 85{
86 int xscale = ODevice::inst ( )-> lightSensorResolution ( );
87 int yscale = ODevice::inst ( )-> displayBrightnessResolution ( );
88
76 m_params. clear ( ); 89 m_params. clear ( );
77 m_params << QString::number ( m_calib-> interval ( ) * 1000 ) 90 m_params << QString::number ( m_calib-> interval ( ) * 1000 )
78 << QString::number ( m_calib-> lineSteps ( )) 91 << QString::number ( m_calib-> lineSteps ( ))
79 << QString::number ( m_calib-> startPoint ( ). x ( )) 92 << QString::number ( m_calib-> startPoint ( ). x ( ) * 256 / xscale )
80 << QString::number ( m_calib-> endPoint ( ). x ( )) 93 << QString::number ( m_calib-> endPoint ( ). x ( ) * 256 / xscale )
81 << QString::number ( m_calib-> endPoint ( ). y ( )) 94 << QString::number ( m_calib-> endPoint ( ). y ( ) * 256 / yscale )
82 << QString::number ( m_calib-> startPoint ( ). y ( )); 95 << QString::number ( m_calib-> startPoint ( ). y ( ) * 256 / yscale );
83 96
84 QDialog::accept ( ); 97 QDialog::accept ( );
85} 98}
99
100void Sensor::pointDrag ( const QPoint &p )
101{
102 emit viewBacklight ( p. y ( ));
103}
diff --git a/core/settings/light-and-power/sensor.h b/core/settings/light-and-power/sensor.h
index 7a26d81..b484519 100644
--- a/core/settings/light-and-power/sensor.h
+++ b/core/settings/light-and-power/sensor.h
@@ -34,10 +34,18 @@ class Calibration;
34class QStringList; 34class QStringList;
35 35
36class Sensor : public SensorBase { 36class Sensor : public SensorBase {
37 Q_OBJECT
38
37public: 39public:
38 Sensor ( QStringList &params, QWidget *parent = 0, const char *name = 0 ); 40 Sensor ( QStringList &params, QWidget *parent = 0, const char *name = 0 );
39 41
40 virtual void accept ( ); 42 virtual void accept ( );
43
44signals:
45 void viewBacklight ( int );
46
47private slots:
48 void pointDrag ( const QPoint & );
41 49
42private: 50private:
43 QStringList &m_params; 51 QStringList &m_params;