/// <summary> /// Событие изменения файла проекта /// </summary> public virtual void ProjectEntryEvent(Project.Entry en, Project.FileEvent ev) { if (en == File) { switch (ev) { case Project.FileEvent.Created: case Project.FileEvent.Modified: if (!saving) { MainForm.FocusEditor(this); DialogResult dr = MessageDialog.Show(ControlStrings.TabReloadTitle, ControlStrings.TabReloadText, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { Load(); Saved = true; } else { Saved = false; } } break; case Project.FileEvent.Renamed: UpdateTitle(); break; case Project.FileEvent.Deleted: MainForm.CloseEditor(this, true); closed = true; break; } } }
/// <summary> /// Обновление файловой системы /// </summary> /// <param name="en">Файл</param> /// <param name="ev">Событие</param> public override void ProjectEntryEvent(Project.Entry en, Project.FileEvent ev) { base.ProjectEntryEvent(en, ev); if (closed) { return; } // Просмотр на изменение текстур SkyboxForm fr = Form as SkyboxForm; NSFileDropControl[] drops = new NSFileDropControl[] { fr.frontSkyTexture, fr.rightSkyTexture, fr.backSkyTexture, fr.leftSkyTexture, fr.topSkyTexture, fr.bottomSkyTexture }; forceTextureReload = true; foreach (NSFileDropControl fc in drops) { if (fc.File == en) { if (ev == Project.FileEvent.Deleted) { fc.File = null; } else { fc.File = en; } } } forceTextureReload = false; }
/// <summary> /// Событие изменения файла /// </summary> /// <param name="en">Файл</param> /// <param name="ev">Событие</param> public override void ProjectEntryEvent(Project.Entry en, Project.FileEvent ev) { base.ProjectEntryEvent(en, ev); if (closed) { return; } }
/// <summary> /// Событие, связанное с файлом проекта /// </summary> public static void ProjectEntryEvent(Project.Entry e, Project.FileEvent ev) { System.Diagnostics.Debug.WriteLine("File " + e.ProjectPath + " " + ev.ToString()); if (W != null) { // Обновление редакторов if (Editors != null) { foreach (BaseForm b in Editors) { needProjectRescan = false; b.FileEditor.ProjectEntryEvent(e, ev); } } // Обновление инспектора if (!W.localFileEvent) { Project.Dir cd = W.projectInspector.Tag as Project.Dir; switch (ev) { case Project.FileEvent.Created: if (e.Parent == cd) { if (e.Icon == null) { e.Icon = Preview.Get(e.FullPath); } W.projectInspector.Entries.Add(new NSDirectoryInspector.Entry() { IsDirectory = false, Tag = (object)e, Name = Path.GetFileNameWithoutExtension(e.Name), Icon = e.Icon }); W.projectInspector.Invalidate(); } break; case Project.FileEvent.Modified: case Project.FileEvent.Renamed: if (e.Parent == cd) { object oe = (object)e; if (ev == Project.FileEvent.Modified) { e.Icon = Preview.Get(e.FullPath); } foreach (NSDirectoryInspector.Entry en in W.projectInspector.Entries) { if (en.Tag == oe) { en.Name = Path.GetFileNameWithoutExtension(e.Name); en.Icon = e.Icon; W.projectInspector.Invalidate(); break; } } } break; case Project.FileEvent.Deleted: if (e.Parent == cd) { object oe = (object)e; foreach (NSDirectoryInspector.Entry en in W.projectInspector.Entries) { if (en.Tag == oe) { W.projectInspector.Entries.Remove(en); W.projectInspector.Invalidate(); break; } } } break; } } } }
/// <summary> /// Событие, связанное с директорией проекта /// </summary> public static void ProjectDirEvent(Project.Dir d, Project.FileEvent ev) { System.Diagnostics.Debug.WriteLine("Dir " + d.Name + " " + ev.ToString()); if (W != null) { // Обновление редакторов if (Editors != null) { foreach (BaseForm b in Editors) { needProjectRescan = false; b.FileEditor.ProjectDirEvent(d, ev); } } // Обновление инспектора if (!W.localFileEvent) { Project.Dir cd = W.projectInspector.Tag as Project.Dir; switch (ev) { case Project.FileEvent.Created: if (d.Parent == cd) { W.projectInspector.Entries.Add(new NSDirectoryInspector.Entry() { IsDirectory = true, Tag = (object)d, Name = d.ShortName }); W.projectInspector.Invalidate(); } break; case Project.FileEvent.Modified: case Project.FileEvent.Renamed: if (d.Parent == cd) { object od = (object)d; foreach (NSDirectoryInspector.Entry en in W.projectInspector.Entries) { if (en.Tag == od) { en.Name = d.ShortName; W.projectInspector.Invalidate(); break; } } } break; case Project.FileEvent.Deleted: if (d == cd) { PopulateManager(d.Parent); } else if (d.Parent == cd) { object od = (object)d; foreach (NSDirectoryInspector.Entry en in W.projectInspector.Entries) { if (en.Tag == od) { W.projectInspector.Entries.Remove(en); W.projectInspector.Invalidate(); break; } } } break; } } } }
/// <summary> /// Событие изменения директории проекта /// </summary> public virtual void ProjectDirEvent(Project.Dir dr, Project.FileEvent ev) { }
/// <summary> /// Событие, связанное с директорией проекта /// </summary> public static void ProjectDirEvent(Project.Dir d, Project.FileEvent ev) { System.Diagnostics.Debug.WriteLine("Dir " + d.Name + ev.ToString()); }
/// <summary> /// Событие, связанное с файлом проекта /// </summary> public static void ProjectEntryEvent(Project.Entry e, Project.FileEvent ev) { System.Diagnostics.Debug.WriteLine("File " + e.ProjectPath + ev.ToString()); }