Skip to content

Commit 5d2a653

Browse files
committed
bup
1 parent 0f16411 commit 5d2a653

File tree

6 files changed

+89
-9
lines changed

6 files changed

+89
-9
lines changed

VisualStudioMac.OneClickToOpenFile/CommandHandlers/EnableOneClickToOpenFileCommandHandler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using MonoDevelop.Components.Commands;
22
using MonoDevelop.Ide;
33
using MonoDevelop.Ide.Gui.Pads;
4+
using NetworkExtension;
45
using VisualStudioMac.OneClickToOpenFile.Extensions;
56

67
namespace VisualStudioMac.OneClickToOpenFile.CommandHandlers

VisualStudioMac.OneClickToOpenFile/CommandHandlers/Node/OneClickNodeCommandHandler.cs

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
using System;
2+
using System.Diagnostics;
23
using System.IO;
4+
using EnvDTE;
5+
using MonoDevelop.Core;
36
using MonoDevelop.Ide;
47
using MonoDevelop.Ide.Gui.Components;
58
using MonoDevelop.Projects;
@@ -12,15 +15,53 @@ public override void OnItemSelected()
1215
{
1316
base.OnItemSelected();
1417

18+
var selectedNode = Controller.GetSelectedNode();
19+
var control = Controller.Control;
20+
1521
if (CurrentNode.DataItem is ProjectFile f && Settings.OneClickToOpenFileEnabled)
1622
{
1723
string ext = Path.GetExtension(f.FilePath);
1824
if (Constants.ExcludedExtensionsFromOneClick.FindIndex((s) => s == ext) == -1)
1925
{
20-
if (IdeApp.Workbench.ActiveDocument == null || IdeApp.Workbench.ActiveDocument.Name != f.FilePath.FileName)
21-
IdeApp.Workbench.OpenDocument(f.FilePath, project: null);
26+
var selectedItem = IdeApp.ProjectOperations.CurrentSelectedItem as ProjectFile;
27+
28+
if (IdeApp.IsRunning
29+
&& IdeApp.IsInitialized
30+
&& IdeApp.Workspace.CurrentSelectedSolution != null
31+
&& IdeApp.Workbench.CurrentLayout != null
32+
&& (IdeApp.Workbench.ActiveDocument == null || IdeApp.Workbench.ActiveDocument.FilePath.FullPath != f.FilePath.FullPath))
33+
{
34+
Debug.WriteLine($"[OnItemSelected]: CurrentNode: {f.FilePath.FileName} - Selected: {CurrentNode.Selected}, CurrentSelectedItem: {selectedItem?.FilePath.FileName ?? ""}, ActiveDocument: {IdeApp.Workbench.ActiveDocument?.Name ?? ""}");
35+
36+
37+
//if (Controller.Control.HasFocus)
38+
//{
39+
IdeApp.Workbench.OpenDocument(f.FilePath, f.Project);
40+
//IdeApp.Workbench.OpenDocument(f.FilePath, f.Project, MonoDevelop.Ide.Gui.OpenDocumentOptions.OpenIfMissing | MonoDevelop.Ide.Gui.OpenDocumentOptions.BringToFront);
41+
//IdeApp.Workbench.OpenDocument(f.FilePath, f.Project, MonoDevelop.Ide.Gui.OpenDocumentOptions.TryToReuseViewer | MonoDevelop.Ide.Gui.OpenDocumentOptions.OpenIfMissing);
42+
//}
43+
return;
44+
}
2245
}
2346
}
2447
}
48+
49+
//public override void RefreshItem()
50+
//{
51+
// base.RefreshItem();
52+
// var selectedNode = Controller.GetSelectedNode();
53+
// var control = Controller.Control;
54+
// var f = CurrentNode.DataItem as ProjectFile;
55+
// var selectedItem = IdeApp.ProjectOperations.CurrentSelectedItem as ProjectFile;
56+
57+
// Debug.WriteLine($"[RefreshItem]: CurrentNode: {f.FilePath.FileName} - Selected: {CurrentNode.Selected}, CurrentSelectedItem: {selectedItem?.FilePath.FileName ?? ""}, ActiveDocument: {IdeApp.Workbench.ActiveDocument?.Name ?? ""}");
58+
//}
59+
60+
//public override void ActivateItem()
61+
//{
62+
// base.ActivateItem();
63+
//}
64+
65+
2566
}
2667
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using MonoDevelop.Components.Commands;
2+
using MonoDevelop.Ide;
3+
4+
namespace VisualStudioMac.OneClickToOpenFile.CommandHandlers
5+
{
6+
public class StartupCommandHandler : CommandHandler
7+
{
8+
protected override void Run()
9+
{
10+
Settings.OneClickToOpenFileEnabled = false;
11+
//IdeApp.Workspace.SolutionLoaded += (s, e) => Settings.OneClickToOpenFileEnabled = true;
12+
//IdeApp.Workspace.SolutionUnloaded += (s, e) => Settings.OneClickToOpenFileEnabled = false;
13+
//IdeApp.Workbench.LayoutChanged += Workbench_LayoutChanged;
14+
//IdeApp.Exiting += (s,e) => Settings.OneClickToOpenFileEnabled = false;
15+
//IdeApp.Workbench.GuiLocked += (s, e) => Settings.OneClickToOpenFileEnabled = false;
16+
//IdeApp.Workbench.GuiUnlocked += (s, e) => Settings.OneClickToOpenFileEnabled = true;
17+
}
18+
19+
//private void Workbench_LayoutChanged(object sender, System.EventArgs e)
20+
//{
21+
// Settings.OneClickToOpenFileEnabled = IdeApp.Workbench.CurrentLayout != null;
22+
//}
23+
24+
//private void Workspace_SolutionLoaded(object sender, MonoDevelop.Projects.SolutionEventArgs e)
25+
//{
26+
// IdeApp.Workspace.SolutionLoaded -= Workspace_SolutionLoaded;
27+
// if (e.Solution != null)
28+
// {
29+
// //Settings.OneClickToOpenFileEnabled = true;
30+
// }
31+
//}
32+
}
33+
}

VisualStudioMac.OneClickToOpenFile/Extensions/SolutionPadExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,6 @@ private static ITreeNavigator GetRootNode(this ExtensibleTreeViewController tree
3232
private static ExtensibleTreeViewController GetTreeView(this SolutionPad pad)
3333
=> pad.Controller;
3434
}
35+
36+
3537
}

VisualStudioMac.OneClickToOpenFile/Properties/Manifest.addin.xml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,26 @@
88
description = "This extension opens a file with only one click on the solutiontree.
99
1010
by Ivo Krugers
11+
1112
"
1213
category = "IDE extensions"
1314
version = "17.4">
1415

15-
<Runtime>
16+
<!--<Runtime>
1617
<Import assembly="VisualStudioMac.OneClickToOpenFile.dll" />
17-
</Runtime>
18+
</Runtime>-->
1819

1920
<!--<Dependencies>
2021
<Addin id="Core" version="17.4"/>
2122
<Addin id="Ide" version="17.4"/>
2223
<Addin id="DotNetCore" version="17.4" />
2324
</Dependencies>-->
2425

26+
27+
<Extension path="/MonoDevelop/Ide/StartupHandlers">
28+
<Class class="VisualStudioMac.OneClickToOpenFile.CommandHandlers.StartupCommandHandler" />
29+
</Extension>
30+
2531
<!-- ProjectPad NodeBuilders -->
2632
<Extension path="/MonoDevelop/Ide/Pads/ProjectPad">
2733
<NodeBuilder class="VisualStudioMac.OneClickToOpenFile.NodeBuilderExtensions.OneClickFileNodeBuilderExt" />
@@ -36,10 +42,7 @@ by Ivo Krugers
3642

3743
<!-- Main Tool Menu Entries -->
3844
<Extension path="/MonoDevelop/Ide/MainMenu/Tools">
39-
<SeparatorItem id="ExtensionSettingsSeparator" insertafter="ExtensionSettingsSeparator" />
40-
45+
<SeparatorItem id="ExtensionSettingsSeparator" insertafter="MonoDevelop.Ide.Commands.EditCommands.MonodevelopPreferences"/>
4146
<CommandItem id="VisualStudioMac.OneClickToOpenFile.EnableOneClickToOpenFileCommandHandler" insertafter="ExtensionSettingsSeparator" />
42-
43-
<SeparatorItem id="ExtensionSettingsSeparatorEnd" insertafter="ExtensionSettingsSeparatorEnd" />
4447
</Extension>
4548
</Addin>

VisualStudioMac.OneClickToOpenFile/Settings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
{
33
public static class Settings
44
{
5-
public static bool OneClickToOpenFileEnabled = true;
5+
public static bool OneClickToOpenFileEnabled = false;
66
}
77
}

0 commit comments

Comments
 (0)