From d4085ac37add2bd495b55ab66531d1fc82cfb1a8 Mon Sep 17 00:00:00 2001 From: Lucas7yoshi Date: Wed, 20 Oct 2021 00:28:09 -0400 Subject: [PATCH] Drag and drop XML files --- CodeWalker/ExploreForm.cs | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/CodeWalker/ExploreForm.cs b/CodeWalker/ExploreForm.cs index 7d119e3..e0a5e42 100644 --- a/CodeWalker/ExploreForm.cs +++ b/CodeWalker/ExploreForm.cs @@ -2558,7 +2558,8 @@ namespace CodeWalker RefreshMainListView(); } - private void ImportXml() + + private void ImportXmlDialog() { if (!EditMode) return; if (CurrentFolder?.IsSearchResults ?? false) return; @@ -2567,14 +2568,13 @@ namespace CodeWalker if (!EnsureRpfValidEncryption() && (CurrentFolder.RpfFolder != null)) return; - OpenFileDialog.Filter = "XML Files|*.xml"; - if (OpenFileDialog.ShowDialog(this) != DialogResult.OK) - { - return;//canceled - } + if (OpenFileDialog.ShowDialog(this) != DialogResult.OK) return; + ImportXml(OpenFileDialog.FileNames); + } - var fpaths = OpenFileDialog.FileNames; + private void ImportXml(string[] fpaths) + { foreach (var fpath in fpaths) { #if !DEBUG @@ -3680,7 +3680,7 @@ namespace CodeWalker else if (ctrl) ExtractRaw(); break; case Keys.Insert: - if (shft) ImportXml(); + if (shft) ImportXmlDialog(); else if (!ctrl) ImportRaw(); break; case Keys.C: @@ -3859,7 +3859,19 @@ namespace CodeWalker var files = e.Data.GetData(DataFormats.FileDrop) as string[]; if ((files == null) || (files.Length <= 0)) return; if (files[0].StartsWith(GetDropFolder(), StringComparison.InvariantCultureIgnoreCase)) return; //don't dry to drop on ourselves... - ImportRaw(files); + + //Import as raw regardless of file type while pressing shift + if ((e.KeyState & 4) == 4) + { + ImportRaw(files); + return; + } + + var raw = files.Where(x => !x.EndsWith(".xml")); + var xml = files.Except(raw); + + if (raw.Count() > 0) ImportRaw(raw.ToArray()); + if (xml.Count() > 0) ImportXml(xml.ToArray()); } } @@ -4071,7 +4083,7 @@ namespace CodeWalker private void ListContextImportXmlMenu_Click(object sender, EventArgs e) { - ImportXml(); + ImportXmlDialog(); } private void ListContextImportRawMenu_Click(object sender, EventArgs e) @@ -4166,7 +4178,7 @@ namespace CodeWalker private void EditImportXmlMenu_Click(object sender, EventArgs e) { - ImportXml(); + ImportXmlDialog(); } private void EditImportRawMenu_Click(object sender, EventArgs e)