Automated merge with ssh://hg.lindenlab.com/q/viewer-release

master
Richard Nelson 2010-06-17 15:54:27 -07:00
commit b52044cf26
10 changed files with 93 additions and 74 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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 &);

View File

@ -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()

View File

@ -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;
};

View File

@ -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*)

View File

@ -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);

View File

@ -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"

View File

@ -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"