From a1eaafeb4407361f92772bfbcd907b016eb366dc Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 23 Apr 2019 11:18:13 +0300 Subject: [PATCH] (b807790e4) Created a Bug Report button in settings screen, which links the player either to the Barotrauma feedback or Github issue form --- .../BarotraumaClient/Source/GameMain.cs | 25 +++++++++++++++++++ .../BarotraumaClient/Source/GameSettings.cs | 13 +++++++--- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/Barotrauma/BarotraumaClient/Source/GameMain.cs b/Barotrauma/BarotraumaClient/Source/GameMain.cs index 1f09209bb..7eba4b6d0 100644 --- a/Barotrauma/BarotraumaClient/Source/GameMain.cs +++ b/Barotrauma/BarotraumaClient/Source/GameMain.cs @@ -756,6 +756,31 @@ namespace Barotrauma Config.SaveNewPlayerConfig(); } + // ToDo: Move texts/links to localization, when possible. + public void ShowBugReporter() + { + var msgBox = new GUIMessageBox("", ""); + var linkHolder = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 0.5f), msgBox.Content.RectTransform)) { Stretch = true, RelativeSpacing = 0.05f }; + + List> links = new List>() + { + new Pair("Barotrauma Feedback Form","https://barotraumagame.com/feedback"), + new Pair("Github Issue Form (Needs account)","https://github.com/Regalis11/Barotrauma/issues/new?template=bug_report.md") + }; + foreach (var link in links) + { + new GUIButton(new RectTransform(new Vector2(1.0f, 0.2f), linkHolder.RectTransform), link.First, style: "MainMenuGUIButton", textAlignment: Alignment.Left) + { + UserData = link.Second, + OnClicked = (btn, userdata) => + { + Process.Start(userdata as string); + return true; + } + }; + } + } + static bool waitForKeyHit = true; public CoroutineHandle ShowLoading(IEnumerable loader, bool waitKeyHit = true) { diff --git a/Barotrauma/BarotraumaClient/Source/GameSettings.cs b/Barotrauma/BarotraumaClient/Source/GameSettings.cs index cf301e67d..e80d9fa8d 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSettings.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSettings.cs @@ -6,6 +6,7 @@ using Microsoft.Xna.Framework.Input; using OpenTK.Audio.OpenAL; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; namespace Barotrauma @@ -80,13 +81,19 @@ namespace Barotrauma var leftPanel = new GUILayoutGroup(new RectTransform(new Vector2(0.25f, 1.0f), settingsFramePadding.RectTransform, Anchor.TopLeft)); - new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.05f), leftPanel.RectTransform), - TextManager.Get("Settings"), textAlignment: Alignment.TopLeft, font: GUI.LargeFont) + var settingsTitle = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.05f), leftPanel.RectTransform), + TextManager.Get("Settings"), textAlignment: Alignment.CenterLeft, font: GUI.LargeFont) { ForceUpperCase = true }; + new GUIButton(new RectTransform(new Vector2(1.0f, 0.75f), settingsTitle.RectTransform, Anchor.CenterRight), style: "GUIBugButton") + { + ToolTip = "Bug Reporter", + OnClicked = (btn, userdata) => { GameMain.Instance.ShowBugReporter(); return true; } + }; + var generalLayoutGroup = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 1.0f), leftPanel.RectTransform, Anchor.TopLeft)); - new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.05f), generalLayoutGroup.RectTransform), TextManager.Get("ContentPackages")); + new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.045f), generalLayoutGroup.RectTransform), TextManager.Get("ContentPackages")); var contentPackageList = new GUIListBox(new RectTransform(new Vector2(1.0f, 0.75f), generalLayoutGroup.RectTransform)) { CanBeFocused = false,