#include <file_dialog.hpp>
Public Member Functions | |
file_dialog () | |
const std::string & | title () const |
Gets the current dialog title text. More... | |
file_dialog & | set_title (const std::string &value) |
Sets the current dialog title text. More... | |
const std::string & | message () const |
Gets the current dialog instructions/message text. More... | |
file_dialog & | set_message (const std::string &value) |
Sets the current dialog instructions/message text. More... | |
std::string | path () const |
Gets the current file selection. More... | |
file_dialog & | set_path (const std::string &value) |
Sets the initial file selection. More... | |
file_dialog & | set_filename (const std::string &value) |
Sets the initial file name input but not the path. More... | |
file_dialog & | set_extension (const std::string &value) |
Sets allowed file extensions for file names in save mode. More... | |
bool | read_only () const |
Whether user interface elements for manipulating existing objects are provided. More... | |
file_dialog & | set_read_only (bool value) |
Whether to provide user interface elements for manipulating existing objects. More... | |
bool | save_mode () const |
Returns whether save mode is enabled. More... | |
file_dialog & | set_save_mode (bool value) |
Sets the dialog's behavior on non-existent file name inputs. More... | |
file_dialog & | set_ok_label (const std::string &value) |
Sets the OK button label. More... | |
file_dialog & | add_extra_path (desktop::GAME_PATH_TYPES path) |
Public Member Functions inherited from gui2::dialogs::modal_dialog | |
modal_dialog (const std::string &window_id) | |
virtual | ~modal_dialog () |
bool | show (const unsigned auto_close_time=0) |
Shows the window. More... | |
int | get_retval () const |
Returns the cached window exit code. More... | |
void | set_always_save_fields (const bool always_save_fields) |
void | set_allow_plugin_skip (const bool allow_plugin_skip) |
void | set_show_even_without_video (const bool show_even_without_video) |
Public Member Functions inherited from gui2::window | |
window (const builder_window::window_resolution &definition) | |
< Needs to be initialized in show. More... | |
virtual | ~window () |
int | show (unsigned auto_close_timeout=0) |
Shows the window, running an event loop until it should close. More... | |
void | show_tooltip () |
Shows the window as a tooltip. More... | |
void | show_non_modal () |
Shows the window non modal. More... | |
void | draw () |
Draws the window. More... | |
void | hide () |
Hides the window. More... | |
virtual void | layout () override |
Lays out the window. More... | |
virtual void | render () override |
Ensure the window's internal render buffer is up-to-date. More... | |
virtual bool | expose (const rect ®ion) override |
Called by draw_manager when it believes a redraw is necessary. More... | |
virtual rect | screen_location () override |
The current draw location of the window, on the screen. More... | |
void | queue_rerender (const rect ®ion) |
Queue a rerender of the internal render buffer. More... | |
void | queue_rerender () |
void | defer_region (const rect ®ion) |
Defer rendering of a particular region to next frame. More... | |
void | close () |
Requests to close the window. More... | |
bool | invalidate_layout_blocked () const |
Is invalidate_layout blocked, see invalidate_layout_blocker. More... | |
void | invalidate_layout () |
Updates the size of the window. More... | |
virtual widget * | find_at (const point &coordinate, const bool must_be_active) override |
See widget::find_at. More... | |
virtual const widget * | find_at (const point &coordinate, const bool must_be_active) const override |
See widget::find_at. More... | |
dialogs::modal_dialog * | dialog () |
Inherited from widget. More... | |
widget * | find (const std::string_view id, const bool must_be_active) override |
See widget::find. More... | |
const widget * | find (const std::string_view id, const bool must_be_active) const override |
See widget::find. More... | |
bool | does_click_dismiss () const |
Does the window close easily? More... | |
void | set_enter_disabled (const bool enter_disabled) |
Disable the enter key. More... | |
void | set_escape_disabled (const bool escape_disabled) |
Disable the escape key. More... | |
void | init_linked_size_group (const std::string &id, const bool fixed_width, const bool fixed_height) |
Initializes a linked size group. More... | |
bool | has_linked_size_group (const std::string &id) |
Is the linked size group defined for this window? More... | |
void | add_linked_widget (const std::string &id, widget *widget) |
Adds a widget to a linked size group. More... | |
void | remove_linked_widget (const std::string &id, const widget *widget) |
Removes a widget from a linked size group. More... | |
void | set_retval (const int retval, const bool close_window=true) |
Sets there return value of the window. More... | |
int | get_retval () |
void | set_owner (dialogs::modal_dialog *owner) |
void | set_click_dismiss (const bool click_dismiss) |
bool | get_need_layout () const |
void | set_variable (const std::string &key, const wfl::variant &value) |
point | get_linked_size (const std::string &linked_group_id) const |
void | set_exit_hook (exit_hook mode, std::function< bool(window &)> func) |
Sets the window's exit hook. More... | |
const event::distributor & | get_distributor () const |
Gets a reference to the window's distributor to allow some state peeking. More... | |
show_mode | mode () const |
Returns the dialog mode for this window. More... | |
void | mouse_capture (const bool capture=true) |
void | keyboard_capture (widget *widget) |
void | add_to_keyboard_chain (widget *widget) |
Adds the widget to the keyboard chain. More... | |
void | remove_from_keyboard_chain (widget *widget) |
Remove the widget from the keyboard chain. More... | |
void | add_to_tab_order (widget *widget, int at=-1) |
Add the widget to the tabbing order. More... | |
Public Member Functions inherited from gui2::panel | |
panel (const implementation::builder_styled_widget &builder, const std::string &control_type="") | |
Constructor. More... | |
virtual SDL_Rect | get_client_rect () const override |
See container_base::get_client_rect. More... | |
virtual bool | get_active () const override |
See styled_widget::get_active. More... | |
virtual unsigned | get_state () const override |
See styled_widget::get_state. More... | |
Public Member Functions inherited from gui2::container_base | |
container_base (const implementation::builder_styled_widget &builder, const std::string &control_type) | |
virtual void | layout_initialize (const bool full_initialization) override |
See widget::layout_initialize. More... | |
void | reduce_width (const unsigned maximum_width) |
Tries to reduce the width of a container. More... | |
virtual void | request_reduce_width (const unsigned maximum_width) override |
See widget::request_reduce_width. More... | |
virtual void | demand_reduce_width (const unsigned maximum_width) override |
See widget::demand_reduce_width. More... | |
void | reduce_height (const unsigned maximum_height) |
Tries to reduce the height of a container. More... | |
virtual void | request_reduce_height (const unsigned maximum_height) override |
See widget::request_reduce_height. More... | |
virtual void | demand_reduce_height (const unsigned maximum_height) override |
See widget::demand_reduce_height. More... | |
virtual bool | can_wrap () const override |
See widget::can_wrap. More... | |
virtual void | place (const point &origin, const point &size) override |
See widget::place. More... | |
virtual bool | has_widget (const widget &widget) const override |
See widget::has_widget. More... | |
virtual void | set_origin (const point &origin) override |
See widget::set_origin. More... | |
virtual void | set_visible_rectangle (const SDL_Rect &rectangle) override |
See widget::set_visible_rectangle. More... | |
virtual void | impl_draw_children () override |
See widget::impl_draw_children. More... | |
virtual void | set_active (const bool active) override |
See styled_widget::set_active. More... | |
bool | disable_click_dismiss () const override |
See widget::disable_click_dismiss. More... | |
virtual iteration::walker_ptr | create_walker () override |
See widget::create_walker. More... | |
void | init_grid (const builder_grid &grid_builder) |
Initializes and builds the grid. More... | |
grid::iterator | begin () |
grid::iterator | end () |
unsigned | add_row (const unsigned count=1) |
void | set_rows (const unsigned rows) |
unsigned int | get_rows () const |
void | set_cols (const unsigned cols) |
unsigned int | get_cols () const |
void | set_rows_cols (const unsigned rows, const unsigned cols) |
void | set_child (std::unique_ptr< widget > widget, const unsigned row, const unsigned col, const unsigned flags, const unsigned border_size) |
void | set_row_grow_factor (const unsigned row, const unsigned factor) |
void | set_column_grow_factor (const unsigned column, const unsigned factor) |
const grid & | get_grid () const |
grid & | get_grid () |
Public Member Functions inherited from gui2::styled_widget | |
styled_widget (const implementation::builder_styled_widget &builder, const std::string &control_type) | |
Constructor. More... | |
virtual void | set_members (const widget_item &data) |
Sets the members of the styled_widget. More... | |
bool | disable_click_dismiss () const override |
See widget::disable_click_dismiss. More... | |
point | get_config_minimum_size () const |
Gets the minimum size as defined in the config. More... | |
point | get_config_default_size () const |
Gets the default size as defined in the config. More... | |
point | get_config_maximum_size () const |
Gets the best size as defined in the config. More... | |
virtual unsigned | get_characters_per_line () const |
Returns the number of characters per line. More... | |
virtual bool | get_link_aware () const |
Returns whether the label should be link_aware, in in rendering and in searching for links with get_link. More... | |
virtual color_t | get_link_color () const |
Returns the color string to be used with links. More... | |
bool | get_use_tooltip_on_label_overflow () const |
void | set_use_tooltip_on_label_overflow (const bool use_tooltip=true) |
const t_string & | get_label () const |
virtual void | set_label (const t_string &text) |
virtual void | set_use_markup (bool use_markup) |
bool | get_use_markup () const |
const t_string & | tooltip () const |
void | set_tooltip (const t_string &tooltip) |
const t_string & | help_message () const |
void | set_help_message (const t_string &help_message) |
std::vector< canvas > & | get_canvases () |
canvas & | get_canvas (const unsigned index) |
virtual void | set_text_alignment (const PangoAlignment text_alignment) |
PangoAlignment | get_text_alignment () const |
void | set_text_ellipse_mode (const PangoEllipsizeMode ellipse_mode) |
PangoEllipsizeMode | get_text_ellipse_mode () const |
Get the text's ellipsize mode. More... | |
void | set_text_maximum_width (int max_width) |
Set how wide the text can become. More... | |
Public Member Functions inherited from gui2::widget | |
widget (const widget &)=delete | |
widget & | operator= (const widget &)=delete |
widget () | |
widget (const builder_widget &builder) | |
Constructor. More... | |
virtual | ~widget () override |
void | set_id (const std::string &id) |
const std::string & | id () const |
window * | get_window () |
Get the parent window. More... | |
const window * | get_window () const |
The constant version of get_window. More... | |
grid * | get_parent_grid () |
Get the parent grid. More... | |
const grid * | get_parent_grid () const |
void | set_parent (widget *parent) |
widget * | parent () |
point | get_best_size () const |
Gets the best size for the widget. More... | |
virtual bool | can_mouse_focus () const |
Whether the mouse move/click event go 'through' this widget. More... | |
virtual void | set_size (const point &size) |
Sets the size of the widget. More... | |
virtual void | move (const int x_offset, const int y_offset) |
Moves a widget. More... | |
virtual void | set_horizontal_alignment (const std::string &alignment) |
Sets the horizontal alignment of the widget within its parent grid. More... | |
virtual void | set_vertical_alignment (const std::string &alignment) |
Sets the horizontal alignment of the widget within its parent grid. More... | |
point | get_origin () const |
Returns the screen origin of the widget. More... | |
point | get_size () const |
Returns the size of the widget. More... | |
rect | get_rectangle () const |
Gets the bounding rectangle of the widget on the screen. More... | |
int | get_x () const |
int | get_y () const |
unsigned | get_width () const |
unsigned | get_height () const |
void | set_linked_group (const std::string &linked_group) |
std::string | get_linked_group () const |
SDL_Rect | calculate_blitting_rectangle () const |
Calculates the blitting rectangle of the widget. More... | |
SDL_Rect | calculate_clipping_rectangle () const |
Calculates the clipping rectangle of the widget. More... | |
bool | draw_background () |
Draws the background of a widget. More... | |
void | draw_children () |
Draws the children of a widget. More... | |
bool | draw_foreground () |
Draws the foreground of the widget. More... | |
SDL_Rect | get_dirty_rectangle () const |
Gets the dirty rectangle of the widget. More... | |
void | queue_redraw () |
Indicates that this widget should be redrawn. More... | |
void | queue_redraw (const rect ®ion) |
Indicate that specific region of the screen should be redrawn. More... | |
void | set_visible (const visibility visible) |
visibility | get_visible () const |
void | set_visible (bool visible) |
Sets widget to visible if visible is true, else invisible. More... | |
void | set_hidden (bool hidden) |
Sets widget to visible if hidden is true, else hidden. More... | |
redraw_action | get_drawing_action () const |
void | set_debug_border_mode (const debug_border debug_border_mode) |
void | set_debug_border_color (const color_t debug_border_color) |
template<class T > | |
T * | find_widget (const std::string_view id, const bool must_be_active, const bool must_exist) |
Gets a widget with the wanted id. More... | |
template<class T > | |
const T * | find_widget (const std::string_view id, const bool must_be_active, const bool must_exist) const |
template<class T > | |
T & | find_widget (const std::string_view id, const bool must_be_active=false) |
Gets a widget with the wanted id. More... | |
template<class T > | |
const T & | find_widget (const std::string_view id, const bool must_be_active=false) const |
Public Member Functions inherited from gui2::event_executor | |
event_executor () | |
virtual | ~event_executor () |
void | set_wants_mouse_hover (const bool hover=true) |
bool | wants_mouse_hover () const |
void | set_wants_mouse_left_double_click (const bool click=true) |
bool | wants_mouse_left_double_click () const |
void | set_wants_mouse_middle_double_click (const bool click=true) |
bool | wants_mouse_middle_double_click () const |
event_executor & | set_wants_mouse_right_double_click (const bool click=true) |
bool | wants_mouse_right_double_click () const |
Public Member Functions inherited from gui2::event::dispatcher | |
dispatcher () | |
virtual | ~dispatcher () |
void | connect () |
Connects the dispatcher to the event handler. More... | |
void | disconnect () |
Disconnects the dispatcher from the event handler. More... | |
bool | is_connected () const |
Return whether the dispatcher is currently connected. More... | |
bool | has_event (const ui_event event, const event_queue_type event_type) |
bool | fire (const ui_event event, widget &target) |
Fires an event which has no extra parameters. More... | |
bool | fire (const ui_event event, widget &target, const point &coordinate) |
Fires an event which takes a coordinate parameter. More... | |
bool | fire (const ui_event event, widget &target, const SDL_Keycode key, const SDL_Keymod modifier, const std::string &unicode) |
Fires an event which takes keyboard parameters. More... | |
bool | fire (const ui_event event, widget &target, const point &pos, const point &distance) |
Fires an event which takes touch-motion parameters. More... | |
bool | fire (const ui_event event, widget &target, const point ¢er, float dTheta, float dDist, uint8_t numFingers) |
Fires an event which takes touch-gesture parameters. More... | |
bool | fire (const ui_event event, widget &target, void *) |
Fires an event which takes notification parameters. More... | |
bool | fire (const ui_event event, widget &target, const message &msg) |
Fires an event which takes message parameters. More... | |
bool | fire (const ui_event event, widget &target, const SDL_Event &sdlevent) |
Fires an event that's a raw SDL event. More... | |
bool | fire (const ui_event event, widget &target, const std::string &text, int32_t start, int32_t len) |
Fires an event which takes text input parameters. More... | |
template<ui_event E, typename F > | |
void | connect_signal (const F &func, const queue_position position=back_child) |
Adds a callback to the appropriate queue based on event type. More... | |
template<ui_event E, typename F > | |
void | disconnect_signal (const F &func, const queue_position position=back_child) |
Removes a callback from the appropriate queue based on event type. More... | |
void | capture_mouse () |
Captures the mouse. More... | |
void | release_mouse () |
Releases the mouse capture. More... | |
void | set_mouse_behavior (const mouse_behavior mouse_behavior) |
mouse_behavior | get_mouse_behavior () const |
void | set_want_keyboard_input (const bool want_keyboard_input) |
bool | get_want_keyboard_input () const |
void | register_hotkey (const hotkey::HOTKEY_COMMAND id, const hotkey_function &function) |
Registers a hotkey. More... | |
bool | execute_hotkey (const hotkey::HOTKEY_COMMAND id) |
Executes a hotkey. More... | |
Public Member Functions inherited from enable_lua_ptr< widget > | |
enable_lua_ptr (widget *tp) | |
Public Member Functions inherited from gui2::top_level_drawable | |
virtual void | update () |
Update state and any parameters that may effect layout, or any of the later stages. More... | |
Private Types | |
enum | SELECTION_TYPE { SELECTION_NOT_FOUND , SELECTION_PARENT_NOT_FOUND , SELECTION_IS_DIR , SELECTION_IS_FILE } |
Private Member Functions | |
virtual const std::string & | window_id () const override |
The ID of the window to build. More... | |
virtual void | pre_show () override |
Actions to be taken before showing the window. More... | |
bool | on_exit (window &window) |
Handles dialog exit events and decides whether to proceed or not. More... | |
void | on_row_selected () |
Handles file/directory selection on single-click. More... | |
void | on_bookmark_selected () |
Handles selection or deselection of bookmarks. More... | |
void | on_bookmark_add_cmd () |
Handles Add Bookmark button press events. More... | |
void | on_bookmark_del_cmd () |
Handles Remove Bookmark button press events. More... | |
void | on_dir_create_cmd () |
Handles New Folder button press events. More... | |
void | on_file_delete_cmd () |
Handles Delete button press events. More... | |
bool | process_fileview_submit () |
Processes file view selection in reaction to row double-click events. More... | |
bool | process_textbox_submit () |
Processes textbox input in reaction to OK button/Enter key events. More... | |
bool | process_submit_common (const std::string &name) |
void | check_filename () |
Check if the filename is valid and disable save button if invalid. More... | |
void | sync_bookmarks_bar () |
Updates the bookmarks bar state to reflect the internal state. More... | |
std::string | get_filelist_selection (class listbox &filelist) |
bool | is_selection_type_acceptable (SELECTION_TYPE stype) const |
Returns whether the given selection type is acceptable for closing the dialog. More... | |
bool | confirm_overwrite (SELECTION_TYPE stype) |
Prompts the user before overwriting an existing file. More... | |
SELECTION_TYPE | register_new_selection (const std::string &name) |
Updates the internal state and returns the type of the selection. More... | |
void | set_input_text (class text_box &t, const std::string &value) |
void | clear_input_text (class text_box &t) |
void | refresh_fileview () |
Updates the dialog contents to match the internal state. More... | |
void | push_fileview_row (class listbox &filelist, const std::string &name, const std::string &icon, bool check_selection=true) |
Row building helper for refresh_fileview(). More... | |
Private Attributes | |
std::string | title_ |
std::string | msg_ |
std::string | ok_label_ |
std::string | extension_ |
std::string | current_entry_ |
std::string | current_dir_ |
bool | read_only_ |
bool | save_mode_ |
std::vector< std::string > | extensions_ |
std::vector< std::string > | dir_files_ |
std::vector< std::string > | dir_subdirs_ |
std::vector< std::string > | bookmark_paths_ |
int | current_bookmark_ |
int | user_bookmarks_begin_ |
std::set< desktop::GAME_PATH_TYPES > | extra_paths_ |
Additional Inherited Members | |
Public Types inherited from gui2::window | |
enum class | status { NEW , SHOWING , REQUEST_CLOSE , CLOSED } |
The status of the window. More... | |
enum class | exit_hook { on_all , on_ok } |
enum class | show_mode { none , modal , modeless , tooltip } |
Public Types inherited from gui2::widget | |
enum class | visibility { visible , hidden , invisible } |
Visibility settings done by the user. More... | |
enum class | redraw_action { full , partly , none } |
Visibility set by the engine. More... | |
enum class | debug_border { none , outline , fill } |
Public Types inherited from gui2::event::dispatcher | |
enum | event_queue_type { pre = 1 , child = 2 , post = 4 } |
enum | queue_position { front_pre_child , back_pre_child , front_child , back_child , front_post_child , back_post_child } |
The position where to add a new callback in the signal handler. More... | |
enum class | mouse_behavior { all , hit , none } |
The behavior of the mouse events. More... | |
Static Public Member Functions inherited from gui2::window | |
static window * | window_instance (const unsigned handle) |
Returns the instance of a window. More... | |
static retval | get_retval_by_id (const std::string &id) |
Gets the retval for the default buttons. More... | |
static const std::string & | type () |
Static type getter that does not rely on the widget being constructed. More... | |
Static Public Member Functions inherited from gui2::panel | |
static const std::string & | type () |
Static type getter that does not rely on the widget being constructed. More... | |
Protected Member Functions inherited from gui2::dialogs::modal_dialog | |
template<typename T , typename... Args> | |
T * | register_field (Args &&... args) |
Creates a new field of given type with given arguments. More... | |
field_bool * | register_bool (const std::string &id, const bool mandatory, const std::function< bool()> &callback_load_value=nullptr, const std::function< void(bool)> &callback_save_value=nullptr, const std::function< void(widget &)> &callback_change=nullptr, const bool initial_fire=false) |
Creates a new boolean field. More... | |
field_bool * | register_bool (const std::string &id, const bool mandatory, bool &linked_variable, const std::function< void(widget &)> &callback_change=nullptr, const bool initial_fire=false) |
Creates a new boolean field. More... | |
field_integer * | register_integer (const std::string &id, const bool mandatory, const std::function< int()> &callback_load_value=nullptr, const std::function< void(int)> &callback_save_value=nullptr) |
Creates a new integer field. More... | |
field_integer * | register_integer (const std::string &id, const bool mandatory, int &linked_variable) |
Creates a new integer field. More... | |
field_text * | register_text (const std::string &id, const bool mandatory, const std::function< std::string()> &callback_load_value=nullptr, const std::function< void(const std::string &)> &callback_save_value=nullptr, const bool capture_focus=false) |
Creates a new text field. More... | |
field_text * | register_text (const std::string &id, const bool mandatory, std::string &linked_variable, const bool capture_focus=false) |
Creates a new text field. More... | |
field_label * | register_label (const std::string &id, const bool mandatory, const std::string &text, const bool use_markup=false) |
Registers a new styled_widget as a label. More... | |
field_label * | register_image (const std::string &id, const bool mandatory, const std::string &filename) |
Registers a new styled_widget as image. More... | |
Protected Member Functions inherited from gui2::container_base | |
virtual point | calculate_best_size () const override |
See widget::calculate_best_size. More... | |
virtual void | layout_children () override |
See widget::layout_children. More... | |
Protected Member Functions inherited from gui2::styled_widget | |
resolution_definition_ptr | get_config () |
resolution_definition_const_ptr | get_config () const |
template<typename T > | |
std::shared_ptr< const typename T::resolution > | cast_config_to () const |
Casts the current resolution definition config to the respective type of a derived widget. More... | |
void | set_config (resolution_definition_ptr config) |
virtual void | update_canvas () |
Updates the canvas(ses). More... | |
unsigned int | get_text_font_size () const |
Resolves and returns the text_font_size. More... | |
int | get_text_maximum_width () const |
Returns the maximum width available for the text. More... | |
int | get_text_maximum_height () const |
Returns the maximum height available for the text. More... | |
std::string | get_label_token (const point &position, const char *delimiters=" \n\r\t") const |
Exposes font::pango_text::get_token, for the text label of this styled_widget. More... | |
std::string | get_label_link (const point &position) const |
Protected Member Functions inherited from gui2::widget | |
void | set_layout_size (const point &size) |
const point & | layout_size () const |
void | clear_layout_size () |
Throws away layout_size_. More... | |
Protected Member Functions inherited from gui2::top_level_drawable | |
top_level_drawable () | |
virtual | ~top_level_drawable () |
top_level_drawable (const top_level_drawable &) | |
top_level_drawable & | operator= (const top_level_drawable &) |
top_level_drawable (top_level_drawable &&) | |
top_level_drawable & | operator= (top_level_drawable &&) |
Definition at line 43 of file file_dialog.hpp.
|
private |
Enumerator | |
---|---|
SELECTION_NOT_FOUND | |
SELECTION_PARENT_NOT_FOUND | |
SELECTION_IS_DIR | |
SELECTION_IS_FILE |
Definition at line 280 of file file_dialog.hpp.
gui2::dialogs::file_dialog::file_dialog | ( | ) |
Definition at line 103 of file file_dialog.cpp.
|
inline |
Definition at line 197 of file file_dialog.hpp.
References extra_paths_, and path().
Referenced by editor::context_manager::save_scenario_as_dialog().
|
private |
Check if the filename is valid and disable save button if invalid.
Definition at line 164 of file file_dialog.cpp.
References _(), extensions_, filename, gui2::text_box_base::get_value(), utils::join(), save_mode_, gui2::button::set_active(), gui2::styled_widget::set_label(), and VGETTEXT.
Referenced by pre_show(), and set_input_text().
|
private |
Definition at line 533 of file file_dialog.cpp.
References extension_, save_mode_, and t.
Referenced by on_row_selected(), and set_input_text().
|
private |
Prompts the user before overwriting an existing file.
This only makes sense in save mode.
Definition at line 359 of file file_dialog.cpp.
References _(), gui2::CANCEL, SELECTION_IS_FILE, gui2::show_message(), and gui2::dialogs::message::yes_no_buttons.
Referenced by process_submit_common().
|
private |
Definition at line 422 of file file_dialog.cpp.
References current_dir_, dir_files_, dir_subdirs_, gui2::listbox::get_selected_row(), filesystem::is_root(), and n.
Referenced by on_row_selected(), and process_fileview_submit().
|
private |
Returns whether the given selection type is acceptable for closing the dialog.
Definition at line 351 of file file_dialog.cpp.
References save_mode_, SELECTION_IS_DIR, SELECTION_IS_FILE, and SELECTION_PARENT_NOT_FOUND.
Referenced by process_submit_common().
|
inline |
Gets the current dialog instructions/message text.
Definition at line 68 of file file_dialog.hpp.
References msg_.
|
private |
Handles Add Bookmark button press events.
Definition at line 714 of file file_dialog.cpp.
References gui2::listbox::add_row(), desktop::add_user_bookmark(), filesystem::base_name(), bookmark_paths_, current_bookmark_, current_dir_, data, gui2::dialogs::bookmark_create::execute(), label, sync_bookmarks_bar(), and user_bookmarks_begin_.
Referenced by pre_show().
|
private |
Handles Remove Bookmark button press events.
Definition at line 748 of file file_dialog.cpp.
References bookmark_paths_, current_bookmark_, gui2::listbox::remove_row(), desktop::remove_user_bookmark(), sync_bookmarks_bar(), and user_bookmarks_begin_.
Referenced by pre_show().
|
private |
Handles selection or deselection of bookmarks.
Definition at line 684 of file file_dialog.cpp.
References bookmark_paths_, current_bookmark_, gui2::listbox::get_selected_row(), gui2::widget::get_window(), gui2::window::keyboard_capture(), refresh_fileview(), gui2::listbox::select_row(), gui2::button::set_active(), set_path(), and user_bookmarks_begin_.
Referenced by pre_show().
|
private |
Handles New Folder button press events.
Definition at line 765 of file file_dialog.cpp.
References current_dir_, filesystem::make_directory(), refresh_fileview(), gui2::show_transient_error_message(), and VGETTEXT.
Referenced by pre_show().
|
private |
Handles dialog exit events and decides whether to proceed or not.
Definition at line 329 of file file_dialog.cpp.
References gui2::window::get_retval(), gui2::OK, process_fileview_submit(), process_textbox_submit(), and gui2::window::set_retval().
Referenced by pre_show().
|
private |
Handles Delete button press events.
Definition at line 782 of file file_dialog.cpp.
References _(), gui2::CANCEL, current_dir_, current_entry_, filesystem::delete_directory(), filesystem::delete_file(), filesystem::is_directory(), refresh_fileview(), gui2::show_message(), gui2::show_transient_error_message(), VGETTEXT, and gui2::dialogs::message::yes_no_buttons.
Referenced by pre_show().
|
private |
Handles file/directory selection on single-click.
Definition at line 660 of file file_dialog.cpp.
References clear_input_text(), current_entry_, get_filelist_selection(), gui2::widget::get_window(), gui2::window::keyboard_capture(), gui2::button::set_active(), and set_input_text().
Referenced by pre_show(), and refresh_fileview().
std::string gui2::dialogs::file_dialog::path | ( | ) | const |
Gets the current file selection.
Definition at line 122 of file file_dialog.cpp.
References current_dir_, current_entry_, filesystem::directory_name(), and filesystem::normalize_path().
Referenced by add_extra_path(), editor::context_manager::apply_mask_dialog(), editor::context_manager::create_mask_to_dialog(), editor::editor_controller::do_execute_command(), editor::context_manager::load_map_dialog(), pre_show(), events::menu_handler::save_map(), editor::context_manager::save_map_as_dialog(), editor::context_manager::save_scenario_as_dialog(), gui2::dialogs::custom_tod::select_file(), gui2::dialogs::editor_edit_unit::select_file(), and gui2::dialogs::editor_edit_pbl::select_icon_file().
|
overrideprivatevirtual |
Actions to be taken before showing the window.
At this point the registered fields are registered and initialized with their initial values.
Reimplemented from gui2::dialogs::modal_dialog.
Definition at line 214 of file file_dialog.cpp.
References _(), gui2::listbox::add_row(), gui2::window::add_to_keyboard_chain(), bookmark_paths_, check_filename(), gui2::event::connect_signal_mouse_left_click(), gui2::event::connect_signal_notify_modified(), current_bookmark_, data, extra_paths_, desktop::GAME_CORE_DATA_DIR, desktop::game_paths(), desktop::GAME_USER_DATA_DIR, gui2::widget::invisible, gui2::window::keyboard_capture(), msg_, ok_label_, gui2::window::on_all, on_bookmark_add_cmd(), on_bookmark_del_cmd(), on_bookmark_selected(), on_dir_create_cmd(), on_exit(), on_file_delete_cmd(), on_row_selected(), desktop::open_object(), desktop::open_object_is_supported(), path(), read_only_, refresh_fileview(), save_mode_, gui2::button::set_active(), gui2::window::set_exit_hook(), gui2::styled_widget::set_label(), gui2::styled_widget::set_tooltip(), gui2::styled_widget::set_use_markup(), gui2::widget::set_visible(), sync_bookmarks_bar(), desktop::SYSTEM_ALL_DRIVES, desktop::system_paths(), desktop::SYSTEM_ROOTFS, desktop::SYSTEM_USER_PROFILE, title(), title_, desktop::user_bookmarks(), and user_bookmarks_begin_.
|
private |
Processes file view selection in reaction to row double-click events.
It takes care of synchronizing the state, browsing to the new selection, and/or displaying an error message if appropriate
Definition at line 408 of file file_dialog.cpp.
References get_filelist_selection(), and process_submit_common().
Referenced by on_exit().
|
private |
Definition at line 371 of file file_dialog.cpp.
References confirm_overwrite(), is_selection_type_acceptable(), refresh_fileview(), register_new_selection(), save_mode_, SELECTION_IS_DIR, SELECTION_IS_FILE, SELECTION_NOT_FOUND, SELECTION_PARENT_NOT_FOUND, gui2::show_transient_error_message(), sync_bookmarks_bar(), and VGETTEXT.
Referenced by process_fileview_submit(), and process_textbox_submit().
|
private |
Processes textbox input in reaction to OK button/Enter key events.
It takes care of synchronizing the state, browsing to the new selection, and/or displaying an error message if appropriate
Definition at line 415 of file file_dialog.cpp.
References gui2::text_box_base::get_value(), and process_submit_common().
Referenced by on_exit().
|
private |
Row building helper for refresh_fileview().
filelist | Target for adding the new row. |
name | Label, assumed to be a file name if check_selection = true. |
icon | Row icon. |
check_selection | Whether to set the row to selected if the current file name in the internal state matches the row's label/name. |
Definition at line 592 of file file_dialog.cpp.
References gui2::listbox::add_row(), current_entry_, data, utils::ellipsis_truncate(), gui2::widget::find_widget(), label, gui2::listbox::select_last_row(), and gui2::window::set_retval().
Referenced by refresh_fileview().
|
inline |
Whether user interface elements for manipulating existing objects are provided.
Definition at line 143 of file file_dialog.hpp.
References read_only_.
|
private |
Updates the dialog contents to match the internal state.
Definition at line 543 of file file_dialog.cpp.
References gui2::listbox::clear(), current_dir_, current_entry_, dir_files_, dir_subdirs_, filesystem::FILE_NAME_ONLY, filesystem::get_files_in_dir(), filesystem::is_root(), on_row_selected(), push_fileview_row(), gui2::listbox::select_row(), gui2::button::set_active(), set_input_text(), and cursor::WAIT.
Referenced by on_bookmark_selected(), on_dir_create_cmd(), on_file_delete_cmd(), pre_show(), and process_submit_common().
|
private |
Updates the internal state and returns the type of the selection.
If the given name refers to a non-existent object, the internal state is unchanged.
Definition at line 454 of file file_dialog.cpp.
References filesystem::base_name(), current_dir_, current_entry_, DBG_FILEDLG, filesystem::directory_name(), filesystem::file_exists(), filesystem::is_directory(), filesystem::is_relative(), filesystem::is_root(), filesystem::normalize_path(), filesystem::root_name(), SELECTION_IS_DIR, SELECTION_IS_FILE, SELECTION_NOT_FOUND, and SELECTION_PARENT_NOT_FOUND.
Referenced by process_submit_common().
|
inline |
Returns whether save mode is enabled.
See set_save_mode() for more information.
Definition at line 164 of file file_dialog.hpp.
References save_mode_.
|
inline |
Sets allowed file extensions for file names in save mode.
When this is set to a non-empty string and save mode is active, selecting file entries will cause their name portions to be highlighted in the name text box if their extensions match the provided template, and any time the text box is cleared it will position the cursor before the extension as a hint for the user. Additionally, the user will not be able to save the file with a wrong extension if this is set.
In case of multiple extension, the first set extension is the default.
The value provided to this method should be preceded by a dot if applicable (e.g. ".cfg").
Definition at line 131 of file file_dialog.hpp.
References extension_, and extensions_.
Referenced by events::menu_handler::save_map(), editor::context_manager::save_map_as_dialog(), and editor::context_manager::save_scenario_as_dialog().
file_dialog & gui2::dialogs::file_dialog::set_filename | ( | const std::string & | value | ) |
Sets the initial file name input but not the path.
The file name needs not exist in the initial path selected with set_path().
If this is used before set_path() and the path passed there points to a file, that file name will replace the one given here.
Definition at line 158 of file file_dialog.cpp.
References current_entry_.
Referenced by prefs::show_wesnothd_server_search().
|
private |
Definition at line 512 of file file_dialog.cpp.
References check_filename(), clear_input_text(), extension_, save_mode_, utf8::size(), and t.
Referenced by on_row_selected(), and refresh_fileview().
|
inline |
Sets the current dialog instructions/message text.
The message text may contain Pango markup.
Definition at line 78 of file file_dialog.hpp.
References msg_.
Referenced by prefs::show_wesnothd_server_search().
|
inline |
Sets the OK button label.
By default, "Save" is used when save_mode is enabled, and "Open" otherwise. Calling this method with an empty string will reset the label to the default.
Definition at line 191 of file file_dialog.hpp.
References ok_label_.
Referenced by gui2::dialogs::custom_tod::select_file(), gui2::dialogs::editor_edit_unit::select_file(), and prefs::show_wesnothd_server_search().
file_dialog & gui2::dialogs::file_dialog::set_path | ( | const std::string & | value | ) |
Sets the initial file selection.
If the path is found to refer to a file (more specifically, any non-directory object), that file is initially selected on the directory contents view and the file name box is set to contain its name. If the file does not exist, but the path leading up to it does, the directory contents view displays that path and there isn't an initial file selection or name set unless set_filename() is used first.
If you want to set an initial file name hint/template, use set_filename() after calling this method.
Definition at line 135 of file file_dialog.cpp.
References filesystem::base_name(), current_dir_, current_entry_, filesystem::is_directory(), filesystem::nearest_extant_parent(), and filesystem::normalize_path().
Referenced by editor::context_manager::apply_mask_dialog(), editor::context_manager::create_mask_to_dialog(), editor::editor_controller::do_execute_command(), editor::context_manager::load_map_dialog(), on_bookmark_selected(), events::menu_handler::save_map(), editor::context_manager::save_map_as_dialog(), editor::context_manager::save_scenario_as_dialog(), gui2::dialogs::custom_tod::select_file(), gui2::dialogs::editor_edit_unit::select_file(), gui2::dialogs::editor_edit_pbl::select_icon_file(), and prefs::show_wesnothd_server_search().
|
inline |
Whether to provide user interface elements for manipulating existing objects.
This is initially disabled.
Definition at line 153 of file file_dialog.hpp.
References read_only_.
Referenced by gui2::dialogs::custom_tod::select_file(), gui2::dialogs::editor_edit_unit::select_file(), and prefs::show_wesnothd_server_search().
|
inline |
Sets the dialog's behavior on non-existent file name inputs.
This is initially disabled.
When save mode is enabled, file names entered into the dialog by the user need not exist already (but their parent directories still do). Otherwise, the user is only able to select existing files.
Definition at line 178 of file file_dialog.hpp.
References save_mode_.
Referenced by events::menu_handler::save_map(), editor::context_manager::save_map_as_dialog(), and editor::context_manager::save_scenario_as_dialog().
|
inline |
Sets the current dialog title text.
Definition at line 59 of file file_dialog.hpp.
References title_.
Referenced by editor::context_manager::apply_mask_dialog(), editor::context_manager::create_mask_to_dialog(), editor::editor_controller::do_execute_command(), editor::context_manager::load_map_dialog(), events::menu_handler::save_map(), editor::context_manager::save_map_as_dialog(), editor::context_manager::save_scenario_as_dialog(), gui2::dialogs::custom_tod::select_file(), gui2::dialogs::editor_edit_unit::select_file(), gui2::dialogs::editor_edit_pbl::select_icon_file(), and prefs::show_wesnothd_server_search().
|
private |
Updates the bookmarks bar state to reflect the internal state.
Definition at line 619 of file file_dialog.cpp.
References bookmark_paths_, current_bookmark_, current_dir_, utils::find(), gui2::listbox::get_item_count(), filesystem::normalize_path(), gui2::listbox::select_row(), gui2::button::set_active(), and user_bookmarks_begin_.
Referenced by on_bookmark_add_cmd(), on_bookmark_del_cmd(), pre_show(), and process_submit_common().
|
inline |
Gets the current dialog title text.
Definition at line 51 of file file_dialog.hpp.
References title_.
Referenced by pre_show().
|
overrideprivatevirtual |
The ID of the window to build.
Usually set by REGISTER_DIALOG.
Implements gui2::dialogs::modal_dialog.
|
private |
Definition at line 220 of file file_dialog.hpp.
Referenced by on_bookmark_add_cmd(), on_bookmark_del_cmd(), on_bookmark_selected(), pre_show(), and sync_bookmarks_bar().
|
private |
Definition at line 221 of file file_dialog.hpp.
Referenced by on_bookmark_add_cmd(), on_bookmark_del_cmd(), on_bookmark_selected(), pre_show(), and sync_bookmarks_bar().
|
private |
Definition at line 210 of file file_dialog.hpp.
Referenced by get_filelist_selection(), on_bookmark_add_cmd(), on_dir_create_cmd(), on_file_delete_cmd(), path(), refresh_fileview(), register_new_selection(), set_path(), and sync_bookmarks_bar().
|
private |
Definition at line 209 of file file_dialog.hpp.
Referenced by on_file_delete_cmd(), on_row_selected(), path(), push_fileview_row(), refresh_fileview(), register_new_selection(), set_filename(), and set_path().
|
private |
Definition at line 217 of file file_dialog.hpp.
Referenced by get_filelist_selection(), and refresh_fileview().
|
private |
Definition at line 218 of file file_dialog.hpp.
Referenced by get_filelist_selection(), and refresh_fileview().
|
private |
Definition at line 208 of file file_dialog.hpp.
Referenced by clear_input_text(), set_extension(), and set_input_text().
|
private |
Definition at line 215 of file file_dialog.hpp.
Referenced by check_filename(), and set_extension().
|
private |
Definition at line 223 of file file_dialog.hpp.
Referenced by add_extra_path(), and pre_show().
|
private |
Definition at line 205 of file file_dialog.hpp.
Referenced by message(), pre_show(), and set_message().
|
private |
Definition at line 206 of file file_dialog.hpp.
Referenced by pre_show(), and set_ok_label().
|
private |
Definition at line 212 of file file_dialog.hpp.
Referenced by pre_show(), read_only(), and set_read_only().
|
private |
Definition at line 213 of file file_dialog.hpp.
Referenced by check_filename(), clear_input_text(), is_selection_type_acceptable(), pre_show(), process_submit_common(), save_mode(), set_input_text(), and set_save_mode().
|
private |
Definition at line 204 of file file_dialog.hpp.
Referenced by pre_show(), set_title(), and title().
|
private |
Definition at line 222 of file file_dialog.hpp.
Referenced by on_bookmark_add_cmd(), on_bookmark_del_cmd(), on_bookmark_selected(), pre_show(), and sync_bookmarks_bar().