aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/qt_sdl
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/qt_sdl')
-rw-r--r--src/frontend/qt_sdl/main.cpp24
-rw-r--r--src/frontend/qt_sdl/main.h2
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];