]> git.sesse.net Git - vlc/commitdiff
Qt: Close #2906
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 1 Jul 2009 22:09:41 +0000 (00:09 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 1 Jul 2009 22:09:41 +0000 (00:09 +0200)
modules/gui/qt4/dialogs/extended.cpp
modules/gui/qt4/dialogs/extended.hpp
modules/gui/qt4/dialogs_provider.cpp

index 26b2a10697bae4435ffe80220bade64c97e0cd39..ffc34f0e1abf36ffb2ebf8d97735e3646b3cba18 100644 (file)
@@ -113,6 +113,11 @@ void ExtendedDialog::showTab( int i )
     show();
 }
 
+int ExtendedDialog::currentTab()
+{
+    return mainTabW->currentIndex();
+}
+
 void ExtendedDialog::changedItem( int i_status )
 {
     if( i_status != END_S ) return;
index da5e29acc09375210e4b8b08ef76f991933cf523..04977abce122bedc7dda0ba9089327ec5240e9fd 100644 (file)
@@ -46,6 +46,7 @@ public:
         instance = NULL;
     }
     void showTab( int i );
+    int currentTab();
 private:
     ExtendedDialog( intf_thread_t * );
     virtual ~ExtendedDialog();
index fcd0bab1407cfacb50dde906bd92d50d2bb08b3f..dad88347bdf310911d0adab2f023a6da3408cd7a 100644 (file)
@@ -180,12 +180,20 @@ void DialogsProvider::prefsDialog()
 
 void DialogsProvider::extendedDialog()
 {
-    ExtendedDialog::getInstance( p_intf )->showTab( 0 );
+    if( !ExtendedDialog::getInstance( p_intf )->isVisible() || /* Hidden */
+        ExtendedDialog::getInstance( p_intf )->currentTab() != 0 )  /* wrong tab */
+        ExtendedDialog::getInstance( p_intf )->showTab( 0 );
+    else
+        ExtendedDialog::getInstance( p_intf )->hide();
 }
 
 void DialogsProvider::synchroDialog()
 {
-    ExtendedDialog::getInstance( p_intf )->showTab( 2 );
+    if( !ExtendedDialog::getInstance( p_intf )->isVisible() || /* Hidden */
+        ExtendedDialog::getInstance( p_intf )->currentTab() != 2 )  /* wrong tab */
+        ExtendedDialog::getInstance( p_intf )->showTab( 2 );
+    else
+        ExtendedDialog::getInstance( p_intf )->hide();
 }
 
 void DialogsProvider::messagesDialog()