EXT-2763 : Right-click on inventory doesn't bring up context menu
Also did some minor cleanup on header files. --HG-- branch : avatar-pipelinemeow-7.2.2
parent
fc1860bcc6
commit
2b54c8a084
|
|
@ -44,6 +44,7 @@
|
|||
#include "llkeyboard.h"
|
||||
#include "lllineeditor.h"
|
||||
#include "llmenugl.h"
|
||||
#include "llpanel.h"
|
||||
#include "llpreview.h"
|
||||
#include "llscrollcontainer.h" // hack to allow scrolling
|
||||
#include "lltooldraganddrop.h"
|
||||
|
|
@ -2014,12 +2015,13 @@ static LLFastTimer::DeclareTimer FTM_INVENTORY("Inventory");
|
|||
// Main idle routine
|
||||
void LLFolderView::doIdle()
|
||||
{
|
||||
// Don't do anything until the inventory is loaded up.
|
||||
// Don't do anything until the inventory is usable and loaded up.
|
||||
// Seraph: Change this to calling mParentPanel->isViewsInitialized
|
||||
if (!gInventory.isInventoryUsable())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
LLFastTimer t2(FTM_INVENTORY);
|
||||
|
||||
BOOL debug_filters = gSavedSettings.getBOOL("DebugInventoryFilters");
|
||||
|
|
|
|||
|
|
@ -41,25 +41,27 @@
|
|||
#ifndef LL_LLFOLDERVIEW_H
|
||||
#define LL_LLFOLDERVIEW_H
|
||||
|
||||
// JAMESDEBUG - trim this list
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <deque>
|
||||
#include <boost/function.hpp>
|
||||
#include <boost/signals2.hpp>
|
||||
#include "llfolderviewitem.h" // because LLFolderView is-a LLFolderViewFolder
|
||||
|
||||
#include "lluictrl.h"
|
||||
#include "v4color.h"
|
||||
#include "lldarray.h"
|
||||
//#include "llviewermenu.h"
|
||||
#include "stdenums.h"
|
||||
#include "llfontgl.h"
|
||||
#include "lleditmenuhandler.h"
|
||||
#include "llviewertexture.h"
|
||||
#include "lldepthstack.h"
|
||||
#include "lleditmenuhandler.h"
|
||||
#include "llfontgl.h"
|
||||
#include "lltooldraganddrop.h"
|
||||
// JAMESDEBUG - move this up
|
||||
#include "llfolderviewitem.h" // because LLFolderView is-a LLFolderViewFolder
|
||||
#include "llviewertexture.h"
|
||||
|
||||
class LLFolderViewEventListener;
|
||||
class LLFolderViewFolder;
|
||||
class LLFolderViewItem;
|
||||
class LLInventoryModel;
|
||||
class LLPanel;
|
||||
class LLLineEditor;
|
||||
class LLMenuGL;
|
||||
class LLScrollContainer;
|
||||
class LLUICtrl;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Class LLFolderViewFunctor
|
||||
|
|
@ -70,8 +72,7 @@
|
|||
// that later when it's determined to be too slow.
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LLFolderViewItem;
|
||||
class LLFolderViewFolder;
|
||||
|
||||
|
||||
class LLFolderViewFunctor
|
||||
{
|
||||
|
|
@ -89,13 +90,6 @@ public:
|
|||
// manages the screen region of the folder view.
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LLFolderViewEventListener;
|
||||
class LLInventoryModel;
|
||||
class LLLineEditor;
|
||||
class LLMenuGL;
|
||||
class LLScrollContainer;
|
||||
class LLUICtrl;
|
||||
|
||||
class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler
|
||||
{
|
||||
public:
|
||||
|
|
@ -330,7 +324,7 @@ protected:
|
|||
|
||||
LLUUID mSelectThisID; // if non null, select this item
|
||||
|
||||
LLPanel* mParentPanel;
|
||||
LLPanel* mParentPanel;
|
||||
|
||||
/**
|
||||
* Is used to determine if we need to cut text In LLFolderViewItem to avoid horizontal scroll.
|
||||
|
|
|
|||
|
|
@ -38,12 +38,12 @@
|
|||
#include "llfoldervieweventlistener.h"
|
||||
#include "llinventorybridge.h" // for LLItemBridge in LLInventorySort::operator()
|
||||
#include "llinventoryfilter.h"
|
||||
#include "llpanel.h"
|
||||
#include "llviewercontrol.h" // gSavedSettings
|
||||
#include "llviewerwindow.h" // Argh, only for setCursor()
|
||||
|
||||
// linden library includes
|
||||
#include "llfocusmgr.h" // gFocusMgr
|
||||
#include "llpanel.h" // panel->hasFocus()
|
||||
#include "lltrans.h"
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
|
|||
mSortOrderSetting(p.sort_order_setting),
|
||||
mInventory(p.inventory),
|
||||
mAllowMultiSelect(p.allow_multi_select),
|
||||
mHasInventoryConnection(false),
|
||||
mViewsInitialized(false),
|
||||
mStartFolderString(p.start_folder),
|
||||
mBuildDefaultHierarchy(true),
|
||||
mInvFVBridgeBuilder(NULL)
|
||||
|
|
@ -151,11 +151,9 @@ BOOL LLInventoryPanel::postBuild()
|
|||
mInventory->addObserver(mInventoryObserver);
|
||||
|
||||
// build view of inventory if we need default full hierarchy and inventory ready, otherwise wait for modelChanged() callback
|
||||
if (mBuildDefaultHierarchy && mInventory->isInventoryUsable() && !mHasInventoryConnection)
|
||||
if (mBuildDefaultHierarchy && mInventory->isInventoryUsable() && !mViewsInitialized)
|
||||
{
|
||||
generateViews();
|
||||
mHasInventoryConnection = true;
|
||||
defaultOpenInventory();
|
||||
initializeViews();
|
||||
}
|
||||
|
||||
if (mSortOrderSetting != INHERIT_SORT_ORDER)
|
||||
|
|
@ -258,11 +256,9 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||
bool handled = false;
|
||||
|
||||
// inventory just initialized, do complete build
|
||||
if ((mask & LLInventoryObserver::ADD) && mInventory->isInventoryUsable() && gInventory.getChangedIDs().empty() && !mHasInventoryConnection)
|
||||
if ((mask & LLInventoryObserver::ADD) && mInventory->isInventoryUsable() && gInventory.getChangedIDs().empty() && !mViewsInitialized)
|
||||
{
|
||||
generateViews();
|
||||
mHasInventoryConnection = true;
|
||||
defaultOpenInventory();
|
||||
initializeViews();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -372,11 +368,10 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||
}
|
||||
|
||||
|
||||
void LLInventoryPanel::generateViews()
|
||||
void LLInventoryPanel::initializeViews()
|
||||
{
|
||||
|
||||
// Blow away the entire previous UI tree.
|
||||
mFolders->getRoot()->destroyView();
|
||||
if (!gInventory.isInventoryUsable())
|
||||
return;
|
||||
|
||||
// Determine the root folder in case specified, and
|
||||
// build the views starting with that folder.
|
||||
|
|
@ -392,6 +387,9 @@ void LLInventoryPanel::generateViews()
|
|||
}
|
||||
llinfos << this << " Generating views for start folder " << mStartFolderString << llendl;
|
||||
rebuildViewsFor(mStartFolderID);
|
||||
|
||||
mViewsInitialized = true;
|
||||
defaultOpenInventory();
|
||||
}
|
||||
|
||||
void LLInventoryPanel::rebuildViewsFor(const LLUUID& id)
|
||||
|
|
@ -426,10 +424,6 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)
|
|||
return;
|
||||
}
|
||||
|
||||
if (objectp->getName() == "My Inventory")
|
||||
{
|
||||
llinfos << this << " Adding MyInventory for start folder " << mStartFolderString << llendl;
|
||||
}
|
||||
if (objectp->getType() <= LLAssetType::AT_NONE ||
|
||||
objectp->getType() >= LLAssetType::AT_COUNT)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -161,9 +161,6 @@ public:
|
|||
void unSelectAll() { mFolders->setSelection(NULL, FALSE, FALSE); }
|
||||
|
||||
private:
|
||||
// Destroys the old views, and regenerates them based on the
|
||||
// start folder ID.
|
||||
void generateViews();
|
||||
|
||||
// Given the id and the parent, build all of the folder views.
|
||||
void rebuildViewsFor(const LLUUID& id);
|
||||
|
|
@ -176,25 +173,8 @@ protected:
|
|||
BOOL mAllowMultiSelect;
|
||||
std::string mSortOrderSetting;
|
||||
|
||||
//private: // Can not make these private - needed by llinventorysubtreepanel
|
||||
LLFolderView* mFolders;
|
||||
std::string mStartFolderString;
|
||||
|
||||
/**
|
||||
* Contains UUID of Inventory item from which hierarchy should be built.
|
||||
* Can be set with the "start_folder" xml property.
|
||||
* Default is LLUUID::null that means total Inventory hierarchy.
|
||||
*/
|
||||
LLUUID mStartFolderID;
|
||||
LLScrollContainer* mScroller;
|
||||
bool mHasInventoryConnection;
|
||||
|
||||
/**
|
||||
* Flag specified if default inventory hierarchy should be created in postBuild()
|
||||
*/
|
||||
bool mBuildDefaultHierarchy;
|
||||
|
||||
LLUUID mRootInventoryItemUUID;
|
||||
|
||||
/**
|
||||
* Pointer to LLInventoryFVBridgeBuilder.
|
||||
|
|
@ -205,6 +185,21 @@ protected:
|
|||
*/
|
||||
const LLInventoryFVBridgeBuilder* mInvFVBridgeBuilder;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Initialization routines for building up the UI ("views")
|
||||
//--------------------------------------------------------------------
|
||||
public:
|
||||
BOOL getIsViewsInitialized() const { return mViewsInitialized; }
|
||||
private:
|
||||
// Builds the UI. Call this once the inventory is usable.
|
||||
void initializeViews();
|
||||
BOOL mBuildDefaultHierarchy; // default inventory hierarchy should be created in postBuild()
|
||||
BOOL mViewsInitialized; // Views have been generated
|
||||
|
||||
// UUID of category from which hierarchy should be built. Set with the
|
||||
// "start_folder" xml property. Default is LLUUID::null that means total Inventory hierarchy.
|
||||
std::string mStartFolderString;
|
||||
LLUUID mStartFolderID;
|
||||
};
|
||||
|
||||
#endif // LL_LLINVENTORYPANEL_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue