1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-18 03:21:27 +02:00
vcmi/launcher/mainwindow_moc.cpp
Krzesimir Nowak 58bc0f7272 Allow choosing the display from the launcher
This adds another combobox for choosing the display. To ease the
display choice we try to roughly describe the display (its resolution
and location).

The combobox is hidden for single display setups.
2016-08-31 11:12:59 +02:00

74 lines
1.8 KiB
C++

#include "StdInc.h"
#include "mainwindow_moc.h"
#include "ui_mainwindow_moc.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::load("config/filesystem.json");
for (auto & string : VCMIDirs::get().dataPaths())
QDir::addSearchPath("icons", pathToQString(string / "launcher" / "icons"));
QDir::addSearchPath("icons", pathToQString(VCMIDirs::get().userDataPath() / "launcher" / "icons"));
settings.init();
}
MainWindow::MainWindow(const QStringList& displayList, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
load(); // load FS before UI
ui->setupUi(this);
ui->tabListWidget->setCurrentIndex(0);
ui->settingsView->setDisplayList(displayList);
connect(ui->tabSelectList, SIGNAL(currentRowChanged(int)),
ui->tabListWidget, SLOT(setCurrentIndex(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_startGameButon_clicked()
{
startExecutable(pathToQString(VCMIDirs::get().clientPath()));
}
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 + "\n"
"Reason: " + process.errorString(),
QMessageBox::Ok,
QMessageBox::Ok);
return;
}
}