Another port from CoolViewer of the notecard floater, featuring a menu and search/replace.
This commit is contained in:
@@ -231,6 +231,7 @@ set(viewer_SOURCE_FILES
|
||||
llfloaterproperties.cpp
|
||||
llfloaterregioninfo.cpp
|
||||
llfloaterreporter.cpp
|
||||
llfloatersearchreplace.cpp
|
||||
llfloaterscriptdebug.cpp
|
||||
llfloatersellland.cpp
|
||||
llfloatersettingsdebug.cpp
|
||||
@@ -709,6 +710,7 @@ set(viewer_HEADER_FILES
|
||||
llfloaterproperties.h
|
||||
llfloaterregioninfo.h
|
||||
llfloaterreporter.h
|
||||
llfloatersearchreplace.h
|
||||
llfloaterscriptdebug.h
|
||||
llfloatersellland.h
|
||||
llfloatersettingsdebug.h
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
#include "llviewerobject.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "lldbstrings.h"
|
||||
#include "llfloatersearchreplace.h"
|
||||
#include "llpreviewnotecard.h"
|
||||
#include "llpreviewscript.h"
|
||||
#include "llagent.h"
|
||||
#include "llvoavatar.h"
|
||||
#include "llselectmgr.h"
|
||||
@@ -576,6 +579,24 @@ void LLMultiPreview::tabOpen(LLFloater* opened_floater, bool from_click)
|
||||
{
|
||||
opened_preview->loadAsset();
|
||||
}
|
||||
|
||||
LLFloater* search_floater = LLFloaterSearchReplace::getInstance();
|
||||
if (search_floater && search_floater->getDependee() == this)
|
||||
{
|
||||
LLPreviewNotecard* notecard_preview; LLPreviewLSL* script_preview;
|
||||
if ((notecard_preview = dynamic_cast<LLPreviewNotecard*>(opened_preview)) != NULL)
|
||||
{
|
||||
LLFloaterSearchReplace::show(notecard_preview->getEditor());
|
||||
}
|
||||
else if ((script_preview = dynamic_cast<LLPreviewLSL*>(opened_preview)) != NULL)
|
||||
{
|
||||
LLFloaterSearchReplace::show(script_preview->getEditor());
|
||||
}
|
||||
else
|
||||
{
|
||||
search_floater->setVisible(FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
||||
@@ -35,12 +35,14 @@
|
||||
#include "llpreviewnotecard.h"
|
||||
|
||||
#include "llinventory.h"
|
||||
#include "llmenugl.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llassetuploadresponders.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llbutton.h"
|
||||
#include "llfloatersearchreplace.h"
|
||||
#include "llinventorymodel.h"
|
||||
#include "lllineeditor.h"
|
||||
#include "llnotify.h"
|
||||
@@ -111,7 +113,6 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name,
|
||||
else
|
||||
{
|
||||
LLUICtrlFactory::getInstance()->buildFloater(this,"floater_preview_notecard.xml");
|
||||
childSetAction("Save",onClickSave,this);
|
||||
// <edit>
|
||||
childSetAction("Get Items", onClickGetItems, this);
|
||||
// </edit>
|
||||
@@ -125,6 +126,7 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name,
|
||||
}
|
||||
}
|
||||
}
|
||||
childSetAction("Save",onClickSave,this);
|
||||
|
||||
// only assert shape if not hosted in a multifloater
|
||||
if (!getHost())
|
||||
@@ -153,6 +155,8 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name,
|
||||
editor->setHandleEditKeysDirectly(TRUE);
|
||||
}
|
||||
|
||||
initMenu();
|
||||
|
||||
gAgentCamera.changeCameraToDefault();
|
||||
}
|
||||
|
||||
@@ -222,6 +226,12 @@ BOOL LLPreviewNotecard::handleKeyHere(KEY key, MASK mask)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if ('F' == key && (mask & MASK_CONTROL) && !(mask & (MASK_SHIFT | MASK_ALT)))
|
||||
{
|
||||
LLFloaterSearchReplace::show(getChild<LLViewerTextEditor>("Notecard Editor"));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return LLPreview::handleKeyHere(key, mask);
|
||||
}
|
||||
|
||||
@@ -775,4 +785,221 @@ LLTextEditor* LLPreviewNotecard::getEditor()
|
||||
return getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
}
|
||||
|
||||
void LLPreviewNotecard::initMenu()
|
||||
{
|
||||
LLMenuItemCallGL* menuItem = getChild<LLMenuItemCallGL>("Undo");
|
||||
menuItem->setMenuCallback(onUndoMenu, this);
|
||||
menuItem->setEnabledCallback(enableUndoMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Redo");
|
||||
menuItem->setMenuCallback(onRedoMenu, this);
|
||||
menuItem->setEnabledCallback(enableRedoMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Cut");
|
||||
menuItem->setMenuCallback(onCutMenu, this);
|
||||
menuItem->setEnabledCallback(enableCutMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Copy");
|
||||
menuItem->setMenuCallback(onCopyMenu, this);
|
||||
menuItem->setEnabledCallback(enableCopyMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Paste");
|
||||
menuItem->setMenuCallback(onPasteMenu, this);
|
||||
menuItem->setEnabledCallback(enablePasteMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Select All");
|
||||
menuItem->setMenuCallback(onSelectAllMenu, this);
|
||||
menuItem->setEnabledCallback(enableSelectAllMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Deselect");
|
||||
menuItem->setMenuCallback(onDeselectMenu, this);
|
||||
menuItem->setEnabledCallback(enableDeselectMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Search / Replace...");
|
||||
menuItem->setMenuCallback(onSearchMenu, this);
|
||||
menuItem->setEnabledCallback(NULL);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onSearchMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
LLFloaterSearchReplace::show(editor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onUndoMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->undo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onRedoMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->redo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onCutMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->cut();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onCopyMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->copy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onPasteMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->paste();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onSelectAllMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->selectAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPreviewNotecard::onDeselectMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (self)
|
||||
{
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (editor)
|
||||
{
|
||||
editor->deselect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enableUndoMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canUndo();
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enableRedoMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canRedo();
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enableCutMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canCut();
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enableCopyMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canCopy();
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enablePasteMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canPaste();
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enableSelectAllMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canSelectAll();
|
||||
}
|
||||
|
||||
// static
|
||||
BOOL LLPreviewNotecard::enableDeselectMenu(void* userdata)
|
||||
{
|
||||
LLPreviewNotecard* self = (LLPreviewNotecard*)userdata;
|
||||
if (!self) return FALSE;
|
||||
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("Notecard Editor");
|
||||
if (!editor) return FALSE;
|
||||
return editor->canDeselect();
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
|
||||
class LLTextEditor;
|
||||
class LLViewerTextEditor;
|
||||
class LLTextEditor;
|
||||
class LLMenuBarGL;
|
||||
class LLButton;
|
||||
class AIFilePicker;
|
||||
|
||||
@@ -117,6 +119,25 @@ protected:
|
||||
|
||||
virtual const char *getTitleName() const { return "Note"; }
|
||||
|
||||
void initMenu();
|
||||
|
||||
static void onSearchMenu(void* userdata);
|
||||
static void onUndoMenu(void* userdata);
|
||||
static void onRedoMenu(void* userdata);
|
||||
static void onCutMenu(void* userdata);
|
||||
static void onCopyMenu(void* userdata);
|
||||
static void onPasteMenu(void* userdata);
|
||||
static void onSelectAllMenu(void* userdata);
|
||||
static void onDeselectMenu(void* userdata);
|
||||
|
||||
static BOOL enableUndoMenu(void* userdata);
|
||||
static BOOL enableRedoMenu(void* userdata);
|
||||
static BOOL enableCutMenu(void* userdata);
|
||||
static BOOL enableCopyMenu(void* userdata);
|
||||
static BOOL enablePasteMenu(void* userdata);
|
||||
static BOOL enableSelectAllMenu(void* userdata);
|
||||
static BOOL enableDeselectMenu(void* userdata);
|
||||
|
||||
protected:
|
||||
LLViewerTextEditor* mEditor;
|
||||
LLButton* mSaveBtn;
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
#include "lldir.h"
|
||||
#include "llcombobox.h"
|
||||
//#include "llfloaterchat.h"
|
||||
#include "llfloatersearchreplace.h"
|
||||
#include "llviewerstats.h"
|
||||
#include "llviewertexteditor.h"
|
||||
#include "llviewerwindow.h"
|
||||
@@ -134,10 +135,6 @@ const S32 SCRIPT_MIN_HEIGHT =
|
||||
|
||||
const S32 MAX_EXPORT_SIZE = 1000;
|
||||
|
||||
const S32 SCRIPT_SEARCH_WIDTH = 300;
|
||||
const S32 SCRIPT_SEARCH_HEIGHT = 120;
|
||||
const S32 SCRIPT_SEARCH_LABEL_WIDTH = 50;
|
||||
const S32 SCRIPT_SEARCH_BUTTON_WIDTH = 80;
|
||||
const S32 TEXT_EDIT_COLUMN_HEIGHT = 16;
|
||||
const S32 MAX_HISTORY_COUNT = 10;
|
||||
const F32 LIVE_HELP_REFRESH_TIME = 1.f;
|
||||
@@ -148,148 +145,6 @@ static bool have_script_upload_cap(LLUUID& object_id)
|
||||
return object && (! object->getRegion()->getCapability("UpdateScriptTask").empty());
|
||||
}
|
||||
|
||||
/// ---------------------------------------------------------------------------
|
||||
/// LLFloaterScriptSearch
|
||||
/// ---------------------------------------------------------------------------
|
||||
class LLFloaterScriptSearch : public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterScriptSearch(std::string title, LLRect rect, LLScriptEdCore* editor_core);
|
||||
~LLFloaterScriptSearch();
|
||||
|
||||
static void show(LLScriptEdCore* editor_core);
|
||||
static void onBtnSearch(void* userdata);
|
||||
void handleBtnSearch();
|
||||
|
||||
static void onBtnReplace(void* userdata);
|
||||
void handleBtnReplace();
|
||||
|
||||
static void onBtnReplaceAll(void* userdata);
|
||||
void handleBtnReplaceAll();
|
||||
|
||||
LLScriptEdCore* getEditorCore() { return mEditorCore; }
|
||||
static LLFloaterScriptSearch* getInstance() { return sInstance; }
|
||||
|
||||
void open(); /*Flawfinder: ignore*/
|
||||
|
||||
private:
|
||||
|
||||
LLScriptEdCore* mEditorCore;
|
||||
|
||||
static LLFloaterScriptSearch* sInstance;
|
||||
};
|
||||
|
||||
LLFloaterScriptSearch* LLFloaterScriptSearch::sInstance = NULL;
|
||||
|
||||
LLFloaterScriptSearch::LLFloaterScriptSearch(std::string title, LLRect rect, LLScriptEdCore* editor_core)
|
||||
: LLFloater("script search",rect,title), mEditorCore(editor_core)
|
||||
{
|
||||
|
||||
LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_search.xml");
|
||||
|
||||
childSetAction("search_btn", onBtnSearch,this);
|
||||
childSetAction("replace_btn", onBtnReplace,this);
|
||||
childSetAction("replace_all_btn", onBtnReplaceAll,this);
|
||||
|
||||
setDefaultBtn("search_btn");
|
||||
|
||||
if (!getHost())
|
||||
{
|
||||
LLRect curRect = getRect();
|
||||
translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop);
|
||||
}
|
||||
|
||||
sInstance = this;
|
||||
|
||||
childSetFocus("search_text", TRUE);
|
||||
|
||||
// find floater in which script panel is embedded
|
||||
LLView* viewp = (LLView*)editor_core;
|
||||
while(viewp)
|
||||
{
|
||||
LLFloater* floaterp = dynamic_cast<LLFloater*>(viewp);
|
||||
if (floaterp)
|
||||
{
|
||||
floaterp->addDependentFloater(this);
|
||||
break;
|
||||
}
|
||||
viewp = viewp->getParent();
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLFloaterScriptSearch::show(LLScriptEdCore* editor_core)
|
||||
{
|
||||
if (sInstance && sInstance->mEditorCore && sInstance->mEditorCore != editor_core)
|
||||
{
|
||||
sInstance->close();
|
||||
delete sInstance;
|
||||
}
|
||||
|
||||
if (!sInstance)
|
||||
{
|
||||
S32 left = 0;
|
||||
S32 top = 0;
|
||||
gFloaterView->getNewFloaterPosition(&left,&top);
|
||||
|
||||
// sInstance will be assigned in the constructor.
|
||||
new LLFloaterScriptSearch("Script Search",LLRect(left,top,left + SCRIPT_SEARCH_WIDTH,top - SCRIPT_SEARCH_HEIGHT),editor_core);
|
||||
}
|
||||
|
||||
sInstance->open(); /*Flawfinder: ignore*/
|
||||
}
|
||||
|
||||
LLFloaterScriptSearch::~LLFloaterScriptSearch()
|
||||
{
|
||||
sInstance = NULL;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterScriptSearch::onBtnSearch(void *userdata)
|
||||
{
|
||||
LLFloaterScriptSearch* self = (LLFloaterScriptSearch*)userdata;
|
||||
self->handleBtnSearch();
|
||||
}
|
||||
|
||||
void LLFloaterScriptSearch::handleBtnSearch()
|
||||
{
|
||||
LLCheckBoxCtrl* caseChk = getChild<LLCheckBoxCtrl>("case_text");
|
||||
mEditorCore->mEditor->selectNext(childGetText("search_text"), caseChk->get());
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterScriptSearch::onBtnReplace(void *userdata)
|
||||
{
|
||||
LLFloaterScriptSearch* self = (LLFloaterScriptSearch*)userdata;
|
||||
self->handleBtnReplace();
|
||||
}
|
||||
|
||||
void LLFloaterScriptSearch::handleBtnReplace()
|
||||
{
|
||||
LLCheckBoxCtrl* caseChk = getChild<LLCheckBoxCtrl>("case_text");
|
||||
mEditorCore->mEditor->replaceText(childGetText("search_text"), childGetText("replace_text"), caseChk->get());
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterScriptSearch::onBtnReplaceAll(void *userdata)
|
||||
{
|
||||
LLFloaterScriptSearch* self = (LLFloaterScriptSearch*)userdata;
|
||||
self->handleBtnReplaceAll();
|
||||
}
|
||||
|
||||
void LLFloaterScriptSearch::handleBtnReplaceAll()
|
||||
{
|
||||
LLCheckBoxCtrl* caseChk = getChild<LLCheckBoxCtrl>("case_text");
|
||||
mEditorCore->mEditor->replaceTextAll(childGetText("search_text"), childGetText("replace_text"), caseChk->get());
|
||||
}
|
||||
|
||||
void LLFloaterScriptSearch::open() /*Flawfinder: ignore*/
|
||||
{
|
||||
LLFloater::open(); /*Flawfinder: ignore*/
|
||||
childSetFocus("search_text", TRUE);
|
||||
}
|
||||
|
||||
|
||||
/// ---------------------------------------------------------------------------
|
||||
/// LLScriptEdCore
|
||||
/// ---------------------------------------------------------------------------
|
||||
@@ -433,14 +288,6 @@ LLScriptEdCore::LLScriptEdCore(
|
||||
LLScriptEdCore::~LLScriptEdCore()
|
||||
{
|
||||
deleteBridges();
|
||||
|
||||
// If the search window is up for this editor, close it.
|
||||
LLFloaterScriptSearch* script_search = LLFloaterScriptSearch::getInstance();
|
||||
if (script_search && script_search->getEditorCore() == this)
|
||||
{
|
||||
script_search->close();
|
||||
delete script_search;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLScriptEdCore::tick()
|
||||
@@ -484,6 +331,10 @@ void LLScriptEdCore::initMenu()
|
||||
menuItem->setMenuCallback(onSelectAllMenu, this);
|
||||
menuItem->setEnabledCallback(enableSelectAllMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Deselect");
|
||||
menuItem->setMenuCallback(onDeselectMenu, this);
|
||||
menuItem->setEnabledCallback(enableDeselectMenu);
|
||||
|
||||
menuItem = getChild<LLMenuItemCallGL>("Search / Replace...");
|
||||
menuItem->setMenuCallback(onSearchMenu, this);
|
||||
menuItem->setEnabledCallback(NULL);
|
||||
@@ -931,7 +782,10 @@ void LLScriptEdCore::onBtnUndoChanges( void* userdata )
|
||||
void LLScriptEdCore::onSearchMenu(void* userdata)
|
||||
{
|
||||
LLScriptEdCore* sec = (LLScriptEdCore*)userdata;
|
||||
LLFloaterScriptSearch::show(sec);
|
||||
if (sec && sec->mEditor)
|
||||
{
|
||||
LLFloaterSearchReplace::show(sec->mEditor);
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -1339,7 +1193,10 @@ void LLPreviewLSL::onSearchReplace(void* userdata)
|
||||
{
|
||||
LLPreviewLSL* self = (LLPreviewLSL*)userdata;
|
||||
LLScriptEdCore* sec = self->mScriptEd;
|
||||
LLFloaterScriptSearch::show(sec);
|
||||
if (sec && sec->mEditor)
|
||||
{
|
||||
LLFloaterSearchReplace::show(sec->mEditor);
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -2193,7 +2050,10 @@ void LLLiveLSLEditor::onSearchReplace(void* userdata)
|
||||
LLLiveLSLEditor* self = (LLLiveLSLEditor*)userdata;
|
||||
|
||||
LLScriptEdCore* sec = self->mScriptEd;
|
||||
LLFloaterScriptSearch::show(sec);
|
||||
if (sec && sec->mEditor)
|
||||
{
|
||||
LLFloaterSearchReplace::show(sec->mEditor);
|
||||
}
|
||||
}
|
||||
|
||||
struct LLLiveLSLSaveData
|
||||
|
||||
@@ -51,7 +51,6 @@ class LLScrollListCtrl;
|
||||
class LLViewerObject;
|
||||
struct LLEntryAndEdCore;
|
||||
class LLMenuBarGL;
|
||||
class LLFloaterScriptSearch;
|
||||
class LLKeywordToken;
|
||||
class AIFilePicker;
|
||||
|
||||
@@ -61,7 +60,6 @@ class LLScriptEdCore : public LLPanel, public LLEventTimer
|
||||
friend class LLPreviewScript;
|
||||
friend class LLPreviewLSL;
|
||||
friend class LLLiveLSLEditor;
|
||||
friend class LLFloaterScriptSearch;
|
||||
|
||||
public:
|
||||
LLScriptEdCore(
|
||||
@@ -204,6 +202,7 @@ protected:
|
||||
static void onSaveBytecodeComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status);
|
||||
public:
|
||||
static LLPreviewLSL* getInstance(const LLUUID& uuid);
|
||||
LLTextEditor* getEditor() { return mScriptEd->mEditor; }
|
||||
protected:
|
||||
static void* createScriptEdPanel(void* userdata);
|
||||
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater bottom="-762" can_close="true" can_drag_on_left="false" can_minimize="true"
|
||||
can_resize="true" enabled="true" follows="left|top" height="361" left="273"
|
||||
min_height="243" min_width="234" mouse_opaque="true"
|
||||
can_resize="true" enabled="true" follows="left|top" height="377" left="273"
|
||||
min_height="259" min_width="234" mouse_opaque="true"
|
||||
name="preview notecard" title="Note:" width="400">
|
||||
<button bottom="-352" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Save" label_selected="Save" left="9"
|
||||
mouse_opaque="false" name="Save" scale_image="true" width="100" />
|
||||
<button bottom="-352" enabled="true" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Get Items" label_selected="Get Items" left_delta="110"
|
||||
<button bottom="-370" enabled="true" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Get Items" label_selected="Get Items" left_delta="120"
|
||||
mouse_opaque="false" name="Get Items" scale_image="true" width="100" />
|
||||
<!--<check_box follows="left|bottom" bottom_delta="0" left_delta="110" name="https_chk" label="Saves via HTTPS" />-->
|
||||
<icon bottom="-19" color="1 1 1 1" enabled="true" follows="top|right" height="16"
|
||||
@@ -24,12 +21,44 @@
|
||||
handle_edit_keys_directly="false" height="19" left="93" max_length="127"
|
||||
mouse_opaque="true" name="desc" select_all_on_focus_received="false"
|
||||
select_on_focus="false" width="294" spell_check="true" />
|
||||
<text_editor type="string" length="1" bottom="-327" embedded_items="true" enabled="true"
|
||||
follows="left|top|right|bottom" font="SansSerif" height="281"
|
||||
<menu_bar bottom="-56" drop_shadow="false" enabled="true" follows="left|top|right"
|
||||
height="18" left="8" mouse_opaque="false" name="motecard_menu" opaque="false"
|
||||
tear_off="false" width="220">
|
||||
<menu bottom_delta="16" left="0" drop_shadow="true" enabled="true" height="198" width="150"
|
||||
mouse_opaque="false" name="Edit" opaque="true" tear_off="false">
|
||||
<menu_item_call bottom_delta="-30" enabled="false" height="20" label="Undo" left="0"
|
||||
mouse_opaque="true" name="Undo" width="139" />
|
||||
<menu_item_call bottom_delta="-50" enabled="false" height="20" label="Redo" left="0"
|
||||
mouse_opaque="true" name="Redo" width="139" />
|
||||
<menu_item_separator bottom_delta="-58" enabled="true" height="8" label="-----------" left="0"
|
||||
mouse_opaque="true" name="separator1" width="139" />
|
||||
<menu_item_call bottom_delta="-78" enabled="false" height="20" label="Cut" left="0"
|
||||
mouse_opaque="true" name="Cut" width="139" />
|
||||
<menu_item_call bottom_delta="-98" enabled="false" height="20" label="Copy" left="0"
|
||||
mouse_opaque="true" name="Copy" width="139" />
|
||||
<menu_item_call bottom_delta="-118" enabled="false" height="20" label="Paste" left="0"
|
||||
mouse_opaque="true" name="Paste" width="139" />
|
||||
<menu_item_separator bottom_delta="-126" enabled="true" height="8" label="-----------" left="0"
|
||||
mouse_opaque="true" name="separator2" width="139" />
|
||||
<menu_item_call bottom_delta="-146" enabled="true" height="20" label="Select All" left="0"
|
||||
mouse_opaque="true" name="Select All" width="139" />
|
||||
<menu_item_call bottom_delta="-166" enabled="false" height="20" label="Deselect" left="0"
|
||||
mouse_opaque="true" name="Deselect" width="139" />
|
||||
<menu_item_separator bottom_delta="-174" enabled="true" height="8" label="-----------" left="0"
|
||||
mouse_opaque="true" name="separator3" width="139" />
|
||||
<menu_item_call bottom_delta="-194" enabled="true" height="20" label="Search / Replace..."
|
||||
left="0" mouse_opaque="true" name="Search / Replace..." width="139" />
|
||||
</menu>
|
||||
</menu_bar>
|
||||
<text_editor type="string" length="1" bottom="-344" embedded_items="true" enabled="true"
|
||||
follows="left|top|right|bottom" font="SansSerif" height="285"
|
||||
ignore_tab="false" left="4" max_length="65536" mouse_opaque="true"
|
||||
name="Notecard Editor" width="392" word_wrap="true" spell_check="true">
|
||||
Loading...
|
||||
</text_editor>
|
||||
<button bottom="-370" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Save" label_selected="Save" left="9"
|
||||
mouse_opaque="false" name="Save" scale_image="true" width="100" />
|
||||
<string name="no_object">
|
||||
Unable to find object containing this note.
|
||||
</string>
|
||||
|
||||
@@ -1,35 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater bottom="-484" can_close="true" can_drag_on_left="false" can_minimize="true"
|
||||
can_resize="true" enabled="true" height="400" left="138" min_height="243"
|
||||
min_width="234" mouse_opaque="true" name="preview_notecard" width="400">
|
||||
<text_editor type="string" length="1" bottom="-366"
|
||||
embedded_items="true" enabled="true" follows="left|top|right|bottom"
|
||||
font="SansSerif" height="320" ignore_tab="false" left="4"
|
||||
max_length="65536" mouse_opaque="true" name="Notecard Editor" width="392"
|
||||
word_wrap="true">
|
||||
Loading...
|
||||
</text_editor>
|
||||
<floater bottom="-762" can_close="true" can_drag_on_left="false" can_minimize="true"
|
||||
can_resize="true" enabled="true" follows="left|top" height="377" left="273"
|
||||
min_height="259" min_width="350" mouse_opaque="true"
|
||||
name="preview notecard" title="Note:" width="400">
|
||||
<icon bottom="-19" color="1 1 1 1" enabled="true" follows="top|right" height="16"
|
||||
image_name="icon_lock.tga" left="344" mouse_opaque="true" name="lock"
|
||||
width="16" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-38" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="left" height="19" left="13"
|
||||
mouse_opaque="true" name="desc txt" v_pad="0" width="80">
|
||||
Description:
|
||||
</text>
|
||||
<icon bottom="-19" color="1 1 1 1" enabled="true" follows="top|right" height="16"
|
||||
image_name="icon_lock.tga" left="344" mouse_opaque="true" name="lock"
|
||||
width="16" />
|
||||
<button bottom="-391" enabled="true" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Keep" label_selected="Keep" left="9"
|
||||
mouse_opaque="true" name="Keep" scale_image="true" width="100" />
|
||||
<button bottom="-391" enabled="true" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Discard" label_selected="Discard"
|
||||
left="114" mouse_opaque="true" name="Discard" scale_image="true"
|
||||
width="100" />
|
||||
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-38"
|
||||
enabled="true" follows="left|top|right" font="SansSerif"
|
||||
handle_edit_keys_directly="false" height="19" left="93" max_length="127"
|
||||
mouse_opaque="true" name="desc" select_all_on_focus_received="false"
|
||||
select_on_focus="false" width="294" spell_check="true" />
|
||||
<string name="no_object">Unable to find object containing this note.:</string>
|
||||
<string name="not_allowed">You are not allowed to view this note.</string>
|
||||
<menu_bar bottom="-56" drop_shadow="false" enabled="true" follows="left|top|right"
|
||||
height="18" left="8" mouse_opaque="false" name="motecard_menu" opaque="false"
|
||||
tear_off="false" width="220">
|
||||
<menu bottom_delta="16" left="0" drop_shadow="true" enabled="true" height="198" width="150"
|
||||
mouse_opaque="false" name="Edit" opaque="true" tear_off="false">
|
||||
<menu_item_call bottom_delta="-30" enabled="false" height="20" label="Undo" left="0"
|
||||
mouse_opaque="true" name="Undo" width="139" />
|
||||
<menu_item_call bottom_delta="-50" enabled="false" height="20" label="Redo" left="0"
|
||||
mouse_opaque="true" name="Redo" width="139" />
|
||||
<menu_item_separator bottom_delta="-58" enabled="true" height="8" label="-----------" left="0"
|
||||
mouse_opaque="true" name="separator1" width="139" />
|
||||
<menu_item_call bottom_delta="-78" enabled="false" height="20" label="Cut" left="0"
|
||||
mouse_opaque="true" name="Cut" width="139" />
|
||||
<menu_item_call bottom_delta="-98" enabled="false" height="20" label="Copy" left="0"
|
||||
mouse_opaque="true" name="Copy" width="139" />
|
||||
<menu_item_call bottom_delta="-118" enabled="false" height="20" label="Paste" left="0"
|
||||
mouse_opaque="true" name="Paste" width="139" />
|
||||
<menu_item_separator bottom_delta="-126" enabled="true" height="8" label="-----------" left="0"
|
||||
mouse_opaque="true" name="separator2" width="139" />
|
||||
<menu_item_call bottom_delta="-146" enabled="true" height="20" label="Select All" left="0"
|
||||
mouse_opaque="true" name="Select All" width="139" />
|
||||
<menu_item_call bottom_delta="-166" enabled="false" height="20" label="Deselect" left="0"
|
||||
mouse_opaque="true" name="Deselect" width="139" />
|
||||
<menu_item_separator bottom_delta="-174" enabled="true" height="8" label="-----------" left="0"
|
||||
mouse_opaque="true" name="separator3" width="139" />
|
||||
<menu_item_call bottom_delta="-194" enabled="true" height="20" label="Search / Replace..."
|
||||
left="0" mouse_opaque="true" name="Search / Replace..." width="139" />
|
||||
</menu>
|
||||
</menu_bar>
|
||||
<text_editor type="string" length="1" bottom="-344" embedded_items="true" enabled="true"
|
||||
follows="left|top|right|bottom" font="SansSerif" height="285"
|
||||
ignore_tab="false" left="4" max_length="65536" mouse_opaque="true"
|
||||
name="Notecard Editor" width="392" word_wrap="true">
|
||||
Loading...
|
||||
</text_editor>
|
||||
<button bottom="-370" enabled="true" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Keep" label_selected="Keep" left="9"
|
||||
mouse_opaque="true" name="Keep" scale_image="true" width="100" />
|
||||
<button bottom="-370" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Save" label_selected="Save" left="114"
|
||||
mouse_opaque="false" name="Save" scale_image="true" width="100" />
|
||||
<button bottom="-370" enabled="true" follows="left|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Discard" label_selected="Discard"
|
||||
left="219" mouse_opaque="true" name="Discard" scale_image="true"
|
||||
width="100" />
|
||||
<string name="no_object">
|
||||
Unable to find object containing this note.
|
||||
</string>
|
||||
<string name="not_allowed">
|
||||
You are not allowed to view this note.
|
||||
</string>
|
||||
</floater>
|
||||
|
||||
Reference in New Issue
Block a user