Mercurial > quickqr
diff Settings.cs @ 0:aca8706f4eec default tip
Initial commit
author | Brad Greco <brad@bgreco.net> |
---|---|
date | Mon, 13 Oct 2014 21:28:19 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Settings.cs Mon Oct 13 21:28:19 2014 -0500 @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +/* + * Copyright (c) 2014 Brad Greco <brad@bgreco.net> + */ +namespace QuickQR +{ + class Settings + { + public String error; + private String configFile; + private String configDir; + + public bool autostart = true; + public bool background = true; + public String hotkey = ""; + + public Settings() + { + String appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + configDir = Path.Combine(appData, "QuickQR"); + configFile = Path.Combine(configDir, "quickqr.ini"); + + readConfig(); + } + + public void setAutostart(bool autostart) + { + this.autostart = autostart; + writeConfig(); + } + + public void setBackground(bool background) + { + this.background = background; + writeConfig(); + } + + public void setHotkey(KeyBinding hotkey) + { + this.hotkey = hotkey.comboString(); + writeConfig(); + } + + private void readConfig() + { + StreamReader reader; + try + { + reader = new StreamReader(configFile); + } + catch (IOException e) + { + error = e.Message; + return; + } + String line; + while ((line = reader.ReadLine()) != null) + { + String[] words = line.Split(null, 3); + if(words.Length >= 3 && words[1].Equals("=")) + { + if (words[0].Equals("autostart")) + autostart = words[2].Equals("true"); + if (words[0].Equals("background")) + background = words[2].Equals("true"); + if (words[0].Equals("hotkey")) + hotkey = words[2]; + } + } + reader.Close(); + } + + private void writeConfig() + { + StreamWriter writer; + try + { + if (!Directory.Exists(configDir)) + Directory.CreateDirectory(configDir); + writer = new StreamWriter(configFile); + } + catch (IOException e) + { + error = e.Message; + return; + } + writer.WriteLine("[QuickQR]"); + writer.WriteLine("autostart = " + (autostart ? "true" : "false")); + writer.WriteLine("background = " + (background ? "true" : "false")); + writer.WriteLine("hotkey = " + hotkey); + writer.Close(); + } + } +}