projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
transcode target dir can be nested proxy pref, filebox/loadmode tweaks, meters tweak...
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
mwindow.C
diff --git
a/cinelerra-5.1/cinelerra/mwindow.C
b/cinelerra-5.1/cinelerra/mwindow.C
index cf9988903e223b44a15faf73eb77086f701cd79e..988e49a3cd908e8abd339ad797ac2e61a20f4007 100644
(file)
--- a/
cinelerra-5.1/cinelerra/mwindow.C
+++ b/
cinelerra-5.1/cinelerra/mwindow.C
@@
-2139,14
+2139,12
@@
if(debug) printf("MWindow::load_filenames %d\n", __LINE__);
session->group_number += groups;
switch( edl_mode ) {
case LOADMODE_EDL_CLIP: {
session->group_number += groups;
switch( edl_mode ) {
case LOADMODE_EDL_CLIP: {
- sprintf(new_edl->local_session->clip_title, _("Clip %d"),
- session->clip_number++);
- char string[BCSTRLEN];
- time_t t; time(&t);
- ctime_r(&t, string);
- snprintf(new_edl->local_session->clip_notes,
- sizeof(new_edl->local_session->clip_notes),
- +("%sFrom: %s"), string, filename);
+ strcpy(new_edl->local_session->clip_title,
+ filenames->get(i));
+ struct stat st;
+ time_t t = !stat(filenames->get(i),&st) ?
+ st.st_mtime : time(&t);
+ ctime_r(&t, new_edl->local_session->clip_notes);
switch( load_mode ) {
case LOADMODE_REPLACE:
case LOADMODE_REPLACE_CONCATENATE:
switch( load_mode ) {
case LOADMODE_REPLACE:
case LOADMODE_REPLACE_CONCATENATE:
@@
-4124,6
+4122,7
@@
void MWindow::save_backup()
sprintf(string2, _("Couldn't open %s for writing."), backup_path);
gui->show_message(string2);
}
sprintf(string2, _("Couldn't open %s for writing."), backup_path);
gui->show_message(string2);
}
+ save_undo_data();
}
void MWindow::load_backup()
}
void MWindow::load_backup()
@@
-4151,8
+4150,8
@@
void MWindow::load_backup()
void MWindow::save_undo_data()
{
void MWindow::save_undo_data()
{
-
undo_before()
;
-
undo_after(_("perpetual session"), LOAD_ALL)
;
+
if( stack.size() > 0 ) return
;
+
if( !preferences->perpetual_session ) return
;
char perpetual_path[BCTEXTLEN];
snprintf(perpetual_path, sizeof(perpetual_path), "%s/%s",
File::get_config_path(), PERPETUAL_FILE);
char perpetual_path[BCTEXTLEN];
snprintf(perpetual_path, sizeof(perpetual_path), "%s/%s",
File::get_config_path(), PERPETUAL_FILE);
@@
-4164,15
+4163,27
@@
void MWindow::save_undo_data()
void MWindow::load_undo_data()
{
void MWindow::load_undo_data()
{
+ if( stack.size() > 0 ) return;
+ if( !preferences->perpetual_session ) return;
char perpetual_path[BCTEXTLEN];
snprintf(perpetual_path, sizeof(perpetual_path), "%s/%s",
File::get_config_path(), PERPETUAL_FILE);
FILE *fp = fopen(perpetual_path,"r");
if( !fp ) return;
undo->load(fp);
char perpetual_path[BCTEXTLEN];
snprintf(perpetual_path, sizeof(perpetual_path), "%s/%s",
File::get_config_path(), PERPETUAL_FILE);
FILE *fp = fopen(perpetual_path,"r");
if( !fp ) return;
undo->load(fp);
+ undo_before();
+ undo_after(_("perpetual load"), LOAD_ALL);
fclose(fp);
}
fclose(fp);
}
+void MWindow::remove_undo_data()
+{
+ if( stack.size() > 0 ) return;
+ char perpetual_path[BCTEXTLEN];
+ snprintf(perpetual_path, sizeof(perpetual_path), "%s/%s",
+ File::get_config_path(), PERPETUAL_FILE);
+ ::remove(perpetual_path);
+}
int MWindow::copy_target(const char *path, const char *target)
{
int MWindow::copy_target(const char *path, const char *target)
{
@@
-4276,7
+4287,10
@@
void MWindow::save_project(const char *dir, int save_mode, int overwrite, int re
char progress_title[BCTEXTLEN];
sprintf(progress_title, _("Saving to %s:\n"), dir);
int total_assets = save_edl->assets->total();
char progress_title[BCTEXTLEN];
sprintf(progress_title, _("Saving to %s:\n"), dir);
int total_assets = save_edl->assets->total();
+ gui->lock_window("MWindow::save_project");
MainProgressBar *progress = mainprogress->start_progress(progress_title, total_assets);
MainProgressBar *progress = mainprogress->start_progress(progress_title, total_assets);
+ gui->unlock_window();
+
int ret = 0;
Asset *current = save_edl->assets->first;
for( int i=0; !ret && current; ++i, current=NEXT ) {
int ret = 0;
Asset *current = save_edl->assets->first;
for( int i=0; !ret && current; ++i, current=NEXT ) {