38 char *find_existing_directory_of(
const char *fullpath) {
46 char *restart_args =
NULp;
54 strcmp(dst_db_name,
":") != 0)
81 start_dst_db(start_dst_db_)
126 const char *window_id = source_database ?
"MERGE_SAVE_DB_I" :
"MERGE_SAVE_WHOLE_DB";
130 AW_window_simple *aws =
new AW_window_simple;
131 aws->init(aw_root, window_id,
GBS_global_string(
"Save whole %s database", source_database ?
"source" :
"target"));
132 aws->load_xfig(
"save_as.fig");
136 aws->create_button(
"CLOSE",
"CLOSE",
"C");
140 aws->create_button(
"HELP",
"HELP",
"H");
147 aws->at(
"compression");
151 aws->callback(makeWindowCallback(
MG_save_cb, source_database));
152 aws->create_button(
"SAVE",
"SAVE",
"S");
193 mg_assert(!(src_is_client && dst_is_client));
195 bool save_src_enabled = !src_is_client;
196 bool save_dst_enabled = !dst_is_client;
200 const char *app_id =
NULp;
204 app_id =
"ARB_MERGE_OUTOF";
206 else if (dst_is_client) {
208 app_id =
"ARB_MERGE_INTO";
212 app_id =
"ARB_MERGE";
233 if (merge_is_genome) {
234 dest_genome =
aw_question(
"select_dest_dbtype",
"Enter destination DB-type",
"Normal,Genome");
261 awm->
init(aw_root,
"ARB_MERGE",
"ARB_MERGE");
266 AWT_create_debug_menu(awm);
270 if (save_src_enabled) {
275 if (save_dst_enabled) {
305 awm->
at(
"alignment");
308 awm->
create_button(
"CHECK_ALIGNMENTS",
"Check alignments ...");
324 awm->
create_button(
"TRANSFER_SPECIES",
"Transfer species ... ");
326 awm->
at(
"extendeds");
338 awm->
help_text(
"mg_species_configs.hlp");
339 awm->
create_button(
"TRANSFER_CONFIGS",
"Transfer configurations ...");
350 awm->
create_button(
"SAVE_WHOLE_DB2",
"Save whole target DB as ...");
352 awm->
at(
"save_quick");
355 awm->
create_button(
"SAVE_CHANGES_OF_DB2",
"Quick-save changes of target DB");
362 awm->
create_button(
"QUIT", save_dst_enabled ?
"Quit" :
"Close");
380 AWT_create_db_browser_awars(awr, aw_def);
384 inline const char *
get_awar_name(
const char *awar_base_name,
const char *entry) {
397 const char *shown_name;
398 if (strcmp(name,
":") == 0 && !suffix) {
399 shown_name =
": (DB loaded in ARB_NT)";
418 filename_awar->
touch();
GB_ERROR GB_begin_transaction(GBDATA *gbd)
void MG_create_trees_awar(AW_root *aw_root, AW_default aw_def)
GB_ERROR GB_commit_transaction(GBDATA *gbd)
void MERGE_create_db_file_awars(AW_root *awr, AW_default aw_def, const char *src_name, const char *dst_name)
void button_length(int length)
void sens_mask(AW_active mask)
bool GB_is_server(GBDATA *gbd)
GB_ERROR GB_save(GBDATA *gb, const char *path, const char *savetype)
void insert_menu_topic(const char *id, const char *name, const char *mnemonic, const char *help_text_, AW_active mask, const WindowCallback &wcb)
void load_xfig(const char *file, bool resize=true)
long GBT_mark_all(GBDATA *gb_main, int flag)
void dont_save_awars_with_default_value(GBDATA *gb_db)
void AW_create_standard_fileselection(AW_window *aws, const char *awar_prefix)
void maybe_exit_delayed()
const char * GBS_global_string(const char *templat,...)
static void create_fileselection_and_name_awars(AW_root *awr, AW_default aw_def, const char *awar_base_name, const char *filename)
void AW_POPDOWN(AW_window *window)
void AW_insert_common_property_menu_entries(AW_window_menu_modes *awmm)
bool isNull() const
test if SmartPtr is NULp
static void MG_save_cb(AW_window *aww, bool source_database)
__ATTR__USERESULT GB_ERROR configure_macro_recording(AW_root *aw_root, const char *client_id, GBDATA *gb_main)
void setNull()
set SmartPtr to NULp
AW_awar * add_callback(const RootCallback &cb)
void GB_change_my_security(GBDATA *gbd, int level)
const char * read_char_pntr() const
bool is_performing_delayed_exit() const
WindowCallback makeHelpCallback(const char *helpfile)
void MG_create_db_dependent_rename_awars(AW_root *aw_root, GBDATA *gb_src, GBDATA *gb_dst)
AW_window * MG_create_merge_trees_window(AW_root *awr)
void MERGE_create_all_awars(AW_root *awr, AW_default aw_def)
void AW_save_properties(AW_window *aw)
static void MG_create_db_dependent_awars(AW_root *aw_root, GBDATA *gb_src, GBDATA *gb_dst)
void create_menu(const char *name, const char *mnemonic, AW_active mask=AWM_ALL)
void MG_create_extendeds_awars(AW_root *aw_root, AW_default aw_def)
void help_text(const char *id)
AW_window * MERGE_create_main_window(AW_root *aw_root, bool dst_is_new, __ATTR__NORETURN void(*exit_cb)(const char *))
static void error(const char *msg)
void AW_create_fileselection_awars(AW_root *awr, const char *awar_base, const char *directories, const char *filter, const char *file_name)
void MG_create_species_awars(AW_root *aw_root, AW_default aw_def)
void insert_help_topic(const char *labeli, const char *mnemonic, const char *helpText, AW_active mask, const WindowCallback &cb)
MG_MacroExitor(AW_root *aw_root_, bool start_dst_db_)
long GB_read_clients(GBDATA *gbd)
void MG_set_renamed(bool renamed, AW_root *aw_root, const char *reason)
char * read_string() const
AW_awar * awar(const char *awar)
GB_ERROR GB_save_quick_as(GBDATA *gbd, const char *path)
void AW_refresh_fileselection(AW_root *awr, const char *awar_prefix)
AW_window * MG_create_merge_species_window(AW_root *awr, bool dst_is_new)
static AW_window_menu_modes_opengl * awm
GB_CSTR GB_append_suffix(const char *name, const char *suffix)
AW_window * MG_create_merge_names_window(AW_root *awr)
void MG_create_rename_awars(AW_root *aw_root, AW_default aw_def)
void MG_create_gene_species_awars(AW_root *aw_root, AW_default aw_def)
int aw_question(const char *unique_id, const char *question, const char *buttons, bool sameSizeButtons, const char *helpfile)
char * GBK_singlequote(const char *arg)
static void filename_changed_cb(AW_root *awr, const char *awar_base_name)
bool GB_is_directory(const char *path)
AW_window * MG_create_merge_SAIs_window(AW_root *awr)
void aw_message(const char *msg)
static void MG_confirm_exit_restart_if(AW_window *aww, bool start_dst_db)
void insert_macro_menu_entry(AW_window *awm, bool prepend_separator)
void GB_split_full_path(const char *fullpath, char **res_dir, char **res_fullname, char **res_name_only, char **res_suffix)
static AW_window * MG_create_save_as_window(AW_root *aw_root, bool source_database)
static __ATTR__NORETURN void(* MG_exit_cb)(const char *)
AW_window * MG_create_merge_configs_window(AW_root *awr)
GB_ERROR write_string(const char *aw_string)
const char * get_awar_name(const char *awar_base_name, const char *entry)
static void MG_save_quick_result_cb(AW_window *aww)
void callback(const WindowCallback &cb)
AW_awar * awar_string(const char *var_name, const char *default_value="", AW_default default_file=AW_ROOT_DEFAULT)
AW_window * MG_create_merge_alignment_window(AW_root *awr)
GB_ERROR GBT_check_data(GBDATA *Main, const char *alignment_name)
bool GEN_is_genome_db(GBDATA *gb_main, int default_value)
AW_root * get_root() const
void ARB_disconnect_from_db(AW_root *aw_root, GBDATA *&gb_main_ref)
void MG_create_config_awar(AW_root *aw_root, AW_default aw_def)
void AWT_insert_DBsaveType_selector(AW_window *aww, const char *awar_name)
void aw_message_if(GB_ERROR error)
char * GBS_global_string_copy(const char *templat,...)
void AWT_insert_DBcompression_selector(AW_window *aww, const char *awar_name)
void create_button(const char *macro_name, AW_label label, const char *mnemonic=NULp, const char *color=NULp)