summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llfloater.cpp1
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llbottomtray.cpp2
-rw-r--r--indra/newview/llcallfloater.cpp100
-rw-r--r--indra/newview/llcallfloater.h20
-rw-r--r--indra/newview/llchiclet.cpp1
-rw-r--r--indra/newview/llimfloater.cpp13
-rw-r--r--indra/newview/llimpanel.cpp1
-rw-r--r--indra/newview/llimview.cpp29
-rw-r--r--indra/newview/llimview.h11
-rw-r--r--indra/newview/llmutelist.cpp1
-rw-r--r--indra/newview/llpanelgroup.cpp9
-rw-r--r--indra/newview/llpanelimcontrolpanel.cpp1
-rw-r--r--indra/newview/llpanellandmarks.cpp53
-rw-r--r--indra/newview/llpanellandmarks.h16
-rw-r--r--indra/newview/llpanelplaces.cpp13
-rw-r--r--indra/newview/llpanelteleporthistory.cpp2
-rw-r--r--indra/newview/llpreviewtexture.cpp143
-rw-r--r--indra/newview/llviewermessage.cpp9
-rw-r--r--indra/newview/llvoiceclient.cpp1
-rw-r--r--indra/newview/skins/default/xui/en/favorites_bar_button.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_controls.xml10
-rw-r--r--indra/newview/skins/default/xui/en/inspect_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_my_profile.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_notes.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_picks.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile_view.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml2
34 files changed, 175 insertions, 308 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 4f519afa06..79d8f90fec 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1360,6 +1360,7 @@ void LLFloater::bringToFront( S32 x, S32 y )
// virtual
void LLFloater::setVisibleAndFrontmost(BOOL take_focus)
{
+ gFocusMgr.setTopCtrl(NULL);
setVisible(TRUE);
setFrontmost(take_focus);
}
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 00d3b6a798..a4fc095727 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1145,17 +1145,6 @@
<key>Value</key>
<integer>5</integer>
</map>
- <key>CallFloaterMaxItems</key>
- <map>
- <key>Comment</key>
- <string>Max number of visible participants in voice controls window</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>CameraAngle</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 988867ef84..bd68d52868 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -322,7 +322,7 @@ void LLBottomTray::setVisible(BOOL visible)
// Chat bar and gesture button are shown even in mouselook mode.
// But the move, camera and snapshot buttons shouldn't be displayed. See EXT-3988.
- if ("chat_bar" == name || "gesture_panel" == name)
+ if ("chat_bar" == name || "gesture_panel" == name || (visibility && ("movement_panel" == name || "cam_panel" == name || "snapshot_panel" == name)))
continue;
else
{
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index 6317a6a392..f346a4b8c2 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -51,9 +51,9 @@
#include "lltransientfloatermgr.h"
#include "llviewerwindow.h"
#include "llvoicechannel.h"
-#include "lllayoutstack.h"
static void get_voice_participants_uuids(std::vector<LLUUID>& speakers_uuids);
+void reshape_floater(LLCallFloater* floater, S32 delta_height);
class LLNonAvatarCaller : public LLAvatarListItem
{
@@ -225,16 +225,6 @@ void LLCallFloater::onChange()
}
}
-S32 LLCallFloater::notifyParent(const LLSD& info)
-{
- if("size_changes" == info["action"])
- {
- reshapeToFitContent();
- return 1;
- }
- return LLDockableFloater::notifyParent(info);
-}
-
//////////////////////////////////////////////////////////////////////////
/// PRIVATE SECTION
//////////////////////////////////////////////////////////////////////////
@@ -316,7 +306,7 @@ void LLCallFloater::updateSession()
//hide "Leave Call" button for nearby chat
bool is_local_chat = mVoiceType == VC_LOCAL_CHAT;
childSetVisible("leave_call_btn_panel", !is_local_chat);
-
+
refreshParticipantList();
updateAgentModeratorState();
@@ -798,90 +788,4 @@ void LLCallFloater::reset()
mSpeakerManager = NULL;
}
-void reshape_floater(LLCallFloater* floater, S32 delta_height)
-{
- // Try to update floater top side if it is docked(to bottom bar).
- // Try to update floater bottom side or top side if it is un-docked.
- // If world rect is too small, floater will not be reshaped at all.
-
- LLRect floater_rect = floater->getRect();
- LLRect world_rect = gViewerWindow->getWorldViewRectScaled();
-
- // floater is docked to bottom bar
- if(floater->isDocked())
- {
- // can update floater top side
- if(floater_rect.mTop + delta_height < world_rect.mTop)
- {
- floater_rect.set(floater_rect.mLeft, floater_rect.mTop + delta_height,
- floater_rect.mRight, floater_rect.mBottom);
- }
- }
- // floater is un-docked
- else
- {
- // can update floater bottom side
- if( floater_rect.mBottom - delta_height >= world_rect.mBottom )
- {
- floater_rect.set(floater_rect.mLeft, floater_rect.mTop,
- floater_rect.mRight, floater_rect.mBottom - delta_height);
- }
- // could not update floater bottom side, check if we can update floater top side
- else if( floater_rect.mTop + delta_height < world_rect.mTop )
- {
- floater_rect.set(floater_rect.mLeft, floater_rect.mTop + delta_height,
- floater_rect.mRight, floater_rect.mBottom);
- }
- }
-
- floater->setShape(floater_rect);
- floater->getChild<LLLayoutStack>("my_call_stack")->updateLayout(FALSE);
-}
-
-void LLCallFloater::reshapeToFitContent()
-{
- const S32 ITEM_HEIGHT = getParticipantItemHeight();
- static const S32 MAX_VISIBLE_ITEMS = getMaxVisibleItems();
-
- static S32 items_pad = mAvatarList->getItemsPad();
- S32 list_height = mAvatarList->getRect().getHeight();
- S32 items_height = mAvatarList->getItemsRect().getHeight();
- if(items_height <= 0)
- {
- // make "no one near" text visible
- items_height = ITEM_HEIGHT + items_pad;
- }
- S32 max_list_height = MAX_VISIBLE_ITEMS * ITEM_HEIGHT + items_pad * (MAX_VISIBLE_ITEMS - 1);
- max_list_height += 2* mAvatarList->getBorderWidth();
-
- S32 delta = items_height - list_height;
- // too many items, don't reshape floater anymore, let scroll bar appear.
- if(items_height > max_list_height)
- {
- delta = max_list_height - list_height;
- }
-
- reshape_floater(this, delta);
-}
-
-S32 LLCallFloater::getParticipantItemHeight()
-{
- std::vector<LLPanel*> items;
- mAvatarList->getItems(items);
- if(items.size() > 0)
- {
- return items[0]->getRect().getHeight();
- }
- else
- {
- return getChild<LLPanel>("non_avatar_caller")->getRect().getHeight();
- }
-}
-
-S32 LLCallFloater::getMaxVisibleItems()
-{
- static LLCachedControl<S32> max_visible_items(*LLUI::sSettingGroups["config"],"CallFloaterMaxItems");
- return max_visible_items;
-}
-
//EOF
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index 2b40225906..096594aaa2 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -75,11 +75,6 @@ public:
*/
/*virtual*/ void onChange();
- /**
- * Will reshape floater when participant list size changes
- */
- /*virtual*/ S32 notifyParent(const LLSD& info);
-
static void sOnCurrentChannelChanged(const LLUUID& session_id);
private:
@@ -221,21 +216,6 @@ private:
*/
void reset();
- /**
- * Reshapes floater to fit participant list height
- */
- void reshapeToFitContent();
-
- /**
- * Returns height of participant list item
- */
- S32 getParticipantItemHeight();
-
- /**
- * Returns predefined max visible participants.
- */
- S32 getMaxVisibleItems();
-
private:
speaker_state_map_t mSpeakerStateMap;
LLSpeakerMgr* mSpeakerManager;
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 5497d6121f..8da207f887 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -47,6 +47,7 @@
#include "llnotificationsutil.h"
#include "lloutputmonitorctrl.h"
#include "llscriptfloater.h"
+#include "llspeakers.h"
#include "lltextbox.h"
#include "llvoiceclient.h"
#include "llgroupmgr.h"
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index d7c60ff34e..e06e0c94ec 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -58,6 +58,7 @@
#include "llinventorymodel.h"
#include "llrootview.h"
+#include "llspeakers.h"
LLIMFloater::LLIMFloater(const LLUUID& session_id)
@@ -350,13 +351,15 @@ void* LLIMFloater::createPanelAdHocControl(void* userdata)
void LLIMFloater::onSlide()
{
- LLPanel* im_control_panel = getChild<LLPanel>("panel_im_control_panel");
- im_control_panel->setVisible(!im_control_panel->getVisible());
+ mControlPanel->setVisible(!mControlPanel->getVisible());
- gSavedSettings.setBOOL("IMShowControlPanel", im_control_panel->getVisible());
+ gSavedSettings.setBOOL("IMShowControlPanel", mControlPanel->getVisible());
- getChild<LLButton>("slide_left_btn")->setVisible(im_control_panel->getVisible());
- getChild<LLButton>("slide_right_btn")->setVisible(!im_control_panel->getVisible());
+ getChild<LLButton>("slide_left_btn")->setVisible(mControlPanel->getVisible());
+ getChild<LLButton>("slide_right_btn")->setVisible(!mControlPanel->getVisible());
+
+ LLLayoutStack* stack = getChild<LLLayoutStack>("im_panels");
+ if (stack) stack->setAnimate(true);
}
//static
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 9a6115dd63..4bdf5f42dc 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -40,6 +40,7 @@
#include "llfontgl.h"
#include "llrect.h"
#include "llerror.h"
+#include "llmultifloater.h"
#include "llstring.h"
#include "message.h"
#include "lltextbox.h"
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 3ff156eca3..ff20a55358 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -42,47 +42,30 @@
#include "llhttpclient.h"
#include "llsdutil_math.h"
#include "llstring.h"
+#include "lltrans.h"
#include "lluictrlfactory.h"
#include "llagent.h"
+#include "llagentui.h"
#include "llappviewer.h"
#include "llavatariconctrl.h"
#include "llbottomtray.h"
#include "llcallingcard.h"
#include "llchat.h"
-#include "llchiclet.h"
-#include "llresmgr.h"
#include "llfloaterchatterbox.h"
-#include "llavataractions.h"
-#include "llhttpnode.h"
#include "llimfloater.h"
-#include "llimpanel.h"
#include "llgroupiconctrl.h"
-#include "llresizebar.h"
-#include "lltabcontainer.h"
-#include "llviewercontrol.h"
-#include "llfloater.h"
#include "llmutelist.h"
-#include "llresizehandle.h"
-#include "llkeyboard.h"
-#include "llui.h"
-#include "llviewermenu.h"
-#include "llcallingcard.h"
-#include "lltoolbar.h"
+#include "llrecentpeople.h"
#include "llviewermessage.h"
#include "llviewerwindow.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
#include "llnearbychat.h"
-#include "llviewerregion.h"
-#include "llvoicechannel.h"
-#include "lltrans.h"
-#include "llrecentpeople.h"
-#include "llsyswellwindow.h"
-
-//#include "llfirstuse.h"
-#include "llagentui.h"
+#include "llspeakers.h" //for LLIMSpeakerMgr
#include "lltextutil.h"
+#include "llviewercontrol.h"
+
const static std::string IM_TIME("time");
const static std::string IM_TEXT("message");
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index e72bda6c2b..a226d66b12 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -33,22 +33,19 @@
#ifndef LL_LLIMVIEW_H
#define LL_LLIMVIEW_H
-#include "lldarray.h"
-#include "lldockablefloater.h"
-#include "llspeakers.h" //for LLIMSpeakerMgr
-#include "llimpanel.h" //for voice channels
-#include "llmodaldialog.h"
#include "lldockablefloater.h"
#include "llinstantmessage.h"
-#include "lluuid.h"
-#include "llmultifloater.h"
+
#include "lllogchat.h"
+#include "llvoicechannel.h"
class LLFloaterChatterBox;
class LLUUID;
class LLFloaterIMPanel;
class LLFriendObserver;
class LLCallDialogManager;
+class LLIMSpeakerMgr;
+
class LLIMModel : public LLSingleton<LLIMModel>
{
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index cf4a08ce76..7ee4c64f8f 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -64,6 +64,7 @@
#include "llviewerwindow.h"
#include "llworld.h" //for particle system banning
#include "llchat.h"
+#include "llimpanel.h"
#include "llimview.h"
#include "llnotifications.h"
#include "lluistring.h"
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index 01291c4012..569d3001bf 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -425,6 +425,11 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
getChild<LLUICtrl>("group_name")->setVisible(false);
getChild<LLUICtrl>("group_name_editor")->setVisible(true);
+
+ if(button_call)
+ button_call->setVisible(false);
+ if(button_chat)
+ button_chat->setVisible(false);
}
else
{
@@ -452,6 +457,10 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
if(button_apply)
button_apply->setVisible(is_member);
+ if(button_call)
+ button_call->setVisible(is_member);
+ if(button_chat)
+ button_chat->setVisible(is_member);
}
reposButtons();
diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp
index 0cfe501fab..b1cdb4d81f 100644
--- a/indra/newview/llpanelimcontrolpanel.cpp
+++ b/indra/newview/llpanelimcontrolpanel.cpp
@@ -46,6 +46,7 @@
#include "llimview.h"
#include "llvoicechannel.h"
#include "llsidetray.h"
+#include "llspeakers.h"
#include "lltrans.h"
void LLPanelChatControlPanel::onCallButtonClicked()
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index d6e407a0ed..47feef496a 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -305,6 +305,29 @@ void LLLandmarksPanel::updateShowFolderState()
);
}
+void LLLandmarksPanel::setItemSelected(const LLUUID& obj_id, BOOL take_keyboard_focus)
+{
+ if (selectItemInAccordionTab(mFavoritesInventoryPanel, "tab_favorites", obj_id, take_keyboard_focus))
+ {
+ return;
+ }
+
+ if (selectItemInAccordionTab(mLandmarksInventoryPanel, "tab_landmarks", obj_id, take_keyboard_focus))
+ {
+ return;
+ }
+
+ if (selectItemInAccordionTab(mMyInventoryPanel, "tab_inventory", obj_id, take_keyboard_focus))
+ {
+ return;
+ }
+
+ if (selectItemInAccordionTab(mLibraryInventoryPanel, "tab_library", obj_id, take_keyboard_focus))
+ {
+ return;
+ }
+}
+
//////////////////////////////////////////////////////////////////////////
// PROTECTED METHODS
//////////////////////////////////////////////////////////////////////////
@@ -350,6 +373,36 @@ LLFolderViewItem* LLLandmarksPanel::getCurSelectedItem() const
return mCurrentSelectedList ? mCurrentSelectedList->getRootFolder()->getCurSelectedItem() : NULL;
}
+LLFolderViewItem* LLLandmarksPanel::selectItemInAccordionTab(LLPlacesInventoryPanel* inventory_list,
+ const std::string& tab_name,
+ const LLUUID& obj_id,
+ BOOL take_keyboard_focus) const
+{
+ if (!inventory_list)
+ return NULL;
+
+ LLFolderView* folder_view = inventory_list->getRootFolder();
+
+ LLFolderViewItem* item = folder_view->getItemByID(obj_id);
+ if (!item)
+ return NULL;
+
+ LLAccordionCtrlTab* tab = getChild<LLAccordionCtrlTab>(tab_name);
+ if (!tab->isExpanded())
+ {
+ tab->changeOpenClose(false);
+ }
+
+ folder_view->setSelection(item, FALSE, take_keyboard_focus);
+
+ LLAccordionCtrl* accordion = getChild<LLAccordionCtrl>("landmarks_accordion");
+ LLRect screen_rc;
+ localRectToScreen(item->getRect(), &screen_rc);
+ accordion->notifyParent(LLSD().with("scrollToShowRect", screen_rc.getValue()));
+
+ return item;
+}
+
void LLLandmarksPanel::updateSortOrder(LLInventoryPanel* panel, bool byDate)
{
if(!panel) return;
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index 569739237d..96b790844c 100644
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
@@ -73,6 +73,11 @@ public:
*/
void updateShowFolderState();
+ /**
+ * Selects item with "obj_id" in one of accordion tabs.
+ */
+ void setItemSelected(const LLUUID& obj_id, BOOL take_keyboard_focus);
+
protected:
/**
* @return true - if current selected panel is not null and selected item is a landmark
@@ -81,6 +86,17 @@ protected:
bool isReceivedFolderSelected() const;
void doActionOnCurSelectedLandmark(LLLandmarkList::loaded_callback_t cb);
LLFolderViewItem* getCurSelectedItem() const;
+
+ /**
+ * Selects item with "obj_id" in "inventory_list" and scrolls accordion
+ * scrollbar to show the item.
+ * Returns pointer to the item if it is found in "inventory_list", otherwise NULL.
+ */
+ LLFolderViewItem* selectItemInAccordionTab(LLPlacesInventoryPanel* inventory_list,
+ const std::string& tab_name,
+ const LLUUID& obj_id,
+ BOOL take_keyboard_focus) const;
+
void updateSortOrder(LLInventoryPanel* panel, bool byDate);
//LLRemoteParcelInfoObserver interface
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index a71c8d8958..b037674c37 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -842,6 +842,19 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)
mPlaceProfile->setVisible(FALSE);
}
+ else
+ {
+ LLLandmarksPanel* landmarks_panel =
+ dynamic_cast<LLLandmarksPanel*>(mTabContainer->getPanelByName("Landmarks"));
+ if (landmarks_panel && mItem.notNull())
+ {
+ // If a landmark info is being closed we open the landmarks tab
+ // and set this landmark selected.
+ mTabContainer->selectTabPanel(landmarks_panel);
+
+ landmarks_panel->setItemSelected(mItem->getUUID(), TRUE);
+ }
+ }
}
}
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 571745ee02..1b8fb49641 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -1036,7 +1036,7 @@ void LLTeleportHistoryPanel::setAccordionCollapsedByUser(LLUICtrl* acc_tab, bool
bool LLTeleportHistoryPanel::isAccordionCollapsedByUser(LLUICtrl* acc_tab)
{
LLSD param = acc_tab->getValue();
- if(!param.has("acc_collapsed"))
+ if(!param.has(COLLAPSED_BY_USER))
{
return false;
}
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index a857e30d4f..028807a6bd 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -380,138 +380,53 @@ void LLPreviewTexture::updateDimensions()
mUpdateDimensions = FALSE;
- S32 image_height = llmax(1, mImage->getFullHeight());
- S32 image_width = llmax(1, mImage->getFullWidth());
- // Attempt to make the image 1:1 on screen.
- // If that fails, cut width by half.
- S32 client_width = image_width;
- S32 client_height = image_height;
- S32 horiz_pad = 2 * (LLPANEL_BORDER_WIDTH + PREVIEW_PAD) + PREVIEW_RESIZE_HANDLE_SIZE;
- S32 vert_pad = PREVIEW_HEADER_SIZE + 2 * CLIENT_RECT_VPAD + LLPANEL_BORDER_WIDTH;
- S32 max_client_width = gViewerWindow->getWindowWidthScaled() - horiz_pad;
- S32 max_client_height = gViewerWindow->getWindowHeightScaled() - vert_pad;
-
- if (mAspectRatio > 0.f)
- {
- client_height = llceil((F32)client_width / mAspectRatio);
- }
-
- while ((client_width > max_client_width) ||
- (client_height > max_client_height ))
- {
- client_width /= 2;
- client_height /= 2;
- }
-
- S32 view_width = client_width + horiz_pad;
- S32 view_height = client_height + vert_pad;
-
// set text on dimensions display (should be moved out of here and into a callback of some sort)
childSetTextArg("dimensions", "[WIDTH]", llformat("%d", mImage->getFullWidth()));
childSetTextArg("dimensions", "[HEIGHT]", llformat("%d", mImage->getFullHeight()));
-
+
+ LLRect dim_rect;
+ childGetRect("dimensions", dim_rect);
+
+ S32 horiz_pad = 2 * (LLPANEL_BORDER_WIDTH + PREVIEW_PAD) + PREVIEW_RESIZE_HANDLE_SIZE;
+
// add space for dimensions and aspect ratio
- S32 info_height = 0;
- LLRect aspect_rect;
- childGetRect("combo_aspect_ratio", aspect_rect);
- S32 aspect_height = aspect_rect.getHeight();
- info_height += aspect_height + CLIENT_RECT_VPAD;
- view_height += info_height;
-
- S32 button_height = 0;
-
- // add space for buttons
- view_height += (BTN_HEIGHT + CLIENT_RECT_VPAD) * 3;
- button_height = (BTN_HEIGHT + PREVIEW_PAD) * 3;
+ S32 info_height = dim_rect.mTop + CLIENT_RECT_VPAD;
- view_width = llmax(view_width, getMinWidth());
- view_height = llmax(view_height, getMinHeight());
-
- if (view_height != mLastHeight || view_width != mLastWidth)
- {
- if (getHost())
- {
- getHost()->growToFit(view_width, view_height);
- reshape( view_width, view_height );
- setOrigin( 0, getHost()->getRect().getHeight() - (view_height + PREVIEW_HEADER_SIZE) );
- }
- else
- {
- S32 old_top = getRect().mTop;
- S32 old_left = getRect().mLeft;
- reshape( view_width, view_height );
- S32 new_bottom = old_top - getRect().getHeight();
- setOrigin( old_left, new_bottom );
- }
-
- // Try to keep whole view onscreen, don't allow partial offscreen.
- if (getHost())
- gFloaterView->adjustToFitScreen(getHost(), FALSE);
- else
- gFloaterView->adjustToFitScreen(this, FALSE);
-
- if (image_height > 1 && image_width > 1)
- {
- // Resize until we know the image's height
- mLastWidth = view_width;
- mLastHeight = view_height;
- }
- }
-
- if (!mUserResized)
- {
- // clamp texture size to fit within actual size of floater after attempting resize
- client_width = llmin(client_width, getRect().getWidth() - horiz_pad);
- client_height = llmin(client_height, getRect().getHeight() - PREVIEW_HEADER_SIZE
- - (2 * CLIENT_RECT_VPAD) - LLPANEL_BORDER_WIDTH - info_height);
+ LLRect client_rect(horiz_pad, getRect().getHeight(), getRect().getWidth() - horiz_pad, 0);
+ client_rect.mTop -= (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD);
+ client_rect.mBottom += PREVIEW_BORDER + CLIENT_RECT_VPAD + info_height ;
-
- }
- else
+ S32 client_width = client_rect.getWidth();
+ S32 client_height = client_rect.getHeight();
+
+ if (mAspectRatio > 0.f)
{
- client_width = getRect().getWidth() - horiz_pad;
- if (mAspectRatio > 0)
+ if(mAspectRatio > 1.f)
{
- client_height = llround(client_width / mAspectRatio);
+ client_height = llceil((F32)client_width / mAspectRatio);
+ if(client_height > client_rect.getHeight())
+ {
+ client_height = client_rect.getHeight();
+ client_width = llceil((F32)client_height * mAspectRatio);
+ }
}
else
{
- client_height = getRect().getHeight() - vert_pad;
- }
- }
-
- S32 max_height = getRect().getHeight() - PREVIEW_BORDER - button_height
- - CLIENT_RECT_VPAD - info_height - CLIENT_RECT_VPAD - PREVIEW_HEADER_SIZE;
-
- if (mAspectRatio > 0.f)
- {
- max_height = llmax(max_height, 1);
-
- if (client_height > max_height)
- {
- client_height = max_height;
- client_width = llround(client_height * mAspectRatio);
+ client_width = llceil((F32)client_height * mAspectRatio);
+ if(client_width > client_rect.getWidth())
+ {
+ client_width = client_rect.getWidth();
+ client_height = llceil((F32)client_width / mAspectRatio);
+ }
}
}
- else
- {
- S32 max_width = getRect().getWidth() - horiz_pad;
- client_height = llclamp(client_height, 1, max_height);
- client_width = llclamp(client_width, 1, max_width);
- }
-
- LLRect window_rect(0, getRect().getHeight(), getRect().getWidth(), 0);
- window_rect.mTop -= (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD);
- window_rect.mBottom += PREVIEW_BORDER + button_height + CLIENT_RECT_VPAD + info_height + CLIENT_RECT_VPAD;
+ mClientRect.setLeftTopAndSize(client_rect.getCenterX() - (client_width / 2), client_rect.getCenterY() + (client_height / 2), client_width, client_height);
- mClientRect.setLeftTopAndSize(window_rect.getCenterX() - (client_width / 2), window_rect.mTop, client_width, client_height);
-
// Hide the aspect ratio label if the window is too narrow
// Assumes the label should be to the right of the dimensions
- LLRect dim_rect, aspect_label_rect;
+ LLRect aspect_label_rect;
childGetRect("aspect_ratio", aspect_label_rect);
- childGetRect("dimensions", dim_rect);
childSetVisible("aspect_ratio", dim_rect.mRight < aspect_label_rect.mLeft);
}
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 31a18a2e98..7487fa9997 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -78,6 +78,7 @@
#include "llstatenums.h"
#include "llstatusbar.h"
#include "llimview.h"
+#include "llspeakers.h"
#include "lltrans.h"
#include "llviewerfoldertype.h"
#include "lluri.h"
@@ -2008,7 +2009,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
// Someone has offered us some inventory.
{
LLOfferInfo* info = new LLOfferInfo;
- bool mute_im = false;
if (IM_INVENTORY_OFFERED == dialog)
{
struct offer_agent_bucket_t
@@ -2025,11 +2025,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
bucketp = (struct offer_agent_bucket_t*) &binary_bucket[0];
info->mType = (LLAssetType::EType) bucketp->asset_type;
info->mObjectID = bucketp->object_id;
-
- if(accept_im_from_only_friend&&!is_friend)
- {
- mute_im = true;
- }
}
else
{
@@ -2060,7 +2055,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
info->mDesc = message;
info->mHost = msg->getSender();
//if (((is_busy && !is_owned_by_me) || is_muted))
- if ( is_muted || mute_im)
+ if (is_muted)
{
// Prefetch the offered item so that it can be discarded by the appropriate observer. (EXT-4331)
LLInventoryFetchObserver::item_ref_t items;
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 51a75b5825..c84afa5af1 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -63,6 +63,7 @@
#include "llparcel.h"
#include "llviewerparcelmgr.h"
//#include "llfirstuse.h"
+#include "llspeakers.h"
#include "lltrans.h"
#include "llviewerwindow.h"
#include "llviewercamera.h"
diff --git a/indra/newview/skins/default/xui/en/favorites_bar_button.xml b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
index dfb0695ec3..6adf2a5950 100644
--- a/indra/newview/skins/default/xui/en/favorites_bar_button.xml
+++ b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
@@ -3,7 +3,6 @@
<!-- All buttons in the Favorites bar will be created from this one -->
<button
follows="left|bottom"
- font_halign="center"
halign="center"
height="15"
image_disabled="transparent.j2c"
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index 243b63db00..613530b7aa 100644
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -17,6 +17,7 @@
min_width="250"
min_height="190">
<layout_stack
+ animate="false"
follows="all"
height="320"
width="360"
diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
index ae198d69a3..f473a51ff6 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
@@ -3,9 +3,9 @@
can_resize="true"
can_minimize="true"
can_close="false"
- height="275"
+ height="202"
layout="topleft"
- min_height="100"
+ min_height="124"
min_width="190"
name="floater_voice_controls"
help_topic="floater_voice_controls"
@@ -36,7 +36,7 @@
<layout_stack
clip="false"
follows="all"
- height="262"
+ height="189"
layout="topleft"
left="10"
mouse_opaque="false"
@@ -105,13 +105,13 @@
layout="topleft"
left="2"
top_pad="0"
- height="205"
+ height="132"
name="callers_panel"
user_resize="false"
width="280">
<avatar_list
follows="all"
- height="205"
+ height="132"
ignore_online_status="true"
layout="topleft"
multi_select="true"
diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml
index a666b8a427..9796f7b5b6 100644
--- a/indra/newview/skins/default/xui/en/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml
@@ -58,8 +58,10 @@
height="35"
left="8"
name="user_details"
+ right="-10"
word_wrap="true"
top_pad="6"
+ use_ellipses="true"
width="220">This is my second life description and I really think it is great.
</text>
<slider
diff --git a/indra/newview/skins/default/xui/en/panel_my_profile.xml b/indra/newview/skins/default/xui/en/panel_my_profile.xml
index 2659156ba8..34cde61252 100644
--- a/indra/newview/skins/default/xui/en/panel_my_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_my_profile.xml
@@ -51,6 +51,7 @@
top="0"
left="0"
height="505"
+ user_resize="false"
width="313">
<scroll_container
color="DkGray2"
@@ -365,6 +366,7 @@
top_pad="0"
name="profile_me_buttons_panel"
visible="false"
+ user_resize="false"
auto_resize="false"
height="28"
width="313">
diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml
index 45b64d5e26..ac100a2c06 100644
--- a/indra/newview/skins/default/xui/en/panel_notes.xml
+++ b/indra/newview/skins/default/xui/en/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
- height="535"
+ height="540"
label="Notes &amp; Privacy"
layout="topleft"
left="0"
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 8a02637817..da3a2274c9 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -3,7 +3,7 @@
<panel
background_visible="true"
follows="all"
- height="570"
+ height="575"
label="People"
layout="topleft"
min_height="350"
@@ -337,7 +337,7 @@ background_visible="true"
</tab_container>
<panel
follows="bottom|left"
- height="25"
+ height="35"
layout="topleft"
left="10"
name="button_bar"
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 822e049eec..65ccd10cf0 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -39,7 +39,7 @@
height="500"
layout="topleft"
left="10"
- top_pad="10"
+ top_pad="5"
name="profile_scroll"
width="313">
<panel
@@ -102,7 +102,7 @@
</scroll_container>
<panel
follows="left|right|bottom"
- height="20"
+ height="35"
layout="topleft"
top_pad="8"
left="10"
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index a2b0adf9d9..d31f4d039f 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
- height="535"
+ height="540"
label="Picks"
layout="topleft"
left="0"
@@ -121,7 +121,7 @@
<panel
layout="topleft"
left="0"
- height="25"
+ height="30"
top_pad="10"
name="buttons_cucks"
width="313">
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index 2b907ed251..812dc5ce59 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
- height="535"
+ height="540"
label="Profile"
layout="topleft"
left="0"
@@ -284,7 +284,7 @@
</layout_panel>
<layout_panel
follows="bottom|left"
- height="28"
+ height="30"
layout="topleft"
name="profile_buttons_panel"
auto_resize="false"
@@ -355,7 +355,7 @@
</layout_panel>
<layout_panel
follows="bottom|left"
- height="28"
+ height="30"
layout="topleft"
name="profile_me_buttons_panel"
visible="false"
@@ -364,7 +364,7 @@
follows="bottom|right"
height="23"
left="20"
- top="0"
+ top="0"
label="Edit Profile"
name="edit_profile_btn"
tool_tip="Edit your personal information"
diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml
index c51447eaf0..d46e1f9852 100644
--- a/indra/newview/skins/default/xui/en/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml
@@ -60,7 +60,7 @@
tab_min_width="80"
tab_height="30"
tab_position="top"
- top_pad="10"
+ top_pad="5"
width="313">
<panel
class="panel_profile"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
index 328d521636..e5cad0df2e 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
@@ -28,7 +28,7 @@
name="adhoc_icon"
width="18" />
<chiclet_im_adhoc.unread_notifications
- font_halign="center"
+ halign="center"
height="23"
left="25"
mouse_opaque="false"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
index 60658899ee..70e4ea8d26 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
@@ -30,7 +30,7 @@
width="19" />
<chiclet_im_group.unread_notifications
height="23"
- font_halign="center"
+ halign="center"
left="25"
mouse_opaque="false"
name="unread"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
index b5b8f0d07a..ec6500cf80 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
@@ -29,7 +29,7 @@
width="19" />
<chiclet_im_p2p.unread_notifications
height="23"
- font_halign="center"
+ halign="center"
left="25"
mouse_opaque="false"
name="unread"