summaryrefslogtreecommitdiffstats
path: root/library/components/locationui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'library/components/locationui.cpp')
-rw-r--r--library/components/locationui.cpp95
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();
+ }
+}