EXP-1862 : Make LLClipboard an LLSingleton and clean up the internals (set up for toolbar and never used)
parent
3249a1ced0
commit
c1636911c8
|
|
@ -40,7 +40,6 @@ LLClipboard gClipboard;
|
|||
|
||||
LLClipboard::LLClipboard()
|
||||
{
|
||||
mSourceItem = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -135,8 +134,3 @@ BOOL LLClipboard::canPastePrimaryString() const
|
|||
{
|
||||
return LLView::getWindow()->isPrimaryTextAvailable();
|
||||
}
|
||||
|
||||
void LLClipboard::setSourceObject(const LLUUID& source_id, LLAssetType::EType type)
|
||||
{
|
||||
mSourceItem = new LLInventoryObject (source_id, LLUUID::null, type, "");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@
|
|||
#include "llstring.h"
|
||||
#include "lluuid.h"
|
||||
#include "stdenums.h"
|
||||
#include "llsingleton.h"
|
||||
#include "llinventory.h"
|
||||
|
||||
|
||||
class LLClipboard
|
||||
class LLClipboard : public LLSingleton<LLClipboard>
|
||||
{
|
||||
public:
|
||||
LLClipboard();
|
||||
|
|
@ -54,19 +54,12 @@ public:
|
|||
BOOL canPastePrimaryString() const;
|
||||
const LLWString& getPastePrimaryWString(LLUUID* source_id = NULL);
|
||||
|
||||
// Support clipboard for object known only by their uuid and asset type
|
||||
void setSourceObject(const LLUUID& source_id, LLAssetType::EType type);
|
||||
const LLInventoryObject* getSourceObject() { return mSourceItem; }
|
||||
// Support clipboard for object known only by their uuid
|
||||
void setSourceObject(const LLUUID& source_id) { mSourceID = source_id; }
|
||||
|
||||
private:
|
||||
LLUUID mSourceID;
|
||||
LLWString mString;
|
||||
LLInventoryObject* mSourceItem;
|
||||
};
|
||||
|
||||
|
||||
// Global singleton
|
||||
extern LLClipboard gClipboard;
|
||||
|
||||
|
||||
#endif // LL_LLCLIPBOARD_H
|
||||
|
|
|
|||
|
|
@ -1047,7 +1047,7 @@ void LLLineEditor::cut()
|
|||
// Prepare for possible rollback
|
||||
LLLineEditorRollback rollback( this );
|
||||
|
||||
gClipboard.copyFromSubstring( mText.getWString(), left_pos, length );
|
||||
LLClipboard::getInstance()->copyFromSubstring( mText.getWString(), left_pos, length );
|
||||
deleteSelection();
|
||||
|
||||
// Validate new string and rollback the if needed.
|
||||
|
|
@ -1078,13 +1078,13 @@ void LLLineEditor::copy()
|
|||
{
|
||||
S32 left_pos = llmin( mSelectionStart, mSelectionEnd );
|
||||
S32 length = llabs( mSelectionStart - mSelectionEnd );
|
||||
gClipboard.copyFromSubstring( mText.getWString(), left_pos, length );
|
||||
LLClipboard::getInstance()->copyFromSubstring( mText.getWString(), left_pos, length );
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLLineEditor::canPaste() const
|
||||
{
|
||||
return !mReadOnly && gClipboard.canPasteString();
|
||||
return !mReadOnly && LLClipboard::getInstance()->canPasteString();
|
||||
}
|
||||
|
||||
void LLLineEditor::paste()
|
||||
|
|
@ -1117,11 +1117,11 @@ void LLLineEditor::pasteHelper(bool is_primary)
|
|||
LLWString paste;
|
||||
if (is_primary)
|
||||
{
|
||||
paste = gClipboard.getPastePrimaryWString();
|
||||
paste = LLClipboard::getInstance()->getPastePrimaryWString();
|
||||
}
|
||||
else
|
||||
{
|
||||
paste = gClipboard.getPasteWString();
|
||||
paste = LLClipboard::getInstance()->getPasteWString();
|
||||
}
|
||||
|
||||
if (!paste.empty())
|
||||
|
|
@ -1209,13 +1209,13 @@ void LLLineEditor::copyPrimary()
|
|||
{
|
||||
S32 left_pos = llmin( mSelectionStart, mSelectionEnd );
|
||||
S32 length = llabs( mSelectionStart - mSelectionEnd );
|
||||
gClipboard.copyFromPrimarySubstring( mText.getWString(), left_pos, length );
|
||||
LLClipboard::getInstance()->copyFromPrimarySubstring( mText.getWString(), left_pos, length );
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLLineEditor::canPastePrimary() const
|
||||
{
|
||||
return !mReadOnly && gClipboard.canPastePrimaryString();
|
||||
return !mReadOnly && LLClipboard::getInstance()->canPastePrimaryString();
|
||||
}
|
||||
|
||||
void LLLineEditor::updatePrimary()
|
||||
|
|
|
|||
|
|
@ -2504,7 +2504,7 @@ void LLScrollListCtrl::copy()
|
|||
{
|
||||
buffer += (*itor)->getContentsCSV() + "\n";
|
||||
}
|
||||
gClipboard.copyFromSubstring(utf8str_to_wstring(buffer), 0, buffer.length());
|
||||
LLClipboard::getInstance()->copyFromSubstring(utf8str_to_wstring(buffer), 0, buffer.length());
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
|
|||
|
|
@ -1332,7 +1332,7 @@ void LLTextEditor::cut()
|
|||
}
|
||||
S32 left_pos = llmin( mSelectionStart, mSelectionEnd );
|
||||
S32 length = llabs( mSelectionStart - mSelectionEnd );
|
||||
gClipboard.copyFromSubstring( getWText(), left_pos, length, mSourceID );
|
||||
LLClipboard::getInstance()->copyFromSubstring( getWText(), left_pos, length, mSourceID );
|
||||
deleteSelection( FALSE );
|
||||
|
||||
onKeyStroke();
|
||||
|
|
@ -1352,12 +1352,12 @@ void LLTextEditor::copy()
|
|||
}
|
||||
S32 left_pos = llmin( mSelectionStart, mSelectionEnd );
|
||||
S32 length = llabs( mSelectionStart - mSelectionEnd );
|
||||
gClipboard.copyFromSubstring(getWText(), left_pos, length, mSourceID);
|
||||
LLClipboard::getInstance()->copyFromSubstring(getWText(), left_pos, length, mSourceID);
|
||||
}
|
||||
|
||||
BOOL LLTextEditor::canPaste() const
|
||||
{
|
||||
return !mReadOnly && gClipboard.canPasteString();
|
||||
return !mReadOnly && LLClipboard::getInstance()->canPasteString();
|
||||
}
|
||||
|
||||
// paste from clipboard
|
||||
|
|
@ -1397,11 +1397,11 @@ void LLTextEditor::pasteHelper(bool is_primary)
|
|||
LLWString paste;
|
||||
if (is_primary)
|
||||
{
|
||||
paste = gClipboard.getPastePrimaryWString(&source_id);
|
||||
paste = LLClipboard::getInstance()->getPastePrimaryWString(&source_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
paste = gClipboard.getPasteWString(&source_id);
|
||||
paste = LLClipboard::getInstance()->getPasteWString(&source_id);
|
||||
}
|
||||
|
||||
if (paste.empty())
|
||||
|
|
@ -1475,12 +1475,12 @@ void LLTextEditor::copyPrimary()
|
|||
}
|
||||
S32 left_pos = llmin( mSelectionStart, mSelectionEnd );
|
||||
S32 length = llabs( mSelectionStart - mSelectionEnd );
|
||||
gClipboard.copyFromPrimarySubstring(getWText(), left_pos, length, mSourceID);
|
||||
LLClipboard::getInstance()->copyFromPrimarySubstring(getWText(), left_pos, length, mSourceID);
|
||||
}
|
||||
|
||||
BOOL LLTextEditor::canPastePrimary() const
|
||||
{
|
||||
return !mReadOnly && gClipboard.canPastePrimaryString();
|
||||
return !mReadOnly && LLClipboard::getInstance()->canPastePrimaryString();
|
||||
}
|
||||
|
||||
void LLTextEditor::updatePrimary()
|
||||
|
|
|
|||
|
|
@ -1118,7 +1118,7 @@ BOOL LLFavoritesBarCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
|||
}
|
||||
void copy_slurl_to_clipboard_cb(std::string& slurl)
|
||||
{
|
||||
gClipboard.copyFromString(utf8str_to_wstring(slurl));
|
||||
LLClipboard::getInstance()->copyFromString(utf8str_to_wstring(slurl));
|
||||
|
||||
LLSD args;
|
||||
args["SLURL"] = slurl;
|
||||
|
|
|
|||
|
|
@ -534,7 +534,7 @@ void LLFloaterGesture::onCopyPasteAction(const LLSD& command)
|
|||
}
|
||||
else if ("copy_uuid" == command_name)
|
||||
{
|
||||
gClipboard.copyFromString(utf8str_to_wstring(mGestureList->getCurrentID().asString()), mGestureList->getCurrentID());
|
||||
LLClipboard::getInstance()->copyFromString(utf8str_to_wstring(mGestureList->getCurrentID().asString()), mGestureList->getCurrentID());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@ void LLTeleportHistoryPanel::ContextMenu::onInfo()
|
|||
//static
|
||||
void LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback(const std::string& slurl)
|
||||
{
|
||||
gClipboard.copyFromString(utf8str_to_wstring(slurl));
|
||||
LLClipboard::getInstance()->copyFromString(utf8str_to_wstring(slurl));
|
||||
}
|
||||
|
||||
void LLTeleportHistoryPanel::ContextMenu::onCopyToClipboard()
|
||||
|
|
|
|||
|
|
@ -467,7 +467,7 @@ void LLPanelTopInfoBar::onContextMenuItemClicked(const LLSD::String& item)
|
|||
LLAgentUI::buildSLURL(slurl, false);
|
||||
LLUIString location_str(slurl.getSLURLString());
|
||||
|
||||
gClipboard.copyFromString(location_str);
|
||||
LLClipboard::getInstance()->copyFromString(location_str);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -302,6 +302,6 @@ void LLPanelWearing::copyToClipboard()
|
|||
}
|
||||
}
|
||||
|
||||
gClipboard.copyFromString(utf8str_to_wstring(text));
|
||||
LLClipboard::getInstance()->copyFromString(utf8str_to_wstring(text));
|
||||
}
|
||||
// EOF
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ LLToolBarView::LLToolBarView(const LLToolBarView::Params& p)
|
|||
mDragStarted(false),
|
||||
mShowToolbars(true),
|
||||
mDragToolbarButton(NULL),
|
||||
mDragItem(NULL),
|
||||
mToolbarsLoaded(false)
|
||||
{
|
||||
for (S32 i = 0; i < TOOLBAR_COUNT; i++)
|
||||
|
|
@ -579,7 +580,7 @@ BOOL LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp
|
|||
uuid_vec_t cargo_ids;
|
||||
types.push_back(DAD_WIDGET);
|
||||
cargo_ids.push_back(uuid);
|
||||
gClipboard.setSourceObject(uuid,LLAssetType::AT_WIDGET);
|
||||
LLClipboard::getInstance()->setSourceObject(uuid);
|
||||
LLToolDragAndDrop::ESource src = LLToolDragAndDrop::SOURCE_VIEWER;
|
||||
LLUUID srcID;
|
||||
LLToolDragAndDrop::getInstance()->beginMultiDrag(types, cargo_ids, src, srcID);
|
||||
|
|
@ -662,6 +663,18 @@ void LLToolBarView::resetDragTool(LLToolBarButton* toolbarButton)
|
|||
gToolBarView->mDragToolbarButton = toolbarButton;
|
||||
}
|
||||
|
||||
// Provide a handle on a free standing inventory item containing references to the tool.
|
||||
// This might be used by Drag and Drop to move around references to tool items.
|
||||
LLInventoryObject* LLToolBarView::getDragItem()
|
||||
{
|
||||
if (mDragToolbarButton)
|
||||
{
|
||||
LLUUID item_uuid = mDragToolbarButton->getCommandId().uuid();
|
||||
mDragItem = new LLInventoryObject (item_uuid, LLUUID::null, LLAssetType::AT_WIDGET, "");
|
||||
}
|
||||
return mDragItem;
|
||||
}
|
||||
|
||||
void LLToolBarView::setToolBarsVisible(bool visible)
|
||||
{
|
||||
mShowToolbars = visible;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "lluictrl.h"
|
||||
#include "lltoolbar.h"
|
||||
#include "llcommandmanager.h"
|
||||
#include "llinventory.h"
|
||||
|
||||
class LLUICtrlFactory;
|
||||
|
||||
|
|
@ -106,6 +107,7 @@ public:
|
|||
static BOOL handleDragTool(S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type);
|
||||
static BOOL handleDropTool(void* cargo_data, S32 x, S32 y, LLToolBar* toolbar);
|
||||
static void resetDragTool(LLToolBarButton* toolbarButton);
|
||||
LLInventoryObject* getDragItem();
|
||||
|
||||
bool isModified() const;
|
||||
|
||||
|
|
@ -129,6 +131,7 @@ private:
|
|||
|
||||
bool mDragStarted;
|
||||
LLToolBarButton* mDragToolbarButton;
|
||||
LLInventoryObject* mDragItem;
|
||||
bool mShowToolbars;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
#include "llpreviewnotecard.h"
|
||||
#include "llrootview.h"
|
||||
#include "llselectmgr.h"
|
||||
#include "lltoolbarview.h"
|
||||
#include "lltoolmgr.h"
|
||||
#include "lltooltip.h"
|
||||
#include "lltrans.h"
|
||||
|
|
@ -2527,7 +2528,7 @@ LLInventoryObject* LLToolDragAndDrop::locateInventory(
|
|||
}
|
||||
else if(mSource == SOURCE_VIEWER)
|
||||
{
|
||||
item = (LLViewerInventoryItem*)gClipboard.getSourceObject();
|
||||
item = (LLViewerInventoryItem*)gToolBarView->getDragItem();
|
||||
}
|
||||
if(item) return item;
|
||||
if(cat) return cat;
|
||||
|
|
|
|||
|
|
@ -89,5 +89,5 @@ void LLURLLineEditor::copyEscapedURLToClipboard()
|
|||
else // human-readable location
|
||||
text_to_copy = utf8str_to_wstring(unescaped_text);
|
||||
|
||||
gClipboard.copyFromString( text_to_copy );
|
||||
LLClipboard::getInstance()->copyFromString( text_to_copy );
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue