Example #1
0
        /// <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;
                }
            }
        }
Example #2
0
 /// <summary>
 /// Изменение имени файла
 /// </summary>
 /// <param name="e">Файл для переименовывания</param>
 /// <param name="newName">Новое имя</param>
 /// <returns>True если файл переименован</returns>
 public static bool RenameItem(Project.Entry e, string newName)
 {
     if (newName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0)
     {
         return(false);
     }
     if (newName != e.Name)
     {
         string oldfull = e.FullPath;
         byte[] meta    = null;
         if (newName.ToLower() != e.Name.ToLower())
         {
             meta   = e.Meta;
             e.Meta = null;
         }
         e.Name = newName;
         e.Icon = Preview.Get(e.FullPath);
         if (meta != null)
         {
             e.Meta = meta;
         }
         File.Move(oldfull, e.FullPath);
         MainForm.ProjectEntryEvent(e, FileEvent.Renamed);
     }
     return(true);
 }
Example #3
0
        /// <summary>
        /// Создание из файла
        /// </summary>
        /// <param name="file">Путь до файла</param>
        public static Editor Create(Project.Entry entry)
        {
            string ext = System.IO.Path.GetExtension(entry.Name).ToLower();

            if (Associations != null)
            {
                if (Associations.ContainsKey(ext))
                {
                    // Создание редактора
                    Type   t = Associations[ext];
                    Editor e = Activator.CreateInstance(t) as Editor;
                    e.File = entry;

                    // Создание окна
                    Type ft = ContentForms[t];
                    e.Form            = Activator.CreateInstance(ft) as BaseForm;
                    e.Form.FileEditor = e;

                    // Загрузка
                    e.Load();
                    return(e);
                }
            }
            return(null);
        }
Example #4
0
 /// <summary>
 /// Можно ли изменять данный файл в инспекторе
 /// </summary>
 /// <param name="d"></param>
 /// <returns></returns>
 public static bool OperableFile(object d)
 {
     if (d is Project.Entry)
     {
         Project.Entry e = d as Project.Entry;
         if (e.Name.EndsWith(".sbproject"))
         {
             return(false);
         }
     }
     return(true);
 }
Example #5
0
        /// <summary>
        /// Удаление файла
        /// </summary>
        /// <returns>True если файл удалён</returns>
        public static bool DeleteEntry(Project.Entry e)
        {
            // Удаление записи
            File.Delete(e.FullPath);
            e.Deleted = true;
            List <Project.Entry> files = new List <Entry>(e.Parent.Entries);

            if (files.Contains(e))
            {
                files.Remove(e);
            }
            e.Parent.Entries = files.ToArray();

            // Событие окна
            MainForm.ProjectEntryEvent(e, FileEvent.Deleted);
            return(true);
        }