From 3b6e5fb59ec2d19eb189e25408f2dd12cd3bb263 Mon Sep 17 00:00:00 2001 From: angela Date: Mon, 2 Nov 2009 12:19:24 +0800 Subject: EXT-1738 [BSI] Manage Telehub... in Region/Estate floater silently fails when clicked --- indra/newview/llfloaterregioninfo.cpp | 15 ++++---- indra/newview/llfloaterregioninfo.h | 8 +++-- indra/newview/llpanelmediasettingssecurity.cpp | 40 ++++++++++------------ .../skins/default/xui/en/panel_region_general.xml | 10 +++--- .../default/xui/en/panel_region_general_layout.xml | 10 +++--- 5 files changed, 44 insertions(+), 39 deletions(-) diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 11544f5b7b..17ddeb9d95 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -179,6 +179,8 @@ BOOL LLFloaterRegionInfo::postBuild() LLPanelRegionInfo* panel; panel = new LLPanelRegionGeneralInfo; mInfoPanels.push_back(panel); + panel->getCommitCallbackRegistrar().add("RegionInfo.ManageTelehub", boost::bind(&LLPanelRegionInfo::onClickManageTelehub, panel)); + LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_general.xml"); mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(true)); @@ -554,6 +556,12 @@ void LLPanelRegionInfo::onClickHelp(std::string xml_alert) LLNotifications::instance().add(xml_alert); } +void LLPanelRegionInfo::onClickManageTelehub() +{ + LLFloaterReg::hideInstance("region_info"); + LLFloaterReg::showInstance("telehubs"); +} + ///////////////////////////////////////////////////////////////////////////// // LLPanelRegionGeneralInfo // @@ -604,7 +612,6 @@ BOOL LLPanelRegionGeneralInfo::postBuild() childSetAction("kick_all_btn", onClickKickAll, this); childSetAction("im_btn", onClickMessage, this); // childSetAction("manage_telehub_btn", onClickManageTelehub, this); - mCommitCallbackRegistrar.add("RegionInfo.Cancel", boost::bind(&LLPanelRegionGeneralInfo::onClickManageTelehub, this)); return LLPanelRegionInfo::postBuild(); } @@ -712,11 +719,7 @@ bool LLPanelRegionGeneralInfo::onMessageCommit(const LLSD& notification, const L return false; } -void LLPanelRegionGeneralInfo::onClickManageTelehub() -{ - LLFloaterReg::hideInstance("region_info"); - LLFloaterReg::showInstance("telehubs"); -} + // setregioninfo // strings[0] = 'Y' - block terraform, 'N' - not diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h index 95833af8a1..94fbbf9feb 100644 --- a/indra/newview/llfloaterregioninfo.h +++ b/indra/newview/llfloaterregioninfo.h @@ -123,10 +123,13 @@ public: void enableButton(const std::string& btn_name, BOOL enable = TRUE); void disableButton(const std::string& btn_name); + void onClickManageTelehub(); + protected: void initCtrl(const std::string& name); void initHelpBtn(const std::string& name, const std::string& xml_alert); + // Callback for all help buttons, data is name of XML alert to show. void onClickHelp(std::string xml_alert); @@ -152,6 +155,7 @@ protected: class LLPanelRegionGeneralInfo : public LLPanelRegionInfo { + public: LLPanelRegionGeneralInfo() : LLPanelRegionInfo() {} @@ -161,16 +165,16 @@ public: // LLPanel virtual BOOL postBuild(); + protected: virtual BOOL sendUpdate(); - static void onClickKick(void* userdata); static void onKickCommit(const std::vector& names, const std::vector& ids, void* userdata); static void onClickKickAll(void* userdata); bool onKickAllCommit(const LLSD& notification, const LLSD& response); static void onClickMessage(void* userdata); bool onMessageCommit(const LLSD& notification, const LLSD& response); - void onClickManageTelehub(); + }; ///////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llpanelmediasettingssecurity.cpp b/indra/newview/llpanelmediasettingssecurity.cpp index f5607aa287..33f0952f53 100644 --- a/indra/newview/llpanelmediasettingssecurity.cpp +++ b/indra/newview/llpanelmediasettingssecurity.cpp @@ -50,10 +50,11 @@ LLPanelMediaSettingsSecurity::LLPanelMediaSettingsSecurity() : mParent( NULL ) { - // build dialog from XML - LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_security.xml"); mCommitCallbackRegistrar.add("Media.whitelistAdd", boost::bind(&LLPanelMediaSettingsSecurity::onBtnAdd, this)); mCommitCallbackRegistrar.add("Media.whitelistDelete", boost::bind(&LLPanelMediaSettingsSecurity::onBtnDel, this)); + // build dialog from XML + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_security.xml"); + } //////////////////////////////////////////////////////////////////////////////// @@ -62,10 +63,7 @@ BOOL LLPanelMediaSettingsSecurity::postBuild() { mEnableWhiteList = getChild< LLCheckBoxCtrl >( LLMediaEntry::WHITELIST_ENABLE_KEY ); mWhiteListList = getChild< LLScrollListCtrl >( LLMediaEntry::WHITELIST_KEY ); - - childSetAction("whitelist_add", onBtnAdd, this); - childSetAction("whitelist_del", onBtnDel, this); - + setDefaultBtn("whitelist_add"); return true; @@ -237,17 +235,17 @@ void LLPanelMediaSettingsSecurity::getValues( LLSD &fill_me_in ) const std::string LLPanelMediaSettingsSecurity::makeValidUrl( const std::string& src_url ) { // use LLURI to determine if we have a valid scheme - LLURI candidate_url( src_url ); - if ( candidate_url.scheme().empty() ) - { + LLURI candidate_url( src_url ); + if ( candidate_url.scheme().empty() ) + { // build a URL comprised of default scheme and the original fragment const std::string default_scheme( "http://" ); return default_scheme + src_url; - }; - - // we *could* test the "default scheme" + "original fragment" URL again - // using LLURI to see if it's valid but I think the outcome is the same - // in either case - our only option is to return the original URL + }; + + // we *could* test the "default scheme" + "original fragment" URL again + // using LLURI to see if it's valid but I think the outcome is the same + // in either case - our only option is to return the original URL // we *think* the original url passed in was valid return src_url; @@ -334,10 +332,10 @@ void LLPanelMediaSettingsSecurity::onBtnDel( void* userdata ) self->mWhiteListList->deleteSelectedItems(); } -//////////////////////////////////////////////////////////////////////////////// -// -void LLPanelMediaSettingsSecurity::setParent( LLFloaterMediaSettings* parent ) -{ - mParent = parent; -}; - +//////////////////////////////////////////////////////////////////////////////// +// +void LLPanelMediaSettingsSecurity::setParent( LLFloaterMediaSettings* parent ) +{ + mParent = parent; +}; + diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml index 160ae96fc4..b6d13a0fdd 100644 --- a/indra/newview/skins/default/xui/en/panel_region_general.xml +++ b/indra/newview/skins/default/xui/en/panel_region_general.xml @@ -299,10 +299,7 @@ left="108" name="apply_btn" top="320" - width="100"> - - + width="100"/> diff --git a/indra/newview/skins/default/xui/en/panel_region_general_layout.xml b/indra/newview/skins/default/xui/en/panel_region_general_layout.xml index 9b9c62dbf9..42297cdc07 100644 --- a/indra/newview/skins/default/xui/en/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/en/panel_region_general_layout.xml @@ -299,10 +299,7 @@ left="108" name="apply_btn" top="320" - width="100"> - - + width="100"/> -- cgit v1.2.3 From 25538beb77b66fe6968edcddd6e15a4133ec3564 Mon Sep 17 00:00:00 2001 From: angela Date: Mon, 2 Nov 2009 19:22:19 +0800 Subject: Script Editor: changing Mono checkbox doesn't enable Save button --- indra/newview/llpreviewscript.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index ac7abf1448..b391c6ff1d 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -452,7 +452,7 @@ bool LLScriptEdCore::hasChanged() { if (!mEditor) return false; - return !mEditor->isPristine(); + return ((!mEditor->isPristine() || mEnableSave) && mHasScriptData); } void LLScriptEdCore::draw() -- cgit v1.2.3 From e12d1371cc044560fb892d222acc253f7a015f0c Mon Sep 17 00:00:00 2001 From: angela Date: Mon, 2 Nov 2009 20:57:24 +0800 Subject: EXT-1736 [BSI] About Land > Objects > Object Owners list doesn't display names --- indra/newview/llfloaterland.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index bdf9842b01..7ec85f942b 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -1519,7 +1519,9 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo } // Placeholder for name. - item_params.columns.add().font(FONT).column("name"); + std::string name; + gCacheName->getFullName(owner_id, name); + item_params.columns.add().value(name).font(FONT).column("name"); object_count_str = llformat("%d", object_count); item_params.columns.add().value(object_count_str).font(FONT).column("count"); -- cgit v1.2.3 From 3ec9f79f0782539659963f159f6b94c86d1ebd7b Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Mon, 2 Nov 2009 15:51:55 +0000 Subject: DEV-40702: fixed the audio device enumeration code so that it works with Vivox V2 and V3 SDKs. We were assuming that the tag contains only a single tag (), but the V3 SDK returns other tags such as and . I also added the current Vivox SDK version to the About window so that it is easier to tell which version your client is actually using. --- indra/newview/llfloaterabout.cpp | 2 ++ indra/newview/llvoiceclient.cpp | 33 ++++++++++++---------- indra/newview/llvoiceclient.h | 5 ++++ .../newview/skins/default/xui/en/floater_about.xml | 1 + 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 63ea990d14..88658f7b9f 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -39,6 +39,7 @@ #include "llagent.h" #include "llappviewer.h" #include "llsecondlifeurls.h" +#include "llvoiceclient.h" #include "lluictrlfactory.h" #include "llviewertexteditor.h" #include "llviewercontrol.h" @@ -268,6 +269,7 @@ LLSD LLFloaterAbout::getInfo() info["J2C_VERSION"] = LLImageJ2C::getEngineInfo(); bool want_fullname = true; info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD(); + info["VIVOX_VERSION"] = gVoiceClient ? gVoiceClient->getAPIVersion() : "Unknown"; // TODO: Implement media plugin version query info["QT_WEBKIT_VERSION"] = "4.5.2"; diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 2834284a9b..df5481c874 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -254,6 +254,7 @@ protected: std::string nameString; std::string audioMediaString; std::string displayNameString; + std::string deviceString; int participantType; bool isLocallyMuted; bool isModeratorMuted; @@ -485,6 +486,14 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr) { gVoiceClient->clearRenderDevices(); } + else if (!stricmp("CaptureDevice", tag)) + { + deviceString.clear(); + } + else if (!stricmp("RenderDevice", tag)) + { + deviceString.clear(); + } else if (!stricmp("Buddies", tag)) { gVoiceClient->deleteAllBuddies(); @@ -508,7 +517,6 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr) void LLVivoxProtocolParser::EndTag(const char *tag) { const std::string& string = textBuffer; - bool clearbuffer = true; responseDepth--; @@ -580,6 +588,8 @@ void LLVivoxProtocolParser::EndTag(const char *tag) nameString = string; else if (!stricmp("DisplayName", tag)) displayNameString = string; + else if (!stricmp("Device", tag)) + deviceString = string; else if (!stricmp("AccountName", tag)) nameString = string; else if (!stricmp("ParticipantType", tag)) @@ -596,18 +606,13 @@ void LLVivoxProtocolParser::EndTag(const char *tag) uriString = string; else if (!stricmp("Presence", tag)) statusString = string; - else if (!stricmp("Device", tag)) - { - // This closing tag shouldn't clear the accumulated text. - clearbuffer = false; - } else if (!stricmp("CaptureDevice", tag)) { - gVoiceClient->addCaptureDevice(textBuffer); + gVoiceClient->addCaptureDevice(deviceString); } else if (!stricmp("RenderDevice", tag)) { - gVoiceClient->addRenderDevice(textBuffer); + gVoiceClient->addRenderDevice(deviceString); } else if (!stricmp("Buddy", tag)) { @@ -648,12 +653,8 @@ void LLVivoxProtocolParser::EndTag(const char *tag) else if (!stricmp("SubscriptionType", tag)) subscriptionType = string; - - if(clearbuffer) - { - textBuffer.clear(); - accumulateText= false; - } + textBuffer.clear(); + accumulateText= false; if (responseDepth == 0) { @@ -1160,7 +1161,8 @@ LLVoiceClient::LLVoiceClient() : mVoiceEnabled(false), mWriteInProgress(false), - mLipSyncEnabled(false) + mLipSyncEnabled(false), + mAPIVersion("Unknown") { gVoiceClient = this; @@ -3749,6 +3751,7 @@ void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusS { // Connector created, move forward. LL_INFOS("Voice") << "Connector.Create succeeded, Vivox SDK version is " << versionID << LL_ENDL; + mAPIVersion = versionID; mConnectorHandle = connectorHandle; if(getState() == stateConnectorStarting) { diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h index bddd18dee8..9df96d9a52 100644 --- a/indra/newview/llvoiceclient.h +++ b/indra/newview/llvoiceclient.h @@ -204,6 +204,9 @@ static void updatePosition(void); void keyDown(KEY key, MASK mask); void keyUp(KEY key, MASK mask); void middleMouseState(bool down); + + // Return the version of the Vivox library + std::string getAPIVersion() const { return mAPIVersion; } ///////////////////////////// // Accessors for data related to nearby speakers @@ -739,6 +742,8 @@ static std::string nameFromsipURI(const std::string &uri); BOOL mLipSyncEnabled; + std::string mAPIVersion; + typedef std::set observer_set_t; observer_set_t mParticipantObservers; diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index 02c6ed1b20..3f2636ae52 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -49,6 +49,7 @@ libcurl Version: [LIBCURL_VERSION] J2C Decoder Version: [J2C_VERSION] Audio Driver Version: [AUDIO_DRIVER_VERSION] Qt Webkit Version: [QT_WEBKIT_VERSION] +Vivox Version: [VIVOX_VERSION] -- cgit v1.2.3 From 9fb250e34430c356852f6a3109d04e4c904dfc96 Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Mon, 2 Nov 2009 16:15:22 +0000 Subject: DEV-40744 EXT-332: include viewer version information in the Buy L$ requests to the XML-RPC server, including the channel name and the major, minor, patch, and build version numbers. This information is needed by the international billing guys to determine whether an international customer is trying to use a 1.23 viewer to buy L$. --- indra/newview/llcurrencyuimanager.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp index 979a1a9a60..c4bfd71999 100644 --- a/indra/newview/llcurrencyuimanager.cpp +++ b/indra/newview/llcurrencyuimanager.cpp @@ -35,6 +35,8 @@ #include "lluictrlfactory.h" #include "lltextbox.h" #include "lllineeditor.h" +#include "llviewercontrol.h" +#include "llversionviewer.h" #include "llcurrencyuimanager.h" @@ -156,6 +158,11 @@ void LLCurrencyUIManager::Impl::updateCurrencyInfo() "secureSessionId", gAgent.getSecureSessionID().asString()); keywordArgs.appendInt("currencyBuy", mUserCurrencyBuy); + keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName")); + keywordArgs.appendInt("viewerMajorVersion", LL_VERSION_MAJOR); + keywordArgs.appendInt("viewerMinorVersion", LL_VERSION_MINOR); + keywordArgs.appendInt("viewerPatchVersion", LL_VERSION_PATCH); + keywordArgs.appendInt("viewerBuildVersion", LL_VERSION_BUILD); LLXMLRPCValue params = LLXMLRPCValue::createArray(); params.append(keywordArgs); @@ -209,7 +216,12 @@ void LLCurrencyUIManager::Impl::startCurrencyBuy(const std::string& password) { keywordArgs.appendString("password", password); } - + keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName")); + keywordArgs.appendInt("viewerMajorVersion", LL_VERSION_MAJOR); + keywordArgs.appendInt("viewerMinorVersion", LL_VERSION_MINOR); + keywordArgs.appendInt("viewerPatchVersion", LL_VERSION_PATCH); + keywordArgs.appendInt("viewerBuildVersion", LL_VERSION_BUILD); + LLXMLRPCValue params = LLXMLRPCValue::createArray(); params.append(keywordArgs); -- cgit v1.2.3 From b4b516b96689a2f8001bfebd641af7bb871ab11d Mon Sep 17 00:00:00 2001 From: James Cook Date: Mon, 2 Nov 2009 08:35:37 -0800 Subject: Fix unclear function names around Pacific versus "SLT" time in string operations. Reviewed with Brad. --- indra/llcommon/llstring.cpp | 16 ++++++++-------- indra/llcommon/llstring.h | 17 ++++++++++------- indra/newview/llappviewer.cpp | 2 -- indra/newview/llappviewer.h | 4 ---- indra/newview/lleventinfo.cpp | 1 - indra/newview/llfloaterbump.cpp | 1 - indra/newview/llstartup.cpp | 8 +++++--- indra/newview/llworldmap.cpp | 1 - 8 files changed, 23 insertions(+), 27 deletions(-) diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index 721e5670e7..c027aa7bdd 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -671,9 +671,9 @@ std::string ll_convert_wide_to_string(const wchar_t* in) } #endif // LL_WINDOWS -long LLStringOps::sltOffset; -long LLStringOps::localTimeOffset; -bool LLStringOps::daylightSavings; +long LLStringOps::sPacificTimeOffset = 0; +long LLStringOps::sLocalTimeOffset = 0; +bool LLStringOps::sPacificDaylightTime = 0; std::map LLStringOps::datetimeToCodes; S32 LLStringOps::collate(const llwchar* a, const llwchar* b) @@ -700,11 +700,11 @@ void LLStringOps::setupDatetimeInfo (bool daylight) tmpT = gmtime (&nowT); gmtT = mktime (tmpT); - localTimeOffset = (long) (gmtT - localT); + sLocalTimeOffset = (long) (gmtT - localT); - daylightSavings = daylight; - sltOffset = (daylightSavings? 7 : 8 ) * 60 * 60; + sPacificDaylightTime = daylight; + sPacificTimeOffset = (sPacificDaylightTime? 7 : 8 ) * 60 * 60; datetimeToCodes["wkday"] = "%a"; // Thu datetimeToCodes["weekday"] = "%A"; // Thursday @@ -957,7 +957,7 @@ bool LLStringUtil::formatDatetime(std::string& replacement, std::string token, } else if (param != "utc") // slt { - secFromEpoch -= LLStringOps::getSltOffset(); + secFromEpoch -= LLStringOps::getPacificTimeOffset(); } // if never fell into those two ifs above, param must be utc @@ -980,7 +980,7 @@ bool LLStringUtil::formatDatetime(std::string& replacement, std::string token, { // "slt" = Second Life Time, which is deprecated. // If not utc or user local time, fallback to Pacific time - replacement = LLStringOps::getDaylightSavings() ? "PDT" : "PST"; + replacement = LLStringOps::getPacificDaylightTime() ? "PDT" : "PST"; } return true; } diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h index 0f2f05a0d8..edbb007f61 100644 --- a/indra/llcommon/llstring.h +++ b/indra/llcommon/llstring.h @@ -151,9 +151,9 @@ struct char_traits class LL_COMMON_API LLStringOps { private: - static long sltOffset; - static long localTimeOffset; - static bool daylightSavings; + static long sPacificTimeOffset; + static long sLocalTimeOffset; + static bool sPacificDaylightTime; static std::map datetimeToCodes; public: @@ -184,10 +184,13 @@ public: static S32 collate(const char* a, const char* b) { return strcoll(a, b); } static S32 collate(const llwchar* a, const llwchar* b); - static void setupDatetimeInfo (bool daylight); - static long getSltOffset (void) {return sltOffset;} - static long getLocalTimeOffset (void) {return localTimeOffset;} - static bool getDaylightSavings (void) {return daylightSavings;} + static void setupDatetimeInfo(bool pacific_daylight_time); + static long getPacificTimeOffset(void) { return sPacificTimeOffset;} + static long getLocalTimeOffset(void) { return sLocalTimeOffset;} + // Is the Pacific time zone (aka server time zone) + // currently in daylight savings time? + static bool getPacificDaylightTime(void) { return sPacificDaylightTime;} + static std::string getDatetimeCode (std::string key); }; diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 06c9171d67..873215169e 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -238,8 +238,6 @@ U32 gFrameCount = 0; U32 gForegroundFrameCount = 0; // number of frames that app window was in foreground LLPumpIO* gServicePump = NULL; -BOOL gPacificDaylightTime = FALSE; - U64 gFrameTime = 0; F32 gFrameTimeSeconds = 0.f; F32 gFrameIntervalSeconds = 0.f; diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index d970aa6ae1..73256a8fe6 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -301,10 +301,6 @@ extern U32 gForegroundFrameCount; extern LLPumpIO* gServicePump; -// Is the Pacific time zone (aka server time zone) -// currently in daylight savings time? -extern BOOL gPacificDaylightTime; - extern U64 gFrameTime; // The timestamp of the most-recently-processed frame extern F32 gFrameTimeSeconds; // Loses msec precision after ~4.5 hours... extern F32 gFrameIntervalSeconds; // Elapsed time between current and previous gFrameTimeSeconds diff --git a/indra/newview/lleventinfo.cpp b/indra/newview/lleventinfo.cpp index 9be45d18fb..aabd7ed997 100644 --- a/indra/newview/lleventinfo.cpp +++ b/indra/newview/lleventinfo.cpp @@ -33,7 +33,6 @@ #include "llviewerprecompiledheaders.h" #include "lleventinfo.h" -#include "llappviewer.h" // for gPacificDaylightTime #include "lluuid.h" #include "message.h" diff --git a/indra/newview/llfloaterbump.cpp b/indra/newview/llfloaterbump.cpp index 8b64f913e0..68f06b1e5b 100644 --- a/indra/newview/llfloaterbump.cpp +++ b/indra/newview/llfloaterbump.cpp @@ -40,7 +40,6 @@ #include "llsd.h" #include "lluictrlfactory.h" #include "llviewermessage.h" -#include "llappviewer.h" // gPacificDaylightTime ///---------------------------------------------------------------------------- /// Class LLFloaterBump diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 43b039f94e..9aa74e8b9f 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1149,7 +1149,8 @@ bool idle_startup() } //setup map of datetime strings to codes and slt & local time offset from utc - LLStringOps::setupDatetimeInfo (gPacificDaylightTime); + // *TODO: Does this need to be here? + LLStringOps::setupDatetimeInfo (false); transition_back_to_login_panel(emsg.str()); show_connect_box = true; } @@ -3037,14 +3038,15 @@ bool process_login_success_response() gAgent.setGenderChosen(TRUE); } + bool pacific_daylight_time = false; flag = login_flags["daylight_savings"].asString(); if(flag == "Y") { - gPacificDaylightTime = (flag == "Y") ? TRUE : FALSE; + pacific_daylight_time = (flag == "Y"); } //setup map of datetime strings to codes and slt & local time offset from utc - LLStringOps::setupDatetimeInfo (gPacificDaylightTime); + LLStringOps::setupDatetimeInfo(pacific_daylight_time); } LLSD initial_outfit = response["initial-outfit"][0]; diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp index 829d631473..f198f3a0cf 100644 --- a/indra/newview/llworldmap.cpp +++ b/indra/newview/llworldmap.cpp @@ -37,7 +37,6 @@ #include "llregionhandle.h" #include "message.h" -#include "llappviewer.h" // for gPacificDaylightTime #include "llagent.h" #include "llmapresponders.h" #include "llviewercontrol.h" -- cgit v1.2.3 From f732ee6d2e24cd42a06b9cf51c8f6c577f2e476e Mon Sep 17 00:00:00 2001 From: David Parks Date: Mon, 2 Nov 2009 16:37:42 +0000 Subject: EXT-1336 Fix for hover highlight not working correctly with low detail settings. --- indra/newview/pipeline.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index b50e71bf48..b01a4f5161 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -7907,6 +7907,7 @@ void LLPipeline::generateHighlight(LLCamera& camera) mHighlight.flush(); gGL.setColorMask(true, false); + gViewerWindow->setup3DViewport(); } } -- cgit v1.2.3 From 94dfb5c933739fc69f8a6c083899d1cd313bc514 Mon Sep 17 00:00:00 2001 From: James Cook Date: Mon, 2 Nov 2009 08:48:33 -0800 Subject: Ignore WinMerge .bak temp files. Not reviewed. --- .hgignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.hgignore b/.hgignore index 8e02212e79..454be00dbf 100644 --- a/.hgignore +++ b/.hgignore @@ -1,6 +1,10 @@ syntax: glob +# WinMerge temp files +*.bak +# Compiled python bytecode *.pyc +# Emacs temp files *~ .*.swp LICENSES -- cgit v1.2.3 From 6e018f7143537af7bd9a08f1cc5c87ea4c8382c8 Mon Sep 17 00:00:00 2001 From: callum Date: Mon, 2 Nov 2009 10:31:05 -0800 Subject: Fix for compiler warning - passing F64 in as an int --- indra/media_plugins/example/media_plugin_example.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp index e873a0d034..99e0199a29 100644 --- a/indra/media_plugins/example/media_plugin_example.cpp +++ b/indra/media_plugins/example/media_plugin_example.cpp @@ -52,7 +52,7 @@ class MediaPluginExample : private: bool init(); - void update( int milliseconds ); + void update( F64 milliseconds ); void write_pixel( int x, int y, unsigned char r, unsigned char g, unsigned char b ); bool mFirstTime; @@ -276,7 +276,7 @@ void MediaPluginExample::receiveMessage( const char* message_string ) if ( key == ' ') { mLastUpdateTime = 0; - update( 0 ); + update( 0.0f ); }; }; } @@ -293,7 +293,7 @@ void MediaPluginExample::receiveMessage( const char* message_string ) mLastUpdateTime = 0; mFirstTime = true; mStopAction = false; - update( 0 ); + update( 0.0f ); } else if ( message_name == "browse_stop" ) @@ -302,7 +302,7 @@ void MediaPluginExample::receiveMessage( const char* message_string ) mXInc[ n ] = mYInc[ n ] = 0; mStopAction = true; - update( 0 ); + update( 0.0f ); } else { @@ -339,7 +339,7 @@ void MediaPluginExample::write_pixel( int x, int y, unsigned char r, unsigned ch //////////////////////////////////////////////////////////////////////////////// // -void MediaPluginExample::update( int milliseconds ) +void MediaPluginExample::update( F64 milliseconds ) { if ( mWidth < 1 || mWidth > 2048 || mHeight < 1 || mHeight > 2048 ) return; -- cgit v1.2.3 From 7d23b8432747c9c11834dac2b96019246073988a Mon Sep 17 00:00:00 2001 From: Monroe Linden Date: Mon, 2 Nov 2009 10:55:25 -0800 Subject: Hook up LLViewerMediaImpl::getName() to call through to LLPluginClassMedia::getMediaName() as it should. --- indra/newview/llviewermedia.cpp | 11 +++++++++++ indra/newview/llviewermedia.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index e89f17cf72..55e4f28e75 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1189,6 +1189,17 @@ BOOL LLViewerMediaImpl::handleMouseUp(S32 x, S32 y, MASK mask) return TRUE; } +////////////////////////////////////////////////////////////////////////////////////////// +std::string LLViewerMediaImpl::getName() const +{ + if (mMediaSource) + { + return mMediaSource->getMediaName(); + } + + return LLStringUtil::null; +}; + ////////////////////////////////////////////////////////////////////////////////////////// void LLViewerMediaImpl::navigateBack() { diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index dac0482078..517a76ce3d 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -228,7 +228,7 @@ public: /*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask) { return FALSE; }; /*virtual*/ BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask) { return FALSE; }; /*virtual*/ BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask) {return FALSE; }; - /*virtual*/ std::string getName() const { return LLStringUtil::null; }; + /*virtual*/ std::string getName() const; /*virtual*/ void screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const {}; /*virtual*/ void localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const {}; -- cgit v1.2.3 From b94d2ff4c5bd26ffe821a6f40c2bc5883ae2ebba Mon Sep 17 00:00:00 2001 From: James Cook Date: Mon, 2 Nov 2009 12:03:00 -0800 Subject: EXT-462 Fixed freeze/eject commands in right-click and avatar inspector menus We were incorrectly only enabling them for gods. They now properly enable for region/land owners. --- indra/newview/llinspectavatar.cpp | 37 ++++++- indra/newview/llviewermenu.cpp | 109 ++++++++++++--------- indra/newview/llviewermenu.h | 8 ++ .../default/xui/en/menu_inspect_avatar_gear.xml | 6 +- 4 files changed, 105 insertions(+), 55 deletions(-) diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 99580d0918..bfad2b1624 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -107,9 +107,12 @@ private: void onClickPay(); void onClickBlock(); void onClickReport(); + void onClickFreeze(); + void onClickEject(); void onClickZoomIn(); void onClickFindOnMap(); bool onVisibleFindOnMap(); + bool onVisibleFreezeEject(); void onClickMuteVolume(); void onVolumeChange(const LLSD& data); @@ -190,11 +193,16 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd) mCommitCallbackRegistrar.add("InspectAvatar.InviteToGroup", boost::bind(&LLInspectAvatar::onClickInviteToGroup, this)); mCommitCallbackRegistrar.add("InspectAvatar.Pay", boost::bind(&LLInspectAvatar::onClickPay, this)); mCommitCallbackRegistrar.add("InspectAvatar.Block", boost::bind(&LLInspectAvatar::onClickBlock, this)); + mCommitCallbackRegistrar.add("InspectAvatar.Freeze", + boost::bind(&LLInspectAvatar::onClickFreeze, this)); + mCommitCallbackRegistrar.add("InspectAvatar.Eject", + boost::bind(&LLInspectAvatar::onClickEject, this)); mCommitCallbackRegistrar.add("InspectAvatar.Report", boost::bind(&LLInspectAvatar::onClickReport, this)); mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap", boost::bind(&LLInspectAvatar::onClickFindOnMap, this)); mCommitCallbackRegistrar.add("InspectAvatar.ZoomIn", boost::bind(&LLInspectAvatar::onClickZoomIn, this)); mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap", boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this)); - + mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject", + boost::bind(&LLInspectAvatar::onVisibleFreezeEject, this)); // can't make the properties request until the widgets are constructed // as it might return immediately, so do it in postBuild. @@ -437,13 +445,13 @@ void LLInspectAvatar::nameUpdatedCallback( void LLInspectAvatar::onClickAddFriend() { LLAvatarActions::requestFriendshipDialog(mAvatarID, mAvatarName); + closeFloater(); } void LLInspectAvatar::onClickViewProfile() { - // hide inspector when showing profile - setFocus(FALSE); LLAvatarActions::showProfile(mAvatarID); + closeFloater(); } bool LLInspectAvatar::onVisibleFindOnMap() @@ -451,24 +459,33 @@ bool LLInspectAvatar::onVisibleFindOnMap() return gAgent.isGodlike() || is_agent_mappable(mAvatarID); } +bool LLInspectAvatar::onVisibleFreezeEject() +{ + return enable_freeze_eject( LLSD(mAvatarID) ); +} + void LLInspectAvatar::onClickIM() { LLAvatarActions::startIM(mAvatarID); + closeFloater(); } void LLInspectAvatar::onClickTeleport() { LLAvatarActions::offerTeleport(mAvatarID); + closeFloater(); } void LLInspectAvatar::onClickInviteToGroup() { LLAvatarActions::inviteToGroup(mAvatarID); + closeFloater(); } void LLInspectAvatar::onClickPay() { LLAvatarActions::pay(mAvatarID); + closeFloater(); } void LLInspectAvatar::onClickBlock() @@ -476,11 +493,25 @@ void LLInspectAvatar::onClickBlock() LLMute mute(mAvatarID, mAvatarName, LLMute::AGENT); LLMuteList::getInstance()->add(mute); LLPanelBlockedList::showPanelAndSelect(mute.mID); + closeFloater(); } void LLInspectAvatar::onClickReport() { LLFloaterReporter::showFromObject(mAvatarID); + closeFloater(); +} + +void LLInspectAvatar::onClickFreeze() +{ + handle_avatar_freeze( LLSD(mAvatarID) ); + closeFloater(); +} + +void LLInspectAvatar::onClickEject() +{ + handle_avatar_eject( LLSD(mAvatarID) ); + closeFloater(); } void LLInspectAvatar::onClickZoomIn() diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 864cf9d57b..9da9ff5ce7 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2963,11 +2963,20 @@ bool callback_freeze(const LLSD& notification, const LLSD& response) } -class LLAvatarFreeze : public view_listener_t +void handle_avatar_freeze(const LLSD& avatar_id) { - bool handleEvent(const LLSD& userdata) - { - LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); + // Use avatar_id if available, otherwise default to right-click avatar + LLVOAvatar* avatar = NULL; + if (avatar_id.asUUID().notNull()) + { + avatar = find_avatar_from_object(avatar_id.asUUID()); + } + else + { + avatar = find_avatar_from_object( + LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()); + } + if( avatar ) { std::string fullname = avatar->getFullname(); @@ -2991,9 +3000,7 @@ class LLAvatarFreeze : public view_listener_t callback_freeze); } } - return true; - } -}; +} class LLAvatarVisibleDebug : public view_listener_t { @@ -3003,14 +3010,6 @@ class LLAvatarVisibleDebug : public view_listener_t } }; -class LLAvatarEnableDebug : public view_listener_t -{ - bool handleEvent(const LLSD& userdata) - { - return gAgent.isGodlike(); - } -}; - class LLAvatarDebug : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -3087,11 +3086,20 @@ bool callback_eject(const LLSD& notification, const LLSD& response) return false; } -class LLAvatarEject : public view_listener_t +void handle_avatar_eject(const LLSD& avatar_id) { - bool handleEvent(const LLSD& userdata) - { - LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); + // Use avatar_id if available, otherwise default to right-click avatar + LLVOAvatar* avatar = NULL; + if (avatar_id.asUUID().notNull()) + { + avatar = find_avatar_from_object(avatar_id.asUUID()); + } + else + { + avatar = find_avatar_from_object( + LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()); + } + if( avatar ) { LLSD payload; @@ -3142,38 +3150,41 @@ class LLAvatarEject : public view_listener_t } } } - return true; - } -}; +} -class LLAvatarEnableFreezeEject : public view_listener_t +bool enable_freeze_eject(const LLSD& avatar_id) { - bool handleEvent(const LLSD& userdata) + // Use avatar_id if available, otherwise default to right-click avatar + LLVOAvatar* avatar = NULL; + if (avatar_id.asUUID().notNull()) { - LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); - bool new_value = (avatar != NULL); + avatar = find_avatar_from_object(avatar_id.asUUID()); + } + else + { + avatar = find_avatar_from_object( + LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()); + } + if (!avatar) return false; - if (new_value) - { - const LLVector3& pos = avatar->getPositionRegion(); - const LLVector3d& pos_global = avatar->getPositionGlobal(); - LLParcel* parcel = LLViewerParcelMgr::getInstance()->selectParcelAt(pos_global)->getParcel(); - LLViewerRegion* region = avatar->getRegion(); - new_value = (region != NULL); - - if (new_value) - { - new_value = region->isOwnedSelf(pos); - if (!new_value || region->isOwnedGroup(pos)) - { - new_value = LLViewerParcelMgr::getInstance()->isParcelOwnedByAgent(parcel,GP_LAND_ADMIN); - } - } - } + // Gods can always freeze + if (gAgent.isGodlike()) return true; - return new_value; + // Estate owners / managers can freeze + // Parcel owners can also freeze + const LLVector3& pos = avatar->getPositionRegion(); + const LLVector3d& pos_global = avatar->getPositionGlobal(); + LLParcel* parcel = LLViewerParcelMgr::getInstance()->selectParcelAt(pos_global)->getParcel(); + LLViewerRegion* region = avatar->getRegion(); + if (!region) return false; + + bool new_value = region->isOwnedSelf(pos); + if (!new_value || region->isOwnedGroup(pos)) + { + new_value = LLViewerParcelMgr::getInstance()->isParcelOwnedByAgent(parcel,GP_LAND_ADMIN); } -}; + return new_value; +} class LLAvatarGiveCard : public view_listener_t { @@ -8021,18 +8032,18 @@ void initialize_menus() view_listener_t::addMenu(new LLObjectMute(), "Avatar.Mute"); view_listener_t::addMenu(new LLAvatarAddFriend(), "Avatar.AddFriend"); view_listener_t::addMenu(new LLAvatarAddContact(), "Avatar.AddContact"); - view_listener_t::addMenu(new LLAvatarFreeze(), "Avatar.Freeze"); + commit.add("Avatar.Freeze", boost::bind(&handle_avatar_freeze, LLSD())); view_listener_t::addMenu(new LLAvatarDebug(), "Avatar.Debug"); view_listener_t::addMenu(new LLAvatarVisibleDebug(), "Avatar.VisibleDebug"); - view_listener_t::addMenu(new LLAvatarEnableDebug(), "Avatar.EnableDebug"); view_listener_t::addMenu(new LLAvatarInviteToGroup(), "Avatar.InviteToGroup"); view_listener_t::addMenu(new LLAvatarGiveCard(), "Avatar.GiveCard"); - view_listener_t::addMenu(new LLAvatarEject(), "Avatar.Eject"); + commit.add("Avatar.Eject", boost::bind(&handle_avatar_eject, LLSD())); view_listener_t::addMenu(new LLAvatarSendIM(), "Avatar.SendIM"); view_listener_t::addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse"); view_listener_t::addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend"); - view_listener_t::addMenu(new LLAvatarEnableFreezeEject(), "Avatar.EnableFreezeEject"); + enable.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2)); + visible.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2)); // Object pie menu view_listener_t::addMenu(new LLObjectBuild(), "Object.Build"); diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h index 6d32df2bc5..b65878b5e6 100644 --- a/indra/newview/llviewermenu.h +++ b/indra/newview/llviewermenu.h @@ -101,6 +101,14 @@ void handle_take_copy(); void handle_look_at_selection(const LLSD& param); void handle_zoom_to_object(LLUUID object_id); +// Takes avatar UUID, or if no UUID passed, uses last selected object +void handle_avatar_freeze(const LLSD& avatar_id); + +// Takes avatar UUID, or if no UUID passed, uses last selected object +void handle_avatar_eject(const LLSD& avatar_id); + +bool enable_freeze_eject(const LLSD& avatar_id); + // Can anyone take a free copy of the object? // *TODO: Move to separate file bool anyone_copy_selection(LLSelectNode* nodep); diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml index edff1a093a..6049476a43 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml @@ -68,7 +68,7 @@ + function="InspectAvatar.VisibleFreezeEject"/> + function="InspectAvatar.VisibleFreezeEject"/> + function="Avatar.Debug"/> -- cgit v1.2.3 From cf0c0e182441e442db78ded1a7139818502ae066 Mon Sep 17 00:00:00 2001 From: palange Date: Mon, 2 Nov 2009 12:12:32 -0800 Subject: Added build time script to help deploy shared libs for an arbitrary executable. indra/cmake/DeploySharedLibs.cmake is the script. LLSharedLibs.cmake contains a macro to ease adding DeployShaerdLibs to a targets build. Example usage to the mac-crash-reporter. Multiplatform and more to come soon. Reviewed by brad. --- indra/cmake/DeploySharedLibs.cmake | 67 +++++++++++++++++++++++++++++++++++ indra/cmake/LLSharedLibs.cmake | 31 ++++++++++++++++ indra/mac_crash_logger/CMakeLists.txt | 5 +++ 3 files changed, 103 insertions(+) create mode 100644 indra/cmake/DeploySharedLibs.cmake create mode 100644 indra/cmake/LLSharedLibs.cmake diff --git a/indra/cmake/DeploySharedLibs.cmake b/indra/cmake/DeploySharedLibs.cmake new file mode 100644 index 0000000000..a7e772bd75 --- /dev/null +++ b/indra/cmake/DeploySharedLibs.cmake @@ -0,0 +1,67 @@ +# DeploySharedLibs.cmake +# This is a script to be run at build time! Its not part of the cmake configuration! +# See indra/cmake/LLSharedLibs.cmake for a macro that simplifies adding a command to a target to run this script. + +# This script requires a few cmake variable to be set on the command line: +# BIN_NAME= The full path the the binary to search for dependecies. +# SEARCH_DIRS= The full paths to dirs to search for dependencies. +# DST_PATH= The full path where the dependecies will be copied. +include(GetPrerequisites) +message("Getting recursive dependencies for file: ${BIN_NAME}") +set(EXCLUDE_SYSTEM 1) +set(RECURSE 1) +get_filename_component(EXE_PATH ${BIN_NAME} PATH) + +get_prerequisites( ${BIN_NAME} RESULTS ${EXCLUDE_SYSTEM} ${RECURSE} "${EXE_PATH}" "${SEARCH_DIRS}" ) + +foreach(DEP ${RESULTS}) + Message("Processing dependency: ${DEP}") + get_filename_component(DEP_FILE ${DEP} NAME) + set(DEP_FILES ${DEP_FILES} ${DEP_FILE}) +endforeach(DEP) + +if(DEP_FILES) + list(REMOVE_DUPLICATES DEP_FILES) +endif(DEP_FILES) + +foreach(DEP_FILE ${DEP_FILES}) + if(FOUND_FILES) + list(FIND FOUND_FILES ${DEP_FILE} FOUND) + else(FOUND_FILES) + set(FOUND -1) + endif(FOUND_FILES) + + if(FOUND EQUAL -1) + find_path(DEP_PATH ${DEP_FILE} PATHS ${SEARCH_DIRS} NO_DEFAULT_PATH) + if(DEP_PATH) + set(FOUND_FILES ${FOUND_FILES} "${DEP_PATH}/${DEP_FILE}") + set(DEP_PATH NOTFOUND) #reset DEP_PATH for the next find_path call. + else(DEP_PATH) + set(MISSING_FILES ${MISSING_FILES} ${DEP_FILE}) + endif(DEP_PATH) + endif(FOUND EQUAL -1) +endforeach(DEP_FILE) + +if(MISSING_FILES) + message("Missing:") + foreach(FILE ${MISSING_FILES}) + message(" ${FILE}") + endforeach(FILE) + message("Searched in:") + foreach(SEARCH_DIR ${SEARCH_DIRS}) + message(" ${SEARCH_DIR}") + endforeach(SEARCH_DIR) + message(FATAL_ERROR "Failed") +endif(MISSING_FILES) + +if(FOUND_FILES) + foreach(FILE ${FOUND_FILES}) + get_filename_component(DST_FILE ${FILE} NAME) + set(DST_FILE "${DST_PATH}/${DST_FILE}") + message("Copying ${FILE} to ${DST_FILE}") + execute_process( + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FILE} ${DST_FILE} + ) + endforeach(FILE ${FOUND_FILES}) +endif(FOUND_FILES) +message("Success!") diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake new file mode 100644 index 0000000000..3be22ab401 --- /dev/null +++ b/indra/cmake/LLSharedLibs.cmake @@ -0,0 +1,31 @@ +# ll_deploy_sharedlibs_command +# target_exe: the cmake target of the executable for which the shared libs will be deployed. +# search_dirs: a list of dirs to search for the dependencies +# dst_path: path to copy deps to, relative to the output location of the target_exe +macro(ll_deploy_sharedlibs_command target_exe search_dirs dst_path) + get_target_property(OUTPUT_LOCATION ${target_exe} LOCATION) + + if(DARWIN) + get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE) + if(IS_BUNDLE) + get_filename_component(TARGET_FILE ${OUTPUT_LOCATION} NAME) + set(OUTPUT_PATH ${OUTPUT_LOCATION}.app/Contents/MacOS) + set(OUTPUT_LOCATION ${OUTPUT_PATH}/${TARGET_FILE}) + endif(IS_BUNDLE) + else(APPLE) + message(FATAL_ERROR "Only darwin currently supported!") + endif(DARWIN) + + add_custom_command( + TARGET ${target_exe} POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS + "-DBIN_NAME=\"${OUTPUT_LOCATION}\"" + "-DSEARCH_DIRS=\"${search_dirs}\"" + "-DDST_PATH=\"${OUTPUT_PATH}/${dst_path}\"" + "-P" + "${CMAKE_SOURCE_DIR}/cmake/DeploySharedLibs.cmake" + ) + +endmacro(ll_deploy_sharedlibs_command) + diff --git a/indra/mac_crash_logger/CMakeLists.txt b/indra/mac_crash_logger/CMakeLists.txt index daf3e10857..1d6494fecf 100644 --- a/indra/mac_crash_logger/CMakeLists.txt +++ b/indra/mac_crash_logger/CMakeLists.txt @@ -10,6 +10,7 @@ include(LLMessage) include(LLVFS) include(LLXML) include(Linking) +include(LLSharedLibs) include_directories( ${LLCOMMON_INCLUDE_DIRS} @@ -74,3 +75,7 @@ add_custom_command( ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib ) +ll_deploy_sharedlibs_command( + mac-crash-logger + "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR};${ARCH_PREBUILT_DIRS}" + "../Resources") -- cgit v1.2.3 From 74dda61dfbccfd9ab5ef309aeb4b2b8c86e06cd6 Mon Sep 17 00:00:00 2001 From: palange Date: Mon, 2 Nov 2009 12:37:42 -0800 Subject: Added ll_deploy_sharedlibs_command call to mac_updater --- indra/mac_updater/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/indra/mac_updater/CMakeLists.txt b/indra/mac_updater/CMakeLists.txt index 0eac76fa69..d7bd6f993c 100644 --- a/indra/mac_updater/CMakeLists.txt +++ b/indra/mac_updater/CMakeLists.txt @@ -77,3 +77,7 @@ add_custom_command( ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-updater.app/Contents/Resources/AutoUpdater.nib ) +ll_deploy_sharedlibs_command( + mac-updater + "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR};${ARCH_PREBUILT_DIRS}" + "../Resources") -- cgit v1.2.3 From 0c196fd7690743c5f469d57002ffee8034c554ee Mon Sep 17 00:00:00 2001 From: Erica Date: Mon, 2 Nov 2009 12:45:56 -0800 Subject: Bottom bar - Change snapshot combo to button, increase width for il8n EXT-2079, Remove deleted art from textures.xml EXT-2080 --- .../default/textures/bottomtray/Snapshot_Off.png | Bin 332 -> 3204 bytes indra/newview/skins/default/textures/textures.xml | 93 --------------------- .../skins/default/xui/en/panel_bottomtray.xml | 81 ++++++++---------- 3 files changed, 36 insertions(+), 138 deletions(-) diff --git a/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png b/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png index 6f2726c3e6..d7ec04237b 100644 Binary files a/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png and b/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png differ diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index c322d2aebb..e11e94778b 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -532,15 +532,6 @@ - - - - - - - - - @@ -605,54 +596,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -679,37 +622,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -725,11 +637,6 @@ - - - - - diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index 73a1bae1c6..179ef015f1 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -10,7 +10,7 @@ left="0" name="bottom_tray" top="28" - chrome="true" + chrome="true" border_visible="false" width="1000"> + filename="panel_nearby_chat_bar.xml" /> - - + + - -- cgit v1.2.3 From 2a79326ff63d26f6f7d51ae195dfc7ab4600b407 Mon Sep 17 00:00:00 2001 From: "Mark Palange (Mani)" Date: Mon, 2 Nov 2009 14:23:40 -0800 Subject: Removed tabs. Fixed errant 'else(APPLE)' --- indra/cmake/LLSharedLibs.cmake | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake index 3be22ab401..a8c81609bb 100644 --- a/indra/cmake/LLSharedLibs.cmake +++ b/indra/cmake/LLSharedLibs.cmake @@ -3,29 +3,29 @@ # search_dirs: a list of dirs to search for the dependencies # dst_path: path to copy deps to, relative to the output location of the target_exe macro(ll_deploy_sharedlibs_command target_exe search_dirs dst_path) - get_target_property(OUTPUT_LOCATION ${target_exe} LOCATION) + get_target_property(OUTPUT_LOCATION ${target_exe} LOCATION) - if(DARWIN) - get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE) - if(IS_BUNDLE) - get_filename_component(TARGET_FILE ${OUTPUT_LOCATION} NAME) - set(OUTPUT_PATH ${OUTPUT_LOCATION}.app/Contents/MacOS) - set(OUTPUT_LOCATION ${OUTPUT_PATH}/${TARGET_FILE}) - endif(IS_BUNDLE) - else(APPLE) - message(FATAL_ERROR "Only darwin currently supported!") - endif(DARWIN) - - add_custom_command( - TARGET ${target_exe} POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS - "-DBIN_NAME=\"${OUTPUT_LOCATION}\"" - "-DSEARCH_DIRS=\"${search_dirs}\"" - "-DDST_PATH=\"${OUTPUT_PATH}/${dst_path}\"" - "-P" - "${CMAKE_SOURCE_DIR}/cmake/DeploySharedLibs.cmake" - ) + if(DARWIN) + get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE) + if(IS_BUNDLE) + get_filename_component(TARGET_FILE ${OUTPUT_LOCATION} NAME) + set(OUTPUT_PATH ${OUTPUT_LOCATION}.app/Contents/MacOS) + set(OUTPUT_LOCATION ${OUTPUT_PATH}/${TARGET_FILE}) + endif(IS_BUNDLE) + else(DARWIN) + message(FATAL_ERROR "Only darwin currently supported!") + endif(DARWIN) + + add_custom_command( + TARGET ${target_exe} POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS + "-DBIN_NAME=\"${OUTPUT_LOCATION}\"" + "-DSEARCH_DIRS=\"${search_dirs}\"" + "-DDST_PATH=\"${OUTPUT_PATH}/${dst_path}\"" + "-P" + "${CMAKE_SOURCE_DIR}/cmake/DeploySharedLibs.cmake" + ) endmacro(ll_deploy_sharedlibs_command) -- cgit v1.2.3 From 44eea89d001ccb09343dda973af0dabecb1ec48d Mon Sep 17 00:00:00 2001 From: Rick Pasetto Date: Mon, 2 Nov 2009 15:10:08 -0800 Subject: Make the "default hover controls" be the "authored" controls (and I made a debug setting that can override this) --- indra/newview/app_settings/settings.xml | 12 +++++++++++- indra/newview/llpanelprimmediacontrols.cpp | 9 ++++++--- indra/newview/llviewermedia.h | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index c4722b772e..768fdd4103 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5294,7 +5294,6 @@ Value 1 - PluginInstancesCPULimit Comment @@ -5360,6 +5359,17 @@ U32 Value 13 + + PrimMediaControlsUseHoverControlSet + + Comment + Whether or not hovering over prim media uses minimal "hover" controls or the authored control set. + Persist + 1 + Type + Boolean + Value + 0 PrimMediaMaxRetries diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index e4b32c4820..58ca481b77 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -228,7 +228,10 @@ void LLPanelPrimMediaControls::updateShape() bool can_navigate = parcel->getMediaAllowNavigate(); bool enabled = false; - bool has_focus = media_impl->hasFocus(); + // There is no such thing as "has_focus" being different from normal controls set + // anymore (as of user feedback from bri 10/09). So we cheat here and force 'has_focus' + // to 'true' (or, actually, we use a setting) + bool has_focus = (gSavedSettings.getBOOL("PrimMediaControlsUseHoverControlSet")) ? media_impl->hasFocus() : true; setVisible(enabled); if (objectp) @@ -310,8 +313,8 @@ void LLPanelPrimMediaControls::updateShape() fwd_ctrl->setEnabled(has_focus); media_address_ctrl->setVisible(false); media_address_ctrl->setEnabled(false); - media_play_slider_panel->setVisible(!mini_controls); - media_play_slider_panel->setEnabled(!mini_controls); + media_play_slider_panel->setVisible(has_focus && !mini_controls); + media_play_slider_panel->setEnabled(has_focus && !mini_controls); volume_ctrl->setVisible(has_focus); volume_up_ctrl->setVisible(has_focus); diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 517a76ce3d..d6dde0c93e 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -258,7 +258,7 @@ public: void calculateInterest(); F64 getInterest() const { return mInterest; }; F64 getApproximateTextureInterest(); - S32 getProximity() { return mProximity; }; + S32 getProximity() const { return mProximity; }; // Mark this object as being used in a UI panel instead of on a prim // This will be used as part of the interest sorting algorithm. -- cgit v1.2.3 From 8af4e3359cb01f62089787aba7a436b7856d6098 Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Mon, 2 Nov 2009 23:44:21 +0000 Subject: EXT-1588: Remove support for automatic hyperlinking of URLs in notecards until this issue can be addressed correctly. The best solution would be to implement support for alternative display strings for URL text segments. That way, the raw text will contain the original URL string, but we can show a display-only alternate label for the URL. Until I get round to doing this, I'm turning off URL hyperlinking in notecards to avoid the potential for data loss. --- indra/newview/skins/default/xui/en/floater_preview_notecard.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml index 3797055054..b44de8e178 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml @@ -75,7 +75,7 @@ left="4" max_length="65536" name="Notecard Editor" - allow_html="true" + allow_html="false" handle_edit_keys_directly="true" tab_group="1" top="46" -- cgit v1.2.3 From f344c5b7ecf721329ef87044eeec06c6669618d8 Mon Sep 17 00:00:00 2001 From: "Eric M. Tulla (BigPapi)" Date: Mon, 2 Nov 2009 18:50:50 -0500 Subject: Fix for EXT-894: upload anim preview was using bad texture data instead of grey. Switched rendering of dummy mesh for previews (anim, etc) to use default image, instead of default avatar image. -Reviewed by nyx --- indra/newview/llviewerjointmesh.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewerjointmesh.cpp b/indra/newview/llviewerjointmesh.cpp index cd60a8d560..5b8902dec4 100644 --- a/indra/newview/llviewerjointmesh.cpp +++ b/indra/newview/llviewerjointmesh.cpp @@ -582,7 +582,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy) } else { - gGL.getTexUnit(0)->bind(LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR)); + gGL.getTexUnit(0)->bind(LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT)); } if (gRenderForSelect) -- cgit v1.2.3 From 3c1c0d7544805df7d77b7f2af4ab1f83ebf0839c Mon Sep 17 00:00:00 2001 From: Monroe Linden Date: Mon, 2 Nov 2009 17:58:10 -0800 Subject: Changed the operation of the "mute all" button in the nearby media floater to be closer to spec-compliant, per a design discussion this afternoon. --- indra/newview/llviewermediafocus.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index 2f7040aaa3..657c58364f 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -86,6 +86,9 @@ void LLViewerMediaFocus::setFocusFace(LLPointer objectp, S32 fac mFocusedObjectID = objectp->getID(); mFocusedObjectFace = face; mFocusedObjectNormal = pick_normal; + + // Focusing on a media face clears its disable flag. + media_impl->setDisabled(false); LLTextureEntry* tep = objectp->getTE(face); if(tep->hasMedia()) -- cgit v1.2.3 From d3bb2931abefc817af38e1db56fdc93197d01d12 Mon Sep 17 00:00:00 2001 From: CG Linden Date: Mon, 2 Nov 2009 22:21:36 -0800 Subject: Add missing eol at eof --- indra/llui/lliconctrl.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/llui/lliconctrl.cpp b/indra/llui/lliconctrl.cpp index 82ffac9580..b1bd2b89a9 100644 --- a/indra/llui/lliconctrl.cpp +++ b/indra/llui/lliconctrl.cpp @@ -123,4 +123,5 @@ void LLIconCtrl::setIconImageDrawSize() mImagep->getImage()->setKnownDrawSize(mDrawWidth, mDrawHeight) ; } } -} \ No newline at end of file +} + -- cgit v1.2.3 From 077025fa1ed40c4b7876e753a71c0cfab25308d0 Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Tue, 3 Nov 2009 10:28:57 +0000 Subject: DEV-39999: Removed all legacy help buttons and notifications from the code. All help should now go through the new help server, via the Help Browser floater. There should no longer be any custom "?" buttons in the UI - all - - Water Fog Color -