From 97a7b55e749e607a732fe091e1368a03b5f39932 Mon Sep 17 00:00:00 2001 From: Asval Date: Fri, 23 Aug 2019 23:27:48 +0200 Subject: [PATCH] more coherent colors for UpdateMyConsole + copy stuff on SearchFiles + better fmodel updater form --- FModel/App.config | 3 - FModel/Forms/MergeImages.cs | 2 +- FModel/Forms/SearchFiles.Designer.cs | 52 +++++++++ FModel/Forms/SearchFiles.cs | 50 +++++++++ FModel/Forms/SearchFiles.resx | 3 + FModel/Forms/Settings.Designer.cs | 15 +-- FModel/Forms/Settings.cs | 4 - FModel/MainWindow.cs | 51 ++++----- FModel/MainWindow.resx | 2 +- .../Methods/AESManager/DynamicKeys/AddToUI.cs | 11 +- .../ChallengeGenerator/BundleInfos.cs | 2 +- .../IconGenerator/ItemGenerator/Rarity.cs | 11 +- .../IconGenerator/Translations/LoadLocRes.cs | 13 ++- FModel/Methods/PakHelper/CreateBackup.cs | 24 +++-- FModel/Methods/PakHelper/PakHelper.cs | 36 ++++++- FModel/Methods/Utilities/Utilities.cs | 100 ++++++++++++++---- FModel/Properties/Settings.Designer.cs | 12 --- FModel/Properties/Settings.settings | 3 - 18 files changed, 275 insertions(+), 119 deletions(-) diff --git a/FModel/App.config b/FModel/App.config index 1630f625..82951680 100644 --- a/FModel/App.config +++ b/FModel/App.config @@ -58,9 +58,6 @@ - - True - diff --git a/FModel/Forms/MergeImages.cs b/FModel/Forms/MergeImages.cs index 0cde5805..dcfbc5a4 100644 --- a/FModel/Forms/MergeImages.cs +++ b/FModel/Forms/MergeImages.cs @@ -111,7 +111,7 @@ namespace FModel.Forms if (saveTheDialog.ShowDialog() == DialogResult.OK) { pictureBox1.Image.Save(saveTheDialog.FileName, ImageFormat.Png); - new UpdateMyConsole(Path.GetFileNameWithoutExtension(saveTheDialog.FileName), Color.DarkRed).AppendToConsole(); + new UpdateMyConsole(Path.GetFileNameWithoutExtension(saveTheDialog.FileName), Color.Crimson).AppendToConsole(); new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole(); } } diff --git a/FModel/Forms/SearchFiles.Designer.cs b/FModel/Forms/SearchFiles.Designer.cs index 966b6ef4..5fa7bab4 100644 --- a/FModel/Forms/SearchFiles.Designer.cs +++ b/FModel/Forms/SearchFiles.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SearchFiles)); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.listView1 = new System.Windows.Forms.ListView(); @@ -38,8 +39,14 @@ this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.copyFilePathToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.copyFileNameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.copyFilePathWithoutExtensionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.copyFileNameWithoutExtensionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tableLayoutPanel1.SuspendLayout(); this.panel1.SuspendLayout(); + this.contextMenuStrip1.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 @@ -74,6 +81,7 @@ this.listView1.VirtualMode = true; this.listView1.RetrieveVirtualItem += new System.Windows.Forms.RetrieveVirtualItemEventHandler(this.listView1_RetrieveVirtualItem); this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged); + this.listView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ListView1_MouseDown); // // columnHeader1 // @@ -138,6 +146,44 @@ this.textBox1.TabIndex = 0; this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.copyFilePathToolStripMenuItem, + this.copyFileNameToolStripMenuItem, + this.copyFilePathWithoutExtensionToolStripMenuItem, + this.copyFileNameWithoutExtensionToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(256, 114); + // + // copyFilePathToolStripMenuItem + // + this.copyFilePathToolStripMenuItem.Name = "copyFilePathToolStripMenuItem"; + this.copyFilePathToolStripMenuItem.Size = new System.Drawing.Size(255, 22); + this.copyFilePathToolStripMenuItem.Text = "Copy File Path"; + this.copyFilePathToolStripMenuItem.Click += new System.EventHandler(this.CopyFilePathToolStripMenuItem_Click); + // + // copyFileNameToolStripMenuItem + // + this.copyFileNameToolStripMenuItem.Name = "copyFileNameToolStripMenuItem"; + this.copyFileNameToolStripMenuItem.Size = new System.Drawing.Size(255, 22); + this.copyFileNameToolStripMenuItem.Text = "Copy File Name"; + this.copyFileNameToolStripMenuItem.Click += new System.EventHandler(this.CopyFileNameToolStripMenuItem_Click); + // + // copyFilePathWithoutExtensionToolStripMenuItem + // + this.copyFilePathWithoutExtensionToolStripMenuItem.Name = "copyFilePathWithoutExtensionToolStripMenuItem"; + this.copyFilePathWithoutExtensionToolStripMenuItem.Size = new System.Drawing.Size(255, 22); + this.copyFilePathWithoutExtensionToolStripMenuItem.Text = "Copy File Path without Extension"; + this.copyFilePathWithoutExtensionToolStripMenuItem.Click += new System.EventHandler(this.CopyFilePathWithoutExtensionToolStripMenuItem_Click); + // + // copyFileNameWithoutExtensionToolStripMenuItem + // + this.copyFileNameWithoutExtensionToolStripMenuItem.Name = "copyFileNameWithoutExtensionToolStripMenuItem"; + this.copyFileNameWithoutExtensionToolStripMenuItem.Size = new System.Drawing.Size(255, 22); + this.copyFileNameWithoutExtensionToolStripMenuItem.Text = "Copy File Name without Extension"; + this.copyFileNameWithoutExtensionToolStripMenuItem.Click += new System.EventHandler(this.CopyFileNameWithoutExtensionToolStripMenuItem_Click); + // // SearchFiles // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -153,6 +199,7 @@ this.tableLayoutPanel1.ResumeLayout(false); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); + this.contextMenuStrip1.ResumeLayout(false); this.ResumeLayout(false); } @@ -168,5 +215,10 @@ private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem copyFilePathToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyFileNameToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyFilePathWithoutExtensionToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyFileNameWithoutExtensionToolStripMenuItem; } } \ No newline at end of file diff --git a/FModel/Forms/SearchFiles.cs b/FModel/Forms/SearchFiles.cs index 454d9b8b..0dfd14bb 100644 --- a/FModel/Forms/SearchFiles.cs +++ b/FModel/Forms/SearchFiles.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Drawing; using System.IO; using System.Threading.Tasks; using System.Windows.Forms; @@ -227,6 +228,55 @@ namespace FModel.Forms FilesToSearch = true; Close(); } + + private void ListView1_MouseDown(object sender, MouseEventArgs e) + { + if (listView1.Items.Count != 0 && listView1.SelectedItems != null && e.Button == MouseButtons.Right) + { + contextMenuStrip1.Show(Cursor.Position); + } + } + + private void CopySelectedFile(bool isName = false, bool withExtension = true) + { + if (listView1.SelectedItems != null) + { + ListView.SelectedIndexCollection col = listView1.SelectedIndices; + string path = listView1.Items[col[0]].Text; + + // if file uasset/uexp/ubulk + path = !path.Contains(".") ? (path.Replace("\\", "/") + ".uasset") : path.Replace("\\", "/"); + if (isName) + path = Path.GetFileName(path); + + if (!withExtension) + path = isName ? Path.GetFileNameWithoutExtension(path) : Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path)); + + Clipboard.SetText(path); + new UpdateMyConsole(path, Color.CornflowerBlue).AppendToConsole(); + new UpdateMyConsole(" Copied!", Color.Black, true).AppendToConsole(); + } + } + + private void CopyFilePathToolStripMenuItem_Click(object sender, EventArgs e) + { + CopySelectedFile(); + } + + private void CopyFileNameToolStripMenuItem_Click(object sender, EventArgs e) + { + CopySelectedFile(true); + } + + private void CopyFilePathWithoutExtensionToolStripMenuItem_Click(object sender, EventArgs e) + { + CopySelectedFile(false, false); + } + + private void CopyFileNameWithoutExtensionToolStripMenuItem_Click(object sender, EventArgs e) + { + CopySelectedFile(true, false); + } } class FileInfo diff --git a/FModel/Forms/SearchFiles.resx b/FModel/Forms/SearchFiles.resx index a12630e6..ef8c177d 100644 --- a/FModel/Forms/SearchFiles.resx +++ b/FModel/Forms/SearchFiles.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + diff --git a/FModel/Forms/Settings.Designer.cs b/FModel/Forms/Settings.Designer.cs index 55595463..3408c4c7 100644 --- a/FModel/Forms/Settings.Designer.cs +++ b/FModel/Forms/Settings.Designer.cs @@ -33,7 +33,6 @@ namespace FModel.Forms this.textBox2 = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.checkBox_tryToOpen = new System.Windows.Forms.CheckBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.OKButton = new System.Windows.Forms.Button(); @@ -105,7 +104,6 @@ namespace FModel.Forms // groupBox2 // this.groupBox2.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.groupBox2.Controls.Add(this.checkBox_tryToOpen); this.groupBox2.Controls.Add(this.textBox1); this.groupBox2.Controls.Add(this.label1); this.groupBox2.Location = new System.Drawing.Point(12, 67); @@ -115,21 +113,11 @@ namespace FModel.Forms this.groupBox2.TabStop = false; this.groupBox2.Text = "Extraction"; // - // checkBox_tryToOpen - // - this.checkBox_tryToOpen.AutoSize = true; - this.checkBox_tryToOpen.Location = new System.Drawing.Point(397, 22); - this.checkBox_tryToOpen.Name = "checkBox_tryToOpen"; - this.checkBox_tryToOpen.Size = new System.Drawing.Size(157, 17); - this.checkBox_tryToOpen.TabIndex = 8; - this.checkBox_tryToOpen.Text = "Try to open Extracted Asset"; - this.checkBox_tryToOpen.UseVisualStyleBackColor = true; - // // textBox1 // this.textBox1.Location = new System.Drawing.Point(54, 19); this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(337, 20); + this.textBox1.Size = new System.Drawing.Size(500, 20); this.textBox1.TabIndex = 2; // // label1 @@ -515,7 +503,6 @@ namespace FModel.Forms private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.TextBox textBox6; private System.Windows.Forms.Label label12; - private System.Windows.Forms.CheckBox checkBox_tryToOpen; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Button button2; private System.Windows.Forms.CheckBox checkBox2; diff --git a/FModel/Forms/Settings.cs b/FModel/Forms/Settings.cs index 466a9fa7..d27dc0b8 100644 --- a/FModel/Forms/Settings.cs +++ b/FModel/Forms/Settings.cs @@ -35,8 +35,6 @@ namespace FModel.Forms textBox6.Text = "@UseTheWatermarkBecauseWhyNot - {Date}"; } - checkBox_tryToOpen.Checked = Properties.Settings.Default.tryToOpenAssets; - // Check if watermark exists Utilities.CheckWatermark(); @@ -122,8 +120,6 @@ namespace FModel.Forms Properties.Settings.Default.challengesOpacity = trackBar3.Value; Properties.Settings.Default.challengesColors = headerColor.R + "," + headerColor.G + "," + headerColor.B; - Properties.Settings.Default.tryToOpenAssets = checkBox_tryToOpen.Checked; - Properties.Settings.Default.rarityDesign = comboBox2.SelectedItem.ToString(); //WATERMARK diff --git a/FModel/MainWindow.cs b/FModel/MainWindow.cs index 2670eac6..b0a2acba 100644 --- a/FModel/MainWindow.cs +++ b/FModel/MainWindow.cs @@ -153,7 +153,11 @@ namespace FModel AddPaKs(Path.GetFileName(arCurrentUsedPak)); //add to toolstrip } } - else { new UpdateMyConsole("[FModel] " + Path.GetFileName(arCurrentUsedPak) + " is locked by another process.", Color.Red, true).AppendToConsole(); } + else + { + new UpdateMyConsole(Path.GetFileName(arCurrentUsedPak), Color.CornflowerBlue).AppendToConsole(); + new UpdateMyConsole(" is locked by another process.", Color.Black, true).AppendToConsole(); + } } } } @@ -161,6 +165,7 @@ namespace FModel //EVENTS private async void MainWindow_Load(object sender, EventArgs e) { + AutoUpdater.CheckForUpdateEvent += Utilities.AutoUpdaterOnCheckForUpdateEvent; AutoUpdater.Start("https://dl.dropbox.com/s/3kv2pukqu6tj1r0/FModel.xml?dl=0"); DLLImport.SetTreeViewTheme(treeView1.Handle); @@ -367,7 +372,7 @@ namespace FModel { Invoke(new Action(() => { - new UpdateMyConsole("Items Removed/Renamed:", Color.Red, true).AppendToConsole(); + new UpdateMyConsole("Items Removed/Renamed:", Color.Crimson, true).AppendToConsole(); removedItems = removedItems.Distinct().ToList(); for (int ii = 0; ii < removedItems.Count; ii++) new UpdateMyConsole(" - " + removedItems[ii], Color.Black, true).AppendToConsole(); @@ -376,7 +381,7 @@ namespace FModel } else { - new UpdateMyConsole("Canceled! ", Color.Red).AppendToConsole(); + new UpdateMyConsole("Canceled! ", Color.Crimson).AppendToConsole(); new UpdateMyConsole("All pak files loaded...", Color.Black, true).AppendToConsole(); return; } @@ -870,7 +875,7 @@ namespace FModel } catch (JsonReaderException) { - new UpdateMyConsole(ThePak.CurrentUsedItem + " ", Color.Red).AppendToConsole(); + new UpdateMyConsole(ThePak.CurrentUsedItem + " ", Color.Crimson).AppendToConsole(); new UpdateMyConsole(".JSON file can't be displayed", Color.Black, true).AppendToConsole(); } finally @@ -974,7 +979,7 @@ namespace FModel { if (Checking.UmWorking) { - new UpdateMyConsole(ex.Message, Color.Red, true).AppendToConsole(); + new UpdateMyConsole(ex.Message, Color.Crimson, true).AppendToConsole(); } else { @@ -1073,9 +1078,9 @@ namespace FModel for (int i = 0; i < BundleInfos.BundleData.Count; i++) { - new UpdateMyConsole(BundleInfos.BundleData[i].questDescr, Color.SteelBlue).AppendToConsole(); - new UpdateMyConsole("\t\tCount: " + BundleInfos.BundleData[i].questCount, Color.DarkRed).AppendToConsole(); - new UpdateMyConsole("\t\t" + BundleInfos.BundleData[i].rewardItemId + ":" + BundleInfos.BundleData[i].rewardItemQuantity, Color.DarkGreen, true).AppendToConsole(); + new UpdateMyConsole(BundleInfos.BundleData[i].questDescr, Color.RoyalBlue).AppendToConsole(); + new UpdateMyConsole("\t\tCount: " + BundleInfos.BundleData[i].questCount, Color.Goldenrod).AppendToConsole(); + new UpdateMyConsole("\t\t" + BundleInfos.BundleData[i].rewardItemId + ":" + BundleInfos.BundleData[i].rewardItemQuantity, Color.Crimson, true).AppendToConsole(); BundleDesign.theY += 90; @@ -1172,7 +1177,7 @@ namespace FModel { pictureBox1.Image.Save(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png", ImageFormat.Png); })); - new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole(); + new UpdateMyConsole(ThePak.CurrentUsedItem, Color.Crimson).AppendToConsole(); new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole(); } } @@ -1186,11 +1191,8 @@ namespace FModel if (File.Exists(soundPathConverted)) { - if (Properties.Settings.Default.tryToOpenAssets) - { - Utilities.OpenWithDefaultProgramAndNoFocus(soundPathConverted); - new UpdateMyState("Opening " + ThePak.CurrentUsedItem + ".ogg", "Success").ChangeProcessState(); - } else { new UpdateMyState("Extracted " + ThePak.CurrentUsedItem + ".ogg", "Success").ChangeProcessState(); } + new UpdateMyState("Opening " + ThePak.CurrentUsedItem + ".ogg", "Success").ChangeProcessState(); + Utilities.OpenWithDefaultProgramAndNoFocus(soundPathConverted); } else new UpdateMyState("Couldn't convert " + ThePak.CurrentUsedItem, "Error").ChangeProcessState(); @@ -1320,7 +1322,7 @@ namespace FModel if (saveTheDialog.ShowDialog() == DialogResult.OK) { pictureBox1.Image.Save(saveTheDialog.FileName, ImageFormat.Png); - new UpdateMyConsole(Path.GetFileNameWithoutExtension(saveTheDialog.FileName), Color.DarkRed).AppendToConsole(); + new UpdateMyConsole(Path.GetFileNameWithoutExtension(saveTheDialog.FileName), Color.Crimson).AppendToConsole(); new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole(); } } @@ -1499,7 +1501,8 @@ namespace FModel path = isName ? Path.GetFileNameWithoutExtension(path) : Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path)); Clipboard.SetText(path); - new UpdateMyConsole(path + " Copied!", Color.Green, true).AppendToConsole(); + new UpdateMyConsole(path, Color.CornflowerBlue).AppendToConsole(); + new UpdateMyConsole(" Copied!", Color.Black, true).AppendToConsole(); } } @@ -1521,14 +1524,9 @@ namespace FModel File.WriteAllText(saveTheDialog.FileName, scintilla1.Text); if (File.Exists(saveTheDialog.FileName)) { - new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole(); + new UpdateMyConsole(ThePak.CurrentUsedItem, Color.Crimson).AppendToConsole(); new UpdateMyConsole(" successfully saved", Color.Black, true).AppendToConsole(); } - else - { - new UpdateMyConsole("Fail to save ", Color.Black).AppendToConsole(); - new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed, true).AppendToConsole(); - } } } } @@ -1549,14 +1547,9 @@ namespace FModel if (File.Exists(App.DefaultOutputPath + "\\Saved_JSON\\" + filename + ".json")) { - new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole(); + new UpdateMyConsole(ThePak.CurrentUsedItem, Color.Crimson).AppendToConsole(); new UpdateMyConsole("'s properties successfully saved", Color.Black, true).AppendToConsole(); } - else - { - new UpdateMyConsole("Fail to save ", Color.Black).AppendToConsole(); - new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed, true).AppendToConsole(); - } } } } @@ -1571,7 +1564,7 @@ namespace FModel if (File.Exists(App.DefaultOutputPath + "\\Icons\\" + ThePak.CurrentUsedItem + ".png")) { - new UpdateMyConsole(ThePak.CurrentUsedItem, Color.DarkRed).AppendToConsole(); + new UpdateMyConsole(ThePak.CurrentUsedItem, Color.Crimson).AppendToConsole(); new UpdateMyConsole("'s image successfully saved", Color.Black, true).AppendToConsole(); } } diff --git a/FModel/MainWindow.resx b/FModel/MainWindow.resx index ec1d5ad5..7ab45bf0 100644 --- a/FModel/MainWindow.resx +++ b/FModel/MainWindow.resx @@ -131,7 +131,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa - CAAAAk1TRnQBSQFMAgEBAgEAAUABAgFAAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAUgBAgFIAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/FModel/Methods/AESManager/DynamicKeys/AddToUI.cs b/FModel/Methods/AESManager/DynamicKeys/AddToUI.cs index 853f2c17..decd175c 100644 --- a/FModel/Methods/AESManager/DynamicKeys/AddToUI.cs +++ b/FModel/Methods/AESManager/DynamicKeys/AddToUI.cs @@ -50,7 +50,6 @@ namespace FModel DynamicKeysManager.serialize("", item.thePak); } } - new UpdateMyConsole("", Color.Green, true).AppendToConsole(); } } @@ -68,20 +67,20 @@ namespace FModel if (DLLImport.IsInternetAvailable()) { string data = Keychain.GetEndpoint("http://benbotfn.tk:8080/api/aes"); - if (string.IsNullOrEmpty(data)) { new UpdateMyConsole("[BenBot API] API Down or Rate Limit Exceeded", Color.Red, true).AppendToConsole(); return null; } + if (string.IsNullOrEmpty(data)) { new UpdateMyConsole("API Down or Rate Limit Exceeded", Color.CornflowerBlue, true).AppendToConsole(); return null; } JToken dynamicPaks = JObject.Parse(data).FindTokens("additionalKeys").FirstOrDefault(); return JToken.Parse(dynamicPaks.ToString()).ToString().TrimStart('[').TrimEnd(']'); } else { - new UpdateMyConsole("Your internet connection is currently unavailable, can't check for dynamic keys at the moment.", Color.Red, true).AppendToConsole(); + new UpdateMyConsole("Your internet connection is currently unavailable, can't check for dynamic keys at the moment.", Color.CornflowerBlue, true).AppendToConsole(); return null; } } catch (Exception) { - new UpdateMyConsole("[BenBot API] Error while checking for dynamic keys", Color.Red, true).AppendToConsole(); + new UpdateMyConsole("Error while checking for dynamic keys", Color.Crimson, true).AppendToConsole(); return null; } } @@ -99,14 +98,14 @@ namespace FModel bool wasThereBeforeStartup = _oldKeysList.Where(i => i.theKey == pakKey).Any(); if (!wasThereBeforeStartup) { - new UpdateMyConsole(pakName, Color.Firebrick).AppendToConsole(); + new UpdateMyConsole(pakName, Color.CornflowerBlue).AppendToConsole(); new UpdateMyConsole(" can now be opened.", Color.Black, true).AppendToConsole(); } } else { //display all paks that can be opened - new UpdateMyConsole(pakName, Color.Firebrick).AppendToConsole(); + new UpdateMyConsole(pakName, Color.CornflowerBlue).AppendToConsole(); new UpdateMyConsole(" can be opened.", Color.Black, true).AppendToConsole(); } } diff --git a/FModel/Methods/IconGenerator/ChallengeGenerator/BundleInfos.cs b/FModel/Methods/IconGenerator/ChallengeGenerator/BundleInfos.cs index 87941c5e..b3407b01 100644 --- a/FModel/Methods/IconGenerator/ChallengeGenerator/BundleInfos.cs +++ b/FModel/Methods/IconGenerator/ChallengeGenerator/BundleInfos.cs @@ -284,7 +284,7 @@ namespace FModel } catch (KeyNotFoundException) { - new UpdateMyConsole("[FModel] Can't extract " + questFile, Color.Red, true); + new UpdateMyConsole("Can't extract " + questFile, Color.CornflowerBlue, true); } } } diff --git a/FModel/Methods/IconGenerator/ItemGenerator/Rarity.cs b/FModel/Methods/IconGenerator/ItemGenerator/Rarity.cs index 00535330..8827c9b6 100644 --- a/FModel/Methods/IconGenerator/ItemGenerator/Rarity.cs +++ b/FModel/Methods/IconGenerator/ItemGenerator/Rarity.cs @@ -36,21 +36,24 @@ namespace FModel pen = new Pen(border, 5); pen.Alignment = PenAlignment.Inset; - toDrawOn.DrawRectangle(pen, new Rectangle(-1, -1, 522, 522)); + toDrawOn.DrawRectangle(pen, new Rectangle(-1, -1, 523, 523)); break; case "Default": + int circleSize = 750; // not that bad like that + int circlePos = (522 - circleSize) / 2; + p = new GraphicsPath(); - p.AddEllipse(-266, -266, 1044, 1044); + p.AddEllipse(circlePos, circlePos, circleSize, circleSize); pthGrBrush = new PathGradientBrush(p); pthGrBrush.CenterColor = background; pthGrBrush.SurroundColors = colors; - toDrawOn.FillEllipse(pthGrBrush, -266, -266, 1044, 1044); + toDrawOn.FillEllipse(pthGrBrush, circlePos, circlePos, circleSize, circleSize); pen = new Pen(border, 5); pen.Alignment = PenAlignment.Inset; - toDrawOn.DrawRectangle(pen, new Rectangle(-1, -1, 522, 522)); + toDrawOn.DrawRectangle(pen, new Rectangle(-1, -1, 523, 523)); break; } } diff --git a/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs b/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs index ef7acf0e..f6f1cb9a 100644 --- a/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs +++ b/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs @@ -72,8 +72,10 @@ namespace FModel } else { - new UpdateMyConsole("[FModel] BR Localization File Not Found - Icon Language set to English", Color.DarkRed, true).AppendToConsole(); - new UpdateMyConsole("", Color.Black, true).AppendToConsole(); + new UpdateMyConsole("Game_BR.locres ", Color.Crimson).AppendToConsole(); + new UpdateMyConsole("not found", Color.Black, true).AppendToConsole(); + new UpdateMyConsole("Icon language set to ", Color.Black).AppendToConsole(); + new UpdateMyConsole("English", Color.CornflowerBlue, true).AppendToConsole(); Properties.Settings.Default.IconLanguage = "English"; Properties.Settings.Default.Save(); @@ -87,11 +89,8 @@ namespace FModel } else { - new UpdateMyConsole("[FModel] STW Localization File Not Found - Icon Language set to English", Color.DarkRed, true).AppendToConsole(); - new UpdateMyConsole("", Color.Black, true).AppendToConsole(); - - Properties.Settings.Default.IconLanguage = "English"; - Properties.Settings.Default.Save(); + new UpdateMyConsole("Game_StW.locres ", Color.Crimson).AppendToConsole(); + new UpdateMyConsole("not found", Color.Black, true).AppendToConsole(); } } } diff --git a/FModel/Methods/PakHelper/CreateBackup.cs b/FModel/Methods/PakHelper/CreateBackup.cs index cc00ef1b..3ebc06b0 100644 --- a/FModel/Methods/PakHelper/CreateBackup.cs +++ b/FModel/Methods/PakHelper/CreateBackup.cs @@ -25,11 +25,13 @@ namespace FModel { extractor = new PakExtractor(Settings.Default.PAKsPath + "\\" + ThePak.mainPaksList[i].thePak, Settings.Default.AESKey); } - catch (Exception) + catch (Exception ex) { - new UpdateMyConsole("0x" + Settings.Default.AESKey + " doesn't work with the main paks.", Color.Red, true).AppendToConsole(); - extractor.Dispose(); - break; + if (string.Equals(ex.Message, "Extraction failed")) { PakHelper.DisplayError(); } + else { PakHelper.DisplayEmergencyError(ex); return; } + + if (extractor != null) { extractor.Dispose(); } + break; //if one of the main pak file doesn't work, all the other doesn't work either } if (extractor.GetFileList().ToArray() != null) @@ -57,10 +59,12 @@ namespace FModel { extractor = new PakExtractor(Settings.Default.PAKsPath + "\\" + pakName, pakKey); } - catch (Exception) + catch (Exception ex) { - new UpdateMyConsole("0x" + pakKey + " doesn't work with " + ThePak.dynamicPaksList[i].thePak, Color.Red, true).AppendToConsole(); - extractor.Dispose(); + if (string.Equals(ex.Message, "Extraction failed")) { PakHelper.DisplayError(pakName, pakKey); } + else { PakHelper.DisplayEmergencyError(ex); return; } + + if (extractor != null) { extractor.Dispose(); } continue; } @@ -74,7 +78,7 @@ namespace FModel sb.Append(fileListWithMountPoint[ii] + "\n"); } new UpdateMyConsole("Backing up ", Color.Black).AppendToConsole(); - new UpdateMyConsole(ThePak.dynamicPaksList[i].thePak, Color.DarkRed, true).AppendToConsole(); + new UpdateMyConsole(ThePak.dynamicPaksList[i].thePak, Color.CornflowerBlue, true).AppendToConsole(); } extractor.Dispose(); } @@ -112,12 +116,12 @@ namespace FModel } else { - new UpdateMyConsole("Your internet connection is currently unavailable, can't check for backup files at the moment.", Color.Red, true).AppendToConsole(); + new UpdateMyConsole("Your internet connection is currently unavailable, can't check for backup files at the moment.", Color.CornflowerBlue, true).AppendToConsole(); } } catch (Exception) { - new UpdateMyConsole("[FModel] Error while checking for backup files", Color.Red, true).AppendToConsole(); + new UpdateMyConsole("Error while checking for backup files", Color.Crimson, true).AppendToConsole(); } } } diff --git a/FModel/Methods/PakHelper/PakHelper.cs b/FModel/Methods/PakHelper/PakHelper.cs index 6323902f..76f01ec4 100644 --- a/FModel/Methods/PakHelper/PakHelper.cs +++ b/FModel/Methods/PakHelper/PakHelper.cs @@ -39,8 +39,8 @@ namespace FModel } catch (Exception ex) { - if (!string.Equals(ex.Message, "Extraction failed")) { new UpdateMyConsole("Message: " + ex.Message + "\nSource: " + ex.Source + "\nTarget: " + ex.TargetSite + "\n\nContact me: @AsvalFN on Twitter or open an issue on GitHub", Color.Red, true).AppendToConsole(); return; } - else { new UpdateMyConsole("0x" + Settings.Default.AESKey + " doesn't work with the main pak files", Color.Red, true).AppendToConsole(); } + if (string.Equals(ex.Message, "Extraction failed")) { DisplayError(); } + else { DisplayEmergencyError(ex); return; } if (theExtractor != null) { theExtractor.Dispose(); } break; //if one of the main pak file doesn't work, all the other doesn't work either @@ -74,8 +74,8 @@ namespace FModel } catch (Exception ex) { - if (string.Equals(ex.Message, "Extraction failed")) { new UpdateMyConsole("0x" + pakKey + " doesn't work with " + ThePak.dynamicPaksList[i].thePak, Color.Red, true).AppendToConsole(); } - else { new UpdateMyConsole("Message: " + ex.Message + "\nSource: " + ex.Source + "\nTarget: " + ex.TargetSite + "\n\nContact me: @AsvalFN on Twitter or open an issue on GitHub", Color.Red, true).AppendToConsole(); return; } + if (string.Equals(ex.Message, "Extraction failed")) { DisplayError(pakName, pakKey); } + else { DisplayEmergencyError(ex); return; } if (theExtractor != null) { theExtractor.Dispose(); } continue; @@ -140,5 +140,33 @@ namespace FModel if (weLoadAll) { new UpdateMyState(".PAK mount point: " + mountPoint.Substring(9), "Waiting").ChangeProcessState(); } if (theSinglePak != null && thePakName == theSinglePak.ClickedItem.Text) { PakAsTxt = thePakLines; } } + + public static void DisplayError(string pak = null, string key = null) + { + if (string.IsNullOrEmpty(pak) && string.IsNullOrEmpty(key)) + { + new UpdateMyConsole("0x" + Settings.Default.AESKey, Color.Crimson).AppendToConsole(); + new UpdateMyConsole(" doesn't work with the main pak files", Color.Black, true).AppendToConsole(); + } + else + { + new UpdateMyConsole("0x" + key, Color.Crimson).AppendToConsole(); + new UpdateMyConsole(" doesn't work with ", Color.Black).AppendToConsole(); + new UpdateMyConsole(pak, Color.Crimson, true).AppendToConsole(); + } + } + public static void DisplayEmergencyError(Exception ex) + { + new UpdateMyConsole("Message: ", Color.Crimson).AppendToConsole(); + new UpdateMyConsole(ex.Message, Color.Black, true).AppendToConsole(); + + new UpdateMyConsole("Source: ", Color.Crimson).AppendToConsole(); + new UpdateMyConsole(ex.Source, Color.Black, true).AppendToConsole(); + + new UpdateMyConsole("Target: ", Color.Crimson).AppendToConsole(); + new UpdateMyConsole(ex.TargetSite.ToString(), Color.Black, true).AppendToConsole(); + + new UpdateMyConsole("\nContact me: @AsvalFN on Twitter or open an issue on GitHub", Color.Crimson, true).AppendToConsole(); + } } } diff --git a/FModel/Methods/Utilities/Utilities.cs b/FModel/Methods/Utilities/Utilities.cs index ae48e213..66f6775d 100644 --- a/FModel/Methods/Utilities/Utilities.cs +++ b/FModel/Methods/Utilities/Utilities.cs @@ -8,6 +8,7 @@ using System.Security.AccessControl; using System.Security.Principal; using System.Windows.Forms; using System.Collections.Generic; +using AutoUpdaterDotNET; namespace FModel { @@ -19,10 +20,17 @@ namespace FModel /// path is the path to the converted sound file (in "Sounds" subfolder) public static void OpenWithDefaultProgramAndNoFocus(string path) { - Process fileopener = new Process(); - fileopener.StartInfo.FileName = "explorer"; - fileopener.StartInfo.Arguments = "\"" + path + "\""; - fileopener.Start(); + try + { + Process fileopener = new Process(); + fileopener.StartInfo.FileName = "explorer"; + fileopener.StartInfo.Arguments = "\"" + path + "\""; + fileopener.Start(); + } + catch (Exception) + { + throw new ArgumentException("Error while trying to open " + ThePak.CurrentUsedItem); + } } /// @@ -175,31 +183,31 @@ namespace FModel public static void CheckWatermark() { - if (!string.IsNullOrEmpty(Properties.Settings.Default.wFilename) && - !File.Exists(Properties.Settings.Default.wFilename)) + if (!string.IsNullOrEmpty(Settings.Default.wFilename) && + !File.Exists(Settings.Default.wFilename)) { - Properties.Settings.Default.wFilename = string.Empty; - Properties.Settings.Default.isWatermark = false; - new UpdateMyConsole("Watermark file not found, watermarking disabled.", Color.Red, true).AppendToConsole(); + Settings.Default.wFilename = string.Empty; + Settings.Default.isWatermark = false; + new UpdateMyConsole("Watermark file not found, watermarking disabled.", Color.CornflowerBlue, true).AppendToConsole(); } - if (!string.IsNullOrEmpty(Properties.Settings.Default.UMFilename) && - !File.Exists(Properties.Settings.Default.UMFilename)) + if (!string.IsNullOrEmpty(Settings.Default.UMFilename) && + !File.Exists(Settings.Default.UMFilename)) { - Properties.Settings.Default.UMFilename = string.Empty; - Properties.Settings.Default.UMWatermark = false; - new UpdateMyConsole("Watermark file not found, watermarking in Update Mode disabled.", Color.Red, true).AppendToConsole(); + Settings.Default.UMFilename = string.Empty; + Settings.Default.UMWatermark = false; + new UpdateMyConsole("Watermark file not found, watermarking in Update Mode disabled.", Color.CornflowerBlue, true).AppendToConsole(); } - if (!string.IsNullOrEmpty(Properties.Settings.Default.challengesBannerFileName) && - !File.Exists(Properties.Settings.Default.challengesBannerFileName)) + if (!string.IsNullOrEmpty(Settings.Default.challengesBannerFileName) && + !File.Exists(Settings.Default.challengesBannerFileName)) { - Properties.Settings.Default.challengesBannerFileName = string.Empty; - Properties.Settings.Default.isChallengesTheme = false; - new UpdateMyConsole("Banner file not found, challenges custom theme disabled.", Color.Red, true).AppendToConsole(); + Settings.Default.challengesBannerFileName = string.Empty; + Settings.Default.isChallengesTheme = false; + new UpdateMyConsole("Banner file not found, challenges custom theme disabled.", Color.CornflowerBlue, true).AppendToConsole(); } - Properties.Settings.Default.Save(); + Settings.Default.Save(); } public static IEnumerable GetAncestors(TItem item, Func getParentFunc) @@ -220,5 +228,57 @@ namespace FModel return Color.FromArgb((int)(color.R * coef), (int)(color.G * coef), (int)(color.B * coef)); } + + public static void AutoUpdaterOnCheckForUpdateEvent(UpdateInfoEventArgs args) + { + if (args != null) + { + if (args.IsUpdateAvailable) + { + DialogResult dialogResult; + if (args.Mandatory) + { + dialogResult = + MessageBox.Show( + $@"There is new version {args.CurrentVersion} available. You are using version {args.InstalledVersion}. This is required update. Press Ok to begin updating the application.", @"Update Available", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + else + { + dialogResult = + MessageBox.Show( + $@"There is new version {args.CurrentVersion} available. You are using version { + args.InstalledVersion + }. Do you want to update the application now?", @"Update Available", + MessageBoxButtons.YesNo, + MessageBoxIcon.Information); + } + + if (dialogResult.Equals(DialogResult.Yes) || dialogResult.Equals(DialogResult.OK)) + { + try + { + Process.Start(args.ChangelogURL); + if (AutoUpdater.DownloadUpdate()) + { + Application.Exit(); + } + } + catch (Exception exception) + { + MessageBox.Show(exception.Message, exception.GetType().ToString(), MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + } + } + } + else + { + MessageBox.Show( + @"There is a problem reaching update server please check your internet connection and try again later.", + @"Update check failed", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } diff --git a/FModel/Properties/Settings.Designer.cs b/FModel/Properties/Settings.Designer.cs index 73cf90c5..d570c49b 100644 --- a/FModel/Properties/Settings.Designer.cs +++ b/FModel/Properties/Settings.Designer.cs @@ -215,18 +215,6 @@ namespace FModel.Properties { } } - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool tryToOpenAssets { - get { - return ((bool)(this["tryToOpenAssets"])); - } - set { - this["tryToOpenAssets"] = value; - } - } - [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("")] diff --git a/FModel/Properties/Settings.settings b/FModel/Properties/Settings.settings index 9fda440b..81b66002 100644 --- a/FModel/Properties/Settings.settings +++ b/FModel/Properties/Settings.settings @@ -50,9 +50,6 @@ - - True -