diff --git a/src/CodeKeeper/settingsFunc/functional.cpp b/src/CodeKeeper/settingsFunc/functional.cpp index fba2639..0a7c8e8 100644 --- a/src/CodeKeeper/settingsFunc/functional.cpp +++ b/src/CodeKeeper/settingsFunc/functional.cpp @@ -158,6 +158,36 @@ void SettingsWindow::fopenFolder() } } +void SettingsWindow::getAppVersion() { + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + QUrl url("https://api.github.com/repos/Nighty3098/CodeKeeper/releases/latest"); + + QUrlQuery query; + query.addQueryItem("login", git_user); + url.setQuery(query); + + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::UserAgentHeader, "CodeKeeper"); + request.setRawHeader("Authorization", ("Bearer " + git_token).toUtf8()); + request.setRawHeader("X-GitHub-Api-Version", "2022-11-28"); + request.setRawHeader("Accept", "application/vnd.github.v3+json"); + + QNetworkReply *reply = manager->get(request); + QEventLoop loop; + QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit); + + loop.exec(); + + QJsonDocument doc = QJsonDocument::fromJson(reply->readAll()); + QJsonObject obj = doc.object(); + + QString version = obj["name"].toString(); + + reply->deleteLater(); + + versionInfo->setText(version); +} + void SettingsWindow::setFontPr2(QFont *selectedFont, int *font_size_int) { qDebug() << "🟢 Applying preferences"; diff --git a/src/CodeKeeper/settingswindow.cpp b/src/CodeKeeper/settingswindow.cpp index c080485..60b1fae 100644 --- a/src/CodeKeeper/settingswindow.cpp +++ b/src/CodeKeeper/settingswindow.cpp @@ -97,7 +97,7 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QMainWindow{ parent } urlToRepo->setAlignment(Qt::AlignHCenter | Qt::AlignTop); versionInfo = new QLabel(); - versionInfo->setText("Version: 0.1.5"); + versionInfo->setText(""); versionInfo->setAlignment(Qt::AlignCenter); checkUpdatesBtn = @@ -373,6 +373,14 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QMainWindow{ parent } qDebug() << "🟢 styleThread started"; }); styleThread->start(); + + QThread *versionThread = new QThread; + QObject::connect(versionThread, &QThread::started, this, [this]() { + getAppVersion(); + + qDebug() << "🟢 versionThread started"; + }); + versionThread->start(); } SettingsWindow::~SettingsWindow() { } diff --git a/src/CodeKeeper/settingswindow.h b/src/CodeKeeper/settingswindow.h index d077018..ca158c7 100644 --- a/src/CodeKeeper/settingswindow.h +++ b/src/CodeKeeper/settingswindow.h @@ -50,6 +50,7 @@ private slots: void setFontPr2(QFont *selectedFont, int *font_size_int); void checkRepo(); + void getAppVersion(); private: QWidget *centralWidget;