Ticket #4397: 4397_selection_filter_order.2.patch

File 4397_selection_filter_order.2.patch, 1.8 KB (added by Vladislav Belov, 7 years ago)

Fix the selection, filter reset and order

  • binaries/data/mods/mod/gui/modmod/modmod.js

     
    270270function resetFilters()
    271271{
    272272    // Reset states of gui objects.
    273     Engine.GetGUIObjectByName("modTypeFilter").selected = 0;
     273    Engine.GetGUIObjectByName("modGenericFilter").caption = "";
    274274    Engine.GetGUIObjectByName("negateFilter").checked = false;
    275     Engine.GetGUIObjectByName("modGenericFilter").caption = "";
     275    Engine.GetGUIObjectByName("isOrderDescending").checked = false;
    276276
    277277    // NOTE: Calling generateModsLists() is not needed as the selection changes and that calls applyFilters()
     278    Engine.GetGUIObjectByName("modTypeFilter").selected = 0;
    278279}
    279280
    280281function applyFilters()
    281282{
    282     Engine.GetGUIObjectByName("modsAvailableList").selected = -1;
    283     Engine.GetGUIObjectByName("modsEnabledList").selected = -1;
     283    // Save selected rows
     284    let modsAvailableList = Engine.GetGUIObjectByName("modsAvailableList");
     285    let modsEnabledList = Engine.GetGUIObjectByName("modsEnabledList");
     286    let selectedModAvailableFolder = modsAvailableList.list_modFolderName[modsAvailableList.selected];
     287    let selectedModEnabledFolder = modsEnabledList.list_modFolderName[modsEnabledList.selected];
     288
     289    // Remove selected rows to prevent a link to a non existing item
     290    modsAvailableList.selected = -1;
     291    modsEnabledList.selected = -1;
     292
    284293    generateModsLists();
     294
     295    // Restore previously selected rows
     296    modsAvailableList.selected = modsAvailableList.list_modFolderName.findIndex(folder => folder == selectedModAvailableFolder);
     297    modsEnabledList.selected = modsEnabledList.list_modFolderName.findIndex(folder => folder == selectedModEnabledFolder);
    285298}
    286299
    287300/**