| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #include "StdInc.h"
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #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();
- CResourceHandler::loadMainFileSystem("config/filesystem.json");
- 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()
- {
- #if defined(Q_OS_WIN)
- QString clientName = "VCMI_Client.exe";
- #else
- // TODO: Right now launcher will only start vcmi from system-default locations
- QString clientName = "vcmiclient";
- #endif
- startExecutable(clientName);
- }
- void MainWindow::startExecutable(QString name)
- {
- QProcess process;
- // Start the executable
- if (process.startDetached(name))
- {
- close(); // exit launcher
- }
- else
- {
- QMessageBox::critical(this,
- "Error starting executable",
- "Failed to start " + name + ": " + process.errorString(),
- QMessageBox::Ok,
- QMessageBox::Ok);
- return;
- }
- }
|