diff --git a/CrashTracker.cs b/CrashTracker.cs deleted file mode 100644 index 7df56f4db..000000000 --- a/CrashTracker.cs +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright (c) 2014, Lars Brubaker -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. -*/ - -#define USE_CRASH_TRACKER - -using System.IO; -using MatterHackers.MatterControl.DataStorage; - -namespace MatterHackers.MatterControl -{ - public static class CrashTracker - { - static string outputFilename; - public static void Reset() - { - outputFilename = Path.Combine(DataStorage.ApplicationDataStorage.Instance.ApplicationUserDataPath, "CrashTracker.txt"); - -#if USE_CRASH_TRACKER - // Create the file to clear its contents - using (StreamWriter sw = File.CreateText(outputFilename)) - { - sw.WriteLine("Hello"); - sw.WriteLine("And"); - sw.WriteLine("Welcome"); - } -#endif - } - - public static void Write(string info) - { -#if USE_CRASH_TRACKER - using (StreamWriter sw = File.AppendText(outputFilename)) - { - sw.WriteLine(info); - } -#endif - } - } -} diff --git a/MatterControl.csproj b/MatterControl.csproj index 6e8308e64..0cdb7106e 100644 --- a/MatterControl.csproj +++ b/MatterControl.csproj @@ -119,7 +119,6 @@ - diff --git a/MatterControl.sln b/MatterControl.sln index 5c3edd35d..54eea560c 100644 --- a/MatterControl.sln +++ b/MatterControl.sln @@ -625,11 +625,10 @@ Global {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug|x64.ActiveCfg = Debug|Any CPU {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug|x64.Build.0 = Debug|Any CPU {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug|x86.ActiveCfg = Debug|Any CPU - {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|Any CPU.ActiveCfg = Debug64|x64 - {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|Any CPU.Build.0 = Debug64|x64 - {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|x64.ActiveCfg = Debug64|x64 - {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|x64.Build.0 = Debug64|x64 - {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|x86.ActiveCfg = Debug64|x64 + {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|Any CPU.ActiveCfg = Debug|Any CPU + {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|Any CPU.Build.0 = Debug|Any CPU + {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|x64.ActiveCfg = Debug|Any CPU + {6782BF37-8139-4DC6-885E-98D22D1FB258}.Debug64|x86.ActiveCfg = Debug|Any CPU {6782BF37-8139-4DC6-885E-98D22D1FB258}.Release|Any CPU.ActiveCfg = Release|Any CPU {6782BF37-8139-4DC6-885E-98D22D1FB258}.Release|Any CPU.Build.0 = Release|Any CPU {6782BF37-8139-4DC6-885E-98D22D1FB258}.Release|x64.ActiveCfg = Release|Any CPU diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index b0094a586..86dc6c8cc 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -73,7 +73,8 @@ namespace MatterHackers.MatterControl public MatterControlApplication(double width, double height) : base(width, height) { - CrashTracker.Reset(); + // set this at startup so that we can tell next time if it got set to true in close + UserSettings.Instance.Fields.StartCount = UserSettings.Instance.Fields.StartCount + 1; this.commandLineArgs = Environment.GetCommandLineArgs(); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; @@ -174,12 +175,9 @@ namespace MatterHackers.MatterControl DesktopPosition = new Point2D(xpos, ypos); } - // make sure when we start up that we are showing the 3D view + // make sure when we start up, we are not showing the 3D view UserSettings.Instance.Fields.EmbededViewShowingGCode = false; - // set this at startup so that we can tell next time if it got set to true in close - UserSettings.Instance.Fields.AppExitedNormaly = false; - ShowAsSystemWindow(); } @@ -370,7 +368,8 @@ namespace MatterHackers.MatterControl public override void OnClosed(EventArgs e) { - UserSettings.Instance.Fields.AppExitedNormaly = true; + UserSettings.Instance.Fields.StartCountDurringExit = UserSettings.Instance.Fields.StartCount; + TerminalWindow.CloseIfOpen(); PrinterConnectionAndCommunication.Instance.Disable(); //Close connection to the local datastore diff --git a/PartPreviewWindow/ViewControls2D.cs b/PartPreviewWindow/ViewControls2D.cs index c38b40c57..5e9c96256 100644 --- a/PartPreviewWindow/ViewControls2D.cs +++ b/PartPreviewWindow/ViewControls2D.cs @@ -98,7 +98,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow AddChild(threeDimensionButton); if (UserSettings.Instance.get("LayerViewDefault") == "3D Layer" - && UserSettings.Instance.Fields.AppExitedNormaly == true) + && UserSettings.Instance.Fields.StartCountDurringExit == UserSettings.Instance.Fields.StartCount - 1) { threeDimensionButton.Checked = true; } diff --git a/PrinterControls/TerminalWindow/TerminalWidget.cs b/PrinterControls/TerminalWindow/TerminalWidget.cs index 4ac158f8a..99586c658 100644 --- a/PrinterControls/TerminalWindow/TerminalWidget.cs +++ b/PrinterControls/TerminalWindow/TerminalWidget.cs @@ -86,7 +86,7 @@ namespace MatterHackers.MatterControl textScrollWidget.SetLineStartFilter(null); } - UserSettings.Instance.Fields.SetValue(TerminalFilterOutputKey, filterOutput.Checked); + UserSettings.Instance.Fields.SetBool(TerminalFilterOutputKey, filterOutput.Checked); }; filterOutput.VAnchor = Agg.UI.VAnchor.ParentBottom; @@ -98,13 +98,13 @@ namespace MatterHackers.MatterControl autoUppercase = new CheckBox(autoUpperCaseChkTxt); autoUppercase.Margin = new BorderDouble(5, 5, 5, 2); - autoUppercase.Checked = UserSettings.Instance.Fields.GetValue(TerminalAutoUppercaseKey, true); + autoUppercase.Checked = UserSettings.Instance.Fields.GetBool(TerminalAutoUppercaseKey, true); autoUppercase.TextColor = this.textColor; autoUppercase.VAnchor = Agg.UI.VAnchor.ParentBottom; topBarControls.AddChild(autoUppercase); autoUppercase.CheckedStateChanged += (sender, e) => { - UserSettings.Instance.Fields.SetValue(TerminalAutoUppercaseKey, autoUppercase.Checked); + UserSettings.Instance.Fields.SetBool(TerminalAutoUppercaseKey, autoUppercase.Checked); }; manualEntryTopToBottomLayout.AddChild(topBarControls); } @@ -209,7 +209,7 @@ namespace MatterHackers.MatterControl { if (firstDraw) { - filterOutput.Checked = UserSettings.Instance.Fields.GetValue(TerminalFilterOutputKey, false); + filterOutput.Checked = UserSettings.Instance.Fields.GetBool(TerminalFilterOutputKey, false); firstDraw = false; } base.OnDraw(graphics2D); diff --git a/PrinterControls/TerminalWindow/TerminalWindow.cs b/PrinterControls/TerminalWindow/TerminalWindow.cs index b93de26d4..a5d6aa527 100644 --- a/PrinterControls/TerminalWindow/TerminalWindow.cs +++ b/PrinterControls/TerminalWindow/TerminalWindow.cs @@ -65,7 +65,7 @@ namespace MatterHackers.MatterControl }; // start with the assumption we are open and only change this is we see it close - UserSettings.Instance.Fields.SetValue(TerminalWindowLeftOpen, true); + UserSettings.Instance.Fields.SetBool(TerminalWindowLeftOpen, true); } else { @@ -75,7 +75,7 @@ namespace MatterHackers.MatterControl public static void ShowIfLeftOpen() { - if (UserSettings.Instance.Fields.GetValue(TerminalWindowLeftOpen, false)) + if (UserSettings.Instance.Fields.GetBool(TerminalWindowLeftOpen, false)) { Show(); } @@ -122,7 +122,7 @@ namespace MatterHackers.MatterControl public override void OnClosed(EventArgs e) { SaveOnClosing(); - UserSettings.Instance.Fields.SetValue(TerminalWindowLeftOpen, terminalWasOpenOnAppClose); + UserSettings.Instance.Fields.SetBool(TerminalWindowLeftOpen, terminalWasOpenOnAppClose); base.OnClosed(e); } diff --git a/SettingsManagement/UserSettingsFields.cs b/SettingsManagement/UserSettingsFields.cs index a3f52ad4b..472e2f404 100644 --- a/SettingsManagement/UserSettingsFields.cs +++ b/SettingsManagement/UserSettingsFields.cs @@ -40,50 +40,51 @@ namespace MatterHackers.MatterControl { List acceptableTrueFalseValues = new List() { "true", "false" }; + string StartCountKey = "StartCount"; + string StartCountDurringExitKey = "StartCountDurringExit"; + string IsSimpleModeKey = "IsSimpleMode"; string EmbededViewShowingGCodeKey = "EmbededViewShowingGCode"; - string AppExitedNormalyKey = "ExitedNormaly"; public bool IsSimpleMode { get { - return GetValue(IsSimpleModeKey, OemSettings.Instance.UseSimpleModeByDefault); + return GetBool(IsSimpleModeKey, OemSettings.Instance.UseSimpleModeByDefault); } set { - SetValue(IsSimpleModeKey, value); + SetBool(IsSimpleModeKey, value); } } - public bool AppExitedNormaly + public int StartCount { - get - { - return GetValue(AppExitedNormalyKey, true); - } + get { return GetInt(StartCountKey); } + set { SetInt(StartCountKey, value); } + } - set - { - SetValue(AppExitedNormalyKey, value); - } + public int StartCountDurringExit + { + get { return GetInt(StartCountDurringExitKey); } + set { SetInt(StartCountDurringExitKey, value); } } public bool EmbededViewShowingGCode { get { - return GetValue(EmbededViewShowingGCodeKey, false); + return GetBool(EmbededViewShowingGCodeKey, false); } set { - SetValue(EmbededViewShowingGCodeKey, value); + SetBool(EmbededViewShowingGCodeKey, value); } } - public void SetValue(string keyToSet, bool value) + public void SetBool(string keyToSet, bool value) { if (value) { @@ -95,7 +96,7 @@ namespace MatterHackers.MatterControl } } - public bool GetValue(string keyToRead, bool defaultValue) + public bool GetBool(string keyToRead, bool defaultValue) { string currentValue = UserSettings.Instance.get(keyToRead); if (acceptableTrueFalseValues.IndexOf(currentValue) == -1) @@ -112,5 +113,22 @@ namespace MatterHackers.MatterControl } return currentValue == "true"; } + + public void SetInt(string keyToSet, int value) + { + UserSettings.Instance.set(keyToSet, value.ToString()); + } + + public int GetInt(string keyToRead) + { + string currentValue = UserSettings.Instance.get(keyToRead); + int result = 0; + if(int.TryParse(currentValue, out result)) + { + return result; + } + + return 0; + } } }