Ticket #3905: 3905_COList_refresh.patch

File 3905_COList_refresh.patch, 1.4 KB (added by Imarok, 8 years ago)
  • source/gui/COList.cpp

     
    7878    float buffer_zone = 0.f;
    7979    GUI<float>::GetSetting(this, "buffer_zone", buffer_zone);
    8080
     81    CStr selectedColumn;
     82    GUI<CStr>::GetSetting(this, "selected_column", selectedColumn);
    8183    CStr defaultColumn;
    8284    GUI<CStr>::GetSetting(this, "default_column", defaultColumn);
    83     defaultColumn = "list_" + defaultColumn;
    8485
    8586    for (size_t c = 0; c < m_ObjectsDefs.size(); ++c)
    8687    {
     
    9091        *text = GetGUI()->GenerateText(gui_string, font, width, buffer_zone, this);
    9192        AddText(text);
    9293
    93         if (m_SelectedDef == (size_t)-1 && defaultColumn == m_ObjectsDefs[c].m_Id)
     94        if ("list_" + (selectedColumn.size() != 0 ? selectedColumn : defaultColumn) == m_ObjectsDefs[c].m_Id)
    9495            m_SelectedDef = c;
    9596    }
    9697
     
    9798    if (m_SelectedDef != (size_t)-1)
    9899        GUI<CStr>::SetSetting(this, "selected_column", m_ObjectsDefs[m_SelectedDef].m_Id.substr(5));
    99100
     101    int selectedColumnOrder;
     102    GUI<int>::GetSetting(this, "selected_column_order", selectedColumnOrder);
     103
     104    if (selectedColumnOrder != 0 && selectedColumnOrder != m_SelectedColumnOrder)
     105        m_SelectedColumnOrder = selectedColumnOrder;
     106
    100107    if (m_SelectedColumnOrder == 0)
    101108    {
    102109        GUI<int>::GetSetting(this, "default_column_order", m_SelectedColumnOrder);