Ticket #3905: COList.cpp.patch

File COList.cpp.patch, 2.1 KB (added by Imarok, 8 years ago)

Do not show the sort sprites (little arrows) when list is not sortable.

  • source/gui/COList.cpp

     
    359359    int selectedColumnOrder;
    360360    GUI<int>::GetSetting(this, "selected_column_order", selectedColumnOrder);
    361361
    362     CGUISpriteInstance* sprite_order;
    363     CGUISpriteInstance* sprite_not_sorted;
    364     if (selectedColumnOrder == 0)
    365         LOGERROR("selected_column_order must not be 0");
    366     else if (selectedColumnOrder != -1)
    367         GUI<CGUISpriteInstance>::GetSettingPointer(this, "sprite_asc", sprite_order);
    368     else
    369         GUI<CGUISpriteInstance>::GetSettingPointer(this, "sprite_desc", sprite_order);
     362    bool sortable;
     363    GUI<bool>::GetSetting(this, "sortable", sortable);
     364
     365    CGUISpriteInstance* sprite_not_sorted; 
    370366    GUI<CGUISpriteInstance>::GetSettingPointer(this, "sprite_not_sorted", sprite_not_sorted);
    371367
    372368    CStr selectedColumn;
     
    385381
    386382        CPos leftTopCorner = m_CachedActualSize.TopLeft() + CPos(xpos, 0);
    387383
    388         CGUISpriteInstance* sprite;
    389         // If the list sorted by current column
    390         if (selectedColumn == m_Columns[col].m_Id)
    391             sprite = sprite_order;
    392         else
    393             sprite = sprite_not_sorted;
     384        if (sortable)
     385        {
     386            CGUISpriteInstance* sprite;
     387            // If the list sorted by current column
     388            if (selectedColumn == m_Columns[col].m_Id)
     389            {
     390                if (selectedColumnOrder == 0)
     391                    LOGERROR("selected_column_order must not be 0");
     392                if (selectedColumnOrder != -1)
     393                    GUI<CGUISpriteInstance>::GetSettingPointer(this, "sprite_asc", sprite);
     394                else
     395                    GUI<CGUISpriteInstance>::GetSettingPointer(this, "sprite_desc", sprite);
     396            }
     397            else
     398                sprite = sprite_not_sorted;
    394399
    395         // Draw sort arrows in colum header
    396         GetGUI()->DrawSprite(*sprite, cell_id, bz + 0.1f, CRect(leftTopCorner + CPos(width - 16, 0), leftTopCorner + CPos(width, 16)));
    397 
     400            // Draw sort arrows in colum header
     401            GetGUI()->DrawSprite(*sprite, cell_id, bz + 0.1f, CRect(leftTopCorner + CPos(width - 16, 0), leftTopCorner + CPos(width, 16)));
     402        }
    398403        // Draw column header text
    399404        DrawText(col, color, leftTopCorner + CPos(0, 4), bz + 0.1f, rect_head);
    400405        xpos += width;