aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs132
-rw-r--r--TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.Designer.cs10
-rw-r--r--TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs131
3 files changed, 209 insertions, 64 deletions
diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs
index 151dfd5..80f48dd 100644
--- a/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs
+++ b/TimeHACK.Main/OS/Win95/Win95Apps/Win95WindowsExplorer.cs
@@ -124,7 +124,8 @@ namespace TimeHACK.OS.Win95.Win95Apps
private void RefreshAll()
{
- //try {
+ //try
+ //{
this.mainView.Items.Clear();
foreach (string str in Directory.GetDirectories(CurrentDirectory))
@@ -631,9 +632,7 @@ namespace TimeHACK.OS.Win95.Win95Apps
OpenFile(mainView.FocusedItem.Tag.ToString());
}
}
- } catch (Exception ex) {
- MessageBox.Show(ex.Message);
- }
+ } catch { /* TODO: Illegal operation */ }
}
void diskView_AfterSelect(object sender, EventArgs e)
@@ -738,10 +737,50 @@ namespace TimeHACK.OS.Win95.Win95Apps
}
else
{
- if (Directory.Exists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text))) Directory.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text), true);
- else File.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text));
+ if (Directory.Exists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)))
+ {
+ Directory.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text), true);
+
+ // Remove the directory now from the _data.info
+
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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);
+ }
+ }
+
+ File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi));
+ }
+ else
+ {
+ File.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text));
+
+ // Remove the file now from the _data.info
+
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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);
+ }
+ }
+
+ File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi));
+
+ }
RefreshAll();
+ RefreshTreeNode();
}
} catch
{
@@ -782,37 +821,80 @@ namespace TimeHACK.OS.Win95.Win95Apps
private void mainView_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
- string setText = e.Label;
- if (setText == "") wm.StartInfobox95("Rename", "You must type a filename.", InfoboxType.Error, InfoboxButtons.OK);
- else
+ try
{
- if (Directory.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new DirectoryInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK);
+ string setText = e.Label;
+ if (setText == "") wm.StartInfobox95("Rename", "You must type a filename.", InfoboxType.Error, InfoboxButtons.OK);
else
{
- if (File.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new FileInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK);
+ if (Directory.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new DirectoryInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK);
else
{
- if (Directory.Exists((string)mainView.FocusedItem.Tag))
+ if (File.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new FileInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK);
+ else
{
- // It was a directory
+ if (Directory.Exists(Path.Combine(CurrentDirectory, OldLabelText)))
+ {
+ // It was a directory
- Directory.Move((string)mainView.FocusedItem.Tag, Path.Combine(CurrentDirectory, setText));
+ Directory.Move(Path.Combine(CurrentDirectory, OldLabelText), Path.Combine(CurrentDirectory, setText));
- File.Delete(Path.Combine(CurrentDirectory, setText, "_data.info"));
- SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true);
- }
- else
- {
- // It was a file
+ File.Delete(Path.Combine(CurrentDirectory, setText, "_data.info"));
+ SaveDirectoryInfo(CurrentDirectory, setText, false, setText, true);
+
+ // Rename the directory now in the _data.info
+
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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));
+ }
+ else
+ {
+ // 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<FileSystemFolderInfo>(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);
- File.Copy((string)mainView.FocusedItem.Tag, Path.Combine(CurrentDirectory, setText));
- File.Delete((string)mainView.FocusedItem.Tag);
+ 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));
+ }
}
}
}
- }
- RefreshAll();
- RefreshTreeNode();
+ RefreshAll();
+ RefreshTreeNode();
+ } catch { }
}
private TreeNode[] createSubDirNodes(DirectoryInfo folder)
diff --git a/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.Designer.cs b/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.Designer.cs
index 5914b60..20304ff 100644
--- a/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.Designer.cs
+++ b/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.Designer.cs
@@ -397,7 +397,7 @@
this.TextDocumentToolStripMenuItem,
this.BitmapImageToolStripMenuItem});
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
@@ -422,21 +422,21 @@
// 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);
//
@@ -529,7 +529,7 @@
// refresh
//
this.refresh.Enabled = true;
- this.refresh.Interval = 15000;
+ this.refresh.Interval = 4000;
this.refresh.Tick += new System.EventHandler(this.refresh_Tick);
//
// WinClassicWindowsExplorer
diff --git a/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs b/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs
index 04f0405..c5bf384 100644
--- a/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs
+++ b/TimeHACK.Main/OS/Win98/Win98Apps/WinClassicWindowsExplorer.cs
@@ -664,11 +664,7 @@ namespace TimeHACK.OS.Win95.Win95Apps
OpenFile(mainView.FocusedItem.Tag.ToString());
}
}
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
+ } catch { /* TODO: Illegal operation */ }
}
void diskView_AfterSelect(object sender, EventArgs e)
@@ -770,23 +766,62 @@ namespace TimeHACK.OS.Win95.Win95Apps
{
try
{
- if (!FileOrDirectoryExists(mainView.FocusedItem.ImageKey))
+ if (!FileOrDirectoryExists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)))
{
wm.StartInfobox95("Windows Explorer", "This directory doesn't exist", InfoboxType.Info, InfoboxButtons.OK);
}
else
{
- if (Directory.Exists(mainView.FocusedItem.ImageKey)) Directory.Delete(mainView.FocusedItem.ImageKey, true);
- else File.Delete(mainView.FocusedItem.ImageKey);
+ if (Directory.Exists(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text)))
+ {
+ Directory.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text), true);
+
+ // Remove the directory now from the _data.info
+
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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);
+ }
+ }
+
+ File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented));
+ }
+ else
+ {
+ File.Delete(Path.Combine(CurrentDirectory, mainView.FocusedItem.Text));
+
+ // Remove the file now from the _data.info
+
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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);
+ }
+ }
+
+ File.WriteAllText(Path.Combine(CurrentDirectory, "_data.info"), JsonConvert.SerializeObject(fsfi, Formatting.Indented));
+
+ }
RefreshAll();
RefreshTreeNode();
}
- } catch
+ }
+ catch
{
RefreshAll();
}
-
}
internal static bool FileOrDirectoryExists(string path)
@@ -820,53 +855,81 @@ namespace TimeHACK.OS.Win95.Win95Apps
private void mainView_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
- try {
- string setText;
- setText = e.Label;
- if (setText == "")
- {
- wm.StartInfobox95("Windows Explorer", "Please enter a new directory name", InfoboxType.Info, InfoboxButtons.OK);
- }
+ try
+ {
+ string setText = e.Label;
+ if (setText == "") wm.StartInfobox95("Rename", "You must type a filename.", InfoboxType.Error, InfoboxButtons.OK);
else
{
- if (Directory.Exists(setText))
- {
- wm.StartInfobox95("Windows Explorer", "That directory already exists.", InfoboxType.Info, InfoboxButtons.OK);
- }
+ if (Directory.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new DirectoryInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK);
else
{
- if (File.Exists(setText))
- {
- wm.StartInfobox95("Windows Explorer", "That file already exists.", InfoboxType.Info, InfoboxButtons.OK);
- }
+ if (File.Exists(setText)) wm.StartInfobox95("Error Renaming File", $"Cannot rename {new FileInfo(setText).Name}: A file with the name you specified already exists. Specify a different filename.", InfoboxType.Error, InfoboxButtons.OK);
else
{
- if (Directory.Exists(mainView.FocusedItem.ImageKey))
+ if (Directory.Exists(Path.Combine(CurrentDirectory, OldLabelText)))
{
// It was a directory
- Directory.Move(mainView.FocusedItem.ImageKey, Path.Combine(CurrentDirectory, setText));
+ 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);
+ // Rename the directory now in the _data.info
+
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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));
}
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
- File.Copy(mainView.FocusedItem.ImageKey, Path.Combine(CurrentDirectory, setText));
- File.Delete(mainView.FocusedItem.ImageKey);
+ FileSystemFolderInfo fsfi = JsonConvert.DeserializeObject<FileSystemFolderInfo>(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));
}
}
-
}
}
RefreshAll();
RefreshTreeNode();
- } catch {
}
-
+ catch { }
}
private TreeNode[] createSubDirNodes(DirectoryInfo folder)