From 9a1efbc08b71b127633bfefb8904f6adeff98fdf Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 29 Jan 2017 17:34:36 +0000 Subject: [PATCH] Simplify asset browser error message display. --- .../Widgets/Logic/AssetBrowserLogic.cs | 26 ++++++------------- mods/cnc/chrome/assetbrowser.yaml | 2 +- mods/ra/chrome/assetbrowser.yaml | 2 +- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs index 52378bcd69..bebcb5e969 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs @@ -45,12 +45,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic Sprite[] currentSprites; VqaPlayerWidget player = null; bool isVideoLoaded = false; + bool isLoadError = false; int currentFrame; - LabelWidget errorLabelWidget; - SpriteFont errorFont; - bool IsErrorLabelVisible { get { return errorLabelWidget != null && errorLabelWidget.Visible; } } - [ObjectCreator.UseCtor] public AssetBrowserLogic(Widget widget, Action onExit, ModData modData, World world, Dictionary logicArgs) { @@ -88,16 +85,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic spriteWidget.GetSprite = () => currentSprites != null ? currentSprites[currentFrame] : null; currentPalette = spriteWidget.Palette; spriteWidget.GetPalette = () => currentPalette; - spriteWidget.IsVisible = () => !isVideoLoaded && !IsErrorLabelVisible; + spriteWidget.IsVisible = () => !isVideoLoaded && !isLoadError; } var playerWidget = panel.GetOrNull("PLAYER"); if (playerWidget != null) - playerWidget.IsVisible = () => isVideoLoaded && !IsErrorLabelVisible; + playerWidget.IsVisible = () => isVideoLoaded && !isLoadError; - errorLabelWidget = panel.GetOrNull("ERROR"); + var errorLabelWidget = panel.GetOrNull("ERROR"); if (errorLabelWidget != null) - errorFont = Game.Renderer.Fonts[errorLabelWidget.Font]; + errorLabelWidget.IsVisible = () => isLoadError; var paletteDropDown = panel.GetOrNull("PALETTE_SELECTOR"); if (paletteDropDown != null) @@ -292,6 +289,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic var item = ScrollItemWidget.Setup(template, () => currentFilename == filename, () => { LoadAsset(filename); }); + item.Get("TITLE").GetText = () => filepath; item.IsVisible = () => { @@ -322,7 +320,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (!modData.DefaultFileSystem.Exists(filename)) return false; - errorLabelWidget.Visible = false; + isLoadError = false; try { @@ -346,15 +344,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic } catch (Exception ex) { - if (errorLabelWidget != null) - { - errorLabelWidget.Text = WidgetUtils.TruncateText(errorLabelWidget.Text.Replace("{filename}", filename), - errorLabelWidget.Bounds.Width, errorFont); - - currentSprites = new Sprite[0]; - errorLabelWidget.Visible = true; - } - + isLoadError = true; Log.AddChannel("assetbrowser", "assetbrowser.log"); Log.Write("assetbrowser", "Error reading {0}:{3} {1}{3}{2}", filename, ex.Message, ex.StackTrace, Environment.NewLine); diff --git a/mods/cnc/chrome/assetbrowser.yaml b/mods/cnc/chrome/assetbrowser.yaml index b70d781f13..58463611f5 100644 --- a/mods/cnc/chrome/assetbrowser.yaml +++ b/mods/cnc/chrome/assetbrowser.yaml @@ -111,7 +111,7 @@ Container@ASSETBROWSER_PANEL: Height: 325 Align: Center Visible: false - Text: Error displaying {filename} check assetbrowser.log + Text: Error displaying file. See assetbrowser.log for details. Container@FRAME_SELECTOR: X: 190 Y: 395 diff --git a/mods/ra/chrome/assetbrowser.yaml b/mods/ra/chrome/assetbrowser.yaml index c7cf5a0237..7e27a8a4c2 100644 --- a/mods/ra/chrome/assetbrowser.yaml +++ b/mods/ra/chrome/assetbrowser.yaml @@ -106,7 +106,7 @@ Background@ASSETBROWSER_PANEL: Height: 330 Align: Center Visible: false - Text: Error displaying {filename} check assetbrowser.log + Text: Error displaying file. See assetbrowser.log for details. Container@FRAME_SELECTOR: X: 190 Y: 425