From 52baeb34b38d20f4bde5ee931621377ef9e4cb31 Mon Sep 17 00:00:00 2001 From: angela Date: Tue, 19 Jan 2010 11:06:17 +0800 Subject: EXT-4269 PDD: Add teleport destination to teleport warning dialog --- indra/newview/llinventorybridge.cpp | 8 ++++++-- indra/newview/skins/default/xui/en/notifications.xml | 2 +- indra/newview/skins/default/xui/en/panel_navigation_bar.xml | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'indra') diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index e9176da715..eacda5ad28 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -5093,8 +5093,12 @@ void LLLandmarkBridgeAction::doIt() // Opening (double-clicking) a landmark immediately teleports, // but warns you the first time. LLSD payload; - payload["asset_id"] = item->getAssetUUID(); - LLNotificationsUtil::add("TeleportFromLandmark", LLSD(), payload); + payload["asset_id"] = item->getAssetUUID(); + + LLSD args; + args["LOCATION"] = item->getDisplayName(); + + LLNotificationsUtil::add("TeleportFromLandmark", args, payload); } LLInvFVBridgeAction::doIt(); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 957b4d74db..0768706223 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3058,7 +3058,7 @@ Join me in [REGION] icon="alertmodal.tga" name="TeleportFromLandmark" type="alertmodal"> -Are you sure you want to teleport? +Are you sure you want to teleport to [LOCATION]? + bottom="55" + width="590"> Date: Tue, 19 Jan 2010 13:38:51 +0800 Subject: EXT-3833 [BSI] Build Tools -> Objects -> Slice Begin & End text unreadable --- indra/newview/skins/default/xui/en/floater_tools.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index a1e190fc5e..f1aa5c27c1 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -1687,6 +1687,7 @@ even though the user gets a free copy. Taper Date: Tue, 19 Jan 2010 18:18:59 +0800 Subject: EXT-1341 Inspectors - Break LLToolPie::handleTooltip into smaller functions, handleTooltipLand vs. handleTooltipObject --- indra/newview/lltoolpie.cpp | 569 ++++++++++++++++++++++---------------------- indra/newview/lltoolpie.h | 4 +- 2 files changed, 293 insertions(+), 280 deletions(-) (limited to 'indra') diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index da7e8cd767..cd44b04abd 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -661,341 +661,352 @@ static bool needs_tooltip(LLSelectNode* nodep) return false; } -BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask) -{ - if (!LLUI::sSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE; - if (!mHoverPick.isValid()) return TRUE; - - LLViewerObject* hover_object = mHoverPick.getObject(); - - // update hover object and hover parcel - LLSelectMgr::getInstance()->setHoverObject(hover_object, mHoverPick.mObjectFace); - if (mHoverPick.mPickType == LLPickInfo::PICK_LAND) +BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg) +{ + LLViewerParcelMgr::getInstance()->setHoverParcel( mHoverPick.mPosGlobal ); + // + // Do not show hover for land unless prefs are set to allow it. + // + + if (!gSavedSettings.getBOOL("ShowLandHoverTip")) return TRUE; + + // Didn't hit an object, but since we have a land point we + // must be hovering over land. + + LLParcel* hover_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel(); + LLUUID owner; + S32 width = 0; + S32 height = 0; + + if ( hover_parcel ) { - LLViewerParcelMgr::getInstance()->setHoverParcel( mHoverPick.mPosGlobal ); + owner = hover_parcel->getOwnerID(); + width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth()); + height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight()); } - - std::string tooltip_msg; - std::string line; - - if ( hover_object ) + + // Line: "Land" + line.clear(); + line.append(LLTrans::getString("TooltipLand")); + if (hover_parcel) + { + line.append(hover_parcel->getName()); + } + tooltip_msg.append(line); + tooltip_msg.push_back('\n'); + + // Line: "Owner: James Linden" + line.clear(); + line.append(LLTrans::getString("TooltipOwner") + " "); + + if ( hover_parcel ) { - if ( hover_object->isHUDAttachment() ) + std::string name; + if (LLUUID::null == owner) { - // no hover tips for HUD elements, since they can obscure - // what the HUD is displaying - return TRUE; + line.append(LLTrans::getString("TooltipPublic")); } - - if ( hover_object->isAttachment() ) + else if (hover_parcel->getIsGroupOwned()) { - // get root of attachment then parent, which is avatar - LLViewerObject* root_edit = hover_object->getRootEdit(); - if (!root_edit) + if (gCacheName->getGroupName(owner, name)) { - // Strange parenting issue, don't show any text - return TRUE; + line.append(name); + line.append(LLTrans::getString("TooltipIsGroup")); } - hover_object = (LLViewerObject*)root_edit->getParent(); - if (!hover_object) + else { - // another strange parenting issue, bail out - return TRUE; + line.append(LLTrans::getString("RetrievingData")); } } - - line.clear(); - if (hover_object->isAvatar()) + else if(gCacheName->getFullName(owner, name)) { - // only show tooltip if same inspector not already open - LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_avatar"); - if (!existing_inspector - || !existing_inspector->getVisible() - || existing_inspector->getKey()["avatar_id"].asUUID() != hover_object->getID()) - { - std::string avatar_name; - LLNameValue* firstname = hover_object->getNVPair("FirstName"); - LLNameValue* lastname = hover_object->getNVPair("LastName"); - if (firstname && lastname) - { - avatar_name = llformat("%s %s", firstname->getString(), lastname->getString()); - } - else - { - avatar_name = LLTrans::getString("TooltipPerson"); - } - - // *HACK: We may select this object, so pretend it was clicked - mPick = mHoverPick; - LLInspector::Params p; - p.fillFrom(LLUICtrlFactory::instance().getDefaultParams()); - p.message(avatar_name); - p.image.name("Inspector_I"); - p.click_callback(boost::bind(showAvatarInspector, hover_object->getID())); - p.visible_time_near(6.f); - p.visible_time_far(3.f); - p.delay_time(0.35f); - p.wrap(false); - - LLToolTipMgr::instance().show(p); - } + line.append(name); } else { - // - // We have hit a regular object (not an avatar or attachment) - // - - // - // Default prefs will suppress display unless the object is interactive - // - bool show_all_object_tips = - (bool)gSavedSettings.getBOOL("ShowAllObjectHoverTip"); - LLSelectNode *nodep = LLSelectMgr::getInstance()->getHoverNode(); - - // only show tooltip if same inspector not already open - LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_object"); - if (nodep && - (!existing_inspector - || !existing_inspector->getVisible() - || existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID())) - { - if (nodep->mName.empty()) - { - tooltip_msg.append(LLTrans::getString("TooltipNoName")); - } - else - { - tooltip_msg.append( nodep->mName ); - } - - bool is_time_based_media = false; - bool is_web_based_media = false; - bool is_media_playing = false; - - // Does this face have media? - const LLTextureEntry* tep = hover_object->getTE(mHoverPick.mObjectFace); - - if(tep) - { - const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL; - if (mep) - { - viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL; - LLPluginClassMedia* media_plugin = NULL; - - if (media_impl.notNull() && (media_impl->hasMedia())) - { - LLStringUtil::format_map_t args; - - media_plugin = media_impl->getMediaPlugin(); - if(media_plugin) - { if(media_plugin->pluginSupportsMediaTime()) - { - is_time_based_media = true; - is_web_based_media = false; - //args["[CurrentURL]"] = media_impl->getMediaURL(); - is_media_playing = media_impl->isMediaPlaying(); - } - else - { - is_time_based_media = false; - is_web_based_media = true; - //args["[CurrentURL]"] = media_plugin->getLocation(); - } - //tooltip_msg.append(LLTrans::getString("CurrentURL", args)); - } - } - } - } - - // also check the primary node since sometimes it can have an action even though - // the root node doesn't - bool needs_tip = needs_tooltip(nodep) || - needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode()); - - if (show_all_object_tips || needs_tip) - { - // We may select this object, so pretend it was clicked - mPick = mHoverPick; - LLInspector::Params p; - p.fillFrom(LLUICtrlFactory::instance().getDefaultParams()); - p.message(tooltip_msg); - p.image.name("Inspector_I"); - p.click_callback(boost::bind(showObjectInspector, hover_object->getID(), mHoverPick.mObjectFace)); - p.time_based_media(is_time_based_media); - p.web_based_media(is_web_based_media); - p.media_playing(is_media_playing); - p.click_playmedia_callback(boost::bind(playCurrentMedia, mHoverPick)); - p.click_homepage_callback(boost::bind(VisitHomePage, mHoverPick)); - p.visible_time_near(6.f); - p.visible_time_far(3.f); - p.delay_time(0.35f); - p.wrap(false); - - LLToolTipMgr::instance().show(p); - } - } + line.append(LLTrans::getString("RetrievingData")); } } - else if ( mHoverPick.mPickType == LLPickInfo::PICK_LAND ) + else { - // - // Do not show hover for land unless prefs are set to allow it. - // + line.append(LLTrans::getString("RetrievingData")); + } + tooltip_msg.append(line); + tooltip_msg.push_back('\n'); + + // Line: "no fly, not safe, no build" + + // Don't display properties for your land. This is just + // confusing, because you can do anything on your own land. + if ( hover_parcel && owner != gAgent.getID() ) + { + S32 words = 0; - if (!gSavedSettings.getBOOL("ShowLandHoverTip")) return TRUE; - - // Didn't hit an object, but since we have a land point we - // must be hovering over land. - - LLParcel* hover_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel(); - LLUUID owner; - S32 width = 0; - S32 height = 0; - - if ( hover_parcel ) - { - owner = hover_parcel->getOwnerID(); - width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth()); - height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight()); - } - - // Line: "Land" - line.clear(); - line.append(LLTrans::getString("TooltipLand")); - if (hover_parcel) - { - line.append(hover_parcel->getName()); - } - tooltip_msg.append(line); - tooltip_msg.push_back('\n'); - - // Line: "Owner: James Linden" line.clear(); - line.append(LLTrans::getString("TooltipOwner") + " "); - - if ( hover_parcel ) + // JC - Keep this in the same order as the checkboxes + // on the land info panel + if ( !hover_parcel->getAllowModify() ) { - std::string name; - if (LLUUID::null == owner) + if ( hover_parcel->getAllowGroupModify() ) { - line.append(LLTrans::getString("TooltipPublic")); + line.append(LLTrans::getString("TooltipFlagGroupBuild")); } - else if (hover_parcel->getIsGroupOwned()) + else { - if (gCacheName->getGroupName(owner, name)) - { - line.append(name); - line.append(LLTrans::getString("TooltipIsGroup")); - } - else - { - line.append(LLTrans::getString("RetrievingData")); - } + line.append(LLTrans::getString("TooltipFlagNoBuild")); } - else if(gCacheName->getFullName(owner, name)) + words++; + } + + if ( !hover_parcel->getAllowTerraform() ) + { + if (words) line.append(", "); + line.append(LLTrans::getString("TooltipFlagNoEdit")); + words++; + } + + if ( hover_parcel->getAllowDamage() ) + { + if (words) line.append(", "); + line.append(LLTrans::getString("TooltipFlagNotSafe")); + words++; + } + + // Maybe we should reflect the estate's block fly bit here as well? DK 12/1/04 + if ( !hover_parcel->getAllowFly() ) + { + if (words) line.append(", "); + line.append(LLTrans::getString("TooltipFlagNoFly")); + words++; + } + + if ( !hover_parcel->getAllowOtherScripts() ) + { + if (words) line.append(", "); + if ( hover_parcel->getAllowGroupScripts() ) { - line.append(name); + line.append(LLTrans::getString("TooltipFlagGroupScripts")); } else { - line.append(LLTrans::getString("RetrievingData")); + line.append(LLTrans::getString("TooltipFlagNoScripts")); } + + words++; } - else + + if (words) { - line.append(LLTrans::getString("RetrievingData")); + tooltip_msg.append(line); + tooltip_msg.push_back('\n'); } + } + + if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE)) + { + LLStringUtil::format_map_t args; + args["[AMOUNT]"] = llformat("%d", hover_parcel->getSalePrice()); + line = LLTrans::getString("TooltipForSaleL$", args); tooltip_msg.append(line); tooltip_msg.push_back('\n'); + } + + // trim last newlines + if (!tooltip_msg.empty()) + { + tooltip_msg.erase(tooltip_msg.size() - 1); + LLToolTipMgr::instance().show(tooltip_msg); + } + + return TRUE; +} - // Line: "no fly, not safe, no build" - - // Don't display properties for your land. This is just - // confusing, because you can do anything on your own land. - if ( hover_parcel && owner != gAgent.getID() ) +BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string line, std::string tooltip_msg) +{ + if ( hover_object->isHUDAttachment() ) + { + // no hover tips for HUD elements, since they can obscure + // what the HUD is displaying + return TRUE; + } + + if ( hover_object->isAttachment() ) + { + // get root of attachment then parent, which is avatar + LLViewerObject* root_edit = hover_object->getRootEdit(); + if (!root_edit) { - S32 words = 0; - - line.clear(); - // JC - Keep this in the same order as the checkboxes - // on the land info panel - if ( !hover_parcel->getAllowModify() ) + // Strange parenting issue, don't show any text + return TRUE; + } + hover_object = (LLViewerObject*)root_edit->getParent(); + if (!hover_object) + { + // another strange parenting issue, bail out + return TRUE; + } + } + + line.clear(); + if (hover_object->isAvatar()) + { + // only show tooltip if same inspector not already open + LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_avatar"); + if (!existing_inspector + || !existing_inspector->getVisible() + || existing_inspector->getKey()["avatar_id"].asUUID() != hover_object->getID()) + { + std::string avatar_name; + LLNameValue* firstname = hover_object->getNVPair("FirstName"); + LLNameValue* lastname = hover_object->getNVPair("LastName"); + if (firstname && lastname) { - if ( hover_parcel->getAllowGroupModify() ) - { - line.append(LLTrans::getString("TooltipFlagGroupBuild")); - } - else - { - line.append(LLTrans::getString("TooltipFlagNoBuild")); - } - words++; + avatar_name = llformat("%s %s", firstname->getString(), lastname->getString()); } - - if ( !hover_parcel->getAllowTerraform() ) + else { - if (words) line.append(", "); - line.append(LLTrans::getString("TooltipFlagNoEdit")); - words++; + avatar_name = LLTrans::getString("TooltipPerson"); } - - if ( hover_parcel->getAllowDamage() ) + + // *HACK: We may select this object, so pretend it was clicked + mPick = mHoverPick; + LLInspector::Params p; + p.fillFrom(LLUICtrlFactory::instance().getDefaultParams()); + p.message(avatar_name); + p.image.name("Inspector_I"); + p.click_callback(boost::bind(showAvatarInspector, hover_object->getID())); + p.visible_time_near(6.f); + p.visible_time_far(3.f); + p.delay_time(0.35f); + p.wrap(false); + + LLToolTipMgr::instance().show(p); + } + } + else + { + // + // We have hit a regular object (not an avatar or attachment) + // + + // + // Default prefs will suppress display unless the object is interactive + // + bool show_all_object_tips = + (bool)gSavedSettings.getBOOL("ShowAllObjectHoverTip"); + LLSelectNode *nodep = LLSelectMgr::getInstance()->getHoverNode(); + + // only show tooltip if same inspector not already open + LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_object"); + if (nodep && + (!existing_inspector + || !existing_inspector->getVisible() + || existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID())) + { + if (nodep->mName.empty()) { - if (words) line.append(", "); - line.append(LLTrans::getString("TooltipFlagNotSafe")); - words++; + tooltip_msg.append(LLTrans::getString("TooltipNoName")); } - - // Maybe we should reflect the estate's block fly bit here as well? DK 12/1/04 - if ( !hover_parcel->getAllowFly() ) + else { - if (words) line.append(", "); - line.append(LLTrans::getString("TooltipFlagNoFly")); - words++; + tooltip_msg.append( nodep->mName ); } - - if ( !hover_parcel->getAllowOtherScripts() ) + + bool is_time_based_media = false; + bool is_web_based_media = false; + bool is_media_playing = false; + + // Does this face have media? + const LLTextureEntry* tep = hover_object->getTE(mHoverPick.mObjectFace); + + if(tep) { - if (words) line.append(", "); - if ( hover_parcel->getAllowGroupScripts() ) + const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL; + if (mep) { - line.append(LLTrans::getString("TooltipFlagGroupScripts")); - } - else - { - line.append(LLTrans::getString("TooltipFlagNoScripts")); + viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL; + LLPluginClassMedia* media_plugin = NULL; + + if (media_impl.notNull() && (media_impl->hasMedia())) + { + LLStringUtil::format_map_t args; + + media_plugin = media_impl->getMediaPlugin(); + if(media_plugin) + { if(media_plugin->pluginSupportsMediaTime()) + { + is_time_based_media = true; + is_web_based_media = false; + //args["[CurrentURL]"] = media_impl->getMediaURL(); + is_media_playing = media_impl->isMediaPlaying(); + } + else + { + is_time_based_media = false; + is_web_based_media = true; + //args["[CurrentURL]"] = media_plugin->getLocation(); + } + //tooltip_msg.append(LLTrans::getString("CurrentURL", args)); + } + } } - - words++; } - - if (words) + + // also check the primary node since sometimes it can have an action even though + // the root node doesn't + bool needs_tip = needs_tooltip(nodep) || + needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode()); + + if (show_all_object_tips || needs_tip) { - tooltip_msg.append(line); - tooltip_msg.push_back('\n'); + // We may select this object, so pretend it was clicked + mPick = mHoverPick; + LLInspector::Params p; + p.fillFrom(LLUICtrlFactory::instance().getDefaultParams()); + p.message(tooltip_msg); + p.image.name("Inspector_I"); + p.click_callback(boost::bind(showObjectInspector, hover_object->getID(), mHoverPick.mObjectFace)); + p.time_based_media(is_time_based_media); + p.web_based_media(is_web_based_media); + p.media_playing(is_media_playing); + p.click_playmedia_callback(boost::bind(playCurrentMedia, mHoverPick)); + p.click_homepage_callback(boost::bind(VisitHomePage, mHoverPick)); + p.visible_time_near(6.f); + p.visible_time_far(3.f); + p.delay_time(0.35f); + p.wrap(false); + + LLToolTipMgr::instance().show(p); } } + } + + return TRUE; +} - if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE)) - { - LLStringUtil::format_map_t args; - args["[AMOUNT]"] = llformat("%d", hover_parcel->getSalePrice()); - line = LLTrans::getString("TooltipForSaleL$", args); - tooltip_msg.append(line); - tooltip_msg.push_back('\n'); - } +BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask) +{ + if (!LLUI::sSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE; + if (!mHoverPick.isValid()) return TRUE; - // trim last newlines - if (!tooltip_msg.empty()) - { - tooltip_msg.erase(tooltip_msg.size() - 1); - LLToolTipMgr::instance().show(tooltip_msg); - } - } + LLViewerObject* hover_object = mHoverPick.getObject(); + + // update hover object and hover parcel + LLSelectMgr::getInstance()->setHoverObject(hover_object, mHoverPick.mObjectFace); + + + std::string tooltip_msg; + std::string line; + if ( hover_object ) + { + handleTooltipObject(hover_object, line, tooltip_msg ); + } + else if (mHoverPick.mPickType == LLPickInfo::PICK_LAND) + { + handleTooltipLand(line, tooltip_msg); + } return TRUE; } diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h index 5f0e28fa95..8a4c949aef 100644 --- a/indra/newview/lltoolpie.h +++ b/indra/newview/lltoolpie.h @@ -89,7 +89,9 @@ private: bool handleMediaClick(const LLPickInfo& info); bool handleMediaHover(const LLPickInfo& info); - bool handleMediaMouseUp(); + bool handleMediaMouseUp(); + BOOL handleTooltipLand(std::string line, std::string tooltip_msg); + BOOL handleTooltipObject( LLViewerObject* hover_object, std::string line, std::string tooltip_msg); private: BOOL mGrabMouseButtonDown; -- cgit v1.2.3 From 40b6cb754122f613c1f3018786f095691ec382ff Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 20 Jan 2010 15:14:38 -0500 Subject: For EXT-4222: Switching outfits sometimes causes me to wear both, and show previous outfit as worn. Postpone appearance change until wearables have resolved. --- indra/llcommon/llfasttimer.h | 30 +++--- indra/newview/llappearancemgr.cpp | 200 ++++++++++++++++++++++---------------- indra/newview/llappearancemgr.h | 38 +++++++- 3 files changed, 168 insertions(+), 100 deletions(-) (limited to 'indra') diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h index cd76bfe709..4874ece958 100644 --- a/indra/llcommon/llfasttimer.h +++ b/indra/llcommon/llfasttimer.h @@ -99,21 +99,21 @@ inline U64 get_cpu_clock_count_64() #else #define LL_INLINE #endif - -#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__)) -inline U32 get_cpu_clock_count_32() -{ - U64 x; - __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); - return (U32)x >> 8; -} - -inline U32 get_cpu_clock_count_64() -{ - U64 x; - __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); - return x >> 8; -} + +#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__)) +inline U32 get_cpu_clock_count_32() +{ + U64 x; + __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); + return (U32)x >> 8; +} + +inline U32 get_cpu_clock_count_64() +{ + U64 x; + __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); + return x >> 8; +} #endif #if ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__))) || (LL_SOLARIS && defined(__sparc__)) diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 748d8bdfbf..0d4e048dde 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -274,6 +274,7 @@ private: struct LLFoundData { + LLFoundData() {} LLFoundData(const LLUUID& item_id, const LLUUID& asset_id, const std::string& name, @@ -292,20 +293,81 @@ struct LLFoundData }; -struct LLWearableHoldingPattern +class LLWearableHoldingPattern { - LLWearableHoldingPattern() : mResolved(0) {} - ~LLWearableHoldingPattern() - { - for_each(mFoundList.begin(), mFoundList.end(), DeletePointer()); - mFoundList.clear(); - } - typedef std::list found_list_t; +public: + LLWearableHoldingPattern(); + ~LLWearableHoldingPattern(); + + bool pollCompletion(); + bool isDone(); + + typedef std::list found_list_t; found_list_t mFoundList; + LLInventoryModel::item_array_t mObjItems; + LLInventoryModel::item_array_t mGestItems; S32 mResolved; - bool append; + LLTimer mWaitTime; }; +LLWearableHoldingPattern::LLWearableHoldingPattern(): + mResolved(0) +{ + llwarns << "constructor" << llendl; +} + +LLWearableHoldingPattern::~LLWearableHoldingPattern() +{ + llwarns << "destructor" << llendl; +} + +bool LLWearableHoldingPattern::isDone() +{ + return (mResolved >= (S32)mFoundList.size()); +} + +bool LLWearableHoldingPattern::pollCompletion() +{ + bool done = isDone(); + llwarns << "polling, done status: " << done << llendl; + if (done) + { + // Activate all gestures in this folder + if (mGestItems.count() > 0) + { + llinfos << "Activating " << mGestItems.count() << " gestures" << llendl; + + LLGestureManager::instance().activateGestures(mGestItems); + + // Update the inventory item labels to reflect the fact + // they are active. + LLViewerInventoryCategory* catp = + gInventory.getCategory(LLAppearanceManager::instance().getCOF()); + + if (catp) + { + gInventory.updateCategory(catp); + gInventory.notifyObservers(); + } + } + + // Update attachments to match those requested. + LLVOAvatar* avatar = gAgent.getAvatarObject(); + if( avatar ) + { + llinfos << "Updating " << mObjItems.count() << " attachments" << llendl; + LLAgentWearables::userUpdateAttachments(mObjItems); + } + + // Update wearables. + llinfos << "Updating agent wearables with " << mResolved << " wearable items " << llendl; + LLAppearanceManager::instance().updateAgentWearables(this, false); + + delete this; + } + return done; +} + static void removeDuplicateItems(LLInventoryModel::item_array_t& items) { LLInventoryModel::item_array_t new_items; @@ -336,26 +398,21 @@ static void removeDuplicateItems(LLInventoryModel::item_array_t& items) static void onWearableAssetFetch(LLWearable* wearable, void* data) { LLWearableHoldingPattern* holder = (LLWearableHoldingPattern*)data; - bool append = holder->append; if(wearable) { for (LLWearableHoldingPattern::found_list_t::iterator iter = holder->mFoundList.begin(); iter != holder->mFoundList.end(); ++iter) { - LLFoundData* data = *iter; - if(wearable->getAssetID() == data->mAssetID) + LLFoundData& data = *iter; + if(wearable->getAssetID() == data.mAssetID) { - data->mWearable = wearable; + data.mWearable = wearable; break; } } } holder->mResolved += 1; - if(holder->mResolved >= (S32)holder->mFoundList.size()) - { - LLAppearanceManager::instance().updateAgentWearables(holder, append); - } } LLUUID LLAppearanceManager::getCOF() @@ -662,12 +719,12 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, for (LLWearableHoldingPattern::found_list_t::iterator iter = holder->mFoundList.begin(); iter != holder->mFoundList.end(); ++iter) { - LLFoundData* data = *iter; - LLWearable* wearable = data->mWearable; + LLFoundData& data = *iter; + LLWearable* wearable = data.mWearable; if( wearable && ((S32)wearable->getType() == i) ) { LLViewerInventoryItem* item; - item = (LLViewerInventoryItem*)gInventory.getItem(data->mItemID); + item = (LLViewerInventoryItem*)gInventory.getItem(data.mItemID); if( item && (item->getAssetUUID() == wearable->getAssetID()) ) { items.put(item); @@ -683,8 +740,6 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, gAgentWearables.setWearableOutfit(items, wearables, !append); } - delete holder; - // dec_busy_count(); } @@ -706,86 +761,63 @@ void LLAppearanceManager::updateAppearanceFromCOF() LLInventoryModel::item_array_t gest_items; getUserDescendents(current_outfit_id, wear_items, obj_items, gest_items, follow_folder_links); - if( !wear_items.count() && !obj_items.count() && !gest_items.count()) + if(!wear_items.count()) { LLNotificationsUtil::add("CouldNotPutOnOutfit"); return; } - - // Processes that take time should show the busy cursor - //inc_busy_count(); // BAP this is currently a no-op in llinventorybridge.cpp - do we need it? - - // Activate all gestures in this folder - if (gest_items.count() > 0) - { - llinfos << "Activating " << gest_items.count() << " gestures" << llendl; - LLGestureManager::instance().activateGestures(gest_items); + LLWearableHoldingPattern* holder = new LLWearableHoldingPattern; - // Update the inventory item labels to reflect the fact - // they are active. - LLViewerInventoryCategory* catp = gInventory.getCategory(current_outfit_id); - if (catp) + holder->mObjItems = obj_items; + holder->mGestItems = gest_items; + + // Note: can't do normal iteration, because if all the + // wearables can be resolved immediately, then the + // callback will be called (and this object deleted) + // before the final getNextData(). + LLDynamicArray found_container; + for(S32 i = 0; i < wear_items.count(); ++i) + { + LLViewerInventoryItem *item = wear_items.get(i); + LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL; + if (item && linked_item) { - gInventory.updateCategory(catp); - gInventory.notifyObservers(); + LLFoundData found(linked_item->getUUID(), + linked_item->getAssetUUID(), + linked_item->getName(), + linked_item->getType()); + holder->mFoundList.push_front(found); + found_container.put(found); } - } - - if(wear_items.count() > 0) - { - // Note: can't do normal iteration, because if all the - // wearables can be resolved immediately, then the - // callback will be called (and this object deleted) - // before the final getNextData(). - LLWearableHoldingPattern* holder = new LLWearableHoldingPattern; - LLFoundData* found; - LLDynamicArray found_container; - for(S32 i = 0; i < wear_items.count(); ++i) + else { - LLViewerInventoryItem *item = wear_items.get(i); - LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL; - if (item && linked_item) + if (!item) { - found = new LLFoundData(linked_item->getUUID(), - linked_item->getAssetUUID(), - linked_item->getName(), - linked_item->getType()); - holder->mFoundList.push_front(found); - found_container.put(found); + llwarns << "attempt to wear a null item " << llendl; } - else + else if (!linked_item) { - if (!item) - { - llwarns << "attempt to wear a null item " << llendl; - } - else if (!linked_item) - { - llwarns << "attempt to wear a broken link " << item->getName() << llendl; - } + llwarns << "attempt to wear a broken link " << item->getName() << llendl; } } - for(S32 i = 0; i < found_container.count(); ++i) - { - holder->append = false; - found = found_container.get(i); - - // Fetch the wearables about to be worn. - LLWearableList::instance().getAsset(found->mAssetID, - found->mName, - found->mAssetType, - onWearableAssetFetch, - (void*)holder); - } } - // Update attachments to match those requested. - LLVOAvatar* avatar = gAgent.getAvatarObject(); - if( avatar ) + for(S32 i = 0; i < found_container.count(); ++i) { - LLAgentWearables::userUpdateAttachments(obj_items); + LLFoundData& found = found_container.get(i); + + // Fetch the wearables about to be worn. + LLWearableList::instance().getAsset(found.mAssetID, + found.mName, + found.mAssetType, + onWearableAssetFetch, + (void*)holder); + } + + doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollCompletion,holder)); + } void LLAppearanceManager::getDescendentsOfAssetType(const LLUUID& category, diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 20745b70e4..517face777 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -39,7 +39,7 @@ #include "llcallbacklist.h" class LLWearable; -struct LLWearableHoldingPattern; +class LLWearableHoldingPattern; class LLAppearanceManager: public LLSingleton { @@ -168,4 +168,40 @@ void doOnIdle(T callable) gIdleCallbacks.addFunction(&OnIdleCallback::onIdle,cb_functor); } +// Shim class and template function to allow arbitrary boost::bind +// expressions to be run as recurring idle callbacks. +template +class OnIdleCallbackRepeating +{ +public: + OnIdleCallbackRepeating(T callable): + mCallable(callable) + { + } + // Will keep getting called until the callable returns false. + static void onIdle(void *data) + { + OnIdleCallbackRepeating* self = reinterpret_cast*>(data); + bool done = self->call(); + if (done) + { + gIdleCallbacks.deleteFunction(onIdle, data); + delete self; + } + } + bool call() + { + return mCallable(); + } +private: + T mCallable; +}; + +template +void doOnIdleRepeating(T callable) +{ + OnIdleCallbackRepeating* cb_functor = new OnIdleCallbackRepeating(callable); + gIdleCallbacks.addFunction(&OnIdleCallbackRepeating::onIdle,cb_functor); +} + #endif -- cgit v1.2.3 From 1f0470e33404408c6228c9d0e3753f7ba43d3d96 Mon Sep 17 00:00:00 2001 From: Chuck Linden Date: Wed, 20 Jan 2010 15:44:34 -0500 Subject: Finished layout of appearance editor. http://jira.secondlife.com/browse/EXT-146 --- .../skins/default/xui/en/floater_customize.xml | 1496 ++++++++++---------- .../skins/default/xui/en/widgets/color_swatch.xml | 2 +- 2 files changed, 730 insertions(+), 768 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml index ddc0d9af72..b048eeceb6 100644 --- a/indra/newview/skins/default/xui/en/floater_customize.xml +++ b/indra/newview/skins/default/xui/en/floater_customize.xml @@ -3,7 +3,7 @@ legacy_header_height="18" can_minimize="false" follows="left|top" - height="607" + height="583" layout="topleft" left_delta="-3" name="floater customize" @@ -20,7 +20,7 @@ tab_min_width="96" tab_position="left" tab_height="50" - top="50" + top="26" width="506"> You do not have permission to modify this wearable. @@ -473,9 +472,9 @@ follows="left|top|right" height="28" layout="topleft" - left_delta="0" + left="10" name="no modify instructions" - top_delta="0" + top="31" word_wrap="true" width="373"> You do not have permission to modify this wearable. @@ -723,9 +722,9 @@ follows="left|top|right" height="28" layout="topleft" - left_delta="0" + left="10" name="no modify instructions" - top_delta="0" + top="31" word_wrap="true" width="373"> You do not have permission to modify this wearable. @@ -798,16 +797,16 @@ width="82" /> + width="400"> [DESC] @@ -845,9 +844,9 @@ font="SansSerif" height="16" layout="topleft" - left_delta="0" + left="31" name="title_no_modify" - top_delta="0" + top="10" width="355"> [DESC]: cannot modify @@ -858,9 +857,9 @@ font="SansSerif" height="16" layout="topleft" - left_delta="0" + left="31" name="title_loading" - top_delta="0" + top="10" width="355"> [DESC]: loading... @@ -871,21 +870,21 @@ font="SansSerif" height="16" layout="topleft" - left_delta="0" + left="31" name="title_not_worn" - top_delta="0" + top="10" width="355"> [DESC]: not worn Located in [PATH] @@ -895,9 +894,9 @@ follows="left|top|right" height="28" layout="topleft" - left_delta="0" + left="10" name="not worn instructions" - top_pad="8" + top="31" word_wrap="true" width="373"> Put on a new set of eyes by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it. @@ -908,9 +907,9 @@ follows="left|top|right" height="28" layout="topleft" - left_delta="0" + left="10" name="no modify instructions" - top_delta="0" + top="31" word_wrap="true" width="373"> You do not have permission to modify this wearable. @@ -918,14 +917,14 @@ Eyes: @@ -933,23 +932,22 @@ can_apply_immediately="true" default_image_name="Default" follows="left|top" - height="80" + height="108" label="Iris" layout="topleft" - left="8" + left="10" name="Iris" tool_tip="Click to choose a picture" - top="65" - width="64" /> + top="66" + width="82" /> - + + width="21" /> + + width="21" /> + + width="20" /> + width="21" /> - \ No newline at end of file + diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml index 86bea9be50..8918120918 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml @@ -3,14 +3,22 @@ height="25" name="offer_chiclet" width="25"> + + width="21" /> \ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml index b1f9f5b0e8..8e3541231d 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml @@ -3,14 +3,22 @@ height="25" name="script_chiclet" width="25"> + + width="21"/> Date: Wed, 20 Jan 2010 17:59:16 -0500 Subject: For EXT-4222: Switching outfits sometimes causes me to wear both, and show previous outfit as worn. --- indra/newview/llappearancemgr.cpp | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'indra') diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 0d4e048dde..ccda737fc6 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -301,6 +301,7 @@ public: bool pollCompletion(); bool isDone(); + bool isTimedOut(); typedef std::list found_list_t; found_list_t mFoundList; @@ -313,12 +314,10 @@ public: LLWearableHoldingPattern::LLWearableHoldingPattern(): mResolved(0) { - llwarns << "constructor" << llendl; } LLWearableHoldingPattern::~LLWearableHoldingPattern() { - llwarns << "destructor" << llendl; } bool LLWearableHoldingPattern::isDone() @@ -326,10 +325,16 @@ bool LLWearableHoldingPattern::isDone() return (mResolved >= (S32)mFoundList.size()); } +bool LLWearableHoldingPattern::isTimedOut() +{ + static F32 max_wait_time = 5.0; // give up if wearable fetches haven't completed in max_wait_time seconds. + return mWaitTime.getElapsedTimeF32() > max_wait_time; +} + bool LLWearableHoldingPattern::pollCompletion() { bool done = isDone(); - llwarns << "polling, done status: " << done << llendl; + llinfos << "polling, done status: " << done << llendl; if (done) { // Activate all gestures in this folder @@ -350,6 +355,10 @@ bool LLWearableHoldingPattern::pollCompletion() gInventory.notifyObservers(); } } + + // Update wearables. + llinfos << "Updating agent wearables with " << mResolved << " wearable items " << llendl; + LLAppearanceManager::instance().updateAgentWearables(this, false); // Update attachments to match those requested. LLVOAvatar* avatar = gAgent.getAvatarObject(); @@ -359,13 +368,17 @@ bool LLWearableHoldingPattern::pollCompletion() LLAgentWearables::userUpdateAttachments(mObjItems); } - // Update wearables. - llinfos << "Updating agent wearables with " << mResolved << " wearable items " << llendl; - LLAppearanceManager::instance().updateAgentWearables(this, false); - delete this; + return done; + } + else if (isTimedOut()) + { + llwarns << "wearables taking too long to fetch for outfit, retrying updateAppearanceFromCOF()." << llendl; + delete this; + LLAppearanceManager::instance().updateAppearanceFromCOF(); + return true; } - return done; + return false; } static void removeDuplicateItems(LLInventoryModel::item_array_t& items) -- cgit v1.2.3 From 1c1f465acc0ee587de077d27473558a8b41c04fd Mon Sep 17 00:00:00 2001 From: Erica Date: Wed, 20 Jan 2010 15:36:05 -0800 Subject: EXT-4482 [BSI] People > Profile - when window is too short, scroll bar cuts off text --- indra/newview/skins/default/xui/en/panel_profile.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index 597b6410cd..4ac7295a7f 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -66,6 +66,7 @@ layout="topleft" follows="left|top|right" height="505" + min_height="505" name="profile_scroll_panel" top="0" left="0" @@ -108,10 +109,10 @@ textbox.max_length="512" name="sl_description_edit" top_pad="-3" - width="185" + width="180" expanded_bg_visible="true" expanded_bg_color="DkGray"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet.Nullamma lesuada mauris sit amet ipsum. adipiscing elit. Ae nean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. @@ -286,7 +287,7 @@ height="28" layout="topleft" name="profile_buttons_panel" - auto_resize="false" + auto_resize="false" width="313"> - - Mouselook: - - - Mouse sensitivity - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - Web: - - - - - - - - - Proxy location: - - - - + + + + + Mouselook: + + + Mouse sensitivity + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + + Web: + + + + + + + + + Proxy location: + + + + \ No newline at end of file -- cgit v1.2.3 From 2981e9aa4cdbe083011d1f552bf0fe5178a499ce Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 15:10:25 -0800 Subject: checking for null in LLImageRaw::copy to prevent a crash --- indra/llimage/llimage.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'indra') diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp index 575ad5363d..e02be6c8c1 100644 --- a/indra/llimage/llimage.cpp +++ b/indra/llimage/llimage.cpp @@ -668,6 +668,12 @@ void LLImageRaw::fill( const LLColor4U& color ) // Src and dst can be any size. Src and dst can each have 3 or 4 components. void LLImageRaw::copy(LLImageRaw* src) { + if (!src) + { + llwarns << "LLImageRaw::copy called with a null src pointer" << llendl; + return; + } + LLImageRaw* dst = this; // Just for clarity. llassert( (3 == src->getComponents()) || (4 == src->getComponents()) ); -- cgit v1.2.3 From 8b8b86480821c209a057fd4433d1d810d186a4c1 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 15:10:45 -0800 Subject: EXT-4266 Can't "drop" object selected in select-face mode reviewed by Callum --- indra/newview/llviewermenu.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d2ba898cf0..5179bcaef7 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6065,7 +6065,8 @@ class LLAttachmentEnableDrop : public view_listener_t LLViewerJointAttachment* attachment = NULL; LLInventoryItem* item = NULL; - if (object) + // Do not enable drop if all faces of object are not enabled + if (object && LLSelectMgr::getInstance()->getSelection()->contains(object,SELECT_ALL_TES )) { S32 attachmentID = ATTACHMENT_ID_FROM_STATE(object->getState()); attachment = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, attachmentID, (LLViewerJointAttachment*)NULL); @@ -6107,8 +6108,14 @@ class LLAttachmentEnableDrop : public view_listener_t BOOL enable_detach(const LLSD&) { LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - if (!object) return FALSE; - if (!object->isAttachment()) return FALSE; + + // Only enable detach if all faces of object are selected + if (!object || + !object->isAttachment() || + !LLSelectMgr::getInstance()->getSelection()->contains(object,SELECT_ALL_TES )) + { + return FALSE; + } // Find the avatar who owns this attachment LLViewerObject* avatar = object; -- cgit v1.2.3 From 01af3b805a7cffbeb7ff51809e35399bc472bb2d Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 15:14:11 -0800 Subject: eol --- indra/newview/skins/default/xui/en/panel_preferences_setup.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index a0bd2bd438..9875062186 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -343,4 +343,4 @@ name="web_proxy_port" top_delta="0" width="140" /> - \ No newline at end of file + -- cgit v1.2.3 From 24328b6cc77daec2c42528fcf7025634519320db Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 15:15:39 -0800 Subject: Backed out changeset: 191ec27bc583 --- .../default/xui/en/panel_preferences_setup.xml | 688 ++++++++++----------- 1 file changed, 342 insertions(+), 346 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index a0bd2bd438..f6900cc31c 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -1,346 +1,342 @@ - - - - - Mouselook: - - - Mouse sensitivity - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - - Web: - - - - - - - - - Proxy location: - - - - \ No newline at end of file + + + + + Mouselook: + + + Mouse sensitivity + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + Web: + + + + + + + + + Proxy location: + + + + -- cgit v1.2.3 From 6a686700d0f51c02facb645208b7e21aa9b687d9 Mon Sep 17 00:00:00 2001 From: Monroe Linden Date: Thu, 21 Jan 2010 15:23:09 -0800 Subject: Minor cleanup to the logic in LLViewerParcelMedia::play(), to prevent duplication of code. --- indra/newview/llviewerparcelmedia.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'indra') diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index e8b435fc8f..e87dbe5c07 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -212,22 +212,15 @@ void LLViewerParcelMedia::play(LLParcel* parcel) else { // Since the texture id is different, we need to generate a new impl - LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL; // Delete the old one first so they don't fight over the texture. sMediaImpl = NULL; - - sMediaImpl = LLViewerMedia::newMediaImpl( - placeholder_texture_id, - media_width, - media_height, - media_auto_scale, - media_loop); - sMediaImpl->setIsParcelMedia(true); - sMediaImpl->navigateTo(media_url, mime_type, true); + + // A new impl will be created below. } } - else + + if(!sMediaImpl) { LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL; -- cgit v1.2.3 From 96721b3cccee96574695764871c8ac92ee5bb845 Mon Sep 17 00:00:00 2001 From: Monroe Linden Date: Thu, 21 Jan 2010 15:39:14 -0800 Subject: Partial fix for EXT-4508 (nearby media floater parcel media button breaks rtsp) This is actually two seperate issues: 1) After disabling parcel media from the nearby media floater, it can't be re-enabled 2) When you disable parcel media from the nearby media floater, faces displaying it don't revert to their original texture This change fixes issue (1), by forcing the priority of the inworld media instance to normal in LLViewerMedia::updateMedia() so it will always get reloaded instead of possibly being kept unloaded due to already-loaded prim media. Issue (2) is still under investigation. In addition to the case where you disable parcel media from the nearby media floater, it also doesn't restore the textures when you leave the parcel, and I think I've even seen it when unloading --- indra/newview/llviewermedia.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra') diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 04d67fe750..d712446d83 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -752,6 +752,11 @@ void LLViewerMedia::updateMedia(void *dummy_arg) new_priority = LLPluginClassMedia::PRIORITY_NORMAL; impl_count_interest_normal++; } + else if(pimpl->isParcelMedia()) + { + new_priority = LLPluginClassMedia::PRIORITY_NORMAL; + impl_count_interest_normal++; + } else { // Look at interest and CPU usage for instances that aren't in any of the above states. -- cgit v1.2.3 From c510fed273864fcfe299d276e55a52916c989b5f Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Thu, 21 Jan 2010 15:39:19 -0800 Subject: Soften another common llassert() failure to a warning. --- indra/newview/llviewertexturelist.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index e25ec8295c..ee934ab9c5 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -502,7 +502,10 @@ void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image) { llerrs << "LLViewerTextureList::addImageToList - Image already in list" << llendl; } - llverify((mImageList.insert(image)).second == true); + if ((mImageList.insert(image)).second != true) + { + llwarns << "BAD STUFF! (mImageList.insert(image)).second != true" << llendl; + } image->setInImageList(TRUE) ; } -- cgit v1.2.3 From 63441873cc4cca5c9d41dec3d313199a69c87b30 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 15:58:35 -0800 Subject: updating --- indra/newview/skins/default/xui/en/panel_preferences_setup.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index 8d505f4ad9..ac1ea26b38 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -873,5 +873,5 @@ min_val="10" name="web_proxy_port" top_delta="0" - width="140" /> + width="140"/> -- cgit v1.2.3 From 5432b9bd9a5979d24d814990957cbd1351e7ba48 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 16:00:51 -0800 Subject: fixing? --- .../default/xui/en/panel_preferences_setup.xml | 1754 ++++++++++---------- 1 file changed, 877 insertions(+), 877 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index ac1ea26b38..8d033c2ae6 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -1,877 +1,877 @@ - - - - - Mouselook: - - - Mouse sensitivity - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - Web: - - - - - - - - - Proxy location: - - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - - Web: - - - - - - - - - Proxy location: - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - - Web: - - - - - - - - - Proxy location: - - - - + + + + + Mouselook: + + + Mouse sensitivity + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + Web: + + + + + + + + + Proxy location: + + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + + Web: + + + + + + + + + Proxy location: + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + + Web: + + + + + + + + + Proxy location: + + + + -- cgit v1.2.3 From 9611af4f596c1f6ce1a0e3c91763b6e3ee343835 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 16:09:38 -0800 Subject: fixed. --- .../default/xui/en/panel_preferences_setup.xml | 1223 ++++++-------------- 1 file changed, 346 insertions(+), 877 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index 8d033c2ae6..ec7e140eed 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -1,877 +1,346 @@ - - - - - Mouselook: - - - Mouse sensitivity - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - Web: - - - - - - - - - Proxy location: - - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - - Web: - - - - - - - - - Proxy location: - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - - Web: - - - - - - - - - Proxy location: - - - - + + + + + Mouselook: + + + Mouse sensitivity + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + + Web: + + + + + + + + + Proxy location: + + + + -- cgit v1.2.3 From 79f252526f37781417ae1ea5b8dce0bbc148b14b Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Thu, 21 Jan 2010 16:10:29 -0800 Subject: another fix. --- .../default/xui/en/panel_preferences_setup.xml | 692 ++++++++++----------- 1 file changed, 346 insertions(+), 346 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index ec7e140eed..17ababe854 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -1,346 +1,346 @@ - - - - - Mouselook: - - - Mouse sensitivity - - - - - Network: - - - Maximum bandwidth - - - - kbps - - - - - - - Cache size - - - - MB - - - Cache location: - - - - - - - Web: - - - - - - - - - Proxy location: - - - - + + + + + Mouselook: + + + Mouse sensitivity + + + + + Network: + + + Maximum bandwidth + + + + kbps + + + + + + + Cache size + + + + MB + + + Cache location: + + + + + + + Web: + + + + + + + + + Proxy location: + + + + -- cgit v1.2.3 From 906284b99ffbf5974cb41987a702b7e51957643a Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Thu, 21 Jan 2010 16:26:37 -0800 Subject: Fix inverted logic from review. --- indra/newview/llviewertexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 2544e46bab..3f42cba561 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -1561,7 +1561,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority() void LLViewerFetchedTexture::setDecodePriority(F32 priority) { //llassert(!mInImageList); // firing a lot, figure out why - if (!mInImageList) // above llassert() softened to a warning + if (mInImageList) // above llassert() softened to a warning { llwarns << "BAD STUFF! mInImageList" << llendl; } -- cgit v1.2.3 From 84dfa02baf4aff336ec467acbe647618e9b4b21a Mon Sep 17 00:00:00 2001 From: Soft Linden Date: Fri, 22 Jan 2010 10:25:23 -0600 Subject: DEV-1195 SVC-580: ATTACH_LPEC / ATTACH_RPEC reversed --- indra/newview/app_settings/keywords.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index 14025c8061..0805e94b10 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -268,8 +268,8 @@ ATTACH_LHIP Passed to llAttachToAvatar to attach task to left hip ATTACH_LULEG Passed to llAttachToAvatar to attach task to left upper leg ATTACH_LLLEG Passed to llAttachToAvatar to attach task to left lower leg ATTACH_BELLY Passed to llAttachToAvatar to attach task to belly -ATTACH_RPEC Passed to llAttachToAvatar to attach task to right pectoral -ATTACH_LPEC Passed to llAttachToAvatar to attach task to left pectoral +ATTACH_LEFT_PEC Passed to llAttachToAvatar to attach task to left pectoral +ATTACH_RIGHT_PEC Passed to llAttachToAvatar to attach task to right pectoral LAND_LEVEL Passed to llModifyLand to level terrain LAND_RAISE Passed to llModifyLand to raise terrain -- cgit v1.2.3