From 44ef6547161dd3cd2e1bb4053bb5e8619e6dc0d0 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 4 Mar 2018 01:39:30 +0300 Subject: Add support for hightlight attribute in groups.xml This attribute allow to highlight gm groups based on groups.xml --- src/resources/db/groupdb.cpp | 14 ++++++++++++++ src/resources/db/groupdb.h | 1 + src/resources/groupinfo.cpp | 3 ++- src/resources/groupinfo.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) (limited to 'src/resources') diff --git a/src/resources/db/groupdb.cpp b/src/resources/db/groupdb.cpp index e09e773aa..1d1d1bffa 100644 --- a/src/resources/db/groupdb.cpp +++ b/src/resources/db/groupdb.cpp @@ -314,6 +314,9 @@ void GroupDb::loadXmlFile(const std::string &fileName, group->showBadge = XML::getBoolProperty(node, "showBadge", false); + group->highlightName = XML::getBoolProperty(node, + "highlightName", + false); loadSubNodes(node, id, group); parseInherit(node, id, group); } @@ -364,6 +367,17 @@ bool GroupDb::getShowBadge(const int id) return (*it).second->showBadge; } +bool GroupDb::getHighlightName(const int id) +{ + GroupInfos::const_iterator it = mGroups.find(id); + if (it == mGroups.end()) + { + reportAlways("Unknown group id requested: %d", id); + return mEmptyGroup.highlightName; + } + return (*it).second->highlightName; +} + const std::string &GroupDb::getBadge(const int id) { GroupInfos::const_iterator it = mGroups.find(id); diff --git a/src/resources/db/groupdb.h b/src/resources/db/groupdb.h index a8fd1dcf3..f447baa96 100644 --- a/src/resources/db/groupdb.h +++ b/src/resources/db/groupdb.h @@ -41,6 +41,7 @@ namespace GroupDb const std::string &getName(const int id) A_WARN_UNUSED; const std::string &getLongName(const int id) A_WARN_UNUSED; bool getShowBadge(const int id) A_WARN_UNUSED; + bool getHighlightName(const int id) A_WARN_UNUSED; const std::string &getBadge(const int id) A_WARN_UNUSED; const GroupInfo *getGroup(const int id) A_WARN_UNUSED RETURNS_NONNULL; diff --git a/src/resources/groupinfo.cpp b/src/resources/groupinfo.cpp index 1f0198723..e951330a3 100644 --- a/src/resources/groupinfo.cpp +++ b/src/resources/groupinfo.cpp @@ -28,7 +28,8 @@ GroupInfo::GroupInfo() : name(), longName(), badge(), - showBadge(false) + showBadge(false), + highlightName(false) { for (size_t f = 0; f < CAST_SIZE(ServerCommandType::Max); f ++) mCommands[f] = ServerCommandEnable::No; diff --git a/src/resources/groupinfo.h b/src/resources/groupinfo.h index 7ef72000f..1162b71e5 100644 --- a/src/resources/groupinfo.h +++ b/src/resources/groupinfo.h @@ -45,6 +45,7 @@ struct GroupInfo final std::string longName; std::string badge; bool showBadge; + bool highlightName; }; #endif // RESOURCES_GROUPINFO_H -- cgit v1.2.3-60-g2f50