summaryrefslogtreecommitdiff
path: root/indra/newview/llviewertexteditor.cpp
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2008-02-07 17:15:18 +0000
committerJosh Bell <josh@lindenlab.com>2008-02-07 17:15:18 +0000
commit8bd6a0b3217ea5614d2a29195e528aa8314f6342 (patch)
treebe5cee5be0678bb03c7174bab9296cfc530d0102 /indra/newview/llviewertexteditor.cpp
parent3314f78a3673c1250e47722848c60d017dafac97 (diff)
svn merge -r 79445:79449 svn+ssh://svn.lindenlab.com/svn/linden/qa/maintenance-5-merge-79386
QAR-242 merge of maintenance-5 (QAR-203) * DEV-6548 Copy To Inventory fail to execute without any output feedback when Notecard has changes but not saved * DEV-7600 Deleting someone else's object in god mode crashes sim * DEV-5329 LLSD parsers should determine and set maximum parse sizes * DEV-7473 Resolve instant message crash report * DEV-2904 Presence Issues not (apparently) caused by scripted attachments * DEV-7083 Investigate Null Folder IDs Bug that caused 470K inventory items with Null Folder IDS on the Grid * DEV-2865 Textures/Snapshots in a notecard are opened again when you click copy to inventory. * DEV-6612 VWR-3290: Linux scons build script doesn't work with distcc * DEV-8002 c++ llsd notation parser accepts malformed data * DEV-8001 c++ xml parse returns wrong number of elements parsed * DEV-8089 Double delete in statc structured data parse functions * DEV-5326 Any viewer can request presence information for any agent * DEV-2378 python service builder does not sort query string * DEV-7872 Block teleport off teen grid sub-estates like Schome Park / Open University * DEV-4465 Add a "logfile" command line option to the sim to create log files
Diffstat (limited to 'indra/newview/llviewertexteditor.cpp')
-rw-r--r--indra/newview/llviewertexteditor.cpp58
1 files changed, 40 insertions, 18 deletions
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index bd488577e3..871fc9702e 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -942,7 +942,13 @@ BOOL LLViewerTextEditor::handleMouseUp(S32 x, S32 y, MASK mask)
S32 dy = y - mMouseDownY;
if (-2 < dx && dx < 2 && -2 < dy && dy < 2)
{
- openEmbeddedItem(mDragItem, mDragItemSaved);
+ if(mDragItemSaved)
+ {
+ openEmbeddedItem(mDragItem);
+ }else
+ {
+ showUnsavedAlertDialog(mDragItem);
+ }
}
}
mDragItem = NULL;
@@ -1311,15 +1317,23 @@ BOOL LLViewerTextEditor::openEmbeddedItemAtPos(S32 pos)
if( item )
{
BOOL saved = LLEmbeddedItems::getEmbeddedItemSaved( mWText[pos] );
- return openEmbeddedItem(item, saved);
+ if (saved)
+ {
+ return openEmbeddedItem(item);
+ }
+ else
+ {
+ showUnsavedAlertDialog(item);
+ }
}
}
return FALSE;
}
-BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item, BOOL saved)
+BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item)
{
+
switch( item->getType() )
{
case LLAssetType::AT_TEXTURE:
@@ -1329,15 +1343,15 @@ BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item, BOOL saved)
case LLAssetType::AT_SOUND:
openEmbeddedSound( item );
return TRUE;
-
+
case LLAssetType::AT_NOTECARD:
- openEmbeddedNotecard( item, saved );
+ openEmbeddedNotecard( item );
return TRUE;
case LLAssetType::AT_LANDMARK:
openEmbeddedLandmark( item );
return TRUE;
-
+
case LLAssetType::AT_LSL_TEXT:
case LLAssetType::AT_CLOTHING:
case LLAssetType::AT_OBJECT:
@@ -1345,10 +1359,11 @@ BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item, BOOL saved)
case LLAssetType::AT_ANIMATION:
case LLAssetType::AT_GESTURE:
showCopyToInvDialog( item );
- return TRUE;
+ return TRUE;
default:
return FALSE;
}
+
}
@@ -1401,23 +1416,30 @@ void LLViewerTextEditor::openEmbeddedLandmark( LLInventoryItem* item )
open_landmark((LLViewerInventoryItem*)item, title, FALSE, item->getUUID(), TRUE);
}
-void LLViewerTextEditor::openEmbeddedNotecard( LLInventoryItem* item, BOOL saved )
+void LLViewerTextEditor::openEmbeddedNotecard( LLInventoryItem* item )
{
- if (saved)
- {
+ //if (saved)
+ //{
// An LLInventoryItem needs to be in an inventory to be opened.
// This will give the item to the viewer's agent.
// The callback will attempt to open it if its not already opened.
- copyInventory(item, gInventoryCallbacks.registerCB(mInventoryCallback));
- }
- else
- {
- LLNotecardCopyInfo *info = new LLNotecardCopyInfo(this, item);
- gViewerWindow->alertXml("ConfirmNotecardSave",
- LLViewerTextEditor::onNotecardDialog, (void*)info);
- }
+ copyInventory(item, gInventoryCallbacks.registerCB(mInventoryCallback));
+
+ //}
+ //else
+ //{
+ // LLNotecardCopyInfo *info = new LLNotecardCopyInfo(this, item);
+ // gViewerWindow->alertXml("ConfirmNotecardSave",
+ // LLViewerTextEditor::onNotecardDialog, (void*)info);
+ //}
}
+void LLViewerTextEditor::showUnsavedAlertDialog( LLInventoryItem* item )
+{
+ LLNotecardCopyInfo *info = new LLNotecardCopyInfo(this, item);
+ gViewerWindow->alertXml( "ConfirmNotecardSave",
+ LLViewerTextEditor::onNotecardDialog, (void*)info);
+}
// static
void LLViewerTextEditor::onNotecardDialog( S32 option, void* userdata )
{