FIRE-16035: Add an option to allow friends to bypass conference chat ignoring

meow-7.2.2
Northspring 2015-05-06 22:33:13 +02:00
parent 119bd4cbfb
commit 7ed6eccffc
4 changed files with 37 additions and 9 deletions

View File

@ -22842,6 +22842,17 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>FSDontIgnoreAdHocFromFriends</key>
<map>
<key>Comment</key>
<string>Allow my friends to start conference chats with me.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>FSFriendListColumnShowUserName</key>
<map>
<key>Comment</key>

View File

@ -3092,18 +3092,24 @@ void LLIMMgr::addMessage(
}
// <FS:PP> Option to automatically ignore and leave all conference (ad-hoc) chats
if (dialog != IM_NOTHING_SPECIAL && !is_group_chat && gSavedSettings.getBOOL("FSIgnoreAdHocSessions") && !from_linden)
static LLCachedControl<bool> ignoreAdHocSessions(gSavedSettings, "FSIgnoreAdHocSessions");
if (dialog != IM_NOTHING_SPECIAL && !is_group_chat && ignoreAdHocSessions && !from_linden)
{
LL_INFOS() << "Ignoring conference (ad-hoc) chat from " << new_session_id.asString() << LL_ENDL;
if (!gIMMgr->leaveSession(new_session_id))
static LLCachedControl<bool> dontIgnoreAdHocFromFriends(gSavedSettings, "FSDontIgnoreAdHocFromFriends");
if (!dontIgnoreAdHocFromFriends || (dontIgnoreAdHocFromFriends && LLAvatarTracker::instance().getBuddyInfo(other_participant_id) == NULL))
{
LL_WARNS() << "Ad-hoc session " << new_session_id.asString() << " does not exist." << LL_ENDL;
static LLCachedControl<bool> reportIgnoredAdHocSession(gSavedSettings, "FSReportIgnoredAdHocSession");
LL_INFOS() << "Ignoring conference (ad-hoc) chat from " << new_session_id.asString() << LL_ENDL;
if (!gIMMgr->leaveSession(new_session_id))
{
LL_WARNS() << "Ad-hoc session " << new_session_id.asString() << " does not exist." << LL_ENDL;
}
else if (reportIgnoredAdHocSession)
{
reportToNearbyChat(LLTrans::getString("IgnoredAdHocSession"));
}
return;
}
if (gSavedSettings.getBOOL("FSReportIgnoredAdHocSession"))
{
reportToNearbyChat(LLTrans::getString("IgnoredAdHocSession"));
}
return;
}
// </FS:PP>

View File

@ -715,6 +715,16 @@
name="FSReportIgnoredAdHocSession"
control_name="FSReportIgnoredAdHocSession"
label="Report ignored conference chats in nearby chat"/>
<check_box
layout="topleft"
follows="left|top"
enabled_control="FSIgnoreAdHocSessions"
top_pad="-1"
width="30"
height="18"
name="FSDontIgnoreAdHocFromFriends"
control_name="FSDontIgnoreAdHocFromFriends"
label="Don't ignore conference chats invitations from my friends"/>
<text
name="group_snooze_time_label"
layout="topleft"

View File

@ -117,6 +117,7 @@
<check_box name="FSMuteGroupWhenNoticesDisabled" label="Gdy opcja 'otrzymuj ogłoszenia grupy' jest wyłączona - wyłączaj także czat grupy"/>
<check_box name="FSIgnoreAdHocSessions" label="Automatycznie ignoruj i opuszczaj wszystkie czaty konferencji (ad-hoc)"/>
<check_box name="FSReportIgnoredAdHocSession" label="Zgłaszaj ignorowanie czatu konferencji w czacie lokalnym"/>
<check_box name="FSDontIgnoreAdHocFromFriends" label="Nie ignoruj zaproszeń do czatów konferencji od moich znajomych"/>
<text width="290" name="group_snooze_time_label" tool_tip="Ilość czasu, przez jaką czat grupowy będzie zablokowany po naciśnięciu przycisku tymczasowego jego wyciszenia. Ustawienie tej wartości na 0 zwyczajnie zamknie czat grupy do czasu, gdy następna wiadomość się w nim nie pojawi.">
Długość tymczasowego wyciszenia czatu grupowego:
</text>