Skip to content

Commit

Permalink
GUI2: made use of the great unique_ptr in a few places
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/gui/core/event/handler.cpp
  • Loading branch information
Vultraz committed Jul 30, 2017
1 parent 2416f10 commit 813c0a5
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 28 deletions.
7 changes: 3 additions & 4 deletions src/gui/core/event/handler.cpp
Expand Up @@ -58,7 +58,7 @@ namespace event
{

/***** Static data. *****/
static class sdl_event_handler* handler_ = nullptr;
static std::unique_ptr<class sdl_event_handler> handler_ = nullptr;
static events::event_context* event_context = nullptr;

#ifdef MAIN_EVENT_HANDLER
Expand Down Expand Up @@ -792,7 +792,7 @@ void sdl_event_handler::keyboard(const ui_event event)

manager::manager()
{
handler_ = new sdl_event_handler();
handler_.reset(new sdl_event_handler());

#ifdef MAIN_EVENT_HANDLER
draw_interval = 30;
Expand All @@ -805,8 +805,7 @@ manager::manager()

manager::~manager()
{
delete handler_;
handler_ = nullptr;
handler_.reset(nullptr);

#ifdef MAIN_EVENT_HANDLER
draw_interval = 0;
Expand Down
32 changes: 19 additions & 13 deletions src/gui/dialogs/modal_dialog.cpp
Expand Up @@ -26,13 +26,19 @@ namespace gui2
{
namespace dialogs
{
modal_dialog::modal_dialog()
: retval_(0)
, always_save_fields_(false)
, fields_()
, focus_()
, restore_(false)
, allow_plugin_skip_(true)
, show_even_without_video_(false)
{
}

modal_dialog::~modal_dialog()
{
for(auto field : fields_)
{
delete field;
}
}

bool modal_dialog::show(CVideo& video, const unsigned auto_close_time)
Expand Down Expand Up @@ -110,7 +116,7 @@ field_bool* modal_dialog::register_bool(
callback_change,
initial_fire);

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -124,7 +130,7 @@ modal_dialog::register_bool(const std::string& id,
field_bool* field
= new field_bool(id, mandatory, linked_variable, callback_change, initial_fire);

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -137,7 +143,7 @@ field_integer* modal_dialog::register_integer(
field_integer* field = new field_integer(
id, mandatory, callback_load_value, callback_save_value);

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -147,7 +153,7 @@ field_integer* modal_dialog::register_integer(const std::string& id,
{
field_integer* field = new field_integer(id, mandatory, linked_variable);

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -165,7 +171,7 @@ field_text* modal_dialog::register_text(
focus_ = id;
}

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -180,7 +186,7 @@ field_text* modal_dialog::register_text(const std::string& id,
focus_ = id;
}

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -191,7 +197,7 @@ field_label* modal_dialog::register_label(const std::string& id,
{
field_label* field = new field_label(id, mandatory, text, use_markup);

fields_.push_back(field);
fields_.emplace_back(field);
return field;
}

Expand All @@ -217,7 +223,7 @@ void modal_dialog::post_show(window& /*window*/)

void modal_dialog::init_fields(window& window)
{
for(auto field : fields_)
for(auto& field : fields_)
{
field->attach_to_window(window);
field->widget_init(window);
Expand All @@ -232,7 +238,7 @@ void modal_dialog::init_fields(window& window)

void modal_dialog::finalize_fields(window& window, const bool save_fields)
{
for(auto field : fields_)
for(auto& field : fields_)
{
if(save_fields) {
field->widget_finalize(window);
Expand Down
13 changes: 2 additions & 11 deletions src/gui/dialogs/modal_dialog.hpp
Expand Up @@ -130,16 +130,7 @@ class modal_dialog
friend std::string unit_test_mark_as_tested(const modal_dialog& dialog);

public:
modal_dialog()
: retval_(0)
, always_save_fields_(false)
, fields_()
, focus_()
, restore_(false)
, allow_plugin_skip_(true)
, show_even_without_video_(false)
{
}
modal_dialog();

virtual ~modal_dialog();

Expand Down Expand Up @@ -328,7 +319,7 @@ class modal_dialog
* functions defined we don't offer access to the vector. If access is
* needed the creator should store a copy of the pointer.
*/
std::vector<field_base*> fields_;
std::vector<std::unique_ptr<class field_base>> fields_;

/**
* Contains the widget that should get the focus when the window is shown.
Expand Down

0 comments on commit 813c0a5

Please sign in to comment.