Redo start_folder to be like upstream has it now
start_folder in xmls must now be start_folder.name
This reverts commit 1405a7c103.
This commit is contained in:
@@ -32,7 +32,7 @@ LFFloaterInvPanel::LFFloaterInvPanel(const LLUUID& cat_id, LLInventoryModel* mod
|
|||||||
mCommitCallbackRegistrar.add("InvPanel.Search", boost::bind(&LLInventoryPanel::setFilterSubString, boost::ref(mPanel), _2));
|
mCommitCallbackRegistrar.add("InvPanel.Search", boost::bind(&LLInventoryPanel::setFilterSubString, boost::ref(mPanel), _2));
|
||||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_inv_panel.xml");
|
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_inv_panel.xml");
|
||||||
LLPanel* panel = getChild<LLPanel>("placeholder_panel");
|
LLPanel* panel = getChild<LLPanel>("placeholder_panel");
|
||||||
mPanel = new LLInventoryPanel("inv_panel", LLInventoryPanel::DEFAULT_SORT_ORDER, cat_id.asString(), panel->getRect(), model, true);
|
mPanel = new LLInventoryPanel("inv_panel", LLInventoryPanel::DEFAULT_SORT_ORDER, LLSD().with("id", cat_id), panel->getRect(), model, true);
|
||||||
mPanel->postBuild();
|
mPanel->postBuild();
|
||||||
mPanel->setFollows(FOLLOWS_ALL);
|
mPanel->setFollows(FOLLOWS_ALL);
|
||||||
mPanel->setEnabled(true);
|
mPanel->setEnabled(true);
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ void LLInvPanelComplObserver::done()
|
|||||||
|
|
||||||
LLInventoryPanel::LLInventoryPanel(const std::string& name,
|
LLInventoryPanel::LLInventoryPanel(const std::string& name,
|
||||||
const std::string& sort_order_setting,
|
const std::string& sort_order_setting,
|
||||||
const std::string& start_folder,
|
const LLSD& start_folder,
|
||||||
const LLRect& rect,
|
const LLRect& rect,
|
||||||
LLInventoryModel* inventory,
|
LLInventoryModel* inventory,
|
||||||
BOOL allow_multi_select,
|
BOOL allow_multi_select,
|
||||||
@@ -159,32 +159,12 @@ LLInventoryPanel::LLInventoryPanel(const std::string& name,
|
|||||||
setBackgroundOpaque(TRUE);
|
setBackgroundOpaque(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
LLUUID getStartFolder(const std::string& start_folder)
|
|
||||||
{
|
|
||||||
if ("LIBRARY" == start_folder)
|
|
||||||
return gInventory.getLibraryRootFolderID();
|
|
||||||
const LLFolderType::EType preferred_type = LLViewerFolderType::lookupTypeFromNewCategoryName(start_folder);
|
|
||||||
|
|
||||||
return (preferred_type != LLFolderType::FT_NONE)
|
|
||||||
? gInventory.findCategoryUUIDForType(preferred_type, false)
|
|
||||||
: gInventory.getCategory(static_cast<LLUUID>(start_folder)) ? static_cast<LLUUID>(start_folder) // Singu Note: if start folder is an id of a folder, use it
|
|
||||||
: LLUUID::null;
|
|
||||||
}
|
|
||||||
|
|
||||||
void LLInventoryPanel::buildFolderView()
|
void LLInventoryPanel::buildFolderView()
|
||||||
{
|
{
|
||||||
// Determine the root folder in case specified, and
|
// Determine the root folder in case specified, and
|
||||||
// build the views starting with that folder.
|
// build the views starting with that folder.
|
||||||
|
LLUUID root_id = getRootFolderID();
|
||||||
//std::string start_folder_name(params.start_folder());
|
mStartFolder["id"] = root_id; // Cache this, so we don't waste time on future getRootFolderID calls
|
||||||
|
|
||||||
LLUUID root_id = getStartFolder(mStartFolder);
|
|
||||||
|
|
||||||
if ((root_id == LLUUID::null) && !mStartFolder.empty())
|
|
||||||
{
|
|
||||||
LL_WARNS() << "No category found that matches start_folder: " << mStartFolder << LL_ENDL;
|
|
||||||
root_id = LLUUID::generateNewID();
|
|
||||||
}
|
|
||||||
|
|
||||||
LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(LLAssetType::AT_CATEGORY,
|
LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(LLAssetType::AT_CATEGORY,
|
||||||
(mUseMarketplaceFolders/*mParams.use_marketplace_folders*/ ? LLAssetType::AT_MARKETPLACE_FOLDER : LLAssetType::AT_CATEGORY),
|
(mUseMarketplaceFolders/*mParams.use_marketplace_folders*/ ? LLAssetType::AT_MARKETPLACE_FOLDER : LLAssetType::AT_CATEGORY),
|
||||||
@@ -343,8 +323,14 @@ LLView* LLInventoryPanel::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
|
|||||||
std::string sort_order(INHERIT_SORT_ORDER);
|
std::string sort_order(INHERIT_SORT_ORDER);
|
||||||
node->getAttributeString("sort_order", sort_order);
|
node->getAttributeString("sort_order", sort_order);
|
||||||
|
|
||||||
std::string start_folder;
|
LLSD start_folder;
|
||||||
node->getAttributeString("start_folder", start_folder);
|
std::string start;
|
||||||
|
if (node->getAttributeString("start_folder.name", start))
|
||||||
|
start_folder["name"] = start;
|
||||||
|
if (node->getAttributeString("start_folder.id", start))
|
||||||
|
start_folder["id"] = LLUUID(start);
|
||||||
|
if (node->getAttributeString("start_folder.type", start))
|
||||||
|
start_folder["type"] = start;
|
||||||
|
|
||||||
if(name == "Recent Items")
|
if(name == "Recent Items")
|
||||||
panel = new LLInventoryRecentItemsPanel(name, sort_order, start_folder,
|
panel = new LLInventoryRecentItemsPanel(name, sort_order, start_folder,
|
||||||
@@ -707,11 +693,32 @@ const LLUUID LLInventoryPanel::getRootFolderID() const
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
root_id = getStartFolder(mStartFolder);
|
if (mStartFolder.has("id"))
|
||||||
if (root_id.isNull())
|
|
||||||
{
|
{
|
||||||
LL_WARNS() << "Could not find folder of type " << mStartFolder << LL_ENDL;
|
root_id = mStartFolder["id"];
|
||||||
root_id.generateNewID();
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LLStringExplicit label(mStartFolder["name"]);
|
||||||
|
const LLFolderType::EType preferred_type = mStartFolder.has("type")
|
||||||
|
? LLFolderType::lookup(mStartFolder["type"])
|
||||||
|
: LLViewerFolderType::lookupTypeFromNewCategoryName(label);
|
||||||
|
|
||||||
|
if ("LIBRARY" == label)
|
||||||
|
{
|
||||||
|
root_id = gInventory.getLibraryRootFolderID();
|
||||||
|
}
|
||||||
|
else if (preferred_type != LLFolderType::FT_NONE)
|
||||||
|
{
|
||||||
|
//setLabel(label);
|
||||||
|
|
||||||
|
root_id = gInventory.findCategoryUUIDForType(preferred_type, false);
|
||||||
|
if (root_id.isNull())
|
||||||
|
{
|
||||||
|
LL_WARNS() << "Could not find folder for " << mStartFolder << LL_ENDL;
|
||||||
|
root_id.generateNewID();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return root_id;
|
return root_id;
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ protected:
|
|||||||
friend class LFFloaterInvPanel;
|
friend class LFFloaterInvPanel;
|
||||||
LLInventoryPanel(const std::string& name,
|
LLInventoryPanel(const std::string& name,
|
||||||
const std::string& sort_order_setting,
|
const std::string& sort_order_setting,
|
||||||
const std::string& start_folder,
|
const LLSD& start_folder,
|
||||||
const LLRect& rect,
|
const LLRect& rect,
|
||||||
LLInventoryModel* inventory,
|
LLInventoryModel* inventory,
|
||||||
BOOL allow_multi_select,
|
BOOL allow_multi_select,
|
||||||
@@ -236,7 +236,7 @@ public:
|
|||||||
void requestSort();
|
void requestSort();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::string mStartFolder;
|
LLSD mStartFolder;
|
||||||
bool mShowRootFolder;
|
bool mShowRootFolder;
|
||||||
bool mAllowDropOnRoot;
|
bool mAllowDropOnRoot;
|
||||||
bool mAllowWear;
|
bool mAllowWear;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<floater name="floater_inventory_favs.xml" title="Favorites" width="250" height="400" min_width="100" min_height="100" rect_control="FloaterFavoritesRect" can_close="true" can_minimize="true" can_resize="true">
|
<floater name="floater_inventory_favs.xml" title="Favorites" width="250" height="400" min_width="100" min_height="100" rect_control="FloaterFavoritesRect" can_close="true" can_minimize="true" can_resize="true">
|
||||||
<inventory_panel name="inventory_favs" start_folder="Favorites" follows="all" left="5" right="-5" top="-20" bottom="5" show_item_link_overlays="true"/>
|
<inventory_panel name="inventory_favs" start_folder.name="Favorites" follows="all" left="5" right="-5" top="-20" bottom="5" show_item_link_overlays="true"/>
|
||||||
</floater>
|
</floater>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<floater name="floater_my_outfits.xml" title="My Outfits" width="250" height="400" min_width="100" min_height="100" rect_control="FloaterMyOutfitsRect" can_close="true" can_minimize="true" can_resize="true">
|
<floater name="floater_my_outfits.xml" title="My Outfits" width="250" height="400" min_width="100" min_height="100" rect_control="FloaterMyOutfitsRect" can_close="true" can_minimize="true" can_resize="true">
|
||||||
<inventory_panel name="my_outfits" start_folder="My Outfits" follows="all" left="5" right="-5" top="-20" bottom="5" show_item_link_overlays="true"/>
|
<inventory_panel name="my_outfits" start_folder.name="My Outfits" follows="all" left="5" right="-5" top="-20" bottom="5" show_item_link_overlays="true"/>
|
||||||
</floater>
|
</floater>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
height="370"
|
height="370"
|
||||||
top="16"
|
top="16"
|
||||||
left="0"
|
left="0"
|
||||||
start_folder="Marketplace listings"
|
start_folder.name="Marketplace listings"
|
||||||
show_empty_message="true"
|
show_empty_message="true"
|
||||||
show_root_folder="false"
|
show_root_folder="false"
|
||||||
use_marketplace_folders="true"
|
use_marketplace_folders="true"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
width="308"
|
width="308"
|
||||||
height="370"
|
height="370"
|
||||||
left_delta="0"
|
left_delta="0"
|
||||||
start_folder="Marketplace listings"
|
start_folder.name="Marketplace listings"
|
||||||
show_empty_message="true"
|
show_empty_message="true"
|
||||||
show_root_folder="false"
|
show_root_folder="false"
|
||||||
use_marketplace_folders="true"
|
use_marketplace_folders="true"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
width="308"
|
width="308"
|
||||||
height="370"
|
height="370"
|
||||||
left_delta="0"
|
left_delta="0"
|
||||||
start_folder="Marketplace listings"
|
start_folder.name="Marketplace listings"
|
||||||
show_empty_message="true"
|
show_empty_message="true"
|
||||||
show_root_folder="false"
|
show_root_folder="false"
|
||||||
use_marketplace_folders="true"
|
use_marketplace_folders="true"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
width="308"
|
width="308"
|
||||||
height="370"
|
height="370"
|
||||||
left_delta="0"
|
left_delta="0"
|
||||||
start_folder="Marketplace listings"
|
start_folder.name="Marketplace listings"
|
||||||
show_empty_message="true"
|
show_empty_message="true"
|
||||||
show_root_folder="false"
|
show_root_folder="false"
|
||||||
use_marketplace_folders="true"
|
use_marketplace_folders="true"
|
||||||
|
|||||||
Reference in New Issue
Block a user