fix: Auto Update Link

This commit is contained in:
collecting
2025-10-26 05:34:26 +00:00
parent deefdd36b0
commit c63396459b

View File

@@ -7,59 +7,60 @@
#include <memory> #include <memory>
#include "citron/updater/updater_service.h" #include "citron/updater/updater_service.h"
// Forward declare QString for the helper function.
class QString; class QString;
namespace Ui { namespace Ui {
class UpdaterDialog; class UpdaterDialog;
} }
namespace Updater { namespace Updater {
// Add the declaration for the date formatting helper function. // Declarations for helper functions
QString FormatDateTimeString(const std::string& iso_string); QString FormatDateTimeString(const std::string& iso_string);
class UpdaterDialog : public QDialog { QString FormatChangelog(const std::string& raw_changelog);
Q_OBJECT
public: class UpdaterDialog : public QDialog {
explicit UpdaterDialog(QWidget* parent = nullptr); Q_OBJECT
~UpdaterDialog() override;
void CheckForUpdates(const std::string& update_url); public:
explicit UpdaterDialog(QWidget* parent = nullptr);
~UpdaterDialog() override;
private slots: void CheckForUpdates(const std::string& update_url);
void OnUpdateCheckCompleted(bool has_update, const Updater::UpdateInfo& update_info);
void OnUpdateDownloadProgress(int percentage, qint64 bytes_received, qint64 bytes_total);
void OnUpdateInstallProgress(int percentage, const QString& current_file);
void OnUpdateCompleted(Updater::UpdaterService::UpdateResult result, const QString& message);
void OnUpdateError(const QString& error_message);
void OnDownloadButtonClicked();
void OnCancelButtonClicked();
void OnCloseButtonClicked();
void OnRestartButtonClicked();
private: private slots:
enum class State { Checking, NoUpdate, UpdateAvailable, Downloading, Installing, Completed, Error }; void OnUpdateCheckCompleted(bool has_update, const Updater::UpdateInfo& update_info);
void OnUpdateDownloadProgress(int percentage, qint64 bytes_received, qint64 bytes_total);
void OnUpdateInstallProgress(int percentage, const QString& current_file);
void OnUpdateCompleted(Updater::UpdaterService::UpdateResult result, const QString& message);
void OnUpdateError(const QString& error_message);
void OnDownloadButtonClicked();
void OnCancelButtonClicked();
void OnCloseButtonClicked();
void OnRestartButtonClicked();
void SetupUI(); private:
void ShowCheckingState(); enum class State { Checking, NoUpdate, UpdateAvailable, Downloading, Installing, Completed, Error };
void ShowNoUpdateState(const Updater::UpdateInfo& update_info);
void ShowUpdateAvailableState();
void ShowDownloadingState();
void ShowInstallingState();
void ShowCompletedState();
void ShowErrorState();
QString FormatBytes(qint64 bytes) const;
QString GetUpdateMessage(Updater::UpdaterService::UpdateResult result) const;
std::unique_ptr<Ui::UpdaterDialog> ui; void SetupUI();
std::unique_ptr<Updater::UpdaterService> updater_service; void ShowCheckingState();
UpdateInfo current_update_info; void ShowNoUpdateState(const Updater::UpdateInfo& update_info);
State current_state; void ShowUpdateAvailableState();
qint64 total_download_size; void ShowDownloadingState();
qint64 downloaded_bytes; void ShowInstallingState();
QTimer* progress_timer; void ShowCompletedState();
}; void ShowErrorState();
QString FormatBytes(qint64 bytes) const;
QString GetUpdateMessage(Updater::UpdaterService::UpdateResult result) const;
std::unique_ptr<Ui::UpdaterDialog> ui;
std::unique_ptr<Updater::UpdaterService> updater_service;
UpdateInfo current_update_info;
State current_state;
qint64 total_download_size;
qint64 downloaded_bytes;
QTimer* progress_timer;
};
} // namespace Updater } // namespace Updater