2013-08-22 17:22:49 +03:00
|
|
|
#include "StdInc.h"
|
2013-08-24 23:11:51 +03:00
|
|
|
#include "mainwindow_moc.h"
|
|
|
|
#include "ui_mainwindow_moc.h"
|
2013-08-22 17:22:49 +03:00
|
|
|
|
|
|
|
#include <QProcess>
|
|
|
|
#include <QDir>
|
|
|
|
|
|
|
|
#include "../lib/CConfigHandler.h"
|
|
|
|
#include "../lib/VCMIDirs.h"
|
|
|
|
#include "../lib/filesystem/Filesystem.h"
|
|
|
|
#include "../lib/logging/CBasicLogConfigurator.h"
|
|
|
|
|
|
|
|
void MainWindow::load()
|
|
|
|
{
|
|
|
|
console = new CConsoleHandler;
|
|
|
|
CBasicLogConfigurator logConfig(VCMIDirs::get().userCachePath() + "/VCMI_Launcher_log.txt", console);
|
|
|
|
logConfig.configureDefault();
|
|
|
|
|
|
|
|
CResourceHandler::initialize();
|
2013-11-08 23:36:26 +03:00
|
|
|
CResourceHandler::load("config/filesystem.json");
|
2013-08-22 17:22:49 +03:00
|
|
|
|
|
|
|
for (auto & string : VCMIDirs::get().dataPaths())
|
|
|
|
QDir::addSearchPath("icons", QString::fromUtf8(string.c_str()) + "/launcher/icons");
|
|
|
|
QDir::addSearchPath("icons", QString::fromUtf8(VCMIDirs::get().userDataPath().c_str()) + "/launcher/icons");
|
|
|
|
|
|
|
|
settings.init();
|
|
|
|
}
|
|
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent) :
|
|
|
|
QMainWindow(parent),
|
|
|
|
ui(new Ui::MainWindow)
|
|
|
|
{
|
|
|
|
load(); // load FS before UI
|
|
|
|
|
|
|
|
ui->setupUi(this);
|
|
|
|
ui->tabListWidget->setCurrentIndex(0);
|
|
|
|
|
|
|
|
connect(ui->tabSelectList, SIGNAL(currentRowChanged(int)),
|
|
|
|
ui->tabListWidget, SLOT(setCurrentIndex(int)));
|
|
|
|
}
|
|
|
|
|
|
|
|
MainWindow::~MainWindow()
|
|
|
|
{
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::on_startGameButon_clicked()
|
|
|
|
{
|
2013-08-24 23:11:51 +03:00
|
|
|
startExecutable(QString::fromUtf8(VCMIDirs::get().clientPath().c_str()));
|
2013-08-22 17:22:49 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
void MainWindow::startExecutable(QString name)
|
|
|
|
{
|
|
|
|
QProcess process;
|
|
|
|
|
|
|
|
// Start the executable
|
|
|
|
if (process.startDetached(name))
|
|
|
|
{
|
|
|
|
close(); // exit launcher
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
QMessageBox::critical(this,
|
|
|
|
"Error starting executable",
|
2013-08-24 23:11:51 +03:00
|
|
|
"Failed to start " + name + "\n"
|
|
|
|
"Reason: " + process.errorString(),
|
2013-08-22 17:22:49 +03:00
|
|
|
QMessageBox::Ok,
|
|
|
|
QMessageBox::Ok);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|