summaryrefslogtreecommitdiff
path: root/core/settings/light-and-power/sensor.cpp
authorsandman <sandman>2002-11-01 18:13:18 (UTC)
committer sandman <sandman>2002-11-01 18:13:18 (UTC)
commit2259e3ab9f2e06a4ee4dbd633c17221a47fdb7ba (patch) (side-by-side diff)
treef3e6bb8ee6c0d8f2671a63c240d1145e710da82d /core/settings/light-and-power/sensor.cpp
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 (limited to 'core/settings/light-and-power/sensor.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/light-and-power/sensor.cpp34
1 files changed, 26 insertions, 8 deletions
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 @@
#include <qslider.h>
#include <qspinbox.h>
+#include <opie/odevice.h>
+
+using namespace Opie;
+
#include "calibration.h"
#include "sensor.h"
@@ -52,34 +56,48 @@ Sensor::Sensor ( QStringList &params, QWidget *parent, const char *name )
case 2: steps = params [1]. toInt ( );
case 1: inter = params [0]. toInt ( ) / 1000;
}
+
+ int xscale = ODevice::inst ( )-> lightSensorResolution ( );
+ int yscale = ODevice::inst ( )-> displayBrightnessResolution ( );
QVBoxLayout *lay = new QVBoxLayout ( frame );
lay-> setMargin ( 2 );
m_calib = new Calibration ( frame );
- lay-> add ( m_calib );
+ lay-> add ( m_calib );
- m_calib-> setScale ( QSize ( 256, 256 ));
+ m_calib-> setScale ( QSize ( xscale, yscale ));
m_calib-> setLineSteps ( steps );
m_calib-> setInterval ( inter );
- m_calib-> setStartPoint ( QPoint ( smin, lmax ));
- m_calib-> setEndPoint ( QPoint ( smax, lmin ));
+ m_calib-> setStartPoint ( QPoint ( smin * xscale / 256, lmax * yscale / 256 ));
+ m_calib-> setEndPoint ( QPoint ( smax * xscale / 256, lmin * yscale / 256 ));
interval-> setValue ( inter );
linesteps-> setValue ( steps );
connect ( interval, SIGNAL( valueChanged ( int )), m_calib, SLOT( setInterval ( int )));
connect ( linesteps, SIGNAL( valueChanged ( int )), m_calib, SLOT( setLineSteps ( int )));
+
+ connect ( m_calib, SIGNAL( startPointChanged ( const QPoint & )), this, SLOT( pointDrag ( const QPoint & )));
+ connect ( m_calib, SIGNAL( endPointChanged ( const QPoint & )), this, SLOT( pointDrag ( const QPoint & )));
}
void Sensor::accept ( )
{
+ int xscale = ODevice::inst ( )-> lightSensorResolution ( );
+ int yscale = ODevice::inst ( )-> displayBrightnessResolution ( );
+
m_params. clear ( );
m_params << QString::number ( m_calib-> interval ( ) * 1000 )
<< QString::number ( m_calib-> lineSteps ( ))
- << QString::number ( m_calib-> startPoint ( ). x ( ))
- << QString::number ( m_calib-> endPoint ( ). x ( ))
- << QString::number ( m_calib-> endPoint ( ). y ( ))
- << QString::number ( m_calib-> startPoint ( ). y ( ));
+ << QString::number ( m_calib-> startPoint ( ). x ( ) * 256 / xscale )
+ << QString::number ( m_calib-> endPoint ( ). x ( ) * 256 / xscale )
+ << QString::number ( m_calib-> endPoint ( ). y ( ) * 256 / yscale )
+ << QString::number ( m_calib-> startPoint ( ). y ( ) * 256 / yscale );
QDialog::accept ( );
}
+
+void Sensor::pointDrag ( const QPoint &p )
+{
+ emit viewBacklight ( p. y ( ));
+}