From 4f798c40d8b57eedac0dbaeb992eeb715cd55850 Mon Sep 17 00:00:00 2001 From: "Christian Goetze (CG)" Date: Tue, 14 Dec 2010 15:32:32 -0800 Subject: Remove reference to then test codeticket service. --- BuildParams | 3 --- 1 file changed, 3 deletions(-) diff --git a/BuildParams b/BuildParams index 8e4164d5ca..dadacb0682 100644 --- a/BuildParams +++ b/BuildParams @@ -46,9 +46,6 @@ viewer-beta.viewer_channel = "Second Life Beta Viewer" viewer-beta.login_channel = "Second Life Beta Viewer" viewer-beta.build_debug_release_separately = true viewer-beta.build_viewer_update_version_manager = true -# Settings to test new code ticket service -viewer-beta.codeticket_server_url = "http://pdp75.lindenlab.com:8000/codeticket/linden/" -viewer-beta.codeticket_add_context = true # ======================================== # Viewer Release -- cgit v1.2.3 From 27f3470b7ecff97e5e7798a3cf120260c209fc42 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Wed, 15 Dec 2010 15:44:06 +0200 Subject: STORM-786 FIXED Fixed disappearing controls in avatar picks list. Caused by an improper fix of STORM-690. Made the way we switch between profile view panels (profile view / pick_info / pick_edit) more robust. It now suits both My Profile and Profile View panels. --- indra/newview/llpanelprofile.cpp | 126 +++++++++++++++++++++++++++++++++------ indra/newview/llpanelprofile.h | 29 ++++++++- 2 files changed, 135 insertions(+), 20 deletions(-) diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 6038ab20d8..f4e8392916 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -114,9 +114,102 @@ public: LLAgentHandler gAgentHandler; +//-- LLPanelProfile::ChildStack begins ---------------------------------------- +LLPanelProfile::ChildStack::ChildStack(LLPanel* parent) +: mParent(parent) +{ + llassert_always(parent != NULL); +} + +/// Save current parent's child views and remove them from the child list. +bool LLPanelProfile::ChildStack::push() +{ + view_list_t vlist = *mParent->getChildList(); + + for (view_list_t::const_iterator it = vlist.begin(); it != vlist.end(); ++it) + { + LLView* viewp = *it; + mParent->removeChild(viewp); + } + + mStack.push_back(vlist); + dump(); + return true; +} + +/// Restore saved children (adding them back to the child list). +bool LLPanelProfile::ChildStack::pop() +{ + if (mStack.size() == 0) + { + llwarns << "Empty stack" << llendl; + llassert(mStack.size() == 0); + return false; + } + + view_list_t& top = mStack.back(); + for (view_list_t::const_iterator it = top.begin(); it != top.end(); ++it) + { + LLView* viewp = *it; + mParent->addChild(viewp); + } + + mStack.pop_back(); + dump(); + return true; +} + +/// Temporarily add all saved children back. +void LLPanelProfile::ChildStack::preParentReshape() +{ + mSavedStack = mStack; + while(mStack.size() > 0) + { + pop(); + } +} + +/// Add the temporarily saved children back. +void LLPanelProfile::ChildStack::postParentReshape() +{ + mStack = mSavedStack; + mSavedStack = stack_t(); + + for (stack_t::const_iterator stack_it = mStack.begin(); stack_it != mStack.end(); ++stack_it) + { + const view_list_t& vlist = (*stack_it); + for (view_list_t::const_iterator list_it = vlist.begin(); list_it != vlist.end(); ++list_it) + { + LLView* viewp = *list_it; + lldebugs << "removing " << viewp->getName() << llendl; + mParent->removeChild(viewp); + } + } +} + +void LLPanelProfile::ChildStack::dump() +{ + unsigned lvl = 0; + lldebugs << "child stack dump:" << llendl; + for (stack_t::const_iterator stack_it = mStack.begin(); stack_it != mStack.end(); ++stack_it, ++lvl) + { + std::ostringstream dbg_line; + dbg_line << "lvl #" << lvl << ":"; + const view_list_t& vlist = (*stack_it); + for (view_list_t::const_iterator list_it = vlist.begin(); list_it != vlist.end(); ++list_it) + { + dbg_line << " " << (*list_it)->getName(); + } + lldebugs << dbg_line.str() << llendl; + } +} + +//-- LLPanelProfile::ChildStack ends ------------------------------------------ + LLPanelProfile::LLPanelProfile() : LLPanel() , mTabCtrl(NULL) + , mChildStack(this) , mAvatarId(LLUUID::null) { } @@ -136,6 +229,15 @@ BOOL LLPanelProfile::postBuild() return TRUE; } +// virtual +void LLPanelProfile::reshape(S32 width, S32 height, BOOL called_from_parent) +{ + // Temporarily add saved children back and reshape them. + mChildStack.preParentReshape(); + LLPanel::reshape(width, height, called_from_parent); + mChildStack.postParentReshape(); +} + void LLPanelProfile::onOpen(const LLSD& key) { // open the desired panel @@ -177,7 +279,6 @@ void LLPanelProfile::onOpen(const LLSD& key) } } -//*TODO redo panel toggling void LLPanelProfile::togglePanel(LLPanel* panel, const LLSD& key) { // TRUE - we need to open/expand "panel" @@ -204,21 +305,10 @@ void LLPanelProfile::onTabSelected(const LLSD& param) } } -void LLPanelProfile::setAllChildrenVisible(BOOL visible) -{ - const child_list_t* child_list = getChildList(); - child_list_const_iter_t child_it = child_list->begin(); - for (; child_it != child_list->end(); ++child_it) - { - LLView* viewp = *child_it; - viewp->setVisible(visible); - } -} - void LLPanelProfile::openPanel(LLPanel* panel, const LLSD& params) { // Hide currently visible panel (STORM-690). - setAllChildrenVisible(FALSE); + mChildStack.push(); // Add the panel or bring it to front. if (panel->getParent() != this) @@ -231,7 +321,7 @@ void LLPanelProfile::openPanel(LLPanel* panel, const LLSD& params) } panel->setVisible(TRUE); - + panel->setFocus(TRUE); // prevent losing focus by the floater panel->onOpen(params); LLRect new_rect = getRect(); @@ -249,15 +339,17 @@ void LLPanelProfile::closePanel(LLPanel* panel) removeChild(panel); // Make the underlying panel visible. + mChildStack.pop(); + + // Prevent losing focus by the floater const child_list_t* child_list = getChildList(); if (child_list->size() > 0) { - child_list->front()->setVisible(TRUE); - child_list->front()->setFocus(TRUE); // prevent losing focus by the floater + child_list->front()->setFocus(TRUE); } else { - llwarns << "No underlying panel to make visible." << llendl; + llwarns << "No underlying panel to focus." << llendl; } } } diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h index d2bcee8076..577b71f284 100644 --- a/indra/newview/llpanelprofile.h +++ b/indra/newview/llpanelprofile.h @@ -41,7 +41,7 @@ class LLPanelProfile : public LLPanel public: /*virtual*/ BOOL postBuild(); - + /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); /*virtual*/ void onOpen(const LLSD& key); virtual void togglePanel(LLPanel*, const LLSD& key = LLSD()); @@ -58,8 +58,6 @@ protected: virtual void onTabSelected(const LLSD& param); - virtual void setAllChildrenVisible(BOOL visible); - LLTabContainer* getTabCtrl() { return mTabCtrl; } const LLUUID& getAvatarId() { return mAvatarId; } @@ -72,8 +70,33 @@ protected: private: + //-- ChildStack begins ---------------------------------------------------- + class ChildStack + { + LOG_CLASS(LLPanelProfile::ChildStack); + public: + ChildStack(LLPanel* parent); + + bool push(); + bool pop(); + void preParentReshape(); + void postParentReshape(); + + private: + void dump(); + + typedef LLView::child_list_t view_list_t; + typedef std::list stack_t; + + stack_t mStack; + stack_t mSavedStack; + LLPanel* mParent; + }; + //-- ChildStack ends ------------------------------------------------------ + LLTabContainer* mTabCtrl; profile_tabs_t mTabContainer; + ChildStack mChildStack; LLUUID mAvatarId; }; -- cgit v1.2.3 From 10d9328b86991272b6cbc7eda73e8f09afccfb52 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Wed, 15 Dec 2010 16:00:37 +0200 Subject: STORM-786 ADDITIONAL FIX Fixed Windows build. --- indra/newview/llpanelprofile.cpp | 11 ++++++++--- indra/newview/llpanelprofile.h | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index f4e8392916..b035d7d473 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -115,10 +115,15 @@ LLAgentHandler gAgentHandler; //-- LLPanelProfile::ChildStack begins ---------------------------------------- -LLPanelProfile::ChildStack::ChildStack(LLPanel* parent) -: mParent(parent) +LLPanelProfile::ChildStack::ChildStack() +: mParent(NULL) +{ +} + +void LLPanelProfile::ChildStack::setParent(LLPanel* parent) { llassert_always(parent != NULL); + mParent = parent; } /// Save current parent's child views and remove them from the child list. @@ -209,9 +214,9 @@ void LLPanelProfile::ChildStack::dump() LLPanelProfile::LLPanelProfile() : LLPanel() , mTabCtrl(NULL) - , mChildStack(this) , mAvatarId(LLUUID::null) { + mChildStack.setParent(this); } BOOL LLPanelProfile::postBuild() diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h index 577b71f284..0a572e6f25 100644 --- a/indra/newview/llpanelprofile.h +++ b/indra/newview/llpanelprofile.h @@ -75,7 +75,8 @@ private: { LOG_CLASS(LLPanelProfile::ChildStack); public: - ChildStack(LLPanel* parent); + ChildStack(); + void setParent(LLPanel* parent); bool push(); bool pop(); -- cgit v1.2.3