Skip to content

Commit c1322ae

Browse files
committed
Reset Code Explorer after saving settings
1 parent 237b9df commit c1322ae

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

RetailCoder.VBE/App.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public class App : IDisposable
1717
{
1818
private readonly VBE _vbe;
1919
private readonly AddIn _addIn;
20-
private readonly CodeInspectionsToolbar _codeInspectionsToolbar;
2120
private readonly IList<IInspection> _inspections;
2221
private readonly Inspector _inspector;
2322
private readonly ParserErrorsPresenter _parserErrorsPresenter;
@@ -27,6 +26,7 @@ public class App : IDisposable
2726

2827
private Configuration _config;
2928
private RubberduckMenu _menu;
29+
private CodeInspectionsToolbar _codeInspectionsToolbar;
3030

3131
public App(VBE vbe, AddIn addIn)
3232
{
@@ -44,7 +44,7 @@ public App(VBE vbe, AddIn addIn)
4444

4545
_inspector = new Inspector(_parser, _inspections);
4646
//_menu = new RubberduckMenu(vbe, addIn, _configService, _parser, _editor, _inspector);
47-
_codeInspectionsToolbar = new CodeInspectionsToolbar(vbe, _inspector);
47+
//_codeInspectionsToolbar = new CodeInspectionsToolbar(vbe, _inspector);
4848

4949
LoadConfig();
5050
}
@@ -66,8 +66,16 @@ private void LoadConfig()
6666
_menu.Dispose();
6767
}
6868

69+
if (_codeInspectionsToolbar != null)
70+
{
71+
_codeInspectionsToolbar.Dispose();
72+
}
73+
6974
_menu = new RubberduckMenu(_vbe, _addIn, _configService, _parser, _editor, _inspector);
7075
_menu.Initialize();
76+
77+
_codeInspectionsToolbar = new CodeInspectionsToolbar(_vbe, _inspector);
78+
_codeInspectionsToolbar.Initialize();
7179
}
7280

7381
private void _parser_ParseStarted(object sender, ParseStartedEventArgs e)
@@ -128,7 +136,7 @@ protected virtual void Dispose(bool disposing)
128136
public void CreateExtUi()
129137
{
130138
//_menu.Initialize();
131-
_codeInspectionsToolbar.Initialize();
139+
//_codeInspectionsToolbar.Initialize();
132140
}
133141
}
134142
}

RetailCoder.VBE/UI/CodeInspections/CodeInspectionsToolbar.cs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,34 +48,34 @@ public CodeInspectionsToolbar(VBE vbe, IInspector inspector)
4848

4949
public void Initialize()
5050
{
51-
var toolbar = _vbe.CommandBars.Add(RubberduckUI.CodeInspections, Temporary: true);
52-
_refreshButton = (CommandBarButton)toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
51+
_toolbar = _vbe.CommandBars.Add(RubberduckUI.CodeInspections, Temporary: true);
52+
_refreshButton = (CommandBarButton)_toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
5353
_refreshButton.TooltipText = RubberduckUI.CodeInspections_Run;
5454

5555
var refreshIcon = Resources.Refresh;
5656
refreshIcon.MakeTransparent(Color.Magenta);
5757
Menu.SetButtonImage(_refreshButton, refreshIcon);
5858

59-
_statusButton = (CommandBarButton)toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
59+
_statusButton = (CommandBarButton)_toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
6060
_statusButton.Caption = string.Format(RubberduckUI.CodeInspections_NumberOfIssues, 0, "s");
6161
_statusButton.FaceId = 463; // Resources.Warning doesn't look good here
6262
_statusButton.Style = MsoButtonStyle.msoButtonIconAndCaption;
6363

64-
_quickFixButton = (CommandBarButton)toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
64+
_quickFixButton = (CommandBarButton)_toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
6565
_quickFixButton.Caption = RubberduckUI.Fix;
6666
_quickFixButton.Style = MsoButtonStyle.msoButtonIconAndCaption;
6767
_quickFixButton.FaceId = 305; // Resources.applycodechanges_6548_321 doesn't look good here
6868
_quickFixButton.Enabled = false;
6969

70-
_navigatePreviousButton = (CommandBarButton)toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary:true);
70+
_navigatePreviousButton = (CommandBarButton)_toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary:true);
7171
_navigatePreviousButton.BeginGroup = true;
7272
_navigatePreviousButton.Caption = RubberduckUI.Previous;
7373
_navigatePreviousButton.TooltipText = RubberduckUI.Previous;
7474
_navigatePreviousButton.Style = MsoButtonStyle.msoButtonIconAndCaption;
7575
_navigatePreviousButton.FaceId = 41; // Resources.112_LeftArrowLong_Blue_16x16_72 makes a gray Block when disabled
7676
_navigatePreviousButton.Enabled = false;
7777

78-
_navigateNextButton = (CommandBarButton)toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
78+
_navigateNextButton = (CommandBarButton)_toolbar.Controls.Add(MsoControlType.msoControlButton, Temporary: true);
7979
_navigateNextButton.Caption = RubberduckUI.Next;
8080
_navigateNextButton.TooltipText = RubberduckUI.Next;
8181
_navigateNextButton.Style = MsoButtonStyle.msoButtonIconAndCaption;
@@ -174,6 +174,8 @@ private void _quickFixButton_Click(CommandBarButton Ctrl, ref bool CancelDefault
174174
}
175175

176176
private CancellationTokenSource _tokenSource;
177+
private CommandBar _toolbar;
178+
177179
private void _refreshButton_Click(CommandBarButton Ctrl, ref bool CancelDefault)
178180
{
179181
_tokenSource = new CancellationTokenSource();
@@ -233,6 +235,14 @@ private void SetQuickFixTooltip()
233235

234236
public void Dispose()
235237
{
238+
Dispose(true);
239+
}
240+
241+
protected virtual void Dispose(bool disposing)
242+
{
243+
if (!disposing) { return; }
244+
245+
_toolbar.Delete();
236246
}
237247
}
238248
}

0 commit comments

Comments
 (0)