Author: mordante
Date: Sun Mar 13 08:49:19 2011
New Revision: 48871
URL: http://svn.gna.org/viewcvs/wesnoth?rev=48871&view=rev
Log:
Polish the tgame_delete class.
- Only use register_xxx functions for the functionality.
- Add a static execute function.
- Also reduces the amount of code duplication at the caller site.
Modified:
trunk/src/gui/dialogs/data_manage.cpp
trunk/src/gui/dialogs/game_delete.cpp
trunk/src/gui/dialogs/game_delete.hpp
trunk/src/gui/dialogs/game_load.cpp
Modified: trunk/src/gui/dialogs/data_manage.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/dialogs/data_manage.cpp?rev=48871&r1=48870&r2=48871&view=diff
==============================================================================
--- trunk/src/gui/dialogs/data_manage.cpp (original)
+++ trunk/src/gui/dialogs/data_manage.cpp Sun Mar 13 08:49:19 2011
@@ -173,15 +173,8 @@
// See if we should ask the user for deletion confirmation
if(preferences::ask_delete_saves()) {
- gui2::tgame_delete dlg_delete;
- dlg_delete.show(window.video(), 0);
- int res = dlg_delete.get_retval();
-
- if (res == twindow::CANCEL)
+ if(!gui2::tgame_delete::execute(window.video())) {
return;
-
- if (dlg_delete.dont_ask_again()) {
- preferences::set_ask_delete_saves(false);
}
}
Modified: trunk/src/gui/dialogs/game_delete.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/dialogs/game_delete.cpp?rev=48871&r1=48870&r2=48871&view=diff
==============================================================================
--- trunk/src/gui/dialogs/game_delete.cpp (original)
+++ trunk/src/gui/dialogs/game_delete.cpp Sun Mar 13 08:49:19 2011
@@ -13,8 +13,9 @@
See the COPYING file for more details.
*/
-#include "gui/dialogs/field.hpp"
#include "gui/dialogs/game_delete.hpp"
+
+#include "game_preferences.hpp"
#include "gui/widgets/settings.hpp"
namespace gui2 {
@@ -37,14 +38,32 @@
REGISTER_DIALOG(game_delete)
+/**
+ * Helper to invert @ref !preferences::ask_delete_saves.
+ *
+ * The value stored and the way shown is inverted.
+ */
+static bool get_dont_ask_again()
+{
+ return !preferences::ask_delete_saves();
+}
+
+/**
+ * Helper to invert @ref !preferences::set_ask_delete_saves.
+ *
+ * The value stored and the way shown is inverted.
+ */
+static void set_dont_ask_again(const bool ask_again)
+{
+ preferences::set_ask_delete_saves(!ask_again);
+}
+
tgame_delete::tgame_delete()
- : chk_dont_ask_again_(register_bool("dont_ask_again"))
- , dont_ask_again_(false)
-{}
-
-void tgame_delete::post_show(twindow& window)
{
- dont_ask_again_ = chk_dont_ask_again_->get_widget_value(window);
+ register_bool("dont_ask_again"
+ , false
+ , &get_dont_ask_again
+ , &set_dont_ask_again);
}
} // namespace gui2
Modified: trunk/src/gui/dialogs/game_delete.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/dialogs/game_delete.hpp?rev=48871&r1=48870&r2=48871&view=diff
==============================================================================
--- trunk/src/gui/dialogs/game_delete.hpp (original)
+++ trunk/src/gui/dialogs/game_delete.hpp Sun Mar 13 08:49:19 2011
@@ -24,20 +24,19 @@
: public tdialog
{
public:
+
tgame_delete();
- bool dont_ask_again() const { return dont_ask_again_; }
+ /** The excute function see @ref tdialog for more information. */
+ static bool execute(CVideo& video)
+ {
+ return tgame_delete().show(video);
+ }
private:
- /** Inherited from tdialog. */
- void post_show(twindow& window);
-
/** Inherited from tdialog, implemented by REGISTER_DIALOG. */
virtual const std::string& window_id() const;
-
- tfield_bool* chk_dont_ask_again_;
- bool dont_ask_again_;
};
}
Modified: trunk/src/gui/dialogs/game_load.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/dialogs/game_load.cpp?rev=48871&r1=48870&r2=48871&view=diff
==============================================================================
--- trunk/src/gui/dialogs/game_load.cpp (original)
+++ trunk/src/gui/dialogs/game_load.cpp Sun Mar 13 08:49:19 2011
@@ -333,15 +333,8 @@
// See if we should ask the user for deletion confirmation
if(preferences::ask_delete_saves()) {
- gui2::tgame_delete dlg_delete;
- dlg_delete.show(window.video(), 0);
- int res = dlg_delete.get_retval();
-
- if (res == twindow::CANCEL)
+ if(!gui2::tgame_delete::execute(window.video())) {
return;
-
- if (dlg_delete.dont_ask_again()) {
- preferences::set_ask_delete_saves(false);
}
}
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits