diff --git a/Histacom2.Engine/Histacom2.Engine.csproj b/Histacom2.Engine/Histacom2.Engine.csproj index beb4aa2..37c4489 100644 --- a/Histacom2.Engine/Histacom2.Engine.csproj +++ b/Histacom2.Engine/Histacom2.Engine.csproj @@ -20,6 +20,7 @@ DEBUG;TRACE prompt 4 + x86 pdbonly diff --git a/Histacom2.Engine/SaveSystem.cs b/Histacom2.Engine/SaveSystem.cs index 5557dca..7da916b 100644 --- a/Histacom2.Engine/SaveSystem.cs +++ b/Histacom2.Engine/SaveSystem.cs @@ -207,23 +207,7 @@ public static void CreateWindowsFile(string filepath, string filename, string co public static void UpdateDirectoryInfo(string path, THFileInfo newfile) { - newfile.DOSName = newfile.Name.ToUpper().Replace("*", "").Replace("+", "").Replace(":", "").Replace(";", "").Replace(" ", ""); - if (newfile.DOSName.Contains(".")) - { - string[] dos = newfile.DOSName.Split('.'); - - if (dos.Count() > 2) - { - List dosb = dos.ToList(); - dosb.RemoveRange(1, dos.Count() - 2); - dos = dosb.ToArray(); - } - dos[1] = dos[1].Substring(0, 3); - if (dos[0].Length > 8) dos[0] = dos[0].Substring(0, 6) + "~1"; - - newfile.DOSName = dos[0] + "." + dos[1]; - } - else if (newfile.DOSName.Length > 8) newfile.DOSName = newfile.DOSName.Substring(0, 6) + "~1"; + SetDOSName(ref newfile); if (File.ReadAllText(Path.Combine(path, "_data.info")).Contains(newfile.DOSName)) return; FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(path, "_data.info"))); @@ -250,6 +234,85 @@ public static void RemoveFileFromDirectory(string path, string filename) File.WriteAllText(Path.Combine(path, "_data.info"), toWrite); } + public static void RemoveSubDirFromDirectory(string path, string dirname) + { + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(path, "_data.info"))); + THDirInfo di = fsfi.SubDirs.Find((THDirInfo f) => { return f.Name == dirname; }); + if (di == null) return; + + // Find the bytesize of the folder + + FileSystemFolderInfo dirfsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(path, "_data.info"))); + + fsfi.ByteSize -= dirfsfi.ByteSize; + CurrentSave.BytesLeft += dirfsfi.ByteSize; + + fsfi.SubDirs.Remove(di); + string toWrite = JsonConvert.SerializeObject(fsfi, Formatting.Indented); + + File.WriteAllText(Path.Combine(path, "_data.info"), toWrite); + } + + public static string SetDOSName(ref THFileInfo file) + { + file.DOSName = file.Name.ToUpper().Replace("*", "").Replace("+", "").Replace(":", "").Replace(";", "").Replace(" ", ""); + if (file.DOSName.Contains(".")) + { + string[] dos = file.DOSName.Split('.'); + + if (dos.Count() > 2) + { + List dosb = dos.ToList(); + dosb.RemoveRange(1, dos.Count() - 2); + dos = dosb.ToArray(); + } + dos[1] = dos[1].Substring(0, 3); + if (dos[0].Length > 8) dos[0] = dos[0].Substring(0, 6) + "~1"; + + file.DOSName = dos[0] + "." + dos[1]; + } + else if (file.DOSName.Length > 8) file.DOSName = file.DOSName.Substring(0, 6) + "~1"; + return file.DOSName; + } + + public static void RenameDirectory(string path, string dirname, string newname) + { + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(path, "_data.info"))); + THDirInfo di = fsfi.SubDirs.Find((THDirInfo f) => { return f.Name == dirname; }); + if (di == null) return; + + THDirInfo newDi = di; + + newDi.Name = newname; + + THFileInfo tmpfi = new THFileInfo(); + newDi.DOSName = SetDOSName(ref tmpfi); + fsfi.SubDirs.Remove(di); + fsfi.SubDirs.Add(newDi); + string toWrite = JsonConvert.SerializeObject(fsfi, Formatting.Indented); + + File.WriteAllText(Path.Combine(path, "_data.info"), toWrite); + } + + public static void RenameFile(string path, string filename, string newname) + { + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(path, "_data.info"))); + THFileInfo fi = fsfi.Files.Find((THFileInfo f) => { return f.Name == filename; }); + if (fi == null) return; + + THFileInfo newFi = fi; + + newFi.Name = newname; + + THFileInfo tmpfi = new THFileInfo(); + newFi.DOSName = SetDOSName(ref tmpfi); + fsfi.Files.Remove(fi); + fsfi.Files.Add(newFi); + string toWrite = JsonConvert.SerializeObject(fsfi, Formatting.Indented); + + File.WriteAllText(Path.Combine(path, "_data.info"), toWrite); + } + public static void UpgradeFileSystem(string newOS) { if (newOS == "98" || newOS == "2000" || newOS == "ME") @@ -278,7 +341,7 @@ public static void UpgradeFileSystem(string newOS) } } - public static void SaveDirectoryInfo(string parent, string dirname, bool isProtected, string label, bool allowback) + public static void SaveDirectoryInfo(string parent, string dirname, bool isProtected, string label, bool allowback, bool updateParent = true) { if (File.Exists(Path.Combine(parent, dirname, "_data.info")) && Path.Combine(parent, dirname) != ProfileFileSystemDirectory) return; Directory.CreateDirectory(Path.Combine(parent, dirname)); @@ -296,15 +359,18 @@ public static void SaveDirectoryInfo(string parent, string dirname, bool isProte info.SubDirs = new List(256); info.ByteSize = 0; - if (parent != ProfileDirectory) + if (updateParent == true) { - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(parent, "_data.info"))); - THDirInfo thd = new THDirInfo(); - thd.Name = info.Label; - thd.DOSName = info.DOSLabel; - fsfi.SubDirs.Add(thd); + if ((parent != ProfileDirectory)) + { + FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(parent, "_data.info"))); + THDirInfo thd = new THDirInfo(); + thd.Name = info.Label; + thd.DOSName = info.DOSLabel; + fsfi.SubDirs.Add(thd); - File.WriteAllText(Path.Combine(parent, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + File.WriteAllText(Path.Combine(parent, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + } } string toWrite = JsonConvert.SerializeObject(info, Formatting.Indented); diff --git a/Histacom2/GlobalPrograms/WinClassicNotepad.cs b/Histacom2/GlobalPrograms/WinClassicNotepad.cs index 331f0d5..72f1e41 100644 --- a/Histacom2/GlobalPrograms/WinClassicNotepad.cs +++ b/Histacom2/GlobalPrograms/WinClassicNotepad.cs @@ -15,7 +15,7 @@ namespace Histacom2.OS.Win95.Win95Apps { public partial class WinClassicNotepad : UserControl { - string CurrentFilePath = ""; + public string CurrentFilePath = ""; public WinClassicNotepad() { InitializeComponent(); diff --git a/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.Designer.cs b/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.Designer.cs index e015eda..123e477 100644 --- a/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.Designer.cs +++ b/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.Designer.cs @@ -30,6 +30,10 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.program = new System.Windows.Forms.Panel(); + this.pnlSave = new System.Windows.Forms.Panel(); + this.Button1 = new System.Windows.Forms.Button(); + this.Label1 = new System.Windows.Forms.Label(); + this.txtSave = new System.Windows.Forms.TextBox(); this.mainView = new System.Windows.Forms.ListView(); this.diskView = new System.Windows.Forms.TreeView(); this.MenuStrip1 = new System.Windows.Forms.MenuStrip(); @@ -37,7 +41,6 @@ private void InitializeComponent() this.CreateShortcutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.FolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.TextDocumentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.BitmapImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.DeleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.RenameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.CloseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -55,14 +58,10 @@ private void InitializeComponent() this.bottomrightcorner = new System.Windows.Forms.Panel(); this.bottomleftcorner = new System.Windows.Forms.Panel(); this.topleftcorner = new System.Windows.Forms.Panel(); - this.pnlSave = new System.Windows.Forms.Panel(); - this.Button1 = new System.Windows.Forms.Button(); - this.Label1 = new System.Windows.Forms.Label(); - this.txtSave = new System.Windows.Forms.TextBox(); this.refresh = new System.Windows.Forms.Timer(this.components); this.program.SuspendLayout(); - this.MenuStrip1.SuspendLayout(); this.pnlSave.SuspendLayout(); + this.MenuStrip1.SuspendLayout(); this.SuspendLayout(); // // program @@ -82,6 +81,47 @@ private void InitializeComponent() this.program.Size = new System.Drawing.Size(704, 517); this.program.TabIndex = 13; // + // pnlSave + // + this.pnlSave.Controls.Add(this.Button1); + this.pnlSave.Controls.Add(this.Label1); + this.pnlSave.Controls.Add(this.txtSave); + this.pnlSave.Location = new System.Drawing.Point(3, 474); + this.pnlSave.Name = "pnlSave"; + this.pnlSave.Size = new System.Drawing.Size(850, 35); + this.pnlSave.TabIndex = 18; + this.pnlSave.Visible = false; + // + // Button1 + // + this.Button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.Button1.Location = new System.Drawing.Point(608, 1); + this.Button1.Name = "Button1"; + this.Button1.Size = new System.Drawing.Size(75, 23); + this.Button1.TabIndex = 17; + this.Button1.Text = "Save"; + this.Button1.UseVisualStyleBackColor = true; + this.Button1.Click += new System.EventHandler(this.Button1_Click); + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(3, 6); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(57, 13); + this.Label1.TabIndex = 16; + this.Label1.Text = "File Name:"; + // + // txtSave + // + this.txtSave.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtSave.Location = new System.Drawing.Point(60, 3); + this.txtSave.Name = "txtSave"; + this.txtSave.Size = new System.Drawing.Size(542, 20); + this.txtSave.TabIndex = 15; + // // mainView // this.mainView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -136,10 +176,9 @@ private void InitializeComponent() // this.CreateShortcutToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FolderToolStripMenuItem, - this.TextDocumentToolStripMenuItem, - this.BitmapImageToolStripMenuItem}); + this.TextDocumentToolStripMenuItem}); this.CreateShortcutToolStripMenuItem.Name = "CreateShortcutToolStripMenuItem"; - this.CreateShortcutToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.CreateShortcutToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.CreateShortcutToolStripMenuItem.Text = "New"; // // FolderToolStripMenuItem @@ -149,12 +188,6 @@ private void InitializeComponent() this.FolderToolStripMenuItem.Text = "Folder"; this.FolderToolStripMenuItem.Click += new System.EventHandler(this.FolderToolStripMenuItem_Click); // - // ShortcutToolStripMenuItem - // - this.ShortcutToolStripMenuItem.Name = "ShortcutToolStripMenuItem"; - this.ShortcutToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.ShortcutToolStripMenuItem.Text = "Shortcut"; - // // TextDocumentToolStripMenuItem // this.TextDocumentToolStripMenuItem.Name = "TextDocumentToolStripMenuItem"; @@ -162,30 +195,24 @@ private void InitializeComponent() this.TextDocumentToolStripMenuItem.Text = "Text Document"; this.TextDocumentToolStripMenuItem.Click += new System.EventHandler(this.TextDocumentToolStripMenuItem_Click); // - // BitmapImageToolStripMenuItem - // - this.BitmapImageToolStripMenuItem.Name = "BitmapImageToolStripMenuItem"; - this.BitmapImageToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.BitmapImageToolStripMenuItem.Text = "Bitmap Image"; - // // DeleteToolStripMenuItem // this.DeleteToolStripMenuItem.Name = "DeleteToolStripMenuItem"; - this.DeleteToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.DeleteToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.DeleteToolStripMenuItem.Text = "Delete"; this.DeleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click); // // RenameToolStripMenuItem // this.RenameToolStripMenuItem.Name = "RenameToolStripMenuItem"; - this.RenameToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.RenameToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.RenameToolStripMenuItem.Text = "Rename"; this.RenameToolStripMenuItem.Click += new System.EventHandler(this.RenameToolStripMenuItem_Click); // // CloseToolStripMenuItem // this.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem"; - this.CloseToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.CloseToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.CloseToolStripMenuItem.Text = "Close"; this.CloseToolStripMenuItem.Click += new System.EventHandler(this.CloseToolStripMenuItem_Click); // @@ -297,47 +324,6 @@ private void InitializeComponent() this.topleftcorner.Size = new System.Drawing.Size(4, 4); this.topleftcorner.TabIndex = 1; // - // pnlSave - // - this.pnlSave.Controls.Add(this.Button1); - this.pnlSave.Controls.Add(this.Label1); - this.pnlSave.Controls.Add(this.txtSave); - this.pnlSave.Location = new System.Drawing.Point(3, 474); - this.pnlSave.Name = "pnlSave"; - this.pnlSave.Size = new System.Drawing.Size(850, 35); - this.pnlSave.TabIndex = 18; - this.pnlSave.Visible = false; - // - // Button1 - // - this.Button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.Button1.Location = new System.Drawing.Point(608, 1); - this.Button1.Name = "Button1"; - this.Button1.Size = new System.Drawing.Size(75, 23); - this.Button1.TabIndex = 17; - this.Button1.Text = "Save"; - this.Button1.UseVisualStyleBackColor = true; - this.Button1.Click += new System.EventHandler(this.Button1_Click); - // - // Label1 - // - this.Label1.AutoSize = true; - this.Label1.Location = new System.Drawing.Point(3, 6); - this.Label1.Name = "Label1"; - this.Label1.Size = new System.Drawing.Size(57, 13); - this.Label1.TabIndex = 16; - this.Label1.Text = "File Name:"; - // - // txtSave - // - this.txtSave.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtSave.Location = new System.Drawing.Point(60, 3); - this.txtSave.Name = "txtSave"; - this.txtSave.Size = new System.Drawing.Size(542, 20); - this.txtSave.TabIndex = 15; - // // refresh // this.refresh.Interval = 15000; @@ -353,10 +339,10 @@ private void InitializeComponent() this.Load += new System.EventHandler(this.WinClassicWindowsExplorer_Load); this.program.ResumeLayout(false); this.program.PerformLayout(); - this.MenuStrip1.ResumeLayout(false); - this.MenuStrip1.PerformLayout(); this.pnlSave.ResumeLayout(false); this.pnlSave.PerformLayout(); + this.MenuStrip1.ResumeLayout(false); + this.MenuStrip1.PerformLayout(); this.ResumeLayout(false); } @@ -370,7 +356,6 @@ private void InitializeComponent() internal System.Windows.Forms.ToolStripMenuItem CreateShortcutToolStripMenuItem; internal System.Windows.Forms.ToolStripMenuItem FolderToolStripMenuItem; internal System.Windows.Forms.ToolStripMenuItem TextDocumentToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem BitmapImageToolStripMenuItem; internal System.Windows.Forms.ToolStripMenuItem DeleteToolStripMenuItem; internal System.Windows.Forms.ToolStripMenuItem RenameToolStripMenuItem; internal System.Windows.Forms.ToolStripMenuItem CloseToolStripMenuItem; diff --git a/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs b/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs index 52ea334..eb24f7c 100644 --- a/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs +++ b/Histacom2/OS/Win95/Win95Apps/Win95WindowsExplorer.cs @@ -222,6 +222,7 @@ public void OpenFile(string fileDir) case 1: WinClassicNotepad np = new WinClassicNotepad(); np.mainText.Text = FileDialogBoxManager.ReadTextFile(fileDir); + np.CurrentFilePath = fileDir; WinClassic app = wm.StartWin95(np, "Notepad", Properties.Resources.Win95IconNotepad, true, true); Program.AddTaskbarItem(app, app.Tag.ToString(), "Notepad", Properties.Resources.Win95IconNotepad); @@ -229,6 +230,7 @@ public void OpenFile(string fileDir) case 2: WinClassicWordPad wp = new WinClassicWordPad(); wp.mainText.LoadFile(fileDir); + wp.CurrentFilePath = fileDir; WinClassic app2 = wm.StartWin95(wp, "Wordpad", Properties.Resources.Win95IconWordpad, true, true); Program.AddTaskbarItem(app2, app2.Tag.ToString(), "Wordpad", Properties.Resources.Win95IconWordpad); @@ -664,7 +666,7 @@ private void FolderToolStripMenuItem_Click(object sender, EventArgs e) } else { - SaveDirectoryInfo(CurrentDirectory, "New Folder", false, "New Folder", true); + SaveDirectoryInfo(CurrentDirectory, "New Folder", false, "New Folder", true, false); RefreshAll(); OldLabelText = "New Folder"; @@ -723,20 +725,7 @@ private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) // Remove the directory now from the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THDirInfo dir in fsfi.SubDirs) - { - if (dir.Name == mainView.FocusedItem.Text) - { - // Delete it - - fsfi.SubDirs.Remove(dir); - break; - } - } - - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + SaveSystem.RemoveSubDirFromDirectory(CurrentDirectory, mainView.FocusedItem.Text); } else { @@ -744,20 +733,7 @@ private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) // Remove the file now from the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THFileInfo file in fsfi.Files) - { - if (file.Name == mainView.FocusedItem.Text) - { - // Delete it - - fsfi.Files.Remove(file); - continue; - } - } - - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + RemoveFileFromDirectory(CurrentDirectory, mainView.FocusedItem.Text); } @@ -822,54 +798,22 @@ private void mainView_AfterLabelEdit(object sender, LabelEditEventArgs e) Directory.Move(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText)); File.Delete(Path.Combine(CurrentDirectory, setText, "_data.info")); - SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true); + SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true, true); // Rename the directory now in the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THDirInfo dir in fsfi.SubDirs) - { - if (dir.Name == OldLabelText) - { - // Rename it - THDirInfo oldDirInfo = dir; - oldDirInfo.Name = Path.Combine(CurrentDirectory, setText); - - fsfi.SubDirs.Remove(dir); - fsfi.SubDirs.Add(oldDirInfo); - } - } - - File.Delete(Path.Combine(CurrentDirectory, "_data.info")); - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi)); + RenameDirectory(CurrentDirectory, OldLabelText, setText); } else { - // It was a file + // It was a file File.Copy(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText)); File.Delete(Path.Combine(CurrentDirectory, OldLabelText)); // Rename the file now in the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THFileInfo file in fsfi.Files) - { - if (file.Name == OldLabelText) - { - // Rename it - THFileInfo oldFileInfo = file; - oldFileInfo.Name = Path.Combine(CurrentDirectory, setText); - - fsfi.Files.Remove(file); - fsfi.Files.Add(oldFileInfo); - } - } - - File.Delete(Path.Combine(CurrentDirectory, "_data.info")); - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi)); + RenameFile(CurrentDirectory, OldLabelText, setText); } } } @@ -1045,7 +989,22 @@ private void SellectAllCtrlAToolStripMenuItem_Click(object sender, EventArgs e) private void TextDocumentToolStripMenuItem_Click(object sender, EventArgs e) { + if (File.Exists(CurrentDirectory + "\\New Text Document.txt")) + { + //wm.StartInfobox95("Windows Explorer", "This directory already exists", Properties.Resources.Win95Info); + //TODO: add making "New Folder (2)" + } + else + { + CreateWindowsFile(CurrentDirectory, "New Text Document.txt", "", 12, 0); + RefreshAll(); + OldLabelText = "New Folder"; + mainView.LabelEdit = true; + mainView.FindItemWithText("New Text Document.txt").BeginEdit(); + } + + RefreshTreeNode(); } } } diff --git a/Histacom2/OS/Win95/Win95Apps/WinClassicWordPad.cs b/Histacom2/OS/Win95/Win95Apps/WinClassicWordPad.cs index 05b5ec1..91d9368 100644 --- a/Histacom2/OS/Win95/Win95Apps/WinClassicWordPad.cs +++ b/Histacom2/OS/Win95/Win95Apps/WinClassicWordPad.cs @@ -22,7 +22,7 @@ public partial class WinClassicWordPad : UserControl bool doItalic = false; bool doUnderline = false; - string CurrentFilePath = ""; + public string CurrentFilePath = ""; public WinClassicWordPad() { diff --git a/Histacom2/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs b/Histacom2/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs index bff593e..9144c76 100644 --- a/Histacom2/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs +++ b/Histacom2/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs @@ -243,18 +243,28 @@ public void OpenFile(string fileDir) case 1: WinClassicNotepad np = new WinClassicNotepad(); np.mainText.Text = FileDialogBoxManager.ReadTextFile(fileDir); + np.CurrentFilePath = fileDir; WinClassic app = wm.StartWin95(np, "Notepad", Properties.Resources.Win95IconNotepad, true, true); Program.AddTaskbarItem(app, app.Tag.ToString(), "Notepad", Properties.Resources.Win95IconNotepad); + break; + case 2: + WinClassicWordPad wp = new WinClassicWordPad(); + wp.mainText.LoadFile(fileDir); + wp.CurrentFilePath = fileDir; + WinClassic app2 = wm.StartWin95(wp, "Wordpad", Properties.Resources.Win95IconWordpad, true, true); + Program.AddTaskbarItem(app2, app2.Tag.ToString(), "Wordpad", Properties.Resources.Win95IconWordpad); break; case 12: OpenApplication(FileDialogBoxManager.ReadTextFile(fileDir), fileDir); break; } - } catch { } - + catch + { + } + } void OpenApplication(string appname, string path) @@ -778,20 +788,7 @@ private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) // Remove the directory now from the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THDirInfo dir in fsfi.SubDirs) - { - if (dir.Name == mainView.FocusedItem.Text) - { - // Delete it - - fsfi.SubDirs.Remove(dir); - continue; - } - } - - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + SaveSystem.RemoveSubDirFromDirectory(CurrentDirectory, mainView.FocusedItem.Text); } else { @@ -799,20 +796,7 @@ private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) // Remove the file now from the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THFileInfo file in fsfi.Files) - { - if (file.Name == mainView.FocusedItem.Text) - { - // Delete it - - fsfi.Files.Remove(file); - continue; - } - } - - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + RemoveFileFromDirectory(CurrentDirectory, mainView.FocusedItem.Text); } @@ -824,6 +808,8 @@ private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) { RefreshAll(); } + + RefreshTreeNode(); } internal static bool FileOrDirectoryExists(string path) @@ -876,54 +862,22 @@ private void mainView_AfterLabelEdit(object sender, LabelEditEventArgs e) Directory.Move(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText)); File.Delete(Path.Combine(CurrentDirectory, setText, "_data.info")); - SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true); + SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true, true); // Rename the directory now in the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THDirInfo dir in fsfi.SubDirs) - { - if (dir.Name == mainView.FocusedItem.Tag.ToString()) - { - // Rename it - THDirInfo oldDirInfo = dir; - oldDirInfo.Name = Path.Combine(CurrentDirectory, setText); - - fsfi.SubDirs.Remove(dir); - fsfi.SubDirs.Add(oldDirInfo); - } - } - - File.Delete(Path.Combine(CurrentDirectory, "_data.info")); - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + RenameDirectory(CurrentDirectory, OldLabelText, setText); } else { - // It was a file + // It was a file File.Copy(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText)); File.Delete(Path.Combine(CurrentDirectory, OldLabelText)); // Rename the file now in the _data.info - FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(CurrentDirectory, "_data.info"))); - - foreach (THFileInfo file in fsfi.Files) - { - if (file.Name == mainView.FocusedItem.Tag.ToString()) - { - // Rename it - THFileInfo oldFileInfo = file; - oldFileInfo.Name = Path.Combine(CurrentDirectory, setText); - - fsfi.Files.Remove(file); - fsfi.Files.Add(oldFileInfo); - } - } - - File.Delete(Path.Combine(CurrentDirectory, "_data.info")); - File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented)); + RenameFile(CurrentDirectory, OldLabelText, setText); } } }