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.name, "*.*");
|
||||||
strcpy(fs.creator, "GOLEM");
|
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 ...");
|
FL_STATUS ok = xvt_dm_post_file_open(&fs, "Selezionare il file ...");
|
||||||
|
xvt_fsys_set_dir(&dir);
|
||||||
|
|
||||||
if (ok == FL_OK)
|
if (ok == FL_OK)
|
||||||
{
|
{
|
||||||
xvt_fsys_restore_dir();
|
|
||||||
|
|
||||||
TFilename file;
|
TFilename file;
|
||||||
xvt_fsys_convert_dir_to_str(&fs.dir, file.get_buffer(), file.size());
|
xvt_fsys_convert_dir_to_str(&fs.dir, file.get_buffer(), file.size());
|
||||||
file.add(fs.name);
|
file.add(fs.name);
|
||||||
file.ext(fs.type);
|
m.set(S_FILE, file);
|
||||||
f.set(file);
|
|
||||||
k = K_TAB;
|
k = K_TAB;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -468,9 +467,12 @@ bool TGolem_field::autosave(TRelation& r)
|
|||||||
TToken_string new_value(get(), '\n');
|
TToken_string new_value(get(), '\n');
|
||||||
if (new_value != _old_value)
|
if (new_value != _old_value)
|
||||||
{
|
{
|
||||||
TFilename golem_path;
|
TDir dir;
|
||||||
TDir dir; dir.get(r.lfile().num());
|
const int logicnum = r.lfile().num();
|
||||||
|
dir.get(logicnum, _nolock, _nordir, _sysdirop);
|
||||||
const long ditta = dir.is_com() ? 0 : prefix().get_codditta();
|
const long ditta = dir.is_com() ? 0 : prefix().get_codditta();
|
||||||
|
|
||||||
|
TFilename golem_path;
|
||||||
golem_path = firm2dir(ditta);
|
golem_path = firm2dir(ditta);
|
||||||
golem_path.add("golem");
|
golem_path.add("golem");
|
||||||
if (!fexist(golem_path))
|
if (!fexist(golem_path))
|
||||||
@ -492,15 +494,16 @@ bool TGolem_field::autosave(TRelation& r)
|
|||||||
|
|
||||||
if (old_file != new_file)
|
if (old_file != new_file)
|
||||||
{
|
{
|
||||||
const was_stored = old_row.get_char(2) <= ' ';
|
const was_stored = old_row.get_char(2) <= ' ' &&
|
||||||
const is_stored = new_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))
|
if (was_stored && fexist(old_file))
|
||||||
::remove(old_file);
|
::remove(old_file);
|
||||||
if (is_stored && !new_file.blank())
|
if (tobe_stored && !new_file.blank())
|
||||||
{
|
{
|
||||||
char ext[_MAX_EXT];
|
char ext[_MAX_EXT];
|
||||||
_splitpath(new_file, NULL, NULL, NULL, 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);
|
fcopy(new_file, old_file);
|
||||||
new_row.add(old_file, 0);
|
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);
|
return TEditable_field::autosave(r);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user