diff --git a/indra/llui/llscrolllistcolumn.cpp b/indra/llui/llscrolllistcolumn.cpp index f03f407d8..59c991512 100644 --- a/indra/llui/llscrolllistcolumn.cpp +++ b/indra/llui/llscrolllistcolumn.cpp @@ -43,6 +43,7 @@ const S32 MIN_COLUMN_WIDTH = 20; LLScrollColumnHeader::LLScrollColumnHeader(const std::string& name, const LLRect& rect, LLScrollListColumn* column, const std::string& unselected_image_name, const std::string& selected_image_name) : LLButton(name, rect, unselected_image_name, selected_image_name, LLStringUtil::null, NULL, LLFontGL::getFontSansSerifSmall()), mColumn(column), + mDrawArrow(true), mHasResizableElement(FALSE) { setClickedCallback(boost::bind(&LLScrollColumnHeader::onClick, this, _2)); @@ -65,20 +66,23 @@ LLScrollColumnHeader::~LLScrollColumnHeader() void LLScrollColumnHeader::draw() { - std::string sort_column = mColumn->mParentCtrl->getSortColumnName(); - BOOL draw_arrow = !mColumn->mLabel.empty() - && mColumn->mParentCtrl->isSorted() - // check for indirect sorting column as well as column's sorting name - && (sort_column == mColumn->mSortingColumn || sort_column == mColumn->mName); + if (mDrawArrow) + { + std::string sort_column = mColumn->mParentCtrl->getSortColumnName(); + BOOL draw_arrow = !mColumn->mLabel.empty() + && mColumn->mParentCtrl->isSorted() + // check for indirect sorting column as well as column's sorting name + && (sort_column == mColumn->mSortingColumn || sort_column == mColumn->mName); - BOOL is_ascending = mColumn->mParentCtrl->getSortAscending(); - if (draw_arrow) - { - setImageOverlay(is_ascending ? "up_arrow.tga" : "down_arrow.tga", LLFontGL::RIGHT, LLColor4::white); - } - else - { - setImageOverlay(LLUUID::null); + BOOL is_ascending = mColumn->mParentCtrl->getSortAscending(); + if (draw_arrow) + { + setImageOverlay(is_ascending ? "up_arrow.tga" : "down_arrow.tga", LLFontGL::RIGHT, LLColor4::white); + } + else + { + setImageOverlay(LLUUID::null); + } } // Draw children diff --git a/indra/llui/llscrolllistcolumn.h b/indra/llui/llscrolllistcolumn.h index d76aedf55..c7cea5976 100644 --- a/indra/llui/llscrolllistcolumn.h +++ b/indra/llui/llscrolllistcolumn.h @@ -51,6 +51,8 @@ public: /*virtual*/ void handleReshape(const LLRect& new_rect, bool by_user = false); LLScrollListColumn* getColumn() { return mColumn; } + // Singu Note: Toggles drawing the sort arrow altogether + void setDrawArrow(bool draw_arrow) { mDrawArrow = draw_arrow; } void setHasResizableElement(BOOL resizable); void updateResizeBars(); BOOL canResize(); @@ -60,6 +62,7 @@ public: private: LLScrollListColumn* mColumn; + bool mDrawArrow; LLResizeBar* mResizeBar; BOOL mHasResizableElement; }; diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 62eba0e97..bae86672c 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -2851,6 +2851,7 @@ void LLScrollListCtrl::addColumn(const LLScrollListColumn::Params& column_params if (column_params.header.image.isProvided()) { new_column->mHeader = new LLScrollColumnHeader("btn_" + name, temp_rect, new_column, column_params.header.image, column_params.header.image); + new_column->mHeader->setDrawArrow(false); } else { @@ -2858,6 +2859,7 @@ void LLScrollListCtrl::addColumn(const LLScrollListColumn::Params& column_params if (column_params.header.image_overlay.isProvided()) { new_column->mHeader->setImageOverlay(column_params.header.image_overlay); + new_column->mHeader->setDrawArrow(false); } else {