From b60d5904e2f6ea6e55096d0405b3e5754d94f6db Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Wed, 26 Aug 2020 00:16:14 +0100 Subject: [PATCH 1/3] Correct SDL_GetNumVideoDisplays error message It logged the wrong function --- apps/launcher/graphicspage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/launcher/graphicspage.cpp b/apps/launcher/graphicspage.cpp index 45c093bee..01992dcce 100644 --- a/apps/launcher/graphicspage.cpp +++ b/apps/launcher/graphicspage.cpp @@ -65,7 +65,7 @@ bool Launcher::GraphicsPage::setupSDL() msgBox.setWindowTitle(tr("Error receiving number of screens")); msgBox.setIcon(QMessageBox::Critical); msgBox.setStandardButtons(QMessageBox::Ok); - msgBox.setText(tr("
SDL_GetNumDisplayModes failed:

") + QString::fromUtf8(SDL_GetError()) + "
"); + msgBox.setText(tr("
SDL_GetNumVideoDisplays failed:

") + QString::fromUtf8(SDL_GetError()) + "
"); msgBox.exec(); return false; } From 5538fea1d17d11ca632a6a306951c2f07791db34 Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Wed, 26 Aug 2020 16:58:12 +0100 Subject: [PATCH 2/3] Display standard resolutions on single-monitor machines --- apps/launcher/graphicspage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/launcher/graphicspage.cpp b/apps/launcher/graphicspage.cpp index 01992dcce..c1a946145 100644 --- a/apps/launcher/graphicspage.cpp +++ b/apps/launcher/graphicspage.cpp @@ -75,6 +75,7 @@ bool Launcher::GraphicsPage::setupSDL() { screenComboBox->addItem(QString(tr("Screen ")) + QString::number(i + 1)); } + screenChanged(0); // Disconnect from SDL processes quitSDL(); From a495888d3d56042423c8bd6f5b39c1168ee5aba0 Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Wed, 26 Aug 2020 16:58:51 +0100 Subject: [PATCH 3/3] Get per-monitor resolution list while SDL is alive --- apps/launcher/graphicspage.cpp | 4 +++- apps/launcher/graphicspage.hpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/launcher/graphicspage.cpp b/apps/launcher/graphicspage.cpp index c1a946145..c745332dc 100644 --- a/apps/launcher/graphicspage.cpp +++ b/apps/launcher/graphicspage.cpp @@ -71,8 +71,10 @@ bool Launcher::GraphicsPage::setupSDL() } screenComboBox->clear(); + mResolutionsPerScreen.clear(); for (int i = 0; i < displays; i++) { + mResolutionsPerScreen.append(getAvailableResolutions(i)); screenComboBox->addItem(QString(tr("Screen ")) + QString::number(i + 1)); } screenChanged(0); @@ -332,7 +334,7 @@ void Launcher::GraphicsPage::screenChanged(int screen) { if (screen >= 0) { resolutionComboBox->clear(); - resolutionComboBox->addItems(getAvailableResolutions(screen)); + resolutionComboBox->addItems(mResolutionsPerScreen[screen]); } } diff --git a/apps/launcher/graphicspage.hpp b/apps/launcher/graphicspage.hpp index 4ce5b584f..3b03a72bd 100644 --- a/apps/launcher/graphicspage.hpp +++ b/apps/launcher/graphicspage.hpp @@ -38,6 +38,8 @@ namespace Launcher Files::ConfigurationManager &mCfgMgr; Settings::Manager &mEngineSettings; + QVector mResolutionsPerScreen; + static QStringList getAvailableResolutions(int screen); static QRect getMaximumResolution();