From c331607d97569be05f5f61abc93c6eac67ac070f Mon Sep 17 00:00:00 2001 From: Vadim Savchuk Date: Thu, 16 Sep 2010 22:01:40 +0300 Subject: STORM-185 FIXED Don't reset accordions in the Outfit Edit panel when a wearable gets worn. The fix consists of two parts: 1. Saving/restoring scrollbar position when refreshing the clothing/attachments/bodyparts lists (the lists get refreshed on COF change). 2. Not resetting expanded accordion tab upon wearing an item (which was introduced with the fix of EXT-8164). So, apart from preserving scrollbar position (which is what the bug reporter requests), I also fixed that when you wear something, the Clothing accordion was always expanded. --- indra/newview/llsidepanelappearance.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview/llsidepanelappearance.cpp') diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 7206e4fcaf..a3c6a7b6f1 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -286,6 +286,8 @@ void LLSidepanelAppearance::showOutfitsInventoryPanel() void LLSidepanelAppearance::showOutfitEditPanel() { + if (mOutfitEdit && mOutfitEdit->getVisible()) return; + // Accordion's state must be reset in all cases except the one when user // is returning back to the mOutfitEdit panel from the mEditWearable panel. // The simplest way to control this is to check the visibility state of the mEditWearable -- cgit v1.2.3 From 33bfe43b0cbae946f5c0929f1dacc16e2e9d88f6 Mon Sep 17 00:00:00 2001 From: Andrew Productengine Date: Mon, 11 Oct 2010 19:32:42 +0300 Subject: STORM-301 FIXED Fixed behaviour of camera on undocked 'My Appearance' tab minimizing. - Added signal to LLFloater that is emitted on minimize. - Set minimize callback for appearance tab floater in LLSideTrayTab::undock. Method from LLSidePanelAppearance that handles camera issues is called on minimization of floater. --- indra/newview/llsidepanelappearance.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra/newview/llsidepanelappearance.cpp') diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index a3c6a7b6f1..1999f14828 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -182,6 +182,11 @@ void LLSidepanelAppearance::onOpen(const LLSD& key) } void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility) +{ + updateToVisibility(new_visibility); +} + +void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility) { if (new_visibility.asBoolean()) { -- cgit v1.2.3 From abcb3a7306f95f66aadb3db2fa8cd4000bc0a8e5 Mon Sep 17 00:00:00 2001 From: Andrew Productengine Date: Wed, 24 Nov 2010 19:01:01 +0200 Subject: STORM-375 FIXED Fixed resetting of opened accordion on minimizing/unminimizing Appearance floater. The floater on minimization behaved the way consistent with Appearance panel in sidetray on visibility change. - To let LLSidepanelAppearance::updateToVisibility() determine whether to reset state or not, "reset_accordion" field was added to LLSD that it passed to it. It's value is different depending on where updateToVisibility() was called from. "visible" field was added to store boolean value that was passed before fix without name, but now can't be used that way. --- indra/newview/llsidepanelappearance.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'indra/newview/llsidepanelappearance.cpp') diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 1999f14828..b316171604 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -183,12 +183,15 @@ void LLSidepanelAppearance::onOpen(const LLSD& key) void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility) { - updateToVisibility(new_visibility); + LLSD visibility; + visibility["visible"] = new_visibility.asBoolean(); + visibility["reset_accordion"] = true; + updateToVisibility(visibility); } void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility) { - if (new_visibility.asBoolean()) + if (new_visibility["visible"].asBoolean()) { bool is_outfit_edit_visible = mOutfitEdit && mOutfitEdit->getVisible(); bool is_wearable_edit_visible = mEditWearable && mEditWearable->getVisible(); @@ -209,7 +212,7 @@ void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility) } } - if (is_outfit_edit_visible) + if (is_outfit_edit_visible && new_visibility["reset_accordion"].asBoolean()) { mOutfitEdit->resetAccordionState(); } -- cgit v1.2.3