mirror of
https://github.com/JS8Call-improved/JS8Call-improved
synced 2026-08-13 17:47:36 -04:00
63 lines
2.5 KiB
C++
63 lines
2.5 KiB
C++
|
|
|
|
/** \file
|
|
* @brief member function of the UI_Constructor class
|
|
* queries the GitHub release assets, trigged from the help menu to determine
|
|
* if the software version is the latest
|
|
*/
|
|
|
|
#include "JS8_UI/mainwindow.h"
|
|
|
|
void UI_Constructor::checkVersion(bool const alertOnUpToDate) {
|
|
auto m = new QNetworkAccessManager(this);
|
|
connect(m, &QNetworkAccessManager::finished, this,
|
|
[this, alertOnUpToDate](QNetworkReply *reply) {
|
|
if (reply->error()) {
|
|
qCDebug(mainwindow_js8) << "Checking for Updates Error:"
|
|
<< reply->errorString();
|
|
return;
|
|
}
|
|
|
|
QString content = reply->readAll().trimmed();
|
|
|
|
auto const currentVersion =
|
|
QVersionNumber::fromString(version());
|
|
auto const networkVersion = QVersionNumber::fromString(content);
|
|
|
|
qCDebug(mainwindow_js8) << "Checking Version" << currentVersion
|
|
<< "with" << networkVersion;
|
|
|
|
if (currentVersion < networkVersion) {
|
|
|
|
SelfDestructMessageBox *m = new SelfDestructMessageBox(
|
|
60, "New Updates Available",
|
|
QString("A new version (%1) of JS8Call is now "
|
|
"available. Please see the <a "
|
|
"href='https://github.com/JS8Call-improved/"
|
|
"JS8Call-improved/releases'>GitHub "
|
|
"Releases</a> for more details.")
|
|
.arg(content),
|
|
QMessageBox::Information, QMessageBox::Ok,
|
|
QMessageBox::Ok, false, this);
|
|
|
|
m->show();
|
|
|
|
} else if (alertOnUpToDate) {
|
|
|
|
SelfDestructMessageBox *m = new SelfDestructMessageBox(
|
|
60, "No Updates Available",
|
|
QString("Your version (%1) of JS8Call is up-to-date.")
|
|
.arg(version()),
|
|
QMessageBox::Information, QMessageBox::Ok,
|
|
QMessageBox::Ok, false, this);
|
|
|
|
m->show();
|
|
}
|
|
});
|
|
|
|
qCDebug(mainwindow_js8) << "Checking for Updates...";
|
|
QUrl url("https://github.com/JS8Call-improved/JS8Call-improved/releases/"
|
|
"latest/download/version.txt");
|
|
QNetworkRequest r(url);
|
|
m->get(r);
|
|
}
|