summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Zaporozhan <dzaporozhan@productengine.com>2010-02-04 12:55:52 +0200
committerDmitry Zaporozhan <dzaporozhan@productengine.com>2010-02-04 12:55:52 +0200
commit879675d986e8167db880586598358e6a80147108 (patch)
tree60f2da87000c1e71f05a0bb01d8cb006c711b584
parent482eefcba94dac0e6a0e6f9985f582e724b02523 (diff)
Fixed critical bug EXT-4823 - [NUX] Default My Profile to Edit Mode
--HG-- branch : product-engine
-rw-r--r--indra/newview/llpanelme.cpp14
-rw-r--r--indra/newview/llpanelprofile.cpp16
-rw-r--r--indra/newview/llpanelprofile.h2
3 files changed, 27 insertions, 5 deletions
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index ea66ef7d2c..a68552a91e 100644
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
@@ -69,6 +69,20 @@ BOOL LLPanelMe::postBuild()
void LLPanelMe::onOpen(const LLSD& key)
{
LLPanelProfile::onOpen(key);
+
+ if(key.isUndefined() || key.has("edit_my_profile"))
+ {
+ // Open Edit My Profile panel by default (through Side Tray -> My Profile) (EXT-4823)
+ buildEditPanel();
+ openPanel(mEditPanel, getAvatarId());
+ }
+ else if(mEditPanel)
+ {
+ // When opening Me Panel through Side Tray LLPanelMe::onOpen() is called twice.
+ // First time key can be undefined and second time - key may contain some data.
+ // Lets close Edit Panel if key does contain some data on second call.
+ closePanel(mEditPanel);
+ }
}
bool LLPanelMe::notifyChildren(const LLSD& info)
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index c73ade53c8..b5d85dfd4b 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -197,11 +197,7 @@ void LLPanelProfile::togglePanel(LLPanel* panel, const LLSD& key)
}
else
{
- panel->setVisible(FALSE);
- if (panel->getParent() == this)
- {
- removeChild(panel);
- }
+ closePanel(panel);
getTabCtrl()->getCurrentPanel()->onOpen(getAvatarId());
}
@@ -248,6 +244,16 @@ void LLPanelProfile::openPanel(LLPanel* panel, const LLSD& params)
panel->setRect(new_rect);
}
+void LLPanelProfile::closePanel(LLPanel* panel)
+{
+ panel->setVisible(FALSE);
+
+ if (panel->getParent() == this)
+ {
+ removeChild(panel);
+ }
+}
+
S32 LLPanelProfile::notifyParent(const LLSD& info)
{
std::string action = info["action"];
diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h
index bcf4bdd0ec..f1aa3f10f8 100644
--- a/indra/newview/llpanelprofile.h
+++ b/indra/newview/llpanelprofile.h
@@ -55,6 +55,8 @@ public:
virtual void openPanel(LLPanel* panel, const LLSD& params);
+ virtual void closePanel(LLPanel* panel);
+
S32 notifyParent(const LLSD& info);
protected: