-rw-r--r-- | core/settings/light-and-power/calibration.cpp | 111 | ||||
-rw-r--r-- | core/settings/light-and-power/calibration.h | 4 | ||||
-rw-r--r-- | core/settings/light-and-power/light-and-power.pro | 4 | ||||
-rw-r--r-- | core/settings/light-and-power/light.cpp | 57 | ||||
-rw-r--r-- | core/settings/light-and-power/lightsettingsbase.ui | 86 | ||||
-rw-r--r-- | core/settings/light-and-power/main.cpp | 2 | ||||
-rw-r--r-- | core/settings/light-and-power/sensor.cpp | 34 | ||||
-rw-r--r-- | core/settings/light-and-power/sensor.h | 8 |
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 | |||
@@ -24,22 +24,25 @@ | |||
24 | 59 Temple Place - Suite 330, | 24 | 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | #include "calibration.h" | 28 | #include "calibration.h" |
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 | ||
35 | Calibration::Calibration ( QWidget *parent, const char *name, WFlags fl ) | 36 | Calibration::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; |
41 | m_interval = 5; | 44 | m_interval = 5; |
42 | 45 | ||
43 | m_p [0] = QPoint ( 0, 0 ); | 46 | m_p [0] = QPoint ( 0, 0 ); |
44 | m_p [1] = QPoint ( 255, 255 ); | 47 | m_p [1] = QPoint ( 255, 255 ); |
45 | } | 48 | } |
@@ -116,30 +119,38 @@ QPoint Calibration::endPoint ( ) const | |||
116 | return QPoint ( m_p [1]. x ( ), m_scale. height ( ) - m_p [1]. y ( ) - 1 ); | 119 | return QPoint ( m_p [1]. x ( ), m_scale. height ( ) - m_p [1]. y ( ) - 1 ); |
117 | } | 120 | } |
118 | 121 | ||
119 | void Calibration::checkPoints ( ) | 122 | void Calibration::checkPoints ( ) |
120 | { | 123 | { |
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 | ||
140 | static QRect around ( int x, int y ) | 151 | static QRect around ( int x, int y ) |
141 | { | 152 | { |
142 | return QRect ( x - BRD, y - BRD, 2 * BRD + 1, 2 * BRD + 1 ); | 153 | return QRect ( x - BRD, y - BRD, 2 * BRD + 1, 2 * BRD + 1 ); |
143 | } | 154 | } |
144 | 155 | ||
145 | void Calibration::mousePressEvent ( QMouseEvent *e ) | 156 | void Calibration::mousePressEvent ( QMouseEvent *e ) |
@@ -150,49 +161,57 @@ void Calibration::mousePressEvent ( QMouseEvent *e ) | |||
150 | int olddragged = m_dragged; | 161 | int olddragged = m_dragged; |
151 | int x [2], y [2]; | 162 | int x [2], y [2]; |
152 | 163 | ||
153 | m_dragged = -1; | 164 | m_dragged = -1; |
154 | for ( int i = 0; i < 2; i++ ) { | 165 | for ( int i = 0; i < 2; i++ ) { |
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 | } |
163 | } | 174 | } |
164 | 175 | ||
165 | if ( m_dragged != olddragged ) { | 176 | if ( m_dragged != olddragged ) { |
166 | QRect r; | 177 | QRect r; |
167 | 178 | ||
168 | if ( olddragged >= 0 ) | 179 | if ( olddragged >= 0 ) |
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 | ||
176 | void Calibration::mouseMoveEvent ( QMouseEvent *e ) | 187 | void Calibration::mouseMoveEvent ( QMouseEvent *e ) |
177 | { | 188 | { |
178 | if ( m_dragged < 0 ) | 189 | if ( m_dragged < 0 ) |
179 | return; | 190 | return; |
180 | 191 | ||
181 | QPoint n [2]; | 192 | QPoint n [2]; |
182 | 193 | ||
183 | n [m_dragged]. setX (( e-> x ( ) - BRD ) * m_scale. width ( ) / ( width ( ) - 2 * BRD )); | 194 | n [m_dragged]. setX (( e-> x ( ) - BRD ) * m_scale. width ( ) / ( width ( ) - 2 * BRD )); |
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]; |
194 | 213 | ||
195 | for ( int i = 0; i < 2; i++ ) { | 214 | for ( int i = 0; i < 2; i++ ) { |
196 | nx [i] = SCALEX( n [i]. x ( )); | 215 | nx [i] = SCALEX( n [i]. x ( )); |
197 | ny [i] = SCALEY( n [i]. y ( )); | 216 | ny [i] = SCALEY( n [i]. y ( )); |
198 | ox [i] = SCALEX( m_p [i]. x ( )); | 217 | ox [i] = SCALEX( m_p [i]. x ( )); |
@@ -201,77 +220,127 @@ void Calibration::mouseMoveEvent ( QMouseEvent *e ) | |||
201 | if ( n [i] != m_p [i] ){ | 220 | if ( n [i] != m_p [i] ){ |
202 | r |= around ( nx [i], ny [i] ); | 221 | r |= around ( nx [i], ny [i] ); |
203 | r |= around ( ox [i], oy [i] ); | 222 | r |= around ( ox [i], oy [i] ); |
204 | m_p [i] = n [i]; | 223 | m_p [i] = n [i]; |
205 | 224 | ||
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 | } |
216 | if ( r. isValid ( )) { | 239 | if ( r. isValid ( )) { |
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 | ||
224 | void Calibration::mouseReleaseEvent ( QMouseEvent *e ) | 247 | void Calibration::mouseReleaseEvent ( QMouseEvent *e ) |
225 | { | 248 | { |
226 | if ( e-> button ( ) != LeftButton ) | 249 | if ( e-> button ( ) != LeftButton ) |
227 | return QWidget::mouseReleaseEvent ( e ); | 250 | return QWidget::mouseReleaseEvent ( e ); |
228 | 251 | ||
229 | if ( m_dragged < 0 ) | 252 | if ( m_dragged < 0 ) |
230 | return; | 253 | return; |
231 | 254 | ||
232 | int x = SCALEX( m_p [m_dragged]. x ( )); | 255 | int x = SCALEX( m_p [m_dragged]. x ( )); |
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 | ||
239 | void Calibration::paintEvent ( QPaintEvent * ) | 262 | void 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 ( )); |
247 | int y1 = SCALEY( m_p [1]. y ( )); | 271 | int y1 = SCALEY( m_p [1]. y ( )); |
248 | 272 | ||
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 ); |
264 | 321 | ||
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 | |||
@@ -38,16 +38,20 @@ public: | |||
38 | virtual ~Calibration ( ); | 38 | virtual ~Calibration ( ); |
39 | 39 | ||
40 | QSize scale ( ) const; | 40 | QSize scale ( ) const; |
41 | int lineSteps ( ) const; | 41 | int lineSteps ( ) const; |
42 | int interval ( ) const; | 42 | int interval ( ) const; |
43 | QPoint startPoint ( ) const; | 43 | QPoint startPoint ( ) const; |
44 | QPoint endPoint ( ) const; | 44 | QPoint endPoint ( ) const; |
45 | 45 | ||
46 | signals: | ||
47 | void startPointChanged ( const QPoint & ); | ||
48 | void endPointChanged ( const QPoint & ); | ||
49 | |||
46 | public slots: | 50 | public slots: |
47 | void setScale ( const QSize &s ); | 51 | void setScale ( const QSize &s ); |
48 | void setLineSteps ( int step ); | 52 | void setLineSteps ( int step ); |
49 | void setInterval ( int iv ); | 53 | void setInterval ( int iv ); |
50 | void setStartPoint ( const QPoint &p ); | 54 | void setStartPoint ( const QPoint &p ); |
51 | void setEndPoint ( const QPoint &p ); | 55 | void setEndPoint ( const QPoint &p ); |
52 | 56 | ||
53 | protected: | 57 | protected: |
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,12 +1,12 @@ | |||
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 |
7 | INCLUDEPATH += $(OPIEDIR)/include | 7 | INCLUDEPATH += $(OPIEDIR)/include |
8 | DEPENDPATH+= ../$(OPIEDIR)/include | 8 | DEPENDPATH+= ../$(OPIEDIR)/include |
9 | LIBS += -lqpe -lopie | 9 | LIBS += -lqpe -lopie |
10 | TARGET = light-and-power | 10 | TARGET = light-and-power |
11 | 11 | ||
12 | TRANSLATIONS = ../../../i18n/de/light-and-power.ts \ | 12 | TRANSLATIONS = ../../../i18n/de/light-and-power.ts \ |
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 | |||
@@ -21,77 +21,78 @@ | |||
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
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> |
33 | #include <qpe/power.h> | 33 | #include <qpe/power.h> |
34 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 34 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
35 | #include <qpe/qcopenvelope_qws.h> | 35 | #include <qpe/qcopenvelope_qws.h> |
36 | #endif | 36 | #endif |
37 | 37 | ||
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 | ||
44 | #include <opie/odevice.h> | 45 | #include <opie/odevice.h> |
45 | 46 | ||
46 | #include "sensor.h" | 47 | #include "sensor.h" |
47 | 48 | ||
48 | using namespace Opie; | 49 | using namespace Opie; |
49 | 50 | ||
50 | LightSettings::LightSettings( QWidget* parent, const char* name, WFlags ) | 51 | LightSettings::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 | ||
55 | if ( !ODevice::inst ( )-> hasLightSensor ( )) { | 56 | if ( !ODevice::inst ( )-> hasLightSensor ( )) { |
56 | auto_brightness-> hide ( ); | 57 | auto_brightness-> hide ( ); |
57 | CalibrateLightSensor-> hide ( ); | 58 | CalibrateLightSensor-> hide ( ); |
58 | auto_brightness_ac_3-> hide ( ); | 59 | auto_brightness_ac_3-> hide ( ); |
59 | CalibrateLightSensorAC-> hide ( ); | 60 | CalibrateLightSensorAC-> hide ( ); |
60 | } | 61 | } |
61 | 62 | ||
62 | Config config ( "apm" ); | 63 | Config config ( "apm" ); |
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 )); |
77 | brightness-> setPageStep ( QMAX( 1, m_res / 16 )); | 78 | brightness-> setPageStep ( QMAX( 1, m_res / 16 )); |
78 | brightness-> setValue (( bright * ( m_res - 1 ) + 127 ) / 255 ); | 79 | brightness-> setValue (( bright * ( m_res - 1 ) + 127 ) / 255 ); |
79 | 80 | ||
80 | // light sensor | 81 | // light sensor |
81 | auto_brightness-> setChecked ( config. readBoolEntry ( "LightSensor", false )); | 82 | auto_brightness-> setChecked ( config. readBoolEntry ( "LightSensor", false )); |
82 | m_sensordata = config. readListEntry ( "LightSensorData", ';' ); | 83 | m_sensordata = config. readListEntry ( "LightSensorData", ';' ); |
83 | 84 | ||
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 )); |
93 | 94 | ||
94 | bright = config. readNumEntry ( "Brightness", 255 ); | 95 | bright = config. readNumEntry ( "Brightness", 255 ); |
95 | brightness_ac_3-> setMaxValue ( m_res - 1 ); | 96 | brightness_ac_3-> setMaxValue ( m_res - 1 ); |
96 | brightness_ac_3-> setTickInterval ( QMAX( 1, m_res / 16 )); | 97 | brightness_ac_3-> setTickInterval ( QMAX( 1, m_res / 16 )); |
97 | brightness_ac_3-> setLineStep ( QMAX( 1, m_res / 16 )); | 98 | brightness_ac_3-> setLineStep ( QMAX( 1, m_res / 16 )); |
@@ -103,61 +104,69 @@ LightSettings::LightSettings( QWidget* parent, const char* name, WFlags ) | |||
103 | m_sensordata_ac = config. readListEntry ( "LightSensorData", ';' ); | 104 | m_sensordata_ac = config. readListEntry ( "LightSensorData", ';' ); |
104 | 105 | ||
105 | // advanced settings | 106 | // advanced settings |
106 | config. setGroup ( "Warnings" ); | 107 | config. setGroup ( "Warnings" ); |
107 | warnintervalBox-> setValue ( config. readNumEntry ( "checkinterval", 10000 ) / 1000 ); | 108 | warnintervalBox-> setValue ( config. readNumEntry ( "checkinterval", 10000 ) / 1000 ); |
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 | ||
121 | LightSettings::~LightSettings ( ) | 126 | LightSettings::~LightSettings ( ) |
122 | { | 127 | { |
123 | } | 128 | } |
124 | 129 | ||
125 | |||
126 | void LightSettings::calibrateSensor ( ) | 130 | void 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; |
132 | } | 137 | } |
133 | 138 | ||
134 | void LightSettings::calibrateSensorAC ( ) | 139 | void 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; |
140 | } | 146 | } |
141 | 147 | ||
142 | void LightSettings::setBacklight ( int bright ) | 148 | void 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 | ||
149 | void LightSettings::reject ( ) | 162 | void 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 | ||
158 | void LightSettings::accept ( ) | 167 | void LightSettings::accept ( ) |
159 | { | 168 | { |
160 | Config config ( "apm" ); | 169 | Config config ( "apm" ); |
161 | 170 | ||
162 | // bat | 171 | // bat |
163 | config. setGroup ( "Battery" ); | 172 | config. setGroup ( "Battery" ); |
@@ -195,21 +204,19 @@ void LightSettings::accept ( ) | |||
195 | // notify the launcher | 204 | // notify the launcher |
196 | { | 205 | { |
197 | QCopEnvelope e ( "QPE/System", "reloadPowerWarnSettings()" ); | 206 | QCopEnvelope e ( "QPE/System", "reloadPowerWarnSettings()" ); |
198 | } | 207 | } |
199 | { | 208 | { |
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 | ||
211 | void LightSettings::done ( int r ) | 215 | void 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 | |||
@@ -6,17 +6,17 @@ | |||
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>LightSettingsBase</cstring> | 7 | <cstring>LightSettingsBase</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
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> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>sizePolicy</name> | 19 | <name>sizePolicy</name> |
20 | <sizepolicy> | 20 | <sizepolicy> |
21 | <hsizetype>7</hsizetype> | 21 | <hsizetype>7</hsizetype> |
22 | <vsizetype>5</vsizetype> | 22 | <vsizetype>5</vsizetype> |
@@ -1184,100 +1184,16 @@ | |||
1184 | </image> | 1184 | </image> |
1185 | <image> | 1185 | <image> |
1186 | <name>image2</name> | 1186 | <name>image2</name> |
1187 | <data format="XPM.GZ" length="424">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022130543251d2e253d856405bffcbc54105b19c856360003103711c4354b344b314b04719340dcb434b31488ac1e1a2020a6acac8c2ea60cc54862606ea232b218541b5810452c3111432c510f550c22886a1e482c115d0c2c88e6168818babaa4a42462c48082cae8e68102011a06b5d65c0041d3518e</data> | 1187 | <data format="XPM.GZ" length="424">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022130543251d2e253d856405bffcbc54105b19c856360003103711c4354b344b314b04719340dcb434b31488ac1e1a2020a6acac8c2ea60cc54862606ea232b218541b5810452c3111432c510f550c22886a1e482c115d0c2c88e6168818babaa4a42462c48082cae8e68102011a06b5d65c0041d3518e</data> |
1188 | </image> | 1188 | </image> |
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> |
1279 | <slot>calibrateSensor()</slot> | 1195 | <slot>calibrateSensor()</slot> |
1280 | </connection> | 1196 | </connection> |
1281 | <connection> | 1197 | <connection> |
1282 | <sender>CalibrateLightSensorAC</sender> | 1198 | <sender>CalibrateLightSensorAC</sender> |
1283 | <signal>clicked()</signal> | 1199 | <signal>clicked()</signal> |
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 | |||
@@ -13,17 +13,17 @@ | |||
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
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> |
25 | #include <qpe/global.h> | 25 | #include <qpe/global.h> |
26 | 26 | ||
27 | 27 | ||
28 | int main(int argc, char** argv) | 28 | int main(int argc, char** argv) |
29 | { | 29 | { |
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 | |||
@@ -25,16 +25,20 @@ | |||
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | #include <qframe.h> | 28 | #include <qframe.h> |
29 | #include <qlayout.h> | 29 | #include <qlayout.h> |
30 | #include <qslider.h> | 30 | #include <qslider.h> |
31 | #include <qspinbox.h> | 31 | #include <qspinbox.h> |
32 | 32 | ||
33 | #include <opie/odevice.h> | ||
34 | |||
35 | using namespace Opie; | ||
36 | |||
33 | #include "calibration.h" | 37 | #include "calibration.h" |
34 | #include "sensor.h" | 38 | #include "sensor.h" |
35 | 39 | ||
36 | Sensor::Sensor ( QStringList ¶ms, QWidget *parent, const char *name ) | 40 | Sensor::Sensor ( QStringList ¶ms, QWidget *parent, const char *name ) |
37 | : SensorBase ( parent, name, true, WStyle_ContextHelp ), m_params ( params ) | 41 | : SensorBase ( parent, name, true, WStyle_ContextHelp ), m_params ( params ) |
38 | { | 42 | { |
39 | int steps = 12; | 43 | int steps = 12; |
40 | int inter = 2; | 44 | int inter = 2; |
@@ -47,39 +51,53 @@ Sensor::Sensor ( QStringList ¶ms, QWidget *parent, const char *name ) | |||
47 | switch ( params. count ( )) { | 51 | switch ( params. count ( )) { |
48 | case 6: lmax = params [5]. toInt ( ); | 52 | case 6: lmax = params [5]. toInt ( ); |
49 | case 5: lmin = params [4]. toInt ( ); | 53 | case 5: lmin = params [4]. toInt ( ); |
50 | case 4: smax = params [3]. toInt ( ); | 54 | case 4: smax = params [3]. toInt ( ); |
51 | case 3: smin = params [2]. toInt ( ); | 55 | case 3: smin = params [2]. toInt ( ); |
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 | ||
74 | void Sensor::accept ( ) | 84 | void 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 | |||
100 | void 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 | |||
@@ -29,19 +29,27 @@ | |||
29 | #define __SENSOR_H__ | 29 | #define __SENSOR_H__ |
30 | 30 | ||
31 | #include "sensorbase.h" | 31 | #include "sensorbase.h" |
32 | 32 | ||
33 | class Calibration; | 33 | class Calibration; |
34 | class QStringList; | 34 | class QStringList; |
35 | 35 | ||
36 | class Sensor : public SensorBase { | 36 | class Sensor : public SensorBase { |
37 | Q_OBJECT | ||
38 | |||
37 | public: | 39 | public: |
38 | Sensor ( QStringList ¶ms, QWidget *parent = 0, const char *name = 0 ); | 40 | Sensor ( QStringList ¶ms, QWidget *parent = 0, const char *name = 0 ); |
39 | 41 | ||
40 | virtual void accept ( ); | 42 | virtual void accept ( ); |
43 | |||
44 | signals: | ||
45 | void viewBacklight ( int ); | ||
46 | |||
47 | private slots: | ||
48 | void pointDrag ( const QPoint & ); | ||
41 | 49 | ||
42 | private: | 50 | private: |
43 | QStringList &m_params; | 51 | QStringList &m_params; |
44 | Calibration *m_calib; | 52 | Calibration *m_calib; |
45 | }; | 53 | }; |
46 | 54 | ||
47 | #endif \ No newline at end of file | 55 | #endif \ No newline at end of file |