[SCM] calf/master: + GUI: use the same menu for built-in and user presets

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:37:23 UTC 2013


The following commit has been merged in the master branch:
commit 2336dce5dd6aca855f1cb87615c788daba38f2ae
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date:   Fri Jul 4 22:57:02 2008 +0000

    + GUI: use the same menu for built-in and user presets
    
    
    
    git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@223 78b06b96-2940-0410-b7fc-879d825d01d8

diff --git a/src/calf/gui.h b/src/calf/gui.h
index c00849b..fb6a34d 100644
--- a/src/calf/gui.h
+++ b/src/calf/gui.h
@@ -279,9 +279,9 @@ public:
     int source_id;
 
     plugin_gui_window(main_window_iface *_main);
-    std::string make_gui_preset_list(GtkActionGroup *grp, bool builtin);
+    std::string make_gui_preset_list(GtkActionGroup *grp, bool builtin, char &ch);
     std::string make_gui_command_list(GtkActionGroup *grp);
-    void fill_gui_presets(bool builtin);
+    void fill_gui_presets(bool builtin, char &ch);
     void create(plugin_ctl_iface *_plugin, const char *title, const char *effect);
     void close();
     static gboolean on_idle(void *data);
diff --git a/src/gui.cpp b/src/gui.cpp
index 4aa56c5..f7a4b62 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -808,7 +808,7 @@ static const GtkActionEntry actions[] = {
     { "BuiltinPresetMenuAction", "", "_Built-in", NULL, "Built-in (factory) presets", NULL },
     { "UserPresetMenuAction", "", "_User", NULL, "User (your) presets", NULL },
     { "CommandMenuAction", "", "_Command", NULL, "Plugin-related commands", NULL },
-    { "store-preset", "", "_Store preset", NULL, "Store a current setting as preset", (GCallback)store_preset_action },
+    { "store-preset", "", "Store preset", NULL, "Store a current setting as preset", (GCallback)store_preset_action },
 };
 
 /***************************** GUI window ********************************************/
@@ -819,12 +819,9 @@ static const char *ui_xml =
 "    <menu action=\"PresetMenuAction\">\n"
 "      <menuitem action=\"store-preset\"/>\n"
 "      <separator/>\n"
-"      <menu action=\"BuiltinPresetMenuAction\">\n"
-"        <placeholder name=\"builtin_presets\"/>\n"
-"      </menu>\n"
-"      <menu action=\"UserPresetMenuAction\">\n"
-"        <placeholder name=\"user_presets\"/>\n"
-"      </menu>\n"
+"      <placeholder name=\"builtin_presets\"/>\n"
+"      <separator/>\n"
+"      <placeholder name=\"user_presets\"/>\n"
 "    </menu>\n"
 "    <placeholder name=\"commands\"/>\n"
 "  </menubar>\n"
@@ -837,16 +834,16 @@ static const char *general_preset_pre_xml =
 "    <menu action=\"PresetMenuAction\">\n";
 
 static const char *builtin_preset_pre_xml = 
-"      <menu action=\"BuiltinPresetMenuAction\">\n"
+// "      <menu action=\"BuiltinPresetMenuAction\">\n"
 "        <placeholder name=\"builtin_presets\">\n";
 
 static const char *user_preset_pre_xml = 
-"      <menu action=\"UserPresetMenuAction\">\n"
+// "      <menu action=\"UserPresetMenuAction\">\n"
 "        <placeholder name=\"user_presets\">\n";
 
 static const char *preset_post_xml = 
 "        </placeholder>\n"
-"      </menu>\n"
+// "      </menu>\n"
 "    </menu>\n"
 "  </menubar>\n"
 "</ui>\n"
@@ -877,7 +874,7 @@ plugin_gui_window::plugin_gui_window(main_window_iface *_main)
     assert(main);
 }
 
-string plugin_gui_window::make_gui_preset_list(GtkActionGroup *grp, bool builtin)
+string plugin_gui_window::make_gui_preset_list(GtkActionGroup *grp, bool builtin, char &ch)
 {
     string preset_xml = string(general_preset_pre_xml) + (builtin ? builtin_preset_pre_xml : user_preset_pre_xml);
     preset_vector &pvec = (builtin ? get_builtin_presets() : get_user_presets()).presets;
@@ -888,10 +885,15 @@ string plugin_gui_window::make_gui_preset_list(GtkActionGroup *grp, bool builtin
             continue;
         stringstream ss;
         ss << (builtin ? "builtin_preset" : "user_preset") << i;
-        preset_xml += "          <menuitem name=\""+pvec[i].name+"\" action=\""+ss.str()+"\"/>\n";
+        preset_xml += "          <menuitem name=\"" + pvec[i].name+"\" action=\""+ss.str()+"\"/>\n";
+        if (ch != ' ' && ++ch == ':')
+            ch = 'A';
+        if (ch > 'Z')
+            ch = ' ';
 
         string sv = ss.str();
-        GtkActionEntry ae = { sv.c_str(), NULL, pvec[i].name.c_str(), NULL, NULL, (GCallback)activate_preset };
+        string prefix = ch == ' ' ? string() : string("_")+ch+" ";
+        GtkActionEntry ae = { sv.c_str(), NULL, (prefix + pvec[i].name).c_str(), NULL, NULL, (GCallback)activate_preset };
         gtk_action_group_add_actions_full(preset_actions, &ae, 1, (gpointer)new activate_preset_params(gui, i, builtin), action_destroy_notify);
     }
     preset_xml += preset_post_xml;
@@ -917,7 +919,7 @@ string plugin_gui_window::make_gui_command_list(GtkActionGroup *grp)
     return command_xml;
 }
 
-void plugin_gui_window::fill_gui_presets(bool builtin)
+void plugin_gui_window::fill_gui_presets(bool builtin, char &ch)
 {
     GtkActionGroup *&preset_actions = builtin ? builtin_preset_actions : user_preset_actions;
     if(preset_actions) {
@@ -929,7 +931,7 @@ void plugin_gui_window::fill_gui_presets(bool builtin)
         builtin_preset_actions = gtk_action_group_new("builtin_presets");
     else
         user_preset_actions = gtk_action_group_new("user_presets");
-    string preset_xml = make_gui_preset_list(preset_actions, builtin);
+    string preset_xml = make_gui_preset_list(preset_actions, builtin, ch);
     gtk_ui_manager_insert_action_group(ui_mgr, preset_actions, 0);    
     GError *error = NULL;
     gtk_ui_manager_add_ui_from_string(ui_mgr, preset_xml.c_str(), -1, &error);
@@ -964,8 +966,9 @@ void plugin_gui_window::create(plugin_ctl_iface *_jh, const char *title, const c
     
     command_actions = gtk_action_group_new("commands");
 
-    fill_gui_presets(true);
-    fill_gui_presets(false);
+    char ch = '0';
+    fill_gui_presets(true, ch);
+    fill_gui_presets(false, ch);
     
     gtk_box_pack_start(GTK_BOX(vbox), gtk_ui_manager_get_widget(ui_mgr, "/ui/menubar"), false, false, 0);
 
diff --git a/src/main_win.cpp b/src/main_win.cpp
index 50f8e27..9b4902d 100644
--- a/src/main_win.cpp
+++ b/src/main_win.cpp
@@ -143,9 +143,9 @@ void main_window::refresh_all_presets(bool builtin_too)
     for (std::map<plugin_ctl_iface *, plugin_strip *>::iterator i = plugins.begin(); i != plugins.end(); i++)
     {
         if (i->second && i->second->gui_win) {
-            i->second->gui_win->fill_gui_presets(false);
-            if (builtin_too)
-                i->second->gui_win->fill_gui_presets(true);
+            char ch = '0';
+            i->second->gui_win->fill_gui_presets(true, ch);
+            i->second->gui_win->fill_gui_presets(false, ch);
         }
     }
 }

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list