From d3448fa204a648d61d07f12ecc982841160380d2 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 30 Jan 2024 01:50:15 +0200 Subject: BugSplat Crash #1409959 onTopLost onTopLost crashed 1. It contradicts callstack, but clearPopups() definetely has an issue due to not checking the pointer prior to calling onTopLost 2. According to callstack, crash happened around ~LLFolderViewFolder and while it does call removePopup for itself, it isn't a popup, the only one in the list would be the renamer, which calls back to parent, so made sure to secure it. 3. mFlashTimer was never deleted 4. Some explicit cleanup for TopLost --- indra/newview/llexpandabletextbox.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview/llexpandabletextbox.h') diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h index aaf393277f..17a98e44d5 100644 --- a/indra/newview/llexpandabletextbox.h +++ b/indra/newview/llexpandabletextbox.h @@ -154,6 +154,8 @@ public: */ /*virtual*/ void draw(); + virtual ~LLExpandableTextBox(); + protected: LLExpandableTextBox(const Params& p); -- cgit v1.2.3 From 1781e2d17b777e32e9b51e5a901c1295db80a4d8 Mon Sep 17 00:00:00 2001 From: Alexander Gavriliuk Date: Fri, 8 Mar 2024 13:25:43 +0100 Subject: viewer#944 Make 'Debug Unicode' feature available for all LLViews --- indra/newview/llexpandabletextbox.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llexpandabletextbox.h') diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h index 17a98e44d5..8094036081 100644 --- a/indra/newview/llexpandabletextbox.h +++ b/indra/newview/llexpandabletextbox.h @@ -121,7 +121,7 @@ public: /** * Returns text */ - virtual std::string getText() const { return mText; } + virtual const std::string& getText() const { return mText; } /** * Sets text -- cgit v1.2.3 From 1b68f71348ecf3983b76b40d7940da8377f049b7 Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Mon, 29 Apr 2024 07:43:28 +0300 Subject: #824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed --- indra/newview/llexpandabletextbox.h | 294 ++++++++++++++++++------------------ 1 file changed, 147 insertions(+), 147 deletions(-) (limited to 'indra/newview/llexpandabletextbox.h') diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h index aaf393277f..385bb35017 100644 --- a/indra/newview/llexpandabletextbox.h +++ b/indra/newview/llexpandabletextbox.h @@ -1,25 +1,25 @@ -/** +/** * @file llexpandabletextbox.h * @brief LLExpandableTextBox and related class definitions * * $LicenseInfo:firstyear=2004&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -39,179 +39,179 @@ class LLExpandableTextBox : public LLUICtrl { protected: - /** - * Extended text box. "More" link will appear at end of text if - * text is too long to fit into text box size. - */ - class LLTextBoxEx : public LLTextEditor - { - public: - struct Params : public LLInitParam::Block - { - Params(); - }; - - // adds or removes "More" link as needed - /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - /*virtual*/ void setText(const LLStringExplicit& text, const LLStyle::Params& input_params = LLStyle::Params()); - void setTextBase(const std::string& text) { LLTextBase::setText(text); } - - /** - * Returns difference between text box height and text height. - * Value is positive if text height is greater than text box height. - */ - virtual S32 getVerticalTextDelta(); - - /** - * Returns the height of text rect. - */ - S32 getTextPixelHeight(); - - /** - * Shows "More" link - */ - void showExpandText(); - - /** - * Hides "More" link - */ - void hideExpandText(); - - /** - * Shows the "More" link if the text is too high to be completely - * visible without expanding the text box. Hides that link otherwise. - */ - void hideOrShowExpandTextAsNeeded(); - - protected: - - LLTextBoxEx(const Params& p); - friend class LLUICtrlFactory; - - private: - std::string mExpanderLabel; - - bool mExpanderVisible; - }; + /** + * Extended text box. "More" link will appear at end of text if + * text is too long to fit into text box size. + */ + class LLTextBoxEx : public LLTextEditor + { + public: + struct Params : public LLInitParam::Block + { + Params(); + }; + + // adds or removes "More" link as needed + /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); + /*virtual*/ void setText(const LLStringExplicit& text, const LLStyle::Params& input_params = LLStyle::Params()); + void setTextBase(const std::string& text) { LLTextBase::setText(text); } + + /** + * Returns difference between text box height and text height. + * Value is positive if text height is greater than text box height. + */ + virtual S32 getVerticalTextDelta(); + + /** + * Returns the height of text rect. + */ + S32 getTextPixelHeight(); + + /** + * Shows "More" link + */ + void showExpandText(); + + /** + * Hides "More" link + */ + void hideExpandText(); + + /** + * Shows the "More" link if the text is too high to be completely + * visible without expanding the text box. Hides that link otherwise. + */ + void hideOrShowExpandTextAsNeeded(); + + protected: + + LLTextBoxEx(const Params& p); + friend class LLUICtrlFactory; + + private: + std::string mExpanderLabel; + + bool mExpanderVisible; + }; public: - struct Params : public LLInitParam::Block - { - Optional textbox; + struct Params : public LLInitParam::Block + { + Optional textbox; + + Optional scroll; - Optional scroll; + Optional max_height; - Optional max_height; - - Optional bg_visible, - expanded_bg_visible; + Optional bg_visible, + expanded_bg_visible; - Optional bg_color, - expanded_bg_color; + Optional bg_color, + expanded_bg_color; - Params(); - }; + Params(); + }; - /** - * Sets text - */ - virtual void setText(const std::string& str); + /** + * Sets text + */ + virtual void setText(const std::string& str); - /** - * Returns text - */ - virtual std::string getText() const { return mText; } + /** + * Returns text + */ + virtual std::string getText() const { return mText; } - /** - * Sets text - */ - /*virtual*/ void setValue(const LLSD& value); + /** + * Sets text + */ + /*virtual*/ void setValue(const LLSD& value); - /** - * Returns text - */ - /*virtual*/ LLSD getValue() const { return mText; } + /** + * Returns text + */ + /*virtual*/ LLSD getValue() const { return mText; } - /** - * Collapses text box on focus_lost event - */ - /*virtual*/ void onFocusLost(); + /** + * Collapses text box on focus_lost event + */ + /*virtual*/ void onFocusLost(); - /** - * Collapses text box on top_lost event - */ - /*virtual*/ void onTopLost(); + /** + * Collapses text box on top_lost event + */ + /*virtual*/ void onTopLost(); - /** - * *HACK: Update the inner textbox shape. - */ - void updateTextShape(); - virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); + /** + * *HACK: Update the inner textbox shape. + */ + void updateTextShape(); + virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - /** - * Draws text box, collapses text box if its expanded and its parent's position changed - */ - /*virtual*/ void draw(); + /** + * Draws text box, collapses text box if its expanded and its parent's position changed + */ + /*virtual*/ void draw(); protected: - LLExpandableTextBox(const Params& p); - friend class LLUICtrlFactory; + LLExpandableTextBox(const Params& p); + friend class LLUICtrlFactory; - /** - * Expands text box. - * A scroll bar will appear if expanded height is greater than max_height - */ - virtual void expandTextBox(); + /** + * Expands text box. + * A scroll bar will appear if expanded height is greater than max_height + */ + virtual void expandTextBox(); - /** - * Collapses text box. - */ - virtual void collapseTextBox(); + /** + * Collapses text box. + */ + virtual void collapseTextBox(); - /** - * Collapses text box if it is expanded and its parent's position changed - */ - virtual void collapseIfPosChanged(); + /** + * Collapses text box if it is expanded and its parent's position changed + */ + virtual void collapseIfPosChanged(); - /** - * Updates text box rect to avoid horizontal scroll bar - */ - virtual void updateTextBoxRect(); + /** + * Updates text box rect to avoid horizontal scroll bar + */ + virtual void updateTextBoxRect(); - /** - * User clicked on "More" link - expand text box - */ - virtual void onExpandClicked(); + /** + * User clicked on "More" link - expand text box + */ + virtual void onExpandClicked(); - /** - * Saves collapsed text box's states(rect, parent rect...) - */ - virtual void saveCollapsedState(); + /** + * Saves collapsed text box's states(rect, parent rect...) + */ + virtual void saveCollapsedState(); - /** - * Recalculate text delta considering min_height and window rect. - */ - virtual S32 recalculateTextDelta(S32 text_delta); + /** + * Recalculate text delta considering min_height and window rect. + */ + virtual S32 recalculateTextDelta(S32 text_delta); - void setContentTrusted(bool trusted_content); + void setContentTrusted(bool trusted_content); protected: - std::string mText; - LLTextBoxEx* mTextBox; - LLScrollContainer* mScroll; + std::string mText; + LLTextBoxEx* mTextBox; + LLScrollContainer* mScroll; - S32 mMaxHeight; - LLRect mCollapsedRect; - bool mExpanded; - LLRect mParentRect; + S32 mMaxHeight; + LLRect mCollapsedRect; + bool mExpanded; + LLRect mParentRect; - bool mBGVisible; - bool mExpandedBGVisible; - LLUIColor mBGColor; - LLUIColor mExpandedBGColor; + bool mBGVisible; + bool mExpandedBGVisible; + LLUIColor mBGColor; + LLUIColor mExpandedBGColor; }; #endif //LL_LLEXPANDABLETEXTBOX_H -- cgit v1.2.3