Improve replay metadata and the replay browser
List of changes: * Better and more filters with new layout, for both mods. * Rename/Delete/Detele all functionality. * Simplified ReplayMetadata class considerably by introducing a new GameInformation data object. The new GameInformation class contains more information than previously available so the new solution is not compatible with old replays, meaning it can't read old replays. * Better and cleaner game information gathering in order to be written at the end of the replay file. * Revert changes to ReplayConnection, no longer necessary. * Better exception message on missing sprites and fonts. * New "SpawnOccupant" class that holds all the information needed by the MapPreviewWidget to visualize a spawn point. It was using Session.Client before and it was necessary to separate it to be able to show information not available at lobby time. * Fix keyboard focus UI bug when closing a window would not remove focus.
This commit is contained in:
@@ -1,80 +1,250 @@
|
||||
Container@REPLAYBROWSER_PANEL:
|
||||
Logic: ReplayBrowserLogic
|
||||
X: (WINDOW_RIGHT - WIDTH)/2
|
||||
Y: (WINDOW_BOTTOM - 500)/2
|
||||
Width: 520
|
||||
Height: 535
|
||||
Y: (WINDOW_BOTTOM - HEIGHT)/2
|
||||
Width: 780
|
||||
Height: 500
|
||||
Children:
|
||||
Label@TITLE:
|
||||
Width: 520
|
||||
Width: PARENT_RIGHT
|
||||
Y: 0-25
|
||||
Font: BigBold
|
||||
Contrast: true
|
||||
Align: Center
|
||||
Text: Replay Viewer
|
||||
Background@bg:
|
||||
Width: 520
|
||||
Height: 500
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Background: panel-black
|
||||
Children:
|
||||
ScrollPanel@REPLAY_LIST:
|
||||
X: 15
|
||||
Y: 15
|
||||
Width: 282
|
||||
Height: PARENT_BOTTOM-30
|
||||
Container@FILTER_AND_MANAGE_CONTAINER:
|
||||
X: 20
|
||||
Y: 20
|
||||
Width: 280
|
||||
Height: PARENT_BOTTOM - 40
|
||||
Children:
|
||||
ScrollItem@REPLAY_TEMPLATE:
|
||||
Width: PARENT_RIGHT-27
|
||||
Height: 25
|
||||
X: 2
|
||||
Y: 0
|
||||
Visible: false
|
||||
Container@FILTERS:
|
||||
Width: 280
|
||||
Height: 320
|
||||
Children:
|
||||
Label@TITLE:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT-20
|
||||
Label@FILTERS_TITLE:
|
||||
X: 85
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Background@MAP_BG:
|
||||
X: PARENT_RIGHT-WIDTH-15
|
||||
Y: 15
|
||||
Width: 194
|
||||
Height: 194
|
||||
Background: panel-gray
|
||||
Font: Bold
|
||||
Align: Center
|
||||
Text: Filter
|
||||
Label@FLT_GAMETYPE_DESC:
|
||||
X: 0
|
||||
Y: 30
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Type:
|
||||
Align: Right
|
||||
DropDownButton@FLT_GAMETYPE_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 30
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Any
|
||||
Label@FLT_DATE_DESC:
|
||||
X: 0
|
||||
Y: 60
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Date:
|
||||
Align: Right
|
||||
DropDownButton@FLT_DATE_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 60
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Any
|
||||
Label@FLT_DURATION_DESC:
|
||||
X: 0
|
||||
Y: 90
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Duration:
|
||||
Align: Right
|
||||
DropDownButton@FLT_DURATION_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 90
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Any
|
||||
Label@FLT_MAPNAME_DESC:
|
||||
X: 0
|
||||
Y: 120
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Map:
|
||||
Align: Right
|
||||
DropDownButton@FLT_MAPNAME_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 120
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Any
|
||||
Label@FLT_PLAYER_DESC:
|
||||
X: 0
|
||||
Y: 150
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Player:
|
||||
Align: Right
|
||||
DropDownButton@FLT_PLAYER_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 150
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Anyone
|
||||
Label@FLT_OUTCOME_DESC:
|
||||
X: 0
|
||||
Y: 180
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Outcome:
|
||||
Align: Right
|
||||
DropDownButton@FLT_OUTCOME_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 180
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Any
|
||||
Label@FLT_FACTION_DESC:
|
||||
X: 0
|
||||
Y: 210
|
||||
Width: 80
|
||||
Height: 25
|
||||
Text: Faction:
|
||||
Align: Right
|
||||
DropDownButton@FLT_FACTION_DROPDOWNBUTTON:
|
||||
X: 85
|
||||
Y: 210
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Any
|
||||
Button@FLT_RESET_BUTTON:
|
||||
X: 85
|
||||
Y: 250
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 25
|
||||
Text: Reset Filters
|
||||
Font: Bold
|
||||
Container@MANAGEMENT:
|
||||
X: 85
|
||||
Y: PARENT_BOTTOM - 115
|
||||
Width: PARENT_RIGHT - 85
|
||||
Height: 115
|
||||
Children:
|
||||
Label@MANAGE_TITLE:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Font: Bold
|
||||
Align: Center
|
||||
Text: Manage
|
||||
Button@MNG_RENSEL_BUTTON:
|
||||
Y: 30
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Text: Rename
|
||||
Font: Bold
|
||||
Key: F2
|
||||
Button@MNG_DELSEL_BUTTON:
|
||||
Y: 60
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Text: Delete
|
||||
Font: Bold
|
||||
Key: Delete
|
||||
Button@MNG_DELALL_BUTTON:
|
||||
Y: 90
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Text: Delete All
|
||||
Font: Bold
|
||||
Container@REPLAY_LIST_CONTAINER:
|
||||
X: 310
|
||||
Y: 20
|
||||
Width: 245
|
||||
Height: PARENT_BOTTOM - 20 - 20
|
||||
Children:
|
||||
MapPreview@MAP_PREVIEW:
|
||||
X: 1
|
||||
Y: 1
|
||||
Width: 192
|
||||
Height: 192
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@REPLAY_INFO:
|
||||
X: PARENT_RIGHT-WIDTH-15
|
||||
Y: 15
|
||||
Width: 194
|
||||
Height: PARENT_BOTTOM - 15
|
||||
Children:
|
||||
Label@MAP_TITLE:
|
||||
Y: 197
|
||||
Label@REPLAYBROWSER_LABEL_TITLE:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Text: Choose Replay
|
||||
Align: Center
|
||||
Font: Bold
|
||||
ScrollPanel@REPLAY_LIST:
|
||||
X: 0
|
||||
Y: 30
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM - 30
|
||||
CollapseHiddenChildren: True
|
||||
Children:
|
||||
ScrollItem@REPLAY_TEMPLATE:
|
||||
Width: PARENT_RIGHT-27
|
||||
Height: 25
|
||||
X: 2
|
||||
Visible: false
|
||||
Children:
|
||||
Label@TITLE:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT-20
|
||||
Height: 25
|
||||
Container@MAP_BG_CONTAINER:
|
||||
X: PARENT_RIGHT - WIDTH - 20
|
||||
Y: 20
|
||||
Width: 194
|
||||
Height: 30 + 194
|
||||
Children:
|
||||
Label@MAP_BG_TITLE:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Text: Preview
|
||||
Align: Center
|
||||
Font: Bold
|
||||
Background@MAP_BG:
|
||||
Y: 30
|
||||
Width: 194
|
||||
Height: 194
|
||||
Background: panel-gray
|
||||
Children:
|
||||
MapPreview@MAP_PREVIEW:
|
||||
X: 1
|
||||
Y: 1
|
||||
Width: 192
|
||||
Height: 192
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@REPLAY_INFO:
|
||||
X: PARENT_RIGHT - WIDTH - 20
|
||||
Y: 20 + 30+194 + 10
|
||||
Width: 194
|
||||
Height: PARENT_BOTTOM - 20 - 30-194 - 10 - 20
|
||||
Children:
|
||||
Label@MAP_TITLE:
|
||||
Y: 0
|
||||
Width: PARENT_RIGHT
|
||||
Height: 15
|
||||
Font: Bold
|
||||
Align: Center
|
||||
Label@MAP_TYPE:
|
||||
Y: 212
|
||||
Y: 15
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Height: 15
|
||||
Font: TinyBold
|
||||
Align: Center
|
||||
Label@DURATION:
|
||||
Y: 225
|
||||
Y: 30
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Height: 15
|
||||
Font: Tiny
|
||||
Align: Center
|
||||
ScrollPanel@PLAYER_LIST:
|
||||
Y: 250
|
||||
Y: 50
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM - 250 - 15
|
||||
Height: PARENT_BOTTOM - 50
|
||||
IgnoreChildMouseOver: true
|
||||
Children:
|
||||
ScrollItem@HEADER:
|
||||
@@ -98,7 +268,7 @@ Container@REPLAYBROWSER_PANEL:
|
||||
Children:
|
||||
Image@FLAG:
|
||||
X: 4
|
||||
Y: 4
|
||||
Y: 6
|
||||
Width: 32
|
||||
Height: 16
|
||||
Label@LABEL:
|
||||
@@ -112,14 +282,14 @@ Container@REPLAYBROWSER_PANEL:
|
||||
Button@CANCEL_BUTTON:
|
||||
Key: escape
|
||||
X: 0
|
||||
Y: 499
|
||||
Y: PARENT_BOTTOM - 1
|
||||
Width: 140
|
||||
Height: 35
|
||||
Text: Back
|
||||
Button@WATCH_BUTTON:
|
||||
Key: return
|
||||
X: 380
|
||||
Y: 499
|
||||
X: PARENT_RIGHT - 140
|
||||
Y: PARENT_BOTTOM - 1
|
||||
Width: 140
|
||||
Height: 35
|
||||
Text: Watch
|
||||
|
||||
Reference in New Issue
Block a user