diff options
-rw-r--r-- | Configure.mk | 2 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 4 | ||||
-rw-r--r-- | qt-ui/subsurfacewebservices.cpp | 59 | ||||
-rw-r--r-- | qt-ui/subsurfacewebservices.h | 31 | ||||
-rw-r--r-- | qt-ui/subsurfacewebservices.ui | 106 |
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) @@ -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> |