Skip to content

Commit 6bbb31c

Browse files
committed
Merge pull request #963 from Hosch250/BugBlipper
Cloning works!
2 parents fa4e5ef + 3a66860 commit 6bbb31c

12 files changed

+932
-27
lines changed

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,12 @@
618618
<DependentUpon>ChangesControl.cs</DependentUpon>
619619
</Compile>
620620
<Compile Include="UI\SourceControl\ChangesPresenter.cs" />
621+
<Compile Include="UI\SourceControl\CloneRepositoryForm.cs">
622+
<SubType>Form</SubType>
623+
</Compile>
624+
<Compile Include="UI\SourceControl\CloneRepositoryForm.Designer.cs">
625+
<DependentUpon>CloneRepositoryForm.cs</DependentUpon>
626+
</Compile>
621627
<Compile Include="UI\SourceControl\CreateBranchForm.cs">
622628
<SubType>Form</SubType>
623629
</Compile>
@@ -639,6 +645,7 @@
639645
</Compile>
640646
<Compile Include="UI\SourceControl\IBranchesView.cs" />
641647
<Compile Include="UI\SourceControl\IChangesView.cs" />
648+
<Compile Include="UI\SourceControl\ICloneRepositoryView.cs" />
642649
<Compile Include="UI\SourceControl\ICreateBranchView.cs" />
643650
<Compile Include="UI\SourceControl\IDeleteBranchView.cs" />
644651
<Compile Include="UI\SourceControl\IMergeView.cs" />
@@ -925,6 +932,9 @@
925932
<EmbeddedResource Include="UI\SourceControl\ChangesControl.resx">
926933
<DependentUpon>ChangesControl.cs</DependentUpon>
927934
</EmbeddedResource>
935+
<EmbeddedResource Include="UI\SourceControl\CloneRepositoryForm.resx">
936+
<DependentUpon>CloneRepositoryForm.cs</DependentUpon>
937+
</EmbeddedResource>
928938
<EmbeddedResource Include="UI\SourceControl\CreateBranchForm.resx">
929939
<DependentUpon>CreateBranchForm.cs</DependentUpon>
930940
</EmbeddedResource>

RetailCoder.VBE/UI/SourceControl/CloneRepositoryForm.Designer.cs

Lines changed: 171 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
using System;
2+
using System.Diagnostics.CodeAnalysis;
3+
using System.Windows.Forms;
4+
5+
namespace Rubberduck.UI.SourceControl
6+
{
7+
[ExcludeFromCodeCoverage]
8+
public partial class CloneRepositoryForm : Form, ICloneRepositoryView
9+
{
10+
public CloneRepositoryForm()
11+
{
12+
InitializeComponent();
13+
14+
RemotePathTextBox.TextChanged += RemotePath_TextChanged;
15+
BrowseLocalDirectoryLocationButton.Click += OnBrowseLocalDirectoryLocation;
16+
OkButton.Click += OkButton_Click;
17+
CancelButton.Click += CancelButton_Click;
18+
}
19+
20+
public CloneRepositoryForm(IFolderBrowserFactory folderBrowserFactory)
21+
: this()
22+
{
23+
FolderBrowserFactory = folderBrowserFactory;
24+
}
25+
26+
public IFolderBrowserFactory FolderBrowserFactory { get; set; }
27+
28+
public string RemotePath
29+
{
30+
get { return RemotePathTextBox.Text; }
31+
set { RemotePathTextBox.Text = value; }
32+
}
33+
34+
public string LocalDirectory
35+
{
36+
get { return LocalDirectoryTextBox.Text; }
37+
set { LocalDirectoryTextBox.Text = value; }
38+
}
39+
40+
public bool IsValidRemotePath
41+
{
42+
get { return InvalidRemotePathValidationIcon.Visible; }
43+
set
44+
{
45+
OkButton.Enabled = value;
46+
InvalidRemotePathValidationIcon.Visible = !value;
47+
}
48+
}
49+
50+
public event EventHandler<CloneRepositoryEventArgs> Confirm;
51+
private void OkButton_Click(object sender, EventArgs e)
52+
{
53+
var handler = Confirm;
54+
if (handler != null)
55+
{
56+
handler(this, new CloneRepositoryEventArgs(RemotePath, LocalDirectory));
57+
}
58+
}
59+
60+
public event EventHandler<EventArgs> Cancel;
61+
private void CancelButton_Click(object sender, EventArgs e)
62+
{
63+
var handler = Cancel;
64+
if (handler != null)
65+
{
66+
handler(this, e);
67+
}
68+
}
69+
70+
public event EventHandler<EventArgs> RemotePathChanged;
71+
private void RemotePath_TextChanged(object sender, EventArgs e)
72+
{
73+
var handler = RemotePathChanged;
74+
if (handler != null)
75+
{
76+
handler(this, e);
77+
}
78+
79+
}
80+
81+
private void OnBrowseLocalDirectoryLocation(object sender, EventArgs e)
82+
{
83+
using (var folderPicker = FolderBrowserFactory.CreateFolderBrowser("Local Directory"))
84+
{
85+
if (folderPicker.ShowDialog() == DialogResult.OK)
86+
{
87+
LocalDirectory = folderPicker.SelectedPath;
88+
}
89+
}
90+
}
91+
}
92+
}

0 commit comments

Comments
 (0)