From fadf0c3738a6ce3786f42bd30bb9692e140dc415 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Mon, 2 Aug 2010 19:44:45 -0500 Subject: Updated version to 1.3.0 RC1. --- linden/indra/newview/English.lproj/InfoPlist.strings | 4 ++-- linden/indra/newview/Info-Imprudence.plist | 2 +- linden/indra/newview/app_settings/viewerversion.xml | 2 +- linden/indra/newview/res/viewerRes.rc | 10 +++++----- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index d2e24bf..c113008 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings @@ -1,5 +1,5 @@ /* Localized versions of Info.plist keys */ CFBundleName = "Imprudence"; -CFBundleShortVersionString = "Imprudence Weekly 2010-06-26"; -CFBundleGetInfoString = "Imprudence Weekly 2010-06-26"; +CFBundleShortVersionString = "Imprudence 1.3.0 RC1"; +CFBundleGetInfoString = "Imprudence 1.3.0 RC1"; diff --git a/linden/indra/newview/Info-Imprudence.plist b/linden/indra/newview/Info-Imprudence.plist index b6f834d..462cf5d 100644 --- a/linden/indra/newview/Info-Imprudence.plist +++ b/linden/indra/newview/Info-Imprudence.plist @@ -32,7 +32,7 @@ CFBundleVersion - Weekly 2010-06-26 + 1.3.0 RC1 CSResourcesFileMapped diff --git a/linden/indra/newview/app_settings/viewerversion.xml b/linden/indra/newview/app_settings/viewerversion.xml index 28176bd..1bde127 100644 --- a/linden/indra/newview/app_settings/viewerversion.xml +++ b/linden/indra/newview/app_settings/viewerversion.xml @@ -20,6 +20,6 @@ need to be changed manually - MC - + diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc index a3fafc6..0537df6 100644 --- a/linden/indra/newview/res/viewerRes.rc +++ b/linden/indra/newview/res/viewerRes.rc @@ -155,12 +155,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Imprudence Viewer Project" - VALUE "FileDescription", "Imprudence Weekly" - VALUE "FileVersion", "2010-06-26" - VALUE "InternalName", "Imprudence Weekly" + VALUE "FileDescription", "Imprudence" + VALUE "FileVersion", "1.3.0 RC1" + VALUE "InternalName", "Imprudence" VALUE "OriginalFilename", "Imprudence.exe" - VALUE "ProductName", "Imprudence Weekly" - VALUE "ProductVersion", "2010-06-26" + VALUE "ProductName", "Imprudence" + VALUE "ProductVersion", "1.3.0 RC1" END END BLOCK "VarFileInfo" -- cgit v1.1 From 8a7606562b7396c39e392e8397bb759712c2170e Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Tue, 3 Aug 2010 02:04:04 -0500 Subject: Use the correct setting name for LightShare. --- linden/indra/newview/lightshare.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/lightshare.cpp b/linden/indra/newview/lightshare.cpp index b422236..78d27b5 100644 --- a/linden/indra/newview/lightshare.cpp +++ b/linden/indra/newview/lightshare.cpp @@ -101,7 +101,7 @@ WindlightMessage::~WindlightMessage() // static void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) { - if( gSavedSettings.getU32("UseLightShare") <= LIGHTSHARE_NEVER ) + if( gSavedSettings.getU32("LightShareAllowed") <= LIGHTSHARE_NEVER ) return; WindlightMessage* wl = new WindlightMessage(msg); @@ -114,7 +114,7 @@ void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) // If they are using region settings already, or LightShare is // always allowed, just apply the new settings, don't bother asking. - if( gSavedSettings.getU32("UseLightShare") == LIGHTSHARE_ALWAYS || + if( gSavedSettings.getU32("LightShareAllowed") == LIGHTSHARE_ALWAYS || (sky == sSkyPresetName && water == sWaterPresetName) ) { wl->apply(); @@ -138,7 +138,7 @@ void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) return; } - if( gSavedSettings.getU32("UseLightShare") == LIGHTSHARE_ASK && + if( gSavedSettings.getU32("LightShareAllowed") == LIGHTSHARE_ASK && sMostRecent == NULL ) { // No most recent, so store this and create notification -- cgit v1.1 From 42fc11eb1f328d5568392bf9f2deb0f38a74916d Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Tue, 3 Aug 2010 09:56:02 -0700 Subject: Avatar sounds now don't disable when from a region above current maturity --- linden/indra/newview/llviewermessage.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index bc1aedb..140b517 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp @@ -3931,8 +3931,10 @@ void process_sound_trigger(LLMessageSystem *msg, void **) msg->getF32Fast(_PREHASH_SoundData, _PREHASH_Gain, gain); //If we have sounds muted, don't even try to load or trigger the sound. - if(gSavedSettings.getBOOL("MuteSounds") || gain == 0.0) + if (gSavedSettings.getBOOL("MuteSounds") || gain == 0.0) + { return; + } // adjust sound location to true global coords LLVector3d pos_global = from_region_handle(region_handle); @@ -3940,9 +3942,6 @@ void process_sound_trigger(LLMessageSystem *msg, void **) pos_global.mdV[VY] += pos_local.mV[VY]; pos_global.mdV[VZ] += pos_local.mV[VZ]; - // Don't play sounds if sound settings are muted. - if (gSavedSettings.getBOOL("MuteSounds")) return; - // Don't play a trigger sound if you can't hear it due // to parcel "local audio only" settings. if (!LLViewerParcelMgr::getInstance()->canHearSound(pos_global)) return; @@ -3961,10 +3960,11 @@ void process_sound_trigger(LLMessageSystem *msg, void **) } // Don't play sounds from a region with maturity above current agent maturity - if( !gAgent.canAccessMaturityInRegion( region_handle ) ) + // Actually, let's -- MC + /*if( !gAgent.canAccessMaturityInRegion( region_handle ) ) { return; - } + }*/ gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global); } -- cgit v1.1 From ff53c8c2d6c79b9a65a5571ea8f9302efde9c32e Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 4 Aug 2010 02:13:27 -0700 Subject: Don't list clients as 'Failure' as it confuses people and isn't very nice --- linden/indra/newview/llvoavatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 2732d48..f3eec54 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp @@ -3428,7 +3428,7 @@ void LLVOAvatar::resolveClient(LLColor4& avatar_name_color, std::string& client, } if(avatar->getTE(5)->getID() != avatar->getTE(6)->getID() && !client.empty()) { - client = "Failure"; + client = "Unknown"; avatar_name_color = LLColor4::grey; } if(client.empty() && LLVOAvatar::sClientResolutionList.has("default")) -- cgit v1.1 From 56967d90c7ece6de856147f1db58e1d54e9823fa Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 4 Aug 2010 03:14:59 -0700 Subject: Added menu option for toggling IM auto-responses on/off underneath the Busy option --- .../newview/app_settings/settings_per_account.xml | 11 + linden/indra/newview/floaterbusy.cpp | 2 + linden/indra/newview/llviewermenu.cpp | 20 ++ linden/indra/newview/llviewermessage.cpp | 335 +++++++++++---------- .../skins/default/xui/en-us/floater_busy.xml | 21 +- .../skins/default/xui/en-us/menu_viewer.xml | 5 + .../default/xui/en-us/panel_preferences_im.xml | 2 +- 7 files changed, 220 insertions(+), 176 deletions(-) (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/app_settings/settings_per_account.xml b/linden/indra/newview/app_settings/settings_per_account.xml index e965fe6..1a748f8 100644 --- a/linden/indra/newview/app_settings/settings_per_account.xml +++ b/linden/indra/newview/app_settings/settings_per_account.xml @@ -461,6 +461,17 @@ + InstantMessageResponseEnabled + + Comment + Toggles whether to auto-respond to instant messages or not + Persist + 1 + Type + Boolean + Value + 0 + InstantMessageResponseFriends Comment diff --git a/linden/indra/newview/floaterbusy.cpp b/linden/indra/newview/floaterbusy.cpp index 9188ae1..6c49461 100644 --- a/linden/indra/newview/floaterbusy.cpp +++ b/linden/indra/newview/floaterbusy.cpp @@ -158,6 +158,7 @@ BOOL FloaterBusy::postBuild() LLWStringUtil::replaceChar(auto_response, '%', ' '); childSetText("im_response", wstring_to_utf8str(auto_response)); + childSetValue("InstantMessageResponseEnabled", gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")); childSetValue("InstantMessageResponseFriends", gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends")); childSetValue("InstantMessageResponseMuted", gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted")); childSetValue("InstantMessageResponseAnyone", gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone")); @@ -212,6 +213,7 @@ void FloaterBusy::apply() LLWStringUtil::replaceChar(im_response, '\n', '^'); LLWStringUtil::replaceChar(im_response, ' ', '%'); gSavedPerAccountSettings.setString("InstantMessageResponse", std::string(wstring_to_utf8str(im_response))); + gSavedPerAccountSettings.setBOOL("InstantMessageResponseEnabled", childGetValue("InstantMessageResponseEnabled").asBoolean()); gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); gSavedPerAccountSettings.setBOOL("InstantMessageResponseFriends", childGetValue("InstantMessageResponseFriends").asBoolean()); gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index fb69389..9e2cc3d 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp @@ -5443,6 +5443,24 @@ class LLWorldSetBusy : public view_listener_t } }; +class LLWorldToggleAutoResponse: public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) + { + gSavedPerAccountSettings.setBOOL("InstantMessageResponseEnabled", !gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")); + return true; + } + +}; + +class LLWorldCheckAutoResponse: public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) + { + gMenuHolder->findControl(userdata["control"].asString())->setValue(gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")); + return true; + } +}; class LLWorldCreateLandmark : public view_listener_t { @@ -10947,6 +10965,8 @@ void initialize_menus() addMenu(new LLWorldTeleportHome(), "World.TeleportHome"); addMenu(new LLWorldSetAway(), "World.SetAway"); addMenu(new LLWorldSetBusy(), "World.SetBusy"); + addMenu(new LLWorldToggleAutoResponse(), "World.ToggleAutoResponse"); + addMenu(new LLWorldCheckAutoResponse(), "World.CheckAutoResponse"); addMenu(new LLWorldEnableCreateLandmark(), "World.EnableCreateLandmark"); addMenu(new LLWorldEnableSetHomeLocation(), "World.EnableSetHomeLocation"); diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index 140b517..9bd11e8 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp @@ -1566,195 +1566,198 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } } }*/ - bool typing_init = false; - if( dialog == IM_TYPING_START && !is_muted ) + if (gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")) { - if(!gIMMgr->hasSession(computed_session_id) && gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceIncoming")) + bool typing_init = false; + if( dialog == IM_TYPING_START && !is_muted ) { - typing_init = true; - if( gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceStealFocus") ) + if(!gIMMgr->hasSession(computed_session_id) && gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceIncoming")) { - /*LLUUID sess =*/ gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); - make_ui_sound("UISndNewIncomingIMSession"); + typing_init = true; + if( gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceStealFocus") ) + { + /*LLUUID sess =*/ gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); + make_ui_sound("UISndNewIncomingIMSession"); + } + gIMMgr->addMessage( + computed_session_id, + from_id, + name, + llformat("You sense a disturbance in the force... (%s is typing)",name.c_str()), + name, + IM_NOTHING_SPECIAL, + parent_estate_id, + region_id, + position, + false); } - gIMMgr->addMessage( - computed_session_id, - from_id, - name, - llformat("You sense a disturbance in the force... (%s is typing)",name.c_str()), - name, - IM_NOTHING_SPECIAL, - parent_estate_id, - region_id, - position, - false); } - } - bool is_auto_response = false; - if(dialog == IM_NOTHING_SPECIAL) { - // detect auto responses from GreenLife and compatible viewers - is_auto_response = ( message.substr(0, 21) == "/me (auto-response): " ); - } + bool is_auto_response = false; + if(dialog == IM_NOTHING_SPECIAL) { + // detect auto responses from compatible viewers + is_auto_response = ( message.substr(0, 21) == "/me (auto-response): " ); + } - bool do_auto_response = false; - if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone" ) ) - do_auto_response = true; + bool do_auto_response = false; + if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone" ) ) + do_auto_response = true; - // odd name for auto respond to non-friends - if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends") && - LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL ) - do_auto_response = true; + // odd name for auto respond to non-friends + if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends") && + LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL ) + do_auto_response = true; - if( is_muted && !gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted") ) - do_auto_response = false; + if( is_muted && !gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted") ) + do_auto_response = false; - if( offline != IM_ONLINE ) - do_auto_response = false; + if( offline != IM_ONLINE ) + do_auto_response = false; - if( is_auto_response ) - do_auto_response = false; + if( is_auto_response ) + do_auto_response = false; - // handle cases where IM_NOTHING_SPECIAL is not an IM - if( name == SYSTEM_FROM || - from_id.isNull() || - to_id.isNull() ) - do_auto_response = false; + // handle cases where IM_NOTHING_SPECIAL is not an IM + if( name == SYSTEM_FROM || + from_id.isNull() || + to_id.isNull() ) + do_auto_response = false; -// if( do_auto_response ) -// [RLVa:KB] - Alternate: Emerald-370 - // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception - if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) ) -// [/RLVa:KB] - { - if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) || - (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")) - ) + // if( do_auto_response ) + // [RLVa:KB] - Alternate: Emerald-370 + // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception + if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) ) + // [/RLVa:KB] { - BOOL has = gIMMgr->hasSession(computed_session_id); - if(!has || gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") || typing_init) + if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) || + (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")) + ) { - BOOL show = !gSavedPerAccountSettings.getBOOL("InstantMessageShowResponded"); - if(!has && show) - { - gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); - } - if(show) - { - gIMMgr->addMessage( - computed_session_id, - from_id, - SYSTEM_FROM, - llformat("Autoresponse sent to %s.",name.c_str()), - LLStringUtil::null, - IM_NOTHING_SPECIAL, - parent_estate_id, - region_id, - position, - false); - } - std::string my_name; - gAgent.buildFullname(my_name); - - //<-- Personalized Autoresponse by Madgeek - std::string autoresponse = gSavedPerAccountSettings.getText("InstantMessageResponse"); - //Define Wildcards - std::string fname_wildcard = "#f"; - std::string lname_wildcard = "#l"; - std::string time_wildcard = "#t"; - //Extract Name - std::string f_name, l_name; - std::istringstream inname(name); - inname >> f_name >> l_name; - //Generate a Timestamp - time_t rawtime; - time(&rawtime); - char * timestamp_chars; - timestamp_chars = asctime(localtime(&rawtime)); - std::string timestamp; - timestamp.assign(timestamp_chars); - timestamp = timestamp.substr(0, timestamp.find('\n')); - //Handle Replacements - size_t found = autoresponse.find(fname_wildcard); - while(found != std::string::npos) - { - autoresponse.replace(found, 2, f_name); - found = autoresponse.find(fname_wildcard); - } - found = autoresponse.find(lname_wildcard); - while(found != std::string::npos) + BOOL has = gIMMgr->hasSession(computed_session_id); + if(!has || gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") || typing_init) { - autoresponse.replace(found, 2, l_name); + BOOL show = !gSavedPerAccountSettings.getBOOL("InstantMessageShowResponded"); + if(!has && show) + { + gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); + } + if(show) + { + gIMMgr->addMessage( + computed_session_id, + from_id, + SYSTEM_FROM, + llformat("Autoresponse sent to %s.",name.c_str()), + LLStringUtil::null, + IM_NOTHING_SPECIAL, + parent_estate_id, + region_id, + position, + false); + } + std::string my_name; + gAgent.buildFullname(my_name); + + //<-- Personalized Autoresponse by Madgeek + std::string autoresponse = gSavedPerAccountSettings.getText("InstantMessageResponse"); + //Define Wildcards + std::string fname_wildcard = "#f"; + std::string lname_wildcard = "#l"; + std::string time_wildcard = "#t"; + //Extract Name + std::string f_name, l_name; + std::istringstream inname(name); + inname >> f_name >> l_name; + //Generate a Timestamp + time_t rawtime; + time(&rawtime); + char * timestamp_chars; + timestamp_chars = asctime(localtime(&rawtime)); + std::string timestamp; + timestamp.assign(timestamp_chars); + timestamp = timestamp.substr(0, timestamp.find('\n')); + //Handle Replacements + size_t found = autoresponse.find(fname_wildcard); + while(found != std::string::npos) + { + autoresponse.replace(found, 2, f_name); + found = autoresponse.find(fname_wildcard); + } found = autoresponse.find(lname_wildcard); - } - found = autoresponse.find(time_wildcard); - while(found != std::string::npos) - { - autoresponse.replace(found, 2, timestamp); + while(found != std::string::npos) + { + autoresponse.replace(found, 2, l_name); + found = autoresponse.find(lname_wildcard); + } found = autoresponse.find(time_wildcard); - } - //--> Personalized Autoresponse - - if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") && has && !typing_init) { - // send as busy auto response instead to prevent endless repeating replies - // when other end is a bot or broken client that answers to every usual IM - // reasoning for this decision can be found in RFC2812 3.3.2 Notices - // where PRIVMSG can be seen as IM_NOTHING_SPECIAL and NOTICE can be seen as - // IM_BUSY_AUTO_RESPONSE. The assumption here is that no existing client - // responds to IM_BUSY_AUTO_RESPONSE. --TS - std::string response = autoresponse; - pack_instant_message( - gMessageSystem, - gAgent.getID(), - FALSE, - gAgent.getSessionID(), - from_id, - my_name, - response, - IM_OFFLINE, - IM_BUSY_AUTO_RESPONSE, - session_id); - } else { - std::string response = "/me (auto-response): "+autoresponse; - pack_instant_message( - gMessageSystem, - gAgent.getID(), - FALSE, - gAgent.getSessionID(), - from_id, - my_name, - response, - IM_OFFLINE, - IM_NOTHING_SPECIAL, - session_id); - } - gAgent.sendReliableMessage(); - if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseItem") && (!has || typing_init)) - { - LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("InstantMessageResponseItemData"); - LLViewerInventoryItem* item = gInventory.getItem(itemid); - if(item) + while(found != std::string::npos) { - //childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); - if(show) + autoresponse.replace(found, 2, timestamp); + found = autoresponse.find(time_wildcard); + } + //--> Personalized Autoresponse + + if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") && has && !typing_init) { + // send as busy auto response instead to prevent endless repeating replies + // when other end is a bot or broken client that answers to every usual IM + // reasoning for this decision can be found in RFC2812 3.3.2 Notices + // where PRIVMSG can be seen as IM_NOTHING_SPECIAL and NOTICE can be seen as + // IM_BUSY_AUTO_RESPONSE. The assumption here is that no existing client + // responds to IM_BUSY_AUTO_RESPONSE. --TS + std::string response = autoresponse; + pack_instant_message( + gMessageSystem, + gAgent.getID(), + FALSE, + gAgent.getSessionID(), + from_id, + my_name, + response, + IM_OFFLINE, + IM_BUSY_AUTO_RESPONSE, + session_id); + } else { + std::string response = "/me (auto-response): "+autoresponse; + pack_instant_message( + gMessageSystem, + gAgent.getID(), + FALSE, + gAgent.getSessionID(), + from_id, + my_name, + response, + IM_OFFLINE, + IM_NOTHING_SPECIAL, + session_id); + } + gAgent.sendReliableMessage(); + if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseItem") && (!has || typing_init)) + { + LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("InstantMessageResponseItemData"); + LLViewerInventoryItem* item = gInventory.getItem(itemid); + if(item) { - gIMMgr->addMessage( - computed_session_id, - from_id, - SYSTEM_FROM, - llformat("Sent %s auto-response item \"%s\"",name.c_str(),item->getName().c_str()), - LLStringUtil::null, - IM_NOTHING_SPECIAL, - parent_estate_id, - region_id, - position, - false); + //childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); + if(show) + { + gIMMgr->addMessage( + computed_session_id, + from_id, + SYSTEM_FROM, + llformat("Sent %s auto-response item \"%s\"",name.c_str(),item->getName().c_str()), + LLStringUtil::null, + IM_NOTHING_SPECIAL, + parent_estate_id, + region_id, + position, + false); + } + LLToolDragAndDrop::giveInventory(from_id, item); } - LLToolDragAndDrop::giveInventory(from_id, item); } + //InstantMessageResponseItem< + } - //InstantMessageResponseItem< - } } } diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml index a9bd613..6d74882 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml @@ -1,11 +1,14 @@ + + mouse_opaque="true" name="im_response" width="245" word_wrap="true"/> + mouse_opaque="false" name="im_give_drop_target_rect" width="245"/> + v_pad="2" width="245"> Drop an inventory item here + mouse_opaque="false" name="im_give_disp_rect" width="245"/> + v_pad="2" width="245"> Currently set to: ITEM