CHUI-101 WIP Make LLFolderView general purpose
removed hacks for object inventory folderview
parent
6781eb101b
commit
db316f830d
|
|
@ -176,6 +176,7 @@ LLFolderView::Params::Params()
|
|||
show_load_status("show_load_status", true),
|
||||
use_ellipses("use_ellipses", false)
|
||||
{
|
||||
folder_indentation = -4;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -224,10 +225,7 @@ LLFolderView::LLFolderView(const Params& p)
|
|||
mAutoOpenCandidate = NULL;
|
||||
mAutoOpenTimer.stop();
|
||||
mKeyboardSelection = FALSE;
|
||||
const LLFolderViewItem::Params& item_params =
|
||||
LLUICtrlFactory::getDefaultParams<LLFolderViewItem>();
|
||||
S32 indentation = item_params.folder_indentation();
|
||||
mIndentation = -indentation; // children start at indentation 0
|
||||
mIndentation = p.folder_indentation;
|
||||
gIdleCallbacks.addFunction(idle, this);
|
||||
|
||||
//clear label
|
||||
|
|
@ -235,7 +233,6 @@ LLFolderView::LLFolderView(const Params& p)
|
|||
// just make sure the label ("Inventory Folder") never shows up
|
||||
mLabel = LLStringUtil::null;
|
||||
|
||||
//mRenamer->setWriteableBgColor(LLColor4::white);
|
||||
// Escape is handled by reverting the rename, not commiting it (default behavior)
|
||||
LLLineEditor::Params params;
|
||||
params.name("ren");
|
||||
|
|
@ -1921,20 +1918,10 @@ BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
|||
|
||||
// when drop is not handled by child, it should be handled
|
||||
// by the folder which is the hierarchy root.
|
||||
if (!handled)
|
||||
if (!handled
|
||||
&& getListener()->getUUID().notNull())
|
||||
{
|
||||
if (getListener()->getUUID().notNull())
|
||||
{
|
||||
handled = LLFolderViewFolder::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!mFolders.empty())
|
||||
{
|
||||
// dispatch to last folder as a hack to support "Contents" folder in object inventory
|
||||
handled = mFolders.back()->handleDragAndDropFromChild(mask,drop,cargo_type,cargo_data,accept,tooltip_msg);
|
||||
}
|
||||
}
|
||||
handled = LLFolderViewFolder::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
|
||||
}
|
||||
|
||||
if (handled)
|
||||
|
|
|
|||
|
|
@ -187,14 +187,6 @@ public:
|
|||
// public rename functionality - can only start the process
|
||||
void startRenamingSelectedItem( void );
|
||||
|
||||
// These functions were used when there was only one folderview,
|
||||
// and relied on that concept. This functionality is now handled
|
||||
// by the listeners and the lldraganddroptool.
|
||||
//LLFolderViewItem* getMovingItem() { return mMovingItem; }
|
||||
//void setMovingItem( LLFolderViewItem* item ) { mMovingItem = item; }
|
||||
//void dragItemIntoFolder( LLFolderViewItem* moving_item, LLFolderViewFolder* dst_folder, BOOL drop, BOOL* accept );
|
||||
//void dragFolderIntoFolder( LLFolderViewFolder* moving_folder, LLFolderViewFolder* dst_folder, BOOL drop, BOOL* accept );
|
||||
|
||||
// LLView functionality
|
||||
///*virtual*/ BOOL handleKey( KEY key, MASK mask, BOOL called_from_parent );
|
||||
/*virtual*/ BOOL handleKeyHere( KEY key, MASK mask );
|
||||
|
|
|
|||
|
|
@ -417,9 +417,8 @@ S32 LLFolderViewItem::arrange( S32* width, S32* height, S32 filter_generation)
|
|||
const Params& p = LLUICtrlFactory::getDefaultParams<LLFolderViewItem>();
|
||||
S32 indentation = p.folder_indentation();
|
||||
// Only indent deeper items in hierarchy
|
||||
mIndentation = (getParentFolder()
|
||||
&& getParentFolder()->getParentFolder() )
|
||||
? mParentFolder->getIndentation() + indentation
|
||||
mIndentation = (getParentFolder())
|
||||
? getParentFolder()->getIndentation() + indentation
|
||||
: 0;
|
||||
if (mLabelWidthDirty)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -738,15 +738,7 @@ const std::string& LLTaskCategoryBridge::getDisplayName() const
|
|||
|
||||
if (cat)
|
||||
{
|
||||
// Localize "Contents" folder.
|
||||
if (cat->getParentUUID().isNull() && cat->getName() == "Contents")
|
||||
{
|
||||
mDisplayName.assign(LLTrans::getString("ViewerObjectContents"));
|
||||
}
|
||||
else
|
||||
{
|
||||
mDisplayName.assign(cat->getName());
|
||||
}
|
||||
mDisplayName.assign(cat->getName());
|
||||
}
|
||||
|
||||
return mDisplayName;
|
||||
|
|
@ -1552,6 +1544,7 @@ void LLPanelObjectInventory::reset()
|
|||
p.parent_panel = this;
|
||||
p.tool_tip= LLTrans::getString("PanelContentsTooltip");
|
||||
p.listener = LLTaskInvFVBridge::createObjectBridge(this, NULL);
|
||||
p.folder_indentation = -14; // subtract space normally reserved for folder expanders
|
||||
mFolders = LLUICtrlFactory::create<LLFolderView>(p);
|
||||
// this ensures that we never say "searching..." or "no items found"
|
||||
mFolders->getFilter()->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS);
|
||||
|
|
@ -1630,10 +1623,11 @@ void LLPanelObjectInventory::updateInventory()
|
|||
LLInventoryObject* inventory_root = objectp->getInventoryRoot();
|
||||
LLInventoryObject::object_list_t contents;
|
||||
objectp->getInventoryContents(contents);
|
||||
if (inventory_root)
|
||||
mHaveInventory = TRUE;
|
||||
|
||||
if (inventory_root && !contents.empty())
|
||||
{
|
||||
createFolderViews(inventory_root, contents);
|
||||
mHaveInventory = TRUE;
|
||||
mIsInventoryEmpty = FALSE;
|
||||
mFolders->setEnabled(TRUE);
|
||||
}
|
||||
|
|
@ -1641,7 +1635,6 @@ void LLPanelObjectInventory::updateInventory()
|
|||
{
|
||||
// TODO: create an empty inventory
|
||||
mIsInventoryEmpty = TRUE;
|
||||
mHaveInventory = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1693,19 +1686,19 @@ void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root
|
|||
bridge = LLTaskInvFVBridge::createObjectBridge(this, inventory_root);
|
||||
if(bridge)
|
||||
{
|
||||
LLFolderViewFolder* new_folder = NULL;
|
||||
LLFolderViewFolder::Params p;
|
||||
p.name = inventory_root->getName();
|
||||
p.icon = LLUI::getUIImage("Inv_FolderClosed");
|
||||
p.icon_open = LLUI::getUIImage("Inv_FolderOpen");
|
||||
p.root = mFolders;
|
||||
p.listener = bridge;
|
||||
p.tool_tip = p.name;
|
||||
new_folder = LLUICtrlFactory::create<LLFolderViewFolder>(p);
|
||||
new_folder->addToFolder(mFolders, mFolders);
|
||||
new_folder->toggleOpen();
|
||||
//LLFolderViewFolder* new_folder = NULL;
|
||||
//LLFolderViewFolder::Params p;
|
||||
//p.name = inventory_root->getName();
|
||||
//p.icon = LLUI::getUIImage("Inv_FolderClosed");
|
||||
//p.icon_open = LLUI::getUIImage("Inv_FolderOpen");
|
||||
//p.root = mFolders;
|
||||
//p.listener = bridge;
|
||||
//p.tool_tip = p.name;
|
||||
//new_folder = LLUICtrlFactory::create<LLFolderViewFolder>(p);
|
||||
//new_folder->addToFolder(mFolders, mFolders);
|
||||
//new_folder->toggleOpen();
|
||||
|
||||
createViewsForCategory(&contents, inventory_root, new_folder);
|
||||
createViewsForCategory(&contents, inventory_root, mFolders);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue