Merge branch 'DRTVWR-489' of https://github.com/secondlife/viewer
# Conflicts: # indra/llui/lllineeditor.h # indra/llui/lltextbase.h # indra/newview/app_settings/settings.xml # indra/newview/llviewermenu.cppmaster
commit
25060135c8
|
|
@ -695,6 +695,7 @@ std::string mbcsstring_makeASCII(const std::string& wstr)
|
|||
}
|
||||
return out_str;
|
||||
}
|
||||
|
||||
std::string utf8str_removeCRLF(const std::string& utf8str)
|
||||
{
|
||||
if (0 == utf8str.length())
|
||||
|
|
@ -716,6 +717,54 @@ std::string utf8str_removeCRLF(const std::string& utf8str)
|
|||
return out;
|
||||
}
|
||||
|
||||
std::string utf8str_showBytesUTF8(const std::string& utf8str)
|
||||
{
|
||||
std::string result;
|
||||
|
||||
bool in_sequence = false;
|
||||
for (U8 byte : utf8str)
|
||||
{
|
||||
if (byte >= 0x80) // Part of an UTF-8 sequence
|
||||
{
|
||||
if (!in_sequence) // Start new UTF-8 sequence
|
||||
{
|
||||
if (!result.empty() && result.back() != ' ')
|
||||
result += ' '; // Use space as separator between ASCII and UTF-8
|
||||
result += '[';
|
||||
}
|
||||
else if (byte >= 0xC0) // Start another UTF-8 sequence
|
||||
{
|
||||
result += "] ["; // Use space as separator between UTF-8 and UTF-8
|
||||
}
|
||||
else // Continue the same UTF-8 sequence
|
||||
{
|
||||
result += '.';
|
||||
}
|
||||
result += llformat("%02X", byte); // The byte is represented in hexadecimal form
|
||||
in_sequence = true;
|
||||
}
|
||||
else // ASCII symbol is represented as a character
|
||||
{
|
||||
if (in_sequence) // End of UTF-8 sequence
|
||||
{
|
||||
result += ']';
|
||||
if (byte != ' ')
|
||||
{
|
||||
result += ' '; // Use space as separator between UTF-8 and ASCII
|
||||
}
|
||||
}
|
||||
result += byte;
|
||||
in_sequence = false;
|
||||
}
|
||||
}
|
||||
if (in_sequence) // End of UTF-8 sequence
|
||||
{
|
||||
result += ']';
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#if LL_WINDOWS
|
||||
unsigned int ll_wstring_default_code_page()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -757,6 +757,7 @@ LL_COMMON_API std::string mbcsstring_makeASCII(const std::string& str);
|
|||
|
||||
LL_COMMON_API std::string utf8str_removeCRLF(const std::string& utf8str);
|
||||
|
||||
LL_COMMON_API std::string utf8str_showBytesUTF8(const std::string& utf8str);
|
||||
|
||||
#if LL_WINDOWS
|
||||
/* @name Windows string helpers
|
||||
|
|
|
|||
|
|
@ -1816,6 +1816,20 @@ void LLLineEditor::drawBackground()
|
|||
}
|
||||
}
|
||||
|
||||
//virtual
|
||||
const std::string LLLineEditor::getToolTip() const
|
||||
{
|
||||
if (sDebugUnicode)
|
||||
{
|
||||
std::string text = getText();
|
||||
std::string tooltip = utf8str_showBytesUTF8(text);
|
||||
return tooltip;
|
||||
}
|
||||
|
||||
return LLUICtrl::getToolTip();
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLLineEditor::draw()
|
||||
{
|
||||
F32 alpha = getDrawContext().mAlpha;
|
||||
|
|
|
|||
|
|
@ -122,54 +122,55 @@ protected:
|
|||
//void showContextMenu(S32 x, S32 y);
|
||||
void showContextMenu(S32 x, S32 y, bool set_cursor_pos = true);
|
||||
// </FS:Ansariel>
|
||||
|
||||
public:
|
||||
virtual ~LLLineEditor();
|
||||
|
||||
// mousehandler overrides
|
||||
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleMouseUp(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);
|
||||
/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask );
|
||||
/*virtual*/ BOOL handleUnicodeCharHere(llwchar uni_char);
|
||||
/*virtual*/ void onMouseCaptureLost();
|
||||
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleDoubleClick(S32 x,S32 y,MASK mask) override;
|
||||
/*virtual*/ BOOL handleMiddleMouseDown(S32 x,S32 y,MASK mask) override;
|
||||
/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask) override;
|
||||
/*virtual*/ BOOL handleUnicodeCharHere(llwchar uni_char) override;
|
||||
/*virtual*/ void onMouseCaptureLost() override;
|
||||
|
||||
// LLEditMenuHandler overrides
|
||||
virtual void cut();
|
||||
virtual BOOL canCut() const;
|
||||
virtual void copy();
|
||||
virtual BOOL canCopy() const;
|
||||
virtual void paste();
|
||||
virtual BOOL canPaste() const;
|
||||
/*virtual*/ void cut() override;
|
||||
/*virtual*/ BOOL canCut() const override;
|
||||
/*virtual*/ void copy() override;
|
||||
/*virtual*/ BOOL canCopy() const override;
|
||||
/*virtual*/ void paste() override;
|
||||
/*virtual*/ BOOL canPaste() const override;
|
||||
|
||||
virtual void updatePrimary();
|
||||
virtual void copyPrimary();
|
||||
virtual void pastePrimary();
|
||||
virtual BOOL canPastePrimary() const;
|
||||
|
||||
virtual void doDelete();
|
||||
virtual BOOL canDoDelete() const;
|
||||
/*virtual*/ void doDelete() override;
|
||||
/*virtual*/ BOOL canDoDelete() const override;
|
||||
|
||||
virtual void selectAll();
|
||||
virtual BOOL canSelectAll() const;
|
||||
/*virtual*/ void selectAll() override;
|
||||
/*virtual*/ BOOL canSelectAll() const override;
|
||||
|
||||
virtual void deselect();
|
||||
virtual BOOL canDeselect() const;
|
||||
/*virtual*/ void deselect() override;
|
||||
/*virtual*/ BOOL canDeselect() const override;
|
||||
|
||||
// LLSpellCheckMenuHandler overrides
|
||||
/*virtual*/ bool getSpellCheck() const;
|
||||
/*virtual*/ bool getSpellCheck() const override;
|
||||
|
||||
/*virtual*/ const std::string& getSuggestion(U32 index) const;
|
||||
/*virtual*/ U32 getSuggestionCount() const;
|
||||
/*virtual*/ void replaceWithSuggestion(U32 index);
|
||||
/*virtual*/ const std::string& getSuggestion(U32 index) const override;
|
||||
/*virtual*/ U32 getSuggestionCount() const override;
|
||||
/*virtual*/ void replaceWithSuggestion(U32 index) override;
|
||||
|
||||
/*virtual*/ void addToDictionary();
|
||||
/*virtual*/ bool canAddToDictionary() const;
|
||||
/*virtual*/ void addToDictionary() override;
|
||||
/*virtual*/ bool canAddToDictionary() const override;
|
||||
|
||||
/*virtual*/ void addToIgnore();
|
||||
/*virtual*/ bool canAddToIgnore() const;
|
||||
/*virtual*/ void addToIgnore() override;
|
||||
/*virtual*/ bool canAddToIgnore() const override;
|
||||
|
||||
// Spell checking helper functions
|
||||
std::string getMisspelledWord(U32 pos) const;
|
||||
|
|
@ -177,27 +178,28 @@ public:
|
|||
void onSpellCheckSettingsChange();
|
||||
|
||||
// view overrides
|
||||
virtual void draw();
|
||||
virtual void reshape(S32 width,S32 height,BOOL called_from_parent=TRUE);
|
||||
virtual void onFocusReceived();
|
||||
virtual void onFocusLost();
|
||||
virtual void setEnabled(BOOL enabled);
|
||||
/*virtual*/ const std::string getToolTip() const override;
|
||||
/*virtual*/ void draw() override;
|
||||
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE) override;
|
||||
/*virtual*/ void onFocusReceived() override;
|
||||
/*virtual*/ void onFocusLost() override;
|
||||
/*virtual*/ void setEnabled(BOOL enabled) override;
|
||||
|
||||
// UI control overrides
|
||||
virtual void clear();
|
||||
virtual void onTabInto();
|
||||
virtual void setFocus( BOOL b );
|
||||
virtual void setRect(const LLRect& rect);
|
||||
virtual BOOL acceptsTextInput() const;
|
||||
virtual void onCommit();
|
||||
virtual BOOL isDirty() const; // Returns TRUE if user changed value at all
|
||||
virtual void resetDirty(); // Clear dirty state
|
||||
/*virtual*/ void clear() override;
|
||||
/*virtual*/ void onTabInto() override;
|
||||
/*virtual*/ void setFocus(BOOL b) override;
|
||||
/*virtual*/ void setRect(const LLRect& rect) override;
|
||||
/*virtual*/ BOOL acceptsTextInput() const override;
|
||||
/*virtual*/ void onCommit() override;
|
||||
/*virtual*/ BOOL isDirty() const override; // Returns TRUE if user changed value at all
|
||||
/*virtual*/ void resetDirty() override; // Clear dirty state
|
||||
|
||||
// assumes UTF8 text
|
||||
virtual void setValue(const LLSD& value );
|
||||
virtual LLSD getValue() const;
|
||||
virtual BOOL setTextArg( const std::string& key, const LLStringExplicit& text );
|
||||
virtual BOOL setLabelArg( const std::string& key, const LLStringExplicit& text );
|
||||
/*virtual*/ void setValue(const LLSD& value) override;
|
||||
/*virtual*/ LLSD getValue() const override;
|
||||
/*virtual*/ BOOL setTextArg(const std::string& key, const LLStringExplicit& text) override;
|
||||
/*virtual*/ BOOL setLabelArg(const std::string& key, const LLStringExplicit& text) override;
|
||||
|
||||
//<FS:TS> FIRE-11373: Autoreplace doesn't work in nearby chat bar
|
||||
typedef boost::function<void(S32&, S32&, LLWString&, S32&, const LLWString&)> autoreplace_callback_t;
|
||||
|
|
@ -225,7 +227,7 @@ public:
|
|||
|
||||
// Selects characters 'start' to 'end'.
|
||||
void setSelection(S32 start, S32 end);
|
||||
virtual void getSelectionRange(S32 *position, S32 *length) const;
|
||||
/*virtual*/ void getSelectionRange(S32 *position, S32 *length) const override;
|
||||
|
||||
void setCommitOnFocusLost( BOOL b ) { mCommitOnFocusLost = b; }
|
||||
void setRevertOnEsc( BOOL b ) { mRevertOnEsc = b; }
|
||||
|
|
@ -332,14 +334,14 @@ public:
|
|||
void updateAllowingLanguageInput();
|
||||
BOOL hasPreeditString() const;
|
||||
// Implementation (overrides) of LLPreeditor
|
||||
virtual void resetPreedit();
|
||||
virtual void updatePreedit(const LLWString &preedit_string,
|
||||
const segment_lengths_t &preedit_segment_lengths, const standouts_t &preedit_standouts, S32 caret_position);
|
||||
virtual void markAsPreedit(S32 position, S32 length);
|
||||
virtual void getPreeditRange(S32 *position, S32 *length) const;
|
||||
virtual BOOL getPreeditLocation(S32 query_position, LLCoordGL *coord, LLRect *bounds, LLRect *control) const;
|
||||
virtual S32 getPreeditFontSize() const;
|
||||
virtual LLWString getPreeditString() const { return getWText(); }
|
||||
/*virtual*/ void resetPreedit() override;
|
||||
/*virtual*/ void updatePreedit(const LLWString &preedit_string,
|
||||
const segment_lengths_t &preedit_segment_lengths, const standouts_t &preedit_standouts, S32 caret_position) override;
|
||||
/*virtual*/ void markAsPreedit(S32 position, S32 length) override;
|
||||
/*virtual*/ void getPreeditRange(S32 *position, S32 *length) const override;
|
||||
/*virtual*/ BOOL getPreeditLocation(S32 query_position, LLCoordGL *coord, LLRect *bounds, LLRect *control) const override;
|
||||
/*virtual*/ S32 getPreeditFontSize() const override;
|
||||
/*virtual*/ LLWString getPreeditString() const override { return getWText(); }
|
||||
|
||||
void setText(const LLStringExplicit &new_text, bool use_size_limit);
|
||||
|
||||
|
|
|
|||
|
|
@ -1256,6 +1256,7 @@ void LLTextBase::insertSegment(LLTextSegmentPtr segment_to_insert)
|
|||
needsReflow(reflow_start_index);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// handle triple click
|
||||
|
|
@ -1310,6 +1311,7 @@ BOOL LLTextBase::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleMouseUp(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1329,6 +1331,7 @@ BOOL LLTextBase::handleMouseUp(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleMouseUp(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleMiddleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1340,6 +1343,7 @@ BOOL LLTextBase::handleMiddleMouseDown(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleMiddleMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleMiddleMouseUp(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1351,6 +1355,7 @@ BOOL LLTextBase::handleMiddleMouseUp(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleMiddleMouseUp(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1362,6 +1367,7 @@ BOOL LLTextBase::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleRightMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleRightMouseUp(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1373,6 +1379,7 @@ BOOL LLTextBase::handleRightMouseUp(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleRightMouseUp(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleDoubleClick(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
//Don't start triple click timer if user have clicked on scrollbar
|
||||
|
|
@ -1392,6 +1399,7 @@ BOOL LLTextBase::handleDoubleClick(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleDoubleClick(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleHover(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1403,6 +1411,7 @@ BOOL LLTextBase::handleHover(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleHover(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleScrollWheel(S32 x, S32 y, S32 clicks)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1414,6 +1423,7 @@ BOOL LLTextBase::handleScrollWheel(S32 x, S32 y, S32 clicks)
|
|||
return LLUICtrl::handleScrollWheel(x, y, clicks);
|
||||
}
|
||||
|
||||
//virtual
|
||||
BOOL LLTextBase::handleToolTip(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTextSegmentPtr cur_segment = getSegmentAtLocalPos(x, y);
|
||||
|
|
@ -1425,7 +1435,20 @@ BOOL LLTextBase::handleToolTip(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleToolTip(x, y, mask);
|
||||
}
|
||||
|
||||
//virtual
|
||||
const std::string LLTextBase::getToolTip() const
|
||||
{
|
||||
if (sDebugUnicode)
|
||||
{
|
||||
std::string text = getText();
|
||||
std::string tooltip = utf8str_showBytesUTF8(text);
|
||||
return tooltip;
|
||||
}
|
||||
|
||||
return LLUICtrl::getToolTip();
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLTextBase::reshape(S32 width, S32 height, BOOL called_from_parent)
|
||||
{
|
||||
if (width != getRect().getWidth() || height != getRect().getHeight() || LLView::sForceReshape)
|
||||
|
|
@ -1452,6 +1475,7 @@ void LLTextBase::reshape(S32 width, S32 height, BOOL called_from_parent)
|
|||
}
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLTextBase::draw()
|
||||
{
|
||||
// reflow if needed, on demand
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ namespace LLInitParam
|
|||
/// as LLTextEditor and LLTextBox. It implements shared functionality
|
||||
/// such as Url highlighting and opening.
|
||||
///
|
||||
class LLTextBase
|
||||
class LLTextBase
|
||||
: public LLUICtrl,
|
||||
protected LLEditMenuHandler,
|
||||
public LLSpellCheckMenuHandler,
|
||||
|
|
@ -381,51 +381,52 @@ public:
|
|||
};
|
||||
|
||||
// LLMouseHandler interface
|
||||
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleRightMouseUp(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
|
||||
/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleRightMouseUp(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask) override;
|
||||
/*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) override;
|
||||
/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask) override;
|
||||
|
||||
// LLView interface
|
||||
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
|
||||
/*virtual*/ void draw();
|
||||
/*virtual*/ const std::string getToolTip() const override;
|
||||
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE) override;
|
||||
/*virtual*/ void draw() override;
|
||||
|
||||
// LLUICtrl interface
|
||||
/*virtual*/ BOOL acceptsTextInput() const { return !mReadOnly; }
|
||||
/*virtual*/ void setColor( const LLColor4& c );
|
||||
/*virtual*/ BOOL acceptsTextInput() const override { return !mReadOnly; }
|
||||
/*virtual*/ void setColor(const LLColor4& c) override;
|
||||
virtual void setReadOnlyColor(const LLColor4 &c);
|
||||
virtual void onVisibilityChange( BOOL new_visibility );
|
||||
/*virtual*/ void onVisibilityChange(BOOL new_visibility) override;
|
||||
|
||||
/*virtual*/ void setValue(const LLSD& value );
|
||||
/*virtual*/ LLTextViewModel* getViewModel() const;
|
||||
/*virtual*/ void setValue(const LLSD& value) override;
|
||||
/*virtual*/ LLTextViewModel* getViewModel() const override;
|
||||
|
||||
// LLEditMenuHandler interface
|
||||
/*virtual*/ BOOL canDeselect() const;
|
||||
/*virtual*/ void deselect();
|
||||
/*virtual*/ BOOL canDeselect() const override;
|
||||
/*virtual*/ void deselect() override;
|
||||
|
||||
virtual void onFocusReceived();
|
||||
virtual void onFocusLost();
|
||||
virtual void onFocusReceived() override;
|
||||
virtual void onFocusLost() override;
|
||||
|
||||
void setParseHTML(bool parse_html) { mParseHTML = parse_html; }
|
||||
|
||||
// LLSpellCheckMenuHandler overrides
|
||||
/*virtual*/ bool getSpellCheck() const;
|
||||
/*virtual*/ bool getSpellCheck() const override;
|
||||
|
||||
/*virtual*/ const std::string& getSuggestion(U32 index) const;
|
||||
/*virtual*/ U32 getSuggestionCount() const;
|
||||
/*virtual*/ void replaceWithSuggestion(U32 index);
|
||||
/*virtual*/ const std::string& getSuggestion(U32 index) const override;
|
||||
/*virtual*/ U32 getSuggestionCount() const override;
|
||||
/*virtual*/ void replaceWithSuggestion(U32 index) override;
|
||||
|
||||
/*virtual*/ void addToDictionary();
|
||||
/*virtual*/ bool canAddToDictionary() const;
|
||||
/*virtual*/ void addToDictionary() override;
|
||||
/*virtual*/ bool canAddToDictionary() const override;
|
||||
|
||||
/*virtual*/ void addToIgnore();
|
||||
/*virtual*/ bool canAddToIgnore() const;
|
||||
/*virtual*/ void addToIgnore() override;
|
||||
/*virtual*/ bool canAddToIgnore() const override;
|
||||
|
||||
// Spell checking helper functions
|
||||
std::string getMisspelledWord(U32 pos) const;
|
||||
|
|
@ -459,7 +460,7 @@ public:
|
|||
void appendText(const std::string &new_text, bool prepend_newline, const LLStyle::Params& input_params = LLStyle::Params());
|
||||
|
||||
void setLabel(const LLStringExplicit& label);
|
||||
virtual BOOL setLabelArg(const std::string& key, const LLStringExplicit& text );
|
||||
/*virtual*/ BOOL setLabelArg(const std::string& key, const LLStringExplicit& text) override;
|
||||
|
||||
const std::string& getLabel() { return mLabel.getString(); }
|
||||
const LLWString& getWlabel() { return mLabel.getWString();}
|
||||
|
|
@ -696,7 +697,8 @@ protected:
|
|||
S32 normalizeUri(std::string& uri);
|
||||
|
||||
protected:
|
||||
virtual std::string _getSearchText() const
|
||||
// virtual
|
||||
std::string _getSearchText() const override
|
||||
{
|
||||
return mLabel.getString() + getToolTip();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ static const S32 LINE_HEIGHT = 15;
|
|||
|
||||
S32 LLView::sDepth = 0;
|
||||
bool LLView::sDebugRects = false;
|
||||
bool LLView::sDebugUnicode = false;
|
||||
bool LLView::sIsRectDirty = false;
|
||||
LLRect LLView::sDirtyRect;
|
||||
bool LLView::sDebugRectsShowNames = true;
|
||||
|
|
|
|||
|
|
@ -671,6 +671,9 @@ public:
|
|||
// Draw debug rectangles around widgets to help with alignment and spacing
|
||||
static bool sDebugRects;
|
||||
|
||||
// Show hexadecimal byte values of unicode symbols in a tooltip
|
||||
static bool sDebugUnicode;
|
||||
|
||||
static bool sIsRectDirty;
|
||||
static LLRect sDirtyRect;
|
||||
|
||||
|
|
|
|||
|
|
@ -1633,6 +1633,30 @@ class LLAdvancedCheckDebugViews : public view_listener_t
|
|||
|
||||
|
||||
|
||||
///////////////////
|
||||
// DEBUG UNICODE //
|
||||
///////////////////
|
||||
|
||||
|
||||
class LLAdvancedToggleDebugUnicode : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
LLView::sDebugUnicode = !(LLView::sDebugUnicode);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
class LLAdvancedCheckDebugUnicode : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
return LLView::sDebugUnicode;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
///////////////////////
|
||||
// XUI NAME TOOLTIPS //
|
||||
///////////////////////
|
||||
|
|
@ -10908,19 +10932,13 @@ void handle_show_url(const LLSD& param)
|
|||
|
||||
void handle_report_bug(const LLSD& param)
|
||||
{
|
||||
// <FS:Ansariel> Keep linking to out JIRA
|
||||
//std::string url = gSavedSettings.getString("ReportBugURL");
|
||||
//LLWeb::loadURLExternal(url);
|
||||
LLUIString url(param.asString());
|
||||
|
||||
LLStringUtil::format_map_t replace;
|
||||
// <FS:Ansariel> FIRE-14001: JIRA report is being cut off when using Help -> Report Bug
|
||||
//std::string environment = LLAppViewer::instance()->getViewerInfoString(true);
|
||||
//boost::regex regex;
|
||||
//regex.assign("</?nolink>");
|
||||
//std::string stripped_env = boost::regex_replace(environment, regex, "");
|
||||
|
||||
//replace["[ENVIRONMENT]"] = LLURI::escape(stripped_env);
|
||||
LLSD sysinfo = FSData::getSystemInfo();
|
||||
LLStringUtil::format_map_t replace;
|
||||
replace["[ENVIRONMENT]"] = LLURI::escape(sysinfo["Part1"].asString().substr(1) + sysinfo["Part2"].asString().substr(1));
|
||||
// </FS:Ansariel>
|
||||
LLSLURL location_url;
|
||||
LLAgentUI::buildSLURL(location_url);
|
||||
replace["[LOCATION]"] = LLURI::escape(location_url.getSLURLString());
|
||||
|
|
@ -10929,6 +10947,7 @@ void handle_report_bug(const LLSD& param)
|
|||
file_bug_url.setArgs(replace);
|
||||
|
||||
LLWeb::loadURLExternal(file_bug_url.getString());
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void handle_buy_currency_test(void*)
|
||||
|
|
@ -12317,6 +12336,8 @@ void initialize_menus()
|
|||
view_listener_t::addMenu(new LLAdvancedCheckDebugClicks(), "Advanced.CheckDebugClicks");
|
||||
view_listener_t::addMenu(new LLAdvancedCheckDebugViews(), "Advanced.CheckDebugViews");
|
||||
view_listener_t::addMenu(new LLAdvancedToggleDebugViews(), "Advanced.ToggleDebugViews");
|
||||
view_listener_t::addMenu(new LLAdvancedCheckDebugUnicode(), "Advanced.CheckDebugUnicode");
|
||||
view_listener_t::addMenu(new LLAdvancedToggleDebugUnicode(), "Advanced.ToggleDebugUnicode");
|
||||
view_listener_t::addMenu(new LLAdvancedToggleXUINameTooltips(), "Advanced.ToggleXUINameTooltips");
|
||||
view_listener_t::addMenu(new LLAdvancedCheckXUINameTooltips(), "Advanced.CheckXUINameTooltips");
|
||||
view_listener_t::addMenu(new LLAdvancedToggleDebugMouseEvents(), "Advanced.ToggleDebugMouseEvents");
|
||||
|
|
|
|||
|
|
@ -576,7 +576,8 @@
|
|||
<menu_item_check label="Doppel-Klick-Teleport" name="DoubleClick Teleport"/>
|
||||
<menu_item_check label="SelectMgr debuggen" name="Debug SelectMgr"/>
|
||||
<menu_item_check label="Klicks debuggen" name="Debug Clicks"/>
|
||||
<menu_item_check label="Debug-Ansichten" name="Debug Views"/>
|
||||
<menu_item_check label="Ansichten debuggen" name="Debug Views"/>
|
||||
<menu_item_check label="Unicode debuggen" name="Debug Unicode"/>
|
||||
<menu_item_check label="Kurzinfos: Debug-Namen" name="Debug Name Tooltips"/>
|
||||
<menu_item_check label="Maus-Events debuggen" name="Debug Mouse Events"/>
|
||||
<menu_item_check label="Keys debuggen" name="Debug Keys"/>
|
||||
|
|
|
|||
|
|
@ -288,7 +288,7 @@
|
|||
expand_lines_count="5"
|
||||
follows="left|right|bottom"
|
||||
font="SansSerifSmall"
|
||||
height="20"
|
||||
height="20"
|
||||
is_expandable="true"
|
||||
text_tentative_color="TextFgTentativeColor"
|
||||
bg_writeable_color="ScriptBackground"
|
||||
|
|
|
|||
|
|
@ -4946,6 +4946,14 @@
|
|||
<menu_item_check.on_click
|
||||
function="Advanced.ToggleDebugViews" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Debug Unicode"
|
||||
name="Debug Unicode">
|
||||
<menu_item_check.on_check
|
||||
function="Advanced.CheckDebugUnicode" />
|
||||
<menu_item_check.on_click
|
||||
function="Advanced.ToggleDebugUnicode" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Debug Name Tooltips"
|
||||
name="Debug Name Tooltips">
|
||||
|
|
@ -5794,7 +5802,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="PromptShowURL"
|
||||
name="PublicIssueTracker_url"
|
||||
parameter="WebLaunchPublicIssue,http://jira.secondlife.com" />
|
||||
parameter="WebLaunchPublicIssue,https://feedback.secondlife.com/" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Public Issue Tracker Help"
|
||||
|
|
|
|||
Loading…
Reference in New Issue