/** * @brief Slot called when the user attempts to open a file. * @param quest The quest that holds this file. * @param path Path of the file to open. */ void EditorTabs::open_file_requested(Quest& quest, const QString& path) { if (path.isEmpty()) { return; } QFileInfo file_info(path); QString canonical_path = file_info.canonicalFilePath(); if (!quest.is_in_root_path(canonical_path)) { // Not a file of this quest. return; } ResourceType resource_type; QString element_id; if (quest.is_resource_element(canonical_path, resource_type, element_id)) { // A resource element declared in the quest. // Possibly a map data file, an enemy Lua script, // a language directory, etc. open_resource(quest, resource_type, element_id); } else if (quest.is_dialogs_file(canonical_path, element_id)) { open_dialogs_editor(quest, element_id); } else if (quest.is_strings_file(canonical_path, element_id)) { open_strings_editor(quest, element_id); } else if (quest.is_script(canonical_path)) { // A Lua script that is not a resource element. open_text_editor(quest, canonical_path); } else if (quest.is_data_path(canonical_path)) { open_quest_properties_editor(quest); } }
static int load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) { if(open_resource(env) == -1) return -1; atom_ok = enif_make_atom(env, "ok"); Tracker* tracker = (Tracker*) enif_alloc(sizeof(Tracker)); tracker->count = 0; *priv = (void*) tracker; return 0; }
static int upgrade(ErlNifEnv* env, void** priv, void** old_priv, ERL_NIF_TERM load_info) { if(open_resource(env) == -1) return -1; return 0; }