Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Alchemy Viewer
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Silent mode is enabled
All outbound communications are blocked.
Learn more
.
Show more breadcrumbs
Alchemy Viewer
Alchemy Viewer
Commits
65bbff63
Commit
65bbff63
authored
15 years ago
by
Eric M. Tulla (BigPapi)
Browse files
Options
Downloads
Plain Diff
Automated merge with
ssh://hg.lindenlab.com/viewer/viewer-2-0/
parents
7a2a5bf0
3aa62d8f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
indra/newview/llsidepaneliteminfo.cpp
+80
-22
80 additions, 22 deletions
indra/newview/llsidepaneliteminfo.cpp
indra/newview/llsidepaneliteminfo.h
+3
-3
3 additions, 3 deletions
indra/newview/llsidepaneliteminfo.h
with
83 additions
and
25 deletions
indra/newview/llsidepaneliteminfo.cpp
+
80
−
22
View file @
65bbff63
...
...
@@ -157,11 +157,12 @@ void LLSidepanelItemInfo::reset()
void
LLSidepanelItemInfo
::
refresh
()
{
LLInventoryItem
*
item
=
findItem
();
LL
Viewer
InventoryItem
*
item
=
findItem
();
if
(
item
)
{
refreshFromItem
(
item
);
updateVerbs
();
return
;
}
else
{
...
...
@@ -170,11 +171,8 @@ void LLSidepanelItemInfo::refresh()
setIsEditing
(
FALSE
);
}
}
const
LLUUID
trash_id
=
gInventory
.
findCategoryUUIDForType
(
LLFolderType
::
FT_TRASH
);
bool
is_editable
=
item
&&
(
item
->
getUUID
()
!=
trash_id
)
&&
!
gInventory
.
isObjectDescendentOf
(
item
->
getUUID
(),
trash_id
);
if
(
!
getIsEditing
()
||
!
is_editable
)
if
(
!
getIsEditing
())
{
const
std
::
string
no_item_names
[]
=
{
"LabelItemName"
,
...
...
@@ -212,7 +210,7 @@ void LLSidepanelItemInfo::refresh()
}
}
if
(
!
i
s_editable
)
if
(
!
i
tem
)
{
const
std
::
string
no_edit_mode_names
[]
=
{
"BtnCreator"
,
...
...
@@ -227,24 +225,26 @@ void LLSidepanelItemInfo::refresh()
updateVerbs
();
}
void
LLSidepanelItemInfo
::
refreshFromItem
(
LLInventoryItem
*
item
)
void
LLSidepanelItemInfo
::
refreshFromItem
(
LL
Viewer
InventoryItem
*
item
)
{
////////////////////////
// PERMISSIONS LOOKUP //
////////////////////////
// do not enable the UI for incomplete items.
LLViewerInventoryItem
*
i
=
(
LLViewerInventoryItem
*
)
item
;
BOOL
is_complete
=
i
->
isComplete
();
const
BOOL
cannot_restrict_permissions
=
LLInventoryType
::
cannotRestrictPermissions
(
i
->
getInventoryType
());
const
BOOL
is_calling_card
=
(
i
->
getInventoryType
()
==
LLInventoryType
::
IT_CALLINGCARD
);
BOOL
is_complete
=
item
->
isComplete
();
const
BOOL
cannot_restrict_permissions
=
LLInventoryType
::
cannotRestrictPermissions
(
item
->
getInventoryType
());
const
BOOL
is_calling_card
=
(
item
->
getInventoryType
()
==
LLInventoryType
::
IT_CALLINGCARD
);
const
LLPermissions
&
perm
=
item
->
getPermissions
();
const
BOOL
can_agent_manipulate
=
gAgent
.
allowOperation
(
PERM_OWNER
,
perm
,
GP_OBJECT_MANIPULATE
);
const
BOOL
can_agent_sell
=
gAgent
.
allowOperation
(
PERM_OWNER
,
perm
,
GP_OBJECT_SET_SALE
)
&&
!
cannot_restrict_permissions
;
const
BOOL
is_link
=
i
->
getIsLinkType
();
const
BOOL
is_link
=
item
->
getIsLinkType
();
const
LLUUID
trash_id
=
gInventory
.
findCategoryUUIDForType
(
LLFolderType
::
FT_TRASH
);
bool
not_in_trash
=
item
&&
(
item
->
getUUID
()
!=
trash_id
)
&&
!
gInventory
.
isObjectDescendentOf
(
item
->
getUUID
(),
trash_id
);
// You need permission to modify the object to modify an inventory
// item in it.
...
...
@@ -261,7 +261,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item)
//////////////////////
BOOL
is_modifiable
=
gAgent
.
allowOperation
(
PERM_MODIFY
,
perm
,
GP_OBJECT_MANIPULATE
)
&&
is_obj_modify
&&
is_complete
;
&&
is_obj_modify
&&
is_complete
&&
not_in_trash
;
childSetEnabled
(
"LabelItemNameTitle"
,
TRUE
);
childSetEnabled
(
"LabelItemName"
,
is_modifiable
&&
!
is_calling_card
);
// for now, don't allow rename of calling cards
...
...
@@ -338,6 +338,64 @@ void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item)
LLStringUtil
::
format
(
timeStr
,
substitution
);
childSetText
(
"LabelAcquiredDate"
,
timeStr
);
}
/////////////////////////////////////
// PERMISSIONS AND SALE ITEM HIDING
/////////////////////////////////////
const
std
::
string
perm_and_sale_items
[]
=
{
"perms_inv"
,
"OwnerLabel"
,
"perm_modify"
,
"CheckOwnerModify"
,
"CheckOwnerCopy"
,
"CheckOwnerTransfer"
,
"GroupLabel"
,
"CheckShareWithGroup"
,
"AnyoneLabel"
,
"CheckEveryoneCopy"
,
"NextOwnerLabel"
,
"CheckNextOwnerModify"
,
"CheckNextOwnerCopy"
,
"CheckNextOwnerTransfer"
,
"CheckPurchase"
,
"SaleLabel"
,
"RadioSaleType"
,
"combobox sale copy"
,
"Edit Cost"
,
"TextPrice"
};
const
std
::
string
debug_items
[]
=
{
"BaseMaskDebug"
,
"OwnerMaskDebug"
,
"GroupMaskDebug"
,
"EveryoneMaskDebug"
,
"NextMaskDebug"
};
// Hide permissions checkboxes and labels and for sale info if in the trash
// or ui elements don't apply to these objects and return from function
if
(
!
not_in_trash
||
cannot_restrict_permissions
)
{
for
(
size_t
t
=
0
;
t
<
LL_ARRAY_SIZE
(
perm_and_sale_items
);
++
t
)
{
childSetVisible
(
perm_and_sale_items
[
t
],
false
);
}
for
(
size_t
t
=
0
;
t
<
LL_ARRAY_SIZE
(
debug_items
);
++
t
)
{
childSetVisible
(
debug_items
[
t
],
false
);
}
return
;
}
else
// Make sure perms and sale ui elements are visible
{
for
(
size_t
t
=
0
;
t
<
LL_ARRAY_SIZE
(
perm_and_sale_items
);
++
t
)
{
childSetVisible
(
perm_and_sale_items
[
t
],
true
);
}
}
///////////////////////
// OWNER PERMISSIONS //
...
...
@@ -541,7 +599,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item)
void
LLSidepanelItemInfo
::
onClickCreator
()
{
LLInventoryItem
*
item
=
findItem
();
LL
Viewer
InventoryItem
*
item
=
findItem
();
if
(
!
item
)
return
;
if
(
!
item
->
getCreatorUUID
().
isNull
())
{
...
...
@@ -552,7 +610,7 @@ void LLSidepanelItemInfo::onClickCreator()
// static
void
LLSidepanelItemInfo
::
onClickOwner
()
{
LLInventoryItem
*
item
=
findItem
();
LL
Viewer
InventoryItem
*
item
=
findItem
();
if
(
!
item
)
return
;
if
(
item
->
getPermissions
().
isGroupOwned
())
{
...
...
@@ -568,7 +626,7 @@ void LLSidepanelItemInfo::onClickOwner()
void
LLSidepanelItemInfo
::
onCommitName
()
{
//llinfos << "LLSidepanelItemInfo::onCommitName()" << llendl;
LLViewerInventoryItem
*
item
=
(
LLViewerInventoryItem
*
)
findItem
();
LLViewerInventoryItem
*
item
=
findItem
();
if
(
!
item
)
{
return
;
...
...
@@ -604,7 +662,7 @@ void LLSidepanelItemInfo::onCommitName()
void
LLSidepanelItemInfo
::
onCommitDescription
()
{
//llinfos << "LLSidepanelItemInfo::onCommitDescription()" << llendl;
LLViewerInventoryItem
*
item
=
(
LLViewerInventoryItem
*
)
findItem
();
LLViewerInventoryItem
*
item
=
findItem
();
if
(
!
item
)
return
;
LLLineEditor
*
labelItemDesc
=
getChild
<
LLLineEditor
>
(
"LabelItemDesc"
);
...
...
@@ -642,7 +700,7 @@ void LLSidepanelItemInfo::onCommitDescription()
void
LLSidepanelItemInfo
::
onCommitPermissions
()
{
//llinfos << "LLSidepanelItemInfo::onCommitPermissions()" << llendl;
LLViewerInventoryItem
*
item
=
(
LLViewerInventoryItem
*
)
findItem
();
LLViewerInventoryItem
*
item
=
findItem
();
if
(
!
item
)
return
;
LLPermissions
perm
(
item
->
getPermissions
());
...
...
@@ -751,7 +809,7 @@ void LLSidepanelItemInfo::onCommitSaleType()
void
LLSidepanelItemInfo
::
updateSaleInfo
()
{
LLViewerInventoryItem
*
item
=
(
LLViewerInventoryItem
*
)
findItem
();
LLViewerInventoryItem
*
item
=
findItem
();
if
(
!
item
)
return
;
LLSaleInfo
sale_info
(
item
->
getSaleInfo
());
if
(
!
gAgent
.
allowOperation
(
PERM_TRANSFER
,
item
->
getPermissions
(),
GP_OBJECT_SET_SALE
))
...
...
@@ -851,9 +909,9 @@ void LLSidepanelItemInfo::updateSaleInfo()
}
}
LLInventoryItem
*
LLSidepanelItemInfo
::
findItem
()
const
LL
Viewer
InventoryItem
*
LLSidepanelItemInfo
::
findItem
()
const
{
LLInventoryItem
*
item
=
NULL
;
LL
Viewer
InventoryItem
*
item
=
NULL
;
if
(
mObjectID
.
isNull
())
{
// it is in agent inventory
...
...
@@ -864,7 +922,7 @@ LLInventoryItem* LLSidepanelItemInfo::findItem() const
LLViewerObject
*
object
=
gObjectList
.
findObject
(
mObjectID
);
if
(
object
)
{
item
=
(
LL
InventoryItem
*
)
object
->
getInventoryObject
(
mItemID
);
item
=
static_cast
<
LLViewer
InventoryItem
*
>
(
object
->
getInventoryObject
(
mItemID
)
)
;
}
}
return
item
;
...
...
This diff is collapsed.
Click to expand it.
indra/newview/llsidepaneliteminfo.h
+
3
−
3
View file @
65bbff63
...
...
@@ -41,7 +41,7 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class
LLButton
;
class
LLInventoryItem
;
class
LL
Viewer
InventoryItem
;
class
LLItemPropertiesObserver
;
class
LLViewerObject
;
class
LLPermissions
;
...
...
@@ -63,10 +63,10 @@ class LLSidepanelItemInfo : public LLSidepanelInventorySubpanel
/*virtual*/
void
refresh
();
/*virtual*/
void
save
();
LLInventoryItem
*
findItem
()
const
;
LL
Viewer
InventoryItem
*
findItem
()
const
;
LLViewerObject
*
findObject
()
const
;
void
refreshFromItem
(
LLInventoryItem
*
item
);
void
refreshFromItem
(
LL
Viewer
InventoryItem
*
item
);
private:
LLUUID
mItemID
;
// inventory UUID for the inventory item.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment