summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp110
-rw-r--r--indra/newview/llsidepaneltaskinfo.h16
-rw-r--r--indra/newview/skins/default/xui/en/floater_task_properties.xml4
3 files changed, 81 insertions, 49 deletions
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index 3331bc4d68..1d6b3cd80c 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -76,6 +76,7 @@ static LLPanelInjector<LLSidepanelTaskInfo> t_task_info("sidepanel_task_info");
// Default constructor
LLSidepanelTaskInfo::LLSidepanelTaskInfo()
+ : mVisibleDebugPermissions(true) // space was allocated by default
{
setMouseOpaque(FALSE);
LLSelectMgr::instance().mUpdateSignal.connect(boost::bind(&LLSidepanelTaskInfo::refreshAll, this));
@@ -147,12 +148,12 @@ BOOL LLSidepanelTaskInfo::postBuild()
mDALabelClickAction = getChildView("label click action");
mDAComboClickAction = getChild<LLComboBox>("clickaction");
mDAPathfindingAttributes = getChild<LLTextBase>("pathfinding_attributes_value");
- mDAB = getChildView("B:");
- mDAO = getChildView("O:");
- mDAG = getChildView("G:");
- mDAE = getChildView("E:");
- mDAN = getChildView("N:");
- mDAF = getChildView("F:");
+ mDAB = getChild<LLUICtrl>("B:");
+ mDAO = getChild<LLUICtrl>("O:");
+ mDAG = getChild<LLUICtrl>("G:");
+ mDAE = getChild<LLUICtrl>("E:");
+ mDAN = getChild<LLUICtrl>("N:");
+ mDAF = getChild<LLUICtrl>("F:");
return TRUE;
}
@@ -202,12 +203,22 @@ void LLSidepanelTaskInfo::disableAll()
disablePermissions();
- mDAB->setVisible(FALSE);
- mDAO->setVisible(FALSE);
- mDAG->setVisible(FALSE);
- mDAE->setVisible(FALSE);
- mDAN->setVisible(FALSE);
- mDAF->setVisible(FALSE);
+ if (mVisibleDebugPermissions)
+ {
+ mDAB->setVisible(FALSE);
+ mDAO->setVisible(FALSE);
+ mDAG->setVisible(FALSE);
+ mDAE->setVisible(FALSE);
+ mDAN->setVisible(FALSE);
+ mDAF->setVisible(FALSE);
+
+ LLFloater* parent_floater = gFloaterView->getParentFloater(this);
+ LLRect parent_rect = parent_floater->getRect();
+ LLRect debug_rect = mDAB->getRect();
+ // use double the debug rect for padding (since it isn't trivial to extract top_pad)
+ parent_floater->reshape(parent_rect.getWidth(), parent_rect.getHeight() - (debug_rect.getHeight() * 2));
+ mVisibleDebugPermissions = false;
+ }
mOpenBtn->setEnabled(FALSE);
mPayBtn->setEnabled(FALSE);
@@ -609,23 +620,23 @@ void LLSidepanelTaskInfo::refresh()
if (gSavedSettings.getBOOL("DebugPermissions") )
{
- if (valid_base_perms)
- {
- getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string(base_mask_on));
- getChildView("B:")->setVisible( TRUE);
-
- getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(owner_mask_on));
- getChildView("O:")->setVisible( TRUE);
-
- getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(group_mask_on));
- getChildView("G:")->setVisible( TRUE);
-
- getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(everyone_mask_on));
- getChildView("E:")->setVisible( TRUE);
-
- getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(next_owner_mask_on));
- getChildView("N:")->setVisible( TRUE);
- }
+ if (valid_base_perms)
+ {
+ mDAB->setValue("B: " + mask_to_string(base_mask_on));
+ mDAB->setVisible( TRUE);
+
+ mDAO->setValue("O: " + mask_to_string(owner_mask_on));
+ mDAO->setVisible( TRUE);
+
+ mDAG->setValue("G: " + mask_to_string(group_mask_on));
+ mDAG->setVisible( TRUE);
+
+ mDAE->setValue("E: " + mask_to_string(everyone_mask_on));
+ mDAE->setVisible( TRUE);
+
+ mDAN->setValue("N: " + mask_to_string(next_owner_mask_on));
+ mDAN->setVisible( TRUE);
+ }
U32 flag_mask = 0x0;
if (objectp->permMove()) flag_mask |= PERM_MOVE;
@@ -633,18 +644,35 @@ void LLSidepanelTaskInfo::refresh()
if (objectp->permCopy()) flag_mask |= PERM_COPY;
if (objectp->permTransfer()) flag_mask |= PERM_TRANSFER;
- getChild<LLUICtrl>("F:")->setValue("F:" + mask_to_string(flag_mask));
- getChildView("F:")->setVisible( TRUE);
- }
- else
- {
- getChildView("B:")->setVisible( FALSE);
- getChildView("O:")->setVisible( FALSE);
- getChildView("G:")->setVisible( FALSE);
- getChildView("E:")->setVisible( FALSE);
- getChildView("N:")->setVisible( FALSE);
- getChildView("F:")->setVisible( FALSE);
- }
+ mDAF->setValue("F:" + mask_to_string(flag_mask));
+ mDAF->setVisible(TRUE);
+
+ if (!mVisibleDebugPermissions)
+ {
+ LLFloater* parent_floater = gFloaterView->getParentFloater(this);
+ LLRect parent_rect = parent_floater->getRect();
+ LLRect debug_rect = mDAB->getRect();
+ // use double the debug rect for padding (since it isn't trivial to extract top_pad)
+ parent_floater->reshape(parent_rect.getWidth(), parent_rect.getHeight() + (debug_rect.getHeight() * 2));
+ mVisibleDebugPermissions = true;
+ }
+ }
+ else if (mVisibleDebugPermissions)
+ {
+ mDAB->setVisible(FALSE);
+ mDAO->setVisible(FALSE);
+ mDAG->setVisible(FALSE);
+ mDAE->setVisible(FALSE);
+ mDAN->setVisible(FALSE);
+ mDAF->setVisible(FALSE);
+
+ LLFloater* parent_floater = gFloaterView->getParentFloater(this);
+ LLRect parent_rect = parent_floater->getRect();
+ LLRect debug_rect = mDAB->getRect();
+ // use double the debug rect for padding (since it isn't trivial to extract top_pad)
+ parent_floater->reshape(parent_rect.getWidth(), parent_rect.getHeight() - (debug_rect.getHeight() * 2));
+ mVisibleDebugPermissions = false;
+ }
BOOL has_change_perm_ability = FALSE;
BOOL has_change_sale_ability = FALSE;
diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h
index fbecf6f79f..852d36293b 100644
--- a/indra/newview/llsidepaneltaskinfo.h
+++ b/indra/newview/llsidepaneltaskinfo.h
@@ -125,6 +125,10 @@ protected:
private:
LLPointer<LLViewerObject> mObject;
LLObjectSelectionHandle mObjectSelection;
+
+ // mVisibleDebugPermissions doesn't nessesarily matche state
+ // of viewes and is primarily for floater resize
+ bool mVisibleDebugPermissions;
static LLSidepanelTaskInfo* sActivePanel;
private:
@@ -152,12 +156,12 @@ private:
LLView* mDALabelClickAction;
LLComboBox* mDAComboClickAction;
LLTextBase* mDAPathfindingAttributes;
- LLView* mDAB;
- LLView* mDAO;
- LLView* mDAG;
- LLView* mDAE;
- LLView* mDAN;
- LLView* mDAF;
+ LLUICtrl* mDAB;
+ LLUICtrl* mDAO;
+ LLUICtrl* mDAG;
+ LLUICtrl* mDAE;
+ LLUICtrl* mDAN;
+ LLUICtrl* mDAF;
};
diff --git a/indra/newview/skins/default/xui/en/floater_task_properties.xml b/indra/newview/skins/default/xui/en/floater_task_properties.xml
index 4b5c207577..56c236eab4 100644
--- a/indra/newview/skins/default/xui/en/floater_task_properties.xml
+++ b/indra/newview/skins/default/xui/en/floater_task_properties.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
legacy_header_height="18"
- height="570"
+ height="590"
layout="topleft"
name="Task Properties"
help_topic="item+properties"
@@ -17,7 +17,7 @@
name="sidepanel"
top="20"
label=""
- height="550"
+ height="570"
visible="true"
width="330">
</panel>