diff options
Diffstat (limited to 'src/frontend/qt_sdl')
-rw-r--r-- | src/frontend/qt_sdl/main.cpp | 24 | ||||
-rw-r--r-- | src/frontend/qt_sdl/main.h | 2 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index cc5ef6e..be718ab 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -689,13 +689,20 @@ QSize ScreenHandler::screenGetMinSize() else return QSize(w, h+gap+h); } - else // horizontal + else if (Config::ScreenLayout == 2) // horizontal { if (isHori) return QSize(h+gap+h, w); else return QSize(w+gap+w, h); } + else // hybrid + { + if (isHori) + return QSize(h+gap+h, 3*w +(4*gap) / 3); + else + return QSize(3*w +(4*gap) / 3, h+gap+h); + } } void ScreenHandler::screenOnMousePress(QMouseEvent* event) @@ -1257,9 +1264,9 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) QMenu* submenu = menu->addMenu("Screen layout"); grpScreenLayout = new QActionGroup(submenu); - const char* screenlayout[] = {"Natural", "Vertical", "Horizontal"}; + const char* screenlayout[] = {"Natural", "Vertical", "Horizontal", "Hybrid"}; - for (int i = 0; i < 3; i++) + for (int i = 0; i < 4; i++) { actScreenLayout[i] = submenu->addAction(QString(screenlayout[i])); actScreenLayout[i]->setActionGroup(grpScreenLayout); @@ -2258,13 +2265,20 @@ void MainWindow::onChangeScreenSize() else resize(QSize(w, h+gap+h) + diff); } - else // horizontal + else if (Config::ScreenLayout == 2) // horizontal { if (isHori) resize(QSize(h+gap+h, w) + diff); else resize(QSize(w+gap+w, h) + diff); } + else // hybrid + { + if (isHori) + return resize(QSize(h+gap+h, 3*w +(4*gap) / 3) + diff); + else + return resize(QSize(3*w +(4*gap) / 3, h+gap+h) + diff); + } } void MainWindow::onChangeScreenRotation(QAction* act) @@ -2501,7 +2515,7 @@ int main(int argc, char** argv) SANITIZE(Config::MicInputType, 0, 3); SANITIZE(Config::ScreenRotation, 0, 3); SANITIZE(Config::ScreenGap, 0, 500); - SANITIZE(Config::ScreenLayout, 0, 2); + SANITIZE(Config::ScreenLayout, 0, 3); SANITIZE(Config::ScreenSizing, 0, 5); SANITIZE(Config::ScreenAspectTop, 0, 4); SANITIZE(Config::ScreenAspectBot, 0, 4); diff --git a/src/frontend/qt_sdl/main.h b/src/frontend/qt_sdl/main.h index a79c245..c226fbc 100644 --- a/src/frontend/qt_sdl/main.h +++ b/src/frontend/qt_sdl/main.h @@ -305,7 +305,7 @@ public: QActionGroup* grpScreenGap; QAction* actScreenGap[6]; QActionGroup* grpScreenLayout; - QAction* actScreenLayout[3]; + QAction* actScreenLayout[4]; QAction* actScreenSwap; QActionGroup* grpScreenSizing; QAction* actScreenSizing[6]; |