summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gehad elrobey <gehadelrobey@gmail.com>2015-01-30 21:42:33 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-01-31 10:15:12 -0800
commitad60ca84eea1e3a89b18293d101cb44e7041c9cd (patch)
tree6d4667c69d65244905d4ca4ca6f26e6a099e13bc
parentb01f14efab664ea66e07be95f38511a69dcaf8b7 (diff)
downloadsubsurface-ad60ca84eea1e3a89b18293d101cb44e7041c9cd.tar.gz
Export the XSLT based exports in a new thread.
The XSLT based exports can consume long time while applying the xml format. This time can make the GUI unresponsive. Simply call the export functions in a new Thread. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/divelogexportdialog.cpp3
-rw-r--r--qt-ui/divelogexportdialog.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/qt-ui/divelogexportdialog.cpp b/qt-ui/divelogexportdialog.cpp
index cb7d6a02e..aff0265de 100644
--- a/qt-ui/divelogexportdialog.cpp
+++ b/qt-ui/divelogexportdialog.cpp
@@ -1,6 +1,7 @@
#include <QFileDialog>
#include <QShortcut>
#include <QSettings>
+#include <QtConcurrent>
#include "divelogexportdialog.h"
#include "diveshareexportdialog.h"
@@ -310,7 +311,7 @@ void DiveLogExportDialog::on_buttonBox_accepted()
settings.endGroup();
// the non XSLT exports are called directly above, the XSLT based ons are called here
if (!stylesheet.isEmpty())
- export_dives_xslt(filename.toUtf8(), ui->exportSelected->isChecked(), ui->CSVUnits_2->currentIndex(), stylesheet.toUtf8());
+ future = QtConcurrent::run(export_dives_xslt, filename.toUtf8(), ui->exportSelected->isChecked(), ui->CSVUnits_2->currentIndex(), stylesheet.toUtf8());
}
}
diff --git a/qt-ui/divelogexportdialog.h b/qt-ui/divelogexportdialog.h
index 0a603ced6..14f8f4539 100644
--- a/qt-ui/divelogexportdialog.h
+++ b/qt-ui/divelogexportdialog.h
@@ -3,6 +3,7 @@
#include <QDialog>
#include <QTextStream>
+#include <QFuture>
#include "helpers.h"
#include "statistics.h"
@@ -27,6 +28,7 @@ slots:
void on_exportGroup_buttonClicked(QAbstractButton *);
private:
+ QFuture<int> future;
Ui::DiveLogExportDialog *ui;
void showExplanation();
void exportHtmlInit(const QString &filename);