Skip to content

Commit

Permalink
Merge pull request #141 from SlavaRa/feature/140
Browse files Browse the repository at this point in the history
fixes #140
  • Loading branch information
SlavaRa committed Jun 7, 2016
2 parents ac3b323 + f2bb440 commit 00063c7
Show file tree
Hide file tree
Showing 7 changed files with 396 additions and 302 deletions.
42 changes: 26 additions & 16 deletions QuickNavigate/Forms/ClassHierarchyForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
using ASCompletion.Model;
using JetBrains.Annotations;
using PluginCore;
using QuickNavigate.Helpers;

namespace QuickNavigate.Forms
{
public sealed partial class ClassHierarchyForm : ClassModelExplorerForm
public sealed partial class ClassHierarchyForm : QuickForm
{
readonly ClassModel curClass;
readonly Dictionary<string, List<ClassModel>> extendsToClasses;
Expand Down Expand Up @@ -61,17 +62,14 @@ static IEnumerable<ClassModel> GetExtends([NotNull] ClassModel theClass)
public ClassHierarchyForm([NotNull] ClassModel model, [NotNull] Settings settings) : base(settings)
{
curClass = model;
Font = PluginBase.Settings.DefaultFont;
InitializeComponent();
if (settings.HierarchyExplorerSize.Width > MinimumSize.Width) Size = settings.HierarchyExplorerSize;
extendsToClasses = GetAllProjectExtendsClasses();
InitializeTree();
InitializeTheme();
RefreshTree();
}

[CanBeNull]
public TypeNode SelectedNode => tree.SelectedNode as TypeNode;
public override TreeNode SelectedNode => tree.SelectedNode;

void InitializeTree()
{
Expand Down Expand Up @@ -163,7 +161,7 @@ TreeNode GetPrevEnabledNode()
}

[CanBeNull]
TreeNode GetUpEnabledNode()
TreeNode GetFirstEnabledNode()
{
TreeNode result = null;
var node = tree.SelectedNode;
Expand Down Expand Up @@ -197,8 +195,13 @@ protected override void ShowContextMenu()
protected override void ShowContextMenu(Point position)
{
if (SelectedNode == null) return;
ContextMenuStrip.Items[2].Enabled = !curClass.Equals(SelectedNode.Model);
ContextMenuStrip.Items[4].Enabled = File.Exists(SelectedNode.Model.InFile.FileName);
var classModel = ((TypeNode) SelectedNode).Model;
ContextMenuStrip.Items.Clear();
ContextMenuStrip.Items.Add(QuickContextMenuItem.GotoPositionOrLineMenuItem);
ContextMenuStrip.Items.Add(QuickContextMenuItem.ShowInQuickOutlineMenuItem);
if (!curClass.Equals(classModel)) ContextMenuStrip.Items.Add(QuickContextMenuItem.ShowInClassHierarchyMenuItem);
ContextMenuStrip.Items.Add(QuickContextMenuItem.ShowInProjectManagerMenuItem);
if (File.Exists(classModel.InFile.FileName)) ContextMenuStrip.Items.Add(QuickContextMenuItem.ShowInFileExplorerMenuItem);
ContextMenuStrip.Show(tree, position);
}

Expand All @@ -209,6 +212,18 @@ protected override void Navigate()

#region Event Handlers

protected override void OnShown(EventArgs e)
{
base.OnShown(e);
if (Settings != null && Settings.HierarchyExplorerSize.Width > MinimumSize.Width) Size = Settings.HierarchyExplorerSize;
}

protected override void OnFormClosing(FormClosingEventArgs e)
{
if (Settings == null) return;
Settings.HierarchyExplorerSize = Size;
}

protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.KeyCode)
Expand All @@ -234,11 +249,6 @@ protected override void OnKeyDown(KeyEventArgs e)
}
}

protected override void OnFormClosing(FormClosingEventArgs e)
{
Settings.HierarchyExplorerSize = Size;
}

protected override void OnTreeNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
var node = e.Node as TypeNode;
Expand Down Expand Up @@ -288,7 +298,7 @@ void OnInputTextChanged(object sender, EventArgs e)

void OnInputPreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Apps) input.ContextMenu = SelectedNode != null ? InputEmptyContextMenu : null;
if (e.KeyCode == Keys.Apps) input.ContextMenu = SelectedNode != null ? FormHelper.EmptyContextMenu : null;
}

void OnInputKeyDown(object sender, KeyEventArgs e)
Expand All @@ -309,7 +319,7 @@ void OnInputKeyDown(object sender, KeyEventArgs e)
if (node != null) tree.SelectedNode = node;
else if (PluginBase.MainForm.Settings.WrapList)
{
node = GetUpEnabledNode();
node = GetFirstEnabledNode();
if (node != null) tree.SelectedNode = node;
}
break;
Expand All @@ -323,7 +333,7 @@ void OnInputKeyDown(object sender, KeyEventArgs e)
}
break;
case Keys.Home:
node = GetUpEnabledNode();
node = GetFirstEnabledNode();
if (node != null) tree.SelectedNode = node;
break;
case Keys.End:
Expand Down
132 changes: 0 additions & 132 deletions QuickNavigate/Forms/ClassModelExplorerForm.cs

This file was deleted.

34 changes: 13 additions & 21 deletions QuickNavigate/Forms/QuickOutlineForm.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
Expand All @@ -9,10 +8,11 @@
using ASCompletion.Model;
using JetBrains.Annotations;
using PluginCore;
using QuickNavigate.Helpers;

namespace QuickNavigate.Forms
{
public sealed partial class QuickOutlineForm : Form
public sealed partial class QuickOutlineForm : QuickForm
{
[NotNull] readonly Settings settings;
readonly ContextMenuStrip contextMenu = new ContextMenuStrip { Renderer = new DockPanelStripRenderer(false) };
Expand All @@ -34,17 +34,13 @@ public QuickOutlineForm([NotNull] FileModel inFile, [CanBeNull] ClassModel inCla
InFile = inFile;
InClass = inClass ?? ClassModel.VoidClass;
this.settings = settings;
Font = PluginBase.Settings.DefaultFont;
InitializeComponent();
if (settings.QuickOutlineSize.Width > MinimumSize.Width) Size = settings.QuickOutlineSize;
InitializeContextMenu();
InitializeTree();
InitializeTheme();
RefreshTree();
}

[CanBeNull] public event ShowInHandler ShowInClassHierarchy;

[CanBeNull] ToolTip filterToolTip;

[NotNull]
Expand All @@ -53,8 +49,7 @@ public QuickOutlineForm([NotNull] FileModel inFile, [CanBeNull] ClassModel inCla
[NotNull]
public ClassModel InClass { get; }

[CanBeNull]
public TreeNode SelectedNode => tree.SelectedNode;
public override TreeNode SelectedNode => tree.SelectedNode;

[CanBeNull]
Button currentFilter;
Expand Down Expand Up @@ -86,8 +81,6 @@ Button CurrentFilter
}
}

void InitializeContextMenu() => contextMenu.Items.Add("Show in &Class Hierarchy", PluginBase.MainForm.FindImage("99|16|0|0"), OnShowInClassHierarchy);

void InitializeTree()
{
tree.ImageList = ASContext.Panel.TreeIcons;
Expand Down Expand Up @@ -174,22 +167,27 @@ void AddMembers(TreeNodeCollection nodes, MemberList members, bool isHaxe, bool
tree.SelectedNode = nodes[0];
}

void Navigate()
protected override void Navigate()
{
if (SelectedNode != null) DialogResult = DialogResult.OK;
}

void ShowContextMenu()
protected override void ShowContextMenu()
{
if (!(SelectedNode is TypeNode)) return;
ShowContextMenu(new Point(SelectedNode.Bounds.X, SelectedNode.Bounds.Bottom));
}

void ShowContextMenu(Point position)
protected override void ShowContextMenu(Point position)
{
if (SelectedNode is TypeNode) contextMenu.Show(tree, position);
if (!(SelectedNode is TypeNode)) return;
contextMenu.Items.Clear();
contextMenu.Items.Add(QuickContextMenuItem.ShowInClassHierarchyMenuItem);
contextMenu.Show(tree, position);
}

internal void AddFilter(QuickFilter filter) => AddFilter(filter.ImageIndex, filter.Flag, filter.Shortcut, filter.EnabledTip, filter.DisabledTip);

public void AddFilter(int imageIndex, FlagType flag, Keys shortcut, string enabledTip, string disabledTip)
{
if (flagToFilter.ContainsKey(flag)) return;
Expand Down Expand Up @@ -336,7 +334,7 @@ void OnInputKeyDown(object sender, KeyEventArgs e)
e.Handled = true;
}

void OnTreeNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
protected override void OnTreeNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button != MouseButtons.Right) return;
TreeNode node = e.Node as TypeNode;
Expand Down Expand Up @@ -379,12 +377,6 @@ void OnTreeDrawNode(object sender, DrawTreeNodeEventArgs e)
graphics.DrawString("(private)", font, moduleBrush, x, bounds.Y, StringFormat.GenericTypographic);
}

void OnShowInClassHierarchy(object sender, EventArgs e)
{
Debug.Assert(ShowInClassHierarchy != null, "ShowInClassHierarchy != null");
ShowInClassHierarchy(this, ((TypeNode) SelectedNode).Model);
}

void OnFilterMouseHover(object sender, EventArgs e) => RefreshFilterTip((Button) sender);

void OnFilterMouseLeave(object sender, EventArgs e)
Expand Down
Loading

0 comments on commit 00063c7

Please sign in to comment.