summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiels Weber <niels.2.weber@nokia.com>2010-11-02 15:01:30 +0100
committerNiels Weber <niels.2.weber@nokia.com>2010-11-02 15:01:30 +0100
commit0262ba9fe48920f3cd99ce5315b210454625e714 (patch)
tree43e08bcbba561fcfebed5b6ae77d7a311f7057ae
parentd59499159db3da1389c114d8d67997e2d9584a8a (diff)
Location attributes added
Done-with: ckamm
-rw-r--r--library/components/locationui.cpp126
-rw-r--r--library/components/locationui.h36
2 files changed, 162 insertions, 0 deletions
diff --git a/library/components/locationui.cpp b/library/components/locationui.cpp
index f5decc4..c7c46bc 100644
--- a/library/components/locationui.cpp
+++ b/library/components/locationui.cpp
@@ -81,6 +81,48 @@ LocationUi::LocationUi(QWidget *parent)
item->setTags(tags);
optionsList << item;
+ mDirectionEdit = new QLineEdit("0");
+ mDirectionEdit->setValidator(new QDoubleValidator(0, 360, 2, this));
+ item = new OptionsItem(tr("Direction"), mDirectionEdit);
+ connect(mDirectionEdit, SIGNAL(editingFinished()), SLOT(emitLocationChange()));
+ item->setTags(tags);
+ optionsList << item;
+
+ mGroundSpeedEdit = new QLineEdit("0");
+ mGroundSpeedEdit->setValidator(new QDoubleValidator(0, 300000000, 2, this));
+ item = new OptionsItem(tr("Ground speed"), mGroundSpeedEdit);
+ connect(mGroundSpeedEdit, SIGNAL(editingFinished()), SLOT(emitLocationChange()));
+ item->setTags(tags);
+ optionsList << item;
+
+ mVerticalSpeedEdit = new QLineEdit("0");
+ mVerticalSpeedEdit->setValidator(new QDoubleValidator(-300000000, 300000000, 2, this));
+ item = new OptionsItem(tr("Vertical speed"), mVerticalSpeedEdit);
+ connect(mVerticalSpeedEdit, SIGNAL(editingFinished()), SLOT(emitLocationChange()));
+ item->setTags(tags);
+ optionsList << item;
+
+ mMagneticVariationEdit = new QLineEdit("0");
+ mMagneticVariationEdit->setValidator(new QDoubleValidator(-180, 180, 2, this));
+ item = new OptionsItem(tr("Magnetic variation"), mMagneticVariationEdit);
+ connect(mMagneticVariationEdit, SIGNAL(editingFinished()), SLOT(emitLocationChange()));
+ item->setTags(tags);
+ optionsList << item;
+
+ mHorizontalAccuracyEdit = new QLineEdit("0");
+ mHorizontalAccuracyEdit->setValidator(new QDoubleValidator(0, 100000, 2, this));
+ item = new OptionsItem(tr("Horizontal accuracy"), mHorizontalAccuracyEdit);
+ connect(mHorizontalAccuracyEdit, SIGNAL(editingFinished()), SLOT(emitLocationChange()));
+ item->setTags(tags);
+ optionsList << item;
+
+ mVerticalAccuracyEdit = new QLineEdit("0");
+ mVerticalAccuracyEdit->setValidator(new QDoubleValidator(0, 100000, 2, this));
+ item = new OptionsItem(tr("Vertical accuracy"), mVerticalAccuracyEdit);
+ connect(mVerticalAccuracyEdit, SIGNAL(editingFinished()), SLOT(emitLocationChange()));
+ item->setTags(tags);
+ optionsList << item;
+
QHBoxLayout *radioLayout = new QHBoxLayout();
mCurrentRadio = new QRadioButton(tr("Current"));
mCurrentRadio->setChecked(true);
@@ -169,6 +211,12 @@ LocationUi::LocationData LocationUi::locationData() const
location.latitude = mScriptInterface->latitude();
location.longitude = mScriptInterface->longitude();
location.altitude = mScriptInterface->altitude();
+ location.direction = mScriptInterface->direction();
+ location.groundSpeed = mScriptInterface->groundSpeed();
+ location.verticalSpeed = mScriptInterface->verticalSpeed();
+ location.magneticVariation = mScriptInterface->magneticVariation();
+ location.horizontalAccuracy = mScriptInterface->horizontalAccuracy();
+ location.verticalAccuracy = mScriptInterface->verticalAccuracy();
location.timestamp = mScriptInterface->timestamp();
location.useCurrentTime = mCurrentRadio->isChecked();
return location;
@@ -439,6 +487,84 @@ void LocationScriptInterface::setAltitude(double a)
}
}
+qreal LocationScriptInterface::direction() const
+{
+ return ui->mDirectionEdit->text().toDouble();
+}
+
+void LocationScriptInterface::setDirection(qreal a)
+{
+ if (direction() != a) {
+ ui->mDirectionEdit->setText(QString::number(a, 'f', 8));
+ ui->emitLocationChange();
+ }
+}
+
+qreal LocationScriptInterface::groundSpeed() const
+{
+ return ui->mGroundSpeedEdit->text().toDouble();
+}
+
+void LocationScriptInterface::setGroundSpeed(qreal a)
+{
+ if (groundSpeed() != a) {
+ ui->mGroundSpeedEdit->setText(QString::number(a, 'f', 8));
+ ui->emitLocationChange();
+ }
+}
+
+qreal LocationScriptInterface::verticalSpeed() const
+{
+ return ui->mVerticalSpeedEdit->text().toDouble();
+}
+
+void LocationScriptInterface::setVerticalSpeed(qreal a)
+{
+ if (verticalSpeed() != a) {
+ ui->mVerticalSpeedEdit->setText(QString::number(a, 'f', 8));
+ ui->emitLocationChange();
+ }
+}
+
+qreal LocationScriptInterface::magneticVariation() const
+{
+ return ui->mMagneticVariationEdit->text().toDouble();
+}
+
+void LocationScriptInterface::setMagneticVariation(qreal a)
+{
+ if (magneticVariation() != a) {
+ ui->mMagneticVariationEdit->setText(QString::number(a, 'f', 8));
+ ui->emitLocationChange();
+ }
+}
+
+qreal LocationScriptInterface::horizontalAccuracy() const
+{
+ return ui->mHorizontalAccuracyEdit->text().toDouble();
+}
+
+void LocationScriptInterface::setHorizontalAccuracy(qreal a)
+{
+ if (horizontalAccuracy() != a) {
+ ui->mHorizontalAccuracyEdit->setText(QString::number(a, 'f', 8));
+ ui->emitLocationChange();
+ }
+}
+
+qreal LocationScriptInterface::verticalAccuracy() const
+{
+ return ui->mVerticalAccuracyEdit->text().toDouble();
+}
+
+void LocationScriptInterface::setVerticalAccuracy(qreal a)
+{
+ if (verticalAccuracy() != a) {
+ ui->mVerticalAccuracyEdit->setText(QString::number(a, 'f', 8));
+ ui->emitLocationChange();
+ }
+}
+
void LocationScriptInterface::setUseCurrentTimestamp(bool t)
{
if (ui->mCurrentRadio->isChecked() != t) {
diff --git a/library/components/locationui.h b/library/components/locationui.h
index 1c0440c..3e3dc3e 100644
--- a/library/components/locationui.h
+++ b/library/components/locationui.h
@@ -52,6 +52,12 @@ public:
double latitude;
double longitude;
double altitude;
+ qreal direction;
+ qreal groundSpeed;
+ qreal verticalSpeed;
+ qreal magneticVariation;
+ qreal horizontalAccuracy;
+ qreal verticalAccuracy;
QDateTime timestamp;
bool useCurrentTime;
};
@@ -112,6 +118,12 @@ private:
QLineEdit *mLatitudeEdit;
QLineEdit *mLongitudeEdit;
QLineEdit *mAltitudeEdit;
+ QLineEdit *mDirectionEdit;
+ QLineEdit *mGroundSpeedEdit;
+ QLineEdit *mVerticalSpeedEdit;
+ QLineEdit *mMagneticVariationEdit;
+ QLineEdit *mHorizontalAccuracyEdit;
+ QLineEdit *mVerticalAccuracyEdit;
QRadioButton *mCurrentRadio;
QRadioButton *mOverrideRadio;
QDateTimeEdit *mTimeEdit;
@@ -138,6 +150,12 @@ public:
Q_PROPERTY(double latitude READ latitude WRITE setLatitude)
Q_PROPERTY(double longitude READ longitude WRITE setLongitude)
Q_PROPERTY(double altitude READ altitude WRITE setAltitude)
+ Q_PROPERTY(qreal direction READ direction WRITE setDirection)
+ Q_PROPERTY(qreal groundSpeed READ groundSpeed WRITE setGroundSpeed)
+ Q_PROPERTY(qreal verticalSpeed READ verticalSpeed WRITE setVerticalSpeed)
+ Q_PROPERTY(qreal magneticVariation READ magneticVariation WRITE setMagneticVariation)
+ Q_PROPERTY(qreal horizontalAccuracy READ horizontalAccuracy WRITE setHorizontalAccuracy)
+ Q_PROPERTY(qreal verticalAccuracy READ verticalAccuracy WRITE setVerticalAccuracy)
Q_PROPERTY(bool useCurrentTimestamp READ useCurrentTimestamp WRITE setUseCurrentTimestamp)
Q_PROPERTY(QDateTime timestamp READ timestamp WRITE setTimestamp)
@@ -156,6 +174,24 @@ public:
double altitude() const;
void setAltitude(double);
+ qreal direction() const;
+ void setDirection(qreal);
+
+ qreal groundSpeed() const;
+ void setGroundSpeed(qreal);
+
+ qreal verticalSpeed() const;
+ void setVerticalSpeed(qreal);
+
+ qreal magneticVariation() const;
+ void setMagneticVariation(qreal);
+
+ qreal horizontalAccuracy() const;
+ void setHorizontalAccuracy(qreal);
+
+ qreal verticalAccuracy() const;
+ void setVerticalAccuracy(qreal);
+
bool useCurrentTimestamp() const;
void setUseCurrentTimestamp(bool);