X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Floadfile.C;h=a946077393e514a2e007379a7187b92a77f0a758;hb=fbdd13b462256ed4f3b35dc114385fe0b0de0dcd;hp=c65a9a28531df854f1a08c2025fe91e696b4ce54;hpb=72a88d4704507f72e05b380d9604d9eb3e7d5a89;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/loadfile.C b/cinelerra-5.1/cinelerra/loadfile.C index c65a9a28..a9460773 100644 --- a/cinelerra-5.1/cinelerra/loadfile.C +++ b/cinelerra-5.1/cinelerra/loadfile.C @@ -36,6 +36,7 @@ #include "mainsession.h" #include "mwindow.h" #include "mwindowgui.h" +#include "preferences.h" #include "theme.h" @@ -79,6 +80,8 @@ LoadFileThread::LoadFileThread(MWindow *mwindow, Load *load) this->mwindow = mwindow; this->load = load; this->window = 0; + load_mode = LOADMODE_REPLACE; + edl_mode = LOADMODE_EDL_CLIP; } LoadFileThread::~LoadFileThread() @@ -92,7 +95,7 @@ BC_Window* LoadFileThread::new_gui() sprintf(default_path, "~"); mwindow->defaults->get("DEFAULT_LOADPATH", default_path); - load_mode = mwindow->defaults->get("LOAD_MODE", LOADMODE_REPLACE); + load_mode = mwindow->defaults->get("LOAD_MODE", load_mode); mwindow->gui->lock_window("LoadFileThread::new_gui"); window = new LoadFileWindow(mwindow, this, default_path); @@ -113,11 +116,13 @@ void LoadFileThread::handle_done_event(int result) void LoadFileThread::load_apply() { - mwindow->defaults->update("DEFAULT_LOADPATH", - window->get_submitted_path()); - mwindow->defaults->update("LOAD_MODE", - load_mode); - + mwindow->defaults->update("DEFAULT_LOADPATH", window->get_submitted_path()); + mwindow->defaults->update("LOAD_MODE", load_mode); + if( edl_mode == LOADMODE_EDL_FILEREF ) + mwindow->show_warning( + &mwindow->preferences->warn_fileref, + _("Other projects can change this project\n" + "and this can become a broken link")); ArrayList path_list; path_list.set_array_delete(); @@ -132,12 +137,9 @@ void LoadFileThread::load_apply() // No file selected if( !path_list.size() ) return; - if( load_mode == LOADMODE_REPLACE ) - mwindow->set_filename(path_list[0]); - mwindow->interrupt_indexes(); mwindow->gui->lock_window("LoadFileThread::run"); - mwindow->load_filenames(&path_list, load_mode, 0); + mwindow->load_filenames(&path_list, load_mode, edl_mode, 0); mwindow->gui->mainmenu->add_load(path_list.values[0]); mwindow->gui->unlock_window(); path_list.remove_all_objects(); @@ -146,7 +148,8 @@ void LoadFileThread::load_apply() mwindow->restart_brender(); - if(load_mode == LOADMODE_REPLACE || load_mode == LOADMODE_REPLACE_CONCATENATE) + if( load_mode == LOADMODE_REPLACE || + load_mode == LOADMODE_REPLACE_CONCATENATE ) mwindow->session->changes_made = 0; else mwindow->session->changes_made = 1; @@ -185,9 +188,15 @@ void LoadFileWindow::create_objects() int x = get_w() / 2 - LoadMode::calculate_w(this, mwindow->theme) / 2; int y = get_y_margin(); - loadmode = new LoadMode(mwindow, this, x, y, &thread->load_mode, 0, 1); +// always start as clip to match historical behavior + thread->edl_mode = LOADMODE_EDL_CLIP; + loadmode = new LoadMode(mwindow, this, x, y, + &thread->load_mode, &thread->edl_mode, 0, 1); loadmode->create_objects(); - add_subwindow(load_file_apply = new LoadFileApply(this)); + const char *apply = _("Apply"); + x = 3*get_w()/4 - BC_GenericButton::calculate_w(this, apply)/2; + y = get_h() - BC_CancelButton::calculate_h() - yS(16); + add_subwindow(load_file_apply = new LoadFileApply(this, x, y, apply)); show_window(1); unlock_window(); @@ -201,19 +210,18 @@ int LoadFileWindow::resize_event(int w, int h) int x = w / 2 - LoadMode::calculate_w(this, mwindow->theme) / 2; int y = get_y_margin(); loadmode->reposition_window(x, y); - x = (w - BC_GenericButton::calculate_w(this, _("Apply")))/2; - y = h - BC_GenericButton::calculate_h() - 15; + const char *apply = load_file_apply->get_text(); + x = 3*get_w()/4 - BC_GenericButton::calculate_w(this, apply)/2; + y = get_h() - BC_CancelButton::calculate_h() - yS(16); load_file_apply->reposition_window(x, y); flush(); return 1; } -LoadFileApply::LoadFileApply(LoadFileWindow *load_file_window) - : BC_GenericButton( (load_file_window->get_w() - - BC_GenericButton::calculate_w(load_file_window, _("Apply")))/2, - load_file_window->get_h() - BC_GenericButton::calculate_h() - 15, - _("Apply")) +LoadFileApply::LoadFileApply(LoadFileWindow *load_file_window, + int x, int y, const char *text) + : BC_GenericButton(x, y, text) { this->load_file_window = load_file_window; }