summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llavatariconctrl.cpp5
-rw-r--r--indra/newview/llinventorybridge.cpp1
-rw-r--r--indra/newview/llinventoryfunctions.cpp5
-rw-r--r--indra/newview/llinventoryfunctions.h1
-rw-r--r--indra/newview/llpanelobjectinventory.cpp12
-rw-r--r--indra/newview/llselectmgr.h15
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp27
-rw-r--r--indra/newview/llsidepaneltaskinfo.h4
-rw-r--r--indra/newview/llstartup.cpp6
-rw-r--r--indra/newview/llviewermenu.cpp22
-rw-r--r--indra/newview/llvoavatar.cpp2
-rw-r--r--indra/newview/llvovolume.cpp8
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_media_browser.xml10
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_item_info.xml89
15 files changed, 119 insertions, 90 deletions
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 87b8d807c4..abb79b53a7 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -244,7 +244,10 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
LLIconCtrl::setValue(value);
}
- gCacheName->get(mAvatarId, FALSE, boost::bind(&LLAvatarIconCtrl::nameUpdatedCallback, this, _1, _2, _3, _4));
+ if (gCacheName)
+ {
+ gCacheName->get(mAvatarId, FALSE, boost::bind(&LLAvatarIconCtrl::nameUpdatedCallback, this, _1, _2, _3, _4));
+ }
}
bool LLAvatarIconCtrl::updateFromCache()
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index ec367c1746..c8d66549b7 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -4496,6 +4496,7 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
items.push_back(std::string("Wearable Wear"));
items.push_back(std::string("Wearable Add"));
disabled_items.push_back(std::string("Take Off"));
+ disabled_items.push_back(std::string("Wearable Edit"));
}
break;
default:
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index de24bd92d0..c784ca3a9c 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -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);
diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h
index 93c56e1b8a..aa4ac98241 100644
--- a/indra/newview/llinventoryfunctions.h
+++ b/indra/newview/llinventoryfunctions.h
@@ -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);
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index da809b7baa..f683cbc8d0 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -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
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index d315f40ff3..668c04cf15 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -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);
@@ -313,6 +307,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 &);
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index e76397671b..3ab71eac64 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -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()
diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h
index 15274c90db..010173e84e 100644
--- a/indra/newview/llsidepaneltaskinfo.h
+++ b/indra/newview/llsidepaneltaskinfo.h
@@ -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;
};
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index c33213a058..d25e8444cf 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1116,8 +1116,6 @@ bool idle_startup()
LLVoiceClient::getInstance()->userAuthorized(gUserCredential->userID(), gAgentID);
// create the default proximal channel
LLVoiceChannel::initClass();
- // update the voice settings
- LLVoiceClient::getInstance()->updateSettings();
LLGridManager::getInstance()->setFavorite();
LLStartUp::setStartupState( STATE_WORLD_INIT);
}
@@ -1300,6 +1298,10 @@ bool idle_startup()
LLAppViewer::instance()->loadNameCache();
}
+ // update the voice settings *after* gCacheName initialization
+ // so that we can construct voice UI that relies on the name cache
+ LLVoiceClient::getInstance()->updateSettings();
+
//gCacheName is required for nearby chat history loading
//so I just moved nearby history loading a few states further
if (!gNoRender && gSavedPerAccountSettings.getBOOL("LogShowHistory"))
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index ee766c262a..36650af6cb 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -3278,16 +3278,6 @@ void handle_buy_object(LLSaleInfo sale_info)
return;
}
- S32 price = sale_info.getSalePrice();
-
- if (price > 0 && price > gStatusBar->getBalance())
- {
- LLStringUtil::format_map_t args;
- args["AMOUNT"] = llformat("%d", price);
- LLBuyCurrencyHTML::openCurrencyFloater( LLTrans::getString("this_object_costs", args), price );
- return;
- }
-
LLFloaterBuy::show(sale_info);
}
@@ -4543,6 +4533,16 @@ void handle_buy()
BOOL valid = LLSelectMgr::getInstance()->selectGetSaleInfo(sale_info);
if (!valid) return;
+ S32 price = sale_info.getSalePrice();
+
+ if (price > 0 && price > gStatusBar->getBalance())
+ {
+ LLStringUtil::format_map_t args;
+ args["AMOUNT"] = llformat("%d", price);
+ LLBuyCurrencyHTML::openCurrencyFloater( LLTrans::getString("this_object_costs", args), price );
+ return;
+ }
+
if (sale_info.getSaleType() == LLSaleInfo::FS_CONTENTS)
{
handle_buy_contents(sale_info);
@@ -7198,7 +7198,7 @@ void handle_web_browser_test(const LLSD& param)
{
url = "about:blank";
}
- LLWeb::loadURL(url);
+ LLWeb::loadURLInternal(url);
}
void handle_buy_currency_test(void*)
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 179002d2a8..4ef166fb71 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -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);
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index d6453111d7..24e2f745d4 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1978,9 +1978,13 @@ bool LLVOVolume::hasMediaPermission(const LLMediaEntry* media_entry, MediaPermTy
}
// Group permissions
- else if (0 != (media_perms & LLMediaEntry::PERM_GROUP) && permGroupOwner())
+ else if (0 != (media_perms & LLMediaEntry::PERM_GROUP))
{
- return true;
+ LLPermissions* obj_perm = LLSelectMgr::getInstance()->findObjectPermissions(this);
+ if (obj_perm && gAgent.isInGroup(obj_perm->getGroup()))
+ {
+ return true;
+ }
}
// Owner permissions
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 54ef6d65a7..b9489895ae 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -825,7 +825,7 @@ Leyla Linden </text>
name="Simulator primitive usage:"
top_pad="4"
width="364">
- Primative usage:
+ Primitive usage:
</text>
<text
type="string"
diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml
index 70dac7e41c..c02d607586 100644
--- a/indra/newview/skins/default/xui/en/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml
@@ -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"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
index e2bd6f375e..b3bc618eec 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -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"