aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/subsurfacewebservices.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/subsurfacewebservices.cpp')
-rw-r--r--qt-ui/subsurfacewebservices.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/qt-ui/subsurfacewebservices.cpp b/qt-ui/subsurfacewebservices.cpp
index abd5f6fc4..d4a1428ee 100644
--- a/qt-ui/subsurfacewebservices.cpp
+++ b/qt-ui/subsurfacewebservices.cpp
@@ -200,6 +200,7 @@ WebServices::WebServices(QWidget* parent, Qt::WindowFlags f): QDialog(parent, f)
connect(&timeout, SIGNAL(timeout()), this, SLOT(downloadTimedOut()));
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
timeout.setSingleShot(true);
+ defaultApplyText = ui.buttonBox->button(QDialogButtonBox::Apply)->text();
}
void WebServices::hidePassword()
@@ -281,6 +282,7 @@ void WebServices::resetState()
ui.progressBar->reset();
ui.progressBar->setRange(0,1);
ui.status->setText(QString());
+ ui.buttonBox->button(QDialogButtonBox::Apply)->setText(defaultApplyText);
}
// #
@@ -536,6 +538,8 @@ DivelogsDeWebServices* DivelogsDeWebServices::instance()
void DivelogsDeWebServices::downloadDives()
{
+ uploadMode = false;
+ resetState();
hideUpload();
exec();
}
@@ -573,6 +577,10 @@ void DivelogsDeWebServices::uploadDives(QIODevice *dldContent)
multipart = ∓
hideDownload();
resetState();
+ uploadMode = true;
+ ui.buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(true);
+ ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
+ ui.buttonBox->button(QDialogButtonBox::Apply)->setText(tr("Done"));
exec();
multipart = NULL;
@@ -585,6 +593,7 @@ void DivelogsDeWebServices::uploadDives(QIODevice *dldContent)
DivelogsDeWebServices::DivelogsDeWebServices(QWidget* parent, Qt::WindowFlags f): WebServices(parent, f)
{
+ uploadMode = false;
QSettings s;
ui.userID->setText(s.value("divelogde_user").toString());
ui.password->setText(s.value("divelogde_pass").toString());
@@ -758,6 +767,9 @@ void DivelogsDeWebServices::uploadFinished()
ui.progressBar->setRange(0,1);
ui.upload->setEnabled(true);
+ ui.buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false);
+ ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true);
+ ui.buttonBox->button(QDialogButtonBox::Apply)->setText(tr("Done"));
ui.status->setText(tr("Upload finished"));
// check what the server sent us: it might contain
@@ -807,6 +819,13 @@ void DivelogsDeWebServices::buttonClicked(QAbstractButton* button)
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
switch(ui.buttonBox->buttonRole(button)){
case QDialogButtonBox::ApplyRole:{
+ /* in 'uploadMode' button is called 'Done' and closes the dialog */
+ if (uploadMode) {
+ hide();
+ close();
+ resetState();
+ break;
+ }
/* parse file and import dives */
char *error = NULL;
parse_file(zipFile.fileName().toLocal8Bit().data(), &error);