From 0b278460a2ac8f95a46e722ca84fe20c4851daea Mon Sep 17 00:00:00 2001
From: "Robert C. Helling" <helling@atdotde.de>
Date: Wed, 12 Feb 2014 16:46:17 +0100
Subject: [PATCH 1/2] Store camera time offset in preferences

Signed-off-by: Robert C. Helling <helling@atdotde.de>
---
 qt-ui/divelistview.cpp  | 20 ++++++++++++++++++++
 qt-ui/divelistview.h    |  2 ++
 qt-ui/simplewidgets.cpp | 14 ++++++++++++++
 qt-ui/simplewidgets.h   |  1 +
 4 files changed, 37 insertions(+)

diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index 43f0b1c..fa19f21 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -813,7 +813,9 @@ void DiveListView::loadImages()
 	updateLastUsedImageDir(QFileInfo(fileNames[0]).dir().path());
 
 	ShiftImageTimesDialog shiftDialog(this);
+	shiftDialog.setOffset(lastImageTimeOffset());
 	shiftDialog.exec();
+	updateLastImageTimeOffset(shiftDialog.amount());
 
 	for (int i = 0; i < fileNames.size(); ++i) {
 		struct tm tm;
@@ -890,3 +892,21 @@ void DiveListView::updateLastUsedImageDir(const QString& dir)
 	s.beginGroup("FileDialog");
 	s.setValue("LastImageDir", dir);
 }
+
+int DiveListView::lastImageTimeOffset()
+{
+	QSettings settings;
+	int offset = 0;
+	
+	settings.beginGroup("MainWindow");
+	if (settings.contains("LastImageTimeOffset"))
+		offset = settings.value("LastImageTimeOffset").toInt();
+	return offset;
+}
+
+void DiveListView::updateLastImageTimeOffset(const int offset)
+{
+	QSettings s;
+	s.beginGroup("MainWindow");
+	s.setValue("LastImageTimeOffset", offset);
+}
diff --git a/qt-ui/divelistview.h b/qt-ui/divelistview.h
index 02efac3..c632122 100644
--- a/qt-ui/divelistview.h
+++ b/qt-ui/divelistview.h
@@ -75,6 +75,8 @@ private:
 	void selectTrip ( dive_trip_t* trip );
 	QString lastUsedImageDir();
 	void updateLastUsedImageDir(const QString& s);
+	void updateLastImageTimeOffset(int offset);
+	int lastImageTimeOffset();
 };
 
 #endif // DIVELISTVIEW_H
diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp
index d69425e..f4d69ff 100644
--- a/qt-ui/simplewidgets.cpp
+++ b/qt-ui/simplewidgets.cpp
@@ -11,6 +11,7 @@
 #include <QProcess>
 #include <QStringList>
 #include <QDebug>
+#include <QTime>
 
 #include "../dive.h"
 #include "mainwindow.h"
@@ -163,6 +164,7 @@ void ShiftImageTimesDialog::buttonClicked(QAbstractButton* button)
 		m_amount = ui.timeEdit->time().hour() * 3600 + ui.timeEdit->time().minute() * 60;
 		if (ui.backwards->isChecked())
 			m_amount *= -1;
+		
 	}
 }
 
@@ -177,6 +179,18 @@ int ShiftImageTimesDialog::amount() const
 	return m_amount;
 }
 
+void ShiftImageTimesDialog::setOffset(int offset)
+{
+	if (offset >= 0){
+		ui.forward->setDown(TRUE);
+	}
+	else{
+		ui.backwards->setDown(TRUE);
+		offset *= -1;
+	}
+	ui.timeEdit->setTime(QTime::QTime(offset / 3600, (offset % 3600) / 60, offset % 60));
+}
+
 bool isGnome3Session()
 {
 #if defined(QT_OS_WIW) || defined(QT_OS_MAC)
diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h
index 6cf5bcd..d227c91 100644
--- a/qt-ui/simplewidgets.h
+++ b/qt-ui/simplewidgets.h
@@ -60,6 +60,7 @@ class ShiftImageTimesDialog : public QDialog {
 public:
 	explicit ShiftImageTimesDialog(QWidget *parent);
 	int amount() const;
+	void setOffset(int offset);
 private slots:
 	void buttonClicked(QAbstractButton *button);
 private:
-- 
1.8.3.4 (Apple Git-47)

