X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowgui.C;h=a68d4d17759520bbc2e9f0eecdcfcf0b5c96d428;hp=5e4dc7bd53560ca7a721d8814f754df314314b7b;hb=HEAD;hpb=b384d47608e07b9f5b6ce5fe1d0d76d9bda38202 diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 5e4dc7bd..3b939df5 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -56,6 +56,7 @@ #include "pluginpopup.h" #include "pluginset.h" #include "preferences.h" +#include "proxy.h" #include "record.h" #include "recordgui.h" #include "renderengine.h" @@ -127,6 +128,8 @@ MWindowGUI::MWindowGUI(MWindow *mwindow) cwindow_remote_handler = 0; record_remote_handler = 0; android_control = 0; +// *** CONTEXT_HELP *** + context_help_set_keyword("Program Window"); } @@ -578,10 +581,9 @@ void MWindowGUI::update_patchbay() void MWindowGUI::update_proxy_toggle() { - int value = mwindow->edl->session->proxy_scale == 1 ? 1 : 0; + int value = mwindow->edl->session->proxy_state == PROXY_ACTIVE ? 0 : 1; proxy_toggle->set_value(value); - if( mwindow->edl->session->proxy_scale == 1 && - mwindow->edl->session->proxy_disabled_scale == 1 ) + if( mwindow->edl->session->proxy_state == PROXY_INACTIVE ) proxy_toggle->hide(); else proxy_toggle->show(); @@ -1042,6 +1044,7 @@ void MWindowGUI::default_positions() mwindow->cwindow->gui->unlock_window(); mwindow->awindow->gui->unlock_window(); //printf("MWindowGUI::default_positions 2\n"); + mwindow->tile_mixers(); } @@ -1089,20 +1092,23 @@ int MWindowGUI::keypress_event() switch( get_keypress() ) { case 'A': - if( !alt_down() && ctrl_down() ) { + if( !alt_down() ) { + if( !ctrl_down() || !shift_down() ) break; mwindow->edl->tracks->clear_selected_edits(); draw_overlays(1); result = 1; - } - break; + break; + } // fall thru case 'a': - if( !ctrl_down() && alt_down() ) { - stop_transport("MWindowGUI::keypress_event 1"); - mwindow->nearest_auto_keyframe(shift_down(), - !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE); - result = 1; - } - else if( ctrl_down() && alt_down() ) { + if( !alt_down() ) break; + stop_transport("MWindowGUI::keypress_event 1"); + mwindow->nearest_auto_keyframe(shift_down(), + !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE); + result = 1; + break; + + case '\'': + if( ctrl_down() && alt_down() ) { mwindow->select_edits(1); result = 1; } @@ -1230,6 +1236,32 @@ int MWindowGUI::keypress_event() } break; + case '!': + if( !ctrl_down() || !shift_down() ) break; + { + if( mwindow->session->current_operation != NO_OPERATION ) return 1; + first_track = mwindow->edl->tracks->first; + double start = mwindow->edl->local_session->get_selectionstart(); + int64_t pos = first_track->to_units(start, 0); + Edit *edit=first_track->edits->editof(pos, PLAY_FORWARD, 0); + if( !edit || !edit->asset ) return 1; + Asset *asset = edit->asset; + double timecode = asset->timecode != -2 ? asset->timecode : + FFMPEG::get_timecode(asset->path, + edit->track->data_type, edit->channel, + mwindow->edl->session->frame_rate); + asset->timecode = timecode; + if( timecode >= 0 ) { + int64_t pos = edit->startproject + edit->startsource; + double position = edit->track->from_units(pos); + mwindow->set_timecode_offset(timecode - position); + } + else + mwindow->set_timecode_offset(0); + } + result = 1; + break; + case UP: if( ctrl_down() && !alt_down() ) mwindow->expand_y(); @@ -1309,6 +1341,9 @@ int MWindowGUI::keypress_event() if(result) cursor_motion_event(); + if(!result) + result = context_help_check_and_show(); + return result; } @@ -2367,6 +2402,8 @@ FFMpegToggle::FFMpegToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y) this->mwindow = mwindow; this->mbuttons = mbuttons; set_tooltip(get_value() ? FFMPEG_EARLY_TIP : FFMPEG_LATE_TIP); +// *** CONTEXT_HELP *** + context_help_set_keyword("FFmpeg Early Probe Explanation"); } FFMpegToggle::~FFMpegToggle() @@ -2391,6 +2428,8 @@ StackButton::StackButton(MWindow *mwindow, int x, int y) { this->mwindow = mwindow; set_tooltip(_("Close EDL")); +// *** CONTEXT_HELP *** + context_help_set_keyword("OpenEDL"); } int StackButton::handle_event() @@ -2414,13 +2453,15 @@ ProxyToggle::ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y) : BC_Toggle(x, y, ( !mwindow->edl->session->proxy_use_scaler ? mwindow->theme->proxy_p_toggle : mwindow->theme->proxy_s_toggle ), - mwindow->edl->session->proxy_disabled_scale != 1) + mwindow->edl->session->proxy_state == PROXY_DISABLED) { this->mwindow = mwindow; this->mbuttons = mbuttons; scaler_images = mwindow->edl->session->proxy_use_scaler; - set_tooltip(mwindow->edl->session->proxy_disabled_scale==1 ? + set_tooltip(mwindow->edl->session->proxy_state!=PROXY_DISABLED ? _("Disable proxy") : _("Enable proxy")); +// *** CONTEXT_HELP *** + context_help_set_keyword("Proxy"); } void ProxyToggle::show() @@ -2455,6 +2496,12 @@ int ProxyToggle::handle_event() mwindow->enable_proxy(); mwindow->gui->lock_window("ProxyToggle::handle_event"); set_tooltip(!disabled ? _("Disable proxy") : _("Enable proxy")); + ProxyDialog *dialog = mwindow->gui->mainmenu->proxy->dialog; + if( dialog && dialog->gui ) { + dialog->gui->lock_window("ProxyToggle::handle_event"); + dialog->gui->update(); + dialog->gui->unlock_window(); + } return 1; } @@ -2468,6 +2515,6 @@ int ProxyToggle::keypress_event() return handle_event(); } } - return 0; + return context_help_check_and_show(); }