From de5d8c0264d15d7386472385602b7126de3225f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hambalk=C3=B3=20Bence?= Date: Fri, 31 Aug 2018 12:36:59 +0200 Subject: [PATCH] Implement #99 - Take off where you left off. When you close a project. Everything is saved so the next time you open it you can continue from there. --- .gitmodules | 3 --- WolvenKit/Forms/frmMain.cs | 26 ++++++++++++++++++++++---- WolvenKit/W3Mod.cs | 4 ++++ discord-rpc-csharp | 1 - 4 files changed, 26 insertions(+), 8 deletions(-) delete mode 160000 discord-rpc-csharp diff --git a/.gitmodules b/.gitmodules index d181a1a73..e69de29bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "discord-rpc-csharp"] - path = discord-rpc-csharp - url = https://github.com/Lachee/discord-rpc-csharp diff --git a/WolvenKit/Forms/frmMain.cs b/WolvenKit/Forms/frmMain.cs index 736de6a74..68c045252 100644 --- a/WolvenKit/Forms/frmMain.cs +++ b/WolvenKit/Forms/frmMain.cs @@ -538,10 +538,15 @@ private void createNewMod() private void SaveMod() { - var ser = new XmlSerializer(typeof(W3Mod)); - var modfile = new FileStream(ActiveMod.FileName, FileMode.Create, FileAccess.Write); - ser.Serialize(modfile, ActiveMod); - modfile.Close(); + if (ActiveMod != null) + { + if(ActiveMod.LastOpenedFiles != null) + ActiveMod.LastOpenedFiles = OpenDocuments.Select(x => x.File.FileName).ToList(); + var ser = new XmlSerializer(typeof(W3Mod)); + var modfile = new FileStream(ActiveMod.FileName, FileMode.Create, FileAccess.Write); + ser.Serialize(modfile, ActiveMod); + modfile.Close(); + } } public IDockContent DeserializeDockContent(string persistString) @@ -634,6 +639,17 @@ private void openMod(string file = "") { MessageBox.Show("Failed to upgrade the project!\n" + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error); } + + if (ActiveMod?.LastOpenedFiles != null) + { + foreach (var doc in ActiveMod.LastOpenedFiles) + { + if (File.Exists(doc)) + { + LoadDocument(doc); + } + } + } } /// @@ -1182,6 +1198,8 @@ private void frmMain_FormClosing(object sender, FormClosingEventArgs e) if (MainController.Get().ProjectUnsaved) if (MessageBox.Show("There are unsaved changes in your project. Would you like to save them?", "WolvenKit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) saveAllFiles(); + + SaveMod(); } private void frmMain_FormClosed(object sender, FormClosedEventArgs e) diff --git a/WolvenKit/W3Mod.cs b/WolvenKit/W3Mod.cs index eb1196d44..7bd70c7a3 100644 --- a/WolvenKit/W3Mod.cs +++ b/WolvenKit/W3Mod.cs @@ -101,6 +101,9 @@ public List DLCFiles } } + [Browsable(false)] + public List LastOpenedFiles; + [XmlIgnore] [ReadOnly(true)] @@ -120,6 +123,7 @@ public object Clone() clone.Name = Name; clone.FileName = FileName; clone.version = version; + clone.LastOpenedFiles = LastOpenedFiles; return clone; } } diff --git a/discord-rpc-csharp b/discord-rpc-csharp deleted file mode 160000 index 817c8a54b..000000000 --- a/discord-rpc-csharp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 817c8a54b6a35c17e4bd4fb3c29ad5b053445d49