diff --git a/GUI/Dialogs/CloneGameInstanceDialog.Designer.cs b/GUI/Dialogs/CloneGameInstanceDialog.Designer.cs index f426a89be..dbe1c2d05 100644 --- a/GUI/Dialogs/CloneGameInstanceDialog.Designer.cs +++ b/GUI/Dialogs/CloneGameInstanceDialog.Designer.cs @@ -30,6 +30,7 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new SingleAssemblyComponentResourceManager(typeof(CloneGameInstanceDialog)); + this.ToolTip = new System.Windows.Forms.ToolTip(); this.labelOldInstance = new System.Windows.Forms.Label(); this.comboBoxKnownInstance = new System.Windows.Forms.ComboBox(); this.labelOldPath = new System.Windows.Forms.Label(); @@ -42,12 +43,20 @@ private void InitializeComponent() this.buttonPathBrowser = new System.Windows.Forms.Button(); this.checkBoxSetAsDefault = new System.Windows.Forms.CheckBox(); this.checkBoxSwitchInstance = new System.Windows.Forms.CheckBox(); + this.checkBoxShareStock = new System.Windows.Forms.CheckBox(); this.buttonOK = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); this.progressBar = new System.Windows.Forms.ProgressBar(); this.folderBrowserDialogNewPath = new System.Windows.Forms.FolderBrowserDialog(); this.SuspendLayout(); // + // ToolTip + // + this.ToolTip.AutoPopDelay = 10000; + this.ToolTip.InitialDelay = 250; + this.ToolTip.ReshowDelay = 250; + this.ToolTip.ShowAlways = true; + // // labelOldInstance // this.labelOldInstance.AutoSize = true; @@ -154,7 +163,7 @@ private void InitializeComponent() // this.checkBoxSetAsDefault.AutoSize = true; this.checkBoxSetAsDefault.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.checkBoxSetAsDefault.Location = new System.Drawing.Point(12, 144); + this.checkBoxSetAsDefault.Location = new System.Drawing.Point(181, 144); this.checkBoxSetAsDefault.Name = "checkBoxSetAsDefault"; this.checkBoxSetAsDefault.Size = new System.Drawing.Size(157, 17); this.checkBoxSetAsDefault.TabIndex = 19; @@ -167,20 +176,33 @@ private void InitializeComponent() this.checkBoxSwitchInstance.Checked = true; this.checkBoxSwitchInstance.CheckState = System.Windows.Forms.CheckState.Checked; this.checkBoxSwitchInstance.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.checkBoxSwitchInstance.Location = new System.Drawing.Point(181, 144); + this.checkBoxSwitchInstance.Location = new System.Drawing.Point(181, 174); this.checkBoxSwitchInstance.Name = "checkBoxSwitchInstance"; this.checkBoxSwitchInstance.Size = new System.Drawing.Size(136, 17); this.checkBoxSwitchInstance.TabIndex = 20; this.checkBoxSwitchInstance.UseVisualStyleBackColor = true; resources.ApplyResources(this.checkBoxSwitchInstance, "checkBoxSwitchInstance"); // + // checkBoxShareStock + // + this.checkBoxShareStock.AutoSize = true; + this.checkBoxShareStock.Checked = true; + this.checkBoxShareStock.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxShareStock.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.checkBoxShareStock.Location = new System.Drawing.Point(181, 204); + this.checkBoxShareStock.Name = "checkBoxShareStock"; + this.checkBoxShareStock.Size = new System.Drawing.Size(136, 17); + this.checkBoxShareStock.TabIndex = 21; + this.checkBoxShareStock.UseVisualStyleBackColor = true; + resources.ApplyResources(this.checkBoxShareStock, "checkBoxShareStock"); + // // buttonOK // this.buttonOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonOK.Location = new System.Drawing.Point(256, 170); + this.buttonOK.Location = new System.Drawing.Point(256, 230); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); - this.buttonOK.TabIndex = 21; + this.buttonOK.TabIndex = 22; this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); resources.ApplyResources(this.buttonOK, "buttonOK"); @@ -188,10 +210,10 @@ private void InitializeComponent() // buttonCancel // this.buttonCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonCancel.Location = new System.Drawing.Point(337, 170); + this.buttonCancel.Location = new System.Drawing.Point(337, 230); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); - this.buttonCancel.TabIndex = 22; + this.buttonCancel.TabIndex = 23; this.buttonCancel.UseVisualStyleBackColor = true; this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); resources.ApplyResources(this.buttonCancel, "buttonCancel"); @@ -204,7 +226,7 @@ private void InitializeComponent() this.progressBar.Name = "progressBar"; this.progressBar.Size = new System.Drawing.Size(230, 23); this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.progressBar.TabIndex = 23; + this.progressBar.TabIndex = 24; this.progressBar.Visible = false; // // CloneGameInstanceDialog @@ -213,7 +235,7 @@ private void InitializeComponent() this.AllowDrop = true; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(424, 205); + this.ClientSize = new System.Drawing.Size(424, 265); this.Controls.Add(this.labelOldInstance); this.Controls.Add(this.comboBoxKnownInstance); this.Controls.Add(this.labelOldPath); @@ -222,6 +244,7 @@ private void InitializeComponent() this.Controls.Add(this.progressBar); this.Controls.Add(this.buttonPathBrowser); this.Controls.Add(this.checkBoxSwitchInstance); + this.Controls.Add(this.checkBoxShareStock); this.Controls.Add(this.textBoxNewPath); this.Controls.Add(this.labelNewPath); this.Controls.Add(this.checkBoxSetAsDefault); @@ -247,6 +270,7 @@ private void InitializeComponent() #endregion + private System.Windows.Forms.ToolTip ToolTip; private System.Windows.Forms.Label labelOldInstance; private System.Windows.Forms.ComboBox comboBoxKnownInstance; private System.Windows.Forms.Label labelOldPath; @@ -259,6 +283,7 @@ private void InitializeComponent() private System.Windows.Forms.Button buttonPathBrowser; private System.Windows.Forms.CheckBox checkBoxSetAsDefault; private System.Windows.Forms.CheckBox checkBoxSwitchInstance; + private System.Windows.Forms.CheckBox checkBoxShareStock; private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.FolderBrowserDialog folderBrowserDialogNewPath; diff --git a/GUI/Dialogs/CloneGameInstanceDialog.cs b/GUI/Dialogs/CloneGameInstanceDialog.cs index fca447684..96ff730d9 100644 --- a/GUI/Dialogs/CloneGameInstanceDialog.cs +++ b/GUI/Dialogs/CloneGameInstanceDialog.cs @@ -15,7 +15,7 @@ namespace CKAN.GUI { /// - /// The GUI implementation of clone and fake. + /// The GUI implementation of clone. /// It's a separate window, handling the whole process. /// #if NET5_0_OR_GREATER @@ -34,6 +34,8 @@ public CloneGameInstanceDialog(GameInstanceManager manager, IUser user, string s InitializeComponent(); + ToolTip.SetToolTip(checkBoxShareStock, Properties.Resources.CloneGameInstanceToolTipShareStock); + // Populate the instances combobox with names of known instances comboBoxKnownInstance.DataSource = new string[] { "" } .Concat(manager.Instances.Values @@ -138,7 +140,7 @@ await Task.Run(() => { if (instanceToClone.Valid) { - manager.CloneInstance(instanceToClone, newName, newPath); + manager.CloneInstance(instanceToClone, newName, newPath, checkBoxShareStock.Checked); } else { diff --git a/GUI/Dialogs/CloneGameInstanceDialog.resx b/GUI/Dialogs/CloneGameInstanceDialog.resx index bd30c662e..a40d752b1 100644 --- a/GUI/Dialogs/CloneGameInstanceDialog.resx +++ b/GUI/Dialogs/CloneGameInstanceDialog.resx @@ -125,7 +125,8 @@ Select... Set new instance as default Switch to new instance - Create + Share stock files + Clone Cancel Clone Game Instance diff --git a/GUI/Properties/Resources.resx b/GUI/Properties/Resources.resx index 5644a4ddf..19d94eb74 100644 --- a/GUI/Properties/Resources.resx +++ b/GUI/Properties/Resources.resx @@ -133,6 +133,8 @@ Creating new instance... This name is already used. Successfully created instance. + Create junction points (Windows) or symbolic links (Linux) to stock directories instead of copying them. +If you choose this option, DO NOT move or delete the old instance!! <NONE> The game has been updated since you last reviewed your compatible game versions. Please make sure that settings are correct. {0} (previous game version: {1})