From 8c11a0235e6ed4e3ed6370014cff3cd0322ed6c5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 31 Oct 2015 22:20:54 +0300 Subject: Add strong typed bool enum usebase64. --- src/CMakeLists.txt | 1 + src/Makefile.am | 1 + src/enums/simpletypes/usebase64.h | 28 ++++++++++++++++++++++++++++ src/gui/widgets/setupitem.cpp | 14 +++++++------- src/gui/widgets/setupitem.h | 9 +++++---- src/gui/widgets/tabs/setup_chat.cpp | 6 ++++-- src/gui/widgets/tabs/setup_other.cpp | 2 +- 7 files changed, 47 insertions(+), 14 deletions(-) create mode 100644 src/enums/simpletypes/usebase64.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c04351494..7032922e5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1131,6 +1131,7 @@ SET(SRCS enums/simpletypes/trading.h enums/simpletypes/tryremovecolors.h enums/simpletypes/useargs.h + enums/simpletypes/usebase64.h enums/simpletypes/useresman.h enums/simpletypes/visible.h statuseffect.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 8863d482b..d5695a327 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -594,6 +594,7 @@ SRC += events/actionevent.h \ enums/simpletypes/trading.h \ enums/simpletypes/tryremovecolors.h \ enums/simpletypes/useargs.h \ + enums/simpletypes/usebase64.h \ enums/simpletypes/useresman.h \ enums/simpletypes/visible.h \ render/surfacegraphics.cpp \ diff --git a/src/enums/simpletypes/usebase64.h b/src/enums/simpletypes/usebase64.h new file mode 100644 index 000000000..f66dda29a --- /dev/null +++ b/src/enums/simpletypes/usebase64.h @@ -0,0 +1,28 @@ +/* + * The ManaPlus Client + * Copyright (C) 2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef ENUMS_SIMPLETYPES_USEBASE64_H +#define ENUMS_SIMPLETYPES_USEBASE64_H + +#include "enums/simpletypes/booldefines.h" + +defBoolEnum(UseBase64); + +#endif // ENUMS_SIMPLETYPES_USEBASE64_H diff --git a/src/gui/widgets/setupitem.cpp b/src/gui/widgets/setupitem.cpp index c066c55eb..6e9e2bf96 100644 --- a/src/gui/widgets/setupitem.cpp +++ b/src/gui/widgets/setupitem.cpp @@ -275,7 +275,7 @@ SetupItemTextField::SetupItemTextField(const std::string &restrict text, SetupTabScroll *restrict const parent, const std::string &restrict eventName, const MainConfig mainConfig, - const bool useBase64) : + const UseBase64 useBase64) : SetupItem(text, description, keyName, parent, eventName, mainConfig), mHorizont(nullptr), mLabel(nullptr), @@ -295,7 +295,7 @@ SetupItemTextField::SetupItemTextField(const std::string &restrict text, const std::string &restrict eventName, const std::string &restrict def, const MainConfig mainConfig, - const bool useBase64) : + const UseBase64 useBase64) : SetupItem(text, description, keyName, parent, eventName, def, mainConfig), mHorizont(nullptr), mLabel(nullptr), @@ -319,7 +319,7 @@ SetupItemTextField::~SetupItemTextField() void SetupItemTextField::save() { - if (mUseBase64) + if (mUseBase64 == UseBase64_true) { std::string normalValue = mValue; mValue = encodeBase64String(mValue); @@ -335,7 +335,7 @@ void SetupItemTextField::save() void SetupItemTextField::cancel(const std::string &eventName A_UNUSED) { load(); - if (mUseBase64) + if (mUseBase64 == UseBase64_true) mValue = decodeBase64String(mValue); toWidget(); } @@ -343,7 +343,7 @@ void SetupItemTextField::cancel(const std::string &eventName A_UNUSED) void SetupItemTextField::externalUpdated(const std::string &eventName A_UNUSED) { load(); - if (mUseBase64) + if (mUseBase64 == UseBase64_true) mValue = decodeBase64String(mValue); toWidget(); } @@ -351,7 +351,7 @@ void SetupItemTextField::externalUpdated(const std::string &eventName A_UNUSED) void SetupItemTextField::rereadValue() { load(); - if (mUseBase64) + if (mUseBase64 == UseBase64_true) mValue = decodeBase64String(mValue); toWidget(); } @@ -359,7 +359,7 @@ void SetupItemTextField::rereadValue() void SetupItemTextField::createControls() { load(); - if (mUseBase64) + if (mUseBase64 == UseBase64_true) mValue = decodeBase64String(mValue); mHorizont = new HorizontContainer(this, 32, 2); diff --git a/src/gui/widgets/setupitem.h b/src/gui/widgets/setupitem.h index f1a2b9484..80b7658ba 100644 --- a/src/gui/widgets/setupitem.h +++ b/src/gui/widgets/setupitem.h @@ -22,6 +22,7 @@ #define GUI_WIDGETS_SETUPITEM_H #include "enums/simpletypes/mainconfig.h" +#include "enums/simpletypes/usebase64.h" #include "gui/widgets/widget2.h" @@ -187,7 +188,7 @@ class SetupItemTextField final : public SetupItem SetupTabScroll *restrict const parent, const std::string &restrict eventName, const MainConfig mainConfig = MainConfig_true, - const bool useBase64 = false); + const UseBase64 useBase64 = UseBase64_false); SetupItemTextField(const std::string &restrict text, const std::string &restrict description, @@ -196,7 +197,7 @@ class SetupItemTextField final : public SetupItem const std::string &restrict eventName, const std::string &restrict def, const MainConfig mainConfig = MainConfig_true, - const bool useBase64 = false); + const UseBase64 useBase64 = UseBase64_false); A_DELETE_COPY(SetupItemTextField) @@ -221,7 +222,7 @@ class SetupItemTextField final : public SetupItem void save() override final; - void setUseBase64(const bool b) + void setUseBase64(const UseBase64 b) { mUseBase64 = b; } protected: @@ -230,7 +231,7 @@ class SetupItemTextField final : public SetupItem TextField *mTextField; Button *mButton; EditDialog *mEditDialog; - bool mUseBase64; + UseBase64 mUseBase64; }; class SetupItemIntTextField final : public SetupItem diff --git a/src/gui/widgets/tabs/setup_chat.cpp b/src/gui/widgets/tabs/setup_chat.cpp index c82bc64d9..ce14d3ceb 100644 --- a/src/gui/widgets/tabs/setup_chat.cpp +++ b/src/gui/widgets/tabs/setup_chat.cpp @@ -213,7 +213,8 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) : new SetupItemCheckBox(_("Enable language tab"), _("If this feature enabled, language tab will appear if server " "supports this feature.\n\nNote: only supported by Evol server yet."), - "enableLangTab", this, "enableLangTabEvent", false); + "enableLangTab", this, "enableLangTabEvent", + MainConfig_false); // TRANSLATORS: settings option new SetupItemCheckBox(_("Show all languages messages"), @@ -221,7 +222,8 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) : "for different languages, you will see messages for all languages, " "regardless of your language preferences.\n\nNote: it only works " "on servers supporting language tabs feature, like Evol."), - "showAllLang", this, "showAllLangEvent", false); + "showAllLang", this, "showAllLangEvent", + MainConfig_false); // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable battle tab"), diff --git a/src/gui/widgets/tabs/setup_other.cpp b/src/gui/widgets/tabs/setup_other.cpp index 4a1fc1302..8a8705b38 100644 --- a/src/gui/widgets/tabs/setup_other.cpp +++ b/src/gui/widgets/tabs/setup_other.cpp @@ -410,7 +410,7 @@ Setup_Other::Setup_Other(const Widget2 *const widget) : new SetupItemTextField(_("Screenshot directory"), "", "screenshotDirectory3", this, "screenshotDirectory3Event", MainConfig_true, - true); + UseBase64_true); #endif // TRANSLATORS: settings option -- cgit v1.2.3-60-g2f50