示例#1
0
        void SaveTabToDisk(EditorTabPage etb)
        {
            string fileName = etb.GetFileFullPathAndName();
            // tooltip is exact name of file, and Text property of tab may contain "*" if file is modified and unsaved
            FileInfo fi = new FileInfo(fileName);

            if (fi.Name.StartsWith("Untitled"))
            {
                // propose to reneame file
                var newPageName = GetNewNameInSaveAsDialogFromProposedName(fi.FullName);
                if (string.IsNullOrWhiteSpace(newPageName))
                {
                    return;
                    // user stopped save operation
                }
                //var etb = DoRealSaveAs(newPageName); there is no need for new tab in simple save operation
                fileName = newPageName;
            }
            else
            {
                // create deirectory if necessary
                if (Directory.Exists(fi.DirectoryName) == false)
                {
                    // Message with alert?
                    fi.Directory.Create();
                }
            }
            etb.SaveFile(fileName);
            AppendToMRU(fileName);
        }
        private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            EditorTabPage etb = GetActiveTab();

            if (etb != null)
            {
                string newName = etb.Editor.ActiveTextAreaControl.SelectionManager.SelectedText;
                if (string.IsNullOrEmpty(newName))
                {
                    newName = "index.htm";
                }
                FileInfo finfo = new FileInfo(etb.ToolTipText);
                saveFileDialog1.FileName = finfo.DirectoryName + Path.DirectorySeparatorChar + newName;
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    string fileName = saveFileDialog1.FileName;
                    etb.SaveFile(fileName);
                    etb.SetTitle(fileName);
                }
            }
        }
        private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            EditorTabPage etb  = GetActiveTab();
            string        file = "";

            if (etb != null)
            {
                if (File.Exists(etb.ToolTipText))
                {
                    etb.SaveFile(etb.ToolTipText);
                    file = etb.ToolTipText;
                }
                else
                {
                    saveAsToolStripMenuItem_Click(null, null);
                    file = etb.Text;
                }

                if (!SettingsManager.MRUList.Contains(file))
                {
                    if (SettingsManager.MRUList.Count >= 15)
                    {
                        SettingsManager.MRUList.RemoveAt(14);
                    }
                    SettingsManager.MRUList.Insert(0, file);

                    ToolStripMenuItem tsi = new ToolStripMenuItem(file, null, new EventHandler(RecentFiles_Click));
                    recentFilesToolStripMenuItem.DropDown.Items.Insert(0, tsi);
                }
                else
                {
                    SettingsManager.MRUList.Remove(file);
                    SettingsManager.MRUList.Insert(0, file);

                    ToolStripMenuItem tsi = GetRecentMenuItem(file);
                    recentFilesToolStripMenuItem.DropDown.Items.Remove(tsi);
                    recentFilesToolStripMenuItem.DropDown.Items.Insert(0, tsi);
                }
            }
        }