Skip to content

Commit 286b8ee

Browse files
committed
Merge pull request #635 from Hosch250/next
Delete source control branch - closes #610
2 parents adf4ae9 + 59b95d9 commit 286b8ee

21 files changed

+643
-15
lines changed

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@
222222
</Reference>
223223
<Reference Include="System" />
224224
<Reference Include="System.Core" />
225+
<Reference Include="System.Data" />
225226
<Reference Include="System.Drawing" />
226227
<Reference Include="System.Windows.Forms" />
227228
<Reference Include="System.Xaml" />
@@ -387,9 +388,16 @@
387388
<DependentUpon>CreateBranchForm.cs</DependentUpon>
388389
</Compile>
389390
<Compile Include="UI\FileBrowserDialogFactory.cs" />
391+
<Compile Include="UI\SourceControl\DeleteBranchForm.cs">
392+
<SubType>Form</SubType>
393+
</Compile>
394+
<Compile Include="UI\SourceControl\DeleteBranchForm.Designer.cs">
395+
<DependentUpon>DeleteBranchForm.cs</DependentUpon>
396+
</Compile>
390397
<Compile Include="UI\SourceControl\IBranchesView.cs" />
391398
<Compile Include="UI\SourceControl\IChangesView.cs" />
392399
<Compile Include="UI\SourceControl\ICreateBranchView.cs" />
400+
<Compile Include="UI\SourceControl\IDeleteBranchView.cs" />
393401
<Compile Include="UI\SourceControl\IMergeView.cs" />
394402
<Compile Include="UI\SourceControl\IProviderPresenter.cs" />
395403
<Compile Include="UI\SourceControl\ISettingsView.cs" />
@@ -635,6 +643,9 @@
635643
<EmbeddedResource Include="UI\SourceControl\CreateBranchForm.resx">
636644
<DependentUpon>CreateBranchForm.cs</DependentUpon>
637645
</EmbeddedResource>
646+
<EmbeddedResource Include="UI\SourceControl\DeleteBranchForm.resx">
647+
<DependentUpon>DeleteBranchForm.cs</DependentUpon>
648+
</EmbeddedResource>
638649
<EmbeddedResource Include="UI\SourceControl\MergeForm.resx">
639650
<DependentUpon>MergeForm.cs</DependentUpon>
640651
</EmbeddedResource>

RetailCoder.VBE/UI/RubberduckMenu.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ private void OnSourceControlClick(CommandBarButton Ctrl, ref bool CancelDefault)
143143
_sourceControlApp = new SourceControl.App(this.IDE, this.AddIn, new SourceControlConfigurationService(),
144144
new ChangesControl(), new UnSyncedCommitsControl(),
145145
new SettingsControl(), new BranchesControl(),
146-
new CreateBranchForm(), new MergeForm());
146+
new CreateBranchForm(), new DeleteBranchForm(),
147+
new MergeForm());
147148
}
148149

149150
_sourceControlApp.ShowWindow();

RetailCoder.VBE/UI/RubberduckUI.Designer.cs

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/UI/RubberduckUI.fr.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,4 +1079,16 @@ Attention: les valeurs personnalisées seront perdues.</value>
10791079
<data name="SourceControl_SuccessfulMerge" xml:space="preserve">
10801080
<value>z Successfully Merged {0} into {1}</value>
10811081
</data>
1082+
<data name="SourceControl_DeleteBranchCaption" xml:space="preserve">
1083+
<value>z Rubberduck - Delete Branch</value>
1084+
</data>
1085+
<data name="SourceControl_CreateNewBranchCaption" xml:space="preserve">
1086+
<value>z Rubberduck - Create Branch</value>
1087+
</data>
1088+
<data name="SourceControl_DeleteBranchInstructionsLabel" xml:space="preserve">
1089+
<value>z Please specify branch name.</value>
1090+
</data>
1091+
<data name="SourceControl_DeleteBranchTitleLable" xml:space="preserve">
1092+
<value>z Delete branch</value>
1093+
</data>
10821094
</root>

RetailCoder.VBE/UI/RubberduckUI.resx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,4 +1083,13 @@ Are you sure you want to proceed with this rename?</value>
10831083
<data name="SourceControl_SuccessfulMerge" xml:space="preserve">
10841084
<value>Successfully Merged {0} into {1}</value>
10851085
</data>
1086+
<data name="SourceControl_DeleteBranchCaption" xml:space="preserve">
1087+
<value>Rubberduck - Delete Branch</value>
1088+
</data>
1089+
<data name="SourceControl_DeleteBranchInstructionsLabel" xml:space="preserve">
1090+
<value>Please specify branch name.</value>
1091+
</data>
1092+
<data name="SourceControl_DeleteBranchTitleLable" xml:space="preserve">
1093+
<value>Delete branch</value>
1094+
</data>
10861095
</root>

RetailCoder.VBE/UI/RubberduckUI.sv.resx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,4 +1070,13 @@ Are you sure you want to proceed with this rename?</value>
10701070
<data name="SourceControl_SuccessfulMerge" xml:space="preserve">
10711071
<value>z Successfully Merged {0} into {1}</value>
10721072
</data>
1073+
<data name="SourceControl_DeleteBranchCaption" xml:space="preserve">
1074+
<value>z Rubberduck - Delete Branch</value>
1075+
</data>
1076+
<data name="SourceControl_DeleteBranchInstructionsLabel" xml:space="preserve">
1077+
<value>z Please specify branch name.</value>
1078+
</data>
1079+
<data name="SourceControl_DeleteBranchTitleLable" xml:space="preserve">
1080+
<value>z Delete branch</value>
1081+
</data>
10731082
</root>

RetailCoder.VBE/UI/SourceControl/App.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@ internal App(
1717
ISettingsView settingsView,
1818
IBranchesView branchesView,
1919
ICreateBranchView createBranchView,
20+
IDeleteBranchView deleteBranchView,
2021
IMergeView mergeView
2122
)
2223
{
2324
_sourceControlView = new SourceControlPanel(branchesView, changesView, unsyncedCommitsView, settingsView);
2425
var changesPresenter = new ChangesPresenter(changesView);
25-
var branchesPresenter = new BranchesPresenter(branchesView, createBranchView, mergeView);
26+
var branchesPresenter = new BranchesPresenter(branchesView, createBranchView, deleteBranchView, mergeView);
2627
var settingsPresenter = new SettingsPresenter(settingsView, configService, new DialogFactory());
2728

2829
_sourceControlPresenter =

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

Lines changed: 26 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/UI/SourceControl/BranchesControl.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ public void OnCreateBranch(object sender, EventArgs e)
8585
RaiseGenericEvent(CreateBranch, e);
8686
}
8787

88+
public event EventHandler<EventArgs> DeleteBranch;
89+
public void OnDeleteBranch(object sender, EventArgs e)
90+
{
91+
RaiseGenericEvent(DeleteBranch, e);
92+
}
93+
8894
private void RaiseGenericEvent(EventHandler<EventArgs> handler, EventArgs e)
8995
{
9096
if (handler != null)

RetailCoder.VBE/UI/SourceControl/BranchesPresenter.cs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class BranchesPresenter : IBranchesPresenter
1616
{
1717
private readonly IBranchesView _view;
1818
private readonly ICreateBranchView _createView;
19+
private readonly IDeleteBranchView _deleteView;
1920
private readonly IMergeView _mergeView;
2021

2122
public ISourceControlProvider Provider { get; set; }
@@ -26,10 +27,11 @@ public BranchesPresenter
2627
(
2728
IBranchesView view,
2829
ICreateBranchView createView,
30+
IDeleteBranchView deleteView,
2931
IMergeView mergeView,
3032
ISourceControlProvider provider
3133
)
32-
:this(view, createView, mergeView)
34+
:this(view, createView, deleteView, mergeView)
3335
{
3436
this.Provider = provider;
3537
}
@@ -38,21 +40,28 @@ public BranchesPresenter
3840
(
3941
IBranchesView view,
4042
ICreateBranchView createView,
43+
IDeleteBranchView deleteView,
4144
IMergeView mergeView
4245
)
4346
{
4447
_view = view;
4548
_createView = createView;
49+
_deleteView = deleteView;
4650
_mergeView = mergeView;
4751

4852
_view.CreateBranch += OnShowCreateBranchView;
53+
_view.DeleteBranch += OnShowDeleteBranchView;
4954
_view.Merge += OnShowMerge;
5055
_view.SelectedBranchChanged += OnSelectedBranchChanged;
5156

5257
_createView.Confirm += OnCreateBranch;
5358
_createView.Cancel += OnCreateViewCancel;
5459
_createView.UserInputTextChanged += OnCreateBranchTextChanged;
5560

61+
_deleteView.Confirm += OnDeleteBranch;
62+
_deleteView.Cancel += OnDeleteViewCancel;
63+
_deleteView.SelectionChanged += OnDeleteViewSelectionChanged;
64+
5665
_mergeView.Confirm += OnMerge;
5766
_mergeView.Cancel += OnCancelMerge;
5867
_mergeView.MergeStatusChanged += OnMergeStatusChanged;
@@ -82,6 +91,7 @@ private void OnSelectedBranchChanged(object sender, EventArgs e)
8291
{
8392
_createView.Close();
8493
_mergeView.Close();
94+
_deleteView.Close();
8595
}
8696

8797
public void RefreshView()
@@ -116,6 +126,30 @@ private IEnumerable<IBranch> RemoteBranches()
116126
return this.Provider.Branches.Where(b => b.IsRemote && !b.Name.Contains("/HEAD"));
117127
}
118128

129+
private void OnShowDeleteBranchView(object sender, EventArgs e)
130+
{
131+
if (_view.Local == null) { return; }
132+
_deleteView.Branches = _view.Local;
133+
_deleteView.Show();
134+
}
135+
136+
private void OnDeleteViewCancel(object sender, EventArgs e)
137+
{
138+
_deleteView.Hide();
139+
}
140+
141+
private void OnDeleteViewSelectionChanged(object sender, BranchDeleteArgs e)
142+
{
143+
_deleteView.OkButtonEnabled = e.BranchName != _view.Current;
144+
}
145+
146+
private void OnDeleteBranch(object sender, BranchDeleteArgs e)
147+
{
148+
_deleteView.Hide();
149+
Provider.DeleteBranch(e.BranchName);
150+
RefreshView();
151+
}
152+
119153
private void HideCreateBranchView()
120154
{
121155
_createView.UserInputText = string.Empty;

0 commit comments

Comments
 (0)