[vlc-commits] macosx: make sure to generate a complete list of hotkeys in the sprefs

Felix Paul Kühne git at videolan.org
Sun Apr 10 17:23:54 CEST 2011


vlc/vlc-1.1 | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Sun Apr 10 17:23:41 2011 +0200| [d15f96b05954f082c008ec40975883e8977c95ed] | committer: Felix Paul Kühne

macosx: make sure to generate a complete list of hotkeys in the sprefs

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=d15f96b05954f082c008ec40975883e8977c95ed
---

 NEWS                              |    1 +
 modules/gui/macosx/simple_prefs.m |   31 ++++++++++++++++++++-----------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/NEWS b/NEWS
index 79ffe59..3700cfd 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ Mac OS X Interface:
  * fixed bugs in the Streaming / Transcoding wizard
  * improved Apple Remote handling
  * layout fixes in the Preferences and Controls windows
+ * fixed incomplete list of hotkeys in the Preferences dialog
 
 Mac OS X Port:
  * fixed Growl local notification plugin
diff --git a/modules/gui/macosx/simple_prefs.m b/modules/gui/macosx/simple_prefs.m
index a386429..42d2702 100644
--- a/modules/gui/macosx/simple_prefs.m
+++ b/modules/gui/macosx/simple_prefs.m
@@ -645,23 +645,32 @@ static inline char * __config_GetLabel( vlc_object_t *p_this, const char *psz_na
     /********************
      * hotkeys settings *
      ********************/
-    const struct hotkey *p_hotkeys = p_intf->p_libvlc->p_hotkeys;
     [o_hotkeySettings release];
     o_hotkeySettings = [[NSMutableArray alloc] init];
     NSMutableArray *o_tempArray_desc = [[NSMutableArray alloc] init];
-    i = 1;
 
-    while( i < 100 )
-    {
-        p_item = config_FindConfig( VLC_OBJECT(p_intf), p_hotkeys[i].psz_action );
-        if( !p_item )
-            break;
-
-        [o_tempArray_desc addObject: _NS( p_item->psz_text )];
-        [o_hotkeySettings addObject: [NSNumber numberWithInt: p_item->value.i]];
+    module_t *p_main = module_get_main();
+    assert( p_main );
+    unsigned confsize;
+    module_config_t *p_config;
 
-        i++;
+    p_config = module_config_get (p_main, &confsize);
+    
+    for (size_t i = 0; i < confsize; i++)
+    {
+        module_config_t *p_item = p_config + i;
+        
+        if( (p_item->i_type & CONFIG_ITEM) && p_item->psz_name != NULL
+           && !strncmp( p_item->psz_name , "key-", 4 )
+           && !EMPTY_STR( p_item->psz_text ) )
+        {
+            [o_tempArray_desc addObject: _NS( p_item->psz_text )];
+            [o_hotkeySettings addObject: [NSNumber numberWithInt:p_item->value.i]];
+        }
     }
+    module_config_free (p_config);
+    module_release (p_main);
+
     [o_hotkeyDescriptions release];
     o_hotkeyDescriptions = [[NSArray alloc] initWithArray: o_tempArray_desc copyItems: YES];
     [o_tempArray_desc release];



More information about the vlc-commits mailing list