From e05ded74dc51bad3ec67a966986417f8434cf533 Mon Sep 17 00:00:00 2001 From: David Mikos Date: Mon, 10 Feb 2014 08:07:22 +1030 Subject: [PATCH] add translatable default filename to editor save box. --- changelog | 1 + src/editor/map/context_manager.cpp | 10 +++++++--- src/filechooser.cpp | 14 +++++++++----- src/filechooser.hpp | 7 +++++-- src/menu_events.cpp | 4 +++- 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index 4b9934434ef..50dfab1c256 100644 --- a/changelog +++ b/changelog @@ -11,6 +11,7 @@ Version 1.11.9+dev: * Updated translations: * Miscellaneous and bug fixes: * Fixed: A compilation warning with DEBUG_WINDOW_LAYOUT_GRAPHS. + * Add translatable default filename to map editor save dialog box Version 1.11.9: * Add-ons client: diff --git a/src/editor/map/context_manager.cpp b/src/editor/map/context_manager.cpp index 8b6c1af8c3d..56cf2039325 100644 --- a/src/editor/map/context_manager.cpp +++ b/src/editor/map/context_manager.cpp @@ -563,11 +563,13 @@ void context_manager::save_map_as_dialog() input_name = default_dir_ + "/maps"; } const std::string old_input_name = input_name; - + std::string untitled_str = _("Untitled"); + untitled_str += ".map"; + int overwrite_res = 1; do { input_name = old_input_name; - int res = dialogs::show_file_chooser_dialog_save(gui_, input_name, _("Save the Map As")); + int res = dialogs::show_file_chooser_dialog_save(gui_, input_name, _("Save the Map As"), untitled_str); if (res == 0) { if (file_exists(input_name)) { res = gui2::show_message(gui_.video(), "", @@ -591,11 +593,13 @@ void context_manager::save_scenario_as_dialog() input_name = default_dir_ + "/scenarios"; } const std::string old_input_name = input_name; + std::string untitled_str = _("Untitled"); + untitled_str += ".scenario"; int overwrite_res = 1; do { input_name = old_input_name; - int res = dialogs::show_file_chooser_dialog_save(gui_, input_name, _("Save the Scenario As")); + int res = dialogs::show_file_chooser_dialog_save(gui_, input_name, _("Save the Scenario As"), untitled_str); if (res == 0) { if (file_exists(input_name)) { res = gui2::show_message(gui_.video(), "", diff --git a/src/filechooser.cpp b/src/filechooser.cpp index f19027d4da5..71acbbda7f3 100644 --- a/src/filechooser.cpp +++ b/src/filechooser.cpp @@ -32,7 +32,7 @@ int show_file_chooser_dialog(display &disp, std::string &filename, const std::string& type_a_head, int xloc, int yloc) { - file_dialog d(disp, filename, title, show_directory_buttons); + file_dialog d(disp, filename, title, "", show_directory_buttons); if (!type_a_head.empty()) d.select_file(type_a_head); if(d.show(xloc, yloc) >= 0) { @@ -42,11 +42,13 @@ int show_file_chooser_dialog(display &disp, std::string &filename, } int show_file_chooser_dialog_save(display &disp, std::string &filename, - std::string const &title, bool show_directory_buttons, + std::string const &title, + const std::string& default_file_name, + bool show_directory_buttons, const std::string& type_a_head, int xloc, int yloc) { - file_dialog d(disp, filename, title, show_directory_buttons); + file_dialog d(disp, filename, title, default_file_name, show_directory_buttons); d.set_autocomplete(false); if (!type_a_head.empty()) d.select_file(type_a_head); @@ -57,7 +59,8 @@ int show_file_chooser_dialog_save(display &disp, std::string &filename, } file_dialog::file_dialog(display &disp, const std::string& file_path, - const std::string& title, bool show_directory_buttons) : + const std::string& title, const std::string& default_file_name, + bool show_directory_buttons) : gui::dialog(disp, title, file_path, gui::OK_CANCEL), show_directory_buttons_(show_directory_buttons), files_list_(NULL), @@ -72,6 +75,7 @@ file_dialog::file_dialog(display &disp, const std::string& file_path, files_list_->set_measurements(file_list_width, file_list_height); files_list_->set_max_height(file_list_height); set_menu(files_list_); + default_file_name_ = default_file_name; get_message().set_text(format_dirname(files_list_->get_directory())); set_textbox(_("File: "), format_filename(file_path), 100); if (show_directory_buttons_) @@ -124,7 +128,7 @@ std::string file_dialog::unformat_filename(const std::string& filename) const std::string file_dialog::format_filename(const std::string& filename) const { if(files_list_->is_directory(filename)) { - return ""; + return default_file_name_; } std::string::size_type last_delim = filename.find_last_of(gui::file_menu::path_delim); if(last_delim != std::string::npos) { diff --git a/src/filechooser.hpp b/src/filechooser.hpp index 42990737605..9a8fd1df5dc 100644 --- a/src/filechooser.hpp +++ b/src/filechooser.hpp @@ -29,7 +29,7 @@ namespace dialogs class file_dialog : public gui::dialog { public: - file_dialog(display &disp, const std::string& file_path, const std::string& title, bool show_directory_buttons); + file_dialog(display &disp, const std::string& file_path, const std::string& title, const std::string& default_file_name, bool show_directory_buttons); virtual gui::dialog::dimension_measurements layout(int xloc=-1, int yloc=-1); @@ -52,6 +52,7 @@ private: int last_selection_; std::string last_textbox_text_; std::string chosen_file_; + std::string default_file_name_; bool autocomplete_; }; @@ -68,7 +69,9 @@ int show_file_chooser_dialog(display &displ, std::string &filename, /// Show a filechooser dialog in a "save" mode, that is, without relying /// on autocomplete to allow saving under any filename int show_file_chooser_dialog_save(display &displ, std::string &filename, - std::string const &title, bool show_directory_buttons = true, + std::string const &title, + const std::string& default_file_name = "", + bool show_directory_buttons = true, const std::string& file_to_search = "", int xloc = -1, int yloc = -1); } // end of dialogs namespace diff --git a/src/menu_events.cpp b/src/menu_events.cpp index 5e2ce2ab860..2c72edcdf20 100644 --- a/src/menu_events.cpp +++ b/src/menu_events.cpp @@ -418,8 +418,10 @@ void menu_handler::save_map() std::string input_name = get_dir(get_dir(get_user_data_dir() + "/editor") + "/maps/"); int res = 0; int overwrite = 1; + std::string untitled_str = _("Untitled"); + untitled_str += ".map"; do { - res = dialogs::show_file_chooser_dialog_save(*gui_, input_name, _("Save the Map As")); + res = dialogs::show_file_chooser_dialog_save(*gui_, input_name, _("Save the Map As"), untitled_str); if (res == 0) { if (file_exists(input_name)) {