summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/setup_chat.cpp3
-rw-r--r--src/gui/widgets/chattab.cpp15
-rw-r--r--src/gui/widgets/chattab.h4
-rw-r--r--src/gui/widgets/guildchattab.cpp10
-rw-r--r--src/gui/widgets/guildchattab.h4
5 files changed, 34 insertions, 2 deletions
diff --git a/src/gui/setup_chat.cpp b/src/gui/setup_chat.cpp
index c57160d7f..bb0ab0096 100644
--- a/src/gui/setup_chat.cpp
+++ b/src/gui/setup_chat.cpp
@@ -92,6 +92,9 @@ Setup_Chat::Setup_Chat(const Widget2 *const widget) :
new SetupItemCheckBox(_("Show chat history"), "",
"showChatHistory", this, "showChatHistoryEvent");
+ new SetupItemCheckBox(_("Show guild online messages"), "",
+ "showGuildOnline", this, "showGuildOnlineEvent");
+
new SetupItemLabel(_("Messages"), "", this);
diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp
index 0742e0ae2..fd336e116 100644
--- a/src/gui/widgets/chattab.cpp
+++ b/src/gui/widgets/chattab.cpp
@@ -55,7 +55,8 @@ ChatTab::ChatTab(const Widget2 *const widget, const std::string &name) :
mScrollArea(new ScrollArea(mTextOutput, false)),
mAllowHightlight(true),
mRemoveNames(false),
- mNoAway(false)
+ mNoAway(false),
+ mShowOnline(false)
{
setCaption(name);
@@ -506,3 +507,15 @@ void ChatTab::playNewMessageSound()
{
sound.playGuiSound(SOUND_WHISPER);
}
+
+void ChatTab::showOnline(const std::string &nick,
+ const bool isOnline)
+{
+ if (!mShowOnline)
+ return;
+
+ if (isOnline)
+ chatLog(strprintf(_("%s is now Online."), nick.c_str()));
+ else
+ chatLog(strprintf(_("%s is now Offline."), nick.c_str()));
+}
diff --git a/src/gui/widgets/chattab.h b/src/gui/widgets/chattab.h
index ae4ac3f01..0b3469458 100644
--- a/src/gui/widgets/chattab.h
+++ b/src/gui/widgets/chattab.h
@@ -165,6 +165,9 @@ class ChatTab : public Tab
void addNewRow(std::string &line);
+ void showOnline(const std::string &nick,
+ const bool isOnline);
+
virtual void playNewMessageSound();
protected:
@@ -190,6 +193,7 @@ class ChatTab : public Tab
bool mAllowHightlight;
bool mRemoveNames;
bool mNoAway;
+ bool mShowOnline;
};
extern ChatTab *localChatTab;
diff --git a/src/gui/widgets/guildchattab.cpp b/src/gui/widgets/guildchattab.cpp
index 79907b4c3..c960b4798 100644
--- a/src/gui/widgets/guildchattab.cpp
+++ b/src/gui/widgets/guildchattab.cpp
@@ -23,6 +23,7 @@
#include "gui/widgets/guildchattab.h"
#include "chatlogger.h"
+#include "configuration.h"
#include "guild.h"
#include "guildmanager.h"
#include "localplayer.h"
@@ -44,10 +45,13 @@ GuildChatTab::GuildChatTab(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);
}
GuildChatTab::~GuildChatTab()
{
+ config.removeListeners(this);
}
bool GuildChatTab::handleCommand(const std::string &type,
@@ -132,3 +136,9 @@ void GuildChatTab::playNewMessageSound()
{
sound.playGuiSound(SOUND_GUILD);
}
+
+void GuildChatTab::optionChanged(const std::string &value)
+{
+ if (value == "showGuildOnline")
+ mShowOnline = config.getBoolValue("showGuildOnline");
+}
diff --git a/src/gui/widgets/guildchattab.h b/src/gui/widgets/guildchattab.h
index 91baf6973..c1605495d 100644
--- a/src/gui/widgets/guildchattab.h
+++ b/src/gui/widgets/guildchattab.h
@@ -28,7 +28,7 @@
/**
* A tab for a guild chat channel.
*/
-class GuildChatTab final : public ChatTab
+class GuildChatTab final : public ChatTab, public ConfigListener
{
public:
GuildChatTab(const Widget2 *const widget);
@@ -49,6 +49,8 @@ class GuildChatTab final : public ChatTab
void playNewMessageSound() override;
+ void optionChanged(const std::string &value) override;
+
protected:
void handleInput(const std::string &msg) override;