From c077250ff16aeaf0ec4c036154a427c677e85eb3 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Fri, 4 Mar 2011 19:26:07 +0200 Subject: STORM-1016 FIXED Crash after pressing ctrl-shift-w while there is an undocked sidepanel. Reason: The shortcut closes all floaters, including those wrapping undocked sidepanels. The sidepanels get destroyed as well, while they are still referenced by the side tray. Fix: Dock (i.e. move to side tray) the sidepanel before its floater gets destroyed. --- indra/llui/llfloater.cpp | 7 ++++++- indra/llui/llfloater.h | 1 + indra/newview/llsidetray.cpp | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index c425782715..556278b139 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -2865,7 +2865,7 @@ void LLFloater::initFromParams(const LLFloater::Params& p) // close callback if (p.close_callback.isProvided()) { - mCloseSignal.connect(initCommitCallback(p.close_callback)); + setCloseCallback(initCommitCallback(p.close_callback)); } } @@ -2875,6 +2875,11 @@ boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_ return mMinimizeSignal->connect(cb); } +boost::signals2::connection LLFloater::setCloseCallback( const commit_signal_t::slot_type& cb ) +{ + return mCloseSignal.connect(cb); +} + LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build"); bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node) diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index bb96272d02..79570720cc 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -144,6 +144,7 @@ public: bool buildFromFile(const std::string &filename, LLXMLNodePtr output_node = NULL); boost::signals2::connection setMinimizeCallback( const commit_signal_t::slot_type& cb ); + boost::signals2::connection setCloseCallback( const commit_signal_t::slot_type& cb ); void initFromParams(const LLFloater::Params& p); bool initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node = NULL); diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index eb537c7d7b..6267242e28 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -96,6 +96,7 @@ bool LLSideTray::instanceCreated () class LLSideTrayTab: public LLPanel { + LOG_CLASS(LLSideTrayTab); friend class LLUICtrlFactory; friend class LLSideTray; public: @@ -122,6 +123,8 @@ protected: void undock(LLFloater* floater_tab); LLSideTray* getSideTray(); + + void onFloaterClose(LLSD::Boolean app_quitting); public: virtual ~LLSideTrayTab(); @@ -140,6 +143,8 @@ public: void onOpen (const LLSD& key); void toggleTabDocked(); + void setDocked(bool dock); + bool isDocked() const; BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); @@ -151,6 +156,7 @@ private: std::string mDescription; LLView* mMainPanel; + boost::signals2::connection mFloaterCloseConn; }; LLSideTrayTab::LLSideTrayTab(const Params& p) @@ -271,6 +277,35 @@ void LLSideTrayTab::toggleTabDocked() LLFloaterReg::toggleInstance("side_bar_tab", tab_name); } +// Same as toggleTabDocked() apart from making sure that we do exactly what we want. +void LLSideTrayTab::setDocked(bool dock) +{ + if (isDocked() == dock) + { + llwarns << "Tab " << getName() << " is already " << (dock ? "docked" : "undocked") << llendl; + return; + } + + toggleTabDocked(); +} + +bool LLSideTrayTab::isDocked() const +{ + return dynamic_cast(getParent()) != NULL; +} + +void LLSideTrayTab::onFloaterClose(LLSD::Boolean app_quitting) +{ + // If user presses Ctrl-Shift-W, handle that gracefully by docking all + // undocked tabs before their floaters get destroyed (STORM-1016). + + // Don't dock on quit for the current dock state to be correctly saved. + if (app_quitting) return; + + lldebugs << "Forcibly docking tab " << getName() << llendl; + setDocked(true); +} + BOOL LLSideTrayTab::handleScrollWheel(S32 x, S32 y, S32 clicks) { // Let children handle the event @@ -294,6 +329,7 @@ void LLSideTrayTab::dock(LLFloater* floater_tab) return; } + mFloaterCloseConn.disconnect(); setRect(side_tray->getLocalRect()); reshape(getRect().getWidth(), getRect().getHeight()); @@ -342,6 +378,7 @@ void LLSideTrayTab::undock(LLFloater* floater_tab) } floater_tab->addChild(this); + mFloaterCloseConn = floater_tab->setCloseCallback(boost::bind(&LLSideTrayTab::onFloaterClose, this, _2)); floater_tab->setTitle(mTabTitle); floater_tab->setName(getName()); -- cgit v1.2.3 From 65bdb537531141bcfb00163888540624a600a17b Mon Sep 17 00:00:00 2001 From: Jonathan Yap Date: Thu, 10 Mar 2011 06:44:03 -0500 Subject: STORM-1064 People sidebar panel elements have inconsistent widths and map is slightly too tall --- doc/contributions.txt | 1 + .../newview/skins/default/xui/en/panel_people.xml | 26 +++++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index e94acb566a..c44e3fe5d8 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -407,6 +407,7 @@ Jonathan Yap VWR-17801 VWR-24347 STORM-990 + STORM-1064 Kage Pixel VWR-11 Ken March diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 43431ea7c1..1a00416b2a 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -76,7 +76,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M follows="all" height="383" layout="topleft" - left="5" + left="3" name="tabs" tab_group="1" tab_min_width="70" @@ -84,7 +84,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M tab_position="top" top_pad="10" halign="center" - width="317"> + width="319"> + top="5"/> + width="306" /> @@ -251,7 +251,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M top_pad="1" left="0" name="bottom_panel" - width="305"> + width="308"> + width="210"> + width="210" /> @@ -506,7 +506,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M height="27" label="bottom_panel" layout="topleft" - left="0" + left="3" name="bottom_panel" top_pad="0" width="313"> @@ -544,7 +544,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M layout="topleft" left_pad="1" name="dummy_icon" - width="241" + width="244" /> -- cgit v1.2.3 From b6e6ba224620e0b122062c88f40295c10ce8db2d Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Thu, 10 Mar 2011 14:21:35 +0200 Subject: STORM-357 FIXED Gestures button is in the pressed state after drag-n-drop but gestures list isn't visible. - Because the Gesture Combo List isn't child of gViewerWindow->getNonSideTrayView(), after focus lost the gesture list becomes hidden under world. To avoid this, send child to front in each draw. --- indra/newview/llnearbychatbar.cpp | 11 +++++++++++ indra/newview/llnearbychatbar.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 836ae9a0cf..162e465fef 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -157,6 +157,16 @@ BOOL LLGestureComboList::handleKeyHere(KEY key, MASK mask) return handled; } +void LLGestureComboList::draw() +{ + LLUICtrl::draw(); + + if(mButton->getToggleState()) + { + showList(); + } +} + void LLGestureComboList::showList() { LLRect rect = mList->getRect(); @@ -180,6 +190,7 @@ void LLGestureComboList::showList() // Show the list and push the button down mButton->setToggleState(TRUE); mList->setVisible(TRUE); + sendChildToFront(mList); LLUI::addPopup(mList); } diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h index 033d1dd5a2..96ab45071b 100644 --- a/indra/newview/llnearbychatbar.h +++ b/indra/newview/llnearbychatbar.h @@ -72,6 +72,8 @@ public: virtual void hideList(); virtual BOOL handleKeyHere(KEY key, MASK mask); + virtual void draw(); + S32 getCurrentIndex() const; void onItemSelected(const LLSD& data); void sortByName(bool ascending = true); -- cgit v1.2.3 From 47b3d76790f3232db485a1dc909361bb31a38013 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 15 Mar 2011 16:12:43 -0400 Subject: Added tag 2.6.0-start for changeset 4e9eec6a347f --- .hgtags | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.hgtags b/.hgtags index 5eed83f2ca..8d5f290ff6 100644 --- a/.hgtags +++ b/.hgtags @@ -77,3 +77,5 @@ b53a0576eec80614d7767ed72b40ed67aeff27c9 DRTVWR-38_2.5.2-release b53a0576eec80614d7767ed72b40ed67aeff27c9 2.5.2-release 92e58e51776a4f8c29069b1a62ff21454d2085f0 2.6.0-start f1827b441e05bf37c68e2c15ebc6d09e9b03f527 2.6.0-start +f1827b441e05bf37c68e2c15ebc6d09e9b03f527 2.6.0-start +4e9eec6a347f89b2b3f295beb72f1cf7837dff66 2.6.0-start -- cgit v1.2.3 From 742dd75751f65224d80eb4f7d20daf5a21776c5f Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 15 Mar 2011 16:14:07 -0400 Subject: increment viewer version to 2.6.1 --- BuildParams | 5 +++++ indra/llcommon/llversionviewer.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/BuildParams b/BuildParams index 934bed6c5f..d4b1800508 100644 --- a/BuildParams +++ b/BuildParams @@ -48,6 +48,11 @@ viewer-beta.login_channel = "Second Life Beta Viewer" viewer-beta.build_debug_release_separately = true viewer-beta.build_viewer_update_version_manager = true +viewer-pre-beta.viewer_channel = "Second Life Beta Viewer" +viewer-pre-beta.login_channel = "Second Life Beta Viewer" +viewer-pre-beta.build_debug_release_separately = true +viewer-pre-beta.build_viewer_update_version_manager = true + # ======================================== # Viewer Release # ======================================== diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index 7d5afe92dc..117d96ffa6 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 2; const S32 LL_VERSION_MINOR = 6; -const S32 LL_VERSION_PATCH = 0; +const S32 LL_VERSION_PATCH = 1; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; -- cgit v1.2.3 From d27a695b0be6c16e11a8c06c23d59e4107523ef6 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 17 Mar 2011 12:25:28 -0400 Subject: remove unused configurations, modify my review build configuration --- BuildParams | 58 +--------------------------------------------------------- 1 file changed, 1 insertion(+), 57 deletions(-) diff --git a/BuildParams b/BuildParams index 1172fe1c71..3ce41adc3a 100644 --- a/BuildParams +++ b/BuildParams @@ -69,14 +69,6 @@ viewer-pre-release.build_debug_release_separately = true viewer-pre-release.build_viewer_update_version_manager = true #viewer-pre-release.release-viewer.jira = DRTVWR-13 -# ======================================== -# aimee -# ======================================== - -viewer-development-import.build_debug_release_separately = true -viewer-development-fixes.build_debug_release_separately = true -viewer-development-tweaks.build_debug_release_separately = true - # ======================================= # brad # ======================================== @@ -164,55 +156,7 @@ media.build_viewer_update_version_manager = false # oz # ================ -oz_viewer-review1_coverity.coverity_product = viewer - -oz_viewer-review1.build_Linux = true -oz_viewer-review1_debug.build_Linux = false -oz_viewer-review1_coverity.build_Linux = false - -oz_viewer-review1.build_Darwin = true -oz_viewer-review1_debug.build_Darwin = false -oz_viewer-review1_coverity.build_Darwin = false - -oz_viewer-review1.build_CYGWIN = true -oz_viewer-review1.build_CYGWIN_Debug = false -oz_viewer-review1.build_CYGWIN_RelWithDebInfo = false -oz_viewer-review1.build_CYGWIN_Release = true -oz_viewer-review1_debug.build_CYGWIN_Debug = true -oz_viewer-review1_debug.build_CYGWIN_RelWithDebInfo = true -oz_viewer-review1_debug.build_CYGWIN_Release = false -oz_viewer-review1_coverity.build_coverity = true -oz_viewer-review1_coverity.build_CYGWIN_Debug = false -oz_viewer-review1_coverity.build_CYGWIN_RelWithDebInfo = false -oz_viewer-review1_coverity.build_CYGWIN_Release = false - -oz_viewer-review2_coverity.coverity_product = viewer - -oz_viewer-review2.build_Linux = true -oz_viewer-review2_debug.build_Linux = false -oz_viewer-review2_coverity.build_Linux = false - -oz_viewer-review2.build_Darwin = true -oz_viewer-review2_debug.build_Darwin = false -oz_viewer-review2_coverity.build_Darwin = false - -oz_viewer-review2.build_CYGWIN = true -oz_viewer-review2.build_CYGWIN_Debug = false -oz_viewer-review2.build_CYGWIN_RelWithDebInfo = false -oz_viewer-review2.build_CYGWIN_Release = true -oz_viewer-review2_debug.build_CYGWIN_Debug = true -oz_viewer-review2_debug.build_CYGWIN_RelWithDebInfo = true -oz_viewer-review2_debug.build_CYGWIN_Release = false -oz_viewer-review2_coverity.build_coverity = true -oz_viewer-review2_coverity.build_CYGWIN_Debug = false -oz_viewer-review2_coverity.build_CYGWIN_RelWithDebInfo = false -oz_viewer-review2_coverity.build_CYGWIN_Release = false - -# ======================================== -# tofu -# ======================================== - -tofu_viewer-development-staging.email = tofu.linden@lindenlab.com +oz_viewer-devreview.build_debug_release_separately = true # ======================================== # enus -- cgit v1.2.3 From b3e444c74e0f31ba9d63d7bed934f017bf2499df Mon Sep 17 00:00:00 2001 From: callum Date: Thu, 17 Mar 2011 17:18:58 -0700 Subject: SOCIAL-634 FIX Error condition content for Destination Guide, Avatar Picker, and Help if S3 content or web content is not available. (Included refs to new LLQtWebKit that supports functionality) --- indra/llplugin/llpluginclassmedia.cpp | 16 ++++++---------- indra/llplugin/llpluginclassmedia.h | 5 ++++- indra/llplugin/llpluginclassmediaowner.h | 3 ++- indra/media_plugins/webkit/media_plugin_webkit.cpp | 18 +++++++++--------- indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/llfloaterwebcontent.cpp | 6 ++++++ indra/newview/llmediactrl.cpp | 16 ---------------- indra/newview/llmediactrl.h | 4 ---- install.xml | 8 ++++---- 9 files changed, 42 insertions(+), 45 deletions(-) diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 26a20cede8..57f91a57ca 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -146,6 +146,7 @@ void LLPluginClassMedia::reset() mClickURL.clear(); mClickTarget.clear(); mClickUUID.clear(); + mStatusCode = 0; // media_time class mCurrentTime = 0.0f; @@ -1027,6 +1028,11 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) mClickTarget.clear(); mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_NOFOLLOW); } + else if(message_name == "navigate_error_page") + { + mStatusCode = message.getValueS32("status_code"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_ERROR_PAGE); + } else if(message_name == "cookie_set") { if(mOwner) @@ -1192,16 +1198,6 @@ void LLPluginClassMedia::browse_back() sendMessage(message); } -void LLPluginClassMedia::set_status_redirect(int code, const std::string &url) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_status_redirect"); - - message.setValueS32("code", code); - message.setValue("url", url); - - sendMessage(message); -} - void LLPluginClassMedia::setBrowserUserAgent(const std::string& user_agent) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_user_agent"); diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index 618e928a08..a940633b88 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -199,7 +199,6 @@ public: void browse_reload(bool ignore_cache = false); void browse_forward(); void browse_back(); - void set_status_redirect(int code, const std::string &url); void setBrowserUserAgent(const std::string& user_agent); void proxyWindowOpened(const std::string &target, const std::string &uuid); void proxyWindowClosed(const std::string &uuid); @@ -232,6 +231,9 @@ public: // This is valid during MEDIA_EVENT_CLICK_LINK_HREF and MEDIA_EVENT_GEOMETRY_CHANGE std::string getClickUUID() const { return mClickUUID; }; + + // This is valid after MEDIA_EVENT_NAVIGATE_ERROR_PAGE + S32 getStatusCode() const { return mStatusCode; }; // These are valid during MEDIA_EVENT_GEOMETRY_CHANGE S32 getGeometryX() const { return mGeometryX; }; @@ -384,6 +386,7 @@ protected: S32 mGeometryY; S32 mGeometryWidth; S32 mGeometryHeight; + S32 mStatusCode; std::string mAuthURL; std::string mAuthRealm; std::string mHoverText; diff --git a/indra/llplugin/llpluginclassmediaowner.h b/indra/llplugin/llpluginclassmediaowner.h index 42e93cc6d7..5a4fb1ce90 100644 --- a/indra/llplugin/llpluginclassmediaowner.h +++ b/indra/llplugin/llpluginclassmediaowner.h @@ -52,12 +52,13 @@ public: MEDIA_EVENT_STATUS_TEXT_CHANGED, // browser has updated the status text MEDIA_EVENT_NAME_CHANGED, // browser has updated the name of the media (typically tag) MEDIA_EVENT_LOCATION_CHANGED, // browser location (URL) has changed (maybe due to internal navagation/frames/etc) + MEDIA_EVENT_NAVIGATE_ERROR_PAGE, // browser navigated to a page that resulted in an HTTP error MEDIA_EVENT_CLICK_LINK_HREF, // I'm not entirely sure what the semantics of these two are MEDIA_EVENT_CLICK_LINK_NOFOLLOW, MEDIA_EVENT_CLOSE_REQUEST, // The plugin requested its window be closed (currently hooked up to javascript window.close in webkit) MEDIA_EVENT_PICK_FILE_REQUEST, // The plugin wants the user to pick a file MEDIA_EVENT_GEOMETRY_CHANGE, // The plugin requested its window geometry be changed (per the javascript window interface) - + MEDIA_EVENT_PLUGIN_FAILED_LAUNCH, // The plugin failed to launch MEDIA_EVENT_PLUGIN_FAILED, // The plugin died unexpectedly diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index d6f8ae3e16..c1bc9adec0 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -490,6 +490,15 @@ private: } } + //////////////////////////////////////////////////////////////////////////////// + // virtual + void onNavigateErrorPage(const EventType& event) + { + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "navigate_error_page"); + message.setValueS32("status_code", event.getIntValue()); + sendMessage(message); + } + //////////////////////////////////////////////////////////////////////////////// // virtual void onLocationChange(const EventType& event) @@ -1225,15 +1234,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) { LLQtWebKit::getInstance()->userAction( mBrowserWindowId, LLQtWebKit::UA_NAVIGATE_BACK ); } - else if(message_name == "set_status_redirect") - { - int code = message_in.getValueS32("code"); - std::string url = message_in.getValue("url"); - if ( 404 == code ) // browser lib only supports 404 right now - { - LLQtWebKit::getInstance()->set404RedirectUrl( mBrowserWindowId, url ); - }; - } else if(message_name == "set_user_agent") { mUserAgent = message_in.getValue("user_agent"); diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6a89f5681d..c626538808 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12586,5 +12586,16 @@ <key>Value</key> <integer>1</integer> </map> + <key>WebContentFloaterErrorURL</key> + <map> + <key>Comment</key> + <string>URL to navigate to if the Web content floater hits a page with a 400-499 HTTP status code</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>String</string> + <key>Value</key> + <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/damballah/404.html</string> + </map> </map> </llsd> diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index 058567492b..76fb985b39 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -328,6 +328,12 @@ void LLFloaterWebContent::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent const std::string link = self->getHoverLink(); mStatusBarText->setText( link ); } + else if(event == MEDIA_EVENT_NAVIGATE_ERROR_PAGE ) + { + std::string redirect_url = gSavedSettings.getString("WebContentFloaterErrorURL"); + mWebBrowser->navigateTo(redirect_url, "text/html"); + set_current_url(redirect_url); + } } void LLFloaterWebContent::set_current_url(const std::string& url) diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 9493fddf50..24038d0ee6 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -501,22 +501,6 @@ bool LLMediaCtrl::canNavigateForward() return false; } -//////////////////////////////////////////////////////////////////////////////// -// -void LLMediaCtrl::set404RedirectUrl( std::string redirect_url ) -{ - if(mMediaSource && mMediaSource->hasMedia()) - mMediaSource->getMediaPlugin()->set_status_redirect( 404, redirect_url ); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLMediaCtrl::clr404RedirectUrl() -{ - if(mMediaSource && mMediaSource->hasMedia()) - mMediaSource->getMediaPlugin()->set_status_redirect(404, ""); -} - //////////////////////////////////////////////////////////////////////////////// // void LLMediaCtrl::clearCache() diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 38a74f90d3..7a28b0986d 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -113,10 +113,6 @@ public: void setTarget(const std::string& target); - // set/clear URL to visit when a 404 page is reached - void set404RedirectUrl( std::string redirect_url ); - void clr404RedirectUrl(); - // Clear the browser cache when the instance gets loaded void clearCache(); diff --git a/install.xml b/install.xml index c91bec8535..e05c93b707 100644 --- a/install.xml +++ b/install.xml @@ -981,9 +981,9 @@ anguage Infrstructure (CLI) international standard</string> <key>darwin</key> <map> <key>md5sum</key> - <string>13f9be04ba029d19f822abdcb755c700</string> + <string>a5fb7db2c7722fa0cf0a02ee535a97a0</string> <key>url</key> - <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-4.7.1-20110302.tar.bz2</uri> + <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110317.tar.bz2</uri> </map> <key>linux</key> <map> @@ -995,9 +995,9 @@ anguage Infrstructure (CLI) international standard</string> <key>windows</key> <map> <key>md5sum</key> - <string>7cc9626ff4ac035f8605c996d18ea6a9</string> + <string>c5344b115345770080fc1f6d2a0cfbd7</string> <key>url</key> - <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.7.1-20110302.tar.bz2</uri> + <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.7.1-20110317.tar.bz2</uri> </map> </map> </map> -- cgit v1.2.3 From efc57ea349d634d2bef1a554a925bea60f26f307 Mon Sep 17 00:00:00 2001 From: callum <none@none> Date: Thu, 17 Mar 2011 18:50:44 -0700 Subject: Fix for Mac specific compiler error. All enumerants of an enum have to be present in a switch statement if there is no default. --- indra/newview/llmediactrl.cpp | 6 ++++++ indra/newview/llviewerparcelmedia.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 24038d0ee6..376e38ade3 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -960,6 +960,12 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) }; break; + case MEDIA_EVENT_NAVIGATE_ERROR_PAGE: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL; + }; + break; + case MEDIA_EVENT_CLICK_LINK_HREF: { LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << self->getClickTarget() << "\", uri is " << self->getClickURL() << LL_ENDL; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index 40f0b43313..dfa35edef4 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -539,6 +539,12 @@ void LLViewerParcelMedia::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent }; break; + case MEDIA_EVENT_NAVIGATE_ERROR_PAGE: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL; + }; + break; + case MEDIA_EVENT_CLICK_LINK_HREF: { LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << self->getClickTarget() << "\", uri is " << self->getClickURL() << LL_ENDL; -- cgit v1.2.3 From ff353a4194810d057d3e57b0b12665e133a22093 Mon Sep 17 00:00:00 2001 From: callum <none@none> Date: Thu, 17 Mar 2011 19:28:13 -0700 Subject: SOCIAL-634 REFIX Error condition content for Destination Guide, Avatar Picker, and Help if S3 content or web content is not available. (Included refs to new (newer) LLQtWebKit that supports functionality) --- install.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.xml b/install.xml index e05c93b707..9d18848076 100644 --- a/install.xml +++ b/install.xml @@ -981,7 +981,7 @@ anguage Infrstructure (CLI) international standard</string> <key>darwin</key> <map> <key>md5sum</key> - <string>a5fb7db2c7722fa0cf0a02ee535a97a0</string> + <string>9346c475a37e3f11ea701c6ebd12d736</string> <key>url</key> <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110317.tar.bz2</uri> </map> @@ -995,7 +995,7 @@ anguage Infrstructure (CLI) international standard</string> <key>windows</key> <map> <key>md5sum</key> - <string>c5344b115345770080fc1f6d2a0cfbd7</string> + <string>1e66b1ecab911a60ba50b59361ef62e1</string> <key>url</key> <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.7.1-20110317.tar.bz2</uri> </map> -- cgit v1.2.3 From 6683b6edd5d32da51e7bbfbbec0f2fe68a78596f Mon Sep 17 00:00:00 2001 From: Richard Linden <none@none> Date: Fri, 18 Mar 2011 11:38:47 -0700 Subject: SOCIAL-760 FIX Make click-drag camera rotation more stable --- indra/newview/lltoolpie.cpp | 122 ++++++++++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 49 deletions(-) diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 9549f180df..a84346ab84 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -1709,8 +1709,13 @@ void LLToolPie::showVisualContextMenuEffect() effectp->setDuration(0.25f); } +typedef enum e_near_far +{ + NEAR_INTERSECTION, + FAR_INTERSECTION +} ENearFar; -bool intersect_ray_with_sphere( const LLVector3& ray_pt, const LLVector3& ray_dir, const LLVector3& sphere_center, F32 sphere_radius, LLVector3& intersection_pt) +bool intersect_ray_with_sphere( const LLVector3& ray_pt, const LLVector3& ray_dir, const LLVector3& sphere_center, F32 sphere_radius, e_near_far near_far, LLVector3& intersection_pt) { // do ray/sphere intersection by solving quadratic equation LLVector3 sphere_to_ray_start_vec = ray_pt - sphere_center; @@ -1718,10 +1723,11 @@ bool intersect_ray_with_sphere( const LLVector3& ray_pt, const LLVector3& ray_di F32 C = sphere_to_ray_start_vec.lengthSquared() - (sphere_radius * sphere_radius); F32 discriminant = B*B - 4.f*C; - if (discriminant > 0.f) + if (discriminant >= 0.f) { // intersection detected, now find closest one F32 t0 = (-B - sqrtf(discriminant)) / 2.f; - if (t0 > 0.f) + + if (t0 > 0.f && near_far == NEAR_INTERSECTION) { intersection_pt = ray_pt + ray_dir * t0; } @@ -1732,8 +1738,10 @@ bool intersect_ray_with_sphere( const LLVector3& ray_pt, const LLVector3& ray_di } return true; } - - return false; + else + { // no intersection + return false; + } } void LLToolPie::startCameraSteering() @@ -1786,64 +1794,80 @@ void LLToolPie::startCameraSteering() void LLToolPie::steerCameraWithMouse(S32 x, S32 y) { - const F32 MIN_ROTATION_RADIUS_FRACTION = 0.2f; - + const LLViewerCamera& camera = LLViewerCamera::instance(); + const LLCoordFrame& rotation_frame = gAgent.getFrameAgent(); const LLVector3 pick_pos = gAgent.getPosAgentFromGlobal(mSteerPick.mPosGlobal); - const LLVector3 rotation_center = gAgent.getFrameAgent().getOrigin(); - // FIXME: get this to work with camera tilt (i.e. sitting on a rotating object) - const LLVector3 rotation_up_axis(LLVector3::z_axis); - - LLVector3 object_rotation_center = rotation_center + parallel_component(pick_pos - rotation_center, rotation_up_axis); - F32 min_rotation_radius = MIN_ROTATION_RADIUS_FRACTION * dist_vec(rotation_center, LLViewerCamera::instance().getOrigin());; - F32 pick_distance_from_rotation_center = llclamp(dist_vec(pick_pos, object_rotation_center), min_rotation_radius, F32_MAX); + const LLVector3 pick_rotation_center = rotation_frame.getOrigin() + parallel_component(pick_pos - rotation_frame.getOrigin(), rotation_frame.getUpAxis()); + const F32 MIN_ROTATION_RADIUS_FRACTION = 0.2f; + const F32 min_rotation_radius = MIN_ROTATION_RADIUS_FRACTION * dist_vec(pick_rotation_center, camera.getOrigin());; + const F32 pick_distance_from_rotation_center = llclamp(dist_vec(pick_pos, pick_rotation_center), min_rotation_radius, F32_MAX); + const LLVector3 camera_to_rotation_center = pick_rotation_center - camera.getOrigin(); + const LLVector3 adjusted_camera_pos = LLViewerCamera::instance().getOrigin() + projected_vec(camera_to_rotation_center, rotation_frame.getUpAxis()); + const F32 camera_distance_from_rotation_center = dist_vec(adjusted_camera_pos, pick_rotation_center); - LLVector3 mouse_ray = orthogonal_component(gViewerWindow->mouseDirectionGlobal(x, y), rotation_up_axis); + LLVector3 mouse_ray = orthogonal_component(gViewerWindow->mouseDirectionGlobal(x, y), rotation_frame.getUpAxis()); mouse_ray.normalize(); - LLVector3 old_mouse_ray = orthogonal_component(gViewerWindow->mouseDirectionGlobal(mMouseSteerX, mMouseSteerY), rotation_up_axis); + LLVector3 old_mouse_ray = orthogonal_component(gViewerWindow->mouseDirectionGlobal(mMouseSteerX, mMouseSteerY), rotation_frame.getUpAxis()); old_mouse_ray.normalize(); - LLVector3 camera_pos = gAgentCamera.getCameraPositionAgent(); - LLVector3 camera_to_rotation_center = object_rotation_center - camera_pos; - LLVector3 adjusted_camera_pos = camera_pos + projected_vec(camera_to_rotation_center, rotation_up_axis); - LLVector3 rotation_fwd_axis = LLViewerCamera::instance().getAtAxis() - projected_vec(LLViewerCamera::instance().getAtAxis(), rotation_up_axis); - rotation_fwd_axis.normalize(); - F32 pick_dist = dist_vec(pick_pos, adjusted_camera_pos); - + F32 yaw_angle; + F32 old_yaw_angle; LLVector3 mouse_on_sphere; - bool mouse_hit_sphere = intersect_ray_with_sphere(adjusted_camera_pos + (mouse_ray * pick_dist * 1.1f), - -1.f * mouse_ray, - object_rotation_center, - pick_distance_from_rotation_center, - mouse_on_sphere); - LLVector3 old_mouse_on_sphere; - intersect_ray_with_sphere(adjusted_camera_pos + (old_mouse_ray * pick_dist * 1.1f), - -1.f * old_mouse_ray, - object_rotation_center, - pick_distance_from_rotation_center, - old_mouse_on_sphere); - if (mouse_hit_sphere) + if (intersect_ray_with_sphere( + adjusted_camera_pos, + mouse_ray, + pick_rotation_center, + pick_distance_from_rotation_center, + FAR_INTERSECTION, + mouse_on_sphere)) { - // calculate rotation frame in screen space - LLVector3 screen_rotation_up_axis = orthogonal_component(rotation_up_axis, LLViewerCamera::instance().getAtAxis()); - screen_rotation_up_axis.normalize(); - - LLVector3 screen_rotation_left_axis = screen_rotation_up_axis % LLViewerCamera::instance().getAtAxis(); + LLVector3 mouse_sphere_offset = mouse_on_sphere - pick_rotation_center; + yaw_angle = atan2f(mouse_sphere_offset * rotation_frame.getLeftAxis(), mouse_sphere_offset * rotation_frame.getAtAxis()); + } + else + { + yaw_angle = F_PI_BY_TWO + asinf(pick_distance_from_rotation_center / camera_distance_from_rotation_center); + if (mouse_ray * rotation_frame.getLeftAxis() < 0.f) + { + yaw_angle *= -1.f; + } + } - LLVector3 rotation_furthest_pt = object_rotation_center + pick_distance_from_rotation_center * rotation_fwd_axis; - F32 mouse_lateral_distance = llclamp(((mouse_on_sphere - rotation_furthest_pt) * screen_rotation_left_axis) / pick_distance_from_rotation_center, -1.f, 1.f); - F32 old_mouse_lateral_distance = llclamp(((old_mouse_on_sphere - rotation_furthest_pt) * screen_rotation_left_axis) / pick_distance_from_rotation_center, -1.f, 1.f); + if (intersect_ray_with_sphere( + adjusted_camera_pos, + old_mouse_ray, + pick_rotation_center, + pick_distance_from_rotation_center, + FAR_INTERSECTION, + old_mouse_on_sphere)) + { + LLVector3 mouse_sphere_offset = old_mouse_on_sphere - pick_rotation_center; + old_yaw_angle = atan2f(mouse_sphere_offset * rotation_frame.getLeftAxis(), mouse_sphere_offset * rotation_frame.getAtAxis()); + } + else + { + old_yaw_angle = F_PI_BY_TWO + asinf(pick_distance_from_rotation_center / camera_distance_from_rotation_center); - F32 yaw_angle = asinf(mouse_lateral_distance); - F32 old_yaw_angle = asinf(old_mouse_lateral_distance); + if (mouse_ray * rotation_frame.getLeftAxis() < 0.f) + { + old_yaw_angle *= -1.f; + } + } - F32 delta_angle = yaw_angle - old_yaw_angle; - if (!mClockwise) delta_angle *= -1.f; + const F32 delta_angle = yaw_angle - old_yaw_angle; + if (mClockwise) + { gAgent.yaw(delta_angle); - mMouseSteerX = x; - mMouseSteerY = y; } + else + { + gAgent.yaw(-delta_angle); + } + + mMouseSteerX = x; + mMouseSteerY = y; } -- cgit v1.2.3 From 22be29e60f5f45c7d30add3aeb219fef34d4ffec Mon Sep 17 00:00:00 2001 From: Richard Linden <none@none> Date: Fri, 18 Mar 2011 17:08:03 -0700 Subject: SOCIAL-762 FIX cannot change to advanced mode need separate flags for first run and first login --- indra/newview/app_settings/settings.xml | 15 +++++++++++++-- indra/newview/llappviewer.cpp | 1 + indra/newview/llviewerwindow.cpp | 5 ++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index c626538808..888f9c9d7f 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3198,7 +3198,7 @@ <key>FirstRunThisInstall</key> <map> <key>Comment</key> - <string>Specifies that you have not run the viewer since you installed the latest update</string> + <string>Specifies that you have not run the viewer since you performed a clean install</string> <key>Persist</key> <integer>1</integer> <key>Type</key> @@ -3206,7 +3206,18 @@ <key>Value</key> <integer>1</integer> </map> - <key>FirstSelectedDisabledPopups</key> + <key>FirstLoginThisInstall</key> + <map> + <key>Comment</key> + <string>Specifies that you have not logged in with the viewer since you performed a clean install</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + <key>FirstSelectedDisabledPopups</key> <map> <key>Comment</key> <string>Return false if there is not disabled popup selected in the list of floater preferences popups</string> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index d0f9cae078..f6fe7ecd01 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2171,6 +2171,7 @@ bool LLAppViewer::initConfiguration() if (gSavedSettings.getBOOL("FirstRunThisInstall")) { gSavedSettings.setString("SessionSettingsFile", "settings_minimal.xml"); + gSavedSettings.setBOOL("FirstRunThisInstall", FALSE); } if (clp.hasOption("sessionsettings")) diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 0778536d15..6bf363bf68 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1799,12 +1799,11 @@ void LLViewerWindow::initWorldUI() avatar_picker->navigateTo(gSavedSettings.getString("AvatarPickerURL"), "text/html"); } - if (gSavedSettings.getBOOL("FirstRunThisInstall")) + if (gSavedSettings.getBOOL("FirstLoginThisInstall")) { toggle_destination_and_avatar_picker(0); + gSavedSettings.setBOOL("FirstLoginThisInstall", FALSE); } - - gSavedSettings.setBOOL("FirstRunThisInstall", FALSE); } // Destroy the UI -- cgit v1.2.3 From a57729b9260ce5e711bff47c02ca54ab65eade27 Mon Sep 17 00:00:00 2001 From: callum <none@none> Date: Tue, 22 Mar 2011 13:58:27 -0700 Subject: SOCIAL-634 FIX Error condition content for Destination Guide, Avatar Picker, and Help if S3 content or web content is not available --- indra/newview/app_settings/settings.xml | 4 ++-- indra/newview/llfloaterwebcontent.cpp | 6 ------ indra/newview/llmediactrl.cpp | 16 ++++++++++++++++ indra/newview/llmediactrl.h | 5 +++++ indra/newview/llviewerwindow.cpp | 2 ++ 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 888f9c9d7f..b82c98fd60 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12597,10 +12597,10 @@ <key>Value</key> <integer>1</integer> </map> - <key>WebContentFloaterErrorURL</key> + <key>GenericErrorPageURL</key> <map> <key>Comment</key> - <string>URL to navigate to if the Web content floater hits a page with a 400-499 HTTP status code</string> + <string>URL to set as a property on LLMediaControl to navigate to if the a page completes with a 400-499 HTTP status code</string> <key>Persist</key> <integer>1</integer> <key>Type</key> diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index 76fb985b39..058567492b 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -328,12 +328,6 @@ void LLFloaterWebContent::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent const std::string link = self->getHoverLink(); mStatusBarText->setText( link ); } - else if(event == MEDIA_EVENT_NAVIGATE_ERROR_PAGE ) - { - std::string redirect_url = gSavedSettings.getString("WebContentFloaterErrorURL"); - mWebBrowser->navigateTo(redirect_url, "text/html"); - set_current_url(redirect_url); - } } void LLFloaterWebContent::set_current_url(const std::string& url) diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 376e38ade3..b8c61068c4 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -73,6 +73,7 @@ LLMediaCtrl::Params::Params() texture_height("texture_height", 1024), caret_color("caret_color"), initial_mime_type("initial_mime_type"), + error_page_url("error_page_url"), media_id("media_id"), trusted_content("trusted_content", false), focus_on_click("focus_on_click", true) @@ -102,6 +103,7 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) : mTextureHeight ( 1024 ), mClearCache(false), mHomePageMimeType(p.initial_mime_type), + mErrorPageURL(p.error_page_url), mTrusted(p.trusted_content), mWindowShade(NULL), mHoverTextChanged(false) @@ -610,6 +612,16 @@ void LLMediaCtrl::setTarget(const std::string& target) } } +void LLMediaCtrl::setErrorPageURL(const std::string& url) +{ + mErrorPageURL = url; +} + +const std::string& LLMediaCtrl::getErrorPageURL() +{ + return mErrorPageURL; +} + //////////////////////////////////////////////////////////////////////////////// // bool LLMediaCtrl::setCaretColor(unsigned int red, unsigned int green, unsigned int blue) @@ -963,6 +975,10 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) case MEDIA_EVENT_NAVIGATE_ERROR_PAGE: { LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_ERROR_PAGE" << LL_ENDL; + if ( mErrorPageURL.length() > 0 ) + { + navigateTo(mErrorPageURL, "text/html"); + }; }; break; diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 7a28b0986d..53b98b7ec8 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -63,6 +63,7 @@ public: Optional<std::string> initial_mime_type; Optional<std::string> media_id; + Optional<std::string> error_page_url; Params(); }; @@ -113,6 +114,9 @@ public: void setTarget(const std::string& target); + void setErrorPageURL(const std::string& url); + const std::string& getErrorPageURL(); + // Clear the browser cache when the instance gets loaded void clearCache(); @@ -175,6 +179,7 @@ public: std::string mHomePageUrl; std::string mHomePageMimeType; std::string mCurrentNavUrl; + std::string mErrorPageURL; std::string mTarget; bool mIgnoreUIScale; bool mAlwaysRefresh; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 6bf363bf68..b71eebc30f 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1791,11 +1791,13 @@ void LLViewerWindow::initWorldUI() LLMediaCtrl* avatar_picker = avatar_picker_destination_guide_container->findChild<LLMediaCtrl>("avatar_picker_contents"); if (destinations) { + destinations->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL")); destinations->navigateTo(gSavedSettings.getString("DestinationGuideURL"), "text/html"); } if (avatar_picker) { + avatar_picker->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL")); avatar_picker->navigateTo(gSavedSettings.getString("AvatarPickerURL"), "text/html"); } -- cgit v1.2.3 From 1d7518166970da011878c1d76d1a5cb12d7435e4 Mon Sep 17 00:00:00 2001 From: callum <none@none> Date: Tue, 22 Mar 2011 15:27:48 -0700 Subject: SOCIAL-775 FIX Latest version of LLQtWebKit for Mac is 4.7.2 - not 4.7.1 as expected --- install.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.xml b/install.xml index 9d18848076..9658a4195a 100644 --- a/install.xml +++ b/install.xml @@ -981,9 +981,9 @@ anguage Infrstructure (CLI) international standard</string> <key>darwin</key> <map> <key>md5sum</key> - <string>9346c475a37e3f11ea701c6ebd12d736</string> + <string>f07b063cdc207479b111576dc74127f0</string> <key>url</key> - <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110317.tar.bz2</uri> + <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110322.tar.bz2</uri> </map> <key>linux</key> <map> -- cgit v1.2.3 From 698565535a9a0652c6c21e5ac88124013a16324a Mon Sep 17 00:00:00 2001 From: Richard Linden <none@none> Date: Tue, 22 Mar 2011 16:56:11 -0700 Subject: avatar picker, destination guide, and how to urls now point to agni versions --- indra/newview/app_settings/settings.xml | 2 +- indra/newview/app_settings/settings_minimal.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 888f9c9d7f..4e701d89e8 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12606,7 +12606,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/damballah/404.html</string> + <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/404.html</string> </map> </map> </llsd> diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 03656f2a53..490da2c9d4 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -61,7 +61,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/damballah/howto/index.html?topic=[TOPIC]</string> + <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/howto/index.html?topic=[TOPIC]</string> </map> <key>PreferredMaturity</key> <map> @@ -345,7 +345,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/damballah/guide.html</string> + <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/guide.html</string> </map> <key>AvatarPickerURL</key> <map> @@ -356,7 +356,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/damballah/avatars.html</string> + <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/avatars.html</string> </map> <key>LogInventoryDecline</key> <map> -- cgit v1.2.3 From ccdc8898dc1f135252c27cb55c4626b076d37da9 Mon Sep 17 00:00:00 2001 From: Richard Linden <none@none> Date: Tue, 22 Mar 2011 16:57:21 -0700 Subject: SOCIAL-778 FIX Make how to web content wider --- indra/newview/skins/minimal/xui/en/floater_help_browser.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/floater_help_browser.xml b/indra/newview/skins/minimal/xui/en/floater_help_browser.xml index eddfe41c25..cc551f7d58 100644 --- a/indra/newview/skins/minimal/xui/en/floater_help_browser.xml +++ b/indra/newview/skins/minimal/xui/en/floater_help_browser.xml @@ -8,12 +8,12 @@ min_height="360" left="645" top="10" - min_width="300" + min_width="345" name="floater_help_browser" save_rect="true" single_instance="true" title="HOW TO" - width="300"> + width="335"> <floater.string name="loading_text"> Loading... @@ -29,14 +29,14 @@ orientation="vertical" name="stack1" top="20" - width="290"> + width="325"> <layout_panel layout="topleft" left_delta="0" top_delta="0" name="external_controls" user_resize="false" - width="280"> + width="325"> <web_browser trusted_content="true" bottom="-5" @@ -46,7 +46,7 @@ name="browser" top="0" height="300" - width="280" /> + width="325" /> </layout_panel> </layout_stack> </floater> -- cgit v1.2.3 From 9c82ea334ab0c1283f28997fe060b24200e3e2be Mon Sep 17 00:00:00 2001 From: Richard Linden <none@none> Date: Wed, 23 Mar 2011 17:02:23 -0700 Subject: SOCIAL-714 FIX [PUBLIC] Basic mode to launch with Destinations panel open by default --- indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/app_settings/settings_minimal.xml | 11 +++++++++++ indra/newview/llviewermenu.cpp | 14 ++++++-------- indra/newview/llviewerwindow.cpp | 7 ++----- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index c79cf99eb4..d042a247c4 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12608,5 +12608,16 @@ <key>Value</key> <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/404.html</string> </map> + <key>DestinationsAndAvatarsVisibility</key> + <map> + <key>Comment</key> + <string>Whether destination panel or avatar picker are open (0=destination guide, 1=avatar picker, default=nothing)</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>-1</integer> + </map> </map> </llsd> diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 490da2c9d4..8886976f3f 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -402,5 +402,16 @@ <key>Value</key> <integer>0</integer> </map> + <key>DestinationsAndAvatarsVisibility</key> + <map> + <key>Comment</key> + <string>Whether destination panel or avatar picker are open (0=destination guide, 1=avatar picker, default=nothing)</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>0</integer> + </map> </map> </llsd> diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 33fff82738..b05b2e0a67 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -863,7 +863,6 @@ void toggle_destination_and_avatar_picker(const LLSD& show) LLFirstUse::notUsingDestinationGuide(false); avatar_btn->setToggleState(false); destination_btn->setToggleState(true); - return; } break; case 1: @@ -874,18 +873,17 @@ void toggle_destination_and_avatar_picker(const LLSD& show) avatar_picker->setVisible(true); avatar_btn->setToggleState(true); destination_btn->setToggleState(false); - return; } break; default: + container->setVisible(false); + destinations->setVisible(false); + avatar_picker->setVisible(false); + avatar_btn->setToggleState(false); + destination_btn->setToggleState(false); break; } - - container->setVisible(false); - destinations->setVisible(false); - avatar_picker->setVisible(false); - avatar_btn->setToggleState(false); - destination_btn->setToggleState(false); + gSavedSettings.setS32("DestinationsAndAvatarsVisibility", panel_idx); }; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b71eebc30f..faf4e8b3fc 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1801,11 +1801,8 @@ void LLViewerWindow::initWorldUI() avatar_picker->navigateTo(gSavedSettings.getString("AvatarPickerURL"), "text/html"); } - if (gSavedSettings.getBOOL("FirstLoginThisInstall")) - { - toggle_destination_and_avatar_picker(0); - gSavedSettings.setBOOL("FirstLoginThisInstall", FALSE); - } + // show destinations by default + toggle_destination_and_avatar_picker(gSavedSettings.getS32("DestinationsAndAvatarsVisibility")); } // Destroy the UI -- cgit v1.2.3