Esempio n. 1
0
        /// <summary>
        /// Save any pending changes to user preferences
        /// </summary>
        /// <param name="forceSave">save to disk regardless of changed data</param>
        public void SaveChanges(bool forceSave = false)
        {
            if (m_changed || forceSave)
            {
                // make sure the saving directory exists
                string dirPath = Path.GetDirectoryName(SettingsFileLocation);
                if (!Directory.Exists(dirPath))
                {
                    Directory.CreateDirectory(dirPath);
                }

                string jsonData = JsonConvert.SerializeObject(this, Formatting.Indented);

                using (Stream stream = new FileStream(SettingsFileLocation, FileMode.Create))
                    using (TextWriter writer = new StreamWriter(stream))
                    {
                        writer.Write(jsonData);
                    }
            }

            // everything saved, reset the UI
            m_changed = false;
            SavePreferencesCmd.RaiseCanExecuteChanged();
        }
Esempio n. 2
0
 private void PreferenceChanged(object sender, PropertyChangedEventArgs e)
 {
     m_changed = true;
     SavePreferencesCmd.RaiseCanExecuteChanged();
 }