93 lines
2.9 KiB
C++
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();
|
|
}
|