diff --git a/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj b/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj
new file mode 100644
index 00000000..473b4dce
--- /dev/null
+++ b/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj
@@ -0,0 +1,71 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {7F0DB8D0-E278-4955-8204-FC391B99F7C1}
+ Library
+ Properties
+ SparkleLib.Git
+ SparkleLib.Git
+ v4.0
+ 512
+
+
+
+ true
+ full
+ false
+ ..\..\..\..\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\..\..\bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+ SparkleFetcherGit.cs
+
+
+ SparkleGit.cs
+ Component
+
+
+ SparkleRepoGit.cs
+
+
+
+
+
+
+
+ {748f6316-37b4-46fd-a011-af073bc7c02d}
+ SparkleLib
+
+
+
+
+
\ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleLib/SparkleLib.csproj b/SparkleShare/Windows/SparkleLib/SparkleLib.csproj
new file mode 100644
index 00000000..4c5eaff9
--- /dev/null
+++ b/SparkleShare/Windows/SparkleLib/SparkleLib.csproj
@@ -0,0 +1,97 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {748F6316-37B4-46FD-A011-AF073BC7C02D}
+ Library
+ Properties
+ SparkleLib
+ SparkleLib
+ v4.0
+ 512
+
+
+
+ true
+ full
+ false
+ ..\..\..\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\..\bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines.cs
+
+
+ SparkleBackend.cs
+
+
+ SparkleConfig.cs
+
+
+ SparkleExtensions.cs
+
+
+ SparkleFetcherBase.cs
+
+
+ SparkleFetcherSSH.cs
+
+
+ SparkleListenerBase.cs
+
+
+ SparkleListenerFactory.cs
+
+
+ SparkleListenerTcp.cs
+
+
+ SparkleLogger.cs
+
+
+ SparkleRepoBase.cs
+
+
+ SparkleUser.cs
+
+
+ SparkleWatcher.cs
+
+
+ SparkleWrappers.cs
+
+
+
+
+
\ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShare.csproj b/SparkleShare/Windows/SparkleShare.csproj
index 2b656a21..8b258d3d 100644
--- a/SparkleShare/Windows/SparkleShare.csproj
+++ b/SparkleShare/Windows/SparkleShare.csproj
@@ -34,13 +34,22 @@
- none
- False
+ pdbonly
+ true
..\..\bin
prompt
4
AllRules.ruleset
x86
+ TRACE
+ true
+
+
+ ..\..\bin\
+ TRACE;DEBUG
+ prompt
+ full
+ true
@@ -250,16 +259,6 @@
-
-
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}
- SparkleLib.Git
-
-
- {2C914413-B31C-4362-93C7-1AE34F09112A}
- SparkleLib
-
-
@@ -269,4 +268,14 @@
MSBuild:Compile
+
+
+ {7f0db8d0-e278-4955-8204-fc391b99f7c1}
+ SparkleLib.Git
+
+
+ {748f6316-37b4-46fd-a011-af073bc7c02d}
+ SparkleLib
+
+
\ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShare.sln b/SparkleShare/Windows/SparkleShare.sln
index 59379301..03ee1fd4 100644
--- a/SparkleShare/Windows/SparkleShare.sln
+++ b/SparkleShare/Windows/SparkleShare.sln
@@ -1,31 +1,44 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleShare", "SparkleShare.csproj", "{728483AA-E34B-4441-BF2C-C8BC2901E4E0}"
ProjectSection(ProjectDependencies) = postProject
{1DB5492D-B897-4A5E-8DD7-175EC65F52F2} = {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE} = {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleShareInviteOpener", "SparkleShareInviteOpener\SparkleShareInviteOpener.csproj", "{1DB5492D-B897-4A5E-8DD7-175EC65F52F2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib", "..\..\SparkleLib\SparkleLib.csproj", "{2C914413-B31C-4362-93C7-1AE34F09112A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib", "SparkleLib\SparkleLib.csproj", "{748F6316-37B4-46FD-A011-AF073BC7C02D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib.Git", "..\..\SparkleLib\Git\SparkleLib.Git.csproj", "{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib.Git", "SparkleLib\Git\SparkleLib.Git.csproj", "{7F0DB8D0-E278-4955-8204-FC391B99F7C1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Release|Any CPU.Build.0 = Release|Any CPU
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{728483AA-E34B-4441-BF2C-C8BC2901E4E0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1DB5492D-B897-4A5E-8DD7-175EC65F52F2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {748F6316-37B4-46FD-A011-AF073BC7C02D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {748F6316-37B4-46FD-A011-AF073BC7C02D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {748F6316-37B4-46FD-A011-AF073BC7C02D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {748F6316-37B4-46FD-A011-AF073BC7C02D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7F0DB8D0-E278-4955-8204-FC391B99F7C1}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = SparkleShare.csproj
@@ -33,7 +46,4 @@ Global
outputpath = bin
name = SparkleShare
EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
EndGlobal
diff --git a/SparkleShare/Windows/SparkleShare.vssettings b/SparkleShare/Windows/SparkleShare.vssettings
new file mode 100644
index 00000000..9651a513
--- /dev/null
+++ b/SparkleShare/Windows/SparkleShare.vssettings
@@ -0,0 +1,97 @@
+falsefalsetruefalsetruefalsetruetruetrue00truetruetruefalse56553510truetruetruefalsetrue10false%vsspv_settings_directory%\CurrentSettings.vssettings%vsspv_visualstudio_dir%\Projectstruefalsefalse44true%vsspv_visualstudio_dir%\Templates\ItemTemplatestruetrue101%vsspv_visualstudio_dir%\Templates\ProjectTemplatestrue8truetruetruetruetruetruetrue5true60trueTODO:2HACK:2UNDONE:2UnresolvedMergeConflict:3falsetruehttp://go.microsoft.com/fwlink/?LinkId=36568&clcid=%vsspv_lcid_hex%1%systemroot%\system32\notepad.exehttp://go.microsoft.com/fwlink/?LinkId=32722&clcid=%vsspv_lcid_hex%0101.cpp;.cxx;.cc;.c;.inl;.h;.hh;.hpp;.hxx;.hm;.inc;.rc;.resx;.idl;.rc2;.def;.odl;.asm;.asmx;.xsd;.bin;.rgs;.html;.htm;.manifestfalse.suo;.sln;.ncb;.sdf;.vcxproj;.csproj;.user;.vbproj;.scc;.vsscc;.vspscc;.old;.filters0false0true
+ true
+ true
+ false
+ true
+ true
+ true
+ 4
+ 2
+ false
+ 58
+ true
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ 4
+ false
+ false
+ false
+ false
+
+ false
+ false
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ 4truetruetruetrue2truefalsefalsefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetruetruetruetruetruetruetruetrue4truetruetruetrue2truetruetruefalsefalsetruetruetruetruetruetrue58falsefalse4truetruetruetrue2true0truefalse2falsefalse0truefalse2truefalsetruefalsetrue1truefalse0true{}[]().,:;+-*/%&|^!=<>?@#\falsefalsefalsefalse0truefalsefalsetruefalsefalse0truefalsefalsefalsefalse2falsefalsefalsefalsetruefalsetruefalsefalsetruefalsefalsefalsetrue5truetruetruefalsefalse03truefalse60falsefalsefalsetruefalsetruetruetruefalse55falsetruetruetruefalsefalsefalsefalsefalsefalsetruetruetruefalse1falsefalse0falsefalsefalsefalsetruefalsefalse4truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetrue4truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetrue101151111111111115001111011{}[]().,:;+-*/%&|^!~=<>?@#'"\10120100011110101011011000111100001180001110101000011010110110111101001010011011101010111100024truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58falsefalse4falsetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruefalsetruefalsetrue58falsefalse4truetruetruetruetruetrue0truetruefalsetruefalsetruetrue4truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetrue16244681013027014130030571648769114413810003575607202202157245271502431557746900202000-1-17257087123839990128jpg080gif8015000-12083886165-1750-11317273516765887200-1-10429496729522551001128954521521676031116750848210033012865075201800-114145511216768975072570870text/html;text/x-jquery-tmpl;text/template;text/x-handlebars;text/x-handlebars-template;text/x-jsrender1673925816777215090HTML5010500-120111190170100112167508481200-14truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetrue4truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetrueImplicit (Windows 8)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\sitetypesWindows.js|$(VSInstallDir)\JavaScript\References\domWindows_8.0.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Implicit (Windows 8.1)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\sitetypesWindows.js|$(VSInstallDir)\JavaScript\References\domWindows_8.1.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Implicit (Web)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\sitetypesWeb.js|$(VSInstallDir)\JavaScript\References\domWeb.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js|~/Scripts/_references.js;Dedicated Worker|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\dedicatedworker.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Generic|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;falsetruetruefalsetruetruetruetruefalsetruetruetruetruefalsetruetrue4truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58falsefalse4truetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58falsefalse4truetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58falsefalse4falsetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58falsefalse4falsetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58falsefalse4falsetruetruetrue4truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruefalsetrue58falsefalse4falsetruetruetrue2truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58falsefalse2falsetruetruetrue4truetruetruetrue2truefalsetruefalsefalsetruetruefalsefalsetruetrue58falsefalse4falsetruetruetrue
+
+ true
+ truefalsetruetruetruetruefalsefalsefalsetruefalsefalsefalsefalsetruetruetruetruefalsefalsetruetruefalsetruefalsefalsetruefalse001truetruetruefalse3{00000000-0000-0000-0000-000000000000}True<ExtensionRepositoryConfigList Capacity="0" xmlns="clr-namespace:Microsoft.VisualStudio.ExtensionManager;assembly=Microsoft.VisualStudio.ExtensionManager.Implementation" />True12falsetruefalse2{B1BA9461-FC54-45B3-A484-CB6DD0B95C94}0212.0.0.0Visual C# 2005trueVC#falsefalsefalsetruefalsefalsefalsetruefalsefalsefalsefalsetruetruetruetruefalsefalsetruetruefalsetruefalse{B1BA9461-FC54-45B3-A484-CB6DD0B95C94}0VC#false11truefalsefalsetruefalsetruetrueTrueFalseTrueTrueTrueTrueFalseFalseTrueFalse1{1593EE17-2E95-41F0-8DC6-A0BFE991388F}false10000MatchCase=0 WholeWord=0 Hidden=0 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=1 KeepOpen=0 NameOnly=0 Plain Files FindMatchCase=0 WholeWord=0 Hidden=0 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=1 KeepOpen=0 NameOnly=0 Plain Files FindMatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=0 KeepOpen=0 NameOnly=0 Plain Document Find1111111111111Regex007Design|Debug|NoToolWin
+
+ CSharp
+
+
+ CSHowDoI80
+ http://go.microsoft.com/fwlink/?LinkId=47811&clcid=%VSSPV_LCID_HEX%
+ CSharp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CSharp
+
+ False
+ True
+
+ True
+ application/soap+msbin1
+ True
+ True
+ False
+ True
+ about:blank
+
+ True
+ SiteName
+ True
+ False
+ True
+ \[{"Error":[^n];"SharepointError";"HasException":true
+ True
+ C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\WebTestPlugins\DefaultSharePointRules.xml
+ AAEAAAD/////AQAAAAAAAAAMAgAAAGxNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5Wc2lwLCBWZXJzaW9uPTEyLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EEAQAAAMMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5Wc2lwLlVSTFBhdHRlcm4sIE1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUXVhbGl0eVRvb2xzLlZzaXAsIFZlcnNpb249MTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYV1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAyTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuVnNpcC5VUkxQYXR0ZXJuW10CAAAACAgJAwAAAAQAAAAEAAAABwMAAAAAAQAAAAQAAAAEME1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uVGVzdFRvb2xzLlZzaXAuVVJMUGF0dGVybgIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAwIAAAASVN5c3RlbSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFBAAAADBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5Wc2lwLlVSTFBhdHRlcm4DAAAAD1Byb3BlcnR5Q2hhbmdlZAptX2NyaXRlcmlhCW1fcGF0dGVybgQBATFTeXN0ZW0uQ29tcG9uZW50TW9kZWwuUHJvcGVydHlDaGFuZ2VkRXZlbnRIYW5kbGVyCAAAAAIAAAAKBgkAAAAIRW5kc1dpdGgGCgAAAAlibGFuay5naWYBBQAAAAQAAAAKCQkAAAAGDAAAAAlibGFuay5odG0BBgAAAAQAAAAKCQkAAAAGDgAAAA9TY3JpcHRSZXN4LmFzaHgBBwAAAAQAAAAKCQkAAAAGEAAAAA5jb21tYW5kdWkuYXNoeAs=
+ True
+ True1101011110101111100010011110001001101111000000167577360473600210110111000050001500015001000100010002000200050001000010000250100050012510001100111111111100001110010011000000001012048509000100011000001011http://referencesource.microsoft.com/symbolshttp://msdl.microsoft.com/download/symbolsFunction: $FUNCTION, Thread: $TID $TNAME506464101csv3.01002.03.01100Falsefalsetruefalsefalse-1TrueTrueTrue25TruefalsefalseTrueTrueTrue8, 8SnapLinesTrueTrueTrueTruePreserveTrueTrueTrueTrueFalseTrueTrueTrueTrueTruePreserveTrueFalseDoubleQuote120FalseNoneFalseTrueTrueTrueTrueTrueTrueTrueTrue%VsInstallDir%\xml\Schemas
\ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj b/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj
index 80d8fc49..379d7808 100644
--- a/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj
+++ b/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj
@@ -22,6 +22,13 @@
prompt
4
+
+ ..\..\..\bin\
+ TRACE;DEBUG
+ prompt
+ full
+ true
+
@@ -40,4 +47,4 @@
-->
-
+
\ No newline at end of file
diff --git a/SparkleShare/Windows/SparkleStatusIcon.cs b/SparkleShare/Windows/SparkleStatusIcon.cs
index be719127..60e5d646 100644
--- a/SparkleShare/Windows/SparkleStatusIcon.cs
+++ b/SparkleShare/Windows/SparkleStatusIcon.cs
@@ -193,6 +193,7 @@ namespace SparkleShare {
this.state_menu_items = new SparkleMenuItem [Controller.Projects.Length];
+ /*
if (Controller.Projects.Length > 0) {
int i = 0;
foreach (ProjectInfo project in Controller.Projects) {
@@ -257,7 +258,7 @@ namespace SparkleShare {
this.context_menu.Items.Add (item);
i++;
};
- }
+ } */
folder_item.Items.Add (this.log_item);
diff --git a/SparkleShare/Windows/SparkleUI.cs b/SparkleShare/Windows/SparkleUI.cs
index be3a5d74..9781500e 100644
--- a/SparkleShare/Windows/SparkleUI.cs
+++ b/SparkleShare/Windows/SparkleUI.cs
@@ -16,8 +16,11 @@
using System;
+using System.Threading;
using System.Windows.Forms;
+using SparkleLib;
+
namespace SparkleShare {
public class SparkleUI {
@@ -28,6 +31,12 @@ namespace SparkleShare {
public SparkleStatusIcon StatusIcon;
public SparkleAbout About;
+ static SparkleUI ()
+ {
+ Application.ThreadException += OnUnhandledException;
+ Application.SetUnhandledExceptionMode (UnhandledExceptionMode.CatchException);
+ }
+
public SparkleUI ()
{
@@ -49,5 +58,14 @@ namespace SparkleShare {
Application.Run ();
StatusIcon.Dispose ();
}
+
+ private static void OnUnhandledException (object sender, ThreadExceptionEventArgs exception_args)
+ {
+ try {
+ SparkleLogger.WriteCrashReport (exception_args.Exception);
+ } finally {
+ Environment.Exit (-1);
+ }
+ }
}
}