Merge my changes with rev. 2603
commit
35e8a7cae6
|
|
@ -105,6 +105,15 @@ struct LLPlaceHolderPanel : public LLPanel
|
|||
static LLDefaultChildRegistry::Register<LLPlaceHolderPanel> r1("placeholder");
|
||||
static LLDefaultChildRegistry::Register<LLTabContainer> r2("tab_container");
|
||||
|
||||
LLTabContainer::TabParams::TabParams()
|
||||
: tab_top_image_unselected("tab_top_image_unselected"),
|
||||
tab_top_image_selected("tab_top_image_selected"),
|
||||
tab_bottom_image_unselected("tab_bottom_image_unselected"),
|
||||
tab_bottom_image_selected("tab_bottom_image_selected"),
|
||||
tab_left_image_unselected("tab_left_image_unselected"),
|
||||
tab_left_image_selected("tab_left_image_selected")
|
||||
{}
|
||||
|
||||
LLTabContainer::Params::Params()
|
||||
: tab_width("tab_width"),
|
||||
tab_min_width("tab_min_width"),
|
||||
|
|
@ -113,12 +122,9 @@ LLTabContainer::Params::Params()
|
|||
tab_position("tab_position"),
|
||||
hide_tabs("hide_tabs", false),
|
||||
tab_padding_right("tab_padding_right"),
|
||||
tab_top_image_unselected("tab_top_image_unselected"),
|
||||
tab_top_image_selected("tab_top_image_selected"),
|
||||
tab_bottom_image_unselected("tab_bottom_image_unselected"),
|
||||
tab_bottom_image_selected("tab_bottom_image_selected"),
|
||||
tab_left_image_unselected("tab_left_image_unselected"),
|
||||
tab_left_image_selected("tab_left_image_selected")
|
||||
first_tab("first_tab"),
|
||||
middle_tab("middle_tab"),
|
||||
last_tab("last_tab")
|
||||
{
|
||||
name(std::string("tab_container"));
|
||||
mouse_opaque = false;
|
||||
|
|
@ -147,12 +153,9 @@ LLTabContainer::LLTabContainer(const LLTabContainer::Params& p)
|
|||
mRightTabBtnOffset(p.tab_padding_right),
|
||||
mTotalTabWidth(0),
|
||||
mTabPosition(p.tab_position),
|
||||
mImageTopUnselected(p.tab_top_image_unselected),
|
||||
mImageTopSelected(p.tab_top_image_selected),
|
||||
mImageBottomUnselected(p.tab_bottom_image_unselected),
|
||||
mImageBottomSelected(p.tab_bottom_image_selected),
|
||||
mImageLeftUnselected(p.tab_left_image_unselected),
|
||||
mImageLeftSelected(p.tab_left_image_selected)
|
||||
mFirstTabParams(p.first_tab),
|
||||
mMiddleTabParams(p.middle_tab),
|
||||
mLastTabParams(p.last_tab)
|
||||
{
|
||||
static LLUICachedControl<S32> tabcntr_vert_tab_min_width ("UITabCntrVertTabMinWidth", 0);
|
||||
|
||||
|
|
@ -791,6 +794,29 @@ void LLTabContainer::addTabPanel(LLPanel* panelp)
|
|||
addTabPanel(TabPanelParams().panel(panelp));
|
||||
}
|
||||
|
||||
// function to update images
|
||||
void LLTabContainer::update_images(LLTabTuple* tuple, TabParams params, LLTabContainer::TabPosition pos)
|
||||
{
|
||||
if (tuple && tuple->mButton)
|
||||
{
|
||||
if (pos == LLTabContainer::TOP)
|
||||
{
|
||||
tuple->mButton->setImageUnselected(static_cast<LLUIImage*>(params.tab_top_image_unselected));
|
||||
tuple->mButton->setImageSelected(static_cast<LLUIImage*>(params.tab_top_image_selected));
|
||||
}
|
||||
else if (pos == LLTabContainer::BOTTOM)
|
||||
{
|
||||
tuple->mButton->setImageUnselected(static_cast<LLUIImage*>(params.tab_bottom_image_unselected));
|
||||
tuple->mButton->setImageSelected(static_cast<LLUIImage*>(params.tab_bottom_image_selected));
|
||||
}
|
||||
else if (pos == LLTabContainer::LEFT)
|
||||
{
|
||||
tuple->mButton->setImageUnselected(static_cast<LLUIImage*>(params.tab_left_image_unselected));
|
||||
tuple->mButton->setImageSelected(static_cast<LLUIImage*>(params.tab_left_image_selected));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLTabContainer::addTabPanel(const TabPanelParams& panel)
|
||||
{
|
||||
LLPanel* child = panel.panel();
|
||||
|
|
@ -888,14 +914,14 @@ void LLTabContainer::addTabPanel(const TabPanelParams& panel)
|
|||
else if( getTabPosition() == LLTabContainer::TOP )
|
||||
{
|
||||
btn_rect.setLeftTopAndSize( 0, getRect().getHeight() - getTopBorderHeight() + tab_fudge, button_width, mTabHeight);
|
||||
tab_img = mImageTopUnselected.get();
|
||||
tab_selected_img = mImageTopSelected.get();
|
||||
tab_img = mMiddleTabParams.tab_top_image_unselected;
|
||||
tab_selected_img = mMiddleTabParams.tab_top_image_selected;
|
||||
}
|
||||
else
|
||||
{
|
||||
btn_rect.setOriginAndSize( 0, 0 + tab_fudge, button_width, mTabHeight);
|
||||
tab_img = mImageBottomUnselected.get();
|
||||
tab_selected_img = mImageBottomSelected.get();
|
||||
tab_img = mMiddleTabParams.tab_bottom_image_unselected;
|
||||
tab_selected_img = mMiddleTabParams.tab_bottom_image_selected;
|
||||
}
|
||||
|
||||
LLTextBox* textbox = NULL;
|
||||
|
|
@ -926,8 +952,8 @@ void LLTabContainer::addTabPanel(const TabPanelParams& panel)
|
|||
p.click_callback.function(boost::bind(&LLTabContainer::onTabBtn, this, _2, child));
|
||||
p.font(font);
|
||||
p.label(trimmed_label);
|
||||
p.image_unselected(mImageLeftUnselected);
|
||||
p.image_selected(mImageLeftSelected);
|
||||
p.image_unselected(mMiddleTabParams.tab_left_image_unselected);
|
||||
p.image_selected(mMiddleTabParams.tab_left_image_selected);
|
||||
p.scale_image(true);
|
||||
p.font_halign = LLFontGL::LEFT;
|
||||
p.tab_stop(false);
|
||||
|
|
@ -983,6 +1009,31 @@ void LLTabContainer::addTabPanel(const TabPanelParams& panel)
|
|||
LLTabTuple* tuple = new LLTabTuple( this, child, btn, textbox );
|
||||
insertTuple( tuple, insertion_point );
|
||||
|
||||
// if new tab was added as a first or last tab, update button image
|
||||
// and update button image of any tab it may have affected
|
||||
if (tuple == mTabList.front())
|
||||
{
|
||||
update_images(tuple, mFirstTabParams, getTabPosition());
|
||||
|
||||
if (mTabList.size() == 2)
|
||||
{
|
||||
update_images(mTabList[1], mLastTabParams, getTabPosition());
|
||||
}
|
||||
else if (mTabList.size() > 2)
|
||||
{
|
||||
update_images(mTabList[1], mMiddleTabParams, getTabPosition());
|
||||
}
|
||||
}
|
||||
else if (tuple == mTabList.back())
|
||||
{
|
||||
update_images(tuple, mLastTabParams, getTabPosition());
|
||||
|
||||
if (mTabList.size() > 2)
|
||||
{
|
||||
update_images(mTabList[mTabList.size()-2], mMiddleTabParams, getTabPosition());
|
||||
}
|
||||
}
|
||||
|
||||
//Don't add button and textbox if tab buttons are invisible(EXT - 576)
|
||||
if (!getTabsHidden())
|
||||
{
|
||||
|
|
@ -1064,7 +1115,17 @@ void LLTabContainer::removeTabPanel(LLPanel* child)
|
|||
LLTabTuple* tuple = *iter;
|
||||
if( tuple->mTabPanel == child )
|
||||
{
|
||||
removeChild( tuple->mButton );
|
||||
// update tab button images if removing the first or last tab
|
||||
if ((tuple == mTabList.front()) && (mTabList.size() > 1))
|
||||
{
|
||||
update_images(mTabList[1], mFirstTabParams, getTabPosition());
|
||||
}
|
||||
else if ((tuple == mTabList.back()) && (mTabList.size() > 2))
|
||||
{
|
||||
update_images(mTabList[mTabList.size()-2], mLastTabParams, getTabPosition());
|
||||
}
|
||||
|
||||
removeChild( tuple->mButton );
|
||||
delete tuple->mButton;
|
||||
|
||||
removeChild( tuple->mTabPanel );
|
||||
|
|
|
|||
|
|
@ -61,6 +61,17 @@ public:
|
|||
static void declareValues();
|
||||
};
|
||||
|
||||
struct TabParams : public LLInitParam::Block<TabParams>
|
||||
{
|
||||
Optional<LLUIImage*> tab_top_image_unselected,
|
||||
tab_top_image_selected,
|
||||
tab_bottom_image_unselected,
|
||||
tab_bottom_image_selected,
|
||||
tab_left_image_unselected,
|
||||
tab_left_image_selected;
|
||||
TabParams();
|
||||
};
|
||||
|
||||
struct Params
|
||||
: public LLInitParam::Block<Params, LLPanel::Params>
|
||||
{
|
||||
|
|
@ -73,12 +84,9 @@ public:
|
|||
Optional<bool> hide_tabs;
|
||||
Optional<S32> tab_padding_right;
|
||||
|
||||
Optional<LLUIImage*> tab_top_image_unselected,
|
||||
tab_top_image_selected,
|
||||
tab_bottom_image_unselected,
|
||||
tab_bottom_image_selected,
|
||||
tab_left_image_unselected,
|
||||
tab_left_image_selected;
|
||||
Optional<TabParams> first_tab,
|
||||
middle_tab,
|
||||
last_tab;
|
||||
|
||||
Params();
|
||||
};
|
||||
|
|
@ -215,6 +223,9 @@ private:
|
|||
void updateMaxScrollPos();
|
||||
void commitHoveredButton(S32 x, S32 y);
|
||||
|
||||
// updates tab button images given the tuple, tab position and the corresponding params
|
||||
void update_images(LLTabTuple* tuple, TabParams params, LLTabContainer::TabPosition pos);
|
||||
|
||||
// Variables
|
||||
|
||||
typedef std::vector<LLTabTuple*> tuple_list_t;
|
||||
|
|
@ -252,12 +263,9 @@ private:
|
|||
|
||||
LLFrameTimer mDragAndDropDelayTimer;
|
||||
|
||||
LLPointer<LLUIImage> mImageTopUnselected;
|
||||
LLPointer<LLUIImage> mImageTopSelected;
|
||||
LLPointer<LLUIImage> mImageBottomUnselected;
|
||||
LLPointer<LLUIImage> mImageBottomSelected;
|
||||
LLPointer<LLUIImage> mImageLeftUnselected;
|
||||
LLPointer<LLUIImage> mImageLeftSelected;
|
||||
TabParams mFirstTabParams;
|
||||
TabParams mMiddleTabParams;
|
||||
TabParams mLastTabParams;
|
||||
};
|
||||
|
||||
#endif // LL_TABCONTAINER_H
|
||||
|
|
|
|||
|
|
@ -3,7 +3,30 @@
|
|||
* @brief brief LLUIColorTable class implementation file
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,30 @@
|
|||
* @brief brief LLUIColorTable class header file
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1310,6 +1310,11 @@ void LLAgentWearables::removeWearable(const EWearableType type, bool do_remove_a
|
|||
// TODO: enable the removing of a single undershirt/underpants if multiple are worn. - Nyx
|
||||
return;
|
||||
}
|
||||
if (getWearableCount(type) == 0)
|
||||
{
|
||||
// no wearables to remove
|
||||
return;
|
||||
}
|
||||
|
||||
if (do_remove_all)
|
||||
{
|
||||
|
|
@ -1431,6 +1436,9 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
|
|||
wearables_to_remove[WT_UNDERSHIRT] = (!gAgent.isTeen()) & remove;
|
||||
wearables_to_remove[WT_UNDERPANTS] = (!gAgent.isTeen()) & remove;
|
||||
wearables_to_remove[WT_SKIRT] = remove;
|
||||
wearables_to_remove[WT_ALPHA] = remove;
|
||||
wearables_to_remove[WT_TATTOO] = remove;
|
||||
|
||||
|
||||
S32 count = wearables.count();
|
||||
llassert(items.count() == count);
|
||||
|
|
@ -1743,6 +1751,8 @@ void LLAgentWearables::userRemoveAllClothesStep2(BOOL proceed)
|
|||
gAgentWearables.removeWearable(WT_UNDERSHIRT,true,0);
|
||||
gAgentWearables.removeWearable(WT_UNDERPANTS,true,0);
|
||||
gAgentWearables.removeWearable(WT_SKIRT,true,0);
|
||||
gAgentWearables.removeWearable(WT_ALPHA,true,0);
|
||||
gAgentWearables.removeWearable(WT_TATTOO,true,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,30 @@
|
|||
* @brief Implementation for llcapabilitylistener.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,30 @@
|
|||
* @brief Provide an event-based API for capability requests
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,30 @@
|
|||
* capability.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* $LicenseInfo:firstyear=2001&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2001-2007, Linden Research, Inc.
|
||||
* Copyright (c) 2001-2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
|
|
@ -12,12 +12,13 @@
|
|||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlife.com/developers/opensource/gplv2
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at http://secondlife.com/developers/opensource/flossexception
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ public:
|
|||
LLFloaterBuyLandUI(const LLSD& key);
|
||||
virtual ~LLFloaterBuyLandUI();
|
||||
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
|
||||
private:
|
||||
class SelectionObserver : public LLParcelObserver
|
||||
{
|
||||
|
|
@ -300,11 +302,21 @@ LLFloaterBuyLandUI::LLFloaterBuyLandUI(const LLSD& key)
|
|||
LLFloaterBuyLandUI::~LLFloaterBuyLandUI()
|
||||
{
|
||||
LLViewerParcelMgr::getInstance()->removeObserver(&mParcelSelectionObserver);
|
||||
LLViewerParcelMgr::getInstance()->deleteParcelBuy(mParcelBuyInfo);
|
||||
LLViewerParcelMgr::getInstance()->deleteParcelBuy(&mParcelBuyInfo);
|
||||
|
||||
delete mTransaction;
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLFloaterBuyLandUI::onClose(bool app_quitting)
|
||||
{
|
||||
// This object holds onto observer, transactions, and parcel state.
|
||||
// Despite being single_instance, destroy it to call destructors and clean
|
||||
// everything up.
|
||||
setVisible(FALSE);
|
||||
destroy();
|
||||
}
|
||||
|
||||
void LLFloaterBuyLandUI::SelectionObserver::changed()
|
||||
{
|
||||
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
|
||||
|
|
@ -756,7 +768,7 @@ void LLFloaterBuyLandUI::sendBuyLand()
|
|||
if (mParcelBuyInfo)
|
||||
{
|
||||
LLViewerParcelMgr::getInstance()->sendParcelBuy(mParcelBuyInfo);
|
||||
LLViewerParcelMgr::getInstance()->deleteParcelBuy(mParcelBuyInfo);
|
||||
LLViewerParcelMgr::getInstance()->deleteParcelBuy(&mParcelBuyInfo);
|
||||
mBought = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1162,10 +1162,11 @@ void LLViewerParcelMgr::sendParcelBuy(ParcelBuyInfo* info)
|
|||
msg->sendReliable(info->mHost);
|
||||
}
|
||||
|
||||
void LLViewerParcelMgr::deleteParcelBuy(ParcelBuyInfo*& info)
|
||||
void LLViewerParcelMgr::deleteParcelBuy(ParcelBuyInfo* *info)
|
||||
{
|
||||
delete info;
|
||||
info = NULL;
|
||||
// Must be here because ParcelBuyInfo is local to this .cpp file
|
||||
delete *info;
|
||||
*info = NULL;
|
||||
}
|
||||
|
||||
void LLViewerParcelMgr::sendParcelDeed(const LLUUID& group_id)
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ public:
|
|||
BOOL remove_contribution);
|
||||
// callers responsibility to call deleteParcelBuy() on return value
|
||||
void sendParcelBuy(ParcelBuyInfo*);
|
||||
void deleteParcelBuy(ParcelBuyInfo*&);
|
||||
void deleteParcelBuy(ParcelBuyInfo* *info);
|
||||
|
||||
void sendParcelDeed(const LLUUID& group_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -408,9 +408,10 @@ BOOL LLWearable::importFile( LLFILE* file )
|
|||
{
|
||||
delete mSavedTEMap[te];
|
||||
}
|
||||
|
||||
mTEMap[te] = new LLLocalTextureObject(image, LLUUID(text_buffer));
|
||||
mSavedTEMap[te] = new LLLocalTextureObject(image, LLUUID(text_buffer));
|
||||
|
||||
LLUUID textureid(text_buffer);
|
||||
mTEMap[te] = new LLLocalTextureObject(image, textureid);
|
||||
mSavedTEMap[te] = new LLLocalTextureObject(image, textureid);
|
||||
createLayers(te);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -135,7 +135,8 @@
|
|||
|
||||
<check_box
|
||||
bottom_delta="-25"
|
||||
enabled="true"
|
||||
visible="false"
|
||||
enabled="false"
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
height="16"
|
||||
|
|
@ -148,7 +149,7 @@
|
|||
width="150" />
|
||||
|
||||
<check_box
|
||||
bottom_delta="-25"
|
||||
bottom_delta="0"
|
||||
enabled="true"
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
|
|
|
|||
|
|
@ -1,10 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<tab_container tab_min_width="60"
|
||||
tab_max_width="150"
|
||||
tab_height="16"
|
||||
tab_top_image_unselected="TabTop_Middle_Off"
|
||||
tab_top_image_selected="TabTop_Middle_Selected"
|
||||
tab_height="16">
|
||||
<first_tab tab_top_image_unselected="TabTop_Left_Off"
|
||||
tab_top_image_selected="TabTop_Left_Selected"
|
||||
tab_bottom_image_unselected="Toolbar_Left_Off"
|
||||
tab_bottom_image_selected="Toolbar_Left_Selected"
|
||||
tab_left_image_unselected="TabTop_Left_Off"
|
||||
tab_left_image_selected="TabTop_Left_Selected"/>
|
||||
tab_left_image_unselected="TabTop_Middle_Off"
|
||||
tab_left_image_selected="TabTop_Middle_Selected"/>
|
||||
<middle_tab tab_top_image_unselected="TabTop_Middle_Off"
|
||||
tab_top_image_selected="TabTop_Middle_Selected"
|
||||
tab_bottom_image_unselected="Toolbar_Middle_Off"
|
||||
tab_bottom_image_selected="Toolbar_Middle_Selected"
|
||||
tab_left_image_unselected="TabTop_Middle_Off"
|
||||
tab_left_image_selected="TabTop_Middle_Selected"/>
|
||||
<last_tab tab_top_image_unselected="TabTop_Right_Off"
|
||||
tab_top_image_selected="TabTop_Right_Selected"
|
||||
tab_bottom_image_unselected="Toolbar_Right_Off"
|
||||
tab_bottom_image_selected="Toolbar_Right_Selected"
|
||||
tab_left_image_unselected="TabTop_Middle_Off"
|
||||
tab_left_image_selected="TabTop_Middle_Selected"/>
|
||||
</tab_container>
|
||||
|
|
@ -5,7 +5,30 @@
|
|||
* @brief Test for llcapabilitylistener.cpp.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2008&license=viewergpl$
|
||||
* Copyright (c) 2008, Linden Research, Inc.
|
||||
*
|
||||
* Copyright (c) 2008-2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue