From be16ade0383813949e82491de5a26f42752c3e0f Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Sat, 7 Dec 2013 14:33:43 +0200 Subject: Divelogs.de: allow import of downloaded dives This patch adds commands to the dialog buttons, to apply (and possibly show an error if 'parse_file' fails', reject, or show help - which is a link to the 'divelogs.de' website. Signed-off-by: Lubomir I. Ivanov --- qt-ui/subsurfacewebservices.cpp | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) (limited to 'qt-ui') diff --git a/qt-ui/subsurfacewebservices.cpp b/qt-ui/subsurfacewebservices.cpp index 193f7c41b..08976e52c 100644 --- a/qt-ui/subsurfacewebservices.cpp +++ b/qt-ui/subsurfacewebservices.cpp @@ -1,7 +1,6 @@ #include "subsurfacewebservices.h" #include "../webservice.h" #include "mainwindow.h" - #include #include #include @@ -663,22 +662,39 @@ void DivelogsDeWebServices::uploadError(QNetworkReply::NetworkError error) void DivelogsDeWebServices::buttonClicked(QAbstractButton* button) { ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); - switch(ui.buttonBox->buttonRole(button)){ case QDialogButtonBox::ApplyRole:{ - char *errorptr = NULL; - parse_file(zipFile.fileName().toUtf8().constData(), &errorptr); + /* parse file and import dives */ + char *error = NULL; + parse_file(zipFile.fileName().toLocal8Bit().data(), &error); + if (error != NULL) { + mainWindow()->showError(error); + free(error); + } process_dives(TRUE, FALSE); - // ### FIXME: do something useful with the error - but there shouldn't be one, right? - if (errorptr) - qDebug() << errorptr; + mainWindow()->refreshDisplay(); + /* store last entered user/pass in config */ + QSettings s; + s.setValue("divelogde_user", ui.userID->text()); + s.setValue("divelogde_pass", ui.password->text()); + s.sync(); hide(); close(); resetState(); - mark_divelist_changed(TRUE); - mainWindow()->refreshDisplay(); } + break; + case QDialogButtonBox::RejectRole: + // these two seem to be causing a crash: + // reply->deleteLater(); + // reply = NULL; + resetState(); + break; + case QDialogButtonBox::HelpRole: + QDesktopServices::openUrl(QUrl("http://divelogs.de")); + break; + default: + break; } } -- cgit v1.2.3-70-g09d2