From 343562889e2b9332942f1c190e0dd6b7ddcb9540 Mon Sep 17 00:00:00 2001 From: callum Date: Tue, 25 Oct 2011 19:34:05 -0700 Subject: EXP-1471 WIP Add support for zooming web pages by a scale facxtor --- indra/newview/llmediactrl.cpp | 14 +++++++++++++- indra/newview/llviewermedia.cpp | 10 ++++++++++ indra/newview/llviewermedia.h | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 0bdeb114f5..dd12546bc6 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -113,7 +113,7 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) : } setIgnoreUIScale(p.ignore_ui_scale); - + setHomePageUrl(p.start_url, p.initial_mime_type); setBorderVisible(p.border_visible); @@ -779,6 +779,18 @@ void LLMediaCtrl::draw() floorf(LLFontGL::sCurOrigin.mY * LLUI::sGLScaleFactor.mV[VY]), LLFontGL::sCurOrigin.mZ); } + else + { + // zoom is an expensive operation - only do it if value changes + // TODO: move this logic out to mMediaSource->setPageZoomFactor() ?? + static double prev_ui_scale = 0.0f; + double ui_scale = LLUI::sGLScaleFactor.mV[ VX ]; + if ( ui_scale != prev_ui_scale ) + { + mMediaSource->setPageZoomFactor( ui_scale ); + prev_ui_scale = ui_scale; + } + } // scale texture to fit the space using texture coords gGL.getTexUnit(0)->bind(media_texture); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 13dbc5e386..fdb281b7f1 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -2301,6 +2301,16 @@ void LLViewerMediaImpl::clearCache() } } + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::setPageZoomFactor( double factor ) +{ + if(mMediaSource) + { + mMediaSource->set_page_zoom_factor( factor ); + } +} + ////////////////////////////////////////////////////////////////////////////////////////// void LLViewerMediaImpl::mouseDown(S32 x, S32 y, MASK mask, S32 button) { diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 0b69b8f0c1..a475d03542 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -250,6 +250,7 @@ public: std::string getMediaEntryURL() { return mMediaEntryURL; } void setHomeURL(const std::string& home_url, const std::string& mime_type = LLStringUtil::null) { mHomeURL = home_url; mHomeMimeType = mime_type;}; void clearCache(); + void setPageZoomFactor( double factor ); std::string getMimeType() { return mMimeType; } void scaleMouse(S32 *mouse_x, S32 *mouse_y); void scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y); -- cgit v1.2.3 From 83633ddce761e1526c349b78efa43e466916feef Mon Sep 17 00:00:00 2001 From: callum Date: Wed, 26 Oct 2011 11:54:19 -0700 Subject: Add ignore_ui_scale="false" flag to login page web browser for testing putposes --- indra/newview/skins/default/xui/en/panel_login.xml | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 1c3e08d59b..090c4e0d61 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -22,17 +22,18 @@ top="600" + trusted_content="true" + bg_opaque_color="Black" + border_visible="false" + bottom="600" + follows="all" + left="0" + name="login_html" + start_url="" + top="0" + height="600" + width="980" + ignore_ui_scale="false"/> Date: Thu, 27 Oct 2011 13:37:47 -0700 Subject: remove ignore_ui_scale flags and use web content scaling for all web_browser widgets --- indra/newview/llmediactrl.cpp | 52 +++++----------------- indra/newview/llmediactrl.h | 45 +++++++++---------- .../default/xui/en/floater_buy_currency_html.xml | 1 - indra/newview/skins/default/xui/en/panel_login.xml | 3 +- 4 files changed, 32 insertions(+), 69 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index dd12546bc6..1e92ca25b3 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -68,7 +68,6 @@ static LLDefaultChildRegistry::Register r("web_browser"); LLMediaCtrl::Params::Params() : start_url("start_url"), border_visible("border_visible", true), - ignore_ui_scale("ignore_ui_scale", true), decouple_texture_size("decouple_texture_size", false), texture_width("texture_width", 1024), texture_height("texture_height", 1024), @@ -89,7 +88,6 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) : mFrequentUpdates( true ), mForceUpdate( false ), mHomePageUrl( "" ), - mIgnoreUIScale( true ), mAlwaysRefresh( false ), mMediaSource( 0 ), mTakeFocusOnClick( p.focus_on_click ), @@ -112,8 +110,6 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) : setCaretColor( (unsigned int)color.mV[0], (unsigned int)color.mV[1], (unsigned int)color.mV[2] ); } - setIgnoreUIScale(p.ignore_ui_scale); - setHomePageUrl(p.start_url, p.initial_mime_type); setBorderVisible(p.border_visible); @@ -124,10 +120,8 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) : if(!getDecoupleTextureSize()) { - S32 screen_width = mIgnoreUIScale ? - llround((F32)getRect().getWidth() * LLUI::sGLScaleFactor.mV[VX]) : getRect().getWidth(); - S32 screen_height = mIgnoreUIScale ? - llround((F32)getRect().getHeight() * LLUI::sGLScaleFactor.mV[VY]) : getRect().getHeight(); + S32 screen_width = llround((F32)getRect().getWidth() * LLUI::sGLScaleFactor.mV[VX]); + S32 screen_height = llround((F32)getRect().getHeight() * LLUI::sGLScaleFactor.mV[VY]); setTextureSize(screen_width, screen_height); } @@ -471,8 +465,8 @@ void LLMediaCtrl::reshape( S32 width, S32 height, BOOL called_from_parent ) { if(!getDecoupleTextureSize()) { - S32 screen_width = mIgnoreUIScale ? llround((F32)width * LLUI::sGLScaleFactor.mV[VX]) : width; - S32 screen_height = mIgnoreUIScale ? llround((F32)height * LLUI::sGLScaleFactor.mV[VY]) : height; + S32 screen_width = llround((F32)width * LLUI::sGLScaleFactor.mV[VX]); + S32 screen_height = llround((F32)height * LLUI::sGLScaleFactor.mV[VY]); // when floater is minimized, these sizes are negative if ( screen_height > 0 && screen_width > 0 ) @@ -689,6 +683,8 @@ bool LLMediaCtrl::ensureMediaSourceExists() mMediaSource->addObserver( this ); mMediaSource->setBackgroundColor( getBackgroundColor() ); mMediaSource->setTrustedBrowser(mTrusted); + mMediaSource->setPageZoomFactor( LLUI::sGLScaleFactor.mV[ VX ] ); + if(mClearCache) { mMediaSource->clearCache(); @@ -770,27 +766,7 @@ void LLMediaCtrl::draw() { gGL.pushUIMatrix(); { - if (mIgnoreUIScale) - { - gGL.loadUIIdentity(); - // font system stores true screen origin, need to scale this by UI scale factor - // to get render origin for this view (with unit scale) - gGL.translateUI(floorf(LLFontGL::sCurOrigin.mX * LLUI::sGLScaleFactor.mV[VX]), - floorf(LLFontGL::sCurOrigin.mY * LLUI::sGLScaleFactor.mV[VY]), - LLFontGL::sCurOrigin.mZ); - } - else - { - // zoom is an expensive operation - only do it if value changes - // TODO: move this logic out to mMediaSource->setPageZoomFactor() ?? - static double prev_ui_scale = 0.0f; - double ui_scale = LLUI::sGLScaleFactor.mV[ VX ]; - if ( ui_scale != prev_ui_scale ) - { - mMediaSource->setPageZoomFactor( ui_scale ); - prev_ui_scale = ui_scale; - } - } + mMediaSource->setPageZoomFactor( LLUI::sGLScaleFactor.mV[ VX ] ); // scale texture to fit the space using texture coords gGL.getTexUnit(0)->bind(media_texture); @@ -838,14 +814,6 @@ void LLMediaCtrl::draw() x_offset = (r.getWidth() - width) / 2; y_offset = (r.getHeight() - height) / 2; - if(mIgnoreUIScale) - { - x_offset = llround((F32)x_offset * LLUI::sGLScaleFactor.mV[VX]); - y_offset = llround((F32)y_offset * LLUI::sGLScaleFactor.mV[VY]); - width = llround((F32)width * LLUI::sGLScaleFactor.mV[VX]); - height = llround((F32)height * LLUI::sGLScaleFactor.mV[VY]); - } - // draw the browser gGL.begin( LLRender::QUADS ); if (! media_plugin->getTextureCoordsOpenGL()) @@ -912,14 +880,14 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y) coords_opengl = mMediaSource->getMediaPlugin()->getTextureCoordsOpenGL(); } - x = mIgnoreUIScale ? llround((F32)x * LLUI::sGLScaleFactor.mV[VX]) : x; + x = llround((F32)x * LLUI::sGLScaleFactor.mV[VX]); if ( ! coords_opengl ) { - y = mIgnoreUIScale ? llround((F32)(y) * LLUI::sGLScaleFactor.mV[VY]) : y; + y = llround((F32)(y) * LLUI::sGLScaleFactor.mV[VY]); } else { - y = mIgnoreUIScale ? llround((F32)(getRect().getHeight() - y) * LLUI::sGLScaleFactor.mV[VY]) : getRect().getHeight() - y; + y = llround((F32)(getRect().getHeight() - y) * LLUI::sGLScaleFactor.mV[VY]); }; } diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 3c0436e27a..7f2a5e1642 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -51,7 +51,6 @@ public: Optional start_url; Optional border_visible, - ignore_ui_scale, hide_loading, decouple_texture_size, trusted_content, @@ -125,9 +124,6 @@ public: bool getFrequentUpdates() { return mFrequentUpdates; }; void setFrequentUpdates( bool frequentUpdatesIn ) { mFrequentUpdates = frequentUpdatesIn; }; - void setIgnoreUIScale(bool ignore) { mIgnoreUIScale = ignore; } - bool getIgnoreUIScale() { return mIgnoreUIScale; } - void setAlwaysRefresh(bool refresh) { mAlwaysRefresh = refresh; } bool getAlwaysRefresh() { return mAlwaysRefresh; } @@ -181,28 +177,29 @@ public: const S32 mTextureDepthBytes; LLUUID mMediaTextureID; LLViewBorder* mBorder; - bool mFrequentUpdates; - bool mForceUpdate; - bool mTrusted; - std::string mHomePageUrl; - std::string mHomePageMimeType; - std::string mCurrentNavUrl; - std::string mErrorPageURL; - std::string mTarget; - bool mIgnoreUIScale; - bool mAlwaysRefresh; + bool mFrequentUpdates, + mForceUpdate, + mTrusted, + mAlwaysRefresh, + mTakeFocusOnClick, + mStretchToFill, + mMaintainAspectRatio, + mHideLoading, + mHidingInitialLoad, + mClearCache, + mHoverTextChanged, + mDecoupleTextureSize; + + std::string mHomePageUrl, + mHomePageMimeType, + mCurrentNavUrl, + mErrorPageURL, + mTarget; viewer_media_t mMediaSource; - bool mTakeFocusOnClick; - bool mStretchToFill; - bool mMaintainAspectRatio; - bool mHideLoading; - bool mHidingInitialLoad; - bool mDecoupleTextureSize; - S32 mTextureWidth; - S32 mTextureHeight; - bool mClearCache; + S32 mTextureWidth, + mTextureHeight; + class LLWindowShade* mWindowShade; - bool mHoverTextChanged; LLContextMenu* mContextMenu; }; diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml index b9c415633f..0637eedfb2 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml @@ -23,6 +23,5 @@ right="-1" top="1" bottom="-1" - ignore_ui_scale="false" name="browser"/> diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 090c4e0d61..e8f63afe1d 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -32,8 +32,7 @@ top="600" start_url="" top="0" height="600" - width="980" - ignore_ui_scale="false"/> + width="980"/> Date: Thu, 27 Oct 2011 13:39:19 -0700 Subject: moved zoom factor management to llviewermediaimpl --- indra/newview/llviewermedia.cpp | 6 ++++-- indra/newview/llviewermedia.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index fdb281b7f1..dfad871dd7 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1715,7 +1715,8 @@ LLViewerMediaImpl::LLViewerMediaImpl( const LLUUID& texture_id, mNavigateSuspended(false), mNavigateSuspendedDeferred(false), mIsUpdated(false), - mTrustedBrowser(false) + mTrustedBrowser(false), + mZoomFactor(1.0) { // Set up the mute list observer if it hasn't been set up already. @@ -2305,8 +2306,9 @@ void LLViewerMediaImpl::clearCache() ////////////////////////////////////////////////////////////////////////////////////////// void LLViewerMediaImpl::setPageZoomFactor( double factor ) { - if(mMediaSource) + if(mMediaSource && factor != mZoomFactor) { + mZoomFactor = factor; mMediaSource->set_page_zoom_factor( factor ); } } diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index a475d03542..3db9f0b4e0 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -417,6 +417,7 @@ private: private: // a single media url with some data and an impl. LLPluginClassMedia* mMediaSource; + F64 mZoomFactor; LLUUID mTextureId; bool mMovieImageHasMips; std::string mMediaURL; // The last media url set with NavigateTo -- cgit v1.2.3 From 5b1f9f3c5e9176a971c942da7688d8b194b12ed3 Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Tue, 1 Nov 2011 18:11:21 +0200 Subject: EXP-1489 FIXED (Cannot build notifications not being shown when chat floater closed with chat log toggled open) - Need to check visibility of the floater itself, not only chat panel in it. So I added this check. --- indra/newview/llnotificationtiphandler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp index 2a08a29842..aa009a76fa 100644 --- a/indra/newview/llnotificationtiphandler.cpp +++ b/indra/newview/llnotificationtiphandler.cpp @@ -29,6 +29,7 @@ #include "llfloaterreg.h" #include "llnearbychat.h" +#include "llnearbychatbar.h" #include "llnotificationhandler.h" #include "llnotifications.h" #include "lltoastnotifypanel.h" @@ -93,7 +94,8 @@ bool LLTipHandler::processNotification(const LLSD& notify) // don't show toast if Nearby Chat is opened LLNearbyChat* nearby_chat = LLNearbyChat::getInstance(); - if (nearby_chat->getVisible()) + LLNearbyChatBar* nearby_chat_bar = LLNearbyChatBar::getInstance(); + if (nearby_chat_bar->getVisible() && nearby_chat->getVisible()) { return false; } -- cgit v1.2.3 From ba2fa73aaab5415c38fd9f489c590d8cba05e24f Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Tue, 1 Nov 2011 18:54:21 +0200 Subject: EXP-1472 FIXED (More spillover list scrolls up after selecting any content menu item) - Saving last scroll position of menu --- indra/newview/llfavoritesbar.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview') diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 6c9058caf1..1f269fb666 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -1197,7 +1197,9 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) LLToggleableMenu* menu = (LLToggleableMenu*) mOverflowMenuHandle.get(); if (mRestoreOverflowMenu && menu && !menu->getVisible()) { + menu->resetScrollPositionOnShow(false); showDropDownMenu(); + menu->resetScrollPositionOnShow(true); } } -- cgit v1.2.3 From 3ae3d04e7e73f414a2e17c1be7cf7cca4f894c72 Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Tue, 1 Nov 2011 19:23:32 +0200 Subject: EXP-1452 FIXED (minimum height of NEARBY CHAT window can be circumvented by minimizing it.) Reason: visibility state of chat was always set to true when floater unminimized Solution: save visibility state of the chat to restore it after floater unminimized --- indra/newview/llnearbychatbar.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 4674c85324..6e22c7fea0 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -403,8 +403,16 @@ void LLNearbyChatBar::setMinimized(BOOL b) { if (b != LLFloater::isMinimized()) { + LLView* nearby_chat = getChildView("nearby_chat"); + + static bool is_visible = nearby_chat->getVisible(); + if (b) + { + is_visible = nearby_chat->getVisible(); + } + + nearby_chat->setVisible(b ? false : is_visible); LLFloater::setMinimized(b); - getChildView("nearby_chat")->setVisible(!b); } } -- cgit v1.2.3 From 3ad6b8829bd45960d7f8d460a74d13d7d1562ef4 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Tue, 1 Nov 2011 16:24:13 -0700 Subject: EXP-1480 FIX --- indra/newview/app_settings/settings_per_account.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index 6ed4480cb1..8cdd8ed838 100644 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -36,7 +36,7 @@ DisplayDestinationsOnInitialRun Comment - Display the destinations guide when a user first launches FUI. + Display the destinations guide when a user first launches Second Life. Persist 1 Type -- cgit v1.2.3 From 2da4d944a71d3d7bd599baaedb5128cf873fc551 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Wed, 2 Nov 2011 10:40:02 -0700 Subject: EXP-1492 Avatar picker floater should be 4.5 thumbnails wide --- indra/newview/skins/default/xui/en/floater_avatar.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/floater_avatar.xml b/indra/newview/skins/default/xui/en/floater_avatar.xml index 2d973e7d90..6009821f7f 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar.xml @@ -16,11 +16,11 @@ save_rect="true" save_visibility="true" title="AVATAR PICKER" - width="635"> + width="700"> -- cgit v1.2.3 From a900701f55ee0acea8ce6e44002c509d9f03b756 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Wed, 2 Nov 2011 11:03:38 -0700 Subject: EXP-1474 FIX -- Create Classified does not work from Search Window * The code now opens the "picks" window and starts the "create new classified" action on it directly. Reviewed by Richard. --- indra/newview/llpanelpicks.cpp | 11 +++++------ indra/newview/llpanelpicks.h | 6 +++--- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 72c6be4c79..360197ce55 100755 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -247,12 +247,11 @@ public: void createClassified() { - // open the new classified panel on the Me > Picks sidetray - LLSD params; - params["id"] = gAgent.getID(); - params["open_tab_name"] = "panel_picks"; - params["show_tab_panel"] = "create_classified"; - LLFloaterSidePanelContainer::showPanel("my_profile", params); + // open the new classified panel on the Picks floater + LLFloater* picks_floater = LLFloaterReg::showInstance("picks"); + + LLPanelPicks* picks = picks_floater->findChild("panel_picks"); + picks->createNewClassified(); } void openClassified(LLAvatarClassifiedInfo* c_info) diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index 29db110523..3bb7413ac3 100755 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -82,6 +82,9 @@ public: // parent panels failed to work (picks related code was in my profile panel) void setProfilePanel(LLPanelProfile* profile_panel); + void createNewPick(); + void createNewClassified(); + protected: /*virtual*/void updateButtons(); @@ -115,9 +118,6 @@ private: bool onEnableMenuItem(const LLSD& user_data); - void createNewPick(); - void createNewClassified(); - void openPickInfo(); void openClassifiedInfo(); void openClassifiedInfo(const LLSD& params); -- cgit v1.2.3 From 334d8f4076b4045e8fd4ede5fd9d31f0b185ded4 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Wed, 2 Nov 2011 11:42:41 -0700 Subject: Updating 'createPick' behavior to mirror new 'createClassified' behavior --- indra/newview/llpanelpicks.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 360197ce55..04e78e04e3 100755 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -130,11 +130,11 @@ public: void createPick() { - LLSD params; - params["id"] = gAgent.getID(); - params["open_tab_name"] = "panel_picks"; - params["show_tab_panel"] = "create_pick"; - LLFloaterSidePanelContainer::showPanel("my_profile", params); + // open the new pick panel on the Picks floater + LLFloater* picks_floater = LLFloaterReg::showInstance("picks"); + + LLPanelPicks* picks = picks_floater->findChild("panel_picks"); + picks->createNewPick(); } void editPick(LLPickData* pick_info) -- cgit v1.2.3