summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Configure.mk2
-rw-r--r--Makefile2
-rw-r--r--qt-ui/mainwindow.cpp4
-rw-r--r--qt-ui/subsurfacewebservices.cpp59
-rw-r--r--qt-ui/subsurfacewebservices.h31
-rw-r--r--qt-ui/subsurfacewebservices.ui106
6 files changed, 202 insertions, 2 deletions
diff --git a/Configure.mk b/Configure.mk
index a09fcbbf1..a532d4138 100644
--- a/Configure.mk
+++ b/Configure.mk
@@ -106,7 +106,7 @@ ifeq ($(strip $(QMAKE)),)
$(error Could not find qmake or qmake-qt4 in $$PATH for the Qt4 version they failed)
endif
- QT_MODULES = QtGui QtSvg
+ QT_MODULES = QtGui QtSvg QtNetwork
QT_CORE = QtCore
MOC = $(shell $(PKGCONFIG) --variable=moc_location QtCore)
UIC = $(shell $(PKGCONFIG) --variable=uic_location QtGui)
diff --git a/Makefile b/Makefile
index e870fa3b9..ab4c8b2ef 100644
--- a/Makefile
+++ b/Makefile
@@ -48,6 +48,7 @@ HEADERS = \
qt-ui/downloadfromdivecomputer.h \
qt-ui/preferences.h \
qt-ui/simplewidgets.h \
+ qt-ui/subsurfacewebservices.h \
SOURCES = \
@@ -80,6 +81,7 @@ SOURCES = \
qt-ui/downloadfromdivecomputer.cpp \
qt-ui/preferences.cpp \
qt-ui/simplewidgets.cpp \
+ qt-ui/subsurfacewebservices.cpp \
$(RESFILE)
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 3c550439b..f4d634d7f 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -28,6 +28,7 @@
#include "models.h"
#include "downloadfromdivecomputer.h"
#include "preferences.h"
+#include "subsurfacewebservices.h"
static MainWindow* instance = 0;
@@ -181,7 +182,8 @@ void MainWindow::on_actionDownloadDC_triggered()
void MainWindow::on_actionDownloadWeb_triggered()
{
- qDebug("actionDownloadWeb");}
+ SubsurfaceWebServices::instance()->runDialog();
+}
void MainWindow::on_actionEditDeviceNames_triggered()
{
diff --git a/qt-ui/subsurfacewebservices.cpp b/qt-ui/subsurfacewebservices.cpp
new file mode 100644
index 000000000..48e56aa30
--- /dev/null
+++ b/qt-ui/subsurfacewebservices.cpp
@@ -0,0 +1,59 @@
+#include "subsurfacewebservices.h"
+#include "ui_subsurfacewebservices.h"
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QDebug>
+
+SubsurfaceWebServices* SubsurfaceWebServices::instance()
+{
+ static SubsurfaceWebServices *self = new SubsurfaceWebServices();
+ return self;
+}
+
+SubsurfaceWebServices::SubsurfaceWebServices(QWidget* parent, Qt::WindowFlags f)
+: ui( new Ui::SubsurfaceWebServices()){
+ ui->setupUi(this);
+ connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
+ connect(ui->download, SIGNAL(clicked(bool)), this, SLOT(startDownload()));
+}
+
+void SubsurfaceWebServices::buttonClicked(QAbstractButton* button)
+{
+
+}
+
+void SubsurfaceWebServices::startDownload()
+{
+ QUrl url("http://api.hohndel.org/api/dive/get/");
+ url.setQueryItems( QList<QPair<QString,QString> >() << qMakePair(QString("login"), ui->userID->text()));
+ qDebug() << url;
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ QNetworkRequest request;
+ request.setUrl(url);
+ request.setRawHeader("Accept", "text/xml");
+ reply = manager->get(request);
+ ui->progressBar->setRange(0,0);
+ connect(reply, SIGNAL(finished()), this, SLOT(downloadFinished()));
+ connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError)));
+}
+
+void SubsurfaceWebServices::downloadFinished()
+{
+ ui->progressBar->setRange(0,1);
+ QByteArray result = reply->readAll();
+ qDebug() << result;
+ ui->status->setText(tr("Download Finished"));
+}
+
+void SubsurfaceWebServices::downloadError(QNetworkReply::NetworkError error)
+{
+ ui->progressBar->setRange(0,1);
+ ui->status->setText(QString::number((int)QNetworkRequest::HttpStatusCodeAttribute));
+}
+
+
+void SubsurfaceWebServices::runDialog()
+{
+ show();
+}
diff --git a/qt-ui/subsurfacewebservices.h b/qt-ui/subsurfacewebservices.h
new file mode 100644
index 000000000..ffcc28f82
--- /dev/null
+++ b/qt-ui/subsurfacewebservices.h
@@ -0,0 +1,31 @@
+#ifndef SUBSURFACEWEBSERVICES_H
+#define SUBSURFACEWEBSERVICES_H
+
+#include <QDialog>
+#include <QNetworkReply>
+
+namespace Ui{
+ class SubsurfaceWebServices;
+};
+class QAbstractButton;
+class QNetworkReply;
+
+class SubsurfaceWebServices : public QDialog {
+ Q_OBJECT
+public:
+ static SubsurfaceWebServices* instance();
+ void runDialog();
+
+private slots:
+ void startDownload();
+ void buttonClicked(QAbstractButton* button);
+ void downloadFinished();
+ void downloadError(QNetworkReply::NetworkError error);
+
+private:
+ explicit SubsurfaceWebServices(QWidget* parent = 0, Qt::WindowFlags f = 0);
+ Ui::SubsurfaceWebServices *ui;
+ QNetworkReply *reply;
+};
+
+#endif \ No newline at end of file
diff --git a/qt-ui/subsurfacewebservices.ui b/qt-ui/subsurfacewebservices.ui
new file mode 100644
index 000000000..e1232dc38
--- /dev/null
+++ b/qt-ui/subsurfacewebservices.ui
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SubsurfaceWebServices</class>
+ <widget class="QDialog" name="SubsurfaceWebServices">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>399</width>
+ <height>104</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Download Location Data</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="1" column="0" colspan="3">
+ <widget class="QProgressBar" name="progressBar">
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="3">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QPushButton" name="download">
+ <property name="text">
+ <string>Download</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="userID">
+ <property name="placeholderText">
+ <string>Enter your ID here</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>User ID</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Status:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2">
+ <widget class="QLabel" name="status">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>SubsurfaceWebServices</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SubsurfaceWebServices</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>