#include "mainsession.h"
#include "mwindow.h"
#include "mwindowgui.h"
+#include "preferences.h"
#include "theme.h"
this->mwindow = mwindow;
this->load = load;
this->window = 0;
+ load_mode = LOADMODE_RESOURCESONLY;
+ edl_mode = LOADMODE_EDL_CLIP;
}
LoadFileThread::~LoadFileThread()
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);
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<char*> path_list;
path_list.set_array_delete();
// No file selected
if( !path_list.size() ) return;
-
- if( load_mode == LOADMODE_REPLACE )
- mwindow->set_filename(path_list[0]);
+ int replaced = load_mode == LOADMODE_REPLACE ||
+ load_mode == LOADMODE_REPLACE_CONCATENATE ? 1 : 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, replaced);
mwindow->gui->mainmenu->add_load(path_list.values[0]);
mwindow->gui->unlock_window();
path_list.remove_all_objects();
mwindow->save_backup();
-
mwindow->restart_brender();
-
- if(load_mode == LOADMODE_REPLACE || load_mode == LOADMODE_REPLACE_CONCATENATE)
- mwindow->session->changes_made = 0;
- else
- mwindow->session->changes_made = 1;
+ mwindow->session->changes_made = !replaced ? 1 : 0;
}
lock_window("LoadFileWindow::create_objects");
BC_FileBox::create_objects();
- int x = get_w() / 2 -
- LoadMode::calculate_w(this, mwindow->theme) / 2;
- int y = get_cancel_button()->get_y() -
- LoadMode::calculate_h(this, mwindow->theme);
- loadmode = new LoadMode(mwindow, this, x, y, &thread->load_mode, 0);
+ int x = get_w() / 2 - LoadMode::calculate_w(this, mwindow->theme) / 2;
+ int y = get_y_margin();
+// 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();
int LoadFileWindow::resize_event(int w, int h)
{
draw_background(0, 0, w, h);
- int x = w / 2 - 200;
- int y = get_cancel_button()->get_y() -
- LoadMode::calculate_h(this, mwindow->theme);
+ BC_FileBox::resize_event(w, 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);
-
- return BC_FileBox::resize_event(w, h);
+ 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;
}