From 98b90a1b7c026263554597b4b26eabea94ab2461 Mon Sep 17 00:00:00 2001
From: Daniel Grunwald <daniel@danielgrunwald.de>
Date: Sun, 27 Jan 2013 19:15:41 +0100
Subject: [PATCH] Fix crash when opening load/save options panel.

---
 SharpDevelop.Tests.sln                                       | 2 +-
 src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj        | 2 +-
 .../Project/{Src/Services => Workbench}/FileChangeWatcher.cs | 2 +-
 src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml      | 5 +++--
 4 files changed, 6 insertions(+), 5 deletions(-)
 rename src/Main/Base/Project/{Src/Services => Workbench}/FileChangeWatcher.cs (99%)

diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln
index b2fab07c86..4e6d67c77d 100644
--- a/SharpDevelop.Tests.sln
+++ b/SharpDevelop.Tests.sln
@@ -806,13 +806,13 @@ Global
 		{DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
 		{8AA421C8-D7AF-4957-9F43-5135328ACB24} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
 		{0F5192F2-0744-4BA9-A074-6BE82D111B8D} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
+		{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
 		{A9F12710-24E4-46D4-832C-6ECB395B9EAD} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
 		{B7823AE9-4B43-4859-8796-2EBDC116FBB8} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
 		{BAD94D6E-4159-4CB6-B991-486F412D9BB6} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
 		{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
 		{EEF5E054-4192-4A57-8FBF-E860D808A51D} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
 		{AFE34868-AFA1-4E1C-9450-47AB4BE329D5} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
-		{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
 		{66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
 		{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
 		{943DBBB3-E84E-4CF4-917C-C05AFA8743C1} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index 6142e3c9c4..fd31530a24 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -232,7 +232,6 @@
       <DependentUpon>OutputWindowOptionsPanel.xaml</DependentUpon>
       <SubType>Code</SubType>
     </Compile>
-    <Compile Include="Src\Services\FileChangeWatcher.cs" />
     <Compile Include="Util\AtomicBoolean.cs" />
     <Compile Include="Util\ComparerExtensions.cs" />
     <Compile Include="Util\CustomThreadPoolTaskScheduler.cs" />
@@ -280,6 +279,7 @@
     <Compile Include="Workbench\DisplayBinding\IDisplayBindingService.cs" />
     <Compile Include="Workbench\DisplayBinding\ISecondaryDisplayBinding.cs" />
     <Compile Include="Workbench\FakeXmlViewContent.cs" />
+    <Compile Include="Workbench\FileChangeWatcher.cs" />
     <Compile Include="Workbench\File\FileService.cs" />
     <Compile Include="Workbench\File\IRecentOpen.cs" />
     <Compile Include="Workbench\ICustomizedCommands.cs" />
diff --git a/src/Main/Base/Project/Src/Services/FileChangeWatcher.cs b/src/Main/Base/Project/Workbench/FileChangeWatcher.cs
similarity index 99%
rename from src/Main/Base/Project/Src/Services/FileChangeWatcher.cs
rename to src/Main/Base/Project/Workbench/FileChangeWatcher.cs
index 4802ee36a0..3ba02b550d 100644
--- a/src/Main/Base/Project/Src/Services/FileChangeWatcher.cs
+++ b/src/Main/Base/Project/Workbench/FileChangeWatcher.cs
@@ -11,7 +11,7 @@ using ICSharpCode.Core;
 
 namespace ICSharpCode.SharpDevelop.Workbench
 {
-	internal sealed class FileChangeWatcher : IDisposable
+	public sealed class FileChangeWatcher : IDisposable
 	{
 		public static bool DetectExternalChangesOption {
 			get {
diff --git a/src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml b/src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml
index 4b47902c74..5278655a6e 100644
--- a/src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml
+++ b/src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml
@@ -4,6 +4,7 @@
                  xmlns:core="http://icsharpcode.net/sharpdevelop/core"
                  xmlns:sd="clr-namespace:ICSharpCode.SharpDevelop;assembly=ICSharpCode.SharpDevelop"
                  xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
+                 xmlns:sdwb="clr-namespace:ICSharpCode.SharpDevelop.Workbench;assembly=ICSharpCode.SharpDevelop"
                  xmlns:wb="clr-namespace:ICSharpCode.SharpDevelop.Workbench"
                  xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@@ -15,11 +16,11 @@
 				          IsChecked="{core:OptionBinding wb:WpfWorkbench.LoadDocumentProperties}" />
 				<CheckBox Name="detectExternalChanges"
 				          Content="{core:Localize Dialog.Options.IDEOptions.LoadSaveOptions.DetectExternalChanges}"
-				          IsChecked="{core:OptionBinding sd:FileChangeWatcher.DetectExternalChangesOption}" />
+				          IsChecked="{core:OptionBinding sdwb:FileChangeWatcher.DetectExternalChangesOption}" />
 				<CheckBox Content="{core:Localize Dialog.Options.IDEOptions.LoadSaveOptions.AutoLoadExternalChanges}"
 				          Margin="18,0,0,0"
 				          IsEnabled="{Binding IsChecked, ElementName=detectExternalChanges}"
-				          IsChecked="{core:OptionBinding sd:FileChangeWatcher.AutoLoadExternalChangesOption}" />
+				          IsChecked="{core:OptionBinding sdwb:FileChangeWatcher.AutoLoadExternalChangesOption}" />
 			</widgets:StackPanelWithSpacing>
 		</GroupBox>
 		<GroupBox Header="{core:Localize Dialog.Options.IDEOptions.LoadSaveOptions.SaveLabel}">