Remove old junk from FSFloaterNearbyChat and replace it with a nice options menu with more or less useful options to start with

meow-7.2.2
Ansariel 2015-11-12 15:48:24 +01:00
parent 3cb5b4994e
commit 4bc01a9965
9 changed files with 151 additions and 41 deletions

View File

@ -90,6 +90,9 @@ FSFloaterNearbyChat::FSFloaterNearbyChat(const LLSD& key)
,mUnreadMessages(0)
,mUnreadMessagesMuted(0)
{
//menu
mEnableCallbackRegistrar.add("ChatOptions.Check", boost::bind(&FSFloaterNearbyChat::onChatOptionsCheckContextMenuItem, this, _2));
mCommitCallbackRegistrar.add("ChatOptions.Action", boost::bind(&FSFloaterNearbyChat::onChatOptionsContextMenuItemClicked, this, _2));
}
FSFloaterNearbyChat::~FSFloaterNearbyChat()
@ -115,21 +118,6 @@ void FSFloaterNearbyChat::updateFSUseNearbyChatConsole(const LLSD &data)
BOOL FSFloaterNearbyChat::postBuild()
{
setIsSingleInstance(TRUE);
//menu
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
enable_registrar.add("NearbyChat.Check", boost::bind(&FSFloaterNearbyChat::onNearbyChatCheckContextMenuItem, this, _2));
registrar.add("NearbyChat.Action", boost::bind(&FSFloaterNearbyChat::onNearbyChatContextMenuItemClicked, this, _2));
LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_nearby_chat.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
if (menu)
{
mPopupMenuHandle = menu->getHandle();
}
gSavedSettings.declareS32("nearbychat_showicons_and_names", 2, "NearByChat header settings");
mInputEditor = getChild<LLChatEntry>("chat_box");
mInputEditor->setAutoreplaceCallback(boost::bind(&LLAutoReplace::autoreplaceCallback, LLAutoReplace::getInstance(), _1, _2, _3, _4, _5));
@ -302,13 +290,6 @@ BOOL FSFloaterNearbyChat::focusFirstItem(BOOL prefer_text_fields, BOOL focus_fla
return TRUE;
}
void FSFloaterNearbyChat::onNearbySpeakers()
{
LLSD param;
param["people_panel_tab_name"] = "nearby_panel";
LLFloaterSidePanelContainer::showPanel("people", "panel_people", param);
}
void FSFloaterNearbyChat::onHistoryButtonClicked()
{
if (gSavedSettings.getBOOL("FSUseBuiltInHistory"))
@ -321,17 +302,48 @@ void FSFloaterNearbyChat::onHistoryButtonClicked()
}
}
void FSFloaterNearbyChat::onNearbyChatContextMenuItemClicked(const LLSD& userdata)
void FSFloaterNearbyChat::onChatOptionsContextMenuItemClicked(const LLSD& userdata)
{
std::string option = userdata.asString();
if (option == "blocklist")
{
if (gSavedSettings.getBOOL("FSUseStandaloneBlocklistFloater"))
{
LLFloaterReg::toggleInstance("fs_blocklist");
}
else
{
LLPanel* panel = LLFloaterSidePanelContainer::getPanel("people", "panel_people");
if (!panel)
{
return;
}
if (panel->isInVisibleChain())
{
LLFloaterReg::hideInstance("people");
}
else
{
LLFloaterSidePanelContainer::showPanel("people", "panel_people", LLSD().with("people_panel_tab_name", "blocked_panel"));
}
}
}
}
bool FSFloaterNearbyChat::onNearbyChatCheckContextMenuItem(const LLSD& userdata)
bool FSFloaterNearbyChat::onChatOptionsCheckContextMenuItem(const LLSD& userdata)
{
std::string str = userdata.asString();
if (str == "nearby_people")
std::string option = userdata.asString();
if (option == "blocklist")
{
onNearbySpeakers();
if (gSavedSettings.getBOOL("FSUseStandaloneBlocklistFloater"))
{
return LLFloaterReg::instanceVisible("fs_blocklist");
}
}
return false;
}

View File

@ -49,16 +49,16 @@ public:
FSFloaterNearbyChat(const LLSD& key);
~FSFloaterNearbyChat();
BOOL postBuild ();
BOOL postBuild();
/** @param archive true - to save a message to the chat history log */
void addMessage (const LLChat& message,bool archive = true, const LLSD &args = LLSD());
void onNearbyChatContextMenuItemClicked(const LLSD& userdata);
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
void addMessage(const LLChat& message,bool archive = true, const LLSD &args = LLSD());
void onChatOptionsContextMenuItemClicked(const LLSD& userdata);
bool onChatOptionsCheckContextMenuItem(const LLSD& userdata);
/*virtual*/ void onOpen (const LLSD& key);
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void setVisible(BOOL visible);
/*virtual*/ void setVisible(BOOL visible);
void openFloater(const LLSD& key);
void clearChatHistory();
@ -115,10 +115,6 @@ protected:
static S32 sLastSpecialChatChannel;
private:
void onNearbySpeakers();
private:
LLHandle<LLView> mPopupMenuHandle;
FSChatHistory* mChatHistory;
FSChatHistory* mChatHistoryMuted;
LLChatEntry* mInputEditor;

View File

@ -613,8 +613,6 @@ BOOL LLFloaterPreference::postBuild()
{
// <FS:Ansariel> [FS communication UI]
//gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLFloaterIMSessionTab::processChatHistoryStyleUpdate, false));
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&FSFloaterIM::processChatHistoryStyleUpdate, _2));
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&FSFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&FSFloaterIM::processChatHistoryStyleUpdate, _2));
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&FSFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
// </FS:Ansariel> [FS communication UI]

View File

@ -81,6 +81,8 @@
// Firestorm inclues
#include "fsfloatercontacts.h"
#include "fsfloaterim.h"
#include "fsfloaternearbychat.h"
#include "fsfloaterposestand.h"
#include "fsfloaterteleporthistory.h"
#include "fslslbridge.h"
@ -1024,6 +1026,10 @@ void settings_setup_listeners()
gSavedSettings.getControl("FSUseAzertyKeyboardLayout")->getCommitSignal()->connect(boost::bind(&handleKeyboardLayoutChanged, _2));
// <FS:Ansariel> [FS communication UI]
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&FSFloaterIM::processChatHistoryStyleUpdate, _2));
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&FSFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
gSavedSettings.getControl(RLV_SETTING_MAIN)->getSignal()->connect(boost::bind(&RlvSettings::onChangedSettingMain, _2));
}

View File

@ -13,6 +13,9 @@
<layout_panel name="lp_chat_history_muted_btn">
<button name="chat_history_muted_btn" tool_tip="Ignorierten Chat in Chat in der Nähe anzeigen"/>
</layout_panel>
<layout_panel name="lp_options_btn">
<button name="chat_options_btn" tool_tip="Optionen für Chat in der Nähe"/>
</layout_panel>
</layout_stack>
<layout_stack name="ls_chat">
<layout_panel name="panel_im_control_lp">

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<toggleable_menu name="NearBy Chat Menu">
<menu_item_check label="Radar anzeigen..." name="nearby_people"/>
<menu_item_check label="Stimmen in der Nähe anzeigen..." name="nearby_voice"/>
<menu_item_check label="Blockierliste anzeigen..." name="block_list"/>
<menu_item_check label="V1-Stil für Chatverlauf verwenden" name="plain_text_chat_history"/>
</toggleable_menu>

View File

@ -105,6 +105,29 @@
image_unselected="Toolbar_Middle_Off"
tool_tip="Shows the muted chat in nearby chat transcript."
name="chat_history_muted_btn"/>
</layout_panel>
<layout_panel
name="lp_options_btn"
auto_resize="false"
user_resize="false"
top="0"
layout="topleft"
height="20"
width="26"
follows="left|top">
<menu_button
menu_filename="menu_fs_nearby_chat.xml"
follows="left|top"
top="0"
width="24"
height="20"
left_delta="2"
image_overlay="Conv_toolbar_sort"
image_hover_unselected="Toolbar_Middle_Over"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
tool_tip="Nearby Chat Options"
name="chat_options_btn"/>
</layout_panel>
<layout_panel
name="lp_bar"

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<toggleable_menu name="NearBy Chat Menu" opaque="true" visible="false">
<menu_item_check
label="Show Radar..."
name="nearby_people">
<menu_item_check.on_click
function="Floater.Toggle"
userdata="fs_radar"/>
<menu_item_check.on_check
function="Floater.Visible"
userdata="fs_radar"/>
</menu_item_check>
<menu_item_check
label="Show Nearby Voice..."
name="nearby_voice">
<menu_item_check.on_click
function="Floater.Toggle"
userdata="fs_voice_controls"/>
<menu_item_check.on_check
function="Floater.Visible"
userdata="fs_voice_controls"/>
</menu_item_check>
<menu_item_check
label="Show Block List..."
name="block_list">
<menu_item_check.on_click
function="ChatOptions.Action"
userdata="blocklist"/>
<menu_item_check.on_check
function="ChatOptions.Check"
userdata="blocklist"/>
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Use V1 style chat headers"
name="plain_text_chat_history">
<menu_item_check.on_check
function="CheckControl"
parameter="PlainTextChatHistory" />
<menu_item_check.on_click
function="ToggleControl"
parameter="PlainTextChatHistory" />
</menu_item_check>
</toggleable_menu>

View File

@ -102,8 +102,29 @@
image_selected="PushButton_Selected_Press"
tool_tip="Shows the muted chat in nearby chat transcript."
name="chat_history_muted_btn">
</button>
</button>
</layout_panel>
<layout_panel
name="lp_options_btn"
auto_resize="false"
user_resize="false"
top="0"
layout="topleft"
height="26"
width="26"
follows="left|top">
<menu_button
menu_filename="menu_fs_nearby_chat.xml"
follows="left|top"
top="2"
width="24"
height="24"
image_overlay="Conv_toolbar_sort"
image_pressed="PushButton_Press"
image_pressed_selected="PushButton_Selected_Press"
image_selected="PushButton_Selected_Press"
tool_tip="Nearby Chat Options"
name="chat_options_btn"/>
</layout_panel>
</layout_stack>