diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-05-06 19:44:07 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-05-10 05:01:33 +0200 |
commit | a6c4bab412e45c327c32e56fb77e235bbc9f9d84 (patch) | |
tree | 12807acd9911c5e9ef75e255277400a9672ff998 /opentrack/software-update-dialog.hpp | |
parent | 178a4b316e75d1edf17024b05b39452be88cdac4 (diff) |
trackhat: add software update check
Diffstat (limited to 'opentrack/software-update-dialog.hpp')
-rw-r--r-- | opentrack/software-update-dialog.hpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/opentrack/software-update-dialog.hpp b/opentrack/software-update-dialog.hpp new file mode 100644 index 00000000..caad7cfa --- /dev/null +++ b/opentrack/software-update-dialog.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include <QtNetwork> +#include <QDialog> +#include "ui_software-update.h" + +extern "C" const char* const opentrack_version; + +struct update_query final +{ + explicit update_query(QWidget* parent) : parent(parent), qnam(parent) {} + + QWidget* parent; + QNetworkReply* r = nullptr; + QNetworkAccessManager qnam; + QByteArray buf; + bool abort = false; + + void on_finished(); + void on_ready() { buf.append(r->readAll()); } + void maybe_show_dialog(); +}; + +class update_dialog : public QDialog +{ + Q_OBJECT + friend struct update_query; +private: + Ui::UpdateDialog ui; + update_query& q; +private slots: + void close(QAbstractButton*) { QDialog::close(); } +public: + update_dialog(QWidget* parent, update_query& q, const QString& new_version); +}; + |