Ticket #3742: restore_selection_v1.patch

File restore_selection_v1.patch, 7.0 KB (added by Imarok, 8 years ago)

Restores the selected column, selected directory, sorting order and the filter settings

  • binaries/data/mods/public/gui/replaymenu/replay_actions.js

     
    3333            }
    3434        },
    3535        "savedGUIData": "",
    36         "isReplay" : true
     36        "isReplay" : true,
     37        "replayMenuData" : {
     38            "selectedDirectory" : replayDirectory,
     39            "selectedColumn" : Engine.GetGUIObjectByName("replaySelection").selected_column,
     40            "selectedColumnOrder" : Engine.GetGUIObjectByName("replaySelection").selected_column_order,
     41            "selectedFilters" : {
     42                "date" : Engine.GetGUIObjectByName("dateTimeFilter").selected,
     43                "playernames" : Engine.GetGUIObjectByName("playersFilter").caption,
     44                "mapName" : Engine.GetGUIObjectByName("mapNameFilter").selected,
     45                "mapSize" : Engine.GetGUIObjectByName("mapSizeFilter").selected,
     46                "popCap" : Engine.GetGUIObjectByName("populationFilter").selected,
     47                "duration" : Engine.GetGUIObjectByName("durationFilter").selected
     48            }
     49        }
    3750    });
    3851}
    3952
     
    7992    // Open summary screen
    8093    summary.isReplay = true;
    8194    summary.gameResult = translate("Scores at the end of the game.");
    82     summary.replayDirectory = g_ReplaysFiltered[selected].directory;
     95    summary.replayMenuData = {
     96        "selectedDirectory" : g_ReplaysFiltered[selected].directory,
     97        "selectedColumn" : Engine.GetGUIObjectByName("replaySelection").selected_column,
     98        "selectedColumnOrder" : Engine.GetGUIObjectByName("replaySelection").selected_column_order,
     99        "selectedFilters" : {
     100            "date" : Engine.GetGUIObjectByName("dateTimeFilter").selected,
     101            "playernames" : Engine.GetGUIObjectByName("playersFilter").caption,
     102            "mapName" : Engine.GetGUIObjectByName("mapNameFilter").selected,
     103            "mapSize" : Engine.GetGUIObjectByName("mapSizeFilter").selected,
     104            "popCap" : Engine.GetGUIObjectByName("populationFilter").selected,
     105            "duration" : Engine.GetGUIObjectByName("durationFilter").selected
     106        }
     107    };
    83108    Engine.SwitchGuiPage("page_summary.xml", summary);
    84109}
    85110
  • binaries/data/mods/public/gui/replaymenu/replay_menu.js

     
    4141/**
    4242 * Initializes globals, loads replays and displays the list.
    4343 */
    44 function init()
     44function init(data)
    4545{
     46    if (data && data.replayMenuData)
     47        {
     48            g_selectedReplayDirectory = data.replayMenuData.selectedDirectory;
     49            Engine.GetGUIObjectByName("dateTimeFilter").selected = data.replayMenuData.selectedFilters.date;
     50            Engine.GetGUIObjectByName("playersFilter").caption = data.replayMenuData.selectedFilters.playernames;
     51            Engine.GetGUIObjectByName("mapNameFilter").selected = data.replayMenuData.selectedFilters.mapName;
     52            Engine.GetGUIObjectByName("mapSizeFilter").selected = data.replayMenuData.selectedFilters.mapSize;
     53            Engine.GetGUIObjectByName("populationFilter").selected = data.replayMenuData.selectedFilters.popCap;
     54            Engine.GetGUIObjectByName("durationFilter").selected = data.replayMenuData.selectedFilters.duration;
     55            Engine.GetGUIObjectByName("replaySelection").selected_column = data.replayMenuData.selectedColumn;
     56            Engine.GetGUIObjectByName("replaySelection").selected_column_order = data.replayMenuData.selectedColumnOrder;
     57        }
     58
    4659    if (!g_Settings)
    4760    {
    4861        Engine.SwitchGuiPage("page_pregame.xml");
  • binaries/data/mods/public/gui/session/session.js

     
    6464 **/
    6565var g_CivData = {};
    6666
     67/**
     68* For restoring selection, order, filters when returning to the replay menu
     69**/
     70var g_ReplayMenuData;
     71
    6772var g_PlayerAssignments = { "local": { "name": translate("You"), "player": 1 } };
    6873
    6974/**
     
    213218        g_PlayerAssignments = initData.playerAssignments;
    214219        g_MatchID = initData.attribs.matchID;
    215220
     221        g_ReplayMenuData = initData.replayMenuData;
     222
    216223        // Cache the player data
    217224        // (This may be updated at runtime by handleNetMessage)
    218225        g_Players = getPlayerData(g_PlayerAssignments);
     
    473480        Engine.SaveReplayMetadata(JSON.stringify(summary));
    474481
    475482    summary.replayDirectory = Engine.GetCurrentReplayDirectory();
     483    summary.replayMenuData = g_ReplayMenuData;
    476484
    477485    Engine.EndGame();
    478486
  • binaries/data/mods/public/gui/summary/summary.js

     
    134134    if (Engine.HasXmppClient())
    135135        Engine.StopXmppClient();
    136136
    137     Engine.StartVisualReplay(g_GameData.replayDirectory);
     137    Engine.StartVisualReplay(g_GameData.replayMenuData.selectedDirectory);
    138138    Engine.SwitchGuiPage("page_loading.xml", {
    139         "attribs": Engine.GetReplayAttributes(g_GameData.replayDirectory),
     139        "attribs": Engine.GetReplayAttributes(g_GameData.replayMenuData.selectedDirectory),
    140140        "isNetworked" : false,
    141141        "playerAssignments": {
    142142            "local" : {
     
    145145            }
    146146        },
    147147        "savedGUIData": "",
    148         "isReplay" : true
     148        "isReplay" : true,
     149        "replayMenuData" : g_GameData.replayMenuData,
    149150    });
    150151}
    151152
     
    159160    Engine.GetGUIObjectByName("timeElapsed").caption = sprintf(translate("Game time elapsed: %(time)s"), { "time": timeToString(data.timeElapsed) });
    160161    Engine.GetGUIObjectByName("summaryText").caption = data.gameResult;
    161162    Engine.GetGUIObjectByName("mapName").caption = sprintf(translate("%(mapName)s - %(mapType)s"), { "mapName": translate(data.mapSettings.Name), "mapType": mapSize ? mapSize.LongName : (mapType ? mapType.Title : "") });
    162     Engine.GetGUIObjectByName("replayButton").hidden = g_GameData.isInGame || !g_GameData.replayDirectory;
     163    Engine.GetGUIObjectByName("replayButton").hidden = g_GameData.isInGame || !g_GameData.replayMenuData.selectedDirectory;
    163164
    164165    // Panels
    165166    g_PlayerCount = data.playerStates.length - 1;
  • binaries/data/mods/public/gui/summary/summary.xml

     
    187187                }
    188188                else if (g_GameData.isReplay)
    189189                {
    190                     Engine.SwitchGuiPage("page_replaymenu.xml");
     190                    Engine.SwitchGuiPage("page_replaymenu.xml",{"replayMenuData" : g_GameData.replayMenuData});
    191191                }
    192192                else if (!Engine.HasXmppClient())
    193193                {