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..9125c02fe 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 symbolic links 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})