Changeset - 0f6c1ddd4b2a
[Not reviewed]
default
0 1 0
Jason Maltzen (jmaltzen) - 9 years ago 2016-01-15 17:24:47
jason.maltzen@unsanctioned.net
Use new Settings class for managing app settings
1 file changed with 28 insertions and 96 deletions:
0 comments (0 inline, 0 general)
MainWindow.cs
Show inline comments
...
 
@@ -31,3 +31,3 @@ public partial class MainWindow : Gtk.Wi
 
{
 
    const string APP_VERSION = "1.1.10";
 
    const string APP_VERSION = "1.7.11";
 

	
...
 
@@ -35,3 +35,2 @@ public partial class MainWindow : Gtk.Wi
 
	bool shouldShutDown = false;
 
	string appDataPath;
 
	List<string> profileList = new List<string>();
...
 
@@ -41,8 +40,2 @@ public partial class MainWindow : Gtk.Wi
 
	
 
	int screenWidth = 0;
 
	int screenHeight = 0;
 
	int pixelMultiplier = 1;
 

	
 
    bool enableDebugMenu = false;
 

	
 
	Gdk.Window rootWindow = null;
...
 
@@ -64,6 +57,3 @@ public partial class MainWindow : Gtk.Wi
 
	{
 
		appDataPath = System.IO.Path.Combine(
 
			Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
 
		    "DesertPaintLab");
 
		
 
        string appDataPath = FileUtils.AppDataPath;
 
		if (!System.IO.Directory.Exists(appDataPath))
...
 
@@ -132,10 +122,16 @@ public partial class MainWindow : Gtk.Wi
 
		// get its width and height
 
        int screenWidth;
 
        int screenHeight;
 
		rootWindow.GetSize(out screenWidth, out screenHeight);
 
        int pixelMultiplier = 1;
 

	
 
        string settingsPath = System.IO.Path.Combine(appDataPath, "settings");
 
        if (System.IO.File.Exists(settingsPath))
 
        if ( DesertPaintLab.Settings.Load() == true )
 
        {
 
            LoadSettings(settingsPath);
 
            DesertPaintLab.Settings.Get("ScreenWidth", out screenWidth);
 
            DesertPaintLab.Settings.Get("ScreenHeight", out screenHeight);
 
            DesertPaintLab.Settings.Get("PixelMultiplier", out pixelMultiplier);
 
        }
 

	
 
        bool enableDebugMenu;
 
        DesertPaintLab.Settings.Get("EnableDebugMenu", out enableDebugMenu);
 
        this.DebugAction.Visible = enableDebugMenu;
...
 
@@ -152,3 +148,6 @@ public partial class MainWindow : Gtk.Wi
 

	
 
        SaveSettings(settingsPath);
 
        DesertPaintLab.Settings.Set("ScreenWidth", screenWidth);
 
        DesertPaintLab.Settings.Set("ScreenHeight", screenHeight);
 
        DesertPaintLab.Settings.Set("PixelMultiplier", pixelMultiplier);
 
        DesertPaintLab.Settings.Save();
 

	
...
 
@@ -164,79 +163,2 @@ public partial class MainWindow : Gtk.Wi
 

	
 
    static Regex optionEntry = new Regex(@"(?<opt>[^#=][^=]*)=(?<optval>.*)$");
 
    void LoadSettings(string file)
 
    {
 
        string line;
 
        Match match;
 
        using (StreamReader reader = new StreamReader(file))
 
        {
 
            while ((line = reader.ReadLine()) != null) 
 
            {
 
                match = optionEntry.Match(line);
 
                if (match.Success)
 
                {
 
                    String optName = match.Groups["opt"].Value.ToLower();
 
                    String optVal = match.Groups["optval"].Value.Trim();
 
                    switch (optName)
 
                    {
 
                        case "screenwidth":
 
                            try {
 
                                int val = Int32.Parse(optVal);
 
                                if (val > 0)
 
                                {
 
                                    screenWidth = val;
 
                                }
 
                            } catch (FormatException) {
 
                                // ignore
 
                            }
 
                            break;
 
                        case "screenheight":
 
                            try {
 
                                int val = Int32.Parse(optVal);
 
                                if (val > 0)
 
                                {
 
                                    screenHeight = val;
 
                                }
 
                            } catch (FormatException) {
 
                                // ignore
 
                            }
 
                            break;
 
                        case "pixelmultiplier":
 
                            try {
 
                                int val = Int32.Parse(optVal);
 
                                if (val > 0)
 
                                {
 
                                    pixelMultiplier = val;
 
                                }
 
                            } catch (FormatException) {
 
                                // ignore
 
                            }
 
                            break;
 
                        case "debug":
 
                            try {
 
                                bool val = Boolean.Parse(optVal.ToLower());
 
                                enableDebugMenu = val;
 
                            } catch (FormatException) {
 
                                // ignore
 
                            }
 
                            break;
 
                        default:
 
                            // ignore
 
                            break;
 
                    }
 
                }
 
            }
 
        }
 
    }
 

	
 
    void SaveSettings(string file)
 
    {
 
        using (StreamWriter writer = new StreamWriter(file))
 
        {
 
            writer.WriteLine("screenwidth={0}", screenWidth);
 
            writer.WriteLine("screenheight={0}", screenHeight);
 
            writer.WriteLine("pixelmultiplier={0}", pixelMultiplier);
 
            writer.WriteLine("debug={0}", enableDebugMenu);
 
        }
 
    }
 

	
 
	bool ConfirmedExit()
...
 
@@ -261,3 +183,3 @@ public partial class MainWindow : Gtk.Wi
 
		profile = new PlayerProfile(name,
 
		                System.IO.Path.Combine(appDataPath, name));
 
            System.IO.Path.Combine(FileUtils.AppDataPath, name));
 
		
...
 
@@ -573,2 +495,9 @@ public partial class MainWindow : Gtk.Wi
 
		// Take a screenshot.
 
        int screenWidth, screenHeight;
 
        bool debugScreenshot = false;
 
        bool enableDebugMenu = false;
 
        DesertPaintLab.Settings.Get("ScreenWidth", out screenWidth);
 
        DesertPaintLab.Settings.Get("ScreenHeight", out screenHeight);
 
        DesertPaintLab.Settings.Get("EnableDebugMenu", out enableDebugMenu);
 
        DesertPaintLab.Settings.Get("DebugScreenshot", out debugScreenshot);
 
		Gdk.Image rootImage = rootWindow.GetImage(0, 0, screenWidth, screenHeight);
...
 
@@ -582,3 +511,3 @@ public partial class MainWindow : Gtk.Wi
 
        bool wasCaptured = ReactionRecorder.CaptureReaction(pixBytes, screenWidth, screenHeight, stride, ref reactedColor, ref redPixelStart);
 
        if (!wasCaptured && enableDebugMenu)
 
        if (!wasCaptured && enableDebugMenu && debugScreenshot)
 
        {
...
 
@@ -610,3 +539,3 @@ public partial class MainWindow : Gtk.Wi
 
            int captureAreaWidth = Math.Min(64, screenWidth - redPixelStartX + 64);
 
            int captureAreaHeight = Math.Min(64, screenWidth - redPixelStartY + 64);
 
            int captureAreaHeight = Math.Min(64, screenHeight - redPixelStartY + 64);
 
            Gdk.Pixbuf outPixBuf = new Gdk.Pixbuf(screenBuffer, Math.Max(0, redPixelStartX - 16), Math.Max(0, redPixelStartY - 16), captureAreaWidth, captureAreaHeight);
...
 
@@ -622,2 +551,5 @@ public partial class MainWindow : Gtk.Wi
 
    {
 
        int screenWidth, screenHeight;
 
        DesertPaintLab.Settings.Get("ScreenWidth", out screenWidth);
 
        DesertPaintLab.Settings.Get("ScreenHeight", out screenHeight);
 
        Gdk.Image rootImage = rootWindow.GetImage(0, 0, screenWidth, screenHeight);
0 comments (0 inline, 0 general)