X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpreferencesthread.C;h=bf921724d531bee53da724ae209c508aa9aae89b;hb=114b45040c8027671cbe50e7d6cecb28bf73b35f;hp=4d1a41561c4e2896d5ad1bade1f68160a10187b0;hpb=24db15d85f2e4c986ff91f992e815747c55948f3;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/preferencesthread.C b/cinelerra-5.1/cinelerra/preferencesthread.C index 4d1a4156..bf921724 100644 --- a/cinelerra-5.1/cinelerra/preferencesthread.C +++ b/cinelerra-5.1/cinelerra/preferencesthread.C @@ -20,6 +20,7 @@ */ #include "aboutprefs.h" +#include "appearanceprefs.h" #include "asset.h" #include "audiodevice.inc" #include "bcsignals.h" @@ -62,8 +63,8 @@ -#define WIDTH 770 -#define HEIGHT 690 +#define WIDTH 800 +#define HEIGHT 700 PreferencesMenuitem::PreferencesMenuitem(MWindow *mwindow) @@ -210,16 +211,37 @@ 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->init_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; 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(); @@ -229,14 +251,11 @@ 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 ? - _("Try FFMpeg first") : _("Try FFMpeg last") ); + FFMPEG_EARLY_TIP : FFMPEG_LATE_TIP); mwindow->gui->mainshbtns->load(mwindow->preferences); - double tc_position = - mwindow->edl->session->get_frame_offset() / mwindow->edl->session->frame_rate; - mwindow->gui->mainclock->set_position_offset(tc_position); //edl->session->recording_format->dump(); //mwindow->edl->session->recording_format->dump(); @@ -291,6 +310,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 +328,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"); } @@ -342,6 +359,8 @@ const char* PreferencesThread::category_to_text(int category) return _("Performance"); case INTERFACE: return _("Interface"); + case APPEARANCE: + return _("Appearance"); case ABOUT: return _("About"); } @@ -410,11 +429,7 @@ void PreferencesWindow::create_objects() for(int i = 0; i < CATEGORIES; i++) { add_subwindow(category_button[i] = new PreferencesButton(mwindow, - thread, - x, - y, - i, - thread->category_to_text(i), + thread, x, y, i, thread->category_to_text(i), (i == thread->current_dialog) ? mwindow->theme->get_image_set("category_button_checked") : mwindow->theme->get_image_set("category_button"))); @@ -520,6 +535,10 @@ int PreferencesWindow::set_current_dialog(int number) add_subwindow(dialog = new InterfacePrefs(mwindow, this)); break; + case PreferencesThread::APPEARANCE: + add_subwindow(dialog = new AppearancePrefs(mwindow, this)); + break; + case PreferencesThread::ABOUT: add_subwindow(dialog = new AboutPrefs(mwindow, this)); break;