[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.0
From:       Luboš Luňák <l.lunak () kde ! org>
Date:       2008-03-10 23:04:01
Message-ID: 1205190241.418411.15067.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 784334 by lunakl:

Backport r784333 (remove usage of QWidget::showFullScreen() etc.).
BUG: 157941



 M  +1 -2      kdebase/apps/konqueror/src/konqmainwindow.cpp  
 M  +1 -1      kdebase/apps/konqueror/src/konqmisc.cpp  
 M  +3 -2      kdebase/apps/konsole/src/MainWindow.cpp  
 M  +8 -0      kdelibs/kdeui/actions/ktogglefullscreenaction.cpp  
 M  +14 -3     kdelibs/kdeui/actions/ktogglefullscreenaction.h  
 M  +2 -2      kdelibs/phonon/videowidget.cpp  


--- branches/KDE/4.0/kdebase/apps/konqueror/src/konqmainwindow.cpp #784333:784334
@@ -3266,9 +3266,9 @@
 
 void KonqMainWindow::slotUpdateFullScreen( bool set )
 {
+  KToggleFullScreenAction::setFullScreen( this, set );
   if( set )
   {
-    showFullScreen();
     // Create toolbar button for exiting from full-screen mode
     // ...but only if there isn't one already...
 
@@ -3311,7 +3311,6 @@
   }
   else
   {
-    setWindowState( windowState() & ~Qt::WindowFullScreen );
     unplugActionList( "fullscreen" );
 
     if (m_prevMenuBarVisible)
--- branches/KDE/4.0/kdebase/apps/konqueror/src/konqmisc.cpp #784333:784334
@@ -56,7 +56,7 @@
       {
 	KWindowInfo info = KWindowSystem::windowInfo( window->winId(), NET::WMDesktop );
 	if ( info.valid() && info.isOnCurrentDesktop() )
-          window->showNormal();
+          window->setWindowState( window->windowState() & ~Qt::WindowFullScreen );
       }
     }
   }
--- branches/KDE/4.0/kdebase/apps/konsole/src/MainWindow.cpp #784333:784334
@@ -257,10 +257,11 @@
 void MainWindow::viewFullScreen(bool fullScreen)
 {
     if ( fullScreen )
-        showFullScreen();
+        setWindowState( windowState() | Qt::WindowFullScreen );
     else
-        showNormal();
+        setWindowState( windowState() & ~Qt::WindowFullScreen );
 }
+
 BookmarkHandler* MainWindow::bookmarkHandler() const
 {
     return _bookmarkHandler;
--- branches/KDE/4.0/kdelibs/kdeui/actions/ktogglefullscreenaction.cpp #784333:784334
@@ -101,4 +101,12 @@
   return false;
 }
 
+void KToggleFullScreenAction::setFullScreen( QWidget* window, bool set )
+{
+  if( set )
+    window->setWindowState( window->windowState() | Qt::WindowFullScreen );
+  else
+    window->setWindowState( window->windowState() & ~Qt::WindowFullScreen );
+}
+
 #include "ktogglefullscreenaction.moc"
--- branches/KDE/4.0/kdelibs/kdeui/actions/ktogglefullscreenaction.h #784333:784334
@@ -37,10 +37,14 @@
  * yourself. Rely on this action's state (isChecked()) instead.
  *
  * Important: If you need to set/change the fullscreen state manually,
- * use the relevant QWidget function (showFullScreen etc.), do not
- * call directly the slot connected to the toggled() signal. The slot
+ * use KToggleFullScreenAction::setFullScreen() or a similar function,
+ * do not call directly the slot connected to the toggled() signal. The slot
  * still needs to explicitly set the window state though.
-
+ *
+ * Note: Do NOT use QWidget::showFullScreen() or QWidget::showNormal().
+ * They have several side-effects besides just switching the fullscreen
+ * state (for example, showNormal() resets all window states, not just
+ * fullscreen). Use the KToggleFullScreenAction::setFullScreen() helper function.
  */
 class KDEUI_EXPORT KToggleFullScreenAction : public KToggleAction
 {
@@ -72,6 +76,13 @@
      */
     void setWindow( QWidget* window );
 
+    /**
+     * Helper function to set or reset the fullscreen state of a window.
+     * Use this function rather than showFullScreen()/showNormal() QWidget functions.
+     * @since 4.0.3
+     */
+    static void setFullScreen( QWidget* window, bool set );
+
   protected:
     bool eventFilter( QObject* object, QEvent* event );
 
--- branches/KDE/4.0/kdelibs/phonon/videowidget.cpp #784333:784334
@@ -108,9 +108,9 @@
     }
     setWindowFlags(flags);
     if (newFullScreen) {
-        showFullScreen();
+        setWindowState( windowState() | Qt::WindowFullScreen ); // set
     } else {
-        showNormal();
+        setWindowState( windowState() & ~Qt::WindowFullScreen ); // reset
     }
 }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic