summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-11-18 14:37:38 +0100
committerChristian Kamm <christian.d.kamm@nokia.com>2010-11-18 14:37:38 +0100
commit25b38d423c808c5eb89055562a47cfa690091e54 (patch)
tree78b313cb1aee56bd38705d520f2230af58cf7f81
parentfc3c06e09679d53437e285ec0b7bfa7aea6ca029 (diff)
Sensors ui: Clean up and add fast-access accelerometer buttons.
Reviewed-by: owolff
-rw-r--r--src/ui/sensorsui.cpp95
-rw-r--r--src/ui/sensorsui.h7
2 files changed, 95 insertions, 7 deletions
diff --git a/src/ui/sensorsui.cpp b/src/ui/sensorsui.cpp
index 728ac6b..0180f91 100644
--- a/src/ui/sensorsui.cpp
+++ b/src/ui/sensorsui.cpp
@@ -149,12 +149,56 @@ SensorsUi::SensorsUi(QWidget *parent)
OptionsItem *item = new OptionsItem(tr("Ambient light"), mAmbientLightBox);
optionsList << item;
+ {
+ QWidget *control = new QWidget;
+ QVBoxLayout *vlayout = new QVBoxLayout;
+
+ mAccelerometerControl = new AccelerometerControl();
+ mAccelerometerControl->setMinimumHeight(150);
+ connect(mAccelerometerControl, SIGNAL(valueChanged(QVector3D)), this, SLOT(setAccelerometerValue(QVector3D)));
+ vlayout->addWidget(mAccelerometerControl);
+
+ QHBoxLayout *hlayout = new QHBoxLayout;
+ vlayout->addLayout(hlayout);
+
+ struct ButtonData {
+ QString toolTip;
+ const char *iconPath;
+ const char *slot;
+ };
+ ButtonData data[] = {
+ { tr("Top Up"), ":/ui/icons/topup.png", SLOT(setAccelerometerTopUp()) },
+ { tr("Left Up"), ":/ui/icons/leftup.png", SLOT(setAccelerometerLeftUp()) },
+ { tr("Top Down"), ":/ui/icons/topdown.png", SLOT(setAccelerometerTopDown()) },
+ { tr("Right Up"), ":/ui/icons/rightup.png", SLOT(setAccelerometerRightUp()) },
+ { tr("Face Up"), ":/ui/icons/faceup.png", SLOT(setAccelerometerFaceUp()) },
+ { tr("Face Down"), ":/ui/icons/facedown.png", SLOT(setAccelerometerFaceDown()) }
+ };
+ for (int i = 0; i < 6; ++i) {
+ ButtonData b = data[i];
+ QPushButton *button = new QPushButton;
+ button->setToolTip(b.toolTip);
+ button->setIcon(QIcon(b.iconPath));
+ connect(button, SIGNAL(clicked()), this, b.slot);
+ hlayout->addWidget(button);
+ }
+ hlayout->setMargin(0);
+ hlayout->setSpacing(0);
+
+ control->setLayout(vlayout);
+
+ item = new OptionsItem(tr("Accelerometer"), control);
+ item->setTags(tags);
+ optionsList << item;
+ }
+
mAccelerometerXEdit = new SensorDoubleEdit();
mAccelerometerXEdit->setRange(-50, 50);
mAccelerometerXEdit->setDecimalPlaces(2);
item = new OptionsItem(tr("Accelerometer x"), mAccelerometerXEdit);
connect(mAccelerometerXEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mAccelerometerYEdit = new SensorDoubleEdit();
@@ -163,6 +207,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Accelerometer y"), mAccelerometerYEdit);
connect(mAccelerometerYEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mAccelerometerZEdit = new SensorDoubleEdit();
@@ -171,13 +216,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Accelerometer z"), mAccelerometerZEdit);
connect(mAccelerometerZEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
- optionsList << item;
-
- mAccelerometerControl = new AccelerometerControl();
- mAccelerometerControl->setMinimumHeight(150);
- connect(mAccelerometerControl, SIGNAL(valueChanged(QVector3D)), this, SLOT(setAccelerometerValue(QVector3D)));
- item = new OptionsItem(tr("Accelerometer"), mAccelerometerControl);
- item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mMagnetometerXEdit = new SensorDoubleEdit();
@@ -186,6 +225,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Magnetometer x"), mMagnetometerXEdit);
connect(mMagnetometerXEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mMagnetometerYEdit = new SensorDoubleEdit();
@@ -194,6 +234,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Magnetometer y"), mMagnetometerYEdit);
connect(mMagnetometerYEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mMagnetometerZEdit = new SensorDoubleEdit();
@@ -202,6 +243,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Magnetometer z"), mMagnetometerZEdit);
connect(mMagnetometerZEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mMagnetometerCalibrationLevelEdit = new SensorDoubleEdit();
@@ -210,6 +252,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Magnetometer calibration level"), mMagnetometerCalibrationLevelEdit);
connect(mMagnetometerCalibrationLevelEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mCompassAzimuthEdit = new SensorDoubleEdit();
@@ -226,6 +269,7 @@ SensorsUi::SensorsUi(QWidget *parent)
item = new OptionsItem(tr("Compass calibration level"), mCompassCalibrationLevelEdit);
connect(mCompassCalibrationLevelEdit, SIGNAL(valueChanged(double)), SLOT(emitSensorsDataChange()));
item->setTags(tags);
+ item->setAdvanced(true);
optionsList << item;
mProximitySensorCloseButton = new QPushButton(tr("Far"));
@@ -251,6 +295,7 @@ SensorsUi::SensorsUi(QWidget *parent)
tmp->setLayout(vLayout);
item = new OptionsItem(tr("Timestamp"), tmp);
item->setTags(tags << tr("Current") << tr("Override"));
+ item->setAdvanced(true);
optionsList << item;
connect(mCurrentRadio, SIGNAL(toggled(bool)), SLOT(updateTimeEditDisabled()));
connect(mTimeEdit, SIGNAL(dateTimeChanged(const QDateTime &)), SLOT(emitSensorsDataChange()));
@@ -353,6 +398,42 @@ void SensorsUi::updateTimeEditDisabled()
emitSensorsDataChange();
}
+void SensorsUi::setAccelerometerTopUp()
+{
+ setAccelerometerValue(QVector3D(0, 9.8, 0));
+ emitSensorsDataChange();
+}
+
+void SensorsUi::setAccelerometerLeftUp()
+{
+ setAccelerometerValue(QVector3D(-9.8, 0, 0));
+ emitSensorsDataChange();
+}
+
+void SensorsUi::setAccelerometerRightUp()
+{
+ setAccelerometerValue(QVector3D(9.8, 0, 0));
+ emitSensorsDataChange();
+}
+
+void SensorsUi::setAccelerometerTopDown()
+{
+ setAccelerometerValue(QVector3D(0, -9.8, 0));
+ emitSensorsDataChange();
+}
+
+void SensorsUi::setAccelerometerFaceUp()
+{
+ setAccelerometerValue(QVector3D(0, 0, 9.8));
+ emitSensorsDataChange();
+}
+
+void SensorsUi::setAccelerometerFaceDown()
+{
+ setAccelerometerValue(QVector3D(0, 0, -9.8));
+ emitSensorsDataChange();
+}
+
/*!
\class SensorsScriptInterface
\brief Exposed as sensors.
diff --git a/src/ui/sensorsui.h b/src/ui/sensorsui.h
index 5793fe3..d8a9b6f 100644
--- a/src/ui/sensorsui.h
+++ b/src/ui/sensorsui.h
@@ -202,6 +202,13 @@ private slots:
void updateTimeEditDisabled();
void updateProximityButtonText();
+ void setAccelerometerTopUp();
+ void setAccelerometerLeftUp();
+ void setAccelerometerRightUp();
+ void setAccelerometerTopDown();
+ void setAccelerometerFaceUp();
+ void setAccelerometerFaceDown();
+
private:
void initializeAmbientLightOptions();