Exciting new Alt/h help key provided by sge (Georgy) with many thanks!
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / preferencesthread.C
index e4f050be1d2ff4b7919ca8106e5a0eeb0a32e9f1..3ca281e54e6fe08cc1cfa7cf2c104f03b2871998 100644 (file)
@@ -124,6 +124,7 @@ BC_Window* PreferencesThread::new_gui()
        redraw_overlays = 0;
        close_assets = 0;
        reload_plugins = 0;
+       reset_caches = 0;
        //int need_new_indexes = 0;
        rerender = 0;
 
@@ -237,6 +238,7 @@ int PreferencesThread::apply_settings()
        if( window ) window->lock_window("PreferencesThread::apply_settings 5");
 
        if( strcmp(preferences->theme, mwindow->preferences->theme) ||
+           strcmp(preferences->locale, mwindow->preferences->locale) ||
            strcmp(preferences->plugin_icons, mwindow->preferences->plugin_icons) ||
            preferences->awindow_picon_h != mwindow->preferences->awindow_picon_h ||
            preferences->layout_scale != mwindow->preferences->layout_scale ||
@@ -250,6 +252,12 @@ int PreferencesThread::apply_settings()
                File::setenv_path("LV2_PATH", preferences->lv2_path, 1);
                mwindow->restart_status = -1;
        }
+       if( preferences->cache_size != mwindow->preferences->cache_size ||
+           preferences->cache_transitions != mwindow->preferences->cache_transitions )
+               reset_caches = 1;
+
+       if( mwindow->preferences->perpetual_session && !preferences->perpetual_session )
+               mwindow->remove_undo_data();
 
        mwindow->edl->copy_session(edl, 1);
        mwindow->update_preferences(preferences);
@@ -265,12 +273,16 @@ int PreferencesThread::apply_settings()
        else {
                BC_Trace::disable_locks();
        }
+       if( reset_caches )
+               mwindow->reset_caches(0);
 
        mwindow->reset_android_remote();
        int ffmpeg_early_probe = mwindow->preferences->get_file_probe_armed("FFMPEG_Early");
+       mwindow->gui->lock_window("PreferencesThread::apply_settings 6");
        mwindow->gui->ffmpeg_toggle->update(ffmpeg_early_probe);
        mwindow->gui->ffmpeg_toggle->set_tooltip(ffmpeg_early_probe ?
                FFMPEG_EARLY_TIP : FFMPEG_LATE_TIP);
+       mwindow->gui->unlock_window();
        mwindow->gui->mainshbtns->load(mwindow->preferences);
        mwindow->init_brender();
 
@@ -428,6 +440,8 @@ PreferencesWindow::PreferencesWindow(MWindow *mwindow,
        category = 0;
        dialog = 0;
        confirm_dialog = 0;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Settings and Preferences");
 }
 
 PreferencesWindow::~PreferencesWindow()
@@ -679,7 +693,7 @@ int PreferencesOK::keypress_event()
 {
        if( get_keypress() == RETURN )
                return handle_event();
-       return 0;
+       return context_help_check_and_show();
 }
 
 int PreferencesOK::handle_event()
@@ -753,7 +767,7 @@ int PreferencesCancel::keypress_event()
                thread->window->set_done(1);
                return 1;
        }
-       return 0;
+       return context_help_check_and_show();
 }
 int PreferencesCancel::handle_event()
 {