Automated merge with ssh://hg.lindenlab.com/q/viewer-release
commit
b52044cf26
|
|
@ -327,6 +327,11 @@ BOOL get_is_category_renameable(const LLInventoryModel* model, const LLUUID& id)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id)
|
||||
{
|
||||
LLSideTray::getInstance()->showPanel("sidepanel_inventory", LLSD().with("id", item_uuid).with("object", object_id));
|
||||
}
|
||||
|
||||
void show_item_profile(const LLUUID& item_uuid)
|
||||
{
|
||||
LLUUID linked_uuid = gInventory.getLinkedItemID(item_uuid);
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id);
|
|||
BOOL get_is_category_renameable(const LLInventoryModel* model, const LLUUID& id);
|
||||
|
||||
void show_item_profile(const LLUUID& item_uuid);
|
||||
void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id);
|
||||
|
||||
void show_item_original(const LLUUID& item_uuid);
|
||||
|
||||
|
|
|
|||
|
|
@ -176,17 +176,7 @@ LLInventoryItem* LLTaskInvFVBridge::findItem() const
|
|||
|
||||
void LLTaskInvFVBridge::showProperties()
|
||||
{
|
||||
show_item_profile(mUUID);
|
||||
|
||||
// Disable old properties floater; this is replaced by the sidepanel.
|
||||
/*
|
||||
LLFloaterProperties* floater = LLFloaterReg::showTypedInstance<LLFloaterProperties>("properties", mUUID);
|
||||
if (floater)
|
||||
{
|
||||
floater->setObjectID(mPanel->getTaskUUID());
|
||||
}
|
||||
*/
|
||||
|
||||
show_task_item_profile(mUUID, mPanel->getTaskUUID());
|
||||
}
|
||||
|
||||
struct LLBuyInvItemData
|
||||
|
|
|
|||
|
|
@ -257,7 +257,6 @@ public:
|
|||
LLObjectSelection();
|
||||
|
||||
void updateEffects();
|
||||
void cleanupNodes();
|
||||
|
||||
BOOL isEmpty() const;
|
||||
|
||||
|
|
@ -281,11 +280,6 @@ public:
|
|||
template <typename T> bool getSelectedTEValue(LLSelectedTEGetFunctor<T>* func, T& res);
|
||||
template <typename T> bool isMultipleTEValue(LLSelectedTEGetFunctor<T>* func, const T& ignore_value);
|
||||
|
||||
void addNode(LLSelectNode *nodep);
|
||||
void addNodeAtEnd(LLSelectNode *nodep);
|
||||
void moveNodeToFront(LLSelectNode *nodep);
|
||||
void removeNode(LLSelectNode *nodep);
|
||||
void deleteAllNodes(); // Delete all nodes
|
||||
S32 getNumNodes();
|
||||
LLSelectNode* findNode(LLViewerObject* objectp);
|
||||
|
||||
|
|
@ -312,6 +306,15 @@ public:
|
|||
|
||||
ESelectType getSelectType() const { return mSelectType; }
|
||||
|
||||
private:
|
||||
void addNode(LLSelectNode *nodep);
|
||||
void addNodeAtEnd(LLSelectNode *nodep);
|
||||
void moveNodeToFront(LLSelectNode *nodep);
|
||||
void removeNode(LLSelectNode *nodep);
|
||||
void deleteAllNodes();
|
||||
void cleanupNodes();
|
||||
|
||||
|
||||
private:
|
||||
list_t mList;
|
||||
const LLObjectSelection &operator=(const LLObjectSelection &);
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ static LLRegisterPanelClassWrapper<LLSidepanelTaskInfo> t_task_info("sidepanel_t
|
|||
LLSidepanelTaskInfo::LLSidepanelTaskInfo()
|
||||
{
|
||||
setMouseOpaque(FALSE);
|
||||
LLSelectMgr::instance().mUpdateSignal.connect(boost::bind(&LLSidepanelTaskInfo::refreshAll, this));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -271,7 +272,6 @@ void LLSidepanelTaskInfo::refresh()
|
|||
// BUG: fails if a root and non-root are both single-selected.
|
||||
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[] =
|
||||
|
|
@ -365,14 +365,14 @@ void LLSidepanelTaskInfo::refresh()
|
|||
|
||||
if (is_one_object)
|
||||
{
|
||||
if (keyboard_focus_view != LineEditorObjectName)
|
||||
if (!LineEditorObjectName->hasFocus())
|
||||
{
|
||||
childSetText("Object Name",nodep->mName);
|
||||
}
|
||||
|
||||
if (LineEditorObjectDesc)
|
||||
{
|
||||
if (keyboard_focus_view != LineEditorObjectDesc)
|
||||
if (!LineEditorObjectDesc->hasFocus())
|
||||
{
|
||||
LineEditorObjectDesc->setText(nodep->mDescription);
|
||||
}
|
||||
|
|
@ -1178,9 +1178,30 @@ void LLSidepanelTaskInfo::save()
|
|||
onCommitIncludeInSearch(getChild<LLCheckBoxCtrl>("search_check"), this);
|
||||
}
|
||||
|
||||
// removes keyboard focus so that all fields can be updated
|
||||
// and then restored focus
|
||||
void LLSidepanelTaskInfo::refreshAll()
|
||||
{
|
||||
// update UI as soon as we have an object
|
||||
// but remove keyboard focus first so fields are free to update
|
||||
LLFocusableElement* focus = NULL;
|
||||
if (hasFocus())
|
||||
{
|
||||
focus = gFocusMgr.getKeyboardFocus();
|
||||
setFocus(FALSE);
|
||||
}
|
||||
refresh();
|
||||
if (focus)
|
||||
{
|
||||
focus->setFocus(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void LLSidepanelTaskInfo::setObjectSelection(LLObjectSelectionHandle selection)
|
||||
{
|
||||
mObjectSelection = selection;
|
||||
refreshAll();
|
||||
}
|
||||
|
||||
LLSidepanelTaskInfo* LLSidepanelTaskInfo::getActivePanel()
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ protected:
|
|||
/*virtual*/ void save();
|
||||
/*virtual*/ void updateVerbs();
|
||||
|
||||
void refreshAll(); // ignore current keyboard focus and update all fields
|
||||
|
||||
// statics
|
||||
static void onClickClaim(void*);
|
||||
static void onClickRelease(void*);
|
||||
|
|
@ -120,7 +122,7 @@ protected:
|
|||
LLViewerObject* getObject();
|
||||
private:
|
||||
LLViewerObject* mObject;
|
||||
LLObjectSelectionHandle mObjectSelection;
|
||||
LLObjectSelectionHandle mObjectSelection;
|
||||
static LLSidepanelTaskInfo* sActivePanel;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7209,7 +7209,7 @@ void handle_web_browser_test(const LLSD& param)
|
|||
{
|
||||
url = "about:blank";
|
||||
}
|
||||
LLWeb::loadURL(url);
|
||||
LLWeb::loadURLInternal(url);
|
||||
}
|
||||
|
||||
void handle_buy_currency_test(void*)
|
||||
|
|
|
|||
|
|
@ -3551,7 +3551,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
|
|||
// AUDIO_STEP_LO_SPEED, AUDIO_STEP_HI_SPEED,
|
||||
// AUDIO_STEP_LO_GAIN, AUDIO_STEP_HI_GAIN );
|
||||
|
||||
const F32 STEP_VOLUME = 0.3f;
|
||||
const F32 STEP_VOLUME = 0.1f;
|
||||
const LLUUID& step_sound_id = getStepSound();
|
||||
|
||||
LLVector3d foot_pos_global = gAgent.getPosGlobalFromAgent(foot_pos_agent);
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@
|
|||
</button>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
height="20"
|
||||
height="40"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="external_controls"
|
||||
|
|
@ -190,7 +190,7 @@
|
|||
user_resize="false"
|
||||
width="540">
|
||||
<web_browser
|
||||
bottom="-10"
|
||||
bottom="-30"
|
||||
follows="left|right|top|bottom"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
|
|
@ -206,9 +206,9 @@
|
|||
name="open_browser"
|
||||
top_pad="5"
|
||||
width="185">
|
||||
<button.commit_callback
|
||||
function="MediaBrowser.OpenWebBrowser" />
|
||||
</button>
|
||||
<button.commit_callback
|
||||
function="MediaBrowser.OpenWebBrowser" />
|
||||
</button>
|
||||
<check_box
|
||||
control_name="UseExternalBrowser"
|
||||
follows="bottom|left"
|
||||
|
|
|
|||
|
|
@ -159,51 +159,49 @@
|
|||
name="LabelCreatorName"
|
||||
top_delta="6"
|
||||
width="140">
|
||||
Nicole Linden
|
||||
</text>
|
||||
<button
|
||||
follows="top|right"
|
||||
height="16"
|
||||
image_selected="Inspector_I"
|
||||
image_unselected="Inspector_I"
|
||||
layout="topleft"
|
||||
right="-5"
|
||||
name="BtnCreator"
|
||||
top_delta="-6"
|
||||
width="16" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left="5"
|
||||
name="LabelOwnerTitle"
|
||||
top_pad="10"
|
||||
width="78">
|
||||
Owner:
|
||||
</text>
|
||||
<avatar_icon
|
||||
follows="top|left"
|
||||
height="20"
|
||||
default_icon_name="Generic_Person"
|
||||
layout="topleft"
|
||||
left_pad="0"
|
||||
top_delta="-6"
|
||||
mouse_opaque="true"
|
||||
width="20" />
|
||||
<text
|
||||
type="string"
|
||||
follows="left|right|top"
|
||||
font="SansSerifSmall"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="LabelOwnerName"
|
||||
top_delta="6"
|
||||
width="140">
|
||||
Thrax Linden
|
||||
</text>
|
||||
</text>
|
||||
<button
|
||||
follows="top|right"
|
||||
height="16"
|
||||
image_selected="Inspector_I"
|
||||
image_unselected="Inspector_I"
|
||||
layout="topleft"
|
||||
right="-5"
|
||||
name="BtnCreator"
|
||||
top_delta="-6"
|
||||
width="16" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left="5"
|
||||
name="LabelOwnerTitle"
|
||||
top_pad="10"
|
||||
width="78">
|
||||
Owner:
|
||||
</text>
|
||||
<avatar_icon
|
||||
follows="top|left"
|
||||
height="20"
|
||||
default_icon_name="Generic_Person"
|
||||
layout="topleft"
|
||||
left_pad="0"
|
||||
top_delta="-6"
|
||||
mouse_opaque="true"
|
||||
width="20" />
|
||||
<text
|
||||
type="string"
|
||||
follows="left|right|top"
|
||||
font="SansSerifSmall"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="LabelOwnerName"
|
||||
top_delta="6"
|
||||
width="140">
|
||||
</text>
|
||||
<button
|
||||
follows="top|right"
|
||||
height="16"
|
||||
|
|
@ -236,7 +234,6 @@ top_pad="10"
|
|||
name="LabelAcquiredDate"
|
||||
top_delta="0"
|
||||
width="222">
|
||||
Wed May 24 12:50:46 2006
|
||||
</text>
|
||||
<panel
|
||||
border="false"
|
||||
|
|
|
|||
Loading…
Reference in New Issue