Skip to content

Commit cb1d60c

Browse files
committed
Cleanup: pass stuff in QmlDownloader constructor
... instead of setting members directly. The qmlRegisterType thing needed to be tweaked so that it doesn't require a default constructor to exist.
1 parent 74a3db2 commit cb1d60c

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

main.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,7 @@ int main(int argc, char *argv[])
210210
SplashController splashController(
211211
options.relaunchCommand, options.updateUpdaterVersion, options.connectUrl, settings);
212212
splashController.checkForUpdate();
213-
QmlDownloader downloader;
214-
downloader.ariaLogFilename_ = options.ariaLogFilename;
215-
downloader.connectUrl_ = options.connectUrl;
213+
QmlDownloader downloader(options.ariaLogFilename, options.connectUrl, settings);
216214
QQmlApplicationEngine engine;
217215
engine.addImportPath(QLatin1String("qrc:/"));
218216
engine.addImageProvider(QLatin1String("fluidicons"), new IconsImageProvider());
@@ -223,7 +221,10 @@ int main(int argc, char *argv[])
223221
context->setContextProperty("splashController", &splashController);
224222
context->setContextProperty("downloader", &downloader);
225223
context->setContextProperty("splashMilliseconds", options.splashMilliseconds);
226-
qmlRegisterType<QmlDownloader>("QmlDownloader", 1, 0, "QmlDownloader");
224+
225+
// This is done in order to use the DownloadState enum
226+
qmlRegisterUncreatableType<QmlDownloader>(
227+
"QmlDownloader", 1, 0, "QmlDownloader", "QmlDownloader not constructible");
227228

228229
engine.load(QUrl(QLatin1String("qrc:/splash.qml")));
229230
return app.exec();

qmldownloader.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@
2525

2626
static const QString UPDATER_BASE_URL("https://github.com/Unvanquished/updater/releases/download");
2727

28-
QmlDownloader::QmlDownloader() : downloadSpeed_(0),
28+
QmlDownloader::QmlDownloader(QString ariaLogFilename, QString connectUrl, Settings& settings) :
29+
ariaLogFilename_(ariaLogFilename),
30+
connectUrl_(connectUrl),
31+
settings_(settings),
32+
downloadSpeed_(0),
2933
uploadSpeed_(0),
3034
eta_(0),
3135
totalSize_(0),

qmldownloader.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class QmlDownloader : public QObject
5050
};
5151
Q_ENUM(DownloadState)
5252

53-
QmlDownloader();
53+
QmlDownloader(QString ariaLogFilename, QString connectUrl, Settings& settings);
5454
~QmlDownloader();
5555
int downloadSpeed() const;
5656
int uploadSpeed() const;
@@ -59,9 +59,6 @@ class QmlDownloader : public QObject
5959
int completedSize() const;
6060
DownloadState state() const;
6161

62-
QString ariaLogFilename_;
63-
QString connectUrl_; // used for updater update
64-
6562
signals:
6663
void downloadSpeedChanged(int downloadSpeed);
6764
void uploadSpeedChanged(int uploadSpeed);
@@ -89,6 +86,10 @@ public slots:
8986
void startUpdate(const QString& selectedInstallPath);
9087
void launchGameIfInstalled();
9188

89+
QString ariaLogFilename_;
90+
QString connectUrl_; // used for updater update
91+
Settings& settings_;
92+
9293
QThread thread_;
9394
int downloadSpeed_;
9495
int uploadSpeed_;
@@ -98,7 +99,6 @@ public slots:
9899

99100
DownloadWorker* worker_;
100101
DownloadTimeCalculator downloadTime_;
101-
Settings settings_;
102102
DownloadState state_;
103103
std::unique_ptr<QTemporaryDir> temp_dir_;
104104

0 commit comments

Comments
 (0)