void BackupAssistant::on_button_resource_name () { ustring name = resource_select (NULL); if (!name.empty()) { resource_name = name; } on_assistant_prepare (vbox_resource_name); }
void RestoreAssistant::on_button_file () { ustring file = gtkw_file_chooser_open (assistant, "", filename); if (!file.empty()) { filename = file; on_assistant_prepare (vbox_file); } }
void BackupAssistant::on_button_file () { ustring file = gtkw_file_chooser_save (assistant, "", filename); if (!file.empty()) { filename = file; compress_ensure_tar_gz_suffix (filename); on_assistant_prepare (vbox_file); } }
void BackupAssistant::on_button_bible_name () { project_select(bible_name); on_assistant_prepare (vbox_bible_name); }
void ImportAssistant::on_button_files () // Selection and processing of the files to import. { // Set directory. ustring directory; if (!files_names.empty()) { directory = gw_path_get_dirname (files_names[0]); } // Processing variables. files_messages.clear(); files_book_ids.clear(); // Select files. { vector <ustring> files = gtkw_file_chooser_open_multiple (assistant, "", directory); if (!files.empty()) { files_names = files; } } // Ensure that there are only uncompressed files, or only one compressed file. vector <ustring> compressed_files; for (unsigned int i = 0; i < files_names.size(); i++) { if (compressed_archive_recognized (files_names[i])) compressed_files.push_back (files_names[i]); } if (!compressed_files.empty()) { if (compressed_files.size() > 1) { files_messages.push_back (_("You have selected more than one compressed file")); } if (compressed_files.size() == 1) { if (files_names.size() != 1) { files_messages.push_back (_("You have selected a mixture of normal and compressed files")); } } } // Optionally uncompress the archive and let the user select files from within it. if (files_messages.empty()) { if (compressed_files.size() == 1) { ustring unpack_directory = gw_build_filename (Directories->get_temp (), "uncompress"); unix_rmdir (unpack_directory); uncompress (compressed_files[0], unpack_directory); gtkw_dialog_info (assistant, _("You will now be asked to select files from within the compressed archive")); files_names = gtkw_file_chooser_open_multiple (assistant, "", unpack_directory); } } // Check that all files are in Unicode. if (files_messages.empty()) { vector <ustring> unicode_files; vector <ustring> non_unicode_files; for (unsigned int i = 0; i < files_names.size(); i++) { ustring contents; gchar *s; g_file_get_contents(files_names[i].c_str(), &s, NULL, NULL); contents = s; g_free(s); if (contents.validate()) { unicode_files.push_back (files_names[i]); } else { non_unicode_files.push_back (files_names[i]); } } files_names = unicode_files; if (!non_unicode_files.empty()) { files_messages.push_back (_("The following files are not in the right Unicode format and are therefore not fit for import:")); for (unsigned int i = 0; i < non_unicode_files.size(); i++) { files_messages.push_back (non_unicode_files[i]); } files_messages.push_back (_("The online help provides more information about how to make these fit for use.")); } } // Check that at least one file was selected. if (files_messages.empty()) { if (files_names.empty()) { files_messages.push_back (_("No files were selected")); } } // Specific checks for each import type. if (files_messages.empty()) { switch (get_type ()) { case itBible: { switch (get_bible_type()) { case ibtUsfm: { import_check_usfm_files (files_names, files_book_ids, bible_name, files_messages); break; } case ibtBibleWorks: { import_check_bibleworks_file (files_names, files_book_ids, bible_name, files_messages); break; } case ibtOnlineBible: { break; } case ibtRawText: { break; } } break; } case itReferences: { break; } case itStylesheet: { break; } case itNotes: { break; } case itKeyterms: { break; } } } // Gui update. on_assistant_prepare (vbox_files); }
void RestoreAssistant::on_entry_bible_name () { bible_name = gtk_entry_get_text (GTK_ENTRY (entry_bible_name)); on_assistant_prepare (vbox_bible_name); }