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

Reply via email to