-rw-r--r-- | core/settings/light-and-power/calibration.cpp | 278 | ||||
-rw-r--r-- | core/settings/light-and-power/calibration.h | 71 | ||||
-rw-r--r-- | core/settings/light-and-power/light-and-power.pro | 6 | ||||
-rw-r--r-- | core/settings/light-and-power/light.cpp | 194 | ||||
-rw-r--r-- | core/settings/light-and-power/lightsettingsbase.ui | 189 | ||||
-rw-r--r-- | core/settings/light-and-power/sensor.cpp | 85 | ||||
-rw-r--r-- | core/settings/light-and-power/sensor.h | 47 | ||||
-rw-r--r-- | core/settings/light-and-power/sensorbase.ui | 870 | ||||
-rw-r--r-- | core/settings/light-and-power/settings.h | 59 |
9 files changed, 1576 insertions, 223 deletions
diff --git a/core/settings/light-and-power/calibration.cpp b/core/settings/light-and-power/calibration.cpp new file mode 100644 index 0000000..307de1f --- a/dev/null +++ b/core/settings/light-and-power/calibration.cpp @@ -0,0 +1,278 @@ +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Maximilian Reiss <harlekin@handhelds.org> + .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ +#include "calibration.h" + +#include <qpainter.h> +#include <qpalette.h> + +#define BRD 2 + +Calibration::Calibration ( QWidget *parent, const char *name, WFlags fl ) + : QWidget ( parent, name, fl ) +{ + m_scale = QSize ( 256, 256 ); + m_steps = 5; + m_dragged = -1; + m_interval = 5; + + m_p [0] = QPoint ( 0, 0 ); + m_p [1] = QPoint ( 255, 255 ); +} + +Calibration::~Calibration ( ) +{ +} + +void Calibration::setScale ( const QSize &s ) +{ + if ( s. width ( ) < 1 || s. height ( ) < 1 ) + return; + + m_scale = s; + checkPoints ( ); + + update ( ); +} + +QSize Calibration::scale ( ) const +{ + return m_scale; +} + +void Calibration::setLineSteps ( int steps ) +{ + if ( m_steps < 2 ) + return; + + m_steps = steps; + update ( ); +} + +int Calibration::lineSteps ( ) const +{ + return m_steps; +} + +void Calibration::setInterval ( int iv ) +{ + if ( iv < 1 ) + return; + + m_interval = iv; +// update ( ); +} + +int Calibration::interval ( ) const +{ + return m_interval; +} + +void Calibration::setStartPoint ( const QPoint &p ) +{ + m_p [0] = p; + checkPoints ( ); + update ( ); +} + +QPoint Calibration::startPoint ( ) const +{ + return m_p [0]; +} + +void Calibration::setEndPoint ( const QPoint &p ) +{ + m_p [1] = p; + checkPoints ( ); + update ( ); +} + +QPoint Calibration::endPoint ( ) const +{ + return m_p [1]; +} + +void Calibration::checkPoints ( ) +{ + int dx = m_scale. width ( ); + int dy = m_scale. height ( ); + + if ( m_p [1]. x ( ) >= dx ) + m_p [1]. setX ( dx - 1 ); + if ( m_p [0]. x ( ) > m_p [1]. x ( )) + m_p [0]. setX ( m_p [1]. x ( )); + + if ( m_p [1]. y ( ) >= dy ) + m_p [1]. setY ( dy - 1 ); + if ( m_p [0]. y ( ) > m_p [1]. y ( )) + m_p [0]. setY ( m_p [1]. y ( )); +} + + +#define SCALEX(x) (BRD+x*(width()- 2*BRD)/m_scale.width()) +#define SCALEY(y) (BRD+y*(height()-2*BRD)/m_scale.height()) + + +static QRect around ( int x, int y ) +{ + return QRect ( x - BRD, y - BRD, 2 * BRD + 1, 2 * BRD + 1 ); +} + +void Calibration::mousePressEvent ( QMouseEvent *e ) +{ + if ( e-> button ( ) != LeftButton ) + return QWidget::mousePressEvent ( e ); + + int olddragged = m_dragged; + int x [2], y [2]; + + m_dragged = -1; + for ( int i = 0; i < 2; i++ ) { + x [i] = SCALEX( m_p [i]. x ( )); + y [i] = SCALEY( m_p [i]. y ( )); + + if (( QABS( e-> x ( ) - x [i] ) <= BRD ) && + ( QABS( e-> y ( ) - y [i] ) <= BRD )) { + m_dragged = i; + break; + } + } + + if ( m_dragged != olddragged ) { + QRect r; + + if ( olddragged >= 0 ) + r |= around ( x [olddragged], y [olddragged] ); + if ( m_dragged >= 0 ) + r |= around ( x [m_dragged], y [m_dragged] ); + repaint ( r ); + } +} + +void Calibration::mouseMoveEvent ( QMouseEvent *e ) +{ + if ( m_dragged < 0 ) + return; + + QPoint n [2]; + + n [m_dragged]. setX (( e-> x ( ) - BRD ) * m_scale. width ( ) / ( width ( ) - 2 * BRD )); + n [m_dragged]. setY (( e-> y ( ) - BRD ) * m_scale. height ( ) / ( height ( ) - 2 * BRD )); + n [1 - m_dragged] = m_p [1 - m_dragged]; + + if (( n [0]. x ( ) > n [1]. x ( )) || ( n [m_dragged]. x ( ) < 0 ) || ( n [m_dragged]. x ( ) >= m_scale. width ( ))) + n [m_dragged]. setX ( m_p [m_dragged]. x ( )); + if (( n [0]. y ( ) > n [1]. y ( )) || ( n [m_dragged]. y ( ) < 0 ) || ( n [m_dragged]. y ( ) >= m_scale. height ( ))) + n [m_dragged]. setY ( m_p [m_dragged]. y ( )); + + QRect r; + int ox [2], oy [2], nx [2], ny [2]; + + for ( int i = 0; i < 2; i++ ) { + nx [i] = SCALEX( n [i]. x ( )); + ny [i] = SCALEY( n [i]. y ( )); + ox [i] = SCALEX( m_p [i]. x ( )); + oy [i] = SCALEY( m_p [i]. y ( )); + + if ( n [i] != m_p [i] ) { + r |= around ( nx [i], ny [i] ); + r |= around ( ox [i], oy [i] ); + m_p [i] = n [i]; + + if ( i == 0 ) { + r |= QRect ( 0, 0, nx [0] - 0 + 1, ny [0] - 0 + 1 ); + r |= QRect ( 0, 0, ox [0] - 0 + 1, oy [0] - 0 + 1 ); + } + else if ( i == 1 ) { + r |= QRect ( nx [1], ny [1], width ( ) - nx [1], height ( ) - ny [1] ); + r |= QRect ( ox [1], oy [1], width ( ) - ox [1], height ( ) - oy [1] ); + } + } + } + if ( r. isValid ( )) { + r |= QRect ( nx [0], ny [0], nx [1] - nx [0] + 1, ny [1] - ny [0] + 1 ); + r |= QRect ( ox [0], oy [0], ox [1] - ox [0] + 1, oy [1] - oy [0] + 1 ); + + repaint ( r ); + } +} + +void Calibration::mouseReleaseEvent ( QMouseEvent *e ) +{ + if ( e-> button ( ) != LeftButton ) + return QWidget::mouseReleaseEvent ( e ); + + if ( m_dragged < 0 ) + return; + + int x = SCALEX( m_p [m_dragged]. x ( )); + int y = SCALEY( m_p [m_dragged]. y ( )); + m_dragged = -1; + + repaint ( around ( x, y )); +} + +void Calibration::paintEvent ( QPaintEvent * ) +{ + QPainter p ( this ); + QColorGroup g = colorGroup ( ); + + int x0 = SCALEX( m_p [0]. x ( )); + int y0 = SCALEY( m_p [0]. y ( )); + int x1 = SCALEX( m_p [1]. x ( )); + int y1 = SCALEY( m_p [1]. y ( )); + + int dx = x1 - x0; + int dy = y1 - y0; + + int ex = x0, ey = y0; + + p. setPen ( g. highlight ( )); + + p. drawLine ( BRD, BRD, ex, BRD ); + p. drawLine ( ex, BRD, ex, ey ); + + for ( int i = 1; i < m_steps; i++ ) { + int fx = x0 + dx * i / m_steps; + int fy = y0 + dy * i / ( m_steps - 1 ); + + p. drawLine ( ex, ey, fx, ey ); + p. drawLine ( fx, ey, fx, fy ); + + ex = fx; + ey = fy; + } + + p. drawLine ( ex, ey, width ( ) - 1 - BRD, ey ); + + p. fillRect ( around ( x0, y0 ), m_dragged == 0 ? g. highlightedText ( ) : g. text ( )); + p. fillRect ( around ( x1, y1 ), m_dragged == 1 ? g. highlightedText ( ) : g. text ( )); + + p. setPen ( g. text ( )); + p. drawText ( QRect ( BRD, BRD, width ( ) - 2*BRD, height() - 2*BRD ), AlignTop | AlignRight, tr( "%1 Steps" ). arg ( m_steps )); +} + diff --git a/core/settings/light-and-power/calibration.h b/core/settings/light-and-power/calibration.h new file mode 100644 index 0000000..2bff69a --- a/dev/null +++ b/core/settings/light-and-power/calibration.h @@ -0,0 +1,71 @@ +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Maximilian Reiss <harlekin@handhelds.org> + .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ +#ifndef __CALIBRATION_H__ +#define __CALIBRATION_H__ + +#include <qwidget.h> + +class Calibration : public QWidget { + Q_OBJECT + +public: + Calibration ( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); + virtual ~Calibration ( ); + + QSize scale ( ) const; + int lineSteps ( ) const; + int interval ( ) const; + QPoint startPoint ( ) const; + QPoint endPoint ( ) const; + +public slots: + void setScale ( const QSize &s ); + void setLineSteps ( int step ); + void setInterval ( int iv ); + void setStartPoint ( const QPoint &p ); + void setEndPoint ( const QPoint &p ); + +protected: + virtual void paintEvent ( QPaintEvent * ); + virtual void mousePressEvent ( QMouseEvent * ); + virtual void mouseMoveEvent ( QMouseEvent * ); + virtual void mouseReleaseEvent ( QMouseEvent * ); + + void checkPoints ( ); + +private: + QSize m_scale; + QPoint m_p [2]; + int m_dragged; + int m_steps; + int m_interval; +}; + +#endif + + diff --git a/core/settings/light-and-power/light-and-power.pro b/core/settings/light-and-power/light-and-power.pro index 43395bf..c89a26d 100644 --- a/core/settings/light-and-power/light-and-power.pro +++ b/core/settings/light-and-power/light-and-power.pro @@ -1,18 +1,18 @@ TEMPLATE = app CONFIG += qt warn_on release DESTDIR = $(OPIEDIR)/bin -HEADERS = settings.h -SOURCES = light.cpp main.cpp -INTERFACES = lightsettingsbase.ui +HEADERS = settings.h sensor.h calibration.h +SOURCES = light.cpp main.cpp sensor.cpp calibration.cpp +INTERFACES = lightsettingsbase.ui sensorbase.ui INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += ../$(OPIEDIR)/include LIBS += -lqpe -lopie TARGET = light-and-power TRANSLATIONS = ../../../i18n/de/light-and-power.ts \ ../../../i18n/en/light-and-power.ts \ ../../../i18n/es/light-and-power.ts \ ../../../i18n/fr/light-and-power.ts \ ../../../i18n/hu/light-and-power.ts \ ../../../i18n/ja/light-and-power.ts \ ../../../i18n/ko/light-and-power.ts \ diff --git a/core/settings/light-and-power/light.cpp b/core/settings/light-and-power/light.cpp index 572f8ea..2ea0356 100644 --- a/core/settings/light-and-power/light.cpp +++ b/core/settings/light-and-power/light.cpp @@ -1,33 +1,39 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia Environment. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -// redone by Maximilian Reiss <harlekin@handhelds.org> +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Maximilian Reiss <harlekin@handhelds.org> + .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ #include "settings.h" #include <qpe/global.h> #include <qpe/fontmanager.h> #include <qpe/config.h> #include <qpe/applnk.h> #include <qpe/qpeapplication.h> #include <qpe/power.h> #if defined(Q_WS_QWS) && !defined(QT_NO_COP) #include <qpe/qcopenvelope_qws.h> #endif @@ -44,202 +50,178 @@ #include <qcombobox.h> #include <qgroupbox.h> #include <qspinbox.h> #include <qpushbutton.h> #include <qlistbox.h> #include <qdir.h> #if QT_VERSION >= 300 #include <qstylefactory.h> #endif #include <opie/odevice.h> +#include "sensor.h" + using namespace Opie; LightSettings::LightSettings( QWidget* parent, const char* name, WFlags ) - : LightSettingsBase( parent, name, TRUE, WStyle_ContextHelp ) + : LightSettingsBase( parent, name, true, WStyle_ContextHelp ) { - int res = ODevice::inst ( )-> displayBrightnessResolution ( ); + m_res = ODevice::inst ( )-> displayBrightnessResolution ( ); - if ( ODevice::inst()->hasLightSensor() ) { - // Not supported yet - hide until implemented - CalibrateLightSensor->setEnabled( false ); - CalibrateLightSensorAC->setEnabled( false ); - } else { - // if ipaq no need to show the sensor box + if ( !ODevice::inst ( )-> hasLightSensor ( )) { auto_brightness->hide(); CalibrateLightSensor->hide(); auto_brightness_ac_3->hide(); CalibrateLightSensorAC->hide(); } Config config( "apm" ); config.setGroup( "Battery" ); // battery spinboxes interval_dim->setValue( config.readNumEntry( "Dim", 20 )); interval_lightoff->setValue( config.readNumEntry( "LightOff", 30 )); interval_suspend->setValue( config.readNumEntry( "Suspend", 60 )); // battery check and slider LcdOffOnly->setChecked( config.readBoolEntry("LcdOffOnly",false)); - initbright = config. readNumEntry ( "Brightness", 255 ); - brightness-> setMaxValue ( res - 1 ); - brightness-> setTickInterval ( QMAX( 1, res / 16 )); - brightness-> setLineStep ( QMAX( 1, res / 16 )); - brightness-> setPageStep ( QMAX( 1, res / 16 )); - brightness-> setValue (( initbright * ( res - 1 ) + 127 ) / 255 ); + int bright = config. readNumEntry ( "Brightness", 255 ); + brightness-> setMaxValue ( m_res - 1 ); + brightness-> setTickInterval ( QMAX( 1, m_res / 16 )); + brightness-> setLineStep ( QMAX( 1, m_res / 16 )); + brightness-> setPageStep ( QMAX( 1, m_res / 16 )); + brightness-> setValue (( bright * ( m_res - 1 ) + 127 ) / 255 ); // light sensor - auto_brightness->setChecked( config.readNumEntry("LightSensor",0) != 0 ); + auto_brightness-> setChecked ( config. readBoolEntry ( "LightSensor", false )); + m_sensordata = config. readListEntry ( "LightSensorData", ';' ); config.setGroup( "AC" ); + // ac spinboxes interval_dim_ac_3->setValue( config.readNumEntry( "Dim", 20 )); interval_lightoff_ac_3->setValue( config.readNumEntry( "LightOff", 30 )); interval_suspend_ac_3->setValue( config.readNumEntry( "Suspend", 60 )); // ac check and slider LcdOffOnly_2_3->setChecked( config.readBoolEntry("LcdOffOnly",false)); - initbright_ac = config. readNumEntry ( "Brightness", 255 ); - brightness_ac_3-> setMaxValue ( res - 1 ); - brightness_ac_3-> setTickInterval ( QMAX( 1, res / 16 )); - brightness_ac_3-> setLineStep ( QMAX( 1, res / 16 )); - brightness_ac_3-> setPageStep ( QMAX( 1, res / 16 )); - brightness_ac_3-> setValue (( initbright_ac * ( res - 1 ) + 127 ) / 255 ); + bright = config. readNumEntry ( "Brightness", 255 ); + brightness_ac_3-> setMaxValue ( m_res - 1 ); + brightness_ac_3-> setTickInterval ( QMAX( 1, m_res / 16 )); + brightness_ac_3-> setLineStep ( QMAX( 1, m_res / 16 )); + brightness_ac_3-> setPageStep ( QMAX( 1, m_res / 16 )); + brightness_ac_3-> setValue (( bright * ( m_res - 1 ) + 127 ) / 255 ); // light sensor - auto_brightness_ac_3->setChecked( config.readNumEntry("LightSensor",0) != 0 ); - - - //LightStepSpin->setValue( config.readNumEntry("Steps", 10 ) ); - //LightMinValueSlider->setValue( config.readNumEntry("MinValue", 70 ) ); - //connect( LightStepSpin, SIGNAL( valueChanged( int ) ), this, SLOT( slotSliderTicks( int ) ) ) ; - //LightShiftSpin->setValue( config.readNumEntry("Shift", 0 ) ); + auto_brightness_ac_3-> setChecked ( config. readBoolEntry ( "LightSensor", false )); + m_sensordata_ac = config. readListEntry ( "LightSensorData", ';' ); // advanced settings config.setGroup( "Warnings" ); warnintervalBox->setValue( config.readNumEntry("checkinterval", 10000)/1000 ); lowSpinBox->setValue( config.readNumEntry("powerverylow", 10 ) ); criticalSpinBox->setValue( config.readNumEntry("powercritical", 5 ) ); - connect( brightness, SIGNAL( valueChanged(int) ), this, SLOT( applyBrightness() ) ); - connect( brightness_ac_3, SIGNAL( valueChanged(int) ), this, SLOT( applyBrightnessAC() ) ); + if ( PowerStatusManager::readStatus ( ). acStatus ( ) != PowerStatus::Online ) + connect ( brightness, SIGNAL( valueChanged ( int )), this, SLOT( setBacklight ( int ))); + else + connect ( brightness_ac_3, SIGNAL( valueChanged ( int )), this, SLOT( setBacklight ( int ))); } -LightSettings::~LightSettings() { +LightSettings::~LightSettings ( ) +{ +} + + +void LightSettings::calibrateSensor ( ) +{ + Sensor *s = new Sensor ( m_sensordata, this ); + s-> showMaximized ( ); + s-> exec ( ); + delete s; } -void LightSettings::slotSliderTicks( int steps ) { -// LightMinValueSlider->setTickInterval( steps ); +void LightSettings::calibrateSensorAC ( ) +{ + Sensor *s = new Sensor ( m_sensordata_ac, this ); + s-> showMaximized ( ); + s-> exec ( ); + delete s; } -static void set_fl(int bright) +void LightSettings::setBacklight ( int bright ) { + bright = bright * 255 / ( m_res - 1 ); QCopEnvelope e("QPE/System", "setBacklight(int)" ); e << bright; } void LightSettings::reject() { - set_fl(initbright); + { + QCopEnvelope e ( "QPE/System", "setBacklight(int)" ); + e << -1; + } QDialog::reject(); } void LightSettings::accept() { - if ( qApp->focusWidget() ) { - qApp->focusWidget()->clearFocus(); - } - - applyBrightness(); - - // bat - int i_dim = interval_dim->value(); - int i_lightoff = interval_lightoff->value(); - int i_suspend = interval_suspend->value(); - - // ac - int i_dim_ac = interval_dim_ac_3->value(); - int i_lightoff_ac = interval_lightoff_ac_3->value(); - int i_suspend_ac = interval_suspend_ac_3->value(); - Config config( "apm" ); - config.setGroup( "Battery" ); - // bat + config. setGroup ( "Battery" ); config.writeEntry( "LcdOffOnly", LcdOffOnly->isChecked() ); - config.writeEntry( "Dim", i_dim ); - config.writeEntry( "LightOff", i_lightoff ); - config.writeEntry( "Suspend", i_suspend ); - config.writeEntry( "Brightness", - ( brightness->value() ) * 255 / brightness->maxValue() ); + config. writeEntry ( "Dim", interval_dim-> value ( )); + config. writeEntry ( "LightOff", interval_lightoff-> value ( )); + config. writeEntry ( "Suspend", interval_suspend-> value ( )); + config. writeEntry ( "Brightness", brightness-> value ( ) * 255 / ( m_res - 1 ) ); // ac config.setGroup( "AC" ); config.writeEntry( "LcdOffOnly", LcdOffOnly_2_3->isChecked() ); - config.writeEntry( "Dim", i_dim_ac ); - config.writeEntry( "LightOff", i_lightoff_ac ); - config.writeEntry( "Suspend", i_suspend_ac ); - config.writeEntry( "Brightness", - ( brightness_ac_3->value()) * 255 / brightness_ac_3->maxValue() ); - + config. writeEntry ( "Dim", interval_dim_ac_3-> value ( )); + config. writeEntry ( "LightOff", interval_lightoff_ac_3-> value ( )); + config. writeEntry ( "Suspend", interval_suspend_ac_3-> value ( )); + config. writeEntry ( "Brightness", brightness_ac_3-> value ( ) * 255 / ( m_res - 1 )); // only make light sensor stuff appear if the unit has a sensor if ( ODevice::inst()->hasLightSensor() ) { config.setGroup( "Battery" ); config.writeEntry( "LightSensor", auto_brightness->isChecked() ); + config. writeEntry ( "LightSensorData", m_sensordata, ';' ); config.setGroup( "AC" ); config.writeEntry( "LightSensor", auto_brightness_ac_3->isChecked() ); - //config.writeEntry( "Steps", LightStepSpin->value() ); - //onfig.writeEntry( "MinValue", LightMinValueSlider->value() ); - //config.writeEntry( "Shift", LightShiftSpin->value() ); + config. writeEntry ( "LightSensorData", m_sensordata_ac, ';' ); } - // advanced config.setGroup( "Warnings" ); config.writeEntry( "check_interval", warnintervalBox->value()*1000 ); config.writeEntry( "power_verylow", lowSpinBox->value() ); config.writeEntry( "power_critical", criticalSpinBox->value() ); config.write(); + // notify the launcher { QCopEnvelope e ( "QPE/System", "reloadPowerWarnSettings()" ); } { QCopEnvelope e ( "QPE/System", "setScreenSaverInterval(int)" ); e << -1; } { QCopEnvelope e ( "QPE/System", "setBacklight(int)" ); e << -1; } QDialog::accept(); } -void LightSettings::applyBrightness() -{ - if ( PowerStatusManager::readStatus().acStatus() != PowerStatus::Online ) { - int bright = ( brightness->value() ) * 255 / brightness->maxValue(); - set_fl(bright); - } -} - -void LightSettings::applyBrightnessAC() -{ - // if ac is attached, set directly that sliders setting, else the "on battery" sliders setting - if ( PowerStatusManager::readStatus().acStatus() == PowerStatus::Online ) { - int bright = ( brightness_ac_3->value() ) * 255 / brightness_ac_3->maxValue(); - set_fl(bright); - } -} - void LightSettings::done(int r) { QDialog::done(r); close(); } diff --git a/core/settings/light-and-power/lightsettingsbase.ui b/core/settings/light-and-power/lightsettingsbase.ui index f41e5a6..4df6024 100644 --- a/core/settings/light-and-power/lightsettingsbase.ui +++ b/core/settings/light-and-power/lightsettingsbase.ui @@ -2,25 +2,25 @@ <class>LightSettingsBase</class> <widget> <class>QDialog</class> <property stdset="1"> <name>name</name> <cstring>LightSettingsBase</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>399</width> + <width>387</width> <height>532</height> </rect> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> <hsizetype>7</hsizetype> <vsizetype>5</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>caption</name> @@ -61,25 +61,25 @@ <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>tab</cstring> </property> <attribute> <name>title</name> <string>on Battery</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox3</cstring> </property> <property stdset="1"> @@ -87,49 +87,28 @@ <bool>true</bool> </property> <property stdset="1"> <name>title</name> <string>General Settings</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>3</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>3</number> - </property> - <widget> - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout11</cstring> - </property> - <property> - <name>layoutMargin</name> - </property> - <property> - <name>layoutSpacing</name> - </property> <grid> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget row="1" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>interval_lightoff</cstring> </property> <property stdset="1"> @@ -155,38 +134,45 @@ <property stdset="1"> <name>lineStep</name> <number>10</number> </property> </widget> <widget row="1" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel2_2</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Light off after</string> </property> </widget> <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1_3</cstring> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> - <hsizetype>7</hsizetype> + <hsizetype>3</hsizetype> <vsizetype>1</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>text</name> <string>Dim light after</string> </property> </widget> <widget row="0" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> @@ -246,63 +232,75 @@ <property stdset="1"> <name>lineStep</name> <number>10</number> </property> </widget> <widget row="2" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1_2</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Suspend after</string> </property> </widget> - </grid> - </widget> - <widget> + <widget row="3" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>LcdOffOnly</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Deactivate LCD only (does not suspend)</string> </property> </widget> - </vbox> + </grid> </widget> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox9</cstring> </property> <property stdset="1"> <name>title</name> <string>Backlight</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QSlider</class> <property stdset="1"> <name>name</name> <cstring>brightness</cstring> </property> <property stdset="1"> @@ -335,32 +333,35 @@ </property> <property> <name>whatsThis</name> <string>set a fix value for backlight</string> </property> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout10</cstring> </property> + <property> + <name>layoutSpacing</name> + </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>3</number> </property> <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>PixmapLabel2</cstring> </property> <property stdset="1"> <name>pixmap</name> <pixmap>image0</pixmap> </property> <property stdset="1"> @@ -425,32 +426,35 @@ <name>scaledContents</name> <bool>false</bool> </property> </widget> </hbox> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout9</cstring> </property> + <property> + <name>layoutSpacing</name> + </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>3</number> </property> <widget> <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>auto_brightness</cstring> </property> <property stdset="1"> <name>text</name> <string>Use Light Sensor</string> </property> <property> @@ -504,25 +508,25 @@ <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>tab</cstring> </property> <attribute> <name>title</name> <string>on AC</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox4</cstring> </property> <property stdset="1"> @@ -530,49 +534,28 @@ <bool>true</bool> </property> <property stdset="1"> <name>title</name> <string>General Settings</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>3</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>3</number> - </property> - <widget> - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout14</cstring> - </property> - <property> - <name>layoutMargin</name> - </property> - <property> - <name>layoutSpacing</name> - </property> <grid> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget row="1" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>interval_lightoff_ac_3</cstring> </property> <property stdset="1"> @@ -600,25 +583,25 @@ <number>10</number> </property> </widget> <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1_3_2</cstring> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> - <hsizetype>7</hsizetype> + <hsizetype>3</hsizetype> <vsizetype>1</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>text</name> <string>Dim light after</string> </property> </widget> <widget row="2" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> @@ -647,24 +630,31 @@ <property stdset="1"> <name>lineStep</name> <number>10</number> </property> </widget> <widget row="2" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1_2_2_3</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Suspend after</string> </property> </widget> <widget row="0" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>interval_dim_ac_3</cstring> </property> <property stdset="1"> <name>suffix</name> @@ -689,63 +679,75 @@ <property stdset="1"> <name>lineStep</name> <number>10</number> </property> </widget> <widget row="1" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel2_2_2</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>1</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Light off after</string> </property> </widget> - </grid> - </widget> - <widget> + <widget row="3" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>LcdOffOnly_2_3</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Deactivate LCD only (does not suspend)</string> </property> </widget> - </vbox> + </grid> </widget> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox8</cstring> </property> <property stdset="1"> <name>title</name> <string>Backlight</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QSlider</class> <property stdset="1"> <name>name</name> <cstring>brightness_ac_3</cstring> </property> <property stdset="1"> @@ -782,32 +784,35 @@ </property> <property> <name>whatsThis</name> <string>set a fix value for backlight</string> </property> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout20</cstring> </property> + <property> + <name>layoutSpacing</name> + </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>3</number> </property> <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>PixmapLabel2_2_3</cstring> </property> <property stdset="1"> <name>pixmap</name> <pixmap>image2</pixmap> </property> <property stdset="1"> @@ -872,32 +877,35 @@ <name>scaledContents</name> <bool>false</bool> </property> </widget> </hbox> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout10</cstring> </property> + <property> + <name>layoutSpacing</name> + </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>3</number> </property> <widget> <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>auto_brightness_ac_3</cstring> </property> <property stdset="1"> <name>text</name> <string>Use Light Sensor</string> </property> <property> @@ -951,86 +959,65 @@ <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>tab</cstring> </property> <attribute> <name>title</name> <string>Advanced Settings</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> <class>QGroupBox</class> <property stdset="1"> <name>name</name> <cstring>GroupBox5</cstring> </property> <property stdset="1"> <name>title</name> <string>Warnings</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>3</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>3</number> - </property> - <widget> - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout18</cstring> - </property> - <property> - <name>layoutMargin</name> - </property> - <property> - <name>layoutSpacing</name> - </property> <grid> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>5</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel1</cstring> </property> <property stdset="1"> <name>sizePolicy</name> <sizepolicy> - <hsizetype>7</hsizetype> + <hsizetype>3</hsizetype> <vsizetype>5</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>text</name> <string>Low power warning interval</string> </property> <property stdset="1"> <name>alignment</name> <set>WordBreak|AlignVCenter|AlignLeft</set> </property> <property> @@ -1039,47 +1026,55 @@ </widget> <widget row="1" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>lowSpinBox</cstring> </property> <property stdset="1"> <name>suffix</name> <string> %</string> </property> <property stdset="1"> + <name>buttonSymbols</name> + <enum>PlusMinus</enum> + </property> + <property stdset="1"> <name>maxValue</name> <number>80</number> </property> <property stdset="1"> <name>minValue</name> <number>2</number> </property> <property> <name>whatsThis</name> <string>At what battery level should the low power warning pop up</string> </property> </widget> <widget row="0" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>warnintervalBox</cstring> </property> <property stdset="1"> <name>suffix</name> <string> sec</string> </property> <property stdset="1"> + <name>buttonSymbols</name> + <enum>PlusMinus</enum> + </property> + <property stdset="1"> <name>maxValue</name> <number>60</number> </property> <property stdset="1"> <name>minValue</name> <number>5</number> </property> <property> <name>whatsThis</name> <string>how often should be checked for low power. This determines the rate popups occure in low power situations</string> </property> </widget> @@ -1089,24 +1084,28 @@ <name>name</name> <cstring>criticalSpinBox</cstring> </property> <property stdset="1"> <name>prefix</name> <string></string> </property> <property stdset="1"> <name>suffix</name> <string> %</string> </property> <property stdset="1"> + <name>buttonSymbols</name> + <enum>PlusMinus</enum> + </property> + <property stdset="1"> <name>maxValue</name> <number>80</number> </property> <property stdset="1"> <name>minValue</name> <number>2</number> </property> <property> <name>whatsThis</name> <string>At what battery level should the critical power warning pop up</string> </property> </widget> @@ -1139,26 +1138,24 @@ <sizepolicy> <hsizetype>1</hsizetype> <vsizetype>5</vsizetype> </sizepolicy> </property> <property stdset="1"> <name>text</name> <string>critical power warning at</string> </property> </widget> </grid> </widget> - </vbox> - </widget> <spacer> <property> <name>name</name> <cstring>Spacer1</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Vertical</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Expanding</enum> @@ -1266,24 +1263,38 @@ <connection> <sender>auto_brightness_ac_3</sender> <signal>toggled(bool)</signal> <receiver>TextLabel7</receiver> <slot>setDisabled(bool)</slot> </connection> <connection> <sender>auto_brightness_ac_3</sender> <signal>toggled(bool)</signal> <receiver>PixmapLabel1_2_3</receiver> <slot>setDisabled(bool)</slot> </connection> + <connection> + <sender>CalibrateLightSensor</sender> + <signal>clicked()</signal> + <receiver>LightSettingsBase</receiver> + <slot>calibrateSensor()</slot> + </connection> + <connection> + <sender>CalibrateLightSensorAC</sender> + <signal>clicked()</signal> + <receiver>LightSettingsBase</receiver> + <slot>calibrateSensorAC()</slot> + </connection> + <slot access="public">calibrateSensor()</slot> + <slot access="public">calibrateSensorAC()</slot> </connections> <tabstops> <tabstop>interval_dim</tabstop> <tabstop>interval_lightoff</tabstop> <tabstop>interval_suspend</tabstop> <tabstop>LcdOffOnly</tabstop> <tabstop>brightness</tabstop> <tabstop>auto_brightness</tabstop> <tabstop>CalibrateLightSensor</tabstop> <tabstop>TabWidget3</tabstop> <tabstop>interval_lightoff_ac_3</tabstop> <tabstop>interval_suspend_ac_3</tabstop> diff --git a/core/settings/light-and-power/sensor.cpp b/core/settings/light-and-power/sensor.cpp new file mode 100644 index 0000000..ddd71d6 --- a/dev/null +++ b/core/settings/light-and-power/sensor.cpp @@ -0,0 +1,85 @@ +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Maximilian Reiss <harlekin@handhelds.org> + .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ +#include <qframe.h> +#include <qlayout.h> +#include <qslider.h> +#include <qspinbox.h> + +#include "calibration.h" +#include "sensor.h" + +Sensor::Sensor ( QStringList ¶ms, QWidget *parent, const char *name ) + : SensorBase ( parent, name, true, WStyle_ContextHelp ), m_params ( params ) +{ + int steps = 5; + int inter = 5; + + int smin = 0; + int smax = 255; + int lmin = 0; + int lmax = 255; + + switch ( params. count ( )) { + case 6: lmax = params [5]. toInt ( ); + case 5: lmin = params [4]. toInt ( ); + case 4: smax = params [3]. toInt ( ); + case 3: smin = params [2]. toInt ( ); + case 2: steps = params [1]. toInt ( ); + case 1: inter = params [0]. toInt ( ); + } + + QVBoxLayout *lay = new QVBoxLayout ( frame ); + lay-> setMargin ( 2 ); + m_calib = new Calibration ( frame ); + lay-> add ( m_calib ); + + m_calib-> setScale ( QSize ( 256, 256 )); + m_calib-> setLineSteps ( steps ); + m_calib-> setInterval ( inter ); + m_calib-> setStartPoint ( QPoint ( smin, lmin )); + m_calib-> setEndPoint ( QPoint ( smax, lmax )); + + 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 ))); +} + +void Sensor::accept ( ) +{ + m_params. clear ( ); + m_params << QString::number ( m_calib-> interval ( )) + << QString::number ( m_calib-> lineSteps ( )) + << QString::number ( m_calib-> startPoint ( ). x ( )) + << QString::number ( m_calib-> endPoint ( ). x ( )) + << QString::number ( m_calib-> startPoint ( ). y ( )) + << QString::number ( m_calib-> endPoint ( ). y ( )); + + QDialog::accept ( ); +} diff --git a/core/settings/light-and-power/sensor.h b/core/settings/light-and-power/sensor.h new file mode 100644 index 0000000..7a26d81 --- a/dev/null +++ b/core/settings/light-and-power/sensor.h @@ -0,0 +1,47 @@ +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Maximilian Reiss <harlekin@handhelds.org> + .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ +#ifndef __SENSOR_H__ +#define __SENSOR_H__ + +#include "sensorbase.h" + +class Calibration; +class QStringList; + +class Sensor : public SensorBase { +public: + Sensor ( QStringList ¶ms, QWidget *parent = 0, const char *name = 0 ); + + virtual void accept ( ); + +private: + QStringList &m_params; + Calibration *m_calib; +}; + +#endif
\ No newline at end of file diff --git a/core/settings/light-and-power/sensorbase.ui b/core/settings/light-and-power/sensorbase.ui new file mode 100644 index 0000000..98fce88 --- a/dev/null +++ b/core/settings/light-and-power/sensorbase.ui @@ -0,0 +1,870 @@ +<!DOCTYPE UI><UI> +<class>SensorBase</class> +<widget> + <class>QDialog</class> + <property stdset="1"> + <name>name</name> + <cstring>SensorBase</cstring> + </property> + <property stdset="1"> + <name>geometry</name> + <rect> + <x>0</x> + <y>0</y> + <width>293</width> + <height>443</height> + </rect> + </property> + <property stdset="1"> + <name>caption</name> + <string>Sensor Calibration</string> + </property> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>3</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout21</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>2</number> + </property> + <widget row="0" column="0" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout20</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>PixmapLabel1</cstring> + </property> + <property stdset="1"> + <name>pixmap</name> + <pixmap>image0</pixmap> + </property> + <property stdset="1"> + <name>scaledContents</name> + <bool>false</bool> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel5</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Full</string> + </property> + </widget> + <spacer> + <property> + <name>name</name> + <cstring>Spacer2</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel4_3</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Off</string> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>PixmapLabel2</cstring> + </property> + <property stdset="1"> + <name>pixmap</name> + <pixmap>image1</pixmap> + </property> + <property stdset="1"> + <name>scaledContents</name> + <bool>false</bool> + </property> + </widget> + </vbox> + </widget> + <widget row="0" column="1" > + <class>QFrame</class> + <property stdset="1"> + <name>name</name> + <cstring>frame</cstring> + </property> + <property stdset="1"> + <name>frameShape</name> + <enum>StyledPanel</enum> + </property> + <property stdset="1"> + <name>frameShadow</name> + <enum>Sunken</enum> + </property> + </widget> + <widget row="1" column="1" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout16</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3_2_2</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> + <name>minimumSize</name> + <size> + <width>14</width> + <height>14</height> + </size> + </property> + <property stdset="1"> + <name>maximumSize</name> + <size> + <width>14</width> + <height>14</height> + </size> + </property> + <property stdset="1"> + <name>palette</name> + <palette> + <active> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>218</red> + <green>226</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>236</red> + <green>240</green> + <blue>255</blue> + </color> + <color> + <red>109</red> + <green>113</green> + <blue>127</blue> + </color> + <color> + <red>145</red> + <green>151</green> + <blue>170</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>10</red> + <green>95</green> + <blue>137</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </active> + <disabled> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>218</red> + <green>226</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>109</red> + <green>113</green> + <blue>127</blue> + </color> + <color> + <red>145</red> + <green>151</green> + <blue>170</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>10</red> + <green>95</green> + <blue>137</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </disabled> + <inactive> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>218</red> + <green>226</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>109</red> + <green>113</green> + <blue>127</blue> + </color> + <color> + <red>145</red> + <green>151</green> + <blue>170</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>10</red> + <green>95</green> + <blue>137</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </inactive> + </palette> + </property> + <property stdset="1"> + <name>frameShape</name> + <enum>Box</enum> + </property> + <property stdset="1"> + <name>frameShadow</name> + <enum>Plain</enum> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel4_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Dark</string> + </property> + </widget> + <spacer> + <property> + <name>name</name> + <cstring>Spacer2_2</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel5_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Light</string> + </property> + </widget> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3_2</cstring> + </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> + <name>minimumSize</name> + <size> + <width>14</width> + <height>14</height> + </size> + </property> + <property stdset="1"> + <name>maximumSize</name> + <size> + <width>14</width> + <height>14</height> + </size> + </property> + <property stdset="1"> + <name>palette</name> + <palette> + <active> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>218</red> + <green>226</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>236</red> + <green>240</green> + <blue>255</blue> + </color> + <color> + <red>109</red> + <green>113</green> + <blue>127</blue> + </color> + <color> + <red>145</red> + <green>151</green> + <blue>170</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>10</red> + <green>95</green> + <blue>137</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </active> + <disabled> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>218</red> + <green>226</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>109</red> + <green>113</green> + <blue>127</blue> + </color> + <color> + <red>145</red> + <green>151</green> + <blue>170</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>10</red> + <green>95</green> + <blue>137</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </disabled> + <inactive> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>218</red> + <green>226</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>109</red> + <green>113</green> + <blue>127</blue> + </color> + <color> + <red>145</red> + <green>151</green> + <blue>170</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>10</red> + <green>95</green> + <blue>137</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </inactive> + </palette> + </property> + <property stdset="1"> + <name>frameShape</name> + <enum>Box</enum> + </property> + <property stdset="1"> + <name>frameShadow</name> + <enum>Plain</enum> + </property> + </widget> + </hbox> + </widget> + </grid> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout22</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel4</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Steps</string> + </property> + </widget> + <widget> + <class>QSlider</class> + <property stdset="1"> + <name>name</name> + <cstring>linesteps</cstring> + </property> + <property stdset="1"> + <name>minValue</name> + <number>2</number> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>127</number> + </property> + <property stdset="1"> + <name>lineStep</name> + <number>10</number> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Horizontal</enum> + </property> + <property stdset="1"> + <name>tickmarks</name> + <enum>Right</enum> + </property> + </widget> + </hbox> + </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout28</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>3</number> + </property> + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel6</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Check interval</string> + </property> + </widget> + <widget> + <class>QSpinBox</class> + <property stdset="1"> + <name>name</name> + <cstring>interval</cstring> + </property> + <property stdset="1"> + <name>suffix</name> + <string> sec</string> + </property> + <property stdset="1"> + <name>buttonSymbols</name> + <enum>PlusMinus</enum> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>10</number> + </property> + <property stdset="1"> + <name>minValue</name> + <number>1</number> + </property> + <property stdset="1"> + <name>lineStep</name> + <number>1</number> + </property> + </widget> + </hbox> + </widget> + </vbox> +</widget> +<images> + <image> + <name>image0</name> + <data format="XPM.GZ" length="439">789c6d8ec10ac2300c86ef7b8ad0ff36a4730777111f41f1288887b4b3e8610a3a0f22bebb6dd3d54d0ca5cdffe54f9aaaa4dd764d6555dc7beecf96ec896f54b68fae7bee0fab57a1ea86fc5950ad6685d2646973bd1c43ce3ec73c46903648e79a5624443a27d20cd2b9382704747e124382f11a7c5e30b364b957b331866331b3800c38f70282121c7c628367c098c1e0eb03121ccd4b46fcb0f80b26bb4833987f76b6d6f274de5fe6a1a031d30969f55e161fe4715f7b</data> + </image> + <image> + <name>image1</name> + <data format="XPM.GZ" length="424">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523234530022130543251d2e253d856405bffcbc54105b19c856360003103711c4354b324b364b06719340dcb434b36488ac1e1a2020a6acac8c2ea60cc54862606ea232b218541b5810452c3111432c510f550c22886a1e482c115d0c2c88e6168818babaa4a42462c48082cae8e68102011a06b5d65c004336518f</data> + </image> +</images> +</UI> diff --git a/core/settings/light-and-power/settings.h b/core/settings/light-and-power/settings.h index adfd735..77290a3 100644 --- a/core/settings/light-and-power/settings.h +++ b/core/settings/light-and-power/settings.h @@ -1,55 +1,64 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia Environment. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Maximilian Reiss <harlekin@handhelds.org> + .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ #ifndef SETTINGS_H #define SETTINGS_H #include <qstrlist.h> #include <qasciidict.h> #include "lightsettingsbase.h" class LightSettings : public LightSettingsBase { Q_OBJECT public: LightSettings( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); ~LightSettings(); protected: void accept(); void reject(); void done ( int r ); -private slots: - void applyBrightness(); - void applyBrightnessAC(); - void slotSliderTicks( int steps ); +protected slots: + void setBacklight ( int ); + virtual void calibrateSensor ( ); + virtual void calibrateSensorAC ( ); private: - int initbright; - int initbright_ac; + int m_res; + QStringList m_sensordata; + QStringList m_sensordata_ac; }; #endif // SETTINGS_H |