diff options
Diffstat (limited to 'library/components/locationui.cpp')
-rw-r--r-- | library/components/locationui.cpp | 95 |
1 files changed, 88 insertions, 7 deletions
diff --git a/library/components/locationui.cpp b/library/components/locationui.cpp index b0a08e7..79d550f 100644 --- a/library/components/locationui.cpp +++ b/library/components/locationui.cpp @@ -15,7 +15,10 @@ LocationUi::LocationUi(QWidget *parent) , mLongitudeEdit(0) , mAltitudeEdit(0) , mTimeEdit(0) + , mScriptInterface(0) { + mScriptInterface = new LocationScriptInterface(this); + QStringList tags; QList<OptionsItem *> optionsList; @@ -60,18 +63,96 @@ LocationUi::LocationUi(QWidget *parent) setTitle(tr("Location")); } +LocationUi::~LocationUi() +{ +} + +LocationScriptInterface *LocationUi::scriptInterface() const +{ + return mScriptInterface; +} + void LocationUi::updateLocationTime() { mTimeEdit->setDateTime(QDateTime::currentDateTime()); } -void LocationUi::setLocation() +void LocationUi::setDisplayedLocation(const LocationData &location) +{ + mLatitudeEdit->setText(QString::number(location.latitude, 'f', 8)); + mLongitudeEdit->setText(QString::number(location.longitude, 'f', 8)); + mAltitudeEdit->setText(QString::number(location.altitude, 'f', 8)); + mTimeEdit->setDateTime(location.timestamp); +} + +void LocationUi::emitLocationChange() const { - /* - mLatitudeEdit->setText(QString::number(mLocation->latitude(), 'f', 8)); - mLongitudeEdit->setText(QString::number(mLocation->longitude(), 'f', 8)); - mAltitudeEdit->setText(QString::number(mLocation->altitude(), 'f', 8)); - mTimeEdit->setDateTime(mLocation->dateTime()); - */ + LocationData location; + location.latitude = mScriptInterface->latitude(); + location.longitude = mScriptInterface->longitude(); + location.altitude = mScriptInterface->altitude(); + location.timestamp = mScriptInterface->timestamp(); + emit locationChanged(location); } +LocationScriptInterface::LocationScriptInterface(LocationUi *ui) + : QObject(ui) + , ui(ui) +{ +} + +LocationScriptInterface::~LocationScriptInterface() +{ +} + +double LocationScriptInterface::latitude() const +{ + return ui->mLatitudeEdit->text().toDouble(); +} + +void LocationScriptInterface::setLatitude(double l) +{ + if (latitude() != l) { + ui->mLatitudeEdit->setText(QString::number(l, 'f', 8)); + ui->emitLocationChange(); + } +} + +double LocationScriptInterface::longitude() const +{ + return ui->mLongitudeEdit->text().toDouble(); +} + +void LocationScriptInterface::setLongitude(double l) +{ + if (longitude() != l) { + ui->mLongitudeEdit->setText(QString::number(l, 'f', 8)); + ui->emitLocationChange(); + } +} + +double LocationScriptInterface::altitude() const +{ + return ui->mAltitudeEdit->text().toDouble(); +} + +void LocationScriptInterface::setAltitude(double a) +{ + if (altitude() != a) { + ui->mAltitudeEdit->setText(QString::number(a, 'f', 8)); + ui->emitLocationChange(); + } +} + +QDateTime LocationScriptInterface::timestamp() const +{ + return ui->mTimeEdit->dateTime(); +} + +void LocationScriptInterface::setTimestamp(const QDateTime &dt) +{ + if (timestamp() != dt) { + ui->mTimeEdit->setDateTime(dt); + ui->emitLocationChange(); + } +} |