diff --git a/indra/llui/llradiogroup.cpp b/indra/llui/llradiogroup.cpp index 5c715d3ff..b193c22b2 100644 --- a/indra/llui/llradiogroup.cpp +++ b/indra/llui/llradiogroup.cpp @@ -316,7 +316,8 @@ void LLRadioGroup::setValue( const LLSD& value ) } else { - llwarns << "LLRadioGroup::setValue: value not found: " << value_name << llendl; + llwarns << "LLRadioGroup::setValue: radio_item with name=\"" << value_name << "\" not found, radio_group values are set by radio_item name not value. Falling back on LLUICtrl::setValue." << llendl; + LLUICtrl::setValue(value); } } } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index d3d5f1dbf..34596542e 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -760,6 +760,50 @@ Found in Advanced->Rendering->Info Displays Value 1 + ContactsUseHorizontalButtons + + Comment + Whether or not groups and friends lists use horizontal buttons at the bottom of the panel or vertical ones on the right, requires a restart. + Persist + 1 + Type + Boolean + Value + 0 + + UseConciseIMButtons + + Comment + Whether or not IMs use buttons concisely on the same line as the name of the receiver, changes apply to new IMs only. + Persist + 1 + Type + Boolean + Value + 0 + + UseConciseGroupChatButtons + + Comment + Whether or not group chats use buttons concisely on the same line as the group name, changes apply to new group chats only. + Persist + 1 + Type + Boolean + Value + 0 + + UseConciseConferenceButtons + + Comment + Whether or not conferences use buttons concisely on the same line as the name of the conference, changes apply to new conferences only. + Persist + 1 + Type + Boolean + Value + 0 + ShowLocalChatFloaterBar Comment @@ -6182,7 +6226,23 @@ This should be as low as possible, but too low may break functionality FloaterContactsRect Comment - Rectangle for chat history + Rectangle for contacts floater + Persist + 1 + Type + Rect + Value + + 0 + 390 + 395 + 0 + + + FloaterContactsHorizRect + + Comment + Rectangle for contacts floater in horizontal mode Persist 1 Type diff --git a/indra/newview/ascentprefschat.cpp b/indra/newview/ascentprefschat.cpp index eab67ed86..dd8531965 100644 --- a/indra/newview/ascentprefschat.cpp +++ b/indra/newview/ascentprefschat.cpp @@ -325,11 +325,9 @@ void LLPrefsAscentChat::onCommitKeywords(LLUICtrl* ctrl, void* user_data) void LLPrefsAscentChat::refreshValues() { //Chat/IM ----------------------------------------------------------------------------- - mWoLfVerticalIMTabs = gSavedSettings.getBOOL("WoLfVerticalIMTabs"); mIMAnnounceIncoming = gSavedSettings.getBOOL("AscentInstantMessageAnnounceIncoming"); mHideTypingNotification = gSavedSettings.getBOOL("AscentHideTypingNotification"); mShowGroupNameInChatIM = gSavedSettings.getBOOL("OptionShowGroupNameInChatIM"); - mShowLocalChatFloaterBar = gSavedSettings.getBOOL("ShowLocalChatFloaterBar"); mPlayTypingSound = gSavedSettings.getBOOL("PlayTypingSound"); mHideNotificationsInChat = gSavedSettings.getBOOL("HideNotificationsInChat"); mEnableMUPose = gSavedSettings.getBOOL("AscentAllowMUpose"); @@ -337,7 +335,6 @@ void LLPrefsAscentChat::refreshValues() mLinksForChattingObjects = gSavedSettings.getU32("LinksForChattingObjects"); mSecondsInChatAndIMs = gSavedSettings.getBOOL("SecondsInChatAndIMs"); mSecondsInLog = gSavedSettings.getBOOL("SecondsInLog"); - mOtherChatsTornOff = gSavedSettings.getBOOL("OtherChatsTornOff"); std::string format = gSavedSettings.getString("ShortTimeFormat"); if (format.find("%p") == -1) @@ -375,6 +372,16 @@ void LLPrefsAscentChat::refreshValues() mIMResponseItem = gSavedPerAccountSettings.getBOOL("AscentInstantMessageResponseItem"); mIMResponseText = gSavedPerAccountSettings.getString("AscentInstantMessageResponse"); + //Chat UI ----------------------------------------------------------------------------- + mWoLfVerticalIMTabs = gSavedSettings.getBOOL("WoLfVerticalIMTabs"); + mOtherChatsTornOff = gSavedSettings.getBOOL("OtherChatsTornOff"); + mShowLocalChatFloaterBar = gSavedSettings.getBOOL("ShowLocalChatFloaterBar"); + mHorizButt = gSavedSettings.getBOOL("ContactsUseHorizontalButtons"); + mOneLineIMButt = gSavedSettings.getBOOL("UseConciseIMButtons"); + mOneLineGroupButt = gSavedSettings.getBOOL("UseConciseGroupChatButtons"); + mOneLineConfButt = gSavedSettings.getBOOL("UseConciseConferenceButtons"); + mOnlyComm = gSavedSettings.getBOOL("CommunicateSpecificShortcut"); + //Spam -------------------------------------------------------------------------------- mEnableAS = gSavedSettings.getBOOL("AntiSpamEnabled"); mGlobalQueue = gSavedSettings.getBOOL("_NACL_AntiSpamGlobalQueue"); @@ -533,11 +540,9 @@ void LLPrefsAscentChat::refresh() void LLPrefsAscentChat::cancel() { //Chat/IM ----------------------------------------------------------------------------- - gSavedSettings.setBOOL("WoLfVerticalIMTabs", mWoLfVerticalIMTabs); gSavedSettings.setBOOL("AscentInstantMessageAnnounceIncoming", mIMAnnounceIncoming); gSavedSettings.setBOOL("AscentHideTypingNotification", mHideTypingNotification); gSavedSettings.setBOOL("OptionShowGroupNameInChatIM", mShowGroupNameInChatIM); - gSavedSettings.setBOOL("ShowLocalChatFloaterBar", mShowLocalChatFloaterBar); gSavedSettings.setBOOL("PlayTypingSound", mPlayTypingSound); gSavedSettings.setBOOL("HideNotificationsInChat", mHideNotificationsInChat); gSavedSettings.setBOOL("AscentAllowMUpose", mEnableMUPose); @@ -545,7 +550,6 @@ void LLPrefsAscentChat::cancel() gSavedSettings.setU32("LinksForChattingObjects", mLinksForChattingObjects); gSavedSettings.setBOOL("SecondsInChatAndIMs", mSecondsInChatAndIMs); gSavedSettings.setBOOL("SecondsInLog", mSecondsInLog); - gSavedSettings.setBOOL("OtherChatsTornOff", mOtherChatsTornOff); std::string short_date, long_date, short_time, long_time, timestamp; @@ -596,6 +600,16 @@ void LLPrefsAscentChat::cancel() gSavedPerAccountSettings.setBOOL("AscentInstantMessageResponseItem", mIMResponseItem); gSavedPerAccountSettings.setString("AscentInstantMessageResponse", mIMResponseText); + //Chat UI ----------------------------------------------------------------------------- + gSavedSettings.setBOOL("WoLfVerticalIMTabs", mWoLfVerticalIMTabs); + gSavedSettings.setBOOL("OtherChatsTornOff", mOtherChatsTornOff); + gSavedSettings.setBOOL("ShowLocalChatFloaterBar", mShowLocalChatFloaterBar); + gSavedSettings.setBOOL("ContactsUseHorizontalButtons", mHorizButt); + gSavedSettings.setBOOL("UseConciseIMButtons", mOneLineIMButt); + gSavedSettings.setBOOL("UseConciseGroupChatButtons", mOneLineGroupButt); + gSavedSettings.setBOOL("UseConciseConferenceButtons", mOneLineConfButt); + gSavedSettings.setBOOL("CommunicateSpecificShortcut", mOnlyComm); + //Spam -------------------------------------------------------------------------------- gSavedSettings.setBOOL("AntiSpamEnabled", mEnableAS); gSavedSettings.setBOOL("_NACL_AntiSpamGlobalQueue", mGlobalQueue); diff --git a/indra/newview/ascentprefschat.h b/indra/newview/ascentprefschat.h index 4bf8f7551..63cedf611 100644 --- a/indra/newview/ascentprefschat.h +++ b/indra/newview/ascentprefschat.h @@ -62,11 +62,9 @@ protected: static void onCommitKeywords(LLUICtrl* ctrl, void* user_data); //Chat/IM ----------------------------------------------------------------------------- - BOOL mWoLfVerticalIMTabs; BOOL mIMAnnounceIncoming; BOOL mHideTypingNotification; BOOL mShowGroupNameInChatIM; - bool mShowLocalChatFloaterBar; BOOL mPlayTypingSound; BOOL mHideNotificationsInChat; BOOL mEnableMUPose; @@ -78,7 +76,6 @@ protected: U32 tempDateFormat; BOOL mSecondsInChatAndIMs; BOOL mSecondsInLog; - BOOL mOtherChatsTornOff; BOOL mIMResponseAnyone; BOOL mIMResponseFriends; @@ -89,6 +86,16 @@ protected: BOOL mIMResponseItem; std::string mIMResponseText; + //Chat UI ----------------------------------------------------------------------------- + bool mWoLfVerticalIMTabs; + bool mOtherChatsTornOff; + bool mShowLocalChatFloaterBar; + bool mHorizButt; + bool mOneLineIMButt; + bool mOneLineGroupButt; + bool mOneLineConfButt; + bool mOnlyComm; + //Spam -------------------------------------------------------------------------------- BOOL mEnableAS; BOOL mGlobalQueue; diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp index e12b95156..0c6e71773 100644 --- a/indra/newview/llfloateravatarlist.cpp +++ b/indra/newview/llfloateravatarlist.cpp @@ -476,6 +476,15 @@ void LLFloaterAvatarList::assessColumns() mAvatarList->getColumn(LIST_AVATAR_NAME)->mDynamicWidth = TRUE; mAvatarList->getColumn(LIST_AVATAR_NAME)->mRelWidth = -1; } + else if (!hide_client) + { + mAvatarList->getColumn(LIST_CLIENT)->setWidth(0); + mAvatarList->getColumn(LIST_AVATAR_NAME)->setWidth(0); + mAvatarList->getColumn(LIST_AVATAR_NAME)->mDynamicWidth = FALSE; + mAvatarList->getColumn(LIST_AVATAR_NAME)->mRelWidth = 0; + mAvatarList->getColumn(LIST_CLIENT)->mDynamicWidth = TRUE; + mAvatarList->getColumn(LIST_CLIENT)->mRelWidth = -1; + } mAvatarList->updateLayout(); } diff --git a/indra/newview/llfloaterchatterbox.cpp b/indra/newview/llfloaterchatterbox.cpp index 9e41340fe..876e2c321 100644 --- a/indra/newview/llfloaterchatterbox.cpp +++ b/indra/newview/llfloaterchatterbox.cpp @@ -54,7 +54,8 @@ LLFloaterMyFriends::LLFloaterMyFriends(const LLSD& seed) mFactoryMap["groups_panel"] = LLCallbackMap(LLFloaterMyFriends::createGroupsPanel, NULL); // do not automatically open singleton floaters (as result of getInstance()) BOOL no_open = FALSE; - LLUICtrlFactory::getInstance()->buildFloater(this, "floater_my_friends.xml", &getFactoryMap(), no_open); + static LLCachedControl horiz("ContactsUseHorizontalButtons"); + LLUICtrlFactory::getInstance()->buildFloater(this, (horiz ? "floater_my_friends_horiz.xml" : "floater_my_friends.xml"), &getFactoryMap(), no_open); } LLFloaterMyFriends::~LLFloaterMyFriends() diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp index 45b2c5c45..5bd332024 100644 --- a/indra/newview/llfloatersettingsdebug.cpp +++ b/indra/newview/llfloatersettingsdebug.cpp @@ -352,7 +352,14 @@ void LLFloaterSettingsDebug::updateControl() bool_ctrl->setVisible(true); if (!bool_ctrl->hasFocus()) { - bool_ctrl->setValue(sd.asInteger()); + if (sd.asBoolean()) + { + bool_ctrl->setValue(LLSD("TRUE")); + } + else + { + bool_ctrl->setValue(LLSD("FALSE")); + } } break; case TYPE_STRING: diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 2c6b4dea6..1a2860998 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -1186,40 +1186,43 @@ void LLFloaterIMPanel::init(const std::string& session_label) // [Ansariel: Display name support] mProfileButtonEnabled = FALSE; // [/Ansariel: Display name support] - + + static LLCachedControl concise_im("UseConciseIMButtons"); + static LLCachedControl concise_group("UseConciseGroupChatButtons"); + static LLCachedControl concise_conf("UseConciseConferenceButtons"); std::string xml_filename; switch(mDialog) { case IM_SESSION_GROUP_START: mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, this); - xml_filename = "floater_instant_message_group.xml"; + xml_filename = concise_group ? "floater_instant_message_group_concisebuttons.xml" : "floater_instant_message_group.xml"; mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, mSessionLabel); break; case IM_SESSION_INVITE: mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, this); if (gAgent.isInGroup(mSessionUUID)) { - xml_filename = "floater_instant_message_group.xml"; + xml_filename = concise_group ? "floater_instant_message_group_concisebuttons.xml" : "floater_instant_message_group.xml"; } else // must be invite to ad hoc IM { - xml_filename = "floater_instant_message_ad_hoc.xml"; + xml_filename = concise_conf ? "floater_instant_message_ad_hoc_concisebuttons.xml" : "floater_instant_message_ad_hoc.xml"; } mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, mSessionLabel); break; case IM_SESSION_P2P_INVITE: - xml_filename = "floater_instant_message.xml"; + xml_filename = concise_im ? "floater_instant_message_concisebuttons.xml" : "floater_instant_message.xml"; mVoiceChannel = new LLVoiceChannelP2P(mSessionUUID, mSessionLabel, mOtherParticipantUUID); break; case IM_SESSION_CONFERENCE_START: mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, this); - xml_filename = "floater_instant_message_ad_hoc.xml"; + xml_filename = concise_conf ? "floater_instant_message_ad_hoc_concisebuttons.xml" : "floater_instant_message_ad_hoc.xml"; mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, mSessionLabel); break; // just received text from another user case IM_NOTHING_SPECIAL: - xml_filename = "floater_instant_message.xml"; + xml_filename = concise_im ? "floater_instant_message_concisebuttons.xml" : "floater_instant_message.xml"; mTextIMPossible = LLVoiceClient::getInstance()->isSessionTextIMPossible(mSessionUUID); mProfileButtonEnabled = LLVoiceClient::getInstance()->isParticipantAvatar(mSessionUUID); @@ -1229,7 +1232,7 @@ void LLFloaterIMPanel::init(const std::string& session_label) break; default: llwarns << "Unknown session type" << llendl; - xml_filename = "floater_instant_message.xml"; + xml_filename = concise_im ? "floater_instant_message_concisebuttons.xml" : "floater_instant_message.xml"; break; } diff --git a/indra/newview/llprefschat.cpp b/indra/newview/llprefschat.cpp index 95b442c4c..7290c3fb9 100644 --- a/indra/newview/llprefschat.cpp +++ b/indra/newview/llprefschat.cpp @@ -66,7 +66,6 @@ private: LLColor4 mHTMLLinkColor; BOOL mChatFullWidth; BOOL mCloseChatOnReturn; - bool mOnlyComm; BOOL mArrowKeysMoveAvatar; BOOL mShowTimestamps; BOOL mPlayTypingAnim; @@ -112,7 +111,6 @@ LLPrefsChatImpl::LLPrefsChatImpl() childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity")); childSetValue("translate_language_combobox", gSavedSettings.getString("TranslateLanguage")); childSetValue("translate_chat", gSavedSettings.getBOOL("TranslateChat")); - mOnlyComm = gSavedSettings.getBOOL("CommunicateSpecificShortcut"); } void LLPrefsChatImpl::refreshValues() @@ -141,7 +139,6 @@ void LLPrefsChatImpl::refreshValues() mBubbleOpacity = gSavedSettings.getF32("ChatBubbleOpacity"); mTranslateLanguage = gSavedSettings.getString("TranslateLanguage"); mTranslateChat = gSavedSettings.getBOOL("TranslateChat"); - mOnlyComm = gSavedSettings.getBOOL("CommunicateSpecificShortcut"); } void LLPrefsChatImpl::cancel() @@ -169,7 +166,6 @@ void LLPrefsChatImpl::cancel() gSavedSettings.setF32("ChatBubbleOpacity", mBubbleOpacity); gSavedSettings.setString("TranslateLanguage", mTranslateLanguage); gSavedSettings.setBOOL("TranslateChat", mTranslateChat); - gSavedSettings.setBOOL("CommunicateSpecificShortcut", mOnlyComm); } void LLPrefsChatImpl::apply() diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index e48565496..80cc2fb2a 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2011,7 +2011,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) // BOOL is_busy = gAgent.getBusy(); - BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat); + BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat) + // object IMs contain sender object id in session_id (STORM-1209) + || dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id); BOOL is_linden = LLMuteList::getInstance()->isLinden(name); BOOL is_owned_by_me = FALSE; @@ -2509,7 +2511,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) info->mFolderID = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(info->mType)); std::string from_name; - from_name += "A group member named "; + from_name += LLTrans::getString("AGroupMemberNamed") + " "; from_name += name; info->mFromName = from_name; diff --git a/indra/newview/skins/default/xui/en-us/floater_instant_message_ad_hoc_concisebuttons.xml b/indra/newview/skins/default/xui/en-us/floater_instant_message_ad_hoc_concisebuttons.xml new file mode 100644 index 000000000..bd0208d92 --- /dev/null +++ b/indra/newview/skins/default/xui/en-us/floater_instant_message_ad_hoc_concisebuttons.xml @@ -0,0 +1,27 @@ + + + Joining Voice Chat... + Connected, click End Call to hang up + Left Voice Chat + icn_voice-groupfocus.tga + Instant Message with [NAME] + [NAME] is typing... + Starting session with [NAME], please wait. + Click here to instant message. +