From 48011813ab35204d72ff533b7ef3cd77966d304b Mon Sep 17 00:00:00 2001
From: "Robert C. Helling" <helling@atdotde.de>
Date: Fri, 26 Dec 2014 22:39:53 +0100
Subject: [PATCH] Read current version from H&W web page

This is only partial. It prints the current version string (to be processed by a regex) vi qDebug().

Signed-off-by: Robert C. Helling <helling@atdotde.de>
---
 qt-ui/configuredivecomputerdialog.cpp | 14 ++++++++++++++
 qt-ui/configuredivecomputerdialog.h   |  5 +++++
 2 files changed, 19 insertions(+)

diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp
index ce25d0e..67f79a7 100644
--- a/qt-ui/configuredivecomputerdialog.cpp
+++ b/qt-ui/configuredivecomputerdialog.cpp
@@ -9,6 +9,10 @@
 #include <QFileDialog>
 #include <QMessageBox>
 #include <QSettings>
+#include <QWebElement>
+#include <QWebFrame>
+#include <QWebPage>
+
 struct product {
 	const char *product;
 	dc_descriptor_t *descriptor;
@@ -183,6 +187,16 @@ ConfigureDiveComputerDialog::ConfigureDiveComputerDialog(QWidget *parent) :
 	}
 	settings.endGroup();
 	settings.endGroup();
+
+	hwVersionPage.mainFrame()->load(QUrl("http://www.heinrichsweikamp.com/?id=162"));
+	connect(&hwVersionPage, SIGNAL(loadFinished(bool)), this, SLOT(findVersion()));
+}
+
+void ConfigureDiveComputerDialog::findVersion()
+{
+	QWebElement parse = hwVersionPage.mainFrame()->documentElement();
+	QWebElement result = parse.findFirst("div[id=content_firmware_headline_typ0]");
+	qDebug() << "Version" << result.toPlainText();
 }
 
 ConfigureDiveComputerDialog::~ConfigureDiveComputerDialog()
diff --git a/qt-ui/configuredivecomputerdialog.h b/qt-ui/configuredivecomputerdialog.h
index 2f7fc29..99f1e9c 100644
--- a/qt-ui/configuredivecomputerdialog.h
+++ b/qt-ui/configuredivecomputerdialog.h
@@ -7,6 +7,7 @@
 #include "../libdivecomputer.h"
 #include "configuredivecomputer.h"
 #include <QStyledItemDelegate>
+#include <QWebPage>
 
 class GasSpinBoxItemDelegate : public QStyledItemDelegate
 {
@@ -73,6 +74,8 @@ private slots:
 	void on_updateFirmwareButton_clicked();
 
 	void on_DiveComputerList_currentRowChanged(int currentRow);
+	void findVersion();
+
 
 private:
 	Ui::ConfigureDiveComputerDialog ui;
@@ -99,6 +102,8 @@ private:
 
 	QString selected_vendor;
 	QString selected_product;
+	QWebPage hwVersionPage;
+
 };
 
 #endif // CONFIGUREDIVECOMPUTERDIALOG_H
-- 
1.9.3 (Apple Git-50)

