From fbeee55c16adfeb514719352ea51129d5ee09517 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Wed, 16 Jan 2013 13:18:40 +0100 Subject: [PATCH] * Restore last fullscreen state on OSX. --- src/TomahawkWindow.cpp | 28 ++++++++++++++++++++++++++++ src/TomahawkWindow.h | 1 + 2 files changed, 29 insertions(+) diff --git a/src/TomahawkWindow.cpp b/src/TomahawkWindow.cpp index 21219459a..334584767 100644 --- a/src/TomahawkWindow.cpp +++ b/src/TomahawkWindow.cpp @@ -148,6 +148,12 @@ TomahawkWindow::TomahawkWindow( QWidget* parent ) vm->setQueue( m_queueView ); vm->showWelcomePage(); + + if ( TomahawkSettings::instance()->fullscreenEnabled() ) + { + // Window must be fully constructed to toggle fullscreen mode. Queue it up. + QTimer::singleShot( 0, this, SLOT( toggleFullscreen() ) ); + } } @@ -543,6 +549,7 @@ TomahawkWindow::setupSignals() #if defined( Q_OS_MAC ) connect( ac->getAction( "minimize" ), SIGNAL( triggered() ), SLOT( minimize() ) ); connect( ac->getAction( "zoom" ), SIGNAL( triggered() ), SLOT( maximize() ) ); + connect( ac->getAction( "fullscreen" ), SIGNAL( triggered() ), SLOT( toggleFullscreen() ) ); #else connect( ac->getAction( "toggleMenuBar" ), SIGNAL( triggered() ), SLOT( toggleMenuBar() ) ); #endif @@ -875,14 +882,24 @@ TomahawkWindow::showOfflineSources() void TomahawkWindow::fullScreenEntered() { + TomahawkSettings::instance()->setFullscreenEnabled( true ); statusBar()->setSizeGripEnabled( false ); + +#if defined( Q_WS_MAC ) + ActionCollection::instance()->getAction( "fullscreen" )->setText( tr( "Exit Full Screen" ) ); +#endif } void TomahawkWindow::fullScreenExited() { + TomahawkSettings::instance()->setFullscreenEnabled( false ); statusBar()->setSizeGripEnabled( true ); + +#if defined( Q_WS_MAC ) + ActionCollection::instance()->getAction( "fullscreen" )->setText( tr( "Enter Full Screen" ) ); +#endif } @@ -1290,6 +1307,17 @@ TomahawkWindow::maximize() } +void +TomahawkWindow::toggleFullscreen() +{ + tDebug() << Q_FUNC_INFO; + +#if defined( Q_WS_MAC ) + Tomahawk::toggleFullscreen(); +#endif +} + + void TomahawkWindow::crashNow() { diff --git a/src/TomahawkWindow.h b/src/TomahawkWindow.h index 949dfb150..8050f5e4b 100644 --- a/src/TomahawkWindow.h +++ b/src/TomahawkWindow.h @@ -139,6 +139,7 @@ private slots: void minimize(); void maximize(); + void toggleFullscreen(); void playlistCreateDialogFinished( int ret );