View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002512 | NoesisGUI | Unity3D | public | 2023-02-16 18:20 | 2023-05-11 09:39 |
Reporter | stonstad | Assigned To | sfernandez | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 3.1.7 | ||||
Target Version | 3.2 | Fixed in Version | 3.2.0 | ||
Summary | 0002512: Consistent ReloadXaml Crash | ||||
Description | Noesis appears to be executing events, i.e. OnButtonUnchecked during ReloadXaml(). Asset Pipeline Refresh (id=1c725f063e803cf40883ab381724b9ec): Total: 0.344 seconds - Initiated by RefreshV2(AllowForceSynchronousImport) Uploading Crash Report NullReferenceException: Object reference not set to an instance of an object at StellarConquest.Presentation.Unity.UI.AssetsScreen.Build (System.Boolean showFactionAssets, System.Boolean showPersonalAssets, System.Boolean showPlanets, System.Boolean showStations, System.Boolean showShips) [0x000b4] in C:\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\User Interface\Screens\Game\Static\Assets\AssetsScreen.cs:113 at StellarConquest.Presentation.Unity.UI.AssetsScreen.OnButtonUnchecked (System.Object sender, Noesis.RoutedEventArgs e) [0x0000e] in C:\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\User Interface\Screens\Game\Static\Assets\AssetsScreen.cs:662 at Noesis.RoutedEventArgs.InvokeHandler (System.Delegate handler, System.IntPtr sender, System.IntPtr args) [0x00011] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Proxies\RoutedEventArgs.cs:50 at Noesis.EventManager.InvokeHandler (System.IntPtr routedEventPtr, System.Delegate handler, System.IntPtr sender, System.IntPtr args) [0x00026] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Events.cs:578 at Noesis.EventHandlerStore.RaiseRoutedEvent (System.IntPtr cPtrType, System.IntPtr cPtr, System.IntPtr routedEvent, System.IntPtr sender, System.IntPtr e) [0x00084] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Events.cs:267 UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object) UnityEngine.DebugLogHandler:LogException(Exception, Object) UnityEngine.Logger:LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) NoesisUnity:OnUnhandledException(Exception) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\NoesisUnity.cs:374) Noesis.Error:UnhandledException(Exception) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Error.cs:18) Noesis.EventHandlerStore:RaiseRoutedEvent(IntPtr, IntPtr, IntPtr, IntPtr, IntPtr) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Events.cs:272) Noesis.XamlProvider:Noesis_RaiseXamlChanged(HandleRef, String) Noesis.XamlProvider:RaiseXamlChanged(Uri) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Proxies\XamlProvider.cs:52) NoesisXamlProvider:ReloadXaml(String) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\NoesisProviders.cs:70) NoesisPostprocessor:ReloadXaml(String) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Editor\NoesisPostprocessor.cs:75) <>c__DisplayClass1_1:<OnPostprocessAllAssets>b__0() (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Editor\NoesisPostprocessor.cs:41) | ||||
Steps To Reproduce | Encl. crash logs and dump. | ||||
Tags | No tags attached. | ||||
Platform | Any | ||||
has duplicate | 0002513 | resolved | sfernandez | XamlReload Noesis_RaiseTextureChanged Event Crashes |
I can confirm Preview Enabled is not checked. | |
All of these crashes (screenshot) are caused by Noesis. I can't edit a single line of XAML without a crash during XamlPostProcessor import. When crashes occur my Unity scene (.unity) state is corrupt after editor reload and I have additional steps I must go through to restore my work. What is the status of this critical bug? |
|
I was investigating this issue and all the crash dumps you attached (including the ones in 0002513) point to the same 'Assets/User Interface/UIStateMachine.xaml'. Could you please attach that xaml? The crash is related to the NameScope that is set in the root of the xaml, are you manually registering elements (using NameScope.RegisterName() or FrameworkElement.RegisterName())? |
|
Hey Sergio. Yes, I am registering elements. UIStateMachine is the top level XAML element attached to NoesisView. <noesis:Xaml.Dependencies> <noesis:Dependency Source="/Assets/User Interface/Controls/Input Control/InputControl.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Controls/Transition Control/TransitionControl.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Controls/Radial Range Control/RadialRangeControl.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Login/LoginScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Character Selection/CharacterSelectionScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Character Creation/CharacterCreationScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Game/GameScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Overlay Layer/OverlayLayer.xaml"/> </noesis:Xaml.Dependencies> UIStateMachine.xaml (3,243 bytes)
<UserControl x:Class="StellarConquest.Presentation.Unity.UI.UIStateMachine" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:noesis="clr-namespace:NoesisGUIExtensions" xmlns:local="clr-namespace:StellarConquest.Presentation.Unity.UI" x:Name="_UIStateMachine" d:DesignWidth="1280" d:DesignHeight="720"> <noesis:Xaml.Dependencies> <noesis:Dependency Source="/Assets/User Interface/Controls/Input Control/InputControl.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Controls/Transition Control/TransitionControl.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Controls/Radial Range Control/RadialRangeControl.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Login/LoginScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Character Selection/CharacterSelectionScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Character Creation/CharacterCreationScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Game/GameScreen.xaml"/> <noesis:Dependency Source="/Assets/User Interface/Screens/Overlay Layer/OverlayLayer.xaml"/> </noesis:Xaml.Dependencies> <Grid> <Grid x:Name="_SplashScreen"> <Grid.RowDefinitions> <RowDefinition Height="4*"/> <RowDefinition Height="4*"/> <RowDefinition Height="3*"/> </Grid.RowDefinitions> <Rectangle x:Name="_SplashRectangle" Grid.RowSpan="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="{StaticResource splash1}"/> <Viewbox Grid.Row="2" VerticalAlignment="Top" Margin="200, -50, 100, 200"> <Grid> <Grid.Effect> <DropShadowEffect BlurRadius="10" ShadowDepth="3" Opacity="1"/> </Grid.Effect> <Image x:Name="_LogoEllipse" Source="{StaticResource ellipse}" Width="550" Stretch="Uniform" Margin="0, 0, 0, 100"/> <TextBlock x:Name="_LogoText" HorizontalAlignment="Center" FontFamily="{StaticResource Agency}" FontSize="95" VerticalAlignment="Bottom" Margin="0, 0, 0, 0" Foreground="White" Opacity="0.9" noesis:Text.CharacterSpacing="350" Text="STELLAR CONQUEST"/> </Grid> </Viewbox> </Grid> <Grid x:Name="_BaseLayer"/> <Rectangle x:Name="_ConnectionRectangle" Height="128" Width="128" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="9" Fill="{StaticResource connection}" IsHitTestVisible="False" Visibility="Collapsed"> <Rectangle.Effect> <DropShadowEffect BlurRadius="15" ShadowDepth="0" Opacity="1"/> </Rectangle.Effect> </Rectangle> <local:OverlayLayer x:Name="_OverlayLayer"/> <local:TransitionControl x:Name="_TransitionLayer"/> </Grid> </UserControl> UIStateMachine.cs (16,782 bytes)
using Noesis; using System; using System.Collections.Generic; using UnityEngine; using Grid = Noesis.Grid; using GUI = Noesis.GUI; using NoesisEventArgs = Noesis.EventArgs; namespace StellarConquest.Presentation.Unity.UI { public partial class UIStateMachine : UserControl { public static UIStateMachine Instance; public GameScreen GameScreen { get; private set; } public Grid BaseLayer { get; private set; } public OverlayLayer OverlayLayer { get; private set; } public TransitionControl TransitionLayer { get; private set; } public IGameScreenInputProvider CurrentScreen { get; private set; } public NoesisView NoesisView { get; private set; } public Camera Camera { get; private set; } private FrameworkElement _Root; private Rectangle _ConnectionRectangle; private Rectangle _SplashRectangle; private Grid _SplashScreen; private bool _SplashShown = false; private List<IGameScreenInputProvider> _InputProviders = new List<IGameScreenInputProvider>(); private BlurEffect _BlurEffect = new BlurEffect() { Radius = 25 }; public UIStateMachine() { if (!Application.isPlaying) return; Initialized += OnInitialized; InitializeComponent(); } private void InitializeComponent() { Instance = this; GUI.LoadComponent(this, "Assets/User Interface/UIStateMachine.xaml"); _Root = Content as FrameworkElement; BaseLayer = _Root.FindName("_BaseLayer") as Grid; _ConnectionRectangle = _Root.FindName("_ConnectionRectangle") as Rectangle; _SplashRectangle = _Root.FindName("_SplashRectangle") as Rectangle; _SplashScreen = _Root.FindName("_SplashScreen") as Grid; TransitionLayer = _Root.FindName("_TransitionLayer") as TransitionControl; OverlayLayer = _Root.FindName("_OverlayLayer") as OverlayLayer; NoesisView = GameState.Instance.UserInterfaceGameObject.GetComponentInChildren<NoesisView>(); Camera = GameState.Instance.UserInterfaceGameObject.GetComponentInChildren<Camera>(); } private void OnInitialized(object sender, NoesisEventArgs args) { } public void ShowTitleScreen(bool fadePrevious = false) { _InputProviders.Clear(); SetConnectionIssue(false); TransitionLayer.CutToTransparent(); if (BaseLayer.Children.Count > 0 && BaseLayer.Children[0] is LoginScreen) return; if (!fadePrevious) BaseLayer.Children.Clear(); if (!_SplashShown) { _SplashShown = true; LoginScreen loginScreen = new LoginScreen(); loginScreen.Opacity = 0; CurrentScreen = loginScreen; BaseLayer.Children.Add(loginScreen); float splashScreenDuration = 1.5f; if (RuntimeSettings.Instance.IsDemoMode) splashScreenDuration = 5.0f; UnityDispatcher.Instance.Invoke(TimeSpan.FromSeconds(splashScreenDuration), () => { Soundtrack.Instance.Play(ScoreType.Login, true); _SplashScreen.FadeOut(this, TimeSpan.FromSeconds(3), () => { _SplashScreen.Children.Clear(); // clear memory loginScreen.Opacity = 1; loginScreen.FadeIn(this, TimeSpan.FromMilliseconds(700)); }); }); } else { ScreenTransition(() => { Soundtrack.Instance.Play(ScoreType.Login, true); LoginScreen loginScreen = new LoginScreen(); loginScreen.Opacity = 1; CurrentScreen = loginScreen; BaseLayer.Children.Add(loginScreen); loginScreen.FadeIn(this, TimeSpan.FromMilliseconds(700)); }); } } public void ShowCharacterSelectionScreen() { TransitionLayer.CutToTransparent(); if (BaseLayer.Children.Count > 0 && BaseLayer.Children[0] is CharacterSelectionScreen) return; ScreenTransition(() => { CharacterSelectionScreen characterSelectionScreen = new CharacterSelectionScreen(); CurrentScreen = characterSelectionScreen; characterSelectionScreen.SetPlayers(SessionState.Instance.AuthenticatedPlayers); BaseLayer.Children.Add(characterSelectionScreen); }); } public void ShowCharacterCreationScreen() { TransitionLayer.CutToTransparent(); if (BaseLayer.Children.Count > 0 && BaseLayer.Children[0] is CharacterCreationScreen) return; ScreenTransition(() => { CharacterCreationScreen characterCreationScreen = new CharacterCreationScreen(); CurrentScreen = characterCreationScreen; BaseLayer.Children.Add(characterCreationScreen); }); } public void LoadGameScreen() { if (BaseLayer.Children.Count > 0 && BaseLayer.Children[0] is CharacterCreationScreen) return; GameScreen = new GameScreen(); CurrentScreen = GameScreen; GameScreen.Visibility = Visibility.Collapsed; BaseLayer.Children.Add(GameScreen); } public void ShowGameScreen() { TransitionLayer.FadeFromBlack(); GameScreen.Visibility = Visibility.Visible; GameScreen.FadeIn(this, FrameworkElementExtensionMethods.ScreenSlowFadeTime); Soundtrack.Instance.StaticAudioListener.enabled = false; Soundtrack.Instance.PlayContextual(SessionState.Instance.Player, SessionState.Instance.StarSystem); } /// <summary> /// Fades out the previous screen, if one exists. /// </summary> /// <param name="createScreenAction"></param> public void ScreenTransition(Action createScreenAction, Action completed = null) { ScreenTransition(FrameworkElementExtensionMethods.ScreenSlowFadeTime, FrameworkElementExtensionMethods.ScreenFastFadeTime, createScreenAction, completed); } public void ScreenTransition(TimeSpan fadeInDuration, TimeSpan fadeOutDuration, Action createScreenAction, Action completed = null) { FrameworkElement screen; if (BaseLayer.Children.Count == 0) // no existing screen { if (createScreenAction != null) createScreenAction.Invoke(); // create screen screen = BaseLayer.Children[0] as FrameworkElement; screen.FadeIn(this, fadeInDuration, completed); } else // screen exists { screen = BaseLayer.Children[0] as FrameworkElement; screen.FadeOut(this, fadeOutDuration, new Action(() => { BaseLayer.Children.Clear(); if (createScreenAction != null) createScreenAction.Invoke(); // create screen if (BaseLayer.Children.Count > 0) { screen = BaseLayer.Children[0] as FrameworkElement; screen.FadeIn(this, fadeInDuration, completed); } })); } } public bool CursorVisible { get { return UnityEngine.Cursor.visible && UnityEngine.Cursor.lockState == CursorLockMode.None; } set { if (!Input.mousePresent) return; if (value) { if (!UnityEngine.Cursor.visible) UpdateCursor(CursorType.Arrow); UnityEngine.Cursor.visible = true; UnityEngine.Cursor.lockState = CursorLockMode.None; } else { UnityEngine.Cursor.lockState = CursorLockMode.Locked; UnityEngine.Cursor.visible = false; } } } public void SetConnectionIssue(bool value) { if (value) { _ConnectionRectangle.Visibility = Visibility.Visible; _ConnectionRectangle.FadeIn(this, TimeSpan.FromSeconds(1)); } else _ConnectionRectangle.FadeOutScreen(this, () => _ConnectionRectangle.Visibility = Visibility.Collapsed); } public void AddInputProvider(IGameScreenInputProvider inputProvider) { _InputProviders.Add(inputProvider); } public void RemoveInputProvider(IGameScreenInputProvider inputProvider) { _InputProviders.Remove(inputProvider); } public void UpdateInput() { // show logo transition screen if (RuntimeSettings.Instance.DeveloperMode) if (Input.GetKeyDown(KeyCode.ScrollLock)) { if (!TransitionLayer.Opaque) { TransitionLayer.LogoImageEnabled = true; TransitionLayer.LoadingImageEnabled = false; TransitionLayer.FadeToBlack(TimeSpan.FromSeconds(1.5f)); } else { TransitionLayer.LogoImageEnabled = true; TransitionLayer.LoadingImageEnabled = false; TransitionLayer.FadeFromBlack(TimeSpan.FromSeconds(0.5f)); } } // update screeen UI if (CurrentScreen != null && !OverlayLayer.IsOverlayActive) CurrentScreen.UpdateInput(); // update overlay UI for (int i = 0; i < _InputProviders.Count; i++) _InputProviders[i].UpdateInput(); } public void SetBlur(bool? isUIBlurEnabled, bool? isCameraBlurEnabled) { if (isUIBlurEnabled.HasValue) { if (isUIBlurEnabled.Value) BaseLayer.Blur(this, 25, TimeSpan.FromMilliseconds(200)); else BaseLayer.Unblur(this, TimeSpan.FromMilliseconds(200)); } if (isCameraBlurEnabled.HasValue) PostProcessingManager.Instance.SetBlur(isCameraBlurEnabled.Value, TimeSpan.FromMilliseconds(200)); } public static void UpdateCursor(CursorType cursor) { NoesisSettings settings = NoesisSettings.Get(); switch (cursor) { case CursorType.AppStarting: UnityEngine.Cursor.SetCursor(settings.AppStarting.Texture, settings.AppStarting.HotSpot, CursorMode.Auto); break; case CursorType.Arrow: UnityEngine.Cursor.SetCursor(settings.Arrow.Texture, settings.Arrow.HotSpot, CursorMode.Auto); break; case CursorType.ArrowCD: UnityEngine.Cursor.SetCursor(settings.ArrowCD.Texture, settings.ArrowCD.HotSpot, CursorMode.Auto); break; case CursorType.Cross: UnityEngine.Cursor.SetCursor(settings.Cross.Texture, settings.Cross.HotSpot, CursorMode.Auto); break; case CursorType.Hand: UnityEngine.Cursor.SetCursor(settings.Hand.Texture, settings.Hand.HotSpot, CursorMode.Auto); break; case CursorType.Help: UnityEngine.Cursor.SetCursor(settings.Help.Texture, settings.Help.HotSpot, CursorMode.Auto); break; case CursorType.IBeam: UnityEngine.Cursor.SetCursor(settings.IBeam.Texture, settings.IBeam.HotSpot, CursorMode.Auto); break; case CursorType.No: UnityEngine.Cursor.SetCursor(settings.No.Texture, settings.No.HotSpot, CursorMode.Auto); break; case CursorType.None: UnityEngine.Cursor.SetCursor(settings.None.Texture, settings.None.HotSpot, CursorMode.Auto); break; case CursorType.Pen: UnityEngine.Cursor.SetCursor(settings.Pen.Texture, settings.Pen.HotSpot, CursorMode.Auto); break; case CursorType.ScrollAll: UnityEngine.Cursor.SetCursor(settings.ScrollAll.Texture, settings.ScrollAll.HotSpot, CursorMode.Auto); break; case CursorType.ScrollE: UnityEngine.Cursor.SetCursor(settings.ScrollE.Texture, settings.ScrollE.HotSpot, CursorMode.Auto); break; case CursorType.ScrollN: UnityEngine.Cursor.SetCursor(settings.ScrollN.Texture, settings.ScrollN.HotSpot, CursorMode.Auto); break; case CursorType.ScrollNE: UnityEngine.Cursor.SetCursor(settings.ScrollNE.Texture, settings.ScrollNE.HotSpot, CursorMode.Auto); break; case CursorType.ScrollNS: UnityEngine.Cursor.SetCursor(settings.ScrollNS.Texture, settings.ScrollNS.HotSpot, CursorMode.Auto); break; case CursorType.ScrollNW: UnityEngine.Cursor.SetCursor(settings.ScrollNW.Texture, settings.ScrollNW.HotSpot, CursorMode.Auto); break; case CursorType.ScrollS: UnityEngine.Cursor.SetCursor(settings.ScrollS.Texture, settings.ScrollS.HotSpot, CursorMode.Auto); break; case CursorType.ScrollSE: UnityEngine.Cursor.SetCursor(settings.ScrollSE.Texture, settings.ScrollSE.HotSpot, CursorMode.Auto); break; case CursorType.ScrollSW: UnityEngine.Cursor.SetCursor(settings.ScrollSW.Texture, settings.ScrollSW.HotSpot, CursorMode.Auto); break; case CursorType.ScrollW: UnityEngine.Cursor.SetCursor(settings.ScrollW.Texture, settings.ScrollW.HotSpot, CursorMode.Auto); break; case CursorType.ScrollWE: UnityEngine.Cursor.SetCursor(settings.ScrollWE.Texture, settings.ScrollWE.HotSpot, CursorMode.Auto); break; case CursorType.SizeAll: UnityEngine.Cursor.SetCursor(settings.SizeAll.Texture, settings.SizeAll.HotSpot, CursorMode.Auto); break; case CursorType.SizeNESW: UnityEngine.Cursor.SetCursor(settings.SizeNESW.Texture, settings.SizeNESW.HotSpot, CursorMode.Auto); break; case CursorType.SizeNS: UnityEngine.Cursor.SetCursor(settings.SizeNS.Texture, settings.SizeNS.HotSpot, CursorMode.Auto); break; case CursorType.SizeNWSE: UnityEngine.Cursor.SetCursor(settings.SizeNWSE.Texture, settings.SizeNWSE.HotSpot, CursorMode.Auto); break; case CursorType.SizeWE: UnityEngine.Cursor.SetCursor(settings.SizeWE.Texture, settings.SizeWE.HotSpot, CursorMode.Auto); break; case CursorType.UpArrow: UnityEngine.Cursor.SetCursor(settings.UpArrow.Texture, settings.UpArrow.HotSpot, CursorMode.Auto); break; case CursorType.Wait: UnityEngine.Cursor.SetCursor(settings.Wait.Texture, settings.Wait.HotSpot, CursorMode.Auto); break; } } } } |
|
I have prepared a debug library with some extra logging to help me find the root of the problem: https://drive.google.com/file/d/1RBBqswKsQQap7Vd_72CfmIamdLtSED_w/view?usp=share_link Could you please try with that and send me another crash dump + logs? |
|
Yes. I'm downloading and installing now. Thank you. | |
Was this crash dump helpful? | |
I'm very sorry for the late reply, we've been busy with GDC the past two weeks and couldn't take a look at this earlier. The latest crash was not related to the original problem, just an assert in other part of the code. So I think the best way to solve this is if I can get access to your project (or a reduced version of your project) to reproduce the issue myself, would that be possible? This way I can make local changes and debug to iterate faster. |
|
I'm not sure that I am ready to prepare a reproduction project at this time given the effort required to do this for my game. I can confirm that I am using the debug library you shared in https://www.noesisengine.com/bugs/view.php?id=2512#c8337. Is that the cause of the assert? | |
Maybe you can just provide temporal access to your repository and indicate a branch I can test? Yes, the latest crash dump is just an assert breakpoint, not related to the reload xaml crash. Having access to your project will help me identify the source of that assert that is for sure a different issue. |
|
Likely related. See video + crash dump here: https://www.noesisengine.com/bugs/view.php?id=2530 | |
Date Modified | Username | Field | Change |
---|---|---|---|
2023-02-16 18:20 | stonstad | New Issue | |
2023-02-16 18:20 | stonstad | File Added: Crash_2023-02-16_171135646.zip | |
2023-02-16 18:21 | stonstad | Note Added: 0008290 | |
2023-02-17 10:43 | jsantos | Assigned To | => sfernandez |
2023-02-17 10:43 | jsantos | Status | new => assigned |
2023-02-17 10:43 | jsantos | Target Version | => 3.1.8 |
2023-02-28 21:59 | stonstad | Note Added: 0008315 | |
2023-02-28 21:59 | stonstad | File Added: image.png | |
2023-03-01 10:49 | sfernandez | Relationship added | has duplicate 0002513 |
2023-03-01 10:54 | sfernandez | Status | assigned => feedback |
2023-03-01 10:54 | sfernandez | Note Added: 0008318 | |
2023-03-01 15:06 | stonstad | Note Added: 0008319 | |
2023-03-01 15:06 | stonstad | File Added: UIStateMachine.xaml | |
2023-03-01 15:06 | stonstad | File Added: UIStateMachine.cs | |
2023-03-01 15:06 | stonstad | Status | feedback => assigned |
2023-03-09 19:38 | sfernandez | Status | assigned => feedback |
2023-03-09 19:38 | sfernandez | Note Added: 0008337 | |
2023-03-14 16:04 | stonstad | Note Added: 0008345 | |
2023-03-14 16:04 | stonstad | Status | feedback => assigned |
2023-03-14 17:18 | stonstad | Note Added: 0008346 | |
2023-03-14 17:18 | stonstad | File Added: Crash_2023-03-14_161734595.zip | |
2023-03-24 19:41 | stonstad | Note Added: 0008352 | |
2023-03-27 19:36 | sfernandez | Status | assigned => feedback |
2023-03-27 19:36 | sfernandez | Note Added: 0008363 | |
2023-04-12 23:19 | stonstad | Note Added: 0008420 | |
2023-04-12 23:19 | stonstad | Status | feedback => assigned |
2023-04-13 10:26 | sfernandez | Status | assigned => feedback |
2023-04-13 10:26 | sfernandez | Note Added: 0008422 | |
2023-04-13 17:41 | stonstad | Note Added: 0008430 | |
2023-04-13 17:41 | stonstad | Status | feedback => assigned |
2023-05-11 09:34 | admin | Status | assigned => resolved |
2023-05-11 09:34 | admin | Resolution | open => fixed |
2023-05-11 09:34 | admin | Fixed in Version | => 3.2.0 |
2023-05-11 09:39 | jsantos | Target Version | 3.1.8 => 3.2 |