merge
commit
b93c4d6bd6
|
|
@ -43,3 +43,4 @@ tarfile_tmp
|
|||
^indra/web/dataservice/locale.*
|
||||
^indra/web/dataservice/lib/shared/vault.*
|
||||
^indra/web/dataservice/vendor.*
|
||||
glob:indra/newview/dbghelp.dll
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
#include "llpanel.h"
|
||||
#include "llurlregistry.h"
|
||||
#include "lltooltip.h"
|
||||
#include "llmenugl.h"
|
||||
|
||||
#include <queue>
|
||||
#include "llcombobox.h"
|
||||
|
|
@ -252,7 +253,8 @@ LLTextEditor::LLTextEditor(const LLTextEditor::Params& p) :
|
|||
mHandleEditKeysDirectly( p.handle_edit_keys_directly ),
|
||||
mMouseDownX(0),
|
||||
mMouseDownY(0),
|
||||
mTabsToNextField(p.ignore_tab)
|
||||
mTabsToNextField(p.ignore_tab),
|
||||
mContextMenu(NULL)
|
||||
{
|
||||
mDefaultFont = p.font;
|
||||
|
||||
|
|
@ -301,6 +303,8 @@ LLTextEditor::~LLTextEditor()
|
|||
|
||||
// Scrollbar is deleted by LLView
|
||||
std::for_each(mUndoStack.begin(), mUndoStack.end(), DeletePointer());
|
||||
|
||||
delete mContextMenu;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
|
@ -702,6 +706,19 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
return handled;
|
||||
}
|
||||
|
||||
BOOL LLTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
BOOL handled = LLTextBase::handleRightMouseDown(x, y, mask);
|
||||
if (!handled && hasTabStop())
|
||||
{
|
||||
setFocus( TRUE );
|
||||
showContextMenu(x, y);
|
||||
handled = TRUE;
|
||||
}
|
||||
return handled;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL LLTextEditor::handleMiddleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
|
|
@ -736,7 +753,6 @@ BOOL LLTextEditor::handleHover(S32 x, S32 y, MASK mask)
|
|||
setCursorAtLocalPos( clamped_x, clamped_y, true );
|
||||
mSelectionEnd = mCursorPos;
|
||||
}
|
||||
|
||||
lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (active)" << llendl;
|
||||
getWindow()->setCursor(UI_CURSOR_IBEAM);
|
||||
handled = TRUE;
|
||||
|
|
@ -1991,6 +2007,21 @@ void LLTextEditor::setEnabled(BOOL enabled)
|
|||
}
|
||||
}
|
||||
|
||||
void LLTextEditor::showContextMenu(S32 x, S32 y)
|
||||
{
|
||||
if (!mContextMenu)
|
||||
{
|
||||
mContextMenu = LLUICtrlFactory::instance().createFromFile<LLContextMenu>("menu_text_editor.xml",
|
||||
LLMenuGL::sMenuContainer,
|
||||
LLMenuHolderGL::child_registry_t::instance());
|
||||
}
|
||||
|
||||
S32 screen_x, screen_y;
|
||||
localPointToScreen(x, y, &screen_x, &screen_y);
|
||||
mContextMenu->show(screen_x, screen_y);
|
||||
}
|
||||
|
||||
|
||||
void LLTextEditor::drawPreeditMarker()
|
||||
{
|
||||
static LLUICachedControl<F32> preedit_marker_brightness ("UIPreeditMarkerBrightness", 0);
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ public:
|
|||
// mousehandler overrides
|
||||
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask );
|
||||
virtual BOOL handleMiddleMouseDown(S32 x,S32 y,MASK mask);
|
||||
|
|
@ -201,6 +202,7 @@ public:
|
|||
void getSelectedSegments(segment_vec_t& segments) const;
|
||||
|
||||
protected:
|
||||
void showContextMenu(S32 x, S32 y);
|
||||
void drawPreeditMarker();
|
||||
|
||||
void assignEmbedded(const std::string &s);
|
||||
|
|
@ -328,6 +330,8 @@ private:
|
|||
LLCoordGL mLastIMEPosition; // Last position of the IME editor
|
||||
|
||||
keystroke_signal_t mKeystrokeSignal;
|
||||
|
||||
LLContextMenu* mContextMenu;
|
||||
}; // end class LLTextEditor
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -442,6 +442,7 @@ void LLRenderPass::renderTexture(U32 type, U32 mask)
|
|||
|
||||
void LLRenderPass::pushBatches(U32 type, U32 mask, BOOL texture)
|
||||
{
|
||||
llpushcallstacks ;
|
||||
for (LLCullResult::drawinfo_list_t::iterator i = gPipeline.beginRenderMap(type); i != gPipeline.endRenderMap(type); ++i)
|
||||
{
|
||||
LLDrawInfo* pparams = *i;
|
||||
|
|
|
|||
|
|
@ -856,6 +856,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
const LLMatrix4& mat_vert, const LLMatrix3& mat_normal,
|
||||
const U16 &index_offset)
|
||||
{
|
||||
llpushcallstacks ;
|
||||
const LLVolumeFace &vf = volume.getVolumeFace(f);
|
||||
S32 num_vertices = (S32)vf.mVertices.size();
|
||||
S32 num_indices = (S32)vf.mIndices.size();
|
||||
|
|
@ -864,7 +865,15 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
{
|
||||
if (num_indices + (S32) mIndicesIndex > mVertexBuffer->getNumIndices())
|
||||
{
|
||||
llwarns << "Index buffer overflow!" << llendl;
|
||||
llwarns << "Index buffer overflow!" << llendl;
|
||||
llwarns << "Indices Count: " << mIndicesCount
|
||||
<< " VF Num Indices: " << num_indices
|
||||
<< " Indices Index: " << mIndicesIndex
|
||||
<< " VB Num Indices: " << mVertexBuffer->getNumIndices() << llendl;
|
||||
llwarns << "Last Indices Count: " << mLastIndicesCount
|
||||
<< " Last Indices Index: " << mLastIndicesIndex
|
||||
<< " Face Index: " << f
|
||||
<< " Pool Type: " << mPoolType << llendl;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2988,6 +2988,7 @@ static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
|
|||
|
||||
void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
||||
{
|
||||
llpushcallstacks ;
|
||||
if (group->changeLOD())
|
||||
{
|
||||
group->mLastUpdateDistance = group->mDistance;
|
||||
|
|
@ -3218,6 +3219,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
static LLFastTimer::DeclareTimer FTM_VOLUME_GEOM("Volume Geometry");
|
||||
void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
||||
{
|
||||
llpushcallstacks ;
|
||||
if (group->isState(LLSpatialGroup::MESH_DIRTY) && !group->isState(LLSpatialGroup::GEOM_DIRTY))
|
||||
{
|
||||
LLFastTimer tm(FTM_VOLUME_GEOM);
|
||||
|
|
@ -3308,6 +3310,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
|||
|
||||
void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::vector<LLFace*>& faces, BOOL distance_sort)
|
||||
{
|
||||
llpushcallstacks ;
|
||||
//calculate maximum number of vertices to store in a single buffer
|
||||
U32 max_vertices = (gSavedSettings.getS32("RenderMaxVBOSize")*1024)/LLVertexBuffer::calcStride(group->mSpatialPartition->mVertexDataMask);
|
||||
max_vertices = llmin(max_vertices, (U32) 65535);
|
||||
|
|
|
|||
|
|
@ -1797,6 +1797,7 @@ void LLPipeline::rebuildPriorityGroups()
|
|||
|
||||
void LLPipeline::rebuildGroups()
|
||||
{
|
||||
llpushcallstacks ;
|
||||
// Iterate through some drawables on the non-priority build queue
|
||||
S32 size = (S32) mGroupQ2.size();
|
||||
S32 min_count = llclamp((S32) ((F32) (size * size)/4096*0.25f), 1, size);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
auto_tile="true"
|
||||
height="800"
|
||||
height="460"
|
||||
layout="topleft"
|
||||
name="gesture_preview"
|
||||
help_topic="gesture_preview"
|
||||
|
|
@ -46,10 +46,11 @@
|
|||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="Name"
|
||||
name="desc_label"
|
||||
top="25"
|
||||
font.style="BOLD"
|
||||
width="100">
|
||||
Name (not working yet):
|
||||
Description:
|
||||
</text>
|
||||
<line_editor
|
||||
follows="left|top"
|
||||
|
|
@ -67,70 +68,270 @@
|
|||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="desc_label"
|
||||
font.style="BOLD"
|
||||
name="trigger_label"
|
||||
top_pad="10"
|
||||
width="100">
|
||||
Description:
|
||||
Trigger:
|
||||
</text>
|
||||
<line_editor
|
||||
follows="left|top"
|
||||
height="40"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_delta="84"
|
||||
name="desc2"
|
||||
max_length="31"
|
||||
name="trigger_editor"
|
||||
top_delta="-4"
|
||||
width="180" />
|
||||
|
||||
<accordion
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="top|left"
|
||||
font="SansSerifSmall"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="2"
|
||||
width="276"
|
||||
top="95"
|
||||
height="580"
|
||||
follows="all"
|
||||
name="group_accordion">
|
||||
<accordion_tab
|
||||
min_height="90"
|
||||
title="Shortcuts"
|
||||
name="snapshot_destination_tab"
|
||||
an_resize="false">
|
||||
<panel
|
||||
class="floater_preview_shortcut"
|
||||
filename="floater_preview_gesture_shortcut.xml"
|
||||
name="floater_preview_shortcut"/>
|
||||
</accordion_tab>
|
||||
<accordion_tab
|
||||
min_height="400"
|
||||
title="Steps"
|
||||
name="snapshot_file_settings_tab"
|
||||
can_resize="false">
|
||||
<panel
|
||||
class="floater_preview_steps"
|
||||
filename="floater_preview_gesture_steps.xml"
|
||||
name="floater_preview_steps"/>
|
||||
</accordion_tab>
|
||||
<accordion_tab
|
||||
min_height="155"
|
||||
title="Info"
|
||||
name="snapshot_capture_tab"
|
||||
can_resize="false">
|
||||
<panel
|
||||
class="floater_preview_info"
|
||||
filename="floater_preview_gesture_info.xml"
|
||||
name="floater_preview_info"/>
|
||||
</accordion_tab>
|
||||
<!--accordion_tab
|
||||
min_height="100"
|
||||
title="Permissions"
|
||||
name="snapshot_capture_tab2"
|
||||
can_resize="false">
|
||||
<panel
|
||||
class="floater_snapshot_capture"
|
||||
filename="floater_snapshot_Permissions.xml"
|
||||
name="snapshot_capture_panel2"/>
|
||||
</accordion_tab-->
|
||||
</accordion>
|
||||
<!--check_box
|
||||
left="10"
|
||||
font.style="BOLD"
|
||||
name="replace_text"
|
||||
tool_tip="Replace the trigger word(s) with these words. For example, trigger 'hello' replace with 'howdy' will turn the chat 'I wanted to say hello' into 'I wanted to say howdy' as well as playing the gesture!"
|
||||
top_pad="10"
|
||||
width="200">
|
||||
Replace with:
|
||||
</text>
|
||||
<line_editor
|
||||
follows="left|top"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_delta="84"
|
||||
max_length="31"
|
||||
name="replace_editor"
|
||||
tool_tip="Replace the trigger word(s) with these words. For example, trigger 'hello' replace with 'howdy' will turn the chat 'I wanted to say hello' into 'I wanted to say howdy' as well as playing the gesture"
|
||||
top_delta="-4"
|
||||
width="180" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="top|left"
|
||||
font="SansSerifSmall"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
font.style="BOLD"
|
||||
name="key_label"
|
||||
top_pad="10"
|
||||
width="100">
|
||||
Shortcut Key:
|
||||
</text>
|
||||
<combo_box
|
||||
height="20"
|
||||
label="None"
|
||||
layout="topleft"
|
||||
left_delta="84"
|
||||
name="modifier_combo"
|
||||
top_delta="-4"
|
||||
width="75" />
|
||||
<combo_box
|
||||
height="20"
|
||||
label="None"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="key_combo"
|
||||
top_delta="0"
|
||||
width="75" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="top|left"
|
||||
font="SansSerifSmall"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
font.style="BOLD"
|
||||
name="library_label"
|
||||
top="135"
|
||||
width="100">
|
||||
Library:
|
||||
</text>
|
||||
<scroll_list
|
||||
follows="top|left"
|
||||
height="60"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="library_list"
|
||||
top="150"
|
||||
width="180">
|
||||
<scroll_list.rows
|
||||
value="Animation" />
|
||||
<scroll_list.rows
|
||||
value="Sound" />
|
||||
<scroll_list.rows
|
||||
value="Chat" />
|
||||
<scroll_list.rows
|
||||
value="Wait" />
|
||||
</scroll_list>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="20"
|
||||
font="SansSerifSmall"
|
||||
label="Add >>"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="add_btn"
|
||||
top_delta="0"
|
||||
width="70" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="top|left"
|
||||
font="SansSerifSmall"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
font.style="BOLD"
|
||||
name="steps_label"
|
||||
top_pad="50"
|
||||
width="100">
|
||||
Steps:
|
||||
</text>
|
||||
<scroll_list
|
||||
follows="top|left"
|
||||
height="85"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="step_list"
|
||||
top_pad="5"
|
||||
width="180" />
|
||||
<button
|
||||
follows="top|left"
|
||||
height="20"
|
||||
font="SansSerifSmall"
|
||||
label="Up"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="up_btn"
|
||||
top_delta="0"
|
||||
width="70" />
|
||||
<button
|
||||
follows="top|left"
|
||||
height="20"
|
||||
font="SansSerifSmall"
|
||||
label="Down"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="down_btn"
|
||||
top_pad="10"
|
||||
width="70" />
|
||||
<button
|
||||
follows="top|left"
|
||||
height="20"
|
||||
font="SansSerifSmall"
|
||||
label="Remove"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="delete_btn"
|
||||
top_pad="10"
|
||||
width="70" />
|
||||
<text
|
||||
follows="top|left"
|
||||
height="60"
|
||||
layout="topleft"
|
||||
left="15"
|
||||
name="options_text"
|
||||
top="330"
|
||||
width="205" />
|
||||
<combo_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_delta="15"
|
||||
name="animation_list"
|
||||
top="345"
|
||||
width="100" />
|
||||
<combo_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="sound_list"
|
||||
top_delta="0"
|
||||
width="100" />
|
||||
<line_editor
|
||||
follows="top|left"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
max_length="127"
|
||||
name="chat_editor"
|
||||
top_delta="0"
|
||||
width="100" />
|
||||
<radio_group
|
||||
draw_border="false"
|
||||
follows="top|left"
|
||||
height="40"
|
||||
layout="topleft"
|
||||
left_pad="8"
|
||||
name="animation_trigger_type"
|
||||
top_delta="0"
|
||||
width="80">
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Start"
|
||||
layout="topleft"
|
||||
left="3"
|
||||
name="start"
|
||||
top="-11"
|
||||
width="80" />
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Stop"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="stop"
|
||||
top_pad="10"
|
||||
width="80" />
|
||||
</radio_group>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="until animations are done"
|
||||
layout="topleft"
|
||||
left="16"
|
||||
name="wait_anim_check"
|
||||
top="340"
|
||||
width="100" />
|
||||
<check_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="time in seconds"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="wait_time_check"
|
||||
top_delta="20"
|
||||
width="100" />
|
||||
<line_editor
|
||||
follows="top|left"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
max_length="15"
|
||||
name="wait_time_editor"
|
||||
top_delta="0"
|
||||
width="50" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="top|left"
|
||||
font="SansSerifSmall"
|
||||
height="30"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="help_label"
|
||||
top_pad="20"
|
||||
word_wrap="true"
|
||||
width="265">
|
||||
All steps happen simultaneously, unless you add wait steps.
|
||||
</text>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="Active"
|
||||
|
|
@ -138,35 +339,24 @@
|
|||
left="20"
|
||||
name="active_check"
|
||||
tool_tip="Active gestures can be triggered by chatting their trigger phrases or pressing their hot keys. Gestures usually become inactive when there is a key binding conflict."
|
||||
top="365"
|
||||
width="100" /-->
|
||||
|
||||
top_pad="0"
|
||||
width="100" />
|
||||
<button
|
||||
follows="bottom|left"
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="Preview"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
left_delta="75"
|
||||
name="preview_btn"
|
||||
top_pad="30"
|
||||
top_delta="2"
|
||||
width="80" />
|
||||
<button
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="Save"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
left_pad="10"
|
||||
name="save_btn"
|
||||
top_delta="0"
|
||||
width="80" />
|
||||
<button
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="Cancel (not working)"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="cancel_btn"
|
||||
top_delta="0"
|
||||
width="80" />
|
||||
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<context_menu
|
||||
name="Text editor context menu">
|
||||
<menu_item_call
|
||||
label="Cut"
|
||||
layout="topleft"
|
||||
name="Cut"
|
||||
shortcut="control|X">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.Cut" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableCut" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Copy"
|
||||
layout="topleft"
|
||||
name="Copy"
|
||||
shortcut="control|C">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.Copy" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableCopy" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Paste"
|
||||
layout="topleft"
|
||||
name="Paste"
|
||||
shortcut="control|V">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.Paste" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnablePaste" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Delete"
|
||||
layout="topleft"
|
||||
name="Delete"
|
||||
shortcut="Del">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.Delete" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableDelete" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Select All"
|
||||
layout="topleft"
|
||||
name="Select All"
|
||||
shortcut="control|A">
|
||||
<menu_item_call.on_click
|
||||
function="Edit.SelectAll" />
|
||||
<menu_item_call.on_enable
|
||||
function="Edit.EnableSelectAll" />
|
||||
</menu_item_call>
|
||||
</context_menu>
|
||||
Loading…
Reference in New Issue