summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp757
-rw-r--r--indra/newview/llsidepaneltaskinfo.h6
2 files changed, 377 insertions, 386 deletions
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index 09e067b5f9..3e3a63d438 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -104,9 +104,6 @@ BOOL LLSidepanelTaskInfo::postBuild()
childSetPrevalidate("Object Name",LLLineEditor::prevalidateASCIIPrintableNoPipe);
childSetPrevalidate("Object Description",LLLineEditor::prevalidateASCIIPrintableNoPipe);
-// getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLSidepanelTaskInfo::onClickGroup,this));
-// childSetAction("button deed",LLSidepanelTaskInfo::onClickDeedToGroup,this);
-
mLabelGroupName = getChild<LLNameBox>("Group Name Proxy");
return TRUE;
@@ -119,6 +116,7 @@ void LLSidepanelTaskInfo::setVisible(BOOL visible)
if (visible)
{
sActivePanel = this;
+ mObject = getFirstSelectedObject();
}
else
{
@@ -126,10 +124,89 @@ void LLSidepanelTaskInfo::setVisible(BOOL visible)
}
}
+void LLSidepanelTaskInfo::disableAll()
+{
+ childSetEnabled("perm_modify", FALSE);
+ childSetText("perm_modify", LLStringUtil::null);
+
+ childSetEnabled("Creator:", FALSE);
+ childSetText("Creator Name", LLStringUtil::null);
+ childSetEnabled("Creator Name", FALSE);
+
+ childSetEnabled("Owner:", FALSE);
+ childSetText("Owner Name", LLStringUtil::null);
+ childSetEnabled("Owner Name", FALSE);
+
+ childSetEnabled("Group:", FALSE);
+ childSetText("Group Name", LLStringUtil::null);
+ childSetEnabled("Group Name", FALSE);
+ childSetEnabled("button set group", FALSE);
+
+ childSetText("Object Name", LLStringUtil::null);
+ childSetEnabled("Object Name", FALSE);
+ childSetEnabled("Name:", FALSE);
+ childSetText("Group Name", LLStringUtil::null);
+ childSetEnabled("Group Name", FALSE);
+ childSetEnabled("Description:", FALSE);
+ childSetText("Object Description", LLStringUtil::null);
+ childSetEnabled("Object Description", FALSE);
+
+ childSetEnabled("Permissions:", FALSE);
+
+ childSetValue("checkbox share with group", FALSE);
+ childSetEnabled("checkbox share with group", FALSE);
+ childSetEnabled("button deed", FALSE);
+
+ childSetValue("checkbox allow everyone move", FALSE);
+ childSetEnabled("checkbox allow everyone move", FALSE);
+ childSetValue("checkbox allow everyone copy", FALSE);
+ childSetEnabled("checkbox allow everyone copy", FALSE);
+
+ //Next owner can:
+ childSetEnabled("Next owner can:", FALSE);
+ childSetValue("checkbox next owner can modify", FALSE);
+ childSetEnabled("checkbox next owner can modify", FALSE);
+ childSetValue("checkbox next owner can copy", FALSE);
+ childSetEnabled("checkbox next owner can copy", FALSE);
+ childSetValue("checkbox next owner can transfer", FALSE);
+ childSetEnabled("checkbox next owner can transfer", FALSE);
+
+ //checkbox for sale
+ childSetValue("checkbox for sale", FALSE);
+ childSetEnabled("checkbox for sale", FALSE);
+
+ //checkbox include in search
+ childSetValue("search_check", FALSE);
+ childSetEnabled("search_check", FALSE);
+
+ LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
+ combo_sale_type->setValue(LLSaleInfo::FS_COPY);
+ combo_sale_type->setEnabled(FALSE);
+
+ childSetEnabled("Cost", FALSE);
+ childSetText("Cost", getString("Cost Default"));
+ childSetText("Edit Cost", LLStringUtil::null);
+ childSetEnabled("Edit Cost", FALSE);
+
+ childSetEnabled("label click action", FALSE);
+ LLComboBox* combo_click_action = getChild<LLComboBox>("clickaction");
+ if (combo_click_action)
+ {
+ combo_click_action->setEnabled(FALSE);
+ combo_click_action->clear();
+ }
+ childSetVisible("B:", FALSE);
+ childSetVisible("O:", FALSE);
+ childSetVisible("G:", FALSE);
+ childSetVisible("E:", FALSE);
+ childSetVisible("N:", FALSE);
+ childSetVisible("F:", FALSE);
+}
+
void LLSidepanelTaskInfo::refresh()
{
- LLButton* BtnDeedToGroup = getChild<LLButton>("button deed");
- if(BtnDeedToGroup)
+ LLButton* btn_deed_to_group = getChild<LLButton>("button deed");
+ if (btn_deed_to_group)
{
std::string deedText;
if (gWarningSettings.getBOOL("DeedObject"))
@@ -140,156 +217,80 @@ void LLSidepanelTaskInfo::refresh()
{
deedText = getString("text deed");
}
- BtnDeedToGroup->setLabelSelected(deedText);
- BtnDeedToGroup->setLabelUnselected(deedText);
+ btn_deed_to_group->setLabelSelected(deedText);
+ btn_deed_to_group->setLabelUnselected(deedText);
}
+
BOOL root_selected = TRUE;
LLSelectNode* nodep = mObjectSelection->getFirstRootNode();
S32 object_count = mObjectSelection->getRootObjectCount();
- if(!nodep || 0 == object_count)
+ if (!nodep || (object_count == 0))
{
nodep = mObjectSelection->getFirstNode();
object_count = mObjectSelection->getObjectCount();
root_selected = FALSE;
}
- //BOOL attachment_selected = mObjectSelection->isAttachment();
- //attachment_selected = false;
LLViewerObject* objectp = NULL;
- if(nodep) objectp = nodep->getObject();
- if(!nodep || !objectp)// || attachment_selected)
+ if (nodep)
{
- // ...nothing selected
- childSetEnabled("perm_modify",false);
- childSetText("perm_modify",LLStringUtil::null);
-
- childSetEnabled("Creator:",false);
- childSetText("Creator Name",LLStringUtil::null);
- childSetEnabled("Creator Name",false);
-
- childSetEnabled("Owner:",false);
- childSetText("Owner Name",LLStringUtil::null);
- childSetEnabled("Owner Name",false);
-
- childSetEnabled("Group:",false);
- childSetText("Group Name",LLStringUtil::null);
- childSetEnabled("Group Name",false);
- childSetEnabled("button set group",false);
-
- childSetText("Object Name",LLStringUtil::null);
- childSetEnabled("Object Name",false);
- childSetEnabled("Name:",false);
- childSetText("Group Name",LLStringUtil::null);
- childSetEnabled("Group Name",false);
- childSetEnabled("Description:",false);
- childSetText("Object Description",LLStringUtil::null);
- childSetEnabled("Object Description",false);
-
- childSetEnabled("Permissions:",false);
-
- childSetValue("checkbox share with group",FALSE);
- childSetEnabled("checkbox share with group",false);
- childSetEnabled("button deed",false);
-
- childSetValue("checkbox allow everyone move",FALSE);
- childSetEnabled("checkbox allow everyone move",false);
- childSetValue("checkbox allow everyone copy",FALSE);
- childSetEnabled("checkbox allow everyone copy",false);
-
- //Next owner can:
- childSetEnabled("Next owner can:",false);
- childSetValue("checkbox next owner can modify",FALSE);
- childSetEnabled("checkbox next owner can modify",false);
- childSetValue("checkbox next owner can copy",FALSE);
- childSetEnabled("checkbox next owner can copy",false);
- childSetValue("checkbox next owner can transfer",FALSE);
- childSetEnabled("checkbox next owner can transfer",false);
-
- //checkbox for sale
- childSetValue("checkbox for sale",FALSE);
- childSetEnabled("checkbox for sale",false);
-
- //checkbox include in search
- childSetValue("search_check", FALSE);
- childSetEnabled("search_check", false);
-
- LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
- combo_sale_type->setValue(LLSaleInfo::FS_COPY);
- combo_sale_type->setEnabled(FALSE);
-
- childSetEnabled("Cost",false);
- childSetText("Cost",getString("Cost Default"));
- childSetText("Edit Cost",LLStringUtil::null);
- childSetEnabled("Edit Cost",false);
-
- childSetEnabled("label click action",false);
- LLComboBox* ComboClickAction = getChild<LLComboBox>("clickaction");
- if(ComboClickAction)
- {
- ComboClickAction->setEnabled(FALSE);
- ComboClickAction->clear();
- }
- childSetVisible("B:",false);
- childSetVisible("O:",false);
- childSetVisible("G:",false);
- childSetVisible("E:",false);
- childSetVisible("N:",false);
- childSetVisible("F:",false);
+ objectp = nodep->getObject();
+ }
+ // ...nothing selected
+ if (!nodep || !objectp)
+ {
+ disableAll();
return;
}
// figure out a few variables
- BOOL is_one_object = (object_count == 1);
-
+ const BOOL is_one_object = (object_count == 1);
+
// BUG: fails if a root and non-root are both single-selected.
- BOOL is_perm_modify = (mObjectSelection->getFirstRootNode()
- && LLSelectMgr::getInstance()->selectGetRootsModify())
- || LLSelectMgr::getInstance()->selectGetModify();
+ const BOOL is_perm_modify = (mObjectSelection->getFirstRootNode() && LLSelectMgr::getInstance()->selectGetRootsModify()) ||
+ LLSelectMgr::getInstance()->selectGetModify();
const LLFocusableElement* keyboard_focus_view = gFocusMgr.getKeyboardFocus();
+
S32 string_index = 0;
std::string MODIFY_INFO_STRINGS[] =
- {
- getString("text modify info 1"),
- getString("text modify info 2"),
- getString("text modify info 3"),
- getString("text modify info 4")
- };
- if(!is_perm_modify)
+ {
+ getString("text modify info 1"),
+ getString("text modify info 2"),
+ getString("text modify info 3"),
+ getString("text modify info 4")
+ };
+ if (!is_perm_modify)
{
string_index += 2;
}
- if(!is_one_object)
+ if (!is_one_object)
{
++string_index;
}
- childSetEnabled("perm_modify",true);
- childSetText("perm_modify",MODIFY_INFO_STRINGS[string_index]);
+ childSetEnabled("perm_modify", TRUE);
+ childSetText("perm_modify", MODIFY_INFO_STRINGS[string_index]);
- childSetEnabled("Permissions:",true);
+ childSetEnabled("Permissions:", TRUE);
// Update creator text field
- childSetEnabled("Creator:",true);
+ childSetEnabled("Creator:", TRUE);
BOOL creators_identical;
std::string creator_name;
creators_identical = LLSelectMgr::getInstance()->selectGetCreator(mCreatorID,
- creator_name);
+ creator_name);
- childSetText("Creator Name",creator_name);
- childSetEnabled("Creator Name",TRUE);
+ childSetText("Creator Name", creator_name);
+ childSetEnabled("Creator Name", TRUE);
// Update owner text field
- childSetEnabled("Owner:",true);
+ childSetEnabled("Owner:", TRUE);
- BOOL owners_identical;
std::string owner_name;
- owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_name);
-
-// llinfos << "owners_identical " << (owners_identical ? "TRUE": "FALSE") << llendl;
-
+ const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_name);
if (mOwnerID.isNull())
{
- if(LLSelectMgr::getInstance()->selectIsGroupOwned())
+ if (LLSelectMgr::getInstance()->selectIsGroupOwned())
{
// Group owned already displayed by selectGetOwner
}
@@ -304,61 +305,53 @@ void LLSidepanelTaskInfo::refresh()
if (!mLastOwnerID.isNull() && !last_owner_name.empty())
{
owner_name.append(", last ");
- owner_name.append( last_owner_name );
+ owner_name.append(last_owner_name);
}
}
}
-
- childSetText("Owner Name",owner_name);
- childSetEnabled("Owner Name",TRUE);
+ childSetText("Owner Name", owner_name);
+ childSetEnabled("Owner Name", TRUE);
// update group text field
- childSetEnabled("Group:",true);
- childSetText("Group Name",LLStringUtil::null);
+ childSetEnabled("Group:", TRUE);
+ childSetText("Group Name", LLStringUtil::null);
LLUUID group_id;
BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
if (groups_identical)
{
- if(mLabelGroupName)
+ if (mLabelGroupName)
{
- mLabelGroupName->setNameID(group_id, TRUE);
+ mLabelGroupName->setNameID(group_id,TRUE);
mLabelGroupName->setEnabled(TRUE);
}
}
else
{
- if(mLabelGroupName)
+ if (mLabelGroupName)
{
mLabelGroupName->setNameID(LLUUID::null, TRUE);
- mLabelGroupName->refresh(LLUUID::null, LLStringUtil::null, LLStringUtil::null, TRUE);
+ mLabelGroupName->refresh(LLUUID::null,LLStringUtil::null, LLStringUtil::null, TRUE);
mLabelGroupName->setEnabled(FALSE);
}
}
- childSetEnabled("button set group",owners_identical && (mOwnerID == gAgent.getID()));
+ childSetEnabled("button set group", owners_identical && (mOwnerID == gAgent.getID()));
- // figure out the contents of the name, description, & category
- BOOL edit_name_desc = FALSE;
- if(is_one_object && objectp->permModify())
- {
- edit_name_desc = TRUE;
- }
-
- childSetEnabled("Name:",true);
+ childSetEnabled("Name:", TRUE);
LLLineEditor* LineEditorObjectName = getChild<LLLineEditor>("Object Name");
- childSetEnabled("Description:",true);
- LLLineEditor* LineEditorObjectDesc = getChild<LLLineEditor>("Object Description");
+ childSetEnabled("Description:", TRUE);
+ LLLineEditor* LineEditorObjectDesc = getChild<LLLineEditor>("Object Description");
- if(is_one_object)
+ if (is_one_object)
{
- if(keyboard_focus_view != LineEditorObjectName)
+ if (keyboard_focus_view != LineEditorObjectName)
{
childSetText("Object Name",nodep->mName);
}
- if(LineEditorObjectDesc)
+ if (LineEditorObjectDesc)
{
- if(keyboard_focus_view != LineEditorObjectDesc)
+ if (keyboard_focus_view != LineEditorObjectDesc)
{
LineEditorObjectDesc->setText(nodep->mDescription);
}
@@ -366,19 +359,25 @@ void LLSidepanelTaskInfo::refresh()
}
else
{
- childSetText("Object Name",LLStringUtil::null);
+ childSetText("Object Name", LLStringUtil::null);
LineEditorObjectDesc->setText(LLStringUtil::null);
}
- if(edit_name_desc)
+ // figure out the contents of the name, description, & category
+ BOOL edit_name_desc = FALSE;
+ if (is_one_object && objectp->permModify())
{
- childSetEnabled("Object Name",true);
- childSetEnabled("Object Description",true);
+ edit_name_desc = TRUE;
+ }
+ if (edit_name_desc)
+ {
+ childSetEnabled("Object Name", TRUE);
+ childSetEnabled("Object Description", TRUE);
}
else
{
- childSetEnabled("Object Name",false);
- childSetEnabled("Object Description",false);
+ childSetEnabled("Object Name", FALSE);
+ childSetEnabled("Object Description", FALSE);
}
S32 total_sale_price = 0;
@@ -387,10 +386,10 @@ void LLSidepanelTaskInfo::refresh()
BOOL is_sale_price_mixed = FALSE;
U32 num_for_sale = FALSE;
LLSelectMgr::getInstance()->selectGetAggregateSaleInfo(num_for_sale,
- is_for_sale_mixed,
- is_sale_price_mixed,
- total_sale_price,
- individual_sale_price);
+ is_for_sale_mixed,
+ is_sale_price_mixed,
+ total_sale_price,
+ individual_sale_price);
const BOOL self_owned = (gAgent.getID() == mOwnerID);
const BOOL group_owned = LLSelectMgr::getInstance()->selectIsGroupOwned() ;
@@ -398,35 +397,35 @@ void LLSidepanelTaskInfo::refresh()
const BOOL can_transfer = LLSelectMgr::getInstance()->selectGetRootsTransfer();
const BOOL can_copy = LLSelectMgr::getInstance()->selectGetRootsCopy();
- if(!owners_identical)
+ if (!owners_identical)
{
- childSetEnabled("Cost",false);
- childSetText("Edit Cost",LLStringUtil::null);
- childSetEnabled("Edit Cost",false);
+ childSetEnabled("Cost", FALSE);
+ childSetText("Edit Cost", LLStringUtil::null);
+ childSetEnabled("Edit Cost", FALSE);
}
// You own these objects.
- else if(self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
+ else if (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
{
// If there are multiple items for sale then set text to PRICE PER UNIT.
if (num_for_sale > 1)
{
- childSetText("Cost",getString("Cost Per Unit"));
+ childSetText("Cost", getString("Cost Per Unit"));
}
else
{
- childSetText("Cost",getString("Cost Default"));
+ childSetText("Cost", getString("Cost Default"));
}
LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
- if(!edit_price->hasFocus())
+ if (!edit_price->hasFocus())
{
// If the sale price is mixed then set the cost to MIXED, otherwise
// set to the actual cost.
- if (num_for_sale > 0 && is_for_sale_mixed)
+ if ((num_for_sale > 0) && is_for_sale_mixed)
{
edit_price->setTentative(TRUE);
}
- else if (num_for_sale > 0 && is_sale_price_mixed)
+ else if ((num_for_sale > 0) && is_sale_price_mixed)
{
edit_price->setTentative(TRUE);
}
@@ -437,111 +436,99 @@ void LLSidepanelTaskInfo::refresh()
}
// The edit fields are only enabled if you can sell this object
// and the sale price is not mixed.
- bool enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : false;
- childSetEnabled("Cost",enable_edit);
- childSetEnabled("Edit Cost",enable_edit);
+ BOOL enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : FALSE;
+ childSetEnabled("Cost", enable_edit);
+ childSetEnabled("Edit Cost", enable_edit);
}
// Someone, not you, owns these objects.
- else if(!public_owned)
+ else if (!public_owned)
{
- childSetEnabled("Cost",false);
- childSetEnabled("Edit Cost",false);
+ childSetEnabled("Cost", FALSE);
+ childSetEnabled("Edit Cost", FALSE);
// Don't show a price if none of the items are for sale.
if (num_for_sale)
- childSetText("Edit Cost",llformat("%d",total_sale_price));
+ childSetText("Edit Cost", llformat("%d",total_sale_price));
else
- childSetText("Edit Cost",LLStringUtil::null);
+ childSetText("Edit Cost", LLStringUtil::null);
// If multiple items are for sale, set text to TOTAL PRICE.
if (num_for_sale > 1)
- childSetText("Cost",getString("Cost Total"));
+ childSetText("Cost", getString("Cost Total"));
else
- childSetText("Cost",getString("Cost Default"));
+ childSetText("Cost", getString("Cost Default"));
}
// This is a public object.
else
{
- childSetEnabled("Cost",false);
- childSetText("Cost",getString("Cost Default"));
+ childSetEnabled("Cost", FALSE);
+ childSetText("Cost", getString("Cost Default"));
- childSetText("Edit Cost",LLStringUtil::null);
- childSetEnabled("Edit Cost",false);
+ childSetText("Edit Cost", LLStringUtil::null);
+ childSetEnabled("Edit Cost", FALSE);
}
// Enable and disable the permissions checkboxes
// based on who owns the object.
// TODO: Creator permissions
- BOOL valid_base_perms = FALSE;
- BOOL valid_owner_perms = FALSE;
- BOOL valid_group_perms = FALSE;
- BOOL valid_everyone_perms = FALSE;
- BOOL valid_next_perms = FALSE;
-
- U32 base_mask_on;
- U32 base_mask_off;
- U32 owner_mask_on;
- U32 owner_mask_off;
- U32 group_mask_on;
- U32 group_mask_off;
- U32 everyone_mask_on;
- U32 everyone_mask_off;
- U32 next_owner_mask_on = 0;
- U32 next_owner_mask_off = 0;
-
- valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE,
- &base_mask_on,
- &base_mask_off);
-
- valid_owner_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
- &owner_mask_on,
- &owner_mask_off);
-
- valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP,
- &group_mask_on,
- &group_mask_off);
+ U32 base_mask_on = 0;
+ U32 base_mask_off = 0;
+ //U32 owner_mask_off = 0;
+ U32 owner_mask_on = 0;
+ U32 group_mask_on = 0;
+ U32 group_mask_off = 0;
+ U32 everyone_mask_on = 0;
+ U32 everyone_mask_off = 0;
+ U32 next_owner_mask_on = 0;
+ U32 next_owner_mask_off = 0;
+
+ BOOL valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE,
+ &base_mask_on,
+ &base_mask_off);
+ /*
+ BOOL valid_owner_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
+ &owner_mask_on,
+ &owner_mask_off);
+ */
+ BOOL valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP,
+ &group_mask_on,
+ &group_mask_off);
- valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE,
- &everyone_mask_on,
- &everyone_mask_off);
+ BOOL valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE,
+ &everyone_mask_on,
+ &everyone_mask_off);
- valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER,
- &next_owner_mask_on,
- &next_owner_mask_off);
+ BOOL valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER,
+ &next_owner_mask_on,
+ &next_owner_mask_off);
- if( gSavedSettings.getBOOL("DebugPermissions") )
+ if (gSavedSettings.getBOOL("DebugPermissions") )
{
std::string perm_string;
if (valid_base_perms)
{
- perm_string = "B: ";
- perm_string += mask_to_string(base_mask_on);
- childSetText("B:",perm_string);
- childSetVisible("B:",true);
+ perm_string = "B: " + mask_to_string(base_mask_on);
+ childSetText("B:", perm_string);
+ childSetVisible("B:", TRUE);
- perm_string = "O: ";
- perm_string += mask_to_string(owner_mask_on);
- childSetText("O:",perm_string);
- childSetVisible("O:",true);
+ perm_string = "O: " + mask_to_string(owner_mask_on);
+ childSetText("O:", perm_string);
+ childSetVisible("O:", TRUE);
- perm_string = "G: ";
- perm_string += mask_to_string(group_mask_on);
- childSetText("G:",perm_string);
- childSetVisible("G:",true);
+ perm_string = "G: " + mask_to_string(group_mask_on);
+ childSetText("G:", perm_string);
+ childSetVisible("G:", TRUE);
- perm_string = "E: ";
- perm_string += mask_to_string(everyone_mask_on);
- childSetText("E:",perm_string);
- childSetVisible("E:",true);
+ perm_string = "E: " + mask_to_string(everyone_mask_on);
+ childSetText("E:", perm_string);
+ childSetVisible("E:", TRUE);
- perm_string = "N: ";
- perm_string += mask_to_string(next_owner_mask_on);
- childSetText("N:",perm_string);
- childSetVisible("N:",true);
+ perm_string = "N: " + mask_to_string(next_owner_mask_on);
+ childSetText("N:", perm_string);
+ childSetVisible("N:", TRUE);
}
- perm_string = "F: ";
U32 flag_mask = 0x0;
if (objectp->permMove())
flag_mask |= PERM_MOVE;
@@ -551,189 +538,187 @@ void LLSidepanelTaskInfo::refresh()
flag_mask |= PERM_COPY;
if (objectp->permTransfer())
flag_mask |= PERM_TRANSFER;
- perm_string += mask_to_string(flag_mask);
- childSetText("F:",perm_string);
- childSetVisible("F:",true);
+ perm_string = "F:" + mask_to_string(flag_mask);
+ childSetText("F:", perm_string);
+ childSetVisible("F:", TRUE);
}
else
{
- childSetVisible("B:",false);
- childSetVisible("O:",false);
- childSetVisible("G:",false);
- childSetVisible("E:",false);
- childSetVisible("N:",false);
- childSetVisible("F:",false);
+ childSetVisible("B:", FALSE);
+ childSetVisible("O:", FALSE);
+ childSetVisible("G:", FALSE);
+ childSetVisible("E:", FALSE);
+ childSetVisible("N:", FALSE);
+ childSetVisible("F:", FALSE);
}
- bool has_change_perm_ability = false;
- bool has_change_sale_ability = false;
+ BOOL has_change_perm_ability = FALSE;
+ BOOL has_change_sale_ability = FALSE;
- if(valid_base_perms
- && (self_owned
- || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_MANIPULATE))))
+ if (valid_base_perms &&
+ (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_MANIPULATE))))
{
- has_change_perm_ability = true;
+ has_change_perm_ability = TRUE;
}
- if(valid_base_perms
- && (self_owned
- || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_SET_SALE))))
+ if (valid_base_perms &&
+ (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_SET_SALE))))
{
- has_change_sale_ability = true;
+ has_change_sale_ability = TRUE;
}
if (!has_change_perm_ability && !has_change_sale_ability && !root_selected)
{
// ...must select root to choose permissions
- childSetValue("perm_modify", getString("text modify warning"));
+ childSetValue("perm_modify", getString("text modify warning"));
}
if (has_change_perm_ability)
{
- childSetEnabled("checkbox share with group",true);
- childSetEnabled("checkbox allow everyone move",owner_mask_on & PERM_MOVE);
- childSetEnabled("checkbox allow everyone copy",owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
+ childSetEnabled("checkbox share with group", TRUE);
+ childSetEnabled("checkbox allow everyone move", owner_mask_on & PERM_MOVE);
+ childSetEnabled("checkbox allow everyone copy", owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
}
else
{
- childSetEnabled("checkbox share with group", FALSE);
- childSetEnabled("checkbox allow everyone move", FALSE);
- childSetEnabled("checkbox allow everyone copy", FALSE);
+ childSetEnabled("checkbox share with group", FALSE);
+ childSetEnabled("checkbox allow everyone move", FALSE);
+ childSetEnabled("checkbox allow everyone copy", FALSE);
}
if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))
{
- childSetEnabled("checkbox for sale", can_transfer || (!can_transfer && num_for_sale));
+ childSetEnabled("checkbox for sale", can_transfer || (!can_transfer && num_for_sale));
// Set the checkbox to tentative if the prices of each object selected
// are not the same.
- childSetTentative("checkbox for sale", is_for_sale_mixed);
- childSetEnabled("sale type",num_for_sale && can_transfer && !is_sale_price_mixed);
+ childSetTentative("checkbox for sale", is_for_sale_mixed);
+ childSetEnabled("sale type", num_for_sale && can_transfer && !is_sale_price_mixed);
- childSetEnabled("Next owner can:", TRUE);
- childSetEnabled("checkbox next owner can modify",base_mask_on & PERM_MODIFY);
- childSetEnabled("checkbox next owner can copy",base_mask_on & PERM_COPY);
- childSetEnabled("checkbox next owner can transfer",next_owner_mask_on & PERM_COPY);
+ childSetEnabled("Next owner can:", TRUE);
+ childSetEnabled("checkbox next owner can modify", base_mask_on & PERM_MODIFY);
+ childSetEnabled("checkbox next owner can copy", base_mask_on & PERM_COPY);
+ childSetEnabled("checkbox next owner can transfer", next_owner_mask_on & PERM_COPY);
}
else
{
- childSetEnabled("checkbox for sale",FALSE);
- childSetEnabled("sale type",FALSE);
+ childSetEnabled("checkbox for sale", FALSE);
+ childSetEnabled("sale type", FALSE);
- childSetEnabled("Next owner can:",FALSE);
- childSetEnabled("checkbox next owner can modify",FALSE);
- childSetEnabled("checkbox next owner can copy",FALSE);
- childSetEnabled("checkbox next owner can transfer",FALSE);
+ childSetEnabled("Next owner can:", FALSE);
+ childSetEnabled("checkbox next owner can modify", FALSE);
+ childSetEnabled("checkbox next owner can copy", FALSE);
+ childSetEnabled("checkbox next owner can transfer", FALSE);
}
- if(valid_group_perms)
+ if (valid_group_perms)
{
- if((group_mask_on & PERM_COPY) && (group_mask_on & PERM_MODIFY) && (group_mask_on & PERM_MOVE))
+ if ((group_mask_on & PERM_COPY) && (group_mask_on & PERM_MODIFY) && (group_mask_on & PERM_MOVE))
{
- childSetValue("checkbox share with group",TRUE);
- childSetTentative("checkbox share with group",FALSE);
- childSetEnabled("button deed",gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ childSetValue("checkbox share with group", TRUE);
+ childSetTentative("checkbox share with group", FALSE);
+ childSetEnabled("button deed", gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
}
- else if((group_mask_off & PERM_COPY) && (group_mask_off & PERM_MODIFY) && (group_mask_off & PERM_MOVE))
+ else if ((group_mask_off & PERM_COPY) && (group_mask_off & PERM_MODIFY) && (group_mask_off & PERM_MOVE))
{
- childSetValue("checkbox share with group",FALSE);
- childSetTentative("checkbox share with group",false);
- childSetEnabled("button deed",false);
+ childSetValue("checkbox share with group", FALSE);
+ childSetTentative("checkbox share with group", FALSE);
+ childSetEnabled("button deed", FALSE);
}
else
{
- childSetValue("checkbox share with group",TRUE);
- childSetTentative("checkbox share with group",true);
- childSetEnabled("button deed",gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ childSetValue("checkbox share with group", TRUE);
+ childSetTentative("checkbox share with group", TRUE);
+ childSetEnabled("button deed", gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
}
}
- if(valid_everyone_perms)
+ if (valid_everyone_perms)
{
// Move
- if(everyone_mask_on & PERM_MOVE)
+ if (everyone_mask_on & PERM_MOVE)
{
- childSetValue("checkbox allow everyone move",TRUE);
- childSetTentative("checkbox allow everyone move",false);
+ childSetValue("checkbox allow everyone move", TRUE);
+ childSetTentative("checkbox allow everyone move", FALSE);
}
- else if(everyone_mask_off & PERM_MOVE)
+ else if (everyone_mask_off & PERM_MOVE)
{
- childSetValue("checkbox allow everyone move",FALSE);
- childSetTentative("checkbox allow everyone move",false);
+ childSetValue("checkbox allow everyone move", FALSE);
+ childSetTentative("checkbox allow everyone move", FALSE);
}
else
{
- childSetValue("checkbox allow everyone move",TRUE);
- childSetTentative("checkbox allow everyone move",true);
+ childSetValue("checkbox allow everyone move", TRUE);
+ childSetTentative("checkbox allow everyone move", TRUE);
}
// Copy == everyone can't copy
- if(everyone_mask_on & PERM_COPY)
+ if (everyone_mask_on & PERM_COPY)
{
- childSetValue("checkbox allow everyone copy",TRUE);
- childSetTentative("checkbox allow everyone copy",!can_copy || !can_transfer);
+ childSetValue("checkbox allow everyone copy", TRUE);
+ childSetTentative("checkbox allow everyone copy", !can_copy || !can_transfer);
}
- else if(everyone_mask_off & PERM_COPY)
+ else if (everyone_mask_off & PERM_COPY)
{
- childSetValue("checkbox allow everyone copy",FALSE);
- childSetTentative("checkbox allow everyone copy",false);
+ childSetValue("checkbox allow everyone copy", FALSE);
+ childSetTentative("checkbox allow everyone copy", FALSE);
}
else
{
- childSetValue("checkbox allow everyone copy",TRUE);
- childSetTentative("checkbox allow everyone copy",true);
+ childSetValue("checkbox allow everyone copy", TRUE);
+ childSetTentative("checkbox allow everyone copy", TRUE);
}
}
- if(valid_next_perms)
+ if (valid_next_perms)
{
// Modify == next owner canot modify
- if(next_owner_mask_on & PERM_MODIFY)
+ if (next_owner_mask_on & PERM_MODIFY)
{
- childSetValue("checkbox next owner can modify",TRUE);
- childSetTentative("checkbox next owner can modify",false);
+ childSetValue("checkbox next owner can modify", TRUE);
+ childSetTentative("checkbox next owner can modify", FALSE);
}
- else if(next_owner_mask_off & PERM_MODIFY)
+ else if (next_owner_mask_off & PERM_MODIFY)
{
- childSetValue("checkbox next owner can modify",FALSE);
- childSetTentative("checkbox next owner can modify",false);
+ childSetValue("checkbox next owner can modify", FALSE);
+ childSetTentative("checkbox next owner can modify", FALSE);
}
else
{
- childSetValue("checkbox next owner can modify",TRUE);
- childSetTentative("checkbox next owner can modify",true);
+ childSetValue("checkbox next owner can modify", TRUE);
+ childSetTentative("checkbox next owner can modify", TRUE);
}
// Copy == next owner cannot copy
- if(next_owner_mask_on & PERM_COPY)
+ if (next_owner_mask_on & PERM_COPY)
{
- childSetValue("checkbox next owner can copy",TRUE);
- childSetTentative("checkbox next owner can copy",!can_copy);
+ childSetValue("checkbox next owner can copy", TRUE);
+ childSetTentative("checkbox next owner can copy", !can_copy);
}
- else if(next_owner_mask_off & PERM_COPY)
+ else if (next_owner_mask_off & PERM_COPY)
{
- childSetValue("checkbox next owner can copy",FALSE);
- childSetTentative("checkbox next owner can copy",FALSE);
+ childSetValue("checkbox next owner can copy", FALSE);
+ childSetTentative("checkbox next owner can copy", FALSE);
}
else
{
- childSetValue("checkbox next owner can copy",TRUE);
- childSetTentative("checkbox next owner can copy",TRUE);
+ childSetValue("checkbox next owner can copy", TRUE);
+ childSetTentative("checkbox next owner can copy", TRUE);
}
// Transfer == next owner cannot transfer
- if(next_owner_mask_on & PERM_TRANSFER)
+ if (next_owner_mask_on & PERM_TRANSFER)
{
- childSetValue("checkbox next owner can transfer",TRUE);
- childSetTentative("checkbox next owner can transfer",!can_transfer);
+ childSetValue("checkbox next owner can transfer", TRUE);
+ childSetTentative("checkbox next owner can transfer", !can_transfer);
}
- else if(next_owner_mask_off & PERM_TRANSFER)
+ else if (next_owner_mask_off & PERM_TRANSFER)
{
- childSetValue("checkbox next owner can transfer",FALSE);
- childSetTentative("checkbox next owner can transfer",FALSE);
+ childSetValue("checkbox next owner can transfer", FALSE);
+ childSetTentative("checkbox next owner can transfer", FALSE);
}
else
{
- childSetValue("checkbox next owner can transfer",TRUE);
- childSetTentative("checkbox next owner can transfer",TRUE);
+ childSetValue("checkbox next owner can transfer", TRUE);
+ childSetTentative("checkbox next owner can transfer", TRUE);
}
}
@@ -745,72 +730,70 @@ void LLSidepanelTaskInfo::refresh()
LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
if (valid_sale_info)
{
- combo_sale_type->setValue(sale_type == LLSaleInfo::FS_NOT ? LLSaleInfo::FS_COPY : sale_type);
- combo_sale_type->setTentative(FALSE); // unfortunately this doesn't do anything at the moment.
+ combo_sale_type->setValue( sale_type == LLSaleInfo::FS_NOT ? LLSaleInfo::FS_COPY : sale_type);
+ combo_sale_type->setTentative( FALSE); // unfortunately this doesn't do anything at the moment.
}
else
{
// default option is sell copy, determined to be safest
- combo_sale_type->setValue(LLSaleInfo::FS_COPY);
- combo_sale_type->setTentative(TRUE); // unfortunately this doesn't do anything at the moment.
+ combo_sale_type->setValue( LLSaleInfo::FS_COPY);
+ combo_sale_type->setTentative( TRUE); // unfortunately this doesn't do anything at the moment.
}
- childSetValue("checkbox for sale", num_for_sale != 0);
+ childSetValue("checkbox for sale", (num_for_sale != 0));
// HACK: There are some old objects in world that are set for sale,
// but are no-transfer. We need to let users turn for-sale off, but only
// if for-sale is set.
- bool cannot_actually_sell = !can_transfer || (!can_copy && sale_type == LLSaleInfo::FS_COPY);
- if (num_for_sale && has_change_sale_ability && cannot_actually_sell)
- {
- childSetEnabled("checkbox for sale", true);
- }
-
+ const BOOL cannot_actually_sell = !can_transfer || (!can_copy && sale_type == LLSaleInfo::FS_COPY);
+ childSetEnabled("checkbox for sale", (num_for_sale && has_change_sale_ability && cannot_actually_sell));
+
// Check search status of objects
- BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
+ const BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
bool include_in_search;
- bool all_include_in_search = LLSelectMgr::getInstance()->selectionGetIncludeInSearch(&include_in_search);
- childSetEnabled("search_check", has_change_sale_ability && all_volume);
- childSetValue("search_check", include_in_search);
- childSetTentative("search_check", ! all_include_in_search);
+ const BOOL all_include_in_search = LLSelectMgr::getInstance()->selectionGetIncludeInSearch(&include_in_search);
+ childSetEnabled("search_check", has_change_sale_ability && all_volume);
+ childSetValue("search_check", include_in_search);
+ childSetTentative("search_check", !all_include_in_search);
// Click action (touch, sit, buy)
U8 click_action = 0;
if (LLSelectMgr::getInstance()->selectionGetClickAction(&click_action))
{
LLComboBox* ComboClickAction = getChild<LLComboBox>("clickaction");
- if(ComboClickAction)
+ if (ComboClickAction)
{
ComboClickAction->setCurrentByIndex((S32)click_action);
}
}
- childSetEnabled("label click action",is_perm_modify && all_volume);
- childSetEnabled("clickaction",is_perm_modify && all_volume);
+ childSetEnabled("label click action", is_perm_modify && all_volume);
+ childSetEnabled("clickaction", is_perm_modify && all_volume);
if (!getIsEditing())
{
- const std::string no_item_names[]={
- "Object Name",
- "Object Description",
- "button set group",
- "checkbox share with group",
- "button deed",
- "checkbox allow everyone move",
- "checkbox allow everyone copy",
- "checkbox for sale",
- "sale type",
- "Edit Cost",
- "checkbox next owner can modify",
- "checkbox next owner can copy",
- "checkbox next owner can transfer",
- "clickaction",
- "search_check",
- "perm_modify",
- "Group Name",
- };
- for(size_t t=0; t<LL_ARRAY_SIZE(no_item_names); ++t)
+ const std::string no_item_names[] =
+ {
+ "Object Name",
+ "Object Description",
+ "button set group",
+ "checkbox share with group",
+ "button deed",
+ "checkbox allow everyone move",
+ "checkbox allow everyone copy",
+ "checkbox for sale",
+ "sale type",
+ "Edit Cost",
+ "checkbox next owner can modify",
+ "checkbox next owner can copy",
+ "checkbox next owner can transfer",
+ "clickaction",
+ "search_check",
+ "perm_modify",
+ "Group Name",
+ };
+ for (size_t t=0; t<LL_ARRAY_SIZE(no_item_names); ++t)
{
- childSetEnabled(no_item_names[t],false);
+ childSetEnabled(no_item_names[t], FALSE);
}
}
updateVerbs();
@@ -838,13 +821,12 @@ void LLSidepanelTaskInfo::onClickGroup()
BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, name);
LLFloater* parent_floater = gFloaterView->getParentFloater(this);
- if(owners_identical && (owner_id == gAgent.getID()))
+ if (owners_identical && (owner_id == gAgent.getID()))
{
- LLFloaterGroupPicker* fg = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
+ LLFloaterGroupPicker* fg = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
if (fg)
{
fg->setSelectGroupCallback( boost::bind(&LLSidepanelTaskInfo::cbGroupID, this, _1) );
-
if (parent_floater)
{
LLRect new_rect = gFloaterView->findNeighboringPosition(parent_floater, fg);
@@ -857,7 +839,7 @@ void LLSidepanelTaskInfo::onClickGroup()
void LLSidepanelTaskInfo::cbGroupID(LLUUID group_id)
{
- if(mLabelGroupName)
+ if (mLabelGroupName)
{
mLabelGroupName->setNameID(group_id, TRUE);
}
@@ -866,23 +848,23 @@ void LLSidepanelTaskInfo::cbGroupID(LLUUID group_id)
static bool callback_deed_to_group(const LLSD& notification, const LLSD& response)
{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- if (0 == option)
+ const S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if (option == 0)
{
LLUUID group_id;
- BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
- if(group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED)))
+ const BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
+ if (group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED)))
{
LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE);
// LLViewerStats::getInstance()->incStat(LLViewerStats::ST_RELEASE_COUNT);
}
}
- return false;
+ return FALSE;
}
void LLSidepanelTaskInfo::onClickDeedToGroup()
{
- LLNotificationsUtil::add( "DeedObjectToGroup", LLSD(), LLSD(), callback_deed_to_group);
+ LLNotificationsUtil::add("DeedObjectToGroup", LLSD(), LLSD(), callback_deed_to_group);
}
///----------------------------------------------------------------------------
@@ -891,8 +873,8 @@ void LLSidepanelTaskInfo::onClickDeedToGroup()
void LLSidepanelTaskInfo::onCommitPerm(LLCheckBoxCtrl *ctrl, U8 field, U32 perm)
{
- LLViewerObject* object = mObjectSelection->getFirstRootObject();
- if(!object) return;
+ const LLViewerObject* object = mObjectSelection->getFirstRootObject();
+ if (!object) return;
BOOL new_state = ctrl->get();
LLSelectMgr::getInstance()->selectionSetObjectPermissions(field, new_state, perm);
@@ -960,28 +942,24 @@ void LLSidepanelTaskInfo::onCommitSaleType()
void LLSidepanelTaskInfo::setAllSaleInfo()
{
llinfos << "LLSidepanelTaskInfo::setAllSaleInfo()" << llendl;
- LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_NOT;
+ LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_NOT;
LLCheckBoxCtrl *checkPurchase = getChild<LLCheckBoxCtrl>("checkbox for sale");
-
// Set the sale type if the object(s) are for sale.
- if(checkPurchase && checkPurchase->get())
+ if (checkPurchase && checkPurchase->get())
{
sale_type = static_cast<LLSaleInfo::EForSale>(getChild<LLComboBox>("sale type")->getValue().asInteger());
}
S32 price = -1;
-
- LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
+ const LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
price = (edit_price->getTentative()) ? DEFAULT_PRICE : edit_price->getValue().asInteger();
-
// If somehow an invalid price, turn the sale off.
if (price < 0)
sale_type = LLSaleInfo::FS_NOT;
-
LLSaleInfo sale_info(sale_type, price);
LLSelectMgr::getInstance()->selectionSetObjectSaleInfo(sale_info);
-
+
// If turned off for-sale, make sure click-action buy is turned
// off as well
if (sale_type == LLSaleInfo::FS_NOT)
@@ -1001,8 +979,8 @@ struct LLSelectionPayable : public LLSelectedObjectFunctor
{
// can pay if you or your parent has money() event in script
LLViewerObject* parent = (LLViewerObject*)obj->getParent();
- return (obj->flagTakesMoney()
- || (parent && parent->flagTakesMoney()));
+ return (obj->flagTakesMoney() ||
+ (parent && parent->flagTakesMoney()));
}
};
@@ -1029,7 +1007,7 @@ void LLSidepanelTaskInfo::onCommitClickAction(U8 click_action)
{
// Verify object has script with money() handler
LLSelectionPayable payable;
- bool can_pay = mObjectSelection->applyToObjects(&payable);
+ const BOOL can_pay = mObjectSelection->applyToObjects(&payable);
if (!can_pay)
{
// Warn, but do it anyway.
@@ -1104,6 +1082,13 @@ LLSidepanelTaskInfo* LLSidepanelTaskInfo::getActivePanel()
return sActivePanel;
}
+LLViewerObject* LLSidepanelTaskInfo::getObject()
+{
+ if (!mObject->isDead())
+ return mObject;
+ return NULL;
+}
+
LLViewerObject* LLSidepanelTaskInfo::getFirstSelectedObject()
{
LLSelectNode *node = mObjectSelection->getFirstRootNode();
diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h
index b6dd4dfb2c..83afac9da8 100644
--- a/indra/newview/llsidepaneltaskinfo.h
+++ b/indra/newview/llsidepaneltaskinfo.h
@@ -91,6 +91,8 @@ protected:
void setAllSaleInfo();
+ void disableAll();
+
private:
LLNameBox* mLabelGroupName; // group name
@@ -107,6 +109,10 @@ private:
LLButton* mPayBtn;
LLButton* mBuyBtn;
+protected:
+ LLViewerObject* getObject();
+private:
+ LLViewerObject* mObject;
LLObjectSelectionHandle mObjectSelection;
static LLSidepanelTaskInfo* sActivePanel;
};