mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-07-18 17:09:23 +00:00
MainForm - Add Recently open file menu item
This commit is contained in:
34
PCK-Studio/MainForm.Designer.cs
generated
34
PCK-Studio/MainForm.Designer.cs
generated
@@ -32,6 +32,8 @@
|
||||
System.Windows.Forms.PictureBox logoPictureBox;
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -142,8 +144,12 @@
|
||||
this.imageList = new System.Windows.Forms.ImageList(this.components);
|
||||
this.previewPictureBox = new PckStudio.ToolboxItems.InterpolationPictureBox();
|
||||
this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox();
|
||||
this.recentlyOpenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
logoPictureBox = new System.Windows.Forms.PictureBox();
|
||||
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||
((System.ComponentModel.ISupportInitialize)(logoPictureBox)).BeginInit();
|
||||
this.contextMenuPCKEntries.SuspendLayout();
|
||||
this.menuStrip.SuspendLayout();
|
||||
@@ -474,7 +480,11 @@
|
||||
this.packSettingsToolStripMenuItem,
|
||||
this.saveToolStripMenuItem1,
|
||||
this.saveToolStripMenuItem,
|
||||
this.closeToolStripMenuItem});
|
||||
this.closeToolStripMenuItem,
|
||||
toolStripSeparator2,
|
||||
this.recentlyOpenToolStripMenuItem,
|
||||
toolStripSeparator4,
|
||||
this.exitToolStripMenuItem});
|
||||
this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.Silver;
|
||||
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||
resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
|
||||
@@ -1064,6 +1074,26 @@
|
||||
this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.LittleEndianCheckBox.UseSelectable = true;
|
||||
//
|
||||
// recentlyOpenToolStripMenuItem
|
||||
//
|
||||
this.recentlyOpenToolStripMenuItem.Name = "recentlyOpenToolStripMenuItem";
|
||||
resources.ApplyResources(this.recentlyOpenToolStripMenuItem, "recentlyOpenToolStripMenuItem");
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
resources.ApplyResources(toolStripSeparator2, "toolStripSeparator2");
|
||||
//
|
||||
// exitToolStripMenuItem
|
||||
//
|
||||
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
|
||||
resources.ApplyResources(this.exitToolStripMenuItem, "exitToolStripMenuItem");
|
||||
//
|
||||
// toolStripSeparator4
|
||||
//
|
||||
toolStripSeparator4.Name = "toolStripSeparator4";
|
||||
resources.ApplyResources(toolStripSeparator4, "toolStripSeparator4");
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.ApplyImageInvert = true;
|
||||
@@ -1212,6 +1242,8 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem joinDevelopmentDiscordToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem trelloBoardToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem recentlyOpenToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,14 +30,15 @@ using PckStudio.Extensions;
|
||||
using PckStudio.Popups;
|
||||
using PckStudio.Classes.Utils;
|
||||
using PckStudio.Helper;
|
||||
using PCKStudio_Updater;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace PckStudio
|
||||
{
|
||||
public partial class MainForm : MetroFramework.Forms.MetroForm
|
||||
{
|
||||
private PckManager PckManager = null;
|
||||
string saveLocation = string.Empty;
|
||||
string saveLocation;
|
||||
|
||||
PckFile currentPCK = null;
|
||||
|
||||
bool __modified = false;
|
||||
@@ -189,16 +190,59 @@ namespace PckStudio
|
||||
imageList.Images.Add(Resources.BEHAVIOURS_ICON); // Icon for Behaviour files (behaviours.bin)
|
||||
imageList.Images.Add(Resources.ENTITY_MATERIALS_ICON); // Icon for Entity Material files (entityMaterials.bin)
|
||||
|
||||
LoadRecentFileList();
|
||||
|
||||
isSelectingTab = true;
|
||||
tabControl.SelectTab(0);
|
||||
isSelectingTab = false;
|
||||
|
||||
UpdateRichPresence();
|
||||
|
||||
if (saveLocation != String.Empty) LoadPckFromFile(saveLocation);
|
||||
if (!string.IsNullOrWhiteSpace(saveLocation))
|
||||
LoadPckFromFile(saveLocation);
|
||||
}
|
||||
|
||||
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
private void LoadRecentFileList()
|
||||
{
|
||||
Settings.Default.RecentFiles ??= new System.Collections.Specialized.StringCollection();
|
||||
recentlyOpenToolStripMenuItem.DropDownItems.Clear();
|
||||
for (int i = 0; i < Settings.Default.RecentFiles.Count && i < 5; i++)
|
||||
{
|
||||
string filepath = Settings.Default.RecentFiles[i];
|
||||
if (!string.IsNullOrWhiteSpace(filepath))
|
||||
{
|
||||
string displayFilepath = Regex.Replace(filepath, @"([A-Z]{1}\:\\[Uu]sers\\)([^\\]*\\)(.*)", "~\\$3");
|
||||
var item = recentlyOpenToolStripMenuItem.DropDownItems.Add(displayFilepath, null, HandleOpenFile);
|
||||
item.Tag = filepath;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleOpenFile(object sender, EventArgs e)
|
||||
{
|
||||
if (((ToolStripMenuItem)sender).Tag is string filepath && File.Exists(filepath))
|
||||
LoadPckFromFile(filepath);
|
||||
}
|
||||
|
||||
private void SaveToRecentFiles(string filepath)
|
||||
{
|
||||
if (filepath is null || string.IsNullOrWhiteSpace(filepath))
|
||||
return;
|
||||
if (Settings.Default.RecentFiles.Contains(filepath))
|
||||
Settings.Default.RecentFiles.Remove(filepath);
|
||||
Settings.Default.RecentFiles.Insert(0, filepath);
|
||||
if (Settings.Default.RecentFiles.Count > 5)
|
||||
{
|
||||
for (int i = 5; i < Settings.Default.RecentFiles.Count; i++)
|
||||
{
|
||||
Settings.Default.RecentFiles.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
Settings.Default.Save();
|
||||
LoadRecentFileList();
|
||||
}
|
||||
|
||||
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
PckManager?.Close();
|
||||
checkSaveState();
|
||||
@@ -221,7 +265,8 @@ namespace PckStudio
|
||||
{
|
||||
isTemplateFile = false;
|
||||
saveLocation = filePath;
|
||||
var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
|
||||
SaveToRecentFiles(filePath);
|
||||
var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
|
||||
try
|
||||
{
|
||||
PckFile pck = reader.FromFile(filePath);
|
||||
@@ -732,7 +777,8 @@ namespace PckStudio
|
||||
{
|
||||
Save(saveFileDialog.FileName);
|
||||
saveLocation = saveFileDialog.FileName;
|
||||
pckFileLabel.Text = Path.GetFileName(saveLocation);
|
||||
SaveToRecentFiles(saveFileDialog.FileName);
|
||||
pckFileLabel.Text = Path.GetFileName(saveLocation);
|
||||
isTemplateFile = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1322,6 +1322,30 @@
|
||||
<data name="closeToolStripMenuItem.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<metadata name="toolStripSeparator2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 6</value>
|
||||
</data>
|
||||
<data name="recentlyOpenToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>186, 22</value>
|
||||
</data>
|
||||
<data name="recentlyOpenToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Recently open</value>
|
||||
</data>
|
||||
<metadata name="toolStripSeparator4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="toolStripSeparator4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>183, 6</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>186, 22</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Exit</value>
|
||||
</data>
|
||||
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 20</value>
|
||||
</data>
|
||||
@@ -7700,6 +7724,30 @@
|
||||
<data name=">>imageList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>recentlyOpenToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>recentlyOpenToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>recentlyOpenToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator2.Name" xml:space="preserve">
|
||||
<value>toolStripSeparator2</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>exitToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>exitToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>exitToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator4.Name" xml:space="preserve">
|
||||
<value>toolStripSeparator4</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator4.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>MainForm</value>
|
||||
</data>
|
||||
|
||||
13
PCK-Studio/Properties/Settings.Designer.cs
generated
13
PCK-Studio/Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace PckStudio.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
@@ -115,5 +115,16 @@ namespace PckStudio.Properties {
|
||||
this["UseComboBoxForGRFParameter"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
public global::System.Collections.Specialized.StringCollection RecentFiles {
|
||||
get {
|
||||
return ((global::System.Collections.Specialized.StringCollection)(this["RecentFiles"]));
|
||||
}
|
||||
set {
|
||||
this["RecentFiles"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,5 +26,8 @@
|
||||
<Setting Name="UseComboBoxForGRFParameter" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="RecentFiles" Type="System.Collections.Specialized.StringCollection" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
Reference in New Issue
Block a user