[LLScrollColumnHeader] Fix the ImageOverlay icons being overwritten every draw and thus destroying our image_overlay parameter!
Seriously, whose idea was that? Ignore space changes and this will be a lot easier for all of us.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user