gint display_send_files_dbox(void) { const gchar *ext; gchar **filenames; static gchar *folder = NULL; int ret = 0; // Check for null cable if(linkp.cable_model != CABLE_ILP) { int err; gchar *str; str = g_strdup_printf(_("The current link cable <%s> port <%s> does not allow direct file loading. Do you let me change link port settings to allow direct file loading?"), ticables_model_to_string(linkp.cable_model), ticables_port_to_string(linkp.cable_port)); ret= msg_box2(_("Warning"), str); g_free(str); if(ret == BUTTON2) return -1; // reconfigure link port ti68k_linkport_unconfigure(); linkp.cable_model = CABLE_ILP; linkp.cable_port = PORT_0; err = ti68k_linkport_reconfigure(); handle_error(); } // set mask switch(tihw.calc_type) { case TI92: ext = "*.92?"; break; default: ext = "*.89?;*.92?;*.9x?;*.9X?;*.v2?;*.V2?;*.tig"; break; } // get filename if(folder == NULL) folder = g_strdup(inst_paths.base_dir); filenames = create_fsels(folder, NULL, (char *)ext); if(!filenames) return 0; // keep folder g_free(folder); folder = g_path_get_dirname(filenames[0]); ret = fs_send_files(filenames); g_strfreev(filenames); return ret; }
GLADE_CB void on_add_clicked (GtkToolButton *toolbutton, gpointer user_data) { char **array, **ptr; CalcModel model; FileContent *content; int ret; unsigned int i; array = create_fsels(inst_paths.home_dir, "", "*.*"); if(array == NULL) return; for(ptr = array; *ptr; ptr++) { char *fn = *ptr; if(tifiles_file_is_tigroup(fn)) { msgbox_one(MSGBOX_ERROR, _("Importing of TiGroup files is not allowed.")); return; } model = tifiles_file_get_model(fn); if(!tifiles_calc_are_compat(GFMFile.model, model)) { msgbox_one(MSGBOX_ERROR, _("File is not compatible with current target.")); return; } content = tifiles_content_create_regular(model); ret = tifiles_file_read_regular(fn, content); for(i = 0; i < content->num_entries; i++) { VarEntry *ve = content->entries[i]; if(ticalcs_dirlist_ve_exist(GFMFile.trees.vars, ve)) { msgbox_one(MSGBOX_ERROR, _("The entry already exists. Skipped!")); continue; } ticalcs_dirlist_ve_add(GFMFile.trees.vars, ve); } ret = tifiles_content_delete_regular(content); } enable_save(TRUE); enable_tree(TRUE); ctree_refresh(); labels_refresh(); }
GLADE_CB void on_group_clicked (GtkButton *button, gpointer user_data) { int result; char **array; result = msgbox_three(_("TiGroup"), _("Single/Group"), _("File type?")); if(!result) return; array = create_fsels(inst_paths.home_dir, "", "*.73?;*.82?;*.83?;*.8X?;*.85?;*.86?;*.89?;*.92?;*.9x?;*.V2?"); if(array == NULL) return; gfm_tifiles_group((const char **)array, result == MSGBOX_BUTTON1 ? TIFILE_TIGROUP : TIFILE_GROUP); }
// Send TILP_EXPORT void on_tilp_button6_clicked(GtkButton* button, gpointer user_data) { gchar** filenames; gchar** ptr; char *ext; ext = g_strconcat("*.", "*", NULL); filenames = create_fsels(local.cwdir, NULL, ext); g_free(ext); if(filenames == NULL) return; for(ptr = filenames; *ptr != NULL; ptr++) tilp_local_selection_add(*ptr); g_strfreev(filenames); on_tilp_send(""); tilp_local_selection_destroy(); }
gint display_send_files_dbox() { const gchar *ext; gchar **filenames, **ptr; int err; static gchar *folder = NULL; // Check for null cable if(link_cable.link_type != LINK_NUL) { tiemu_error(0, "You can't use direct file loading when a cable is set. Change cable to 'null' in the Link Options menu item."); return -1; } // set mask switch(tihw.calc_type) { case TI92: ext = "*.92?"; break; default: ext = "*.89?;*.92?;*.9x?;*.9X?;*.v2?;*.V2?"; break; } // get filename if(folder == NULL) folder = g_strdup(inst_paths.base_dir); filenames = create_fsels(folder, NULL, (char *)ext); if(!filenames) return 0; // keep folder g_free(folder); folder = g_path_get_dirname(filenames[0]); // check extension for(ptr = filenames; *ptr; ptr++) { if(!tifiles_is_a_ti_file(*ptr) || !tifiles_is_ti9x(tifiles_which_calc_type(*ptr))) { msg_box(_("Error"), _("This file is not a valid TI file.")); g_strfreev(filenames); return -1; } // set pbar title #if 1 if(tifiles_is_a_tib_file(*ptr) || tifiles_is_a_flash_file(*ptr)) { create_pbar_type5(_("Flash"), ""); } else if(tifiles_is_a_backup_file(*ptr)) { create_pbar_type3(_("Backup")); } else if(tifiles_is_a_group_file(*ptr)) { create_pbar_type5(_("Sending group file"), ""); } else if(tifiles_is_a_single_file(*ptr)) { create_pbar_type4(_("Sending variable"), ""); } #endif // note that core is currently not bkpt-interruptible when // transferring file GTK_REFRESH(); err = ti68k_linkport_send_file(*ptr); handle_error(); destroy_pbar(); } g_strfreev(filenames); return 0; }