Ticket #4397: 4397_selection_filter.patch

File 4397_selection_filter.patch, 1.7 KB (added by Vladislav Belov, 7 years ago)

Fix the selection and filter reset

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

     
    270270function resetFilters()
    271271{
    272272    // Reset states of gui objects.
     273    Engine.GetGUIObjectByName("modGenericFilter").caption = "";
    273274    Engine.GetGUIObjectByName("modTypeFilter").selected = 0;
    274275    Engine.GetGUIObjectByName("negateFilter").checked = false;
    275     Engine.GetGUIObjectByName("modGenericFilter").caption = "";
    276276
    277277    // NOTE: Calling generateModsLists() is not needed as the selection changes and that calls applyFilters()
    278278}
     
    279279
    280280function applyFilters()
    281281{
    282     Engine.GetGUIObjectByName("modsAvailableList").selected = -1;
    283     Engine.GetGUIObjectByName("modsEnabledList").selected = -1;
     282    // Save selected rows
     283    let modsAvailableList = Engine.GetGUIObjectByName("modsAvailableList");
     284    let modsEnabledList = Engine.GetGUIObjectByName("modsEnabledList");
     285    let selectedModAvailableFolder = modsAvailableList.list_modFolderName[modsAvailableList.selected];
     286    let selectedModEnabledFolder = modsEnabledList.list_modFolderName[modsEnabledList.selected];
     287
     288    // Remove selected rows to prevent a link to a non existing item
     289    modsAvailableList.selected = -1;
     290    modsEnabledList.selected = -1;
     291
    284292    generateModsLists();
     293
     294    // Restore previous selected rows
     295    modsAvailableList.selected = modsAvailableList.list_modFolderName.findIndex(folder => folder == selectedModAvailableFolder);
     296    modsEnabledList.selected = modsEnabledList.list_modFolderName.findIndex(folder => folder == selectedModEnabledFolder);
    285297}
    286298
    287299/**