#pragma once #include #include #include #include "ui_software-update.h" extern "C" const char* const opentrack_version; class update_query final : public QObject { Q_OBJECT public: explicit update_query(QWidget* parent) : QObject{parent} {} QNetworkReply* r = nullptr; QNetworkAccessManager qnam{this}; QByteArray buf; QTimer t{this}; void on_finished(); void on_ready() { buf.append(r->readAll()); } void maybe_show_dialog(); }; class update_dialog : QDialog { Q_OBJECT friend class update_query; private: Ui::UpdateDialog ui; update_query& q; update_dialog(QWidget* parent, update_query& q, const QString& new_version); };