From baf129f0dc92566575df6f567448dda3a1a035af Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Fri, 14 Nov 2025 02:00:33 +0100 Subject: [PATCH] feat: Add download button for updater --- settings/UpdateDialog.cpp | 38 +++++++++++++++++++++++++++++++++++--- settings/UpdateDialog.hpp | 4 +++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/settings/UpdateDialog.cpp b/settings/UpdateDialog.cpp index 206de67..1298fc7 100644 --- a/settings/UpdateDialog.cpp +++ b/settings/UpdateDialog.cpp @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2024-2025 Petr Mironychev * * This file is part of QodeAssist. @@ -47,13 +47,39 @@ UpdateDialog::UpdateDialog(QWidget *parent) m_layout->addWidget(supportLabel); auto *supportLink = new QLabel( - tr("Support on Ko-fi " - "☕"), + "Support on Ko-fi " + "☕", this); supportLink->setOpenExternalLinks(true); supportLink->setTextFormat(Qt::RichText); supportLink->setAlignment(Qt::AlignCenter); m_layout->addWidget(supportLink); + auto *githubSupportLink = new QLabel( + " Support page on github ", + this); + githubSupportLink->setOpenExternalLinks(true); + githubSupportLink->setTextFormat(Qt::RichText); + githubSupportLink->setAlignment(Qt::AlignCenter); + m_layout->addWidget(githubSupportLink); + + m_layout->addSpacing(20); + + auto *updaterInfoLabel = new QLabel( + tr("QodeAssistUpdater - convenient tool for plugin installation and updates"), + this); + updaterInfoLabel->setAlignment(Qt::AlignCenter); + updaterInfoLabel->setWordWrap(true); + m_layout->addWidget(updaterInfoLabel); + + m_buttonOpenUpdaterRelease = new QPushButton(tr("Download QodeAssistUpdater"), this); + m_buttonOpenUpdaterRelease->setMaximumWidth(250); + auto *updaterButtonLayout = new QHBoxLayout; + updaterButtonLayout->addStretch(); + updaterButtonLayout->addWidget(m_buttonOpenUpdaterRelease); + updaterButtonLayout->addStretch(); + m_layout->addLayout(updaterButtonLayout); m_layout->addSpacing(20); @@ -90,6 +116,7 @@ UpdateDialog::UpdateDialog(QWidget *parent) connect(m_updater, &PluginUpdater::updateCheckFinished, this, &UpdateDialog::handleUpdateInfo); connect(m_buttonOpenReleasePage, &QPushButton::clicked, this, &UpdateDialog::openReleasePage); connect(m_buttonOpenPluginFolder, &QPushButton::clicked, this, &UpdateDialog::openPluginFolder); + connect(m_buttonOpenUpdaterRelease, &QPushButton::clicked, this, &UpdateDialog::openUpdaterReleasePage); connect(m_closeButton, &QPushButton::clicked, this, &QDialog::reject); m_updater->checkForUpdates(); @@ -145,4 +172,9 @@ void UpdateDialog::openPluginFolder() accept(); } +void UpdateDialog::openUpdaterReleasePage() +{ + QDesktopServices::openUrl(QUrl("https://github.com/Palm1r/QodeAssistUpdater")); +} + } // namespace QodeAssist diff --git a/settings/UpdateDialog.hpp b/settings/UpdateDialog.hpp index 2dcf2de..7fafb42 100644 --- a/settings/UpdateDialog.hpp +++ b/settings/UpdateDialog.hpp @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2024-2025 Petr Mironychev * * This file is part of QodeAssist. @@ -43,6 +43,7 @@ private slots: void handleUpdateInfo(const PluginUpdater::UpdateInfo &info); void openReleasePage(); void openPluginFolder(); + void openUpdaterReleasePage(); private: PluginUpdater *m_updater; @@ -53,6 +54,7 @@ private: QTextEdit *m_changelogText; QPushButton *m_buttonOpenReleasePage; QPushButton *m_buttonOpenPluginFolder; + QPushButton *m_buttonOpenUpdaterRelease; QPushButton *m_closeButton; PluginUpdater::UpdateInfo m_updateInfo; };