gamma yuva hist fix, theme change without exit
[goodguy/history.git] / cinelerra-5.0 / cinelerra / preferencesthread.C
index dc52ad4cb8e82c3b93b1a1f8776e54dc6d975d86..8f95e11967ab8f3e33c893c3d71e3f49d741472f 100644 (file)
@@ -38,6 +38,7 @@
 #include "levelwindow.h"
 #include "levelwindowgui.h"
 #include "mainerror.h"
+#include "mbuttons.h"
 #include "meterpanel.h"
 #include "mutex.h"
 #include "mwindow.h"
@@ -48,6 +49,7 @@
 #include "playbackprefs.h"
 #include "preferences.h"
 #include "recordprefs.h"
+#include "shbtnprefs.h"
 #include "theme.h"
 #include "trackcanvas.h"
 #include "transportque.h"
@@ -63,7 +65,7 @@
 
 
 PreferencesMenuitem::PreferencesMenuitem(MWindow *mwindow)
- : BC_MenuItem(_("Preferences..."), "Shift+P", 'P')
+ : BC_MenuItem(_("Preferences..."), _("Shift+P"), 'P')
 {
        this->mwindow = mwindow; 
 
@@ -98,6 +100,7 @@ PreferencesThread::PreferencesThread(MWindow *mwindow)
 
 PreferencesThread::~PreferencesThread()
 {
+       close_window();
 }
 
 BC_Window* PreferencesThread::new_gui()
@@ -150,6 +153,8 @@ void PreferencesThread::handle_close_event(int result)
        edl = 0;
 
        mwindow->defaults->update("DEFAULTPREF", current_dialog);
+       if( mwindow->reload_status )
+               mwindow->gui->set_done(0);
 }
 
 
@@ -196,10 +201,9 @@ int PreferencesThread::apply_settings()
                (*this_aconfig != *aconfig) || (*this_vconfig != *vconfig) ||
                !preferences->brender_asset->equivalent(*mwindow->preferences->brender_asset, 0, 1);
 
-       if( preferences->file_forking != mwindow->preferences->file_forking ) {
-               MainError::show_error(
-                       _("Reseting file forking requires restarting cinelerra"));
-       }
+       if( strcmp(preferences->theme, mwindow->preferences->theme) != 0 )
+               mwindow->reload_status = 1;
+
        mwindow->edl->copy_session(edl, 1);
        mwindow->preferences->copy_from(preferences);
        mwindow->init_brender();
@@ -208,6 +212,8 @@ int PreferencesThread::apply_settings()
        BC_Signals::set_catch_intr(mwindow->preferences->trap_sigintr);
 
        mwindow->reset_android_remote();
+       mwindow->gui->ffmpeg_toggle->update(mwindow->preferences->ffmpeg_early_probe);
+       mwindow->gui->mainshbtns->load(mwindow->preferences);
 
 //edl->session->recording_format->dump();
 //mwindow->edl->session->recording_format->dump();
@@ -347,7 +353,7 @@ PreferencesWindow::PreferencesWindow(MWindow *mwindow,
        PreferencesThread *thread,
        int x,
        int y)
- : BC_Window(PROGRAM_NAME ": Preferences"
+ : BC_Window(_(PROGRAM_NAME ": Preferences")
        x,
        y,
        WIDTH,