diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index 9365d5faa..6acee13dd 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -2,7 +2,6 @@ # https://doc.qt.io/qt-5/cmake-manual.html include_directories(${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/include ${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${ZLIB_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS}) -include_directories(${SDL2_INCLUDE_DIR}) set(launcher_modmanager_SRCS modManager/cdownloadmanager_moc.cpp @@ -38,7 +37,6 @@ set(launcher_SRCS mainwindow_moc.cpp launcherdirs.cpp jsonutils.cpp - sdldisplayquery.cpp ) set(launcher_HEADERS @@ -48,7 +46,6 @@ set(launcher_HEADERS mainwindow_moc.h launcherdirs.h jsonutils.h - sdldisplayquery.h ) set(launcher_FORMS @@ -102,7 +99,7 @@ if(APPLE) set_property(GLOBAL PROPERTY AUTOGEN_TARGETS_FOLDER vcmilauncher) endif() -target_link_libraries(vcmilauncher vcmi Qt5::Widgets Qt5::Network ${SDL2_LIBRARY}) +target_link_libraries(vcmilauncher vcmi Qt5::Widgets Qt5::Network) vcmi_set_output_dir(vcmilauncher "") diff --git a/launcher/main.cpp b/launcher/main.cpp index 49f0d80ff..5bfa2467b 100644 --- a/launcher/main.cpp +++ b/launcher/main.cpp @@ -10,13 +10,11 @@ #include #include "StdInc.h" #include "mainwindow_moc.h" -#include "sdldisplayquery.h" int main(int argc, char * argv[]) { QApplication vcmilauncher(argc, argv); - auto displayList = getDisplays(); - MainWindow mainWindow(displayList); + MainWindow mainWindow; mainWindow.show(); return vcmilauncher.exec(); } diff --git a/launcher/mainwindow_moc.cpp b/launcher/mainwindow_moc.cpp index 43412592e..bac1225a7 100644 --- a/launcher/mainwindow_moc.cpp +++ b/launcher/mainwindow_moc.cpp @@ -39,7 +39,7 @@ void MainWindow::load() settings.init(); } -MainWindow::MainWindow(const QStringList& displayList, QWidget *parent) : +MainWindow::MainWindow(QWidget * parent) : QMainWindow(parent), ui(new Ui::MainWindow) { @@ -62,7 +62,7 @@ MainWindow::MainWindow(const QStringList& displayList, QWidget *parent) : ui->tabSelectList->setMaximumWidth(width + 4); } ui->tabListWidget->setCurrentIndex(0); - ui->settingsView->setDisplayList(displayList); + ui->settingsView->setDisplayList(); connect(ui->tabSelectList, SIGNAL(currentRowChanged(int)), ui->tabListWidget, SLOT(setCurrentIndex(int))); diff --git a/launcher/mainwindow_moc.h b/launcher/mainwindow_moc.h index 7a7220fff..d1b65c67e 100644 --- a/launcher/mainwindow_moc.h +++ b/launcher/mainwindow_moc.h @@ -25,7 +25,7 @@ private: void load(); void startExecutable(QString name); public: - explicit MainWindow(const QStringList& displayList, QWidget *parent = 0); + explicit MainWindow(QWidget * parent = 0); ~MainWindow(); private slots: diff --git a/launcher/sdldisplayquery.cpp b/launcher/sdldisplayquery.cpp deleted file mode 100644 index d0ac8734a..000000000 --- a/launcher/sdldisplayquery.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * sdldisplayquery.cpp, part of VCMI engine - * - * Authors: listed in file AUTHORS in main folder - * - * License: GNU General Public License v2.0 or later - * Full text of license available in license.txt file, in main folder - * - */ -#include "StdInc.h" -#include "sdldisplayquery.h" - -#include -#include - -#include -#include - -QStringList getDisplays() -{ - if(SDL_Init(SDL_INIT_VIDEO)) - return QStringList("default display"); - - const int displays = SDL_GetNumVideoDisplays(); - QStringList list; - - for (int display = 0; display < displays; ++display) - { - SDL_Rect rect; - - if (SDL_GetDisplayBounds (display, &rect)) - continue; - - QString string; - QTextStream(&string) << display << " - " << rect.w << "x" << rect.h << " (at " << rect.x << ", " << rect.y << ")"; - - list << string; - } - - SDL_Quit(); - return list; -} diff --git a/launcher/sdldisplayquery.h b/launcher/sdldisplayquery.h deleted file mode 100644 index b8ab2bca7..000000000 --- a/launcher/sdldisplayquery.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * sdldisplayquery.h, part of VCMI engine - * - * Authors: listed in file AUTHORS in main folder - * - * License: GNU General Public License v2.0 or later - * Full text of license available in license.txt file, in main folder - * - */ -#pragma once - -#include - -QStringList getDisplays(); diff --git a/launcher/settingsView/csettingsview_moc.cpp b/launcher/settingsView/csettingsview_moc.cpp index 2bf8ae288..a5be7626b 100644 --- a/launcher/settingsView/csettingsview_moc.cpp +++ b/launcher/settingsView/csettingsview_moc.cpp @@ -29,19 +29,30 @@ static const std::string knownEncodingsList[] = //TODO: remove hardcode "GB2312" // basic set for Simplified Chinese. Separate from GBK to allow proper detection of H3 fonts }; -void CSettingsView::setDisplayList(const QStringList& displayList) +void CSettingsView::setDisplayList() { - if (displayList.count() < 2) - { - ui->comboBoxDisplayIndex->hide (); - ui->labelDisplayIndex->hide (); - } + QStringList list; + QDesktopWidget * widget = QApplication::desktop(); + for(int display = 0; display < widget->screenCount(); display++) + { + QString string; + auto rect = widget->screenGeometry(display); + QTextStream(&string) << display << " - " << rect.width() << "x" << rect.height(); + list << string; + } + + if(list.count() < 2) + { + ui->comboBoxDisplayIndex->hide(); + ui->labelDisplayIndex->hide(); + } else - { - ui->comboBoxDisplayIndex->clear(); - ui->comboBoxDisplayIndex->addItems(displayList); - ui->comboBoxDisplayIndex->setCurrentIndex(settings["video"]["displayIndex"].Float()); - } + { + int displayIndex = settings["video"]["displayIndex"].Integer(); + ui->comboBoxDisplayIndex->clear(); + ui->comboBoxDisplayIndex->addItems(list); + ui->comboBoxDisplayIndex->setCurrentIndex(displayIndex); + } } void CSettingsView::loadSettings() diff --git a/launcher/settingsView/csettingsview_moc.h b/launcher/settingsView/csettingsview_moc.h index e9e1539a8..fdebb2b98 100644 --- a/launcher/settingsView/csettingsview_moc.h +++ b/launcher/settingsView/csettingsview_moc.h @@ -22,7 +22,7 @@ public: ~CSettingsView(); void loadSettings(); - void setDisplayList(const QStringList& displayList); + void setDisplayList(); private slots: void on_checkBoxFullScreen_stateChanged(int state);