Giant VMM merge, still need to compile it and fix llfloatermarketplacelistings

Merge VMM up to change 187902d9c4afd2990acddeb964c928179a52d189

mAllowWear=>mAllowOpen (should probably just remove this altogether though
inventory_panels now accept the "show_root_folder", "allow_drop_on_root", "allow_open", and "use_marketplace_folders" attributes.

Other stuff in this commit:
LLPanelInjector~
Sync lltooldraganddrop to alchemy
Sync notifications up with alchemy
Reorganize notifications some, to better merge with upstream
Remove duplicate InventorySortOrder in settings map
There's a bit of a weird folderview merge mixed into here, I wouldn't trust it, but this thing is so god damn tangled I can't go back now~

Wouldn't have been possible without help from Shyotl and music by Amanda Palmer
This commit is contained in:
Inusaito Sayori
2015-07-30 11:45:19 -04:00
committed by Lirusaito
parent 167d336274
commit f140b4f35c
46 changed files with 3480 additions and 1408 deletions

View File

@@ -33,10 +33,10 @@
#ifndef LL_TOOLDRAGANDDROP_H
#define LL_TOOLDRAGANDDROP_H
#include "lldictionary.h"
#include "lltool.h"
#include "llview.h"
#include "lluuid.h"
#include "stdenums.h"
#include "llassetstorage.h"
#include "llpermissions.h"
#include "llwindow.h"
@@ -50,6 +50,8 @@ class LLPickInfo;
class LLToolDragAndDrop : public LLTool, public LLSingleton<LLToolDragAndDrop>
{
public:
typedef boost::signals2::signal<void ()> enddrag_signal_t;
LLToolDragAndDrop();
// overridden from LLTool
@@ -68,7 +70,9 @@ public:
SOURCE_AGENT,
SOURCE_WORLD,
SOURCE_NOTECARD,
SOURCE_LIBRARY
SOURCE_LIBRARY,
SOURCE_VIEWER,
SOURCE_PEOPLE
};
void beginDrag(EDragAndDropType type,
@@ -86,9 +90,22 @@ public:
const LLUUID& getObjectID() const { return mObjectID; }
EAcceptance getLastAccept() { return mLastAccept; }
uuid_vec_t::size_type getCargoIDsCount() const { return mCargoIDs.size(); }
boost::signals2::connection setEndDragCallback( const enddrag_signal_t::slot_type& cb ) { return mEndDragSignal.connect(cb); }
void setCargoCount(U32 count) { mCargoCount = count; }
void resetCargoCount() { mCargoCount = 0; }
U32 getCargoCount() const { return (mCargoCount > 0) ? mCargoCount : mCargoIDs.size(); }
S32 getCargoIndex() const { return mCurItemIndex; }
static S32 getOperationId() { return sOperationId; }
// deal with permissions of object, etc. returns TRUE if drop can
// proceed, otherwise FALSE.
static BOOL handleDropTextureProtections(LLViewerObject* hit_obj,
LLInventoryItem* item,
LLToolDragAndDrop::ESource source,
const LLUUID& src_id);
protected:
enum EDropTarget
{
@@ -100,6 +117,7 @@ protected:
DT_COUNT = 5
};
protected:
// dragOrDrop3dImpl points to a member of LLToolDragAndDrop that
// takes parameters (LLViewerObject* obj, S32 face, MASK, BOOL
// drop) and returns a BOOL if drop is ok
@@ -110,11 +128,14 @@ protected:
EAcceptance* acceptance);
void dragOrDrop3D(S32 x, S32 y, MASK mask, BOOL drop,
EAcceptance* acceptance);
static void pickCallback(const LLPickInfo& pick_info);
void pick(const LLPickInfo& pick_info);
protected:
U32 mCargoCount;
S32 mDragStartX;
S32 mDragStartY;
@@ -135,6 +156,9 @@ protected:
BOOL mDrop;
S32 mCurItemIndex;
std::string mToolTipMsg;
std::string mCustomMsg;
enddrag_signal_t mEndDragSignal;
protected:
// 3d drop functions. these call down into the static functions
@@ -209,13 +233,6 @@ protected:
// inventory items to determine if a drop would be ok.
static EAcceptance willObjectAcceptInventory(LLViewerObject* obj, LLInventoryItem* item);
// deal with permissions of object, etc. returns TRUE if drop can
// proceed, otherwise FALSE.
static BOOL handleDropTextureProtections(LLViewerObject* hit_obj,
LLInventoryItem* item,
LLToolDragAndDrop::ESource source,
const LLUUID& src_id);
public:
// helper functions
static BOOL isInventoryDropAcceptable(LLViewerObject* obj, LLInventoryItem* item) { return (ACCEPT_YES_COPY_SINGLE <= willObjectAcceptInventory(obj, item)); }
@@ -253,7 +270,8 @@ public:
static bool handleGiveDragAndDrop(LLUUID agent, LLUUID session, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
EAcceptance* accept);
EAcceptance* accept,
const LLSD& dest = LLSD());
// Classes used for determining 3d drag and drop types.
private: