Skip to content

Commit 79dea0f

Browse files
committed
Merge pull request #998 from wise0704/ResultsPanel
More Results Panel Shortcuts
2 parents c131ea2 + d40a105 commit 79dea0f

File tree

2 files changed

+82
-60
lines changed

2 files changed

+82
-60
lines changed

External/Plugins/ResultsPanel/PluginMain.cs

Lines changed: 27 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@ public class PluginMain : IPlugin
2525
private Image pluginImage;
2626

2727
// Shortcut management
28-
public Keys NextError = Keys.F12;
29-
public Keys PrevError = Keys.Shift | Keys.F12;
30-
public Keys CopyEntry = Keys.Control | Keys.C;
31-
public Keys IgnoreEntry = Keys.Delete;
28+
public const Keys CopyEntryKeys = Keys.Control | Keys.C;
29+
public const Keys IgnoreEntryKeys = Keys.Delete;
3230

3331
#region Required Properties
3432

@@ -157,36 +155,28 @@ public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority)
157155

158156
case EventType.Keys:
159157
KeyEvent ke = (KeyEvent)e;
160-
if (ke.Value == this.NextError)
158+
switch (PluginBase.MainForm.GetShortcutItemId(ke.Value))
161159
{
162-
ke.Handled = true;
163-
this.pluginUI.NextEntry(null, null);
164-
}
165-
else if (ke.Value == this.PrevError)
166-
{
167-
ke.Handled = true;
168-
this.pluginUI.PreviousEntry(null, null);
169-
}
170-
else if (ke.Value == this.CopyEntry)
171-
{
172-
ke.Handled = pluginUI.CopyTextShortcut();
173-
}
174-
else if (ke.Value == this.IgnoreEntry)
175-
{
176-
ke.Handled = pluginUI.IgnoreEntryShortcut();
177-
}
178-
break;
179-
180-
case EventType.Shortcut:
181-
DataEvent de = (DataEvent)e;
182-
if (de.Action == "ResultsPanel.ShowNextResult")
183-
{
184-
this.NextError = (Keys)de.Data;
185-
}
186-
else if (de.Action == "ResultsPanel.ShowPrevResult")
187-
{
188-
this.PrevError = (Keys)de.Data;
160+
case null:
161+
break;
162+
case "ResultsPanel.ShowNextResult":
163+
ke.Handled = pluginUI.NextEntry();
164+
break;
165+
case "ResultsPanel.ShowPrevResult":
166+
ke.Handled = pluginUI.PreviousEntry();
167+
break;
168+
case "ResultsPanel.ClearResults":
169+
ke.Handled = pluginUI.ClearOutput();
170+
break;
171+
case "ResultsPanel.ClearIgnoredEntries":
172+
ke.Handled = pluginUI.ClearIgnoredEntries();
173+
break;
174+
default:
175+
if (ke.Value == CopyEntryKeys) ke.Handled = pluginUI.CopyTextShortcut();
176+
else if (ke.Value == IgnoreEntryKeys) ke.Handled = pluginUI.IgnoreEntryShortcut();
177+
break;
189178
}
179+
190180
break;
191181
}
192182
}
@@ -246,8 +236,10 @@ public void CreateMenuItem()
246236
String title = TextHelper.GetString("Label.ViewMenuItem");
247237
ToolStripMenuItem viewMenu = (ToolStripMenuItem)PluginBase.MainForm.FindMenuItem("ViewMenu");
248238
ToolStripMenuItem viewItem = new ToolStripMenuItem(title, this.pluginImage, new EventHandler(this.OpenPanel));
249-
PluginBase.MainForm.RegisterShortcutItem("ResultsPanel.ShowNextResult", this.NextError);
250-
PluginBase.MainForm.RegisterShortcutItem("ResultsPanel.ShowPrevResult", this.PrevError);
239+
PluginBase.MainForm.RegisterShortcutItem("ResultsPanel.ShowNextResult", this.pluginUI.nextEntryContextMenuItem);
240+
PluginBase.MainForm.RegisterShortcutItem("ResultsPanel.ShowPrevResult", this.pluginUI.previousEntryContextMenuItem);
241+
PluginBase.MainForm.RegisterShortcutItem("ResultsPanel.ClearResults", this.pluginUI.clearEntriesContextMenuItem);
242+
PluginBase.MainForm.RegisterShortcutItem("ResultsPanel.ClearIgnoredEntries", this.pluginUI.clearIgnoredEntriesContextMenuItem);
251243
PluginBase.MainForm.RegisterShortcutItem("ViewMenu.ShowResults", viewItem);
252244
viewMenu.DropDownItems.Add(viewItem);
253245
}
@@ -261,7 +253,7 @@ public void CreatePluginPanel()
261253
this.pluginUI.Text = TextHelper.GetString("Title.PluginPanel");
262254
this.pluginPanel = PluginBase.MainForm.CreateDockablePanel(this.pluginUI, this.pluginGuid, this.pluginImage, DockState.DockBottomAutoHide);
263255
}
264-
256+
265257
/// <summary>
266258
/// Opens the plugin panel if closed
267259
/// </summary>

External/Plugins/ResultsPanel/PluginUI.cs

Lines changed: 55 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@ namespace ResultsPanel
1919
{
2020
public class PluginUI : DockPanelControl
2121
{
22+
public ToolStripMenuItem clearEntriesContextMenuItem;
23+
public ToolStripMenuItem copyEntryContextMenuItem;
24+
public ToolStripMenuItem ignoreEntryContextMenuItem;
25+
public ToolStripMenuItem clearIgnoredEntriesContextMenuItem;
26+
public ToolStripMenuItem nextEntryContextMenuItem;
27+
public ToolStripMenuItem previousEntryContextMenuItem;
28+
2229
private ListViewEx entriesView;
2330
private ColumnHeader entryFile;
2431
private ColumnHeader entryDesc;
2532
private ColumnHeader entryLine;
2633
private ColumnHeader entryPath;
2734
private ColumnHeader entryType;
28-
private ToolStripMenuItem nextEntry;
29-
private ToolStripMenuItem previousEntry;
30-
private ToolStripMenuItem ignoreEntriesContextMenuItem;
31-
private ToolStripMenuItem ignoreEntryContextMenuItem;
32-
private ToolStripMenuItem copyEntryContextMenuItem;
33-
private ToolStripMenuItem clearIgnoredEntriesContextMenuItem;
3435
private IDictionary<String, Boolean> ignoredEntries;
3536
private List<ListViewItem> allListViewItems = new List<ListViewItem>();
3637
private ToolStripButton toolStripButtonError;
@@ -267,23 +268,25 @@ public void InitializeGraphics()
267268
public void InitializeContextMenu()
268269
{
269270
ContextMenuStrip menu = new ContextMenuStrip();
270-
this.ignoreEntriesContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.ClearEntries"), null, new EventHandler(this.ClearOutputClick));
271-
menu.Items.Add(this.ignoreEntriesContextMenuItem);
271+
272+
this.clearEntriesContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.ClearEntries"), null, new EventHandler(this.ClearOutputClick));
272273
this.copyEntryContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.CopyEntry"), null, new EventHandler(this.CopyTextClick));
273-
this.copyEntryContextMenuItem.ShortcutKeyDisplayString = DataConverter.KeysToString(this.pluginMain.CopyEntry);
274-
menu.Items.Add(this.copyEntryContextMenuItem);
275274
this.ignoreEntryContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.IgnoreEntry"), null, new EventHandler(this.IgnoreEntryClick));
276-
this.ignoreEntryContextMenuItem.ShortcutKeyDisplayString = DataConverter.KeysToString(this.pluginMain.IgnoreEntry);
275+
this.clearIgnoredEntriesContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.ClearIgnoredEntries"), null, new EventHandler(this.ClearIgnoredEntriesClick));
276+
this.nextEntryContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.NextEntry"), null, new EventHandler(this.NextEntryClick));
277+
this.previousEntryContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.PreviousEntry"), null, new EventHandler(this.PreviousEntryClick));
278+
279+
this.copyEntryContextMenuItem.ShortcutKeyDisplayString = DataConverter.KeysToString(PluginMain.CopyEntryKeys);
280+
this.ignoreEntryContextMenuItem.ShortcutKeyDisplayString = DataConverter.KeysToString(PluginMain.IgnoreEntryKeys);
281+
282+
menu.Items.Add(this.clearEntriesContextMenuItem);
283+
menu.Items.Add(this.copyEntryContextMenuItem);
277284
menu.Items.Add(this.ignoreEntryContextMenuItem);
278-
this.clearIgnoredEntriesContextMenuItem = new ToolStripMenuItem(TextHelper.GetString("Label.ClearIgnoredEntries"), null, new EventHandler(this.ClearIgnoredEntries));
279285
menu.Items.Add(this.clearIgnoredEntriesContextMenuItem);
280286
menu.Items.Add(new ToolStripSeparator());
281-
this.nextEntry = new ToolStripMenuItem(TextHelper.GetString("Label.NextEntry"), null, new EventHandler(this.NextEntry));
282-
this.nextEntry.ShortcutKeyDisplayString = DataConverter.KeysToString(this.pluginMain.NextError);
283-
menu.Items.Add(this.nextEntry);
284-
this.previousEntry = new ToolStripMenuItem(TextHelper.GetString("Label.PreviousEntry"), null, new EventHandler(this.PreviousEntry));
285-
this.previousEntry.ShortcutKeyDisplayString = DataConverter.KeysToString(this.pluginMain.PrevError);
286-
menu.Items.Add(this.previousEntry);
287+
menu.Items.Add(this.nextEntryContextMenuItem);
288+
menu.Items.Add(this.previousEntryContextMenuItem);
289+
287290
this.entriesView.ContextMenuStrip = menu;
288291
menu.Font = PluginBase.Settings.DefaultFont;
289292
menu.Renderer = new DockPanelStripRenderer(false);
@@ -389,10 +392,17 @@ public void CopyTextClick(Object sender, System.EventArgs e)
389392
/// <summary>
390393
/// Clears any result entries that are ignored. Invoked from the context menu.
391394
/// </summary>
392-
public void ClearIgnoredEntries(Object sender, System.EventArgs e)
395+
public void ClearIgnoredEntriesClick(Object sender, System.EventArgs e)
396+
{
397+
ClearIgnoredEntries();
398+
}
399+
400+
public Boolean ClearIgnoredEntries()
393401
{
402+
if (this.ignoredEntries.Count == 0) return false;
394403
this.ignoredEntries.Clear();
395404
this.FilterResults(false);
405+
return true;
396406
}
397407

398408
/// <summary>
@@ -452,7 +462,7 @@ private void PluginUIResize(object sender, EventArgs e)
452462
/// </summary>
453463
private void ContextMenuOpening(object sender, System.ComponentModel.CancelEventArgs e)
454464
{
455-
this.nextEntry.Enabled = this.previousEntry.Enabled = this.ignoreEntriesContextMenuItem.Enabled = this.entriesView.Items.Count > 0;
465+
this.nextEntryContextMenuItem.Enabled = this.previousEntryContextMenuItem.Enabled = this.clearEntriesContextMenuItem.Enabled = this.entriesView.Items.Count > 0;
456466
this.ignoreEntryContextMenuItem.Enabled = this.copyEntryContextMenuItem.Enabled = this.entriesView.SelectedItems.Count > 0;
457467
this.clearIgnoredEntriesContextMenuItem.Enabled = this.ignoredEntries.Count > 0;
458468
}
@@ -556,8 +566,9 @@ private void MBSafeSetSelAndFocus(ScintillaControl sci, Int32 line, Int32 startP
556566
/// <summary>
557567
/// Clears the output
558568
/// </summary>
559-
public void ClearOutput()
569+
public Boolean ClearOutput()
560570
{
571+
if (this.allListViewItems.Count == 0) return false;
561572
this.ClearSquiggles();
562573
this.allListViewItems.Clear();
563574
this.toolStripTextBoxFilter.Text = "";
@@ -566,6 +577,7 @@ public void ClearOutput()
566577
this.DisableContextMenuItems();
567578
this.entryIndex = -1;
568579
this.UpdateButtons();
580+
return true;
569581
}
570582

571583
/// <summary>
@@ -937,9 +949,17 @@ private void ClearSquiggles()
937949
/// <summary>
938950
/// Goes to the next entry in the result list.
939951
/// </summary>
940-
public void NextEntry(Object sender, System.EventArgs e)
952+
public void NextEntryClick(Object sender, System.EventArgs e)
953+
{
954+
NextEntry();
955+
}
956+
957+
/// <summary>
958+
/// Goes to the next entry in the result list.
959+
/// </summary>
960+
public Boolean NextEntry()
941961
{
942-
if (this.entriesView.Items.Count == 0) return;
962+
if (this.entriesView.Items.Count == 0) return false;
943963
if (this.entryIndex >= 0 && this.entryIndex < this.entriesView.Items.Count)
944964
{
945965
this.entriesView.Items[this.entryIndex].ForeColor = this.entriesView.ForeColor;
@@ -950,14 +970,23 @@ public void NextEntry(Object sender, System.EventArgs e)
950970
this.entriesView.Items[this.entryIndex].ForeColor = PluginBase.MainForm.GetThemeColor("ListView.Highlight", SystemColors.Highlight);
951971
this.entriesView.EnsureVisible(this.entryIndex);
952972
this.EntriesViewDoubleClick(null, null);
973+
return true;
974+
}
975+
976+
/// <summary>
977+
/// Goes to the previous entry in the result list.
978+
/// </summary>
979+
public void PreviousEntryClick(Object sender, System.EventArgs e)
980+
{
981+
PreviousEntry();
953982
}
954983

955984
/// <summary>
956985
/// Goes to the previous entry in the result list.
957986
/// </summary>
958-
public void PreviousEntry(Object sender, System.EventArgs e)
987+
public Boolean PreviousEntry()
959988
{
960-
if (this.entriesView.Items.Count == 0) return;
989+
if (this.entriesView.Items.Count == 0) return false;
961990
if (this.entryIndex >= 0 && this.entryIndex < this.entriesView.Items.Count)
962991
{
963992
this.entriesView.Items[this.entryIndex].ForeColor = this.entriesView.ForeColor;
@@ -968,6 +997,7 @@ public void PreviousEntry(Object sender, System.EventArgs e)
968997
this.entriesView.Items[this.entryIndex].ForeColor = PluginBase.MainForm.GetThemeColor("ListView.Highlight", SystemColors.Highlight);
969998
this.entriesView.EnsureVisible(this.entryIndex);
970999
this.EntriesViewDoubleClick(null, null);
1000+
return true;
9711001
}
9721002

9731003
#endregion

0 commit comments

Comments
 (0)