コード例 #1
0
 public void Autosave(object sender, ElapsedEventArgs e)
 {
     Timer.Stop();
     BackgroundTaskManager.Tasks.Add(BackupTask);
     new System.Threading.Thread(new System.Threading.ThreadStart(() =>
     {
         IEnumerable <string> bks = FileHelpers.GetBackups(App.FilePath);
         string path;
         if (!bks.Any())
         {
             int prefix   = 0;
             path         = FileHelpers.MakeBackupPath(App.FilePath);
             string fname = Path.GetFileName(path);
             string direc = Path.GetDirectoryName(path);
             while (File.Exists(path) && FileHelpers.ReadBackupPath(path) != App.FilePath)
             {
                 path = Path.Combine(direc, $"{prefix}{fname}");
                 prefix++;
             }
         }
         else
         {
             path = bks.First();
         }
         FileHelpers.WriteBackup(path);
         LastBackup = DateTime.Now.TimeOfDay;
         BackgroundTaskManager.Tasks.Remove(BackupTask);
         SaveStateChanged?.Invoke();
         if (Unsaved)
         {
             Timer.Start();
         }
     })).Start();
 }
コード例 #2
0
 public void UpdateSave()
 {
     LastSave = DateTime.Now.TimeOfDay;
     Unsaved  = false;
     SaveStateChanged?.Invoke();
     Timer?.Stop();
     FileHelpers.SetWindowHeaders();
 }
コード例 #3
0
ファイル: ISaveableFile.cs プロジェクト: shaneasd/ConEdit
 public void Change()
 {
     if (!m_changed)
     {
         m_changed = true;
         SaveStateChanged.Execute();
     }
     Modified.Execute();
 }
コード例 #4
0
 public void Change()
 {
     if (!m_lastChanged)
     {
         m_lastChanged = m_changed();
         SaveStateChanged.Execute();
     }
     Modified.Execute();
 }
コード例 #5
0
 private void SetUnsaved(object sender, NotifyCollectionChangedEventArgs e)
 {
     if (e != null && e.IsAddOrRemove() && ReferenceEquals(sender, AllData))
     {
         if (e.NewItems != null)
         {
             foreach (object item in e.NewItems)
             {
                 BaseDataClass obj  = (BaseDataClass)item;
                 int           errs = obj.GetErrorCount(ErrorType.Error);
                 NumErrors += errs;
                 if (errs > 0)
                 {
                     NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj));
                 }
                 errs         = obj.GetErrorCount(ErrorType.Warning);
                 NumWarnings += errs;
                 if (errs > 0)
                 {
                     NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj));
                 }
                 obj.ErrorStateChanged += ObjectErrorStateChanged;
             }
         }
         if (e.OldItems != null)
         {
             foreach (object item in e.OldItems)
             {
                 BaseDataClass obj  = (BaseDataClass)item;
                 int           errs = obj.GetErrorCount(ErrorType.Error);
                 NumErrors -= errs;
                 if (errs > 0)
                 {
                     NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj));
                 }
                 errs         = obj.GetErrorCount(ErrorType.Warning);
                 NumWarnings -= errs;
                 if (errs > 0)
                 {
                     NotifyErrorStateChanged(new ErrorStateChangedEventArgs(obj));
                 }
                 obj.ErrorStateChanged -= ObjectErrorStateChanged;
             }
         }
     }
     if (!Unsaved)
     {
         Unsaved = true;
         SaveStateChanged?.Invoke();
         Timer?.Start();
         FileHelpers.SetWindowHeaders();
     }
 }
コード例 #6
0
ファイル: ISaveableFile.cs プロジェクト: shaneasd/ConEdit
 protected override void Saved()
 {
     m_changed = false;
     SaveStateChanged.Execute();
 }
コード例 #7
0
ファイル: ISaveableFile.cs プロジェクト: shaneasd/ConEdit
 protected override void Saved()
 {
     m_saved();
     m_lastChanged = m_changed();
     SaveStateChanged.Execute();
 }