]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/menus.cpp
Fix #2765: DVD chapters navigation menu.
[vlc] / modules / gui / qt4 / menus.cpp
index 38b26bcd2191db0151c36b6df705af9d4269314a..b5713e4477d3217a182b3f7a8576fe7ac174436f 100644 (file)
@@ -1257,6 +1257,19 @@ void QVLCMenu::UpdateItem( intf_thread_t *p_intf, QMenu *menu,
 
 #undef TEXT_OR_VAR
 
+/** HACK for the navigation submenu:
+ * "title %2i" variables take the value 0 if not set
+ */
+static bool CheckTitle( vlc_object_t *p_object, const char *psz_var )
+{
+    int i_title = 0;
+    if( sscanf( psz_var, "title %2i", &i_title ) <= 0 )
+        return true;
+
+    int i_current_title = var_GetInteger( p_object, "title" );
+    return ( i_title == i_current_title );
+}
+
 
 int QVLCMenu::CreateChoicesMenu( QMenu *submenu, const char *psz_var,
         vlc_object_t *p_object, bool b_root )
@@ -1325,7 +1338,8 @@ int QVLCMenu::CreateChoicesMenu( QMenu *submenu, const char *psz_var,
                 else menutext.sprintf( "%d", CURVAL.i_int );
                 CreateAndConnect( submenu, psz_var, menutext, "", ITEM_RADIO,
                         p_object, CURVAL, i_type,
-                        CURVAL.i_int == val.i_int );
+                        ( CURVAL.i_int == val.i_int )
+                        && CheckTitle( p_object, psz_var ) );
                 break;
 
             case VLC_VAR_FLOAT: