mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-18 03:21:27 +02:00
58bc0f7272
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.
74 lines
1.8 KiB
C++
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;
|
|
}
|
|
|
|
}
|