CHUI-945 FIXED Add Object IMs to Chat Notification Preferences

meow-7.2.2
PavelK ProductEngine 2013-05-15 20:31:47 +03:00
parent bf5f53bf64
commit 3187ee18e1
5 changed files with 250 additions and 35 deletions

View File

@ -6398,7 +6398,10 @@
<key>NotificationConferenceIMOptions</key>
<map>
<key>Comment</key>
<string>Specifies how the UI responds to Conference IM Notifications.</string>
<string>
Specifies how the UI responds to Conference IM Notifications.
Allowed values: [openconversations,toast,flash,noaction]
</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@ -6409,7 +6412,10 @@
<key>NotificationFriendIMOptions</key>
<map>
<key>Comment</key>
<string>Specifies how the UI responds to Friend IM Notifications.</string>
<string>
Specifies how the UI responds to Friend IM Notifications.
Allowed values: [openconversations,toast,flash,noaction]
</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@ -6420,7 +6426,10 @@
<key>NotificationGroupChatOptions</key>
<map>
<key>Comment</key>
<string>Specifies how the UI responds to Group Chat Notifications.</string>
<string>
Specifies how the UI responds to Group Chat Notifications.
Allowed values: [openconversations,toast,flash,noaction]
</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@ -6431,7 +6440,10 @@
<key>NotificationNearbyChatOptions</key>
<map>
<key>Comment</key>
<string>Specifies how the UI responds to Nearby Chat Notifications.</string>
<string>
Specifies how the UI responds to Nearby Chat Notifications.
Allowed values: [openconversations,toast,flash,noaction]
</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@ -6442,7 +6454,10 @@
<key>NotificationNonFriendIMOptions</key>
<map>
<key>Comment</key>
<string>Specifies how the UI responds to Non Friend IM Notifications.</string>
<string>
Specifies how the UI responds to Non Friend IM Notifications.
Allowed values: [openconversations,toast,flash,noaction]
</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@ -6450,6 +6465,20 @@
<key>Value</key>
<string>toast</string>
</map>
<key>NotificationObjectIMOptions</key>
<map>
<key>Comment</key>
<string>
Specifies how the UI responds to Object IM Notifications.
Allowed values: [openconversations,toast,flash,noaction]
</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>noaction</string>
</map>
<key>NotificationToastLifeTime</key>
<map>
<key>Comment</key>
@ -6988,6 +7017,72 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundFriendIM</key>
<map>
<key>Comment</key>
<string>Plays a sound when friend's IM received.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundNonFriendIM</key>
<map>
<key>Comment</key>
<string>Plays a sound when non-friend's IM received.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundConferenceIM</key>
<map>
<key>Comment</key>
<string>Plays a sound when conference IM received.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundGroupChatIM</key>
<map>
<key>Comment</key>
<string>Plays a sound when group chat IM received.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundNearbyChatIM</key>
<map>
<key>Comment</key>
<string>Plays a sound when nearby chat IM received.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundObjectIM</key>
<map>
<key>Comment</key>
<string>Plays a sound when IM fom an object received.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundNewConversation</key>
<map>
<key>Comment</key>

View File

@ -452,6 +452,7 @@ BOOL LLFloaterPreference::postBuild()
getChild<LLComboBox>("ConferenceIMOptions")->setCommitCallback(boost::bind(&LLFloaterPreference::onNotificationsChange, this,"ConferenceIMOptions"));
getChild<LLComboBox>("GroupChatOptions")->setCommitCallback(boost::bind(&LLFloaterPreference::onNotificationsChange, this,"GroupChatOptions"));
getChild<LLComboBox>("NearbyChatOptions")->setCommitCallback(boost::bind(&LLFloaterPreference::onNotificationsChange, this,"NearbyChatOptions"));
getChild<LLComboBox>("ObjectIMOptions")->setCommitCallback(boost::bind(&LLFloaterPreference::onNotificationsChange, this,"ObjectIMOptions"));
// if floater is opened before login set default localized do not disturb message
if (LLStartUp::getStartupState() < STATE_STARTED)
@ -721,6 +722,7 @@ void LLFloaterPreference::onOpen(const LLSD& key)
onNotificationsChange("ConferenceIMOptions");
onNotificationsChange("GroupChatOptions");
onNotificationsChange("NearbyChatOptions");
onNotificationsChange("ObjectIMOptions");
LLPanelLogin::setAlwaysRefresh(true);
refresh();
@ -928,7 +930,7 @@ void LLFloaterPreference::onNotificationsChange(const std::string& OptionName)
bool show_notifications_alert = true;
for (notifications_map::iterator it_notification = mNotificationOptions.begin(); it_notification != mNotificationOptions.end(); it_notification++)
{
if(it_notification->second != "None")
if(it_notification->second != "No action")
{
show_notifications_alert = false;
break;

View File

@ -196,32 +196,63 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
// determine user prefs for this session
if (session_id.isNull())
{
user_preferences = gSavedSettings.getString("NotificationNearbyChatOptions");
if (msg["source_type"].asInteger() == CHAT_SOURCE_OBJECT)
{
user_preferences = gSavedSettings.getString("NotificationObjectIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundObjectIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
else
{
user_preferences = gSavedSettings.getString("NotificationNearbyChatOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNearbyChatIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
}
else if(session->isP2PSessionType())
{
if (LLAvatarTracker::instance().isBuddy(participant_id))
{
user_preferences = gSavedSettings.getString("NotificationFriendIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundFriendIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
else
{
user_preferences = gSavedSettings.getString("NotificationNonFriendIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNonFriendIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
}
else if(session->isAdHocSessionType())
{
user_preferences = gSavedSettings.getString("NotificationConferenceIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundConferenceIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
else if(session->isGroupSessionType())
{
user_preferences = gSavedSettings.getString("NotificationGroupChatOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundGroupChatIM") == TRUE))
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
// actions:
// 0. nothing - exit
if (("none" == user_preferences ||
if (("noaction" == user_preferences ||
ON_TOP_AND_ITEM_IS_SELECTED == conversations_floater_status)
&& session_floater->isMessagePaneExpanded())
{

View File

@ -3666,6 +3666,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
LLSD msg_notify = LLSD(LLSD::emptyMap());
msg_notify["session_id"] = LLUUID();
msg_notify["from_id"] = chat.mFromID;
msg_notify["source_type"] = chat.mSourceType;
on_new_message(msg_notify);
}
}

View File

@ -100,14 +100,6 @@
left="13"
width="517">
<text
layout="topleft"
height="12"
name="notifications"
left="0"
width="120">
Notifications
</text>
<text
layout="topleft"
height="12"
@ -138,17 +130,27 @@
name="FlashToolbarButton"
value="flash"/>
<item
label="None"
name="None"
value="none"/>
label="No action"
name="NoAction"
value="noaction"/>
</combo_box>
<check_box
control_name="PlaySoundFriendIM"
height="23"
label="Play sound"
layout="topleft"
name="play_sound_friend_im"
left_pad="7"
top_delta="-3"
width="28">
</check_box>
<text
layout="topleft"
height="12"
name="non_friend_ims"
width="145"
left="0"
top_pad="9">
top_pad="11">
Non-friend IMs:
</text>
<combo_box
@ -172,17 +174,27 @@
name="FlashToolbarButton"
value="flash"/>
<item
label="None"
name="None"
value="none"/>
label="No action"
name="NoAction"
value="noaction"/>
</combo_box>
<check_box
control_name="PlaySoundNonFriendIM"
height="23"
label="Play sound"
layout="topleft"
name="play_sound_non_friend_im"
left_pad="7"
top_delta="-3"
width="28">
</check_box>
<text
layout="topleft"
left="0"
height="13"
name="conference_ims"
width="145"
top_pad="9">
top_pad="11">
Conference IMs:
</text>
<combo_box
@ -206,17 +218,27 @@
name="FlashToolbarButton"
value="flash"/>
<item
label="None"
name="None"
value="none"/>
label="No action"
name="NoAction"
value="noaction"/>
</combo_box>
<check_box
control_name="PlaySoundConferenceIM"
height="23"
label="Play sound"
layout="topleft"
name="play_sound_conference_im"
left_pad="7"
top_delta="-3"
width="28">
</check_box>
<text
layout="topleft"
left="0"
height="13"
name="group_chat"
width="145"
top_pad="9">
top_pad="11">
Group chat:
</text>
<combo_box
@ -240,17 +262,27 @@
name="FlashToolbarButton"
value="flash"/>
<item
label="None"
name="None"
value="none"/>
label="No action"
name="NoAction"
value="noaction"/>
</combo_box>
<check_box
control_name="PlaySoundGroupChatIM"
height="23"
label="Play sound"
layout="topleft"
name="play_sound_group_chat_im"
left_pad="7"
top_delta="-3"
width="28">
</check_box>
<text
layout="topleft"
left="0"
height="12"
name="nearby_chat"
width="145"
top_pad="9">
top_pad="11">
Nearby chat:
</text>
<combo_box
@ -274,10 +306,64 @@
name="FlashToolBarButton"
value="flash"/>
<item
label="None"
name="None"
value="none"/>
label="No action"
name="NoAction"
value="noaction"/>
</combo_box>
<check_box
control_name="PlaySoundNearbyChatIM"
height="23"
label="Play sound"
layout="topleft"
name="play_sound_nearby_chat_im"
left_pad="7"
top_delta="-3"
width="28">
</check_box>
<text
layout="topleft"
left="0"
height="12"
name="object_ims"
width="145"
top_pad="11">
Object IMs:
</text>
<combo_box
control_name="NotificationObjectIMOptions"
height="23"
layout="topleft"
left_pad="5"
top_delta="-6"
name="ObjectIMOptions"
width="223">
<item
label="Open Conversations window"
name="OpenConversationsWindow"
value="openconversations"/>
<item
label="Pop up the message"
name="PopUpMessage"
value="toast"/>
<item
label="Flash toolbar button"
name="FlashToolBarButton"
value="flash"/>
<item
label="No action"
name="NoAction"
value="noaction"/>
</combo_box>
<check_box
control_name="PlaySoundObjectIM"
height="23"
label="Play sound"
layout="topleft"
name="play_sound_object_im"
left_pad="7"
top_delta="-3"
width="28">
</check_box>
<text
layout="topleft"
left="0"