diff options
author | Niels Weber <niels.2.weber@nokia.com> | 2010-11-02 15:01:30 +0100 |
---|---|---|
committer | Niels Weber <niels.2.weber@nokia.com> | 2010-11-02 15:01:30 +0100 |
commit | 0262ba9fe48920f3cd99ce5315b210454625e714 (patch) | |
tree | 43e08bcbba561fcfebed5b6ae77d7a311f7057ae | |
parent | d59499159db3da1389c114d8d67997e2d9584a8a (diff) |
Location attributes added
Done-with: ckamm
-rw-r--r-- | library/components/locationui.cpp | 126 | ||||
-rw-r--r-- | library/components/locationui.h | 36 |
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); |