EXP-1862 : Make LLClipboard an LLSingleton and clean up the internals (set up for toolbar and never used)

master
Merov Linden 2012-02-01 19:09:29 -08:00
parent 3249a1ced0
commit c1636911c8
14 changed files with 44 additions and 40 deletions

View File

@ -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, "");
}

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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()

View File

@ -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;

View File

@ -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());
}
}

View File

@ -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()

View File

@ -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);
}
}

View File

@ -302,6 +302,6 @@ void LLPanelWearing::copyToClipboard()
}
}
gClipboard.copyFromString(utf8str_to_wstring(text));
LLClipboard::getInstance()->copyFromString(utf8str_to_wstring(text));
}
// EOF

View File

@ -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;

View File

@ -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;
};

View File

@ -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;

View File

@ -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 );
}