Automated merge with ssh://hg.lindenlab.com/tulla/avatar-pipeline-2-0

--HG--
branch : avatar-pipeline
meow-7.2.2
Brad Payne (Vir Linden) 2009-11-25 13:40:48 -05:00
commit 2be386826f
4 changed files with 38 additions and 15 deletions

View File

@ -49,6 +49,9 @@
#include "llgesturemgr.h"
#include "llappearancemgr.h"
#include "lltexlayer.h"
#include "llsidetray.h"
#include "llpaneloutfitsinventory.h"
#include "llfolderview.h"
#include <boost/scoped_ptr.hpp>
@ -1295,6 +1298,33 @@ void LLAgentWearables::makeNewOutfit(const std::string& new_folder_name,
}
}
class LLAutoRenameFolder: public LLInventoryCallback
{
public:
LLAutoRenameFolder(LLUUID& folder_id):
mFolderID(folder_id)
{
}
virtual ~LLAutoRenameFolder()
{
LLSD key;
LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
LLPanelOutfitsInventory *outfit_panel =
dynamic_cast<LLPanelOutfitsInventory*>(LLSideTray::getInstance()->getPanel("panel_outfits_inventory"));
outfit_panel->getRootFolder()->clearSelection();
outfit_panel->getRootFolder()->setSelectionByID(mFolderID, TRUE);
outfit_panel->getRootFolder()->setNeedsAutoRename(TRUE);
}
virtual void fire(const LLUUID&)
{
}
private:
LLUUID mFolderID;
};
LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
{
if (mAvatarObject.isNull())
@ -1309,17 +1339,9 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
LLFolderType::FT_OUTFIT,
new_folder_name);
LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, NULL);
LLPointer<LLInventoryCallback> cb = new LLAutoRenameFolder(folder_id);
LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, cb);
#if 0 // BAP - fix to go into rename state automatically after outfit is created.
LLViewerInventoryCategory *parent_category = gInventory.getCategory(parent_id);
if (parent_category)
{
parent_category->setSelectionByID(folder_id,TRUE);
parent_category->setNeedsAutoRename(TRUE);
}
#endif
return folder_id;
}

View File

@ -2385,6 +2385,8 @@ void LLFolderBridge::folderOptionsMenu()
if (is_sidepanel)
{
mItems.clear();
mItems.push_back("Rename");
mItems.push_back("Delete");
}
// Only enable calling-card related options for non-default folders.

View File

@ -144,16 +144,13 @@ void LLPanelOutfitsInventory::onNew()
{
const std::string& outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT);
LLUUID outfit_folder = gAgentWearables.makeNewOutfitLinks(outfit_name);
getRootFolder()->setSelectionByID(outfit_folder, TRUE);
getRootFolder()->setNeedsAutoRename(TRUE);
}
void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
{
updateListCommands();
updateParent();
if (getRootFolder()->needsAutoRename())
if (getRootFolder()->needsAutoRename() && items.size())
{
getRootFolder()->startRenamingSelectedItem();
getRootFolder()->setNeedsAutoRename(FALSE);

View File

@ -65,10 +65,12 @@ public:
// Otherwise, return NULL.
LLFolderViewEventListener* getCorrectListenerForAction();
void setParent(LLSidepanelAppearance *parent);
LLFolderView* getRootFolder();
protected:
void updateParent();
bool getIsCorrectType(const LLFolderViewEventListener *listenerp) const;
LLFolderView* getRootFolder();
private:
LLSidepanelAppearance* mParent;