SL-19104 Clean up inventory UI to prepare for thumbnails (#66)
parent
999c8cd3b9
commit
ac3f1b54ec
|
|
@ -46,6 +46,7 @@ public:
|
|||
virtual LLFolderType::EType getPreferredType() const = 0;
|
||||
virtual void showProperties(void) = 0;
|
||||
virtual BOOL isItemInTrash( void) const { return FALSE; } // TODO: make into pure virtual.
|
||||
virtual bool isItemInOutfits() const { return false; }
|
||||
virtual BOOL isAgentInventory() const { return FALSE; }
|
||||
virtual BOOL isUpToDate() const = 0;
|
||||
virtual void addChild(LLFolderViewModelItem* child);
|
||||
|
|
|
|||
|
|
@ -1244,6 +1244,16 @@ BOOL LLInvFVBridge::isLinkedObjectInTrash() const
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
bool LLInvFVBridge::isItemInOutfits() const
|
||||
{
|
||||
const LLInventoryModel* model = getInventoryModel();
|
||||
if(!model) return false;
|
||||
|
||||
const LLUUID my_outfits_cat = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);
|
||||
|
||||
return isCOFFolder() || (my_outfits_cat == mUUID) || model->isObjectDescendentOf(mUUID, my_outfits_cat);
|
||||
}
|
||||
|
||||
BOOL LLInvFVBridge::isLinkedObjectMissing() const
|
||||
{
|
||||
const LLInventoryObject *obj = getInventoryObject();
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ public:
|
|||
virtual BOOL isItemRemovable() const;
|
||||
virtual BOOL isItemMovable() const;
|
||||
virtual BOOL isItemInTrash() const;
|
||||
virtual bool isItemInOutfits() const;
|
||||
virtual BOOL isLink() const;
|
||||
virtual BOOL isLibraryItem() const;
|
||||
//virtual BOOL removeItem() = 0;
|
||||
|
|
|
|||
|
|
@ -596,6 +596,9 @@ bool LLInventoryFilter::checkAgainstSearchVisibility(const LLFolderViewModelItem
|
|||
if (is_link && ((mFilterOps.mSearchVisibility & VISIBILITY_LINKS) == 0))
|
||||
return FALSE;
|
||||
|
||||
if (listener->isItemInOutfits() && ((mFilterOps.mSearchVisibility & VISIBILITY_OUTFITS) == 0))
|
||||
return FALSE;
|
||||
|
||||
if (listener->isItemInTrash() && ((mFilterOps.mSearchVisibility & VISIBILITY_TRASH) == 0))
|
||||
return FALSE;
|
||||
|
||||
|
|
@ -792,6 +795,24 @@ void LLInventoryFilter::toggleSearchVisibilityLinks()
|
|||
}
|
||||
}
|
||||
|
||||
void LLInventoryFilter::toggleSearchVisibilityOutfits()
|
||||
{
|
||||
bool hide_outfits = mFilterOps.mSearchVisibility & VISIBILITY_OUTFITS;
|
||||
if (hide_outfits)
|
||||
{
|
||||
mFilterOps.mSearchVisibility &= ~VISIBILITY_OUTFITS;
|
||||
}
|
||||
else
|
||||
{
|
||||
mFilterOps.mSearchVisibility |= VISIBILITY_OUTFITS;
|
||||
}
|
||||
|
||||
if (hasFilterString())
|
||||
{
|
||||
setModified(hide_outfits ? FILTER_MORE_RESTRICTIVE : FILTER_LESS_RESTRICTIVE);
|
||||
}
|
||||
}
|
||||
|
||||
void LLInventoryFilter::toggleSearchVisibilityTrash()
|
||||
{
|
||||
bool hide_trash = mFilterOps.mSearchVisibility & VISIBILITY_TRASH;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,8 @@ public:
|
|||
VISIBILITY_NONE = 0,
|
||||
VISIBILITY_TRASH = 0x1 << 0,
|
||||
VISIBILITY_LIBRARY = 0x1 << 1,
|
||||
VISIBILITY_LINKS = 0x1 << 2
|
||||
VISIBILITY_LINKS = 0x1 << 2,
|
||||
VISIBILITY_OUTFITS = 0x1 << 3
|
||||
};
|
||||
|
||||
struct FilterOps
|
||||
|
|
@ -228,6 +229,7 @@ public:
|
|||
|
||||
void toggleSearchVisibilityLinks();
|
||||
void toggleSearchVisibilityTrash();
|
||||
void toggleSearchVisibilityOutfits();
|
||||
void toggleSearchVisibilityLibrary();
|
||||
void setSearchVisibilityTypes(U32 types);
|
||||
void setSearchVisibilityTypes(const Params& params);
|
||||
|
|
|
|||
|
|
@ -113,7 +113,8 @@ LLPanelMainInventory::LLPanelMainInventory(const LLPanel::Params& p)
|
|||
mMenuGearDefault(NULL),
|
||||
mMenuVisibility(NULL),
|
||||
mMenuAddHandle(),
|
||||
mNeedUploadCost(true)
|
||||
mNeedUploadCost(true),
|
||||
mMenuViewDefault(NULL)
|
||||
{
|
||||
// Menu Callbacks (non contex menus)
|
||||
mCommitCallbackRegistrar.add("Inventory.DoToSelected", boost::bind(&LLPanelMainInventory::doToSelected, this, _2));
|
||||
|
|
@ -237,6 +238,7 @@ BOOL LLPanelMainInventory::postBuild()
|
|||
|
||||
mGearMenuButton = getChild<LLMenuButton>("options_gear_btn");
|
||||
mVisibilityMenuButton = getChild<LLMenuButton>("options_visibility_btn");
|
||||
mViewMenuButton = getChild<LLMenuButton>("view_btn");
|
||||
|
||||
initListCommandsHandlers();
|
||||
|
||||
|
|
@ -1163,21 +1165,15 @@ void LLFloaterInventoryFinder::selectNoTypes(void* user_data)
|
|||
|
||||
void LLPanelMainInventory::initListCommandsHandlers()
|
||||
{
|
||||
childSetAction("trash_btn", boost::bind(&LLPanelMainInventory::onTrashButtonClick, this));
|
||||
childSetAction("add_btn", boost::bind(&LLPanelMainInventory::onAddButtonClick, this));
|
||||
|
||||
mTrashButton = getChild<LLDragAndDropButton>("trash_btn");
|
||||
mTrashButton->setDragAndDropHandler(boost::bind(&LLPanelMainInventory::handleDragAndDropToTrash, this
|
||||
, _4 // BOOL drop
|
||||
, _5 // EDragAndDropType cargo_type
|
||||
, _7 // EAcceptance* accept
|
||||
));
|
||||
|
||||
mCommitCallbackRegistrar.add("Inventory.GearDefault.Custom.Action", boost::bind(&LLPanelMainInventory::onCustomAction, this, _2));
|
||||
mEnableCallbackRegistrar.add("Inventory.GearDefault.Check", boost::bind(&LLPanelMainInventory::isActionChecked, this, _2));
|
||||
mEnableCallbackRegistrar.add("Inventory.GearDefault.Enable", boost::bind(&LLPanelMainInventory::isActionEnabled, this, _2));
|
||||
mMenuGearDefault = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_inventory_gear_default.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
mGearMenuButton->setMenu(mMenuGearDefault);
|
||||
mMenuViewDefault = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_inventory_view_default.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
mViewMenuButton->setMenu(mMenuViewDefault);
|
||||
LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_inventory_add.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
mMenuAddHandle = menu->getHandle();
|
||||
|
||||
|
|
@ -1191,9 +1187,6 @@ void LLPanelMainInventory::initListCommandsHandlers()
|
|||
|
||||
void LLPanelMainInventory::updateListCommands()
|
||||
{
|
||||
bool trash_enabled = isActionEnabled("delete");
|
||||
|
||||
mTrashButton->setEnabled(trash_enabled);
|
||||
}
|
||||
|
||||
void LLPanelMainInventory::onAddButtonClick()
|
||||
|
|
@ -1227,11 +1220,6 @@ void LLPanelMainInventory::showActionMenu(LLMenuGL* menu, std::string spawning_v
|
|||
}
|
||||
}
|
||||
|
||||
void LLPanelMainInventory::onTrashButtonClick()
|
||||
{
|
||||
onClipboardAction("delete");
|
||||
}
|
||||
|
||||
void LLPanelMainInventory::onClipboardAction(const LLSD& userdata)
|
||||
{
|
||||
std::string command_name = userdata.asString();
|
||||
|
|
@ -1375,6 +1363,11 @@ void LLPanelMainInventory::onCustomAction(const LLSD& userdata)
|
|||
LLFloaterReg::showInstance("linkreplace", params);
|
||||
}
|
||||
|
||||
if (command_name == "toggle_search_outfits")
|
||||
{
|
||||
mActivePanel->getFilter().toggleSearchVisibilityOutfits();
|
||||
}
|
||||
|
||||
if (command_name == "toggle_search_trash")
|
||||
{
|
||||
mActivePanel->getFilter().toggleSearchVisibilityTrash();
|
||||
|
|
@ -1534,6 +1527,11 @@ BOOL LLPanelMainInventory::isActionChecked(const LLSD& userdata)
|
|||
return sort_order_mask & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP;
|
||||
}
|
||||
|
||||
if (command_name == "toggle_search_outfits")
|
||||
{
|
||||
return (mActivePanel->getFilter().getSearchVisibilityTypes() & LLInventoryFilter::VISIBILITY_OUTFITS) != 0;
|
||||
}
|
||||
|
||||
if (command_name == "toggle_search_trash")
|
||||
{
|
||||
return (mActivePanel->getFilter().getSearchVisibilityTypes() & LLInventoryFilter::VISIBILITY_TRASH) != 0;
|
||||
|
|
@ -1552,20 +1550,6 @@ BOOL LLPanelMainInventory::isActionChecked(const LLSD& userdata)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
bool LLPanelMainInventory::handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept)
|
||||
{
|
||||
*accept = ACCEPT_NO;
|
||||
|
||||
const bool is_enabled = isActionEnabled("delete");
|
||||
if (is_enabled) *accept = ACCEPT_YES_MULTI;
|
||||
|
||||
if (is_enabled && drop)
|
||||
{
|
||||
onClipboardAction("delete");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLPanelMainInventory::setUploadCostIfNeeded()
|
||||
{
|
||||
LLMenuGL* menu = (LLMenuGL*)mMenuAddHandle.get();
|
||||
|
|
|
|||
|
|
@ -158,22 +158,21 @@ protected:
|
|||
void updateListCommands();
|
||||
void onAddButtonClick();
|
||||
void showActionMenu(LLMenuGL* menu, std::string spawning_view_name);
|
||||
void onTrashButtonClick();
|
||||
void onClipboardAction(const LLSD& userdata);
|
||||
BOOL isActionEnabled(const LLSD& command_name);
|
||||
BOOL isActionChecked(const LLSD& userdata);
|
||||
void onCustomAction(const LLSD& command_name);
|
||||
bool handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept);
|
||||
static bool hasSettingsInventory();
|
||||
/**
|
||||
* Set upload cost in "Upload" sub menu.
|
||||
*/
|
||||
void setUploadCostIfNeeded();
|
||||
private:
|
||||
LLDragAndDropButton* mTrashButton;
|
||||
LLToggleableMenu* mMenuGearDefault;
|
||||
LLToggleableMenu* mMenuViewDefault;
|
||||
LLToggleableMenu* mMenuVisibility;
|
||||
LLMenuButton* mGearMenuButton;
|
||||
LLMenuButton* mViewMenuButton;
|
||||
LLMenuButton* mVisibilityMenuButton;
|
||||
LLHandle<LLView> mMenuAddHandle;
|
||||
|
||||
|
|
|
|||
|
|
@ -75,9 +75,6 @@ BOOL LLPanelMarketplaceInbox::postBuild()
|
|||
|
||||
void LLPanelMarketplaceInbox::onSelectionChange()
|
||||
{
|
||||
LLSidepanelInventory* sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
|
||||
|
||||
sidepanel_inventory->updateVerbs();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -158,29 +158,11 @@ BOOL LLSidepanelInventory::postBuild()
|
|||
// UI elements from inventory panel
|
||||
{
|
||||
mInventoryPanel = getChild<LLPanel>("sidepanel_inventory_panel");
|
||||
|
||||
mInfoBtn = mInventoryPanel->getChild<LLButton>("info_btn");
|
||||
mInfoBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onInfoButtonClicked, this));
|
||||
|
||||
mShareBtn = mInventoryPanel->getChild<LLButton>("share_btn");
|
||||
mShareBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShareButtonClicked, this));
|
||||
|
||||
mShopBtn = mInventoryPanel->getChild<LLButton>("shop_btn");
|
||||
mShopBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShopButtonClicked, this));
|
||||
|
||||
mWearBtn = mInventoryPanel->getChild<LLButton>("wear_btn");
|
||||
mWearBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onWearButtonClicked, this));
|
||||
|
||||
mPlayBtn = mInventoryPanel->getChild<LLButton>("play_btn");
|
||||
mPlayBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onPlayButtonClicked, this));
|
||||
|
||||
mTeleportBtn = mInventoryPanel->getChild<LLButton>("teleport_btn");
|
||||
mTeleportBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onTeleportButtonClicked, this));
|
||||
|
||||
mPanelMainInventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
|
||||
mPanelMainInventory->setSelectCallback(boost::bind(&LLSidepanelInventory::onSelectionChange, this, _1, _2));
|
||||
LLTabContainer* tabs = mPanelMainInventory->getChild<LLTabContainer>("inventory filter tabs");
|
||||
tabs->setCommitCallback(boost::bind(&LLSidepanelInventory::updateVerbs, this));
|
||||
//LLTabContainer* tabs = mPanelMainInventory->getChild<LLTabContainer>("inventory filter tabs");
|
||||
//tabs->setCommitCallback(boost::bind(&LLSidepanelInventory::updateVerbs, this));
|
||||
|
||||
/*
|
||||
EXT-4846 : "Can we suppress the "Landmarks" and "My Favorites" folder since they have their own Task Panel?"
|
||||
|
|
@ -190,7 +172,7 @@ BOOL LLSidepanelInventory::postBuild()
|
|||
my_inventory_panel->addHideFolderType(LLFolderType::FT_FAVORITE);
|
||||
*/
|
||||
|
||||
LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&LLSidepanelInventory::updateVerbs, this));
|
||||
//LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&LLSidepanelInventory::updateVerbs, this));
|
||||
}
|
||||
|
||||
// UI elements from item panel
|
||||
|
|
@ -240,9 +222,6 @@ BOOL LLSidepanelInventory::postBuild()
|
|||
|
||||
gSavedSettings.getControl("InventoryDisplayInbox")->getCommitSignal()->connect(boost::bind(&handleInventoryDisplayInboxChanged));
|
||||
|
||||
// Update the verbs buttons state.
|
||||
updateVerbs();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -431,27 +410,6 @@ void LLSidepanelInventory::onOpen(const LLSD& key)
|
|||
}
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onInfoButtonClicked()
|
||||
{
|
||||
LLInventoryItem *item = getSelectedItem();
|
||||
if (item)
|
||||
{
|
||||
mItemPanel->reset();
|
||||
mItemPanel->setItemID(item->getUUID());
|
||||
showItemInfoPanel();
|
||||
}
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onShareButtonClicked()
|
||||
{
|
||||
LLAvatarActions::shareWithAvatars(this);
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onShopButtonClicked()
|
||||
{
|
||||
LLWeb::loadURL(gSavedSettings.getString("MarketplaceURL"));
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::performActionOnSelection(const std::string &action)
|
||||
{
|
||||
LLFolderViewItem* current_item = mPanelMainInventory->getActivePanel()->getRootFolder()->getCurSelectedItem();
|
||||
|
|
@ -471,47 +429,6 @@ void LLSidepanelInventory::performActionOnSelection(const std::string &action)
|
|||
static_cast<LLFolderViewModelItemInventory*>(current_item->getViewModelItem())->performAction(mPanelMainInventory->getActivePanel()->getModel(), action);
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onWearButtonClicked()
|
||||
{
|
||||
// Get selected items set.
|
||||
const std::set<LLUUID> selected_uuids_set = LLAvatarActions::getInventorySelectedUUIDs();
|
||||
if (selected_uuids_set.empty()) return; // nothing selected
|
||||
|
||||
// Convert the set to a vector.
|
||||
uuid_vec_t selected_uuids_vec;
|
||||
for (std::set<LLUUID>::const_iterator it = selected_uuids_set.begin(); it != selected_uuids_set.end(); ++it)
|
||||
{
|
||||
selected_uuids_vec.push_back(*it);
|
||||
}
|
||||
|
||||
// Wear all selected items.
|
||||
wear_multiple(selected_uuids_vec, true);
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onPlayButtonClicked()
|
||||
{
|
||||
const LLInventoryItem *item = getSelectedItem();
|
||||
if (!item)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch(item->getInventoryType())
|
||||
{
|
||||
case LLInventoryType::IT_GESTURE:
|
||||
performActionOnSelection("play");
|
||||
break;
|
||||
default:
|
||||
performActionOnSelection("open");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onTeleportButtonClicked()
|
||||
{
|
||||
performActionOnSelection("teleport");
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::onBackButtonClicked()
|
||||
{
|
||||
showInventoryPanel();
|
||||
|
|
@ -519,7 +436,7 @@ void LLSidepanelInventory::onBackButtonClicked()
|
|||
|
||||
void LLSidepanelInventory::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
|
||||
{
|
||||
updateVerbs();
|
||||
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::showItemInfoPanel()
|
||||
|
|
@ -552,69 +469,6 @@ void LLSidepanelInventory::showInventoryPanel()
|
|||
if (mTaskPanel)
|
||||
mTaskPanel->setVisible(FALSE);
|
||||
mInventoryPanel->setVisible(TRUE);
|
||||
updateVerbs();
|
||||
}
|
||||
|
||||
void LLSidepanelInventory::updateVerbs()
|
||||
{
|
||||
mInfoBtn->setEnabled(FALSE);
|
||||
mShareBtn->setEnabled(FALSE);
|
||||
|
||||
mWearBtn->setVisible(FALSE);
|
||||
mWearBtn->setEnabled(FALSE);
|
||||
mPlayBtn->setVisible(FALSE);
|
||||
mPlayBtn->setEnabled(FALSE);
|
||||
mPlayBtn->setToolTip(std::string(""));
|
||||
mTeleportBtn->setVisible(FALSE);
|
||||
mTeleportBtn->setEnabled(FALSE);
|
||||
mShopBtn->setVisible(TRUE);
|
||||
|
||||
mShareBtn->setEnabled(canShare());
|
||||
|
||||
const LLInventoryItem *item = getSelectedItem();
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
bool is_single_selection = getSelectedCount() == 1;
|
||||
|
||||
mInfoBtn->setEnabled(is_single_selection);
|
||||
|
||||
switch(item->getInventoryType())
|
||||
{
|
||||
case LLInventoryType::IT_WEARABLE:
|
||||
case LLInventoryType::IT_OBJECT:
|
||||
case LLInventoryType::IT_ATTACHMENT:
|
||||
mWearBtn->setVisible(TRUE);
|
||||
mWearBtn->setEnabled(canWearSelected());
|
||||
mShopBtn->setVisible(FALSE);
|
||||
break;
|
||||
case LLInventoryType::IT_SOUND:
|
||||
mPlayBtn->setVisible(TRUE);
|
||||
mPlayBtn->setEnabled(TRUE);
|
||||
mPlayBtn->setToolTip(LLTrans::getString("InventoryPlaySoundTooltip"));
|
||||
mShopBtn->setVisible(FALSE);
|
||||
break;
|
||||
case LLInventoryType::IT_GESTURE:
|
||||
mPlayBtn->setVisible(TRUE);
|
||||
mPlayBtn->setEnabled(TRUE);
|
||||
mPlayBtn->setToolTip(LLTrans::getString("InventoryPlayGestureTooltip"));
|
||||
mShopBtn->setVisible(FALSE);
|
||||
break;
|
||||
case LLInventoryType::IT_ANIMATION:
|
||||
mPlayBtn->setVisible(TRUE);
|
||||
mPlayBtn->setEnabled(TRUE);
|
||||
mPlayBtn->setEnabled(TRUE);
|
||||
mPlayBtn->setToolTip(LLTrans::getString("InventoryPlayAnimationTooltip"));
|
||||
mShopBtn->setVisible(FALSE);
|
||||
break;
|
||||
case LLInventoryType::IT_LANDMARK:
|
||||
mTeleportBtn->setVisible(TRUE);
|
||||
mTeleportBtn->setEnabled(TRUE);
|
||||
mShopBtn->setVisible(FALSE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool LLSidepanelInventory::canShare()
|
||||
|
|
@ -741,8 +595,6 @@ void LLSidepanelInventory::clearSelections(bool clearMain, bool clearInbox)
|
|||
{
|
||||
mInventoryPanelInbox.get()->getRootFolder()->clearSelection();
|
||||
}
|
||||
|
||||
updateVerbs();
|
||||
}
|
||||
|
||||
std::set<LLFolderViewItem*> LLSidepanelInventory::getInboxSelectionList()
|
||||
|
|
|
|||
|
|
@ -81,8 +81,6 @@ public:
|
|||
|
||||
bool isInboxEnabled() const { return mInboxEnabled; }
|
||||
|
||||
void updateVerbs();
|
||||
|
||||
static void cleanup();
|
||||
|
||||
protected:
|
||||
|
|
@ -108,22 +106,9 @@ private:
|
|||
LLPanelMainInventory* mPanelMainInventory;
|
||||
|
||||
protected:
|
||||
void onInfoButtonClicked();
|
||||
void onShareButtonClicked();
|
||||
void onShopButtonClicked();
|
||||
void onWearButtonClicked();
|
||||
void onPlayButtonClicked();
|
||||
void onTeleportButtonClicked();
|
||||
void onBackButtonClicked();
|
||||
|
||||
private:
|
||||
LLButton* mInfoBtn;
|
||||
LLButton* mShareBtn;
|
||||
LLButton* mWearBtn;
|
||||
LLButton* mPlayBtn;
|
||||
LLButton* mTeleportBtn;
|
||||
LLButton* mShopBtn;
|
||||
|
||||
bool mInboxEnabled;
|
||||
|
||||
LLInventoryCategoriesObserver* mCategoriesObserver;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,16 @@
|
|||
mouse_opaque="false"
|
||||
name="menu_gear_default"
|
||||
visible="false">
|
||||
<menu_item_call
|
||||
label="New Folder Window"
|
||||
layout="topleft"
|
||||
shortcut="control|shift|J"
|
||||
enabled="false"
|
||||
name="new_single_folder">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="new_window" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="New Inventory Window"
|
||||
layout="topleft"
|
||||
|
|
@ -15,52 +25,14 @@
|
|||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="new_window" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_check
|
||||
label="Sort by Name"
|
||||
<menu_item_call
|
||||
label="Close All Folders"
|
||||
layout="topleft"
|
||||
name="sort_by_name">
|
||||
name="close_folders">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_by_name" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_by_name" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Sort by Most Recent"
|
||||
layout="topleft"
|
||||
name="sort_by_recent">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_by_recent" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_by_recent" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Sort Folders Always by Name"
|
||||
layout="topleft"
|
||||
name="sort_folders_by_name">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_folders_by_name" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_folders_by_name" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Sort System Folders to Top"
|
||||
layout="topleft"
|
||||
name="sort_system_folders_to_top">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_system_folders_to_top" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_system_folders_to_top" />
|
||||
</menu_item_check>
|
||||
parameter="close_folders" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_call
|
||||
|
|
@ -79,29 +51,6 @@
|
|||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="reset_filters" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Close All Folders"
|
||||
layout="topleft"
|
||||
name="close_folders">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="close_folders" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_call
|
||||
label="Empty Lost and Found"
|
||||
layout="topleft"
|
||||
name="empty_lostnfound">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="empty_lostnfound" />
|
||||
<on_enable
|
||||
function="Inventory.GearDefault.Enable"
|
||||
parameter="empty_lostnfound" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_call
|
||||
label="Save Texture As"
|
||||
layout="topleft"
|
||||
|
|
@ -156,7 +105,17 @@
|
|||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
|
||||
<menu_item_call
|
||||
label="Empty Lost and Found"
|
||||
layout="topleft"
|
||||
name="empty_lostnfound">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="empty_lostnfound" />
|
||||
<on_enable
|
||||
function="Inventory.GearDefault.Enable"
|
||||
parameter="empty_lostnfound" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Empty Trash"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -6,6 +6,17 @@
|
|||
mouse_opaque="false"
|
||||
name="menu_search_visibility"
|
||||
visible="false">
|
||||
<menu_item_check
|
||||
label="Search outfit folders"
|
||||
layout="topleft"
|
||||
name="search_outfits">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="toggle_search_outfits" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="toggle_search_outfits" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Search Trash"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu
|
||||
bottom="806"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
mouse_opaque="false"
|
||||
name="menu_view_default"
|
||||
visible="false">
|
||||
<menu_item_check
|
||||
label="Sort by Name"
|
||||
layout="topleft"
|
||||
name="sort_by_name">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_by_name" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_by_name" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Sort by Most Recent"
|
||||
layout="topleft"
|
||||
name="sort_by_recent">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_by_recent" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_by_recent" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Sort Folders Always by Name"
|
||||
layout="topleft"
|
||||
name="sort_folders_by_name">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_folders_by_name" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_folders_by_name" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Sort System Folders to Top"
|
||||
layout="topleft"
|
||||
name="sort_system_folders_to_top">
|
||||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="sort_system_folders_to_top" />
|
||||
<on_check
|
||||
function="Inventory.GearDefault.Check"
|
||||
parameter="sort_system_folders_to_top" />
|
||||
</menu_item_check>
|
||||
</toggleable_menu>
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
min_height="300"
|
||||
min_width="240"
|
||||
name="main inventory panel"
|
||||
width="330">
|
||||
width="355">
|
||||
<panel.string
|
||||
name="Itemcount">
|
||||
</panel.string>
|
||||
|
|
@ -41,11 +41,11 @@
|
|||
<combo_box
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
left="3"
|
||||
top="18"
|
||||
name="search_type"
|
||||
follows="top|left"
|
||||
width="88">
|
||||
width="67">
|
||||
<item
|
||||
label="Name"
|
||||
name="Name"
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
height="23"
|
||||
image_overlay="Inv_Toolbar_SearchVisibility"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
left_pad="1"
|
||||
name="options_visibility_btn"
|
||||
width="31" />
|
||||
<filter_editor
|
||||
|
|
@ -78,15 +78,64 @@
|
|||
height="23"
|
||||
label="Enter search text"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
left_pad="1"
|
||||
max_length_chars="300"
|
||||
highlight_text_field="true"
|
||||
name="inventory search editor"
|
||||
width="177" />
|
||||
width="99" />
|
||||
<menu_button
|
||||
follows="top|right"
|
||||
tool_tip="Show additional options"
|
||||
height="23"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="OptionsMenu_Off"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left_pad="1"
|
||||
name="options_gear_btn"
|
||||
width="31" />
|
||||
<menu_button
|
||||
follows="top|right"
|
||||
tool_tip="View/sort options"
|
||||
height="23"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="Conv_toolbar_sort"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left_pad="1"
|
||||
name="view_btn"
|
||||
width="31" />
|
||||
<button
|
||||
follows="top|right"
|
||||
height="23"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="AddItem_Off"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left_pad="1"
|
||||
name="add_btn"
|
||||
tool_tip="Add new item"
|
||||
width="31" />
|
||||
<button
|
||||
follows="top|right"
|
||||
tool_tip="Toggles between traditional and single-folder views"
|
||||
height="23"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="Command_Map_Icon"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left_pad="1"
|
||||
enabled="false"
|
||||
name="view_mode_btn"
|
||||
width="31" />
|
||||
<tab_container
|
||||
follows="all"
|
||||
halign="center"
|
||||
height="339"
|
||||
height="372"
|
||||
layout="topleft"
|
||||
left="7"
|
||||
name="inventory filter tabs"
|
||||
|
|
@ -142,92 +191,4 @@
|
|||
scroll.reserve_scroll_corner="false">
|
||||
</inventory_panel>
|
||||
</tab_container>
|
||||
<layout_stack
|
||||
animate="false"
|
||||
border_size="0"
|
||||
follows="left|right|bottom"
|
||||
height="25"
|
||||
layout="topleft"
|
||||
orientation="horizontal"
|
||||
top_pad="0"
|
||||
left="10"
|
||||
name="bottom_panel"
|
||||
width="307">
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
height="25"
|
||||
layout="topleft"
|
||||
name="options_gear_btn_panel"
|
||||
width="32">
|
||||
<menu_button
|
||||
follows="bottom|left"
|
||||
tool_tip="Show additional options"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Left_Over"
|
||||
image_overlay="OptionsMenu_Off"
|
||||
image_selected="Toolbar_Left_Selected"
|
||||
image_unselected="Toolbar_Left_Off"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="options_gear_btn"
|
||||
top="0"
|
||||
width="31" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
height="25"
|
||||
layout="topleft"
|
||||
name="add_btn_panel"
|
||||
width="32">
|
||||
<button
|
||||
follows="bottom|left"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="AddItem_Off"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="add_btn"
|
||||
tool_tip="Add new item"
|
||||
top="0"
|
||||
width="31" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="true"
|
||||
height="25"
|
||||
layout="topleft"
|
||||
name="dummy_panel"
|
||||
width="212">
|
||||
<icon
|
||||
follows="bottom|left|right"
|
||||
height="25"
|
||||
image_name="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0"
|
||||
name="dummy_icon"
|
||||
width="211" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
height="25"
|
||||
layout="topleft"
|
||||
name="trash_btn_panel"
|
||||
width="31">
|
||||
<dnd_button
|
||||
follows="bottom|left"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Right_Over"
|
||||
image_overlay="TrashItem_Off"
|
||||
image_selected="Toolbar_Right_Selected"
|
||||
image_unselected="Toolbar_Right_Off"
|
||||
left="0"
|
||||
layout="topleft"
|
||||
name="trash_btn"
|
||||
tool_tip="Remove selected item"
|
||||
top="0"
|
||||
width="31"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
min_height="350"
|
||||
min_width="240"
|
||||
name="objects panel"
|
||||
width="333">
|
||||
width="358">
|
||||
<panel
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
height="570"
|
||||
visible="true"
|
||||
default_tab_group="1"
|
||||
width="330">
|
||||
width="355">
|
||||
<layout_stack
|
||||
follows="left|right|top|bottom"
|
||||
layout="topleft"
|
||||
|
|
@ -27,15 +27,15 @@
|
|||
tab_group="1"
|
||||
orientation="vertical"
|
||||
name="inventory_layout_stack"
|
||||
height="535"
|
||||
width="330">
|
||||
height="565"
|
||||
width="355">
|
||||
<layout_panel
|
||||
name="main_inventory_layout_panel"
|
||||
layout="topleft"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
min_dim="150"
|
||||
width="330"
|
||||
width="355"
|
||||
follows="bottom|left|right"
|
||||
height="300">
|
||||
<panel
|
||||
|
|
@ -48,10 +48,10 @@
|
|||
top="0"
|
||||
label=""
|
||||
height="300"
|
||||
width="330" />
|
||||
width="355" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
width="330"
|
||||
width="355"
|
||||
layout="topleft"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
|
|
@ -133,117 +133,6 @@ Purchases from the marketplace will be delivered here.
|
|||
</panel>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<panel follows="bottom|left|right"
|
||||
height="30"
|
||||
layout="topleft"
|
||||
name="button_panel"
|
||||
left="9"
|
||||
top_pad="7"
|
||||
width="308">
|
||||
<layout_stack follows="bottom|left|right"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
mouse_opaque="false"
|
||||
name="button_panel_ls"
|
||||
left="0"
|
||||
orientation="horizontal"
|
||||
top="0"
|
||||
width="308">
|
||||
<layout_panel follows="bottom|left|right"
|
||||
height="23"
|
||||
layout="bottomleft"
|
||||
left="0"
|
||||
mouse_opaque="false"
|
||||
name="info_btn_lp"
|
||||
auto_resize="true"
|
||||
width="101">
|
||||
<button enabled="true"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Profile"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="info_btn"
|
||||
tool_tip="Show object profile"
|
||||
top="0"
|
||||
width="100" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
layout="bottomleft"
|
||||
left_pad="1"
|
||||
mouse_opaque="false"
|
||||
name="share_btn_lp"
|
||||
auto_resize="true"
|
||||
width="100">
|
||||
<button
|
||||
enabled="true"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Share"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="share_btn"
|
||||
tool_tip="Share an inventory item"
|
||||
top="0"
|
||||
width="99" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
layout="bottomleft"
|
||||
left_pad="1"
|
||||
mouse_opaque="false"
|
||||
name="shop_btn_lp"
|
||||
auto_resize="true"
|
||||
width="100">
|
||||
<button
|
||||
enabled="true"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Shop"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="shop_btn"
|
||||
tool_tip="Open Marketplace webpage"
|
||||
top="0"
|
||||
width="99" />
|
||||
<button
|
||||
enabled="false"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Wear"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="wear_btn"
|
||||
tool_tip="Wear seleceted outfit"
|
||||
top="0"
|
||||
width="99" />
|
||||
<button
|
||||
enabled="false"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Play"
|
||||
layout="topleft"
|
||||
name="play_btn"
|
||||
left="1"
|
||||
top="0"
|
||||
width="99" />
|
||||
<button
|
||||
enabled="false"
|
||||
follows="bottom|left|right"
|
||||
height="23"
|
||||
label="Teleport"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="teleport_btn"
|
||||
tool_tip="Teleport to the selected area"
|
||||
top="0"
|
||||
width="99" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel
|
||||
follows="all"
|
||||
|
|
|
|||
Loading…
Reference in New Issue