From f01bc65ce19e5cc9983b92e1913a94496bf56f4e Mon Sep 17 00:00:00 2001 From: Sander Jochems Date: Sat, 20 Apr 2019 17:42:09 +0200 Subject: [PATCH 1/5] Make the steam consts public (WinProgs.cs) --- DS4Windows/DS4Forms/WinProgs.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DS4Windows/DS4Forms/WinProgs.cs b/DS4Windows/DS4Forms/WinProgs.cs index 13f4084..1e32230 100644 --- a/DS4Windows/DS4Forms/WinProgs.cs +++ b/DS4Windows/DS4Forms/WinProgs.cs @@ -25,8 +25,8 @@ namespace DS4Windows List programpaths = new List(); List lodsf = new List(); bool appsloaded = false; - const string steamCommx86Loc = @"C:\Program Files (x86)\Steam\steamapps\common"; - const string steamCommLoc = @"C:\Program Files\Steam\steamapps\common"; + public const string steamCommx86Loc = @"C:\Program Files (x86)\Steam\steamapps\common"; + public const string steamCommLoc = @"C:\Program Files\Steam\steamapps\common"; const string originx86Loc = @"C:\Program Files (x86)\Origin Games"; const string originLoc = @"C:\Program Files\Origin Games"; From b583275b6b4cf873e74838531a88159005fa8309 Mon Sep 17 00:00:00 2001 From: Sander Jochems Date: Sat, 20 Apr 2019 17:46:16 +0200 Subject: [PATCH 2/5] Add two elements to DS4Form.resx --- DS4Windows/DS4Forms/DS4Form.Designer.cs | 19 +++++++++ DS4Windows/DS4Forms/DS4Form.resx | 57 +++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/DS4Windows/DS4Forms/DS4Form.Designer.cs b/DS4Windows/DS4Forms/DS4Form.Designer.cs index 882a1cf..1c7eab2 100644 --- a/DS4Windows/DS4Forms/DS4Form.Designer.cs +++ b/DS4Windows/DS4Forms/DS4Form.Designer.cs @@ -155,6 +155,8 @@ this.ckUdpServ = new System.Windows.Forms.CheckBox(); this.nUDUdpPortNum = new System.Windows.Forms.NumericUpDown(); this.languagePackComboBox1 = new DS4Windows.DS4Forms.LanguagePackComboBox(); + this.cBCustomSteam = new System.Windows.Forms.CheckBox(); + this.tBSteamFolder = new System.Windows.Forms.TextBox(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.linkProfiles = new System.Windows.Forms.LinkLabel(); this.lnkControllers = new System.Windows.Forms.LinkLabel(); @@ -954,6 +956,8 @@ this.fLPSettings.Controls.Add(this.pNUpdate); this.fLPSettings.Controls.Add(this.panel4); this.fLPSettings.Controls.Add(this.languagePackComboBox1); + this.fLPSettings.Controls.Add(this.cBCustomSteam); + this.fLPSettings.Controls.Add(this.tBSteamFolder); this.fLPSettings.Controls.Add(this.flowLayoutPanel1); this.fLPSettings.Name = "fLPSettings"; // @@ -1211,6 +1215,19 @@ this.languagePackComboBox1.Name = "languagePackComboBox1"; this.languagePackComboBox1.SelectedValueChanged += new System.EventHandler(this.languagePackComboBox1_SelectedValueChanged); // + // cBCustomSteam + // + resources.ApplyResources(this.cBCustomSteam, "cBCustomSteam"); + this.cBCustomSteam.Name = "cBCustomSteam"; + this.cBCustomSteam.UseVisualStyleBackColor = false; + this.cBCustomSteam.CheckedChanged += new System.EventHandler(this.cBCustomSteam_CheckedChanged); + // + // tBSteamFolder + // + resources.ApplyResources(this.tBSteamFolder, "tBSteamFolder"); + this.tBSteamFolder.Name = "tBSteamFolder"; + this.tBSteamFolder.TextChanged += new System.EventHandler(this.tBSteamFolder_TextChanged); + // // flowLayoutPanel1 // this.flowLayoutPanel1.BackColor = System.Drawing.SystemColors.Window; @@ -1513,6 +1530,8 @@ private System.Windows.Forms.Label label2; private System.Windows.Forms.CheckBox ckUdpServ; private System.Windows.Forms.NumericUpDown nUDUdpPortNum; + private System.Windows.Forms.CheckBox cBCustomSteam; + private System.Windows.Forms.TextBox tBSteamFolder; //private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; } } diff --git a/DS4Windows/DS4Forms/DS4Form.resx b/DS4Windows/DS4Forms/DS4Form.resx index d39a4ad..387b0aa 100644 --- a/DS4Windows/DS4Forms/DS4Form.resx +++ b/DS4Windows/DS4Forms/DS4Form.resx @@ -2832,6 +2832,63 @@ 15 + + True + + + None + + + NoControl + + + 274, 144 + + + 147, 17 + + + 65 + + + Use custom Steam Folder + + + cBCustomSteam + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + fLPSettings + + + 16 + + + False + + + 274, 167 + + + 260, 20 + + + 53 + + + tBSteamFolder + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + fLPSettings + + + 17 + True From cffc167be6455218a30e8c21d3913ed205e14c06 Mon Sep 17 00:00:00 2001 From: Sander Jochems Date: Sat, 20 Apr 2019 17:46:45 +0200 Subject: [PATCH 3/5] Create two new properties (ScpUtil.cs) --- DS4Windows/DS4Control/ScpUtil.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/DS4Windows/DS4Control/ScpUtil.cs b/DS4Windows/DS4Control/ScpUtil.cs index 0519925..e6b2120 100644 --- a/DS4Windows/DS4Control/ScpUtil.cs +++ b/DS4Windows/DS4Control/ScpUtil.cs @@ -624,6 +624,18 @@ namespace DS4Windows get { return m_Config.useWhiteIcon; } } + public static bool UseCustomSteamFolder + { + set { m_Config.useCustomSteamFolder = value; } + get { return m_Config.useCustomSteamFolder; } + } + + public static string CustomSteamFolder + { + set { m_Config.customSteamFolder = value; } + get { return m_Config.customSteamFolder; } + } + // controller/profile specfic values public static int[] ButtonMouseSensitivity => m_Config.buttonMouseSensitivity; @@ -1617,6 +1629,8 @@ namespace DS4Windows public int flashWhenLateAt = 20; public bool useUDPServ = false; public int udpServPort = 26760; + public bool useCustomSteamFolder; + public string customSteamFolder; // Cache whether profile has custom action public bool[] containsCustomAction = new bool[5] { false, false, false, false, false }; @@ -3206,6 +3220,10 @@ namespace DS4Windows catch { missingSetting = true; } try { Item = m_Xdoc.SelectSingleNode("/Profile/UDPServerPort"); int temp; int.TryParse(Item.InnerText, out temp); udpServPort = Math.Min(Math.Max(temp, 1024), 65535); } catch { missingSetting = true; } + try { Item = m_Xdoc.SelectSingleNode("/Profile/UseCustomSteamFolder"); Boolean.TryParse(Item.InnerText, out useCustomSteamFolder); } + catch { missingSetting = true; } + try { Item = m_Xdoc.SelectSingleNode("/Profile/CustomSteamFolder"); customSteamFolder = Item.InnerText; } + catch { missingSetting = true; } for (int i = 0; i < 4; i++) { @@ -3275,6 +3293,8 @@ namespace DS4Windows XmlNode xmlWhiteIcon = m_Xdoc.CreateNode(XmlNodeType.Element, "WhiteIcon", null); xmlWhiteIcon.InnerText = useWhiteIcon.ToString(); Node.AppendChild(xmlWhiteIcon); XmlNode xmlUseUDPServ = m_Xdoc.CreateNode(XmlNodeType.Element, "UseUDPServer", null); xmlUseUDPServ.InnerText = useUDPServ.ToString(); Node.AppendChild(xmlUseUDPServ); XmlNode xmlUDPServPort = m_Xdoc.CreateNode(XmlNodeType.Element, "UDPServerPort", null); xmlUDPServPort.InnerText = udpServPort.ToString(); Node.AppendChild(xmlUDPServPort); + XmlNode xmlUseCustomSteamFolder = m_Xdoc.CreateNode(XmlNodeType.Element, "UseCustomSteamFolder", null); xmlUseCustomSteamFolder.InnerText = useCustomSteamFolder.ToString(); Node.AppendChild(xmlUseCustomSteamFolder); + XmlNode xmlCustomSteamFolder = m_Xdoc.CreateNode(XmlNodeType.Element, "CustomSteamFolder", null); xmlCustomSteamFolder.InnerText = customSteamFolder; Node.AppendChild(xmlCustomSteamFolder); for (int i = 0; i < 4; i++) { From ceb2319084216ef9e6fcc1e11007626a273827a7 Mon Sep 17 00:00:00 2001 From: Sander Jochems Date: Sat, 20 Apr 2019 17:47:08 +0200 Subject: [PATCH 4/5] Add Property Logic (DS4Form.cs) --- DS4Windows/DS4Forms/DS4Form.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/DS4Windows/DS4Forms/DS4Form.cs b/DS4Windows/DS4Forms/DS4Form.cs index 995d659..3c50c5b 100644 --- a/DS4Windows/DS4Forms/DS4Form.cs +++ b/DS4Windows/DS4Forms/DS4Form.cs @@ -199,6 +199,8 @@ namespace DS4Windows cBDisconnectBT.Checked = DCBTatStop; cBQuickCharge.Checked = QuickCharge; + cBCustomSteam.Checked = UseCustomSteamFolder; + tBSteamFolder.Text = CustomSteamFolder; // New settings this.Width = FormWidth; this.Height = FormHeight; @@ -2035,6 +2037,17 @@ Properties.Resources.DS4Update, MessageBoxButtons.YesNo, MessageBoxIcon.Question } } + private void cBCustomSteam_CheckedChanged(object sender, EventArgs e) + { + UseCustomSteamFolder = cBCustomSteam.Checked; + tBSteamFolder.Enabled = cBCustomSteam.Checked; + } + + private void tBSteamFolder_TextChanged(object sender, EventArgs e) + { + CustomSteamFolder = tBSteamFolder.Text; + } + private void nUDUpdateTime_ValueChanged(object sender, EventArgs e) { int currentIndex = cBUpdateTime.SelectedIndex; From 342bbc4f0c61b1be172f5577ab988727a40eea16 Mon Sep 17 00:00:00 2001 From: Sander Jochems Date: Sat, 20 Apr 2019 17:47:29 +0200 Subject: [PATCH 5/5] Use the saved folder (WinProgs.cs) --- DS4Windows/DS4Forms/WinProgs.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/DS4Windows/DS4Forms/WinProgs.cs b/DS4Windows/DS4Forms/WinProgs.cs index 1e32230..729032d 100644 --- a/DS4Windows/DS4Forms/WinProgs.cs +++ b/DS4Windows/DS4Forms/WinProgs.cs @@ -10,6 +10,7 @@ using System.Runtime.InteropServices; using System.Threading; using System.Diagnostics; using System.Threading.Tasks; +using static DS4Windows.Global; namespace DS4Windows { @@ -32,6 +33,15 @@ namespace DS4Windows public WinProgs(string[] oc, DS4Form main) { + Global.FindConfigLocation(); + + if (Global.firstRun) + { + new SaveWhere(Global.multisavespots).ShowDialog(); + } + + Global.Load(); + InitializeComponent(); openProgram.Filter = Properties.Resources.Programs+"|*.exe|" + Properties.Resources.Shortcuts + "|*.lnk"; form = main; @@ -48,7 +58,9 @@ namespace DS4Windows LoadP(); - if (Directory.Exists(steamCommx86Loc)) + if (UseCustomSteamFolder && Directory.Exists(CustomSteamFolder)) + steamgamesdir = CustomSteamFolder; + else if (Directory.Exists(steamCommx86Loc)) steamgamesdir = steamCommx86Loc; else if (Directory.Exists(steamCommLoc)) steamgamesdir = steamCommLoc;