From 19428b913da26645bb09d014f01d5575280c0c47 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Date: Thu, 30 Jul 2015 22:10:01 -0300
Subject: [PATCH 06/10] Change the coordinates via globe.

Now when the user selects the dive site edit, the globe
will enter in edit mode too.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
---
 qt-ui/locationinformation.cpp | 20 ++++++++++++++------
 qt-ui/locationinformation.h   |  3 ++-
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp
index aec20f9..721e831 100644
--- a/qt-ui/locationinformation.cpp
+++ b/qt-ui/locationinformation.cpp
@@ -26,6 +26,14 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo
 
 	connect(this, SIGNAL(startFilterDiveSite(uint32_t)), MultiFilterSortModel::instance(), SLOT(startFilterDiveSite(uint32_t)));
 	connect(this, SIGNAL(stopFilterDiveSite()), MultiFilterSortModel::instance(), SLOT(stopFilterDiveSite()));
+
+	// Globe Management Code.
+	connect(this, &LocationInformationWidget::requestCoordinates,
+			GlobeGPS::instance(), &GlobeGPS::prepareForGetDiveCoordinates);
+	connect(this, &LocationInformationWidget::endRequestCoordinates,
+			GlobeGPS::instance(), &GlobeGPS::endGetDiveCoordinates);
+	connect(GlobeGPS::instance(), &GlobeGPS::coordinatesChanged,
+			this, &LocationInformationWidget::updateGpsCoordinates);
 }
 
 void LocationInformationWidget::updateLabels()
@@ -85,18 +93,15 @@ void LocationInformationWidget::acceptChanges()
 
 	mark_divelist_changed(true);
 	resetState();
+	emit endRequestCoordinates();
 	emit endEditDiveSite();
 	emit coordinatesChanged();
 }
 
-void LocationInformationWidget::on_btnPickCoordinates_clicked()
-{
-	qDebug() << "Sim, Deve haver o perdao";
-}
-
 void LocationInformationWidget::rejectChanges()
 {
 	resetState();
+	emit endRequestCoordinates();
 	emit stopFilterDiveSite();
 	emit endEditDiveSite();
 	emit coordinatesChanged();
@@ -104,9 +109,12 @@ void LocationInformationWidget::rejectChanges()
 
 void LocationInformationWidget::showEvent(QShowEvent *ev)
 {
-	if (displayed_dive_site.uuid)
+	if (displayed_dive_site.uuid) {
 		updateLabels();
 		emit startFilterDiveSite(displayed_dive_site.uuid);
+	}
+	emit requestCoordinates();
+
 	QGroupBox::showEvent(ev);
 }
 
diff --git a/qt-ui/locationinformation.h b/qt-ui/locationinformation.h
index ef28dda..09814e9 100644
--- a/qt-ui/locationinformation.h
+++ b/qt-ui/locationinformation.h
@@ -24,7 +24,6 @@ public slots:
 	void on_diveSiteDescription_textChanged(const QString& text);
 	void on_diveSiteName_textChanged(const QString& text);
 	void on_diveSiteNotes_textChanged();
-	void on_btnPickCoordinates_clicked();
 private slots:
 	void updateLabels();
 signals:
@@ -33,6 +32,8 @@ signals:
 	void coordinatesChanged();
 	void startFilterDiveSite(uint32_t uuid);
 	void stopFilterDiveSite();
+	void requestCoordinates();
+	void endRequestCoordinates();
 private:
 	Ui::LocationInformation ui;
 	bool modified;
-- 
2.3.2 (Apple Git-55)

