summaryrefslogtreecommitdiffhomepage
path: root/opentrack/software-update-dialog.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-05-08 19:59:35 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-05-10 05:01:33 +0200
commitfa7261f124327ccac5212e7fed23cd21cc062fef (patch)
tree0591a8d9d15b1ff241c5b4480072d397c23880c7 /opentrack/software-update-dialog.cpp
parenta6c4bab412e45c327c32e56fb77e235bbc9f9d84 (diff)
trackhat: run update check in the background
Diffstat (limited to 'opentrack/software-update-dialog.cpp')
-rw-r--r--opentrack/software-update-dialog.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/opentrack/software-update-dialog.cpp b/opentrack/software-update-dialog.cpp
index 45e41738..ccdf2f0e 100644
--- a/opentrack/software-update-dialog.cpp
+++ b/opentrack/software-update-dialog.cpp
@@ -13,11 +13,12 @@ update_dialog::update_dialog(QWidget* parent, update_query& q, const QString& ne
void update_query::on_finished()
{
- if (abort)
+ if (!t.isActive())
return;
+ t.stop();
if (r->error() != QNetworkReply::NoError)
{
- qDebug() << "update error" << r->errorString();
+ qDebug() << "updater: error" << r->error() << r->errorString();
return;
}
QString str(buf);
@@ -31,8 +32,8 @@ void update_query::on_finished()
if (!str.isEmpty() && str != opentrack_version && str != quiet_version)
{
- qDebug() << "update version" << str;
- update_dialog dlg(parent, *this, str);
+ qDebug() << "updater: new version" << str;
+ update_dialog dlg(qobject_cast<QWidget*>(parent()), *this, str);
dlg.show();
dlg.raise();
dlg.exec();
@@ -40,26 +41,25 @@ void update_query::on_finished()
s.setValue("quiet-update-version", str);
}
}
+ else
+ {
+ if (buf.isEmpty())
+ qDebug() << "updater: empty response";
+ else
+ qDebug() << "updater: can't parse response";
+ }
buf.clear();
r->deleteLater();
}
void update_query::maybe_show_dialog()
{
- QEventLoop ev;
- QTimer t{&ev}; t.setSingleShot(true);
+ t.stop();
+ t.setSingleShot(true);
t.start(1000 * 10);
- QObject::connect(&t, &QTimer::timeout, [this, &ev] {
- abort = true;
- ev.quit();
- });
r = qnam.get(QNetworkRequest(QStringLiteral("https://www.trackhat.org/thotversion")));
- QObject::connect(r, &QIODevice::readyRead, [this] { on_ready(); });
- QObject::connect(r, &QNetworkReply::finished, [&]() {
- on_finished();
- ev.quit();
- });
- ev.exec();
+ QObject::connect(r, &QIODevice::readyRead, this, &update_query::on_ready);
+ QObject::connect(r, &QNetworkReply::finished, this, &update_query::on_finished);
}