From 0e927af581948cd5064a7569035b1a3d25350c28 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Date: Mon, 1 Jun 2015 22:30:33 -0300
Subject: [PATCH 3/5] Remove Combobox from LocationManagement

I tougth about it a bit, and the combobox of the
location management was a bit overkill - we already
have another combobox to select the divesite and
also the plus button to add one.

If the user wanna edit the current divesite, he can
go to menu and edit it.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
---
 qt-models/divelocationmodel.cpp |  1 +
 qt-ui/globe.h                   |  2 +-
 qt-ui/locationInformation.ui    | 78 +++++++++++++----------------------------
 qt-ui/locationinformation.cpp   | 17 ++++-----
 4 files changed, 34 insertions(+), 64 deletions(-)

diff --git a/qt-models/divelocationmodel.cpp b/qt-models/divelocationmodel.cpp
index d45df34..42f283f 100644
--- a/qt-models/divelocationmodel.cpp
+++ b/qt-models/divelocationmodel.cpp
@@ -1,5 +1,6 @@
 #include "divelocationmodel.h"
 #include "dive.h"
+#include <QDebug>
 
 bool dive_site_less_than(dive_site *a, dive_site *b)
 {
diff --git a/qt-ui/globe.h b/qt-ui/globe.h
index 5cdaa1c..ab03e12 100644
--- a/qt-ui/globe.h
+++ b/qt-ui/globe.h
@@ -39,7 +39,7 @@ private:
 	bool doubleClick;
 
 signals:
-	void coordinatesChanged(void);
+	void coordinatesChanged();
 
 public
 slots:
diff --git a/qt-ui/locationInformation.ui b/qt-ui/locationInformation.ui
index c463864..5c69351 100644
--- a/qt-ui/locationInformation.ui
+++ b/qt-ui/locationInformation.ui
@@ -17,52 +17,47 @@
    <string>Dive Site</string>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <property name="leftMargin">
-    <number>12</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <property name="horizontalSpacing">
-    <number>2</number>
-   </property>
-   <property name="verticalSpacing">
-    <number>5</number>
-   </property>
+   <item row="0" column="0" colspan="2">
+    <widget class="KMessageWidget" name="diveSiteMessage" native="true"/>
+   </item>
    <item row="1" column="0">
-    <widget class="QLabel" name="label_5">
+    <widget class="QLabel" name="label">
      <property name="text">
-      <string>Current Location</string>
+      <string>Name</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="0">
-    <widget class="QLabel" name="label">
+   <item row="1" column="1">
+    <widget class="QLineEdit" name="diveSiteName"/>
+   </item>
+   <item row="2" column="0">
+    <widget class="QLabel" name="label_2">
      <property name="text">
-      <string>Name</string>
+      <string>Coordinates</string>
      </property>
     </widget>
    </item>
-   <item row="0" column="0" colspan="3">
-    <widget class="KMessageWidget" name="diveSiteMessage" native="true"/>
+   <item row="2" column="1">
+    <widget class="QLineEdit" name="diveSiteCoordinates"/>
    </item>
-   <item row="5" column="0">
+   <item row="3" column="0">
     <widget class="QLabel" name="label_3">
      <property name="text">
       <string>Description</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="1">
-    <widget class="QLineEdit" name="diveSiteCoordinates"/>
+   <item row="3" column="1">
+    <widget class="QLineEdit" name="diveSiteDescription"/>
    </item>
-   <item row="7" column="0">
+   <item row="4" column="0">
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Notes</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="0">
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
@@ -75,32 +70,9 @@
      </property>
     </spacer>
    </item>
-   <item row="6" column="1" rowspan="2" colspan="2">
+   <item row="4" column="1" rowspan="2">
     <widget class="QPlainTextEdit" name="diveSiteNotes"/>
    </item>
-   <item row="6" column="0">
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>Notes</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="1">
-    <widget class="QLineEdit" name="diveSiteName"/>
-   </item>
-   <item row="5" column="1">
-    <widget class="QLineEdit" name="diveSiteDescription"/>
-   </item>
-   <item row="4" column="0">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Coordinates</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <widget class="QComboBox" name="currentLocation"/>
-   </item>
   </layout>
  </widget>
  <customwidgets>
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp
index 25d3dde..fe00bf5 100644
--- a/qt-ui/locationinformation.cpp
+++ b/qt-ui/locationinformation.cpp
@@ -28,8 +28,6 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo
 	ui.diveSiteMessage->setText(tr("Dive site management"));
 	ui.diveSiteMessage->addAction(closeAction);
 
-	ui.currentLocation->setModel(LocationInformationModel::instance());
-	connect(ui.currentLocation, SIGNAL(currentIndexChanged(int)), this, SLOT(setCurrentDiveSite(int)));
 	connect(this, SIGNAL(startFilterDiveSite(uint32_t)), MultiFilterSortModel::instance(), SLOT(startFilterDiveSite(uint32_t)));
 	connect(this, SIGNAL(stopFilterDiveSite()), MultiFilterSortModel::instance(), SLOT(stopFilterDiveSite()));
 }
@@ -54,13 +52,6 @@ void LocationInformationWidget::setCurrentDiveSiteByUuid(uint32_t uuid)
 
 	displayed_dive_site = *currentDs;
 
-	if (ui.currentLocation->currentText() != displayed_dive_site.name) {
-		// this will trigger setCurrentDiveSite again, and thus,
-		// will gethere with the correct uuid.
-		ui.currentLocation->setCurrentText(displayed_dive_site.name);
-		return;
-	}
-
 	if (displayed_dive_site.name)
 		ui.diveSiteName->setText(displayed_dive_site.name);
 	else
@@ -206,7 +197,13 @@ void LocationInformationWidget::on_diveSiteName_textChanged(const QString& text)
 		// This needs to be changed directly into the model so that
 		// the changes are replyed on the ComboBox with the current selection.
 
-		QModelIndex idx = ui.currentLocation->model()->index(ui.currentLocation->currentIndex(),0);
+		int i;
+		struct dive_site *ds;
+		for_each_dive_site(i,ds)
+			if (ds->uuid == currentDs->uuid)
+				break;
+
+		QModelIndex idx = LocationInformationModel::instance()->index(i,0);
 		LocationInformationModel::instance()->setData(idx, text, Qt::EditRole);
 		markChangedWidget(ui.diveSiteName);
 		emit coordinatesChanged();
-- 
2.3.2 (Apple Git-55)

