diff --git a/CHANGES b/CHANGES index 37cdffada..b7f551ff9 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,7 @@ Misc: - GB Memory: Initialize RAM pattern for GBC - GB Video: Improved video timings - All: Split out install locations for Libretro and OpenEmu + - Qt: Manage window sizes slightly better 0.5.0: (2016-09-19) Features: diff --git a/src/platform/qt/ConfigController.cpp b/src/platform/qt/ConfigController.cpp index 05b9667f6..50462d7e8 100644 --- a/src/platform/qt/ConfigController.cpp +++ b/src/platform/qt/ConfigController.cpp @@ -114,6 +114,7 @@ ConfigController::ConfigController(QObject* parent) m_opts.rewindBufferCapacity = 300; m_opts.useBios = true; m_opts.suspendScreensaver = true; + m_opts.lockAspectRatio = true; mCoreConfigLoad(&m_config); mCoreConfigLoadDefaults(&m_config, &m_opts); mCoreConfigMap(&m_config, &m_opts); diff --git a/src/platform/qt/Display.cpp b/src/platform/qt/Display.cpp index 3f20c79f6..a8af613ec 100644 --- a/src/platform/qt/Display.cpp +++ b/src/platform/qt/Display.cpp @@ -9,7 +9,11 @@ #include "DisplayQt.h" extern "C" { +#ifdef M_CORE_GB #include "gb/video.h" +#elif defined(M_CORE_GBA) +#include "gba/video.h" +#endif } using namespace QGBA; @@ -55,7 +59,11 @@ Display::Display(QWidget* parent) , m_filter(false) { setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); +#ifdef M_CORE_GB setMinimumSize(GB_VIDEO_HORIZONTAL_PIXELS, GB_VIDEO_VERTICAL_PIXELS); +#elif defined(M_CORE_GBA) + setMinimumSize(VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS); +#endif connect(&m_mouseTimer, SIGNAL(timeout()), this, SIGNAL(hideCursor())); m_mouseTimer.setSingleShot(true); m_mouseTimer.setInterval(MOUSE_DISAPPEAR_TIMER); diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index 5c89629ae..7089d18e3 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -89,7 +89,9 @@ Window::Window(ConfigController* config, int playerId, QWidget* parent) m_screenWidget->setMinimumSize(m_display->minimumSize()); m_screenWidget->setSizePolicy(m_display->sizePolicy()); - m_screenWidget->setSizeHint(m_display->minimumSize() * 2); +#ifdef M_CORE_GBA + m_screenWidget->setSizeHint(QSize(VIDEO_HORIZONTAL_PIXELS * 2, VIDEO_VERTICAL_PIXELS * 2)); +#endif m_screenWidget->setPixmap(m_logo); m_screenWidget->setLockAspectRatio(m_logo.width(), m_logo.height()); setCentralWidget(m_screenWidget); @@ -705,6 +707,7 @@ void Window::gameStarted(mCoreThread* context, const QString& fname) { unsigned width, height; context->core->desiredVideoDimensions(context->core, &width, &height); m_display->setMinimumSize(width, height); + m_screenWidget->setMinimumSize(m_display->minimumSize()); attachWidget(m_display); #ifndef Q_OS_MAC @@ -733,6 +736,12 @@ void Window::gameStopped() { m_screenWidget->setLockAspectRatio(m_logo.width(), m_logo.height()); m_screenWidget->setPixmap(m_logo); m_screenWidget->unsetCursor(); +#ifdef M_CORE_GB + m_display->setMinimumSize(GB_VIDEO_HORIZONTAL_PIXELS, GB_VIDEO_VERTICAL_PIXELS); +#elif defined(M_CORE_GBA) + m_display->setMinimumSize(VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS); +#endif + m_screenWidget->setMinimumSize(m_display->minimumSize()); m_fpsTimer.stop(); m_focusCheck.stop();