summaryrefslogtreecommitdiff
path: root/indra/newview/llsidepaneltaskinfo.cpp
diff options
context:
space:
mode:
authorLoren Shih <seraph@lindenlab.com>2009-11-05 15:00:36 -0500
committerLoren Shih <seraph@lindenlab.com>2009-11-05 15:00:36 -0500
commit280e01729173e79e37939c3e764f9f3f674f79da (patch)
tree122ebfb43b26ed12f44a05b5cf4c5d637fb3626a /indra/newview/llsidepaneltaskinfo.cpp
parent7615ec497e7b69c8eefbf8ef1a464eaa22e77bf1 (diff)
EXT-2229 : Task SP : Update task on new selection
Using activePanel hack to update selection when it changes. --HG-- branch : avatar-pipeline
Diffstat (limited to 'indra/newview/llsidepaneltaskinfo.cpp')
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp51
1 files changed, 48 insertions, 3 deletions
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index 4284c95b13..01c832d7d5 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -71,6 +71,8 @@
/// Class llsidepaneltaskinfo
///----------------------------------------------------------------------------
+LLSidepanelTaskInfo* LLSidepanelTaskInfo::sActivePanel = NULL;
+
static LLRegisterPanelClassWrapper<LLSidepanelTaskInfo> t_task_info("sidepanel_task_info");
// Default constructor
@@ -79,6 +81,14 @@ LLSidepanelTaskInfo::LLSidepanelTaskInfo()
setMouseOpaque(FALSE);
}
+
+LLSidepanelTaskInfo::~LLSidepanelTaskInfo()
+{
+ if (sActivePanel == this)
+ sActivePanel = NULL;
+}
+
+// virtual
BOOL LLSidepanelTaskInfo::postBuild()
{
LLSidepanelInventorySubpanel::postBuild();
@@ -101,12 +111,20 @@ BOOL LLSidepanelTaskInfo::postBuild()
return TRUE;
}
-LLSidepanelTaskInfo::~LLSidepanelTaskInfo()
+// virtual
+void LLSidepanelTaskInfo::setVisible(BOOL visible)
{
- // base class will take care of everything
+ LLPanel::setVisible(visible);
+ if (visible)
+ {
+ sActivePanel = this;
+ }
+ else
+ {
+ sActivePanel = NULL;
+ }
}
-
void LLSidepanelTaskInfo::refresh()
{
LLButton* BtnDeedToGroup = getChild<LLButton>("button deed");
@@ -1037,6 +1055,8 @@ void LLSidepanelTaskInfo::updateVerbs()
mBuyBtn->setVisible(!getIsEditing());
mOpenBtn->setEnabled(enable_object_open());
+ const LLViewerObject *obj = getFirstSelectedObject();
+ mEditBtn->setEnabled(obj && obj->permModify());
}
void LLSidepanelTaskInfo::onOpenButtonClicked()
@@ -1077,3 +1097,28 @@ void LLSidepanelTaskInfo::setObjectSelection(LLObjectSelectionHandle selection)
{
mObjectSelection = selection;
}
+
+LLSidepanelTaskInfo* LLSidepanelTaskInfo::getActivePanel()
+{
+ return sActivePanel;
+}
+
+LLViewerObject* LLSidepanelTaskInfo::getFirstSelectedObject()
+{
+ LLSelectNode *node = mObjectSelection->getFirstRootNode();
+ if (node)
+ {
+ return node->getObject();
+ }
+ return NULL;
+}
+
+const LLUUID& LLSidepanelTaskInfo::getSelectedUUID()
+{
+ const LLViewerObject* obj = getFirstSelectedObject();
+ if (obj)
+ {
+ return obj->getID();
+ }
+ return LLUUID::null;
+}