From 4180ed602bf37ef2d953a83b435cf98aeba16f4f Mon Sep 17 00:00:00 2001 From: Tats Date: Thu, 29 Dec 2016 13:43:00 -0600 Subject: [PATCH] Added a _setFullScreen() method + renamed _is_fullscreen to _isFullScreen (camelCase). --- OutputGLWindow.cpp | 45 +++++++++++++++++++++++++-------------------- OutputGLWindow.h | 6 +++++- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/OutputGLWindow.cpp b/OutputGLWindow.cpp index 6cafcf4..41a2595 100644 --- a/OutputGLWindow.cpp +++ b/OutputGLWindow.cpp @@ -39,7 +39,8 @@ OutputGLWindow:: OutputGLWindow(QWidget* parent, const MapperGLCanvas* canvas_) setLayout(layout); setCanvasDisplayCrosshair(false); // default - this->_is_fullscreen = false; + + _isFullScreen = false; _preferredScreen = QApplication::screens().size() - 1; } @@ -65,24 +66,8 @@ OutputGLWindow:: OutputGLWindow(QWidget* parent, const MapperGLCanvas* canvas_) void OutputGLWindow::setFullScreen(bool fullscreen) { - if (fullscreen) - { - _updateToPreferredScreen(); -#ifdef Q_OS_LINUX - // The problem related to the full screen on linux seems to be resolved with Qt 5.5 on Debian. - // However this still seems to be needed on Ubuntu 15.10. - // Fix source: - // http://stackoverflow.com/questions/12645880/fullscreen-for-qdialog-from-within-mainwindow-only-working-sometimes - setWindowFlags(Qt::Window | Qt::FramelessWindowHint); -#endif - showFullScreen(); - } - else - { - hide(); - } - this->_is_fullscreen = fullscreen; -} + _setFullScreen(fullscreen); + _isFullScreen = fullscreen; void OutputGLWindow::_updateToPreferredScreen() { @@ -96,7 +81,7 @@ void OutputGLWindow::_updateToPreferredScreen() void OutputGLWindow::setCanvasDisplayCrosshair(bool crosshair) { canvas->setDisplayCrosshair(crosshair); - setCursor(crosshair || this->_is_fullscreen ? Qt::BlankCursor : Qt::ArrowCursor); + setCursor(crosshair || this->_isFullScreen ? Qt::BlankCursor : Qt::ArrowCursor); qDebug() << "Crosshair " << crosshair; } @@ -115,4 +100,24 @@ void OutputGLWindow::setPreferredScreen(int screen) } +void OutputGLWindow::_setFullScreen(bool fullscreen) +{ + if (fullscreen) + { + _updateToPreferredScreen(); +#ifdef Q_OS_LINUX + // The problem related to the full screen on linux seems to be resolved with Qt 5.5 on Debian. + // However this still seems to be needed on Ubuntu 15.10. + // Fix source: + // http://stackoverflow.com/questions/12645880/fullscreen-for-qdialog-from-within-mainwindow-only-working-sometimes + setWindowFlags(Qt::Window | Qt::FramelessWindowHint); +#endif + showFullScreen(); + } + else + { + hide(); + } +} + } diff --git a/OutputGLWindow.h b/OutputGLWindow.h index 2ad9f8b..bbacfeb 100644 --- a/OutputGLWindow.h +++ b/OutputGLWindow.h @@ -63,7 +63,11 @@ private: OutputGLCanvas* canvas; void _updateToPreferredScreen(); - bool _is_fullscreen; + + // Actually sets window to fullscreen (without affecting _isFullScreen). + void _setFullScreen(bool fullscreen); + + bool _isFullScreen; int _preferredScreen; };