diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h index acd0da61a4bf2d0049577089490eeddeebd16f9b..5af79910068c584d7d6ded09864d165c1a17c0b9 100644 --- a/indra/llcommon/llchat.h +++ b/indra/llcommon/llchat.h @@ -84,6 +84,7 @@ class LLChat mAudible(CHAT_AUDIBLE_FULLY), mMuted(FALSE), mTime(0.0), + mTimeStr(), mPosAgent(), mURL(), mChatStyle(CHAT_STYLE_NORMAL) @@ -97,6 +98,7 @@ class LLChat EChatAudible mAudible; BOOL mMuted; // pass muted chat to maintain list of chatters F64 mTime; // viewer only, seconds from viewer start + std::string mTimeStr; LLVector3 mPosAgent; std::string mURL; EChatStyle mChatStyle; diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 9a2f2ab4d319c5a24fb45e59bc342634ce2c8c04..9c69e4f2b66fb75b0f849a27d162ddaf85724ec9 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -206,16 +206,6 @@ void LLDockableFloater::draw() LLFloater::draw(); } -void LLDockableFloater::reshape(S32 width, S32 height, BOOL called_from_parent) -{ - if (isDocked()) - { - setDocked(false); - } - - LLFloater::reshape(width, height, called_from_parent); -} - void LLDockableFloater::setDockControl(LLDockControl* dockControl) { mDockControl.reset(dockControl); diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index e5f94dca91e9219edaf2e5185aaac3e15a1b9bd0..46491d8a29e9743bca40046254a26f217e7c070d 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -65,7 +65,6 @@ class LLDockableFloater : public LLFloater /* virtula */BOOL postBuild(); /* virtual */void setDocked(bool docked, bool pop_on_undock = true); /* virtual */void draw(); - /* virtual */void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); /** * If descendant class overrides setVisible() then it must still invoke its diff --git a/indra/llui/llresizehandle.cpp b/indra/llui/llresizehandle.cpp index 7449c339a0dfacdd5deed2ab1d2c0dfa4295a325..6239a8f7214ddc093d16348b6ef0101338d08804 100644 --- a/indra/llui/llresizehandle.cpp +++ b/indra/llui/llresizehandle.cpp @@ -135,6 +135,12 @@ BOOL LLResizeHandle::handleHover(S32 x, S32 y, MASK mask) LLView* resizing_view = getParent(); if( resizing_view ) { + // undock floater when user resize it + if (((LLFloater*)getParent())->isDocked()) + { + ((LLFloater*)getParent())->setDocked(false, false); + } + // Resize the parent LLRect orig_rect = resizing_view->getRect(); LLRect scaled_rect = orig_rect; diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp index 3443d8b593aa86bad84ef0fdacdce6efa9c9d213..aa584b3ae8295eca29c27e1720f6c5cba882f98e 100644 --- a/indra/newview/llchannelmanager.cpp +++ b/indra/newview/llchannelmanager.cpp @@ -37,7 +37,6 @@ #include "llappviewer.h" #include "llviewercontrol.h" #include "llimview.h" -#include "llbottomtray.h" #include "llviewerwindow.h" #include "llrootview.h" #include "llsyswellwindow.h" diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index cd5c5edac0c351e5c35ea64eb036b92c2f4a9d54..4ce3b50ed58122a0b9a80f87f3b0cdebdc2b01f2 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -50,21 +50,6 @@ static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history"); -std::string formatCurrentTime() -{ - time_t utc_time; - utc_time = time_corrected(); - std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:[" - +LLTrans::getString("TimeMin")+"]"; - - LLSD substitution; - - substitution["datetime"] = (S32) utc_time; - LLStringUtil::format (timeStr, substitution); - - return timeStr; -} - class LLChatHistoryHeader: public LLPanel { public: @@ -219,7 +204,7 @@ class LLChatHistoryHeader: public LLPanel LLTextBox* timeBox = getChild<LLTextBox>("time_box"); - timeBox->setValue(formatCurrentTime()); + timeBox->setValue(chat.mTimeStr); LLAvatarIconCtrl* icon = getChild<LLAvatarIconCtrl>("avatar_icon"); @@ -352,7 +337,7 @@ LLView* LLChatHistory::getHeader(const LLChat& chat,const LLStyle::Params& style void LLChatHistory::appendWidgetMessage(const LLChat& chat, const LLStyle::Params& input_append_params) { LLView* view = NULL; - std::string view_text = "\n[" + formatCurrentTime() + "] "; + std::string view_text = "\n[" + chat.mTimeStr + "] "; if (utf8str_trim(chat.mFromName).size() != 0 && chat.mFromName != SYSTEM_FROM) view_text += chat.mFromName + ": "; diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 4078fac4ecbadad10e198e505437ebebd2aecea1..caf6917d90eb092e8eb123e0c54dc9b8ea165ffe 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -81,27 +81,17 @@ LLNotificationChiclet::Params::Params() button.tab_stop(FALSE); button.label(LLStringUtil::null); - unread_notifications.name("unread"); - unread_notifications.font(LLFontGL::getFontSansSerif()); - unread_notifications.text_color=(LLColor4::white); - unread_notifications.font_halign(LLFontGL::HCENTER); - unread_notifications.mouse_opaque(FALSE); } LLNotificationChiclet::LLNotificationChiclet(const Params& p) : LLChiclet(p) , mButton(NULL) -, mCounterCtrl(NULL) +, mCounter(0) { LLButton::Params button_params = p.button; - button_params.rect(p.rect()); mButton = LLUICtrlFactory::create<LLButton>(button_params); addChild(mButton); - LLChicletNotificationCounterCtrl::Params unread_params = p.unread_notifications; - mCounterCtrl = LLUICtrlFactory::create<LLChicletNotificationCounterCtrl>(unread_params); - addChild(mCounterCtrl); - // connect counter handlers to the signals connectCounterUpdatersToSignal("notify"); connectCounterUpdatersToSignal("groupnotify"); @@ -126,13 +116,15 @@ void LLNotificationChiclet::connectCounterUpdatersToSignal(std::string notificat void LLNotificationChiclet::setCounter(S32 counter) { - mCounterCtrl->setCounter(counter); -} + std::string s_count; + if(counter != 0) + { + s_count = llformat("%d", counter); + } -void LLNotificationChiclet::setShowCounter(bool show) -{ - LLChiclet::setShowCounter(show); - mCounterCtrl->setVisible(getShowCounter()); + mButton->setLabel(s_count); + + mCounter = counter; } boost::signals2::connection LLNotificationChiclet::setClickCallback( diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h index eab4a282f526f5f2bced9d0c5e3c2ea20eadb3c4..bb5dc1e5500526769371351271175c0f8398b24e 100644 --- a/indra/newview/llchiclet.h +++ b/indra/newview/llchiclet.h @@ -638,13 +638,14 @@ class LLNotificationChiclet : public LLChiclet /*virtual*/ void setCounter(S32 counter); - /*virtual*/S32 getCounter() { return mCounterCtrl->getCounter(); } - - /*virtual*/ void setShowCounter(bool show); + // *TODO: mantipov: seems getCounter is not necessary for LLNotificationChiclet + // but inherited interface requires it to implement. + // Probably it can be safe removed. + /*virtual*/S32 getCounter() { return mCounter; } boost::signals2::connection setClickCallback(const commit_callback_t& cb); - /*virtual*/ ~ LLNotificationChiclet(); + /*virtual*/ ~LLNotificationChiclet(); // methods for updating a number of unread System notifications void incUreadSystemNotifications() { setCounter(++mUreadSystemNotifications); } @@ -662,7 +663,7 @@ class LLNotificationChiclet : public LLChiclet protected: LLButton* mButton; - LLChicletNotificationCounterCtrl* mCounterCtrl; + S32 mCounter; }; /* diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index c2c83191e003d7ace33baacdae891102a3d2111b..bfac35d866fc2f996c9d07a502424c551402f4a1 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -474,6 +474,7 @@ void LLIMFloater::updateMessages() chat.mFromID = from_id; chat.mFromName = from; chat.mText = message; + chat.mTimeStr = time; //Handle IRC styled /me messages. std::string prefix = message.substr(0, 4); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index dc32291714bd626372b10fd2b8dd978a295a9183..dd78bb631fd7b5994cb0f183a65bb846f87c1619 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -49,6 +49,7 @@ #include "llbottomtray.h" #include "llcallingcard.h" #include "llchat.h" +#include "llchiclet.h" #include "llresmgr.h" #include "llfloaterchat.h" #include "llfloaterchatterbox.h" @@ -1194,7 +1195,7 @@ BOOL LLIncomingCallDialog::postBuild() // check to see if this is an Avaline call LLUUID session_id = mPayload["session_id"].asUUID(); - bool is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(session_id); + bool is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(session_id); childSetVisible("Start IM", is_avatar); // no IM for avaline LLUICtrl* caller_name_widget = getChild<LLUICtrl>("caller name"); diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp index 0ee883e221a5fdbd0acda0e25f85dfa63db44909..93db33705316c110bcc0ffd94082bd83de5e3746 100644 --- a/indra/newview/llmoveview.cpp +++ b/indra/newview/llmoveview.cpp @@ -83,11 +83,6 @@ LLFloaterMove::LLFloaterMove(const LLSD& key) { } -LLFloaterMove::~LLFloaterMove() -{ - LLPanelStandStopFlying::getInstance()->reparent(NULL); -} - // virtual BOOL LLFloaterMove::postBuild() { @@ -161,6 +156,31 @@ void LLFloaterMove::setEnabled(BOOL enabled) showModeButtons(enabled); } +// *NOTE: we assume that setVisible() is called on floater close. +// virtual +void LLFloaterMove::setVisible(BOOL visible) +{ + // Ignore excessive calls of this method (from LLTransientFloaterMgr?). + if (getVisible() == visible) + return; + + if (visible) + { + // Attach the Stand/Stop Flying panel. + LLPanelStandStopFlying* ssf_panel = LLPanelStandStopFlying::getInstance(); + ssf_panel->reparent(this); + const LLRect& mode_actions_rect = mModeActionsPanel->getRect(); + ssf_panel->setOrigin(mode_actions_rect.mLeft, mode_actions_rect.mBottom); + } + else + { + // Detach the Stand/Stop Flying panel. + LLPanelStandStopFlying::getInstance()->reparent(NULL); + } + + LLTransientDockableFloater::setVisible(visible); +} + // static F32 LLFloaterMove::getYawRate( F32 time ) { @@ -429,16 +449,6 @@ void LLFloaterMove::showModeButtons(BOOL bShow) if (NULL == mModeActionsPanel || mModeActionsPanel->getVisible() == bShow) return; mModeActionsPanel->setVisible(bShow); - - if (bShow) - LLPanelStandStopFlying::getInstance()->reparent(NULL); - else - { - LLPanelStandStopFlying* ssf_panel = LLPanelStandStopFlying::getInstance(); - ssf_panel->reparent(this); - const LLRect& mode_actions_rect = mModeActionsPanel->getRect(); - ssf_panel->setOrigin(mode_actions_rect.mLeft, mode_actions_rect.mBottom); - } } //static diff --git a/indra/newview/llmoveview.h b/indra/newview/llmoveview.h index 2664fe6e401a3b116b678d7c01696c32af74aaca..06463f02af2debede64dc2792a2d8100e2fce95f 100644 --- a/indra/newview/llmoveview.h +++ b/indra/newview/llmoveview.h @@ -51,11 +51,12 @@ class LLFloaterMove private: LLFloaterMove(const LLSD& key); - ~LLFloaterMove(); + ~LLFloaterMove() {} public: /*virtual*/ BOOL postBuild(); /*virtual*/ void setEnabled(BOOL enabled); + /*virtual*/ void setVisible(BOOL visible); static F32 getYawRate(F32 time); static void setFlyingMode(BOOL fly); void setFlyingModeImpl(BOOL fly); diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index 0c2782fd8a08293726665901087230e2d349affc..114d26af8aac017377f76135f46be411a4442118 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -186,7 +186,6 @@ LLNavigationBar::LLNavigationBar() LLNavigationBar::~LLNavigationBar() { mTeleportFinishConnection.disconnect(); - LLSearchHistory::getInstance()->save(); } BOOL LLNavigationBar::postBuild() diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp index 00502341fcf8db20bb53df191f2e8bef80957997..5e23662a0bd1cdc2f8eecfbd365b8f364234e4a6 100644 --- a/indra/newview/llpanelimcontrolpanel.cpp +++ b/indra/newview/llpanelimcontrolpanel.cpp @@ -44,6 +44,7 @@ #include "llimview.h" #include "llvoicechannel.h" #include "llsidetray.h" +#include "lltrans.h" void LLPanelChatControlPanel::onCallButtonClicked() { @@ -161,6 +162,11 @@ void LLPanelIMControlPanel::onShareButtonClicked() { LLSD key; LLSideTray::getInstance()->showPanel("sidepanel_inventory", key); + + if (gIMMgr->hasSession(getSessionId())) + { + LLIMModel::getInstance()->addMessage(getSessionId(), SYSTEM_FROM, LLUUID::null, LLTrans::getString("share_alert"), false); + } } void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id) diff --git a/indra/newview/llpanelimcontrolpanel.h b/indra/newview/llpanelimcontrolpanel.h index 923c5acbd217d53f2ba232d850510753d5af26a0..7bfc432ef2feee098849674baae2b3401c9ac3da 100644 --- a/indra/newview/llpanelimcontrolpanel.h +++ b/indra/newview/llpanelimcontrolpanel.h @@ -58,6 +58,7 @@ class LLPanelChatControlPanel : public LLPanel virtual void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state); virtual void setSessionId(const LLUUID& session_id); + const LLUUID& getSessionId() { return mSessionId; } private: LLUUID mSessionId; diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index 963d39de8aa1c1deb5b5f100b60e68b16f9b218a..6ba3790fe226272b968670ad681ae8634dcba3c0 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -57,7 +57,11 @@ LLPanelPlaceInfo::LLPanelPlaceInfo() : LLPanel(), mParcelID(), mRequestedID(), - mPosRegion() + mPosRegion(), + mScrollingPanelMinHeight(0), + mScrollingPanelWidth(0), + mScrollingPanel(NULL), + mScrollContainer(NULL) {} //virtual @@ -83,6 +87,12 @@ BOOL LLPanelPlaceInfo::postBuild() mMaturityRatingIcon = getChild<LLIconCtrl>("maturity_icon"); mMaturityRatingText = getChild<LLTextBox>("maturity_value"); + mScrollingPanel = getChild<LLPanel>("scrolling_panel"); + mScrollContainer = getChild<LLScrollContainer>("place_scroll"); + + mScrollingPanelMinHeight = mScrollContainer->getScrolledViewRect().getHeight(); + mScrollingPanelWidth = mScrollingPanel->getRect().getWidth(); + return TRUE; } @@ -230,6 +240,27 @@ void LLPanelPlaceInfo::processParcelInfo(const LLParcelData& parcel_data) } } +// virtual +void LLPanelPlaceInfo::reshape(S32 width, S32 height, BOOL called_from_parent) +{ + LLPanel::reshape(width, height, called_from_parent); + + if (!mScrollContainer || !mScrollingPanel) + return; + + static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0); + + S32 scroll_height = mScrollContainer->getRect().getHeight(); + if (mScrollingPanelMinHeight >= scroll_height) + { + mScrollingPanel->reshape(mScrollingPanelWidth, mScrollingPanelMinHeight); + } + else + { + mScrollingPanel->reshape(mScrollingPanelWidth + scrollbar_size, scroll_height); + } +} + // virtual void LLPanelPlaceInfo::handleVisibilityChange(BOOL new_visibility) { diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h index 133933a880df7d176250284daee3a6f1b81be300..b9bf92b534c975c60695c287f4e6f80ba0db351f 100644 --- a/indra/newview/llpanelplaceinfo.h +++ b/indra/newview/llpanelplaceinfo.h @@ -45,6 +45,7 @@ class LLIconCtrl; class LLInventoryItem; class LLPanelPickEdit; class LLParcel; +class LLScrollContainer; class LLTextBox; class LLTextureCtrl; class LLViewerRegion; @@ -92,6 +93,7 @@ class LLPanelPlaceInfo : public LLPanel, LLRemoteParcelInfoObserver /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data); + /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); /*virtual*/ void handleVisibilityChange (BOOL new_visibility); // Create a pick for the location specified @@ -110,8 +112,12 @@ class LLPanelPlaceInfo : public LLPanel, LLRemoteParcelInfoObserver LLUUID mRequestedID; LLVector3 mPosRegion; std::string mCurrentTitle; + S32 mScrollingPanelMinHeight; + S32 mScrollingPanelWidth; INFO_TYPE mInfoType; + LLScrollContainer* mScrollContainer; + LLPanel* mScrollingPanel; LLTextBox* mTitle; LLTextureCtrl* mSnapshotCtrl; LLTextBox* mRegionName; diff --git a/indra/newview/llsearchhistory.h b/indra/newview/llsearchhistory.h index 253ef21e9e182a50e0fccbd17adf4444a521a374..eb6efdb86f2a5f1888ba738225e7f2e4a79d896e 100644 --- a/indra/newview/llsearchhistory.h +++ b/indra/newview/llsearchhistory.h @@ -34,12 +34,15 @@ #define LL_LLSEARCHHISTORY_H #include "llsingleton.h" +#include "llui.h" + /** * Search history container able to save and load history from file. * History is stored in chronological order, most recent at the beginning. */ -class LLSearchHistory : public LLSingleton<LLSearchHistory> +class LLSearchHistory : public LLSingleton<LLSearchHistory>, private LLDestroyClass<LLSearchHistory> { + friend class LLDestroyClass<LLSearchHistory>; public: // Forward declaration @@ -130,6 +133,12 @@ class LLSearchHistory : public LLSingleton<LLSearchHistory> private: + // Implementation of LLDestroyClass<LLSearchHistory> + static void destroyClass() + { + LLSearchHistory::getInstance()->save(); + } + search_history_list_t mSearchHistory; }; diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index 6aa5c53194f5573a2d2391f2fdd82547fca34b38..58962b67d66ca22faad0d0d5cfd3a59db417b3d9 100644 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -46,7 +46,8 @@ static LLRegisterPanelClassWrapper<LLSidepanelInventory> t_inventory("sidepanel_ LLSidepanelInventory::LLSidepanelInventory() : LLPanel(), - mItemPanel(NULL) + mItemPanel(NULL), + mPanelMainInventory(NULL) { //LLUICtrlFactory::getInstance()->buildPanel(this, "panel_inventory.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder() @@ -80,8 +81,8 @@ BOOL LLSidepanelInventory::postBuild() mOverflowBtn = mInventoryPanel->getChild<LLButton>("overflow_btn"); mOverflowBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onOverflowButtonClicked, this)); - LLPanelMainInventory *panel_main_inventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory"); - panel_main_inventory->setSelectCallback(boost::bind(&LLSidepanelInventory::onSelectionChange, this, _1, _2)); + mPanelMainInventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory"); + mPanelMainInventory->setSelectCallback(boost::bind(&LLSidepanelInventory::onSelectionChange, this, _1, _2)); } // UI elements from item panel @@ -127,6 +128,10 @@ void LLSidepanelInventory::onOpen(const LLSD& key) mTaskPanel->setObjectSelection(LLSelectMgr::getInstance()->getSelection()); showTaskInfoPanel(); } + if (key.has("select")) + { + mPanelMainInventory->getPanel()->setSelection(key["select"].asUUID(), TAKE_FOCUS_NO); + } } void LLSidepanelInventory::onInfoButtonClicked() diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h index 681af7fafabc0e418f6f45c95a31f3dfad599acd..9eba77b5c3f6ee80664093e3c2e1fe802f613808 100644 --- a/indra/newview/llsidepanelinventory.h +++ b/indra/newview/llsidepanelinventory.h @@ -68,6 +68,7 @@ class LLSidepanelInventory : public LLPanel LLPanel* mInventoryPanel; // Main inventory view LLSidepanelItemInfo* mItemPanel; // Individual item view LLSidepanelTaskInfo* mTaskPanel; // Individual in-world object view + LLPanelMainInventory* mPanelMainInventory; protected: void onInfoButtonClicked(); diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index cbc5f7358f0cf36e66b4cd7189ddb7d2ec6765f3..3e4cdbdcbec543d97b46a9867d864fe22cbde840 100644 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -39,12 +39,13 @@ #include "llbutton.h" #include "llscreenchannel.h" #include "llscrollcontainer.h" -#include "llchiclet.h" #include "llimview.h" #include "boost/shared_ptr.hpp" class LLFlatListView; +class LLChiclet; +class LLIMChiclet; class LLSysWellWindow : public LLDockableFloater, LLIMSessionObserver { diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp index 48b68e4292f52f388ebb12bdc8047a2ae77cb936..699424ef361c577619858cf91fe4138a632c8b61 100644 --- a/indra/newview/lltoastnotifypanel.cpp +++ b/indra/newview/lltoastnotifypanel.cpp @@ -48,7 +48,6 @@ const LLFontGL* LLToastNotifyPanel::sFontSmall = NULL; LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification) : LLToastPanel(notification), mTextBox(NULL), -mIcon(NULL), mInfoPanel(NULL), mControlPanel(NULL), mNumOptions(0), @@ -58,7 +57,6 @@ mAddedDefaultBtn(false) LLUICtrlFactory::getInstance()->buildPanel(this, "panel_notification.xml"); mInfoPanel = getChild<LLPanel>("info_panel"); mControlPanel = getChild<LLPanel>("control_panel"); - mIcon = getChild<LLIconCtrl>("info_icon"); // customize panel's attributes // is it intended for displaying a tip @@ -94,26 +92,6 @@ mAddedDefaultBtn(false) // preliminary adjust panel's layout mIsTip ? adjustPanelForTipNotice() : adjustPanelForScriptNotice(form); - // choose a right icon - if (mIsTip) - { - // use the tip notification icon - mIcon->setValue("notify_tip_icon.tga"); - LLRect icon_rect = mIcon->getRect(); - icon_rect.setLeftTopAndSize(icon_rect.mLeft, getRect().getHeight() - VPAD, icon_rect.getWidth(), icon_rect.getHeight()); - mIcon->setRect(icon_rect); - } - else if (mIsCaution) - { - // use the caution notification icon - mIcon->setValue("notify_caution_icon.tga"); - } - else - { - // use the default notification icon - mIcon->setValue("notify_box_icon.tga"); - } - // adjust text options according to the notification type // add a caution textbox at the top of a caution notification if (mIsCaution && !mIsTip) diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h index 66534edcdf873ac2a736bf3b64c4fa7f87a7f3dd..eea70705ec1abf0dc50a5e9fc1f7ef2b012172a9 100644 --- a/indra/newview/lltoastnotifypanel.h +++ b/indra/newview/lltoastnotifypanel.h @@ -73,7 +73,6 @@ class LLToastNotifyPanel: public LLToastPanel // panel elements LLTextBase* mTextBox; - LLIconCtrl* mIcon; LLPanel* mInfoPanel; // a panel, that contains an information LLPanel* mControlPanel; // a panel, that contains buttons (if present) diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ef6a621323b6c15361ca8644c9db22e003a4336a..11b2f07f1bd514e8eb386785fa28deabc8263376 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -939,6 +939,11 @@ void open_offer(const std::vector<LLUUID>& items, const std::string& from_name) !from_name.empty()) { view = LLFloaterInventory::showAgentInventory(); + //TODO:this should be moved to the end of method after all the checks, + //but first decide what to do with active inventory if any (EK) + LLSD key; + key["select"] = item->getUUID(); + LLSideTray::getInstance()->showPanel("sidepanel_inventory", key); } else { diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index d2933c0c0eac0925b9fd1cc43ca1faa498963ec8..00711a29e010fb1cb5506ec5b65497f5d7cc6f00 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -299,8 +299,8 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly. min_height="28" top="0" name="sys_well_panel" - width="34" - min_width="34" + width="54" + min_width="54" user_resize="false"> <chiclet_notification follows="right" @@ -309,22 +309,21 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly. left="0" name="sys_well" top="4" - width="34"> + width="54"> <button auto_resize="true" halign="right" height="23" follows="right" flash_color="EmphasisColor" + left="0" name="Unread" image_overlay="Notices_Unread" - width="20" + image_overlay_alignment="right" + pad_right="6" + pad_left="6" + width="54" /> - <unread_notifications - width="34" - height="20" - left="0" - top="19" /> </chiclet_notification> </layout_panel> <icon diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml index b01ddbf75aa3bddb875aa18ebaf05f1783bfb38d..a219e30b8bc8c28d5150aa3d87b429bf56145d12 100644 --- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml @@ -87,8 +87,8 @@ width="313"> <panel bg_alpha_color="DkGray2" - follows="all" - height="533" + follows="left|top|right" + height="610" layout="topleft" left="0" min_height="300" @@ -145,7 +145,7 @@ top_pad="10" width="18" /> <text - follows="right|top" + follows="left|top|right" height="16" layout="topleft" left_pad="8" diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml index 462188ee24a84c572fea52248f018032c81caf32..df37f9973ce8e88548fabdd6f44666368b2482e5 100644 --- a/indra/newview/skins/default/xui/en/panel_notification.xml +++ b/indra/newview/skins/default/xui/en/panel_notification.xml @@ -90,15 +90,4 @@ name="control_panel" top_pad="0"> </panel> - <!-- - <icon - follows="left|top" - height="32" - image_name="notify_tip_icon.tga" - layout="topleft" - left="8" - mouse_opaque="false" - name="info_icon" - top="20" - width="32" /> --> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index e6084202d7cc18d513070ae1900be0695ef677e0..9ab5c6b4f745bc822e45d9f91329e4c0e5e28296 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -172,7 +172,7 @@ width="313"> <panel bg_alpha_color="DkGray2" - follows="all" + follows="left|top|right" height="533" layout="topleft" left="0" @@ -192,7 +192,7 @@ <layout_stack border_size="0" clip="false" - follows="all" + follows="left|top|right" height="50" layout="topleft" mouse_opaque="false" @@ -305,7 +305,7 @@ top_delta="0" width="18" /> <text - follows="right|top" + follows="left|top|right" height="16" layout="topleft" left_pad="8" diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml index 4ab6175805adcf3194eba88d1a8a43197848051f..3384852f2729aae390d21258ca2c56c79e297c99 100644 --- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml @@ -18,7 +18,7 @@ visible="false" width="380" /> <icon - height="24" + height="20" follows="top|right|left" image_name="ListItem_Select" layout="topleft" @@ -55,7 +55,7 @@ left_pad="5" right="-3" name="profile_btn" - top_delta="-2" + top="1" visible="false" width="20" /> </panel> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index a5272d188394e14f7b6f8f9964baedfa08ad04ea..e76763d7ebce0ad37c67e76fb8ad7727ad7d8c40 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2868,6 +2868,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. <string name="inventory_item_offered-im"> Inventory item offered </string> + <string name="share_alert"> + Drag items from inventory here + </string> <string name="only_user_message"> You are the only user in this session.