plug leaks, leaker tweaks, lang for effect info, c41 spiffs, wm probe tweaks
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindow.C
index ce48f12407e82e03ab1b1fb29f6d3c8f4ad03e9a..2c0ddff46de8ebc2c648ea7296982172cc6268aa 100644 (file)
@@ -297,6 +297,9 @@ MWindow::~MWindow()
 #endif
        reset_caches();
        dead_plugins->remove_all_objects();
+// must delete theme before destroying plugindb
+//  theme destructor will be deleted by delete_plugins
+       delete theme;           theme = 0;
        delete_plugins();
        finit_error();
        keyframe_threads->remove_all_objects();
@@ -325,7 +328,6 @@ MWindow::~MWindow()
        delete defaults;        defaults = 0;
        delete assets;          assets = 0;
        delete splash_window;   splash_window = 0;
-//     delete theme;           theme = 0;      // deleted by delete_plugins
        if( !edl->Garbage::remove_user() ) edl = 0;
        delete channeldb_buz;
        delete channeldb_v4l2jpeg;
@@ -733,14 +735,14 @@ void MWindow::add_plugins(ArrayList<PluginServer*> &plugins)
        plugins.remove_all();
 }
 
-void MWindow::init_plugin_tips(ArrayList<PluginServer*> &plugins)
+void MWindow::init_plugin_tips(ArrayList<PluginServer*> &plugins, const char *lang)
 {
        const char *cfg_path = File::get_cindat_path();
        char msg_path[BCTEXTLEN];  int txt = 0;
        FILE *fp = 0;
        if( BC_Resources::language[0] ) {
                snprintf(msg_path, sizeof(msg_path), "%s/info/plugins.%s",
-                       cfg_path, BC_Resources::language);
+                       cfg_path, lang);
                fp = fopen(msg_path, "r");
        }
        if( !fp ) {
@@ -1022,12 +1024,13 @@ void MWindow::init_theme()
                fprintf(stderr, _("MWindow::init_theme: prefered theme %s not found.\n"),
                         preferences->theme);
 
-       if( !theme_plugin && strcasecmp(preferences->theme, DEFAULT_THEME) ) {
+       const char *default_theme = _(DEFAULT_THEME);
+       if( !theme_plugin && strcasecmp(preferences->theme, default_theme) ) {
                fprintf(stderr, _("MWindow::init_theme: trying default theme %s\n"),
-                       DEFAULT_THEME);
+                       default_theme);
                for(int i = 0; i < plugindb->total && !theme_plugin; i++) {
                        if( plugindb->get(i)->theme &&
-                           !strcasecmp(DEFAULT_THEME, plugindb->get(i)->title) )
+                           !strcasecmp(default_theme, plugindb->get(i)->title) )
                                theme_plugin = plugindb->get(i);
                }
        }
@@ -1801,10 +1804,6 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
                                                show_plugin(plugin);
                                        }
                                }
-                               else
-                               {
-                                       plugin->show = 0;
-                               }
 
                                plugin = (Plugin*)plugin->next;
                        }
@@ -2010,7 +2009,7 @@ void MWindow::create_objects(int want_gui,
        if(debug) PRINT_TRACE
        init_ladspa_plugins(this, preferences);
        if(debug) PRINT_TRACE
-       init_plugin_tips(*plugindb);
+       init_plugin_tips(*plugindb, cin_lang);
        if(splash_window)
                splash_window->operation->update(_("Initializing GUI"));
        if(debug) PRINT_TRACE
@@ -2951,7 +2950,7 @@ void MWindow::update_project(int load_mode)
        const int debug = 0;
 
        if(debug) PRINT_TRACE
-       restart_brender();
+       init_brender();
        edl->tracks->update_y_pixels(theme);
 
        if(debug) PRINT_TRACE