Corretto il salvataggio degli oggetti golem e la determinazione della
esatta directory da utilizzare per i medesimi (com o ditta?) git-svn-id: svn://10.65.10.50/trunk@5578 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1ccc383de3
commit
a0b2c1c372
@ -224,17 +224,16 @@ bool TGolem_mask::file_handler(TMask_field& f, KEY k)
|
||||
strcpy(fs.name, "*.*");
|
||||
strcpy(fs.creator, "GOLEM");
|
||||
|
||||
xvt_fsys_save_dir();
|
||||
DIRECTORY dir; xvt_fsys_get_dir(&dir);
|
||||
FL_STATUS ok = xvt_dm_post_file_open(&fs, "Selezionare il file ...");
|
||||
xvt_fsys_set_dir(&dir);
|
||||
|
||||
if (ok == FL_OK)
|
||||
{
|
||||
xvt_fsys_restore_dir();
|
||||
|
||||
TFilename file;
|
||||
xvt_fsys_convert_dir_to_str(&fs.dir, file.get_buffer(), file.size());
|
||||
file.add(fs.name);
|
||||
file.ext(fs.type);
|
||||
f.set(file);
|
||||
m.set(S_FILE, file);
|
||||
k = K_TAB;
|
||||
}
|
||||
}
|
||||
@ -468,9 +467,12 @@ bool TGolem_field::autosave(TRelation& r)
|
||||
TToken_string new_value(get(), '\n');
|
||||
if (new_value != _old_value)
|
||||
{
|
||||
TFilename golem_path;
|
||||
TDir dir; dir.get(r.lfile().num());
|
||||
TDir dir;
|
||||
const int logicnum = r.lfile().num();
|
||||
dir.get(logicnum, _nolock, _nordir, _sysdirop);
|
||||
const long ditta = dir.is_com() ? 0 : prefix().get_codditta();
|
||||
|
||||
TFilename golem_path;
|
||||
golem_path = firm2dir(ditta);
|
||||
golem_path.add("golem");
|
||||
if (!fexist(golem_path))
|
||||
@ -492,15 +494,16 @@ bool TGolem_field::autosave(TRelation& r)
|
||||
|
||||
if (old_file != new_file)
|
||||
{
|
||||
const was_stored = old_row.get_char(2) <= ' ';
|
||||
const is_stored = new_row.get_char(2) <= ' ';
|
||||
const was_stored = old_row.get_char(2) <= ' ' &&
|
||||
golem_path.compare(old_file, golem_path.len(), TRUE) == 0;
|
||||
const tobe_stored = new_row.get_char(2) <= ' ';
|
||||
if (was_stored && fexist(old_file))
|
||||
::remove(old_file);
|
||||
if (is_stored && !new_file.blank())
|
||||
if (tobe_stored && !new_file.blank())
|
||||
{
|
||||
char ext[_MAX_EXT];
|
||||
_splitpath(new_file, NULL, NULL, NULL, ext);
|
||||
old_file.temp(golem_path, ext);
|
||||
old_file.temp(golem_path, ext);
|
||||
|
||||
fcopy(new_file, old_file);
|
||||
new_row.add(old_file, 0);
|
||||
@ -513,7 +516,7 @@ bool TGolem_field::autosave(TRelation& r)
|
||||
}
|
||||
}
|
||||
}
|
||||
_old_value = new_value;
|
||||
set(_old_value = new_value);
|
||||
}
|
||||
}
|
||||
return TEditable_field::autosave(r);
|
||||
|
Loading…
x
Reference in New Issue
Block a user