olaf neophyte and de.po updates, valgrind tweaks, delete green lady, inkscape dpi=96
[goodguy/history.git] / cinelerra-5.1 / cinelerra / preferencesthread.C
index b7c46fd5047e7e39c7096afa1726ac5e578295bb..fbac1848a2f00fa052339c2ec7a44f69ba8793ab 100644 (file)
@@ -32,6 +32,7 @@
 #include "bchash.h"
 #include "edl.h"
 #include "edlsession.h"
+#include "file.h"
 #include "filesystem.h"
 #include "fonts.h"
 #include "interfaceprefs.h"
@@ -63,7 +64,7 @@
 
 
 
-#define WIDTH 800
+#define WIDTH 860
 #define HEIGHT 700
 
 
@@ -211,18 +212,44 @@ int PreferencesThread::apply_settings()
                (*this_aconfig != *aconfig) || (*this_vconfig != *vconfig) ||
                !preferences->brender_asset->equivalent(*mwindow->preferences->brender_asset, 0, 1, edl);
 
+       if( preferences->yuv_color_space != mwindow->preferences->yuv_color_space ||
+           preferences->yuv_color_range != mwindow->preferences->yuv_color_range ) {
+               YUV::yuv.yuv_set_colors(
+                       preferences->yuv_color_space,
+                       preferences->yuv_color_range);
+               rerender = 1;
+       }
+
+       if( preferences->highlight_inverse != mwindow->preferences->highlight_inverse ) {
+               mwindow->gui->lock_window("PreferencesThread::apply_settings 0");
+               mwindow->gui->hide_cursor(0);
+               mwindow->gui->unlock_window();
+               redraw_overlays = 1;
+       }
+       PreferencesWindow *window = (PreferencesWindow*)get_gui();
+       if( window ) window->unlock_window();
+       mwindow->stop_brender();
+       if( window ) window->lock_window("PreferencesThread::apply_settings 5");
+
        if( strcmp(preferences->theme, mwindow->preferences->theme) != 0 )
                mwindow->restart_status = -1; // reload, need new bcresources
        if( strcmp(preferences->plugin_icons, mwindow->preferences->plugin_icons) != 0 )
                mwindow->restart_status = -1;
+       if( strcmp(preferences->lv2_path, mwindow->preferences->lv2_path) != 0 )
+               reload_plugins = 1;
+       if( reload_plugins ) {
+               MWindow::remove_plugin_index();
+               File::setenv_path("LV2_PATH", preferences->lv2_path, 1);
+               mwindow->restart_status = -1;
+       }
 
        mwindow->edl->copy_session(edl, 1);
        mwindow->preferences->copy_from(preferences);
-       mwindow->init_brender();
 
        BC_Signals::set_catch_segv(mwindow->preferences->trap_sigsegv);
        BC_Signals::set_catch_intr(mwindow->preferences->trap_sigintr);
        BC_WindowBase::get_resources()->popupmenu_btnup = mwindow->preferences->popupmenu_btnup;
+       BC_WindowBase::get_resources()->grab_input_focus = mwindow->preferences->grab_input_focus;
        BC_WindowBase::get_resources()->textbox_focus_policy = mwindow->preferences->textbox_focus_policy;
        if( mwindow->preferences->trap_sigsegv || mwindow->preferences->trap_sigintr ) {
                BC_Trace::enable_locks();
@@ -232,11 +259,12 @@ int PreferencesThread::apply_settings()
        }
 
        mwindow->reset_android_remote();
-       int ffmpeg_early_probe = mwindow->preferences->get_file_probe_armed("FFPMEG_Early");
+       int ffmpeg_early_probe = mwindow->preferences->get_file_probe_armed("FFMPEG_Early");
        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->mainshbtns->load(mwindow->preferences);
+       mwindow->init_brender();
 
 //edl->session->recording_format->dump();
 //mwindow->edl->session->recording_format->dump();
@@ -291,6 +319,7 @@ int PreferencesThread::apply_settings()
        if(redraw_overlays)
        {
                mwindow->gui->lock_window("PreferencesThread::apply_settings 2");
+               mwindow->gui->show_cursor(0);
                mwindow->gui->draw_overlays(1);
                mwindow->gui->unlock_window();
        }
@@ -308,10 +337,7 @@ int PreferencesThread::apply_settings()
 //printf("PreferencesThread::apply_settings 1\n");
 // This doesn't stop and restart, only reloads the assets before
 // the next play command.
-               mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_ALL,
-                       mwindow->edl,
-                       1);
+               mwindow->cwindow->refresh_frame(CHANGE_ALL, mwindow->edl);
 //printf("PreferencesThread::apply_settings 10\n");
        }
 
@@ -617,6 +643,7 @@ PreferencesApply::PreferencesApply(MWindow *mwindow, PreferencesThread *thread)
 int PreferencesApply::handle_event()
 {
        thread->apply_settings();
+       mwindow->save_defaults();
        return 1;
 }
 int PreferencesApply::resize_event(int w, int h)