1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
diff --git a/src/citron/updater/updater_dialog.cpp b/src/citron/updater/updater_dialog.cpp
index f8c3ecc5f..87eb4cc48 100644
--- a/src/citron/updater/updater_dialog.cpp
+++ b/src/citron/updater/updater_dialog.cpp
@@ -1,8 +1,9 @@
-#ifdef _WIN32
// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "citron/updater/updater_dialog.h"
+
+#ifdef _WIN32
#include "ui_updater_dialog.h"
#include <QApplication>
@@ -353,4 +354,45 @@ QString UpdaterDialog::GetUpdateMessage(Updater::UpdaterService::UpdateResult re
#include "updater_dialog.moc"
+#else // _WIN32
+
+// Forward declarations for non-Windows platforms
+namespace Updater {
+struct UpdateInfo {};
+class UpdaterService {
+public:
+ enum class UpdateResult { Success };
+};
+}
+
+// Stub implementations for non-Windows platforms
+UpdaterDialog::UpdaterDialog(QWidget* parent) : QDialog(parent) {}
+UpdaterDialog::~UpdaterDialog() = default;
+void UpdaterDialog::CheckForUpdates(const std::string&) {}
+void UpdaterDialog::ShowUpdateAvailable(const Updater::UpdateInfo&) {}
+void UpdaterDialog::ShowUpdateChecking() {}
+void UpdaterDialog::OnUpdateCheckCompleted(bool, const Updater::UpdateInfo&) {}
+void UpdaterDialog::OnUpdateDownloadProgress(int, qint64, qint64) {}
+void UpdaterDialog::OnUpdateInstallProgress(int, const QString&) {}
+void UpdaterDialog::OnUpdateCompleted(Updater::UpdaterService::UpdateResult, const QString&) {}
+void UpdaterDialog::OnUpdateError(const QString&) {}
+void UpdaterDialog::OnDownloadButtonClicked() {}
+void UpdaterDialog::OnCancelButtonClicked() {}
+void UpdaterDialog::OnCloseButtonClicked() {}
+void UpdaterDialog::OnRestartButtonClicked() {}
+void UpdaterDialog::SetupUI() {}
+void UpdaterDialog::ShowCheckingState() {}
+void UpdaterDialog::ShowNoUpdateState() {}
+void UpdaterDialog::ShowUpdateAvailableState() {}
+void UpdaterDialog::ShowDownloadingState() {}
+void UpdaterDialog::ShowInstallingState() {}
+void UpdaterDialog::ShowCompletedState() {}
+void UpdaterDialog::ShowErrorState() {}
+void UpdaterDialog::UpdateDownloadProgress(int, qint64, qint64) {}
+void UpdaterDialog::UpdateInstallProgress(int, const QString&) {}
+QString UpdaterDialog::FormatBytes(qint64) const { return QString(); }
+QString UpdaterDialog::GetUpdateMessage(Updater::UpdaterService::UpdateResult) const { return QString(); }
+
+#include "updater_dialog.moc"
+
#endif // _WIN32
diff --git a/src/citron/updater/updater_dialog.h b/src/citron/updater/updater_dialog.h
index ec87be138..3f02ee556 100644
--- a/src/citron/updater/updater_dialog.h
+++ b/src/citron/updater/updater_dialog.h
@@ -3,10 +3,10 @@
#pragma once
-#ifdef _WIN32
-
#include <memory>
#include <QDialog>
+
+#ifdef _WIN32
#include <QProgressBar>
#include <QLabel>
#include <QPushButton>
@@ -14,6 +14,13 @@
#include <QTimer>
#include "citron/updater/updater_service.h"
+#else
+// Forward declarations for non-Windows platforms
+namespace Updater {
+struct UpdateInfo;
+class UpdaterService;
+}
+#endif
namespace Ui {
class UpdaterDialog;
@@ -64,6 +71,7 @@ private:
QString GetUpdateMessage(Updater::UpdaterService::UpdateResult result) const;
private:
+#ifdef _WIN32
std::unique_ptr<Ui::UpdaterDialog> ui;
std::unique_ptr<Updater::UpdaterService> updater_service;
@@ -85,6 +93,5 @@ private:
qint64 total_download_size = 0;
qint64 downloaded_bytes = 0;
QTimer* progress_timer;
-};
-
-#endif // _WIN32
\ No newline at end of file
+#endif // _WIN32
+};
\ No newline at end of file
|