launcher/loading-worker.cpp
2026-03-07 01:02:55 +03:00

93 lines
2.9 KiB
C++

#include "loading-worker.h"
#include "install-i2p.h"
#include "locales.h"
#include "install-java.h"
#include "fs-tools.h"
#include "prog-constains.h"
#include <QLocale>
#include <QDir>
#include <QFile>
#include <QCryptographicHash>
#include <QDebug>
LoadingWorker::LoadingWorker(QObject *parent) {
}
LoadingWorker::~LoadingWorker () {
//delete this->loading;
}
void LoadingWorker::process() {
std::string locale = (QLocale::system()).name().toStdString();
if (locales.find(locale) == locales.end()) {
locale = "en_US";
}
LocaleMap* localeMap = locales[locale];
emptyFolder(TEMP_PATH);
// Checking updates
emit changeStep(QString::fromStdString(localeMap->at("loading.checkUpdates")));
// TODO: Add it later
// Checking: Is java installed
emit changeStep(QString::fromStdString(localeMap->at("loading.isJavaInst")));
if (!checkJava()) {
// Let's we install the java
emptyFolder(JAVA_INSTALL_PATH);
bool isDownloaded = installJava([this, localeMap](QString msg, unsigned int current, unsigned int total){
//qDebug() << "Java install:" << msg;
emit changeStep(QString::fromStdString(localeMap->at("loading.installJava") + ": " + msg.toStdString()));
if (total != 0) {
emit progressBar(current, total);
}
});
if (!isDownloaded) return;
}
// Start I2P
emit changeStep(QString::fromStdString(localeMap->at("loading.i2p")));
if (!checkI2P()) {
// Let's we install i2p
emptyFolder(I2P_INSTALL_PATH);
bool isDownloaded = installI2P([this, localeMap](QString msg, unsigned int current, unsigned int total){
qDebug() << "I2P install:" << msg;
emit changeStep(QString::fromStdString(localeMap->at("loading.installI2P") + ": " + msg.toStdString()));
if (total != 0) {
emit progressBar(current, total);
}
});
if (!isDownloaded) return;
}
configCheckAndMake();
emit startI2P();
// Ping the website
emit changeStep(QString::fromStdString(localeMap->at("loading.pingWebsite")));
// TODO: Add it later
// Getting endpoint API
emit changeStep(QString::fromStdString(localeMap->at("loading.gettingEndpoint")));
std::string endpointAPI = "TODO: Add it later";
// Checking: Is minecraft installed
emit changeStep(QString::fromStdString(localeMap->at("loading.isMinecraftInst")));
// TODO: Add it later
// Handle data
emit changeStep(QString::fromStdString(localeMap->at("loading.logging")));
// TODO: Add it later
// Setup current locale for welcome form
emit changeStep(QString::fromStdString(localeMap->at("loading.setupLocale")));
emit setupWelcomeLocale(QString::fromStdString(locale));
emit changeStep(QString::fromStdString(localeMap->at("loading.end")));
emptyFolder(TEMP_PATH);
emit finished();
}