From 84b6217136c8d59347ab9f28ec5e9e4d718d5058 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sun, 5 Apr 2015 16:42:33 +0300
Subject: Show chat room name in player popup.

---
 src/gui/popups/beingpopup.cpp | 45 ++++++++++++++++++++++++++++++++++++++-----
 src/gui/popups/beingpopup.h   |  1 +
 2 files changed, 41 insertions(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/gui/popups/beingpopup.cpp b/src/gui/popups/beingpopup.cpp
index 5fc0fc6c5..f0a8868f4 100644
--- a/src/gui/popups/beingpopup.cpp
+++ b/src/gui/popups/beingpopup.cpp
@@ -33,6 +33,8 @@
 
 #include "gui/widgets/label.h"
 
+#include "resources/chatobject.h"
+
 #include "utils/gettext.h"
 #include "utils/stringutils.h"
 
@@ -48,7 +50,8 @@ BeingPopup::BeingPopup() :
     mBeingRank(new Label(this, "A")),
     mBeingComment(new Label(this, "A")),
     mBeingBuyBoard(new Label(this, "A")),
-    mBeingSellBoard(new Label(this, "A"))
+    mBeingSellBoard(new Label(this, "A")),
+    mBeingRoom(new Label(this, "A"))
 {
     // Being Name
     mBeingName->setFont(boldFont);
@@ -65,6 +68,7 @@ BeingPopup::BeingPopup() :
     mBeingBuyBoard->setPosition(0, 4 * fontHeight);
     mBeingSellBoard->setPosition(0, 4 * fontHeight);
     mBeingComment->setPosition(0, 5 * fontHeight);
+    mBeingRoom->setPosition(0, 6 * fontHeight);
 
     mBeingParty->setForegroundColorAll(getThemeColor(Theme::POPUP),
         getThemeColor(Theme::POPUP_OUTLINE));
@@ -78,6 +82,8 @@ BeingPopup::BeingPopup() :
         getThemeColor(Theme::POPUP_OUTLINE));
     mBeingComment->setForegroundColorAll(getThemeColor(Theme::POPUP),
         getThemeColor(Theme::POPUP_OUTLINE));
+    mBeingRoom->setForegroundColorAll(getThemeColor(Theme::POPUP),
+        getThemeColor(Theme::POPUP_OUTLINE));
 }
 
 BeingPopup::~BeingPopup()
@@ -93,6 +99,7 @@ void BeingPopup::postInit()
     add(mBeingComment);
     add(mBeingBuyBoard);
     add(mBeingSellBoard);
+    add(mBeingRoom);
 }
 
 void BeingPopup::show(const int x, const int y, Being *const b)
@@ -109,6 +116,7 @@ void BeingPopup::show(const int x, const int y, Being *const b)
     Label *label4 = mBeingBuyBoard;
     Label *label5 = mBeingSellBoard;
     Label *label6 = mBeingComment;
+    Label *label7 = mBeingRoom;
 
     b->updateComment();
 
@@ -145,6 +153,7 @@ void BeingPopup::show(const int x, const int y, Being *const b)
     label4->setCaption("");
     label5->setCaption("");
     label6->setCaption("");
+    label7->setCaption("");
 
 #ifdef EATHENA_SUPPORT
     const ActorType::Type type = b->getType();
@@ -165,6 +174,7 @@ void BeingPopup::show(const int x, const int y, Being *const b)
             label4 = nullptr;
             label5 = nullptr;
             label6 = nullptr;
+            label7 = nullptr;
         }
     }
     else if (type == ActorType::Homunculus)
@@ -184,6 +194,7 @@ void BeingPopup::show(const int x, const int y, Being *const b)
             label4 = nullptr;
             label5 = nullptr;
             label6 = nullptr;
+            label7 = nullptr;
         }
     }
     else
@@ -198,7 +209,8 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         }
         else
         {
-            label6 = label4;
+            label7 = label6;
+            label6 = label5;
             label5 = label4;
             label4 = label3;
             label3 = label2;
@@ -215,7 +227,8 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         }
         else
         {
-            label6 = label4;
+            label7 = label6;
+            label6 = label5;
             label5 = label4;
             label4 = label3;
             label3 = label2;
@@ -231,7 +244,8 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         }
         else
         {
-            label6 = label4;
+            label7 = label6;
+            label6 = label5;
             label5 = label4;
             label4 = label3;
             label3 = nullptr;
@@ -246,7 +260,8 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         }
         else
         {
-            label6 = label4;
+            label7 = label6;
+            label6 = label5;
             label5 = label4;
             label4 = nullptr;
         }
@@ -260,6 +275,7 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         }
         else
         {
+            label7 = label6;
             label6 = label5;
             label5 = nullptr;
         }
@@ -273,8 +289,23 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         }
         else
         {
+            label7 = label6;
             label6 = nullptr;
         }
+#ifdef EATHENA_SUPPORT
+        const ChatObject *const chat = b->getChat();
+        if (chat)
+        {
+            // TRANSLATORS: being popup label
+            label7->setCaption(strprintf(_("Chat room: %s"),
+                chat->title.c_str()));
+            label7->adjustSize();
+        }
+        else
+        {
+            label7 = nullptr;
+        }
+#endif
     }
 
     int minWidth = mBeingName->getWidth();
@@ -290,6 +321,8 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         minWidth = label5->getWidth();
     if (label6 && label6->getWidth() > minWidth)
         minWidth = label6->getWidth();
+    if (label7 && label7->getWidth() > minWidth)
+        minWidth = label7->getWidth();
 
     const int height1 = getFont()->getHeight();
     int height = height1;
@@ -305,6 +338,8 @@ void BeingPopup::show(const int x, const int y, Being *const b)
         height += height1;
     if (label6)
         height += height1;
+    if (label7)
+        height += height1;
 
     setContentSize(minWidth, height);
     position(x, y);
diff --git a/src/gui/popups/beingpopup.h b/src/gui/popups/beingpopup.h
index 6203b5ef7..eba961063 100644
--- a/src/gui/popups/beingpopup.h
+++ b/src/gui/popups/beingpopup.h
@@ -64,6 +64,7 @@ class BeingPopup final : public Popup
         Label *mBeingComment;
         Label *mBeingBuyBoard;
         Label *mBeingSellBoard;
+        Label *mBeingRoom;
 };
 
 extern BeingPopup *beingPopup;
-- 
cgit v1.2.3-70-g09d2