From 25907c03212110f10c910b0ef90a416dff450ca7 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 18 Feb 2013 21:33:21 +0300 Subject: Add option to show/hide guild online messages. Disabled by default. --- src/net/ea/gui/guildtab.cpp | 10 ++++++++++ src/net/ea/gui/guildtab.h | 4 +++- src/net/ea/guildhandler.cpp | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) (limited to 'src/net') diff --git a/src/net/ea/gui/guildtab.cpp b/src/net/ea/gui/guildtab.cpp index ff433f606..b764a9f85 100644 --- a/src/net/ea/gui/guildtab.cpp +++ b/src/net/ea/gui/guildtab.cpp @@ -23,6 +23,7 @@ #include "net/ea/gui/guildtab.h" #include "chatlogger.h" +#include "configuration.h" #include "guild.h" #include "localplayer.h" #include "soundmanager.h" @@ -51,10 +52,13 @@ GuildTab::GuildTab(const Widget2 *const widget) : &getThemeColor(Theme::GUILD_CHAT_TAB_HIGHLIGHTED_OUTLINE)); setSelectedTabColor(&getThemeColor(Theme::GUILD_CHAT_TAB_SELECTED), &getThemeColor(Theme::GUILD_CHAT_TAB_SELECTED_OUTLINE)); + mShowOnline = config.getBoolValue("showGuildOnline"); + config.addListener("showGuildOnline", this); } GuildTab::~GuildTab() { + config.removeListeners(this); } bool GuildTab::handleCommand(const std::string &type, const std::string &args) @@ -155,4 +159,10 @@ void GuildTab::playNewMessageSound() sound.playGuiSound(SOUND_GUILD); } +void GuildTab::optionChanged(const std::string &value) +{ + if (value == "showGuildOnline") + mShowOnline = config.getBoolValue("showGuildOnline"); +} + } // namespace Ea diff --git a/src/net/ea/gui/guildtab.h b/src/net/ea/gui/guildtab.h index 020c6d7c9..d7b48f09f 100644 --- a/src/net/ea/gui/guildtab.h +++ b/src/net/ea/gui/guildtab.h @@ -31,7 +31,7 @@ namespace Ea /** * A tab for a guild chat channel. */ -class GuildTab : public ChatTab +class GuildTab : public ChatTab, public ConfigListener { public: GuildTab(const Widget2 *const widget); @@ -52,6 +52,8 @@ class GuildTab : public ChatTab void playNewMessageSound() override; + void optionChanged(const std::string &value) override; + protected: void handleInput(const std::string &msg) override; diff --git a/src/net/ea/guildhandler.cpp b/src/net/ea/guildhandler.cpp index 7c2592617..e9ec8c97d 100644 --- a/src/net/ea/guildhandler.cpp +++ b/src/net/ea/guildhandler.cpp @@ -149,7 +149,11 @@ void GuildHandler::processGuildMemberLogin(Net::MessageIn &msg) { GuildMember *const m = taGuild->getMember(accountId, charId); if (m) + { m->setOnline(online); + if (guildTab) + guildTab->showOnline(m->getName(), online); + } } } -- cgit v1.2.3-70-g09d2