diff options
Diffstat (limited to 'SparkleShare/Windows')
-rw-r--r-- | SparkleShare/Windows/Images/folder.png (renamed from SparkleShare/Windows/Pixmaps/folder.png) | bin | 639 -> 639 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/process-syncing-down.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-down.png) | bin | 352 -> 352 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/process-syncing-error.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-error.png) | bin | 300 -> 300 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/process-syncing-idle.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-idle.png) | bin | 433 -> 433 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/process-syncing-up.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing-up.png) | bin | 357 -> 357 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/process-syncing.png (renamed from SparkleShare/Windows/Pixmaps/process-syncing.png) | bin | 288 -> 288 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/sparkleshare-app.ico (renamed from SparkleShare/Windows/Pixmaps/sparkleshare-app.ico) | bin | 68092 -> 68092 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/sparkleshare-folder.ico (renamed from SparkleShare/Windows/Pixmaps/sparkleshare-folder.ico) | bin | 38403 -> 38403 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/sparkleshare-folder.png (renamed from SparkleShare/Windows/Pixmaps/sparkleshare-folder.png) | bin | 633 -> 633 bytes | |||
-rw-r--r-- | SparkleShare/Windows/Images/tutorial-slide-3.png (renamed from SparkleShare/Windows/Pixmaps/tutorial-slide-3.png) | bin | 24292 -> 24292 bytes | |||
-rw-r--r-- | SparkleShare/Windows/README.md | 4 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleController.cs | 270 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleEventLog.cs | 372 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleEventLogWindow.xaml | 38 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleEventLogWindow.xaml.cs | 262 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj | 71 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleLib/SparkleLib.csproj | 97 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShare.Windows.csproj | 337 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShare.csproj | 294 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShare.sln | 49 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShare.vssettings | 2 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShare.wxs | 8 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj | 20 | ||||
-rw-r--r-- | SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs | 2 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/About.cs (renamed from SparkleShare/Windows/SparkleAbout.cs) | 17 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Bubbles.cs (renamed from SparkleShare/Windows/SparkleBubbles.cs) | 14 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Controller.cs | 199 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/EventLog.cs | 347 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Note.xaml (renamed from SparkleShare/Windows/SparkleNote.xaml) | 4 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Note.xaml.cs (renamed from SparkleShare/Windows/SparkleNote.xaml.cs) | 22 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/NotifyIcon.cs (renamed from SparkleShare/Windows/SparkleNotifyIcon.cs) | 376 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/ProtocolHandler.cs | 74 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Setup.cs (renamed from SparkleShare/Windows/SparkleSetup.cs) | 199 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/SetupWindow.cs (renamed from SparkleShare/Windows/SparkleSetupWindow.cs) | 386 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Shortcut.cs (renamed from SparkleShare/Windows/SparkleShortcut.cs) | 5 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/Spinner.cs (renamed from SparkleShare/Windows/SparkleSpinner.cs) | 182 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/StatusIcon.cs (renamed from SparkleShare/Windows/SparkleStatusIcon.cs) | 40 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/UserInterface.cs (renamed from SparkleShare/Windows/SparkleUI.cs) | 40 | ||||
-rw-r--r-- | SparkleShare/Windows/UserInterface/UserInterfaceHelpers.cs (renamed from SparkleShare/Windows/SparkleUIHelpers.cs) | 12 | ||||
-rw-r--r-- | SparkleShare/Windows/app.config | 3 | ||||
-rw-r--r-- | SparkleShare/Windows/build.cmd | 2 | ||||
-rw-r--r-- | SparkleShare/Windows/packages.config | 7 |
42 files changed, 1555 insertions, 2200 deletions
diff --git a/SparkleShare/Windows/Pixmaps/folder.png b/SparkleShare/Windows/Images/folder.png Binary files differindex 46fa475..46fa475 100644 --- a/SparkleShare/Windows/Pixmaps/folder.png +++ b/SparkleShare/Windows/Images/folder.png diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-down.png b/SparkleShare/Windows/Images/process-syncing-down.png Binary files differindex f5bd436..f5bd436 100644 --- a/SparkleShare/Windows/Pixmaps/process-syncing-down.png +++ b/SparkleShare/Windows/Images/process-syncing-down.png diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-error.png b/SparkleShare/Windows/Images/process-syncing-error.png Binary files differindex ee81060..ee81060 100644 --- a/SparkleShare/Windows/Pixmaps/process-syncing-error.png +++ b/SparkleShare/Windows/Images/process-syncing-error.png diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-idle.png b/SparkleShare/Windows/Images/process-syncing-idle.png Binary files differindex 7856e12..7856e12 100644 --- a/SparkleShare/Windows/Pixmaps/process-syncing-idle.png +++ b/SparkleShare/Windows/Images/process-syncing-idle.png diff --git a/SparkleShare/Windows/Pixmaps/process-syncing-up.png b/SparkleShare/Windows/Images/process-syncing-up.png Binary files differindex 56b8f23..56b8f23 100644 --- a/SparkleShare/Windows/Pixmaps/process-syncing-up.png +++ b/SparkleShare/Windows/Images/process-syncing-up.png diff --git a/SparkleShare/Windows/Pixmaps/process-syncing.png b/SparkleShare/Windows/Images/process-syncing.png Binary files differindex 9f9df04..9f9df04 100644 --- a/SparkleShare/Windows/Pixmaps/process-syncing.png +++ b/SparkleShare/Windows/Images/process-syncing.png diff --git a/SparkleShare/Windows/Pixmaps/sparkleshare-app.ico b/SparkleShare/Windows/Images/sparkleshare-app.ico Binary files differindex 73917b1..73917b1 100644 --- a/SparkleShare/Windows/Pixmaps/sparkleshare-app.ico +++ b/SparkleShare/Windows/Images/sparkleshare-app.ico diff --git a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.ico b/SparkleShare/Windows/Images/sparkleshare-folder.ico Binary files differindex e00ebf4..e00ebf4 100644 --- a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.ico +++ b/SparkleShare/Windows/Images/sparkleshare-folder.ico diff --git a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.png b/SparkleShare/Windows/Images/sparkleshare-folder.png Binary files differindex f44e363..f44e363 100644 --- a/SparkleShare/Windows/Pixmaps/sparkleshare-folder.png +++ b/SparkleShare/Windows/Images/sparkleshare-folder.png diff --git a/SparkleShare/Windows/Pixmaps/tutorial-slide-3.png b/SparkleShare/Windows/Images/tutorial-slide-3.png Binary files differindex be651b0..be651b0 100644 --- a/SparkleShare/Windows/Pixmaps/tutorial-slide-3.png +++ b/SparkleShare/Windows/Images/tutorial-slide-3.png diff --git a/SparkleShare/Windows/README.md b/SparkleShare/Windows/README.md index 17ff4a6..c85784e 100644 --- a/SparkleShare/Windows/README.md +++ b/SparkleShare/Windows/README.md @@ -6,7 +6,7 @@ You can choose to build SparkleShare from source or to run the Windows installer Install version 4.0 of the [.NET Framework](http://www.microsoft.com/download/en/details.aspx?id=17851) if you haven't already. -Install [msysGit](http://msysgit.github.io/) and copy the contents of the install folder +Install [msysGit](https://github.com/msysgit/msysgit/releases) and copy the contents of the install folder (`C:\Program Files (x86)\Git` by default) to `C:\path\to\SparkleShare-sources\bin\msysgit\` (create the "bin"-folder in the SparkleShare source directory). Open a command prompt and execute the following: @@ -34,7 +34,7 @@ This will create `SparkleShare.msi` in the same directory. ### Resetting SparkleShare settings -Remove `My Documents\SparkleShare` and `AppData\Roaming\sparkleshare` (`AppData` is hidden by default). +Remove `My Documents\SparkleShare` and `AppData\Roaming\org.sparkleshare.SparkleShare` (`AppData` is hidden by default). ### Uninstalling diff --git a/SparkleShare/Windows/SparkleController.cs b/SparkleShare/Windows/SparkleController.cs deleted file mode 100644 index ed9a65f..0000000 --- a/SparkleShare/Windows/SparkleController.cs +++ /dev/null @@ -1,270 +0,0 @@ -// SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Reflection; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading; -using Forms = System.Windows.Forms; - -using Microsoft.Win32; -using SparkleLib; -using System.Windows; - - -namespace SparkleShare { - - public class SparkleController : SparkleControllerBase { - - private int ssh_agent_pid; - - - public SparkleController () : base () - { - } - - - public override string PluginsPath - { - get { - return Path.Combine (Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location), "plugins"); - } - } - - - public override void Initialize () - { - // Add msysgit to path, as we cannot asume it is added to the path - // Asume it is installed in @"<exec dir>\msysgit\bin" - string executable_path = Path.GetDirectoryName (Forms.Application.ExecutablePath); - string msysgit_path = Path.Combine (executable_path, "msysgit"); - - - string new_PATH = msysgit_path + @"\bin" + ";" + - msysgit_path + @"\mingw\bin" + ";" + - msysgit_path + @"\cmd" + ";" + - Environment.ExpandEnvironmentVariables ("%PATH%"); - - Environment.SetEnvironmentVariable ("PATH", new_PATH); - Environment.SetEnvironmentVariable ("HOME", Environment.GetFolderPath (Environment.SpecialFolder.UserProfile)); - - StartSSH (); - SparkleLib.Git.SparkleGit.SSHPath = Path.Combine (msysgit_path, "bin", "ssh.exe"); - - base.Initialize (); - } - - - public override string EventLogHTML { - get { - string html = SparkleUIHelpers.GetHTML ("event-log.html"); - return html.Replace ("<!-- $jquery -->", SparkleUIHelpers.GetHTML ("jquery.js")); - } - } - - - public override string DayEntryHTML { - get { - return SparkleUIHelpers.GetHTML ("day-entry.html"); - } - } - - - public override string EventEntryHTML { - get { - return SparkleUIHelpers.GetHTML ("event-entry.html"); - } - } - - - public override void CreateStartupItem () - { - string startup_folder_path = Environment.GetFolderPath (Environment.SpecialFolder.Startup); - string shortcut_path = Path.Combine (startup_folder_path, "SparkleShare.lnk"); - - if (File.Exists (shortcut_path)) - File.Delete (shortcut_path); - - string shortcut_target = Forms.Application.ExecutablePath; - - Shortcut shortcut = new Shortcut (); - shortcut.Create (shortcut_path, shortcut_target); - } - - - public override void InstallProtocolHandler () - { - // We ship a separate .exe for this - } - - - public override void AddToBookmarks () - { - string user_profile_path = Environment.GetFolderPath (Environment.SpecialFolder.UserProfile); - string shortcut_path = Path.Combine (user_profile_path, "Links", "SparkleShare.lnk"); - - if (File.Exists (shortcut_path)) - File.Delete (shortcut_path); - - Shortcut shortcut = new Shortcut (); - shortcut.Create (FoldersPath, shortcut_path); - } - - - public override bool CreateSparkleShareFolder () - { - if (Directory.Exists (FoldersPath)) - return false; - - Directory.CreateDirectory (FoldersPath); - - File.SetAttributes (FoldersPath, File.GetAttributes (FoldersPath) | FileAttributes.System); - SparkleLogger.LogInfo ("Config", "Created '" + FoldersPath + "'"); - - string app_path = Path.GetDirectoryName (Forms.Application.ExecutablePath); - string icon_file_path = Path.Combine (app_path, "Pixmaps", "sparkleshare-folder.ico"); - - if (!File.Exists (icon_file_path)) { - string ini_file_path = Path.Combine (FoldersPath, "desktop.ini"); - string n = Environment.NewLine; - - string ini_file = "[.ShellClassInfo]" + n + - "IconFile=" + icon_file_path + n + - "IconIndex=0" + n + - "InfoTip=SparkleShare"; - - try { - File.Create (ini_file_path).Close (); - File.WriteAllText (ini_file_path, ini_file); - - File.SetAttributes (ini_file_path, - File.GetAttributes (ini_file_path) | FileAttributes.Hidden | FileAttributes.System); - - } catch (IOException e) { - SparkleLogger.LogInfo ("Config", "Failed setting icon for '" + FoldersPath + "': " + e.Message); - } - - return true; - } - - return false; - } - - - public override void OpenFile (string path) - { - Process.Start (path); - } - - - public override void OpenFolder (string path) - { - Process.Start (path); - } - - - public override void OpenWebsite (string url) - { - Process.Start (new ProcessStartInfo (url)); - } - - - public override void CopyToClipboard (string text) - { - try { - Clipboard.SetData (DataFormats.Text, text); - - } catch (COMException e) { - SparkleLogger.LogInfo ("Controller", "Copy to clipboard failed", e); - } - } - - - public override void Quit () - { - StopSSH (); - base.Quit (); - } - - - private void StartSSH () - { - string auth_agent_pid = Environment.GetEnvironmentVariable ("SSH_AGENT_PID"); - - if (!string.IsNullOrEmpty (auth_agent_pid)) { - SparkleLogger.LogInfo ("Controller", "Trying to use existing ssh-agent with PID=" + auth_agent_pid + "..."); - this.ssh_agent_pid = Convert.ToInt32 (auth_agent_pid); - - try { - Process ssh_agent = Process.GetProcessById (this.ssh_agent_pid); - SparkleLogger.LogInfo ("Controller", "Using existing ssh-agent with PID=" + this.ssh_agent_pid); - - return; - - } catch (ArgumentException) { - SparkleLogger.LogInfo ("Controller", "ssh-agent with PID=" + auth_agent_pid + " does not exist. Starting a new one..."); - } - } - - Process process = new Process (); - process.StartInfo.FileName = "ssh-agent"; - process.StartInfo.UseShellExecute = false; - process.StartInfo.RedirectStandardOutput = true; - process.StartInfo.CreateNoWindow = true; - - process.Start (); - - string output = process.StandardOutput.ReadToEnd (); - process.WaitForExit (); - - Match auth_sock_match = new Regex (@"SSH_AUTH_SOCK=([^;\n\r]*)").Match (output); - Match ssh_pid_match = new Regex (@"SSH_AGENT_PID=([^;\n\r]*)").Match (output); - - if (auth_sock_match.Success) - Environment.SetEnvironmentVariable ("SSH_AUTH_SOCK", auth_sock_match.Groups [1].Value); - - if (ssh_pid_match.Success) { - Int32.TryParse (ssh_pid_match.Groups [1].Value, out this.ssh_agent_pid); - Environment.SetEnvironmentVariable ("SSH_AGENT_PID", "" + this.ssh_agent_pid); - - SparkleLogger.LogInfo ("Controller", "ssh-agent started, PID=" + this.ssh_agent_pid); - - } else { - SparkleLogger.LogInfo ("Controller", "Could not start ssh-agent:" + output); - } - } - - - private void StopSSH () - { - if (this.ssh_agent_pid == 0) - return; - - try { - Process.GetProcessById (this.ssh_agent_pid).Kill (); - - } catch (ArgumentException e) { - SparkleLogger.LogInfo ("SSH", "Could not stop ssh-agent: " + e.Message); - } - } - } -} diff --git a/SparkleShare/Windows/SparkleEventLog.cs b/SparkleShare/Windows/SparkleEventLog.cs deleted file mode 100644 index 7938d77..0000000 --- a/SparkleShare/Windows/SparkleEventLog.cs +++ /dev/null @@ -1,372 +0,0 @@ -// SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see (http://www.gnu.org/licenses/). - -using System; -using System.ComponentModel; -using System.IO; -using System.Runtime.InteropServices; -using System.Security.Permissions; -using System.Threading; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; -using System.Windows.Media.Imaging; - -using Microsoft.Win32; -using Shapes = System.Windows.Shapes; - -using SparkleLib; - -namespace SparkleShare { - - public class SparkleEventLog : Window { - - public SparkleEventLogController Controller = new SparkleEventLogController (); - - private Canvas canvas; - private Label size_label_value; - private Label history_label_value; - private ComboBox combo_box; - private WebBrowser web_browser; - private SparkleSpinner spinner; - - - public SparkleEventLog () - { - Title = "Recent Changes"; - Height = 640; - Width = 480; - ResizeMode = ResizeMode.NoResize; // TODO - Background = new SolidColorBrush (Color.FromRgb (240, 240, 240)); - AllowsTransparency = false; - Icon = SparkleUIHelpers.GetImageSource ("sparkleshare-app", "ico"); - - int x = (int) (SystemParameters.PrimaryScreenWidth * 0.61); - int y = (int) (SystemParameters.PrimaryScreenHeight * 0.5 - (Height * 0.5)); - - WindowStartupLocation = WindowStartupLocation.Manual; - Left = x; - Top = y; - - WriteOutImages (); - - Label size_label = new Label () { - Content = "Size:", - FontWeight = FontWeights.Bold - }; - - this.size_label_value = new Label () { - Content = Controller.Size - }; - - size_label.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity)); - Rect size_label_rect = new Rect (size_label.DesiredSize); - - Label history_label = new Label () { - Content = "History:", - FontWeight = FontWeights.Bold - }; - - this.history_label_value = new Label () { - Content = Controller.HistorySize, - }; - - history_label.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity)); - Rect history_label_rect = new Rect (history_label.DesiredSize); - - Shapes.Rectangle line = new Shapes.Rectangle () { - Width = Width, - Height = 1, - Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223)) - }; - - Shapes.Rectangle background = new Shapes.Rectangle () { - Width = Width, - Height = Height, - Fill = new SolidColorBrush (Color.FromRgb (250, 250, 250)) - }; - - this.web_browser = new WebBrowser () { - Width = Width - 6, - Height = Height - 64 - }; - - this.web_browser.ObjectForScripting = new SparkleScriptingObject (); - - - spinner = new SparkleSpinner (22); - - // Disable annoying IE clicking sound - CoInternetSetFeatureEnabled (21, 0x00000002, true); - - - this.canvas = new Canvas (); - Content = this.canvas; - - this.canvas.Children.Add (size_label); - Canvas.SetLeft (size_label, 24); - Canvas.SetTop (size_label, 4); - - this.canvas.Children.Add (this.size_label_value); - Canvas.SetLeft (this.size_label_value, 22 + size_label_rect.Width); - Canvas.SetTop (this.size_label_value, 4); - - this.canvas.Children.Add (history_label); - Canvas.SetLeft (history_label, 130); - Canvas.SetTop (history_label, 4); - - this.canvas.Children.Add (this.history_label_value); - Canvas.SetLeft (this.history_label_value, 130 + history_label_rect.Width); - Canvas.SetTop (this.history_label_value, 4); - - this.canvas.Children.Add (background); - Canvas.SetLeft (background, 0); - Canvas.SetTop (background, 36); - - this.canvas.Children.Add (spinner); - Canvas.SetLeft (spinner, (Width / 2) - 15); - Canvas.SetTop (spinner, (Height / 2) - 22); - - this.canvas.Children.Add (line); - Canvas.SetLeft (line, 0); - Canvas.SetTop (line, 35); - - - Closing += Close; - - Controller.ShowWindowEvent += delegate { - Dispatcher.BeginInvoke ((Action) delegate { - Show (); - Activate (); - BringIntoView (); - }); - }; - - Controller.HideWindowEvent += delegate { - Dispatcher.BeginInvoke ((Action) delegate { - Hide (); - - if (this.canvas.Children.Contains (this.web_browser)) - this.canvas.Children.Remove (this.web_browser); - }); - }; - - Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) { - Dispatcher.BeginInvoke ((Action) delegate { - this.size_label_value.Content = size; - this.size_label_value.UpdateLayout (); - - this.history_label_value.Content = history_size; - this.history_label_value.UpdateLayout (); - }); - }; - - Controller.UpdateChooserEvent += delegate (string [] folders) { - Dispatcher.BeginInvoke ((Action) delegate { - UpdateChooser (folders); - }); - }; - - Controller.UpdateChooserEnablementEvent += delegate (bool enabled) { - Dispatcher.BeginInvoke ((Action) delegate { - this.combo_box.IsEnabled = enabled; - }); - }; - - Controller.UpdateContentEvent += delegate (string html) { - Dispatcher.BeginInvoke ((Action) delegate { - UpdateContent (html); - }); - }; - - Controller.ContentLoadingEvent += delegate { - Dispatcher.BeginInvoke ((Action) delegate { - this.spinner.Start (); - - if (this.canvas.Children.Contains (this.web_browser)) - this.canvas.Children.Remove (this.web_browser); - }); - }; - - Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) { - Dispatcher.BeginInvoke ((Action) delegate { - SaveFileDialog dialog = new SaveFileDialog () { - FileName = file_name, - InitialDirectory = target_folder_path, - Title = "Restore from History", - DefaultExt = "." + Path.GetExtension (file_name), - Filter = "All Files|*.*" - }; - - Nullable<bool> result = dialog.ShowDialog (this); - - if (result == true) - Controller.SaveDialogCompleted (dialog.FileName); - else - Controller.SaveDialogCancelled (); - }); - }; - } - - - public void UpdateChooser (string [] folders) - { - if (folders == null) - folders = Controller.Folders; - - if (this.combo_box != null) - this.canvas.Children.Remove (this.combo_box); - - this.combo_box = new ComboBox () { - Width = 160 - }; - - ComboBoxItem item = new ComboBoxItem () { - Content = "Summary" - }; - - this.combo_box.Items.Add (item); - this.combo_box.Items.Add (new Separator ()); - - this.combo_box.SelectedItem = combo_box.Items [0]; - - int row = 2; - foreach (string folder in folders) { - this.combo_box.Items.Add ( - new ComboBoxItem () { Content = folder } - ); - - if (folder.Equals (Controller.SelectedFolder)) - this.combo_box.SelectedItem = combo_box.Items [row]; - - row++; - } - - this.combo_box.SelectionChanged += delegate { - Dispatcher.BeginInvoke ((Action) delegate { - int index = this.combo_box.SelectedIndex; - - if (index == 0) - Controller.SelectedFolder = null; - else - Controller.SelectedFolder = (string) - (this.combo_box.Items [index] as ComboBoxItem).Content; - }); - }; - - this.canvas.Children.Add (combo_box); - Canvas.SetLeft (this.combo_box, Width - 24 - this.combo_box.Width); - Canvas.SetTop (this.combo_box, 6); - } - - - public void UpdateContent (string html) - { - string pixmaps_path = Path.Combine (SparkleLib.SparkleConfig.DefaultConfig.TmpPath, "Pixmaps".SHA1 ()); - pixmaps_path = pixmaps_path.Replace ("\\", "/"); - - html = html.Replace ("<a href=", "<a class='windows' href="); - html = html.Replace ("<!-- $body-font-family -->", "'Segoe UI', sans-serif"); - html = html.Replace ("<!-- $day-entry-header-font-size -->", "13px"); - html = html.Replace ("<!-- $body-font-size -->", "12px"); - html = html.Replace ("<!-- $secondary-font-color -->", "#bbb"); - html = html.Replace ("<!-- $small-color -->", "#ddd"); - html = html.Replace ("<!-- $small-font-size -->", "90%"); - html = html.Replace ("<!-- $day-entry-header-background-color -->", "#f5f5f5"); - html = html.Replace ("<!-- $a-color -->", "#0085cf"); - html = html.Replace ("<!-- $a-hover-color -->", "#009ff8"); - html = html.Replace ("<!-- $pixmaps-path -->", pixmaps_path); - html = html.Replace ("<!-- $document-added-background-image -->", pixmaps_path + "/document-added-12.png"); - html = html.Replace ("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png"); - html = html.Replace ("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png"); - html = html.Replace ("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png"); - - this.spinner.Stop (); - - this.web_browser.ObjectForScripting = new SparkleScriptingObject (); - this.web_browser.NavigateToString (html); - - if (!this.canvas.Children.Contains (this.web_browser)) { - this.canvas.Children.Add (this.web_browser); - Canvas.SetLeft (this.web_browser, 0); - Canvas.SetTop (this.web_browser, 36); - } - } - - - private void WriteOutImages () - { - string tmp_path = SparkleLib.SparkleConfig.DefaultConfig.TmpPath; - string pixmaps_path = Path.Combine (tmp_path, "Pixmaps".SHA1 ()); - - if (!Directory.Exists (pixmaps_path)) { - Directory.CreateDirectory (pixmaps_path); - - File.SetAttributes (tmp_path, - File.GetAttributes (tmp_path) | FileAttributes.Hidden); - } - - BitmapSource image = SparkleUIHelpers.GetImageSource ("user-icon-default"); - string file_path = Path.Combine (pixmaps_path, "user-icon-default.png"); - - using (FileStream stream = new FileStream (file_path, FileMode.Create)) - { - BitmapEncoder encoder = new PngBitmapEncoder (); - encoder.Frames.Add (BitmapFrame.Create (image)); - encoder.Save (stream); - } - - string [] actions = new string [] {"added", "deleted", "edited", "moved"}; - - foreach (string action in actions) { - image = SparkleUIHelpers.GetImageSource ("document-" + action + "-12"); - file_path = Path.Combine (pixmaps_path, "document-" + action + "-12.png"); - - using (FileStream stream = new FileStream (file_path, FileMode.Create)) - { - BitmapEncoder encoder = new PngBitmapEncoder (); - encoder.Frames.Add (BitmapFrame.Create (image)); - encoder.Save (stream); - } - } - } - - - private void Close (object sender, CancelEventArgs args) - { - Controller.WindowClosed (); - args.Cancel = true; - } - - - [DllImport ("urlmon.dll")] - [PreserveSig] - [return:MarshalAs (UnmanagedType.Error)] - static extern int CoInternetSetFeatureEnabled (int feature, - [MarshalAs (UnmanagedType.U4)] int flags, bool enable); - } - - - [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] - [ComVisible(true)] - public class SparkleScriptingObject { - - public void LinkClicked (string url) - { - Program.UI.EventLog.Controller.LinkClicked (url); - } - } -} diff --git a/SparkleShare/Windows/SparkleEventLogWindow.xaml b/SparkleShare/Windows/SparkleEventLogWindow.xaml deleted file mode 100644 index a43d38f..0000000 --- a/SparkleShare/Windows/SparkleEventLogWindow.xaml +++ /dev/null @@ -1,38 +0,0 @@ -<Window x:Class="SparkleShare.SparkleEventLogWindow" - xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:sparkleShare="clr-namespace:SparkleShare" - mc:Ignorable="d" - Height="640" SizeToContent="WidthAndHeight" Title="Recent Changes" MinHeight="640" MinWidth="490"> - <Grid x:Name="grid_Base" Background="White"> - <Border VerticalAlignment="Top" Height="35" Background="#FFF0F0F0" BorderBrush="#FFDFDFDF" BorderThickness="0,0,0,1"> - <Grid> - <Label Content="Size: ?" Height="28" Name="label_Size" HorizontalAlignment="Left" Margin="20,0,0,0" FontWeight="Bold" /> - <Label Content="History: ?" Height="28" Name="label_History" HorizontalAlignment="Left" Margin="100,0,0,0" FontWeight="Bold" /> - <ComboBox HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,6,0" MinWidth="120" x:Name="combobox" /> - </Grid> - </Border> - - <Grid Margin="0, 35, 0, 0"> - <Grid.RowDefinitions> - <RowDefinition Height="*"/> - <RowDefinition Height="Auto"/> - </Grid.RowDefinitions> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="*"></ColumnDefinition> - <ColumnDefinition Width="Auto"></ColumnDefinition> - </Grid.ColumnDefinitions> - - <sparkleShare:SparkleSpinner x:Name="spinner" /> - <WebBrowser x:Name="webbrowser" Height="{Binding ElementName=sizingControlHeight, Path=ActualHeight}" Width="{Binding ElementName=sizingControlWidth, Path=ActualWidth}" /> - - <!-- WPF always resizes from child to parent. Unfortunately the webbrowser takes all space it gets. - To correct this "feature" we use a dummy control in a different column to bind the height to. - See: http://stackoverflow.com/questions/7300975/prevent-parent-from-being-resized-by-child --> - <Rectangle Name="sizingControlHeight" Grid.Column="1" Visibility="Hidden" /> - <Rectangle Name="sizingControlWidth" Grid.Column="0" Grid.Row="1" Visibility="Hidden" /> - </Grid> - </Grid> -</Window>
\ No newline at end of file diff --git a/SparkleShare/Windows/SparkleEventLogWindow.xaml.cs b/SparkleShare/Windows/SparkleEventLogWindow.xaml.cs deleted file mode 100644 index ac6b581..0000000 --- a/SparkleShare/Windows/SparkleEventLogWindow.xaml.cs +++ /dev/null @@ -1,262 +0,0 @@ -// SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Security.Permissions; -using System.Text; -using System.Runtime.InteropServices; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; -using System.Windows.Media.Imaging; - -using Microsoft.Win32; - -namespace SparkleShare -{ - public partial class SparkleEventLogWindow : Window - { - public SparkleEventLogController Controller = new SparkleEventLogController (); - - [DllImport("urlmon.dll")] - [PreserveSig] - [return: MarshalAs(UnmanagedType.Error)] - static extern int CoInternetSetFeatureEnabled (int feature, [MarshalAs(UnmanagedType.U4)] int flags, bool enable); - - - public SparkleEventLogWindow () - { - InitializeComponent (); - - - Background = new SolidColorBrush (Color.FromRgb(240, 240, 240)); - AllowsTransparency = false; - Icon = SparkleUIHelpers.GetImageSource ("sparkleshare-app", "ico"); - WindowStartupLocation = WindowStartupLocation.CenterScreen; - - WriteOutImages (); - - this.label_Size.Content = "Size: " + Controller.Size; - this.label_History.Content = "History: " + Controller.HistorySize; - - this.webbrowser.ObjectForScripting = new SparkleScriptingObject (); - - // Disable annoying IE clicking sound - CoInternetSetFeatureEnabled (21, 0x00000002, true); - - Closing += this.OnClosing; - - Controller.ShowWindowEvent += delegate { - Dispatcher.BeginInvoke ((Action) (() => { - Show (); - Activate (); - BringIntoView (); - })); - }; - - Controller.HideWindowEvent += delegate { - Dispatcher.BeginInvoke ((Action) (() => { - Hide (); - this.spinner.Visibility = Visibility.Visible; - this.webbrowser.Visibility = Visibility.Collapsed; - })); - }; - - Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) { - Dispatcher.BeginInvoke ((Action) (() => { - this.label_Size.Content = "Size: " + size; - this.label_History.Content = "History: " + history_size; - })); - }; - - Controller.UpdateChooserEvent += delegate (string [] folders) { - Dispatcher.BeginInvoke ((Action) (() => - UpdateChooser (folders)) - ); - }; - - Controller.UpdateChooserEnablementEvent += delegate (bool enabled) { - Dispatcher.BeginInvoke ((Action) (() => - this.combobox.IsEnabled = enabled - )); - }; - - Controller.UpdateContentEvent += delegate (string html) { - Dispatcher.BeginInvoke ((Action) (() => { - UpdateContent (html); - - this.spinner.Visibility = Visibility.Collapsed; - this.webbrowser.Visibility = Visibility.Visible; - })); - }; - - Controller.ContentLoadingEvent += () => this.Dispatcher.BeginInvoke ( - (Action)(() => { - this.spinner.Visibility = Visibility.Visible; - this.spinner.Start (); - this.webbrowser.Visibility = Visibility.Collapsed; - })); - - Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) { - Dispatcher.BeginInvoke ((Action) (() => { - SaveFileDialog dialog = new SaveFileDialog () { - FileName = file_name, - InitialDirectory = target_folder_path, - Title = "Restore from History", - DefaultExt = "." + Path.GetExtension (file_name), - Filter = "All Files|*.*" - }; - - bool? result = dialog.ShowDialog (this); - - if (result == true) - Controller.SaveDialogCompleted (dialog.FileName); - else - Controller.SaveDialogCancelled (); - })); - }; - } - - - private void OnClosing (object sender, CancelEventArgs cancel_event_args) - { - Controller.WindowClosed (); - cancel_event_args.Cancel = true; - } - - - private void UpdateContent (string html) - { - string pixmaps_path = Path.Combine (SparkleLib.SparkleConfig.DefaultConfig.TmpPath, "Pixmaps"); - pixmaps_path = pixmaps_path.Replace ("\\", "/"); - - html = html.Replace ("<a href=", "<a class='windows' href="); - html = html.Replace ("<!-- $body-font-family -->", "Segoe UI"); - html = html.Replace ("<!-- $day-entry-header-font-size -->", "13px"); - html = html.Replace ("<!-- $body-font-size -->", "12px"); - html = html.Replace ("<!-- $secondary-font-color -->", "#bbb"); - html = html.Replace ("<!-- $small-color -->", "#ddd"); - html = html.Replace ("<!-- $small-font-size -->", "90%"); - html = html.Replace ("<!-- $day-entry-header-background-color -->", "#f5f5f5"); - html = html.Replace ("<!-- $a-color -->", "#0085cf"); - html = html.Replace ("<!-- $a-hover-color -->", "#009ff8"); - html = html.Replace ("<!-- $pixmaps-path -->", pixmaps_path); - html = html.Replace ("<!-- $document-added-background-image -->", pixmaps_path + "/document-added-12.png"); - html = html.Replace ("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png"); - html = html.Replace ("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png"); - html = html.Replace ("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png"); - - this.spinner.Stop (); - - this.webbrowser.ObjectForScripting = new SparkleScriptingObject (); - this.webbrowser.NavigateToString (html); - } - - - public void UpdateChooser (string [] folders) - { - if (folders == null) { - folders = Controller.Folders; - } - - this.combobox.Items.Clear (); - this.combobox.Items.Add (new ComboBoxItem () { Content = "Summary" }); - this.combobox.Items.Add (new Separator ()); - this.combobox.SelectedItem = combobox.Items [0]; - - int row = 2; - foreach (string folder in folders) { - this.combobox.Items.Add (new ComboBoxItem () { Content = folder } ); - - if (folder.Equals (Controller.SelectedFolder)) - this.combobox.SelectedItem = this.combobox.Items [row]; - - row++; - } - - this.combobox.SelectionChanged += delegate { - Dispatcher.BeginInvoke ((Action) delegate { - int index = this.combobox.SelectedIndex; - - if (index == 0) - Controller.SelectedFolder = null; - else - Controller.SelectedFolder = (string) ((ComboBoxItem) this.combobox.Items [index]).Content; - }); - }; - } - - - private void WriteOutImages () - { - string tmp_path = SparkleLib.SparkleConfig.DefaultConfig.TmpPath; - string pixmaps_path = Path.Combine (tmp_path, "Pixmaps"); - - if (!Directory.Exists (pixmaps_path)) - { - Directory.CreateDirectory (pixmaps_path); - - File.SetAttributes (tmp_path, File.GetAttributes (tmp_path) | FileAttributes.Hidden); - } - - BitmapSource image = SparkleUIHelpers.GetImageSource ("user-icon-default"); - string file_path = Path.Combine (pixmaps_path, "user-icon-default.png"); - - using (FileStream stream = new FileStream (file_path, FileMode.Create)) - { - BitmapEncoder encoder = new PngBitmapEncoder (); - encoder.Frames.Add (BitmapFrame.Create (image)); - encoder.Save (stream); - } - - string[] actions = new string [] { "added", "deleted", "edited", "moved" }; - - foreach (string action in actions) - { - image = SparkleUIHelpers.GetImageSource ("document-" + action + "-12"); - file_path = Path.Combine (pixmaps_path, "document-" + action + "-12.png"); - - using (FileStream stream = new FileStream (file_path, FileMode.Create)) - { - BitmapEncoder encoder = new PngBitmapEncoder (); - encoder.Frames.Add (BitmapFrame.Create(image)); - encoder.Save (stream); - } - } - } - } - - - - - - [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] - [ComVisible(true)] - public class SparkleScriptingObject - { - public void LinkClicked(string url) - { - Program.UI.EventLog.Controller.LinkClicked(url); - } - } - - -} diff --git a/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj b/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj deleted file mode 100644 index 473b4dc..0000000 --- a/SparkleShare/Windows/SparkleLib/Git/SparkleLib.Git.csproj +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{7F0DB8D0-E278-4955-8204-FC391B99F7C1}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>SparkleLib.Git</RootNamespace> - <AssemblyName>SparkleLib.Git</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <TargetFrameworkProfile /> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>..\..\..\..\bin\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>..\..\..\..\bin\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data.DataSetExtensions" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\..\..\..\SparkleLib\Git\SparkleFetcherGit.cs"> - <Link>SparkleFetcherGit.cs</Link> - </Compile> - <Compile Include="..\..\..\..\SparkleLib\Git\SparkleGit.cs"> - <Link>SparkleGit.cs</Link> - <SubType>Component</SubType> - </Compile> - <Compile Include="..\..\..\..\SparkleLib\Git\SparkleRepoGit.cs"> - <Link>SparkleRepoGit.cs</Link> - </Compile> - </ItemGroup> - <ItemGroup> - <Folder Include="Properties\" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\SparkleLib.csproj"> - <Project>{748f6316-37b4-46fd-a011-af073bc7c02d}</Project> - <Name>SparkleLib</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project>
\ No newline at end of file diff --git a/SparkleShare/Windows/SparkleLib/SparkleLib.csproj b/SparkleShare/Windows/SparkleLib/SparkleLib.csproj deleted file mode 100644 index 4c5eaff..0000000 --- a/SparkleShare/Windows/SparkleLib/SparkleLib.csproj +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{748F6316-37B4-46FD-A011-AF073BC7C02D}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>SparkleLib</RootNamespace> - <AssemblyName>SparkleLib</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <TargetFrameworkProfile /> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>..\..\..\bin\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>..\..\..\bin\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data.DataSetExtensions" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Folder Include="Properties\" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\..\..\SparkleLib\Defines.cs"> - <Link>Defines.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleBackend.cs"> - <Link>SparkleBackend.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleConfig.cs"> - <Link>SparkleConfig.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleExtensions.cs"> - <Link>SparkleExtensions.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleFetcherBase.cs"> - <Link>SparkleFetcherBase.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleFetcherSSH.cs"> - <Link>SparkleFetcherSSH.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleListenerBase.cs"> - <Link>SparkleListenerBase.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleListenerFactory.cs"> - <Link>SparkleListenerFactory.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleListenerTcp.cs"> - <Link>SparkleListenerTcp.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleLogger.cs"> - <Link>SparkleLogger.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleRepoBase.cs"> - <Link>SparkleRepoBase.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleUser.cs"> - <Link>SparkleUser.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleWatcher.cs"> - <Link>SparkleWatcher.cs</Link> - </Compile> - <Compile Include="..\..\..\SparkleLib\SparkleWrappers.cs"> - <Link>SparkleWrappers.cs</Link> - </Compile> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project>
\ No newline at end of file diff --git a/SparkleShare/Windows/SparkleShare.Windows.csproj b/SparkleShare/Windows/SparkleShare.Windows.csproj new file mode 100644 index 0000000..a3c32c1 --- /dev/null +++ b/SparkleShare/Windows/SparkleShare.Windows.csproj @@ -0,0 +1,337 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.30703</ProductVersion> + <ProjectGuid>{728483AA-E34B-4441-BF2C-C8BC2901E4E0}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AssemblyName>SparkleShare.Windows</AssemblyName> + <SchemaVersion>2.0</SchemaVersion> + <RootNamespace>SparkleShare.Windows</RootNamespace> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>3.5</OldToolsVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <IsWebBootstrapper>false</IsWebBootstrapper> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> + <ApplicationIcon>Images\sparkleshare-app.ico</ApplicationIcon> + <ReleaseVersion> + </ReleaseVersion> + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\bin</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> + <PlatformTarget>x86</PlatformTarget> + <DefineConstants>TRACE</DefineConstants> + <DebugSymbols>true</DebugSymbols> + <Prefer32Bit>false</Prefer32Bit> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> + <OutputPath>..\..\bin\</OutputPath> + <DefineConstants>TRACE;DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <DebugType>full</DebugType> + <DebugSymbols>true</DebugSymbols> + <WarningLevel>4</WarningLevel> + <Optimize>false</Optimize> + <Prefer32Bit>false</Prefer32Bit> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Windows-Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>..\..\bin\</OutputPath> + <DefineConstants>TRACE;DEBUG</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>AnyCPU</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWindows|AnyCPU'"> + <DebugSymbols>true</DebugSymbols> + <OutputPath>..\..\bin\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMac|AnyCPU' "> + <OutputPath>..\..\bin\</OutputPath> + <DefineConstants>TRACE;DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <DebugType>full</DebugType> + <DebugSymbols>true</DebugSymbols> + <WarningLevel>4</WarningLevel> + <Optimize>false</Optimize> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWindows|AnyCPU'"> + <DebugSymbols>true</DebugSymbols> + <OutputPath>..\..\bin\</OutputPath> + <DefineConstants>TRACE;DEBUG</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>AnyCPU</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + <Prefer32Bit>true</Prefer32Bit> + </PropertyGroup> + <Import Project="..\Common\SparkleShare.projitems" Label="Shared" Condition="Exists('..\Common\SparkleShare.projitems')" /> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <ItemGroup> + <Reference Include="DeltaCompressionDotNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d14d6e5194e7f4a, processorArchitecture=MSIL"> + <HintPath>..\..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll</HintPath> + </Reference> + <Reference Include="DeltaCompressionDotNet.MsDelta, Version=1.0.0.0, Culture=neutral, PublicKeyToken=46b2138a390abf55, processorArchitecture=MSIL"> + <HintPath>..\..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.MsDelta.dll</HintPath> + </Reference> + <Reference Include="DeltaCompressionDotNet.PatchApi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e8888ee913ed789, processorArchitecture=MSIL"> + <HintPath>..\..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.PatchApi.dll</HintPath> + </Reference> + <Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\squirrel.windows.1.5.2\lib\Net45\ICSharpCode.SharpZipLib.dll</HintPath> + </Reference> + <Reference Include="Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.dll</HintPath> + </Reference> + <Reference Include="Mono.Cecil.Mdb, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Mdb.dll</HintPath> + </Reference> + <Reference Include="Mono.Cecil.Pdb, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Pdb.dll</HintPath> + </Reference> + <Reference Include="Mono.Cecil.Rocks, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Rocks.dll</HintPath> + </Reference> + <Reference Include="NuGet.Squirrel, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\squirrel.windows.1.5.2\lib\Net45\NuGet.Squirrel.dll</HintPath> + </Reference> + <Reference Include="Splat, Version=1.6.2.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath> + </Reference> + <Reference Include="Squirrel, Version=1.5.2.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\squirrel.windows.1.5.2\lib\Net45\Squirrel.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Configuration" /> + <Reference Include="System.Xml" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + <Reference Include="WindowsBase" /> + <Reference Include="WindowsFormsIntegration" /> + <Reference Include="System.Xaml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="UserInterface\About.cs" /> + <Compile Include="UserInterface\Bubbles.cs" /> + <Compile Include="UserInterface\EventLog.cs" /> + <Compile Include="UserInterface\Controller.cs" /> + <Compile Include="UserInterface\Note.xaml.cs"> + <DependentUpon>Note.xaml</DependentUpon> + </Compile> + <Compile Include="UserInterface\NotifyIcon.cs" /> + <Compile Include="UserInterface\ProtocolHandler.cs" /> + <Compile Include="UserInterface\Setup.cs" /> + <Compile Include="UserInterface\SetupWindow.cs" /> + <Compile Include="UserInterface\Shortcut.cs" /> + <Compile Include="UserInterface\Spinner.cs" /> + <Compile Include="UserInterface\StatusIcon.cs" /> + <Compile Include="UserInterface\UserInterface.cs" /> + <Compile Include="UserInterface\UserInterfaceHelpers.cs" /> + </ItemGroup> + <ProjectExtensions> + <VisualStudio /> + </ProjectExtensions> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 2.0 %28x86%29</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5</ProductName> + <Install>false</Install> + </BootstrapperPackage> + </ItemGroup> + <ItemGroup> + <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" /> + <Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="..\Common\Images\about.png"> + <Link>Images\about.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\Images\side-splash.png"> + <Link>Images\side-splash.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\HTML\day-entry.html"> + <Link>HTML\day-entry.html</Link> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\HTML\event-entry.html"> + <Link>HTML\event-entry.html</Link> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\HTML\event-log.html"> + <Link>HTML\event-log.html</Link> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\HTML\jquery.js"> + <Link>HTML\jquery.js</Link> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\Images\user-icon-default.png"> + <Link>Images\user-icon-default.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-added-12.png"> + <Link>Images\document-added-12.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-deleted-12.png"> + <Link>Images\document-deleted-12.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-edited-12.png"> + <Link>Images\document-edited-12.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Linux\Images\icons\hicolor\document-moved-12.png"> + <Link>Images\document-moved-12.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Linux\Images\icons\hicolor\process-working-22.png"> + <Link>Images\process-working-22.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\process-syncing-down.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\process-syncing-idle.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\process-syncing-up.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\process-syncing.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\Images\tutorial-slide-1.png"> + <Link>Images\tutorial-slide-1.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="..\Common\Images\tutorial-slide-2.png"> + <Link>Images\tutorial-slide-2.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <None Include="..\Common\Presets\github.png"> + <Link>Presets\github.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="..\Common\Presets\own-server.png"> + <Link>Presets\own-server.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="..\Common\Presets\bitbucket.png"> + <Link>Presets\bitbucket.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="..\Common\Presets\planio.png"> + <Link>Presets\planio.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="app.config" /> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <None Include="..\Common\Presets\bitbucket.xml"> + <Link>Presets\bitbucket.xml</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="..\Common\Presets\github.xml"> + <Link>Presets\github.xml</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="..\Common\Presets\own-server.xml"> + <Link>Presets\own-server.xml</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + <None Include="..\Common\Presets\planio.xml"> + <Link>Presets\planio.xml</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Images\folder.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\process-syncing-error.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\sparkleshare-app.ico"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + <EmbeddedResource Include="Images\sparkleshare-folder.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Images\tutorial-slide-3.png"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Resource Include="..\Common\Images\text-balloon.png"> + <Link>Images\text-balloon.png</Link> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Resource> + <Content Include="Images\sparkleshare-folder.ico"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> + </ItemGroup> + <ItemGroup> + <Page Include="UserInterface\Note.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Sparkles\Sparkles.csproj"> + <Project>{2C914413-B31C-4362-93C7-1AE34F09112A}</Project> + <Name>Sparkles</Name> + </ProjectReference> + <ProjectReference Include="..\..\Sparkles\Git\Sparkles.Git.csproj"> + <Project>{009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}</Project> + <Name>Sparkles.Git</Name> + </ProjectReference> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/SparkleShare/Windows/SparkleShare.csproj b/SparkleShare/Windows/SparkleShare.csproj deleted file mode 100644 index b437064..0000000 --- a/SparkleShare/Windows/SparkleShare.csproj +++ /dev/null @@ -1,294 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>9.0.30729</ProductVersion> - <ProjectGuid>{728483AA-E34B-4441-BF2C-C8BC2901E4E0}</ProjectGuid> - <OutputType>WinExe</OutputType> - <AssemblyName>SparkleShare</AssemblyName> - <SchemaVersion>2.0</SchemaVersion> - <RootNamespace>SparkleShare</RootNamespace> - <FileUpgradeFlags> - </FileUpgradeFlags> - <OldToolsVersion>3.5</OldToolsVersion> - <UpgradeBackupLocation> - </UpgradeBackupLocation> - <IsWebBootstrapper>false</IsWebBootstrapper> - <PublishUrl>publish\</PublishUrl> - <Install>true</Install> - <InstallFrom>Disk</InstallFrom> - <UpdateEnabled>false</UpdateEnabled> - <UpdateMode>Foreground</UpdateMode> - <UpdateInterval>7</UpdateInterval> - <UpdateIntervalUnits>Days</UpdateIntervalUnits> - <UpdatePeriodically>false</UpdatePeriodically> - <UpdateRequired>false</UpdateRequired> - <MapFileExtensions>true</MapFileExtensions> - <ApplicationRevision>0</ApplicationRevision> - <ApplicationVersion>1.0.0.%2a</ApplicationVersion> - <UseApplicationTrust>false</UseApplicationTrust> - <BootstrapperEnabled>true</BootstrapperEnabled> - <ApplicationIcon>Pixmaps\sparkleshare-app.ico</ApplicationIcon> - <ReleaseVersion> - </ReleaseVersion> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>..\..\bin</OutputPath> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> - <PlatformTarget>x86</PlatformTarget> - <DefineConstants>TRACE</DefineConstants> - <DebugSymbols>true</DebugSymbols> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> - <OutputPath>..\..\bin\</OutputPath> - <DefineConstants>TRACE;DEBUG</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <DebugType>full</DebugType> - <DebugSymbols>true</DebugSymbols> - </PropertyGroup> - <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Data" /> - <Reference Include="System.Drawing" /> - <Reference Include="System.Windows.Forms" /> - <Reference Include="System.Configuration" /> - <Reference Include="System.Xml" /> - <Reference Include="PresentationCore" /> - <Reference Include="PresentationFramework" /> - <Reference Include="WindowsBase" /> - <Reference Include="WindowsFormsIntegration" /> - <Reference Include="System.Xaml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\SparkleBubblesController.cs"> - <Link>SparkleBubblesController.cs</Link> - </Compile> - <Compile Include="..\SparkleControllerBase.cs"> - <Link>SparkleControllerBase.cs</Link> - </Compile> - <Compile Include="..\SparkleExtensions.cs"> - <Link>SparkleExtensions.cs</Link> - </Compile> - <Compile Include="..\SparkleInvite.cs"> - <Link>SparkleInvite.cs</Link> - </Compile> - <Compile Include="..\SparkleNoteController.cs"> - <Link>SparkleNoteController.cs</Link> - </Compile> - <Compile Include="..\SparklePlugin.cs"> - <Link>SparklePlugin.cs</Link> - </Compile> - <Compile Include="..\SparkleStatusIconController.cs"> - <Link>SparkleStatusIconController.cs</Link> - </Compile> - <Compile Include="..\SparkleSetupController.cs" /> - <Compile Include="SparkleEventLogWindow.xaml.cs"> - <DependentUpon>SparkleEventLogWindow.xaml</DependentUpon> - </Compile> - <Compile Include="SparkleNote.xaml.cs"> - <DependentUpon>SparkleNote.xaml</DependentUpon> - </Compile> - <Compile Include="SparkleShortcut.cs" /> - <Compile Include="SparkleUI.cs" /> - <Compile Include="..\SparkleAboutController.cs" /> - <Compile Include="..\SparkleAvatars.cs" /> - <Compile Include="SparkleBubbles.cs" /> - <Compile Include="SparkleAbout.cs" /> - <Compile Include="SparkleController.cs" /> - <Compile Include="SparkleSetup.cs" /> - <Compile Include="SparkleStatusIcon.cs" /> - <Compile Include="SparkleUIHelpers.cs" /> - <Compile Include="..\SparkleEventLogController.cs"> - <Link>SparkleEventLogController.cs</Link> - </Compile> - <Compile Include="..\SparkleKeys.cs"> - <Link>SparkleKeys.cs</Link> - </Compile> - <Compile Include="SparkleSetupWindow.cs" /> - <Compile Include="..\Program.cs"> - <Link>Program.cs</Link> - </Compile> - <Compile Include="SparkleNotifyIcon.cs" /> - <Compile Include="SparkleSpinner.cs" /> - </ItemGroup> - <ProjectExtensions> - <MonoDevelop> - <Properties> - <MonoDevelop.Autotools.MakefileInfo RelativeMakefileName="Makefile.am"> - <BuildFilesVar Sync="True" Name="SOURCES" /> - <DeployFilesVar /> - <ResourcesVar /> - <OthersVar /> - <GacRefVar /> - <AsmRefVar /> - <ProjectRefVar /> - </MonoDevelop.Autotools.MakefileInfo> - </Properties> - </MonoDevelop> - <VisualStudio /> - </ProjectExtensions> - <ItemGroup> - <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> - <Visible>False</Visible> - <ProductName>.NET Framework 2.0 %28x86%29</ProductName> - <Install>true</Install> - </BootstrapperPackage> - <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> - <Visible>False</Visible> - <ProductName>.NET Framework 3.0 %28x86%29</ProductName> - <Install>false</Install> - </BootstrapperPackage> - <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> - <Visible>False</Visible> - <ProductName>.NET Framework 3.5</ProductName> - <Install>false</Install> - </BootstrapperPackage> - </ItemGroup> - <ItemGroup> - <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" /> - <Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="..\Common\Pixmaps\about.png"> - <Link>Pixmaps\about.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\Pixmaps\side-splash.png"> - <Link>Pixmaps\side-splash.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\HTML\day-entry.html"> - <Link>HTML\day-entry.html</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\HTML\event-entry.html"> - <Link>HTML\event-entry.html</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\HTML\event-log.html"> - <Link>HTML\event-log.html</Link> - <SubType>Designer</SubType> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\HTML\jquery.js"> - <Link>HTML\jquery.js</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\Pixmaps\user-icon-default.png"> - <Link>Pixmaps\user-icon-default.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-added-12.png"> - <Link>Pixmaps\document-added-12.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-deleted-12.png"> - <Link>Pixmaps\document-deleted-12.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-edited-12.png"> - <Link>Pixmaps\document-edited-12.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Linux\Pixmaps\icons\document-moved-12.png"> - <Link>Pixmaps\document-moved-12.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Linux\Pixmaps\icons\process-working-22.png"> - <Link>Pixmaps\process-working-22.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="Pixmaps\process-syncing-down.png" /> - <EmbeddedResource Include="Pixmaps\process-syncing-idle.png" /> - <EmbeddedResource Include="Pixmaps\process-syncing-up.png" /> - <EmbeddedResource Include="Pixmaps\process-syncing.png" /> - <EmbeddedResource Include="..\Common\Pixmaps\tutorial-slide-1.png"> - <Link>Pixmaps\tutorial-slide-1.png</Link> - </EmbeddedResource> - <EmbeddedResource Include="..\Common\Pixmaps\tutorial-slide-2.png"> - <Link>Pixmaps\tutorial-slide-2.png</Link> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <None Include="..\Common\Plugins\github.png"> - <Link>Plugins\github.png</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\gitorious.png"> - <Link>Plugins\gitorious.png</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\own-server.png"> - <Link>Plugins\own-server.png</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\bitbucket.png"> - <Link>Plugins\bitbucket.png</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\ssnet.png"> - <Link>Plugins\ssnet.png</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\planio.png"> - <Link>Plugins\planio.png</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - </ItemGroup> - <ItemGroup> - <None Include="..\Common\Plugins\ssnet.xml"> - <Link>Plugins\ssnet.xml</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\bitbucket.xml"> - <Link>Plugins\bitbucket.xml</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\github.xml"> - <Link>Plugins\github.xml</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\gitorious.xml"> - <Link>Plugins\gitorious.xml</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\own-server.xml"> - <Link>Plugins\own-server.xml</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - <None Include="..\Common\Plugins\planio.xml"> - <Link>Plugins\planio.xml</Link> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </None> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Pixmaps\folder.png" /> - <EmbeddedResource Include="Pixmaps\process-syncing-error.png" /> - <EmbeddedResource Include="Pixmaps\sparkleshare-app.ico" /> - <EmbeddedResource Include="Pixmaps\sparkleshare-folder.png" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Pixmaps\tutorial-slide-3.png" /> - </ItemGroup> - <ItemGroup> - <Resource Include="..\Common\Pixmaps\text-balloon.png"> - <Link>Pixmaps\text-balloon.png</Link> - </Resource> - <Content Include="Pixmaps\sparkleshare-folder.ico" /> - </ItemGroup> - <ItemGroup> - <Page Include="SparkleEventLogWindow.xaml"> - <SubType>Designer</SubType> - <Generator>MSBuild:Compile</Generator> - </Page> - <Page Include="SparkleNote.xaml"> - <SubType>Designer</SubType> - <Generator>MSBuild:Compile</Generator> - </Page> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="SparkleLib\Git\SparkleLib.Git.csproj"> - <Project>{7f0db8d0-e278-4955-8204-fc391b99f7c1}</Project> - <Name>SparkleLib.Git</Name> - </ProjectReference> - <ProjectReference Include="SparkleLib\SparkleLib.csproj"> - <Project>{748f6316-37b4-46fd-a011-af073bc7c02d}</Project> - <Name>SparkleLib</Name> - </ProjectReference> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/SparkleShare/Windows/SparkleShare.sln b/SparkleShare/Windows/SparkleShare.sln deleted file mode 100644 index 03ee1fd..0000000 --- a/SparkleShare/Windows/SparkleShare.sln +++ /dev/null @@ -1,49 +0,0 @@ -
-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}
- 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", "{748F6316-37B4-46FD-A011-AF073BC7C02D}"
-EndProject
-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
- {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
- version =
- outputpath = bin
- name = SparkleShare
- EndGlobalSection
-EndGlobal
diff --git a/SparkleShare/Windows/SparkleShare.vssettings b/SparkleShare/Windows/SparkleShare.vssettings index 9651a51..240532e 100644 --- a/SparkleShare/Windows/SparkleShare.vssettings +++ b/SparkleShare/Windows/SparkleShare.vssettings @@ -91,7 +91,7 @@ <PropertyValue name="FilterURLs">True</PropertyValue> <PropertyValue name="GlobalErrorPattern">\[{"Error":[^n];"SharepointError";"HasException":true</PropertyValue> <PropertyValue name="ParameterizeSiteName">True</PropertyValue> - <PropertyValue name="RulesFileName">C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\WebTestPlugins\DefaultSharePointRules.xml</PropertyValue> + <PropertyValue name="RulesFileName">C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\WebTestPresets\DefaultSharePointRules.xml</PropertyValue> <PropertyValue name="URLPatterns">AAEAAAD/////AQAAAAAAAAAMAgAAAGxNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlF1YWxpdHlUb29scy5Wc2lwLCBWZXJzaW9uPTEyLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EEAQAAAMMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5Wc2lwLlVSTFBhdHRlcm4sIE1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uUXVhbGl0eVRvb2xzLlZzaXAsIFZlcnNpb249MTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYV1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAyTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5UZXN0VG9vbHMuVnNpcC5VUkxQYXR0ZXJuW10CAAAACAgJAwAAAAQAAAAEAAAABwMAAAAAAQAAAAQAAAAEME1pY3Jvc29mdC5WaXN1YWxTdHVkaW8uVGVzdFRvb2xzLlZzaXAuVVJMUGF0dGVybgIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAAwIAAAASVN5c3RlbSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFBAAAADBNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRlc3RUb29scy5Wc2lwLlVSTFBhdHRlcm4DAAAAD1Byb3BlcnR5Q2hhbmdlZAptX2NyaXRlcmlhCW1fcGF0dGVybgQBATFTeXN0ZW0uQ29tcG9uZW50TW9kZWwuUHJvcGVydHlDaGFuZ2VkRXZlbnRIYW5kbGVyCAAAAAIAAAAKBgkAAAAIRW5kc1dpdGgGCgAAAAlibGFuay5naWYBBQAAAAQAAAAKCQkAAAAGDAAAAAlibGFuay5odG0BBgAAAAQAAAAKCQkAAAAGDgAAAA9TY3JpcHRSZXN4LmFzaHgBBwAAAAQAAAAKCQkAAAAGEAAAAA5jb21tYW5kdWkuYXNoeAs=</PropertyValue> <PropertyValue name="UseRegexForGlobalErrorPattern">True</PropertyValue> </Category><Category name="Browser Link_BrowserLinkOptions" Category="{600fc5ef-ed38-3ecb-b7fa-e2fb3aa59ebb}" Package="{8c28e535-abc9-4f92-b5c9-6c16617c8884}" RegisteredName="Browser Link_BrowserLinkOptions" PackageName="EurekaPackage"><PropertyValue name="Enabled">True</PropertyValue></Category><Category name="CSS_Advanced" Category="{978df9f7-5f7c-46c1-afe6-3e4335e93514}" Package="{5330c67f-305c-4b17-a3dc-fbb7aee69c09}" RegisteredName="CSS_Advanced" PackageName="CssPackage"/><Category name="CoffeeScript_Advanced" Category="{9a5ed2f4-b737-4876-9b7f-7a94e634e74f}" Package="{52244c9d-db46-4905-bda0-b3406c46d2a4}" RegisteredName="CoffeeScript_Advanced" PackageName="CoffeeScriptPackage"/><Category name="Debugger" Category="{EEDBF29A-5C8B-4E01-827C-263382C18CFE}" Package="{C9DD4A57-47FB-11D2-83E7-00C04F9902C1}" RegisteredName="Debugger" PackageName="Visual Studio Debugger"><PropertyValue name="ConfirmDeleteAllBreakpoints">1</PropertyValue><PropertyValue name="StopAllProcesses">1</PropertyValue><PropertyValue name="StopOnExceptionCrossingManagedBoundary">0</PropertyValue><PropertyValue name="EnableAddressLevelDebugging">1</PropertyValue><PropertyValue name="ShowDisassemblyWhenNoSource">0</PropertyValue><PropertyValue name="EnableBreakpointConstraints">1</PropertyValue><PropertyValue name="UseExceptionHelper">1</PropertyValue><PropertyValue name="AutoUnwindOnException">1</PropertyValue><PropertyValue name="JustMyCode">1</PropertyValue><PropertyValue name="ShowNonPublicMembers">0</PropertyValue><PropertyValue name="WarnIfNoUserCodeOnLaunch">1</PropertyValue><PropertyValue name="FrameworkSourceStepping">0</PropertyValue><PropertyValue name="WarnAboutSymbolCacheDuringRemoteManagedDebugging">1</PropertyValue><PropertyValue name="EnableStepFiltering">1</PropertyValue><PropertyValue name="WarnOnStepFilter">1</PropertyValue><PropertyValue name="AllowImplicitFuncEval">1</PropertyValue><PropertyValue name="AllowToString">1</PropertyValue><PropertyValue name="UseSourceServer">0</PropertyValue><PropertyValue name="ShowSourceServerDiagnostics">0</PropertyValue><PropertyValue name="AlwaysColorMarkerText">0</PropertyValue><PropertyValue name="UseDocumentChecksum">1</PropertyValue><PropertyValue name="OutputToImmediate">0</PropertyValue><PropertyValue name="ShowRawStructures">0</PropertyValue><PropertyValue name="DisableJITOptimization">1</PropertyValue><PropertyValue name="ShowNoSymbolsDialog">1</PropertyValue><PropertyValue name="ShowScriptDebuggingDisabledDialog">1</PropertyValue><PropertyValue name="EnableILInterpreterMinidump">1</PropertyValue><PropertyValue name="EnableILInterpreterLive">0</PropertyValue><PropertyValue name="HexDisplay">0</PropertyValue><PropertyValue name="HexInput">0</PropertyValue><PropertyValue name="MapClientBreakpoints">1</PropertyValue><PropertyValue name="AddUnmappedBreakpointAtMappedLocation">0</PropertyValue><PropertyValue name="StepIntoOnRestart">0</PropertyValue><PropertyValue name="ENCEnable">1</PropertyValue><PropertyValue name="ENCApplyChangesOnContinue">1</PropertyValue><PropertyValue name="ENCWelcome">0</PropertyValue><PropertyValue name="ENCStaleCodeWarning">1</PropertyValue><PropertyValue name="ENCPrecompile">1</PropertyValue><PropertyValue name="ENCRelink">1</PropertyValue><PropertyValue name="NOENCAllowEdits">1</PropertyValue><PropertyValue name="NOENCIgnore">0</PropertyValue><PropertyValue name="NOENCRebuild">0</PropertyValue><PropertyValue name="ENCEnableWhenRemoteDebugging">0</PropertyValue><PropertyValue name="ConfirmFoundFiles">0</PropertyValue><PropertyValue name="DisasmLineNumbers">0</PropertyValue><PropertyValue name="ModulesShowAll">0</PropertyValue><PropertyValue name="UseCodeSense">1</PropertyValue><PropertyValue name="DisasmFields">67577</PropertyValue><PropertyValue name="CallStackViewOptions">3604736</PropertyValue><PropertyValue name="ShowExternalCode">0</PropertyValue><PropertyValue name="SourceStepUnit">0</PropertyValue><PropertyValue name="DisasmStepUnit">2</PropertyValue><PropertyValue name="CrossThreadCallStack">1</PropertyValue><PropertyValue name="ShowOnlyFlaggedThreads">0</PropertyValue><PropertyValue name="ConcurrencySupport">1</PropertyValue><PropertyValue name="GuessAtThreadNames">1</PropertyValue><PropertyValue name="ShowOtherThreadIpMarkers">0</PropertyValue><PropertyValue name="ShowThreadCategory">1</PropertyValue><PropertyValue name="SaveRemoteDumps">1</PropertyValue><PropertyValue name="LongEvalTimeout">10000</PropertyValue><PropertyValue name="NormalEvalTimeout">5000</PropertyValue><PropertyValue name="QuickwatchTimeout">15000</PropertyValue><PropertyValue name="DataTipTimeout">1500</PropertyValue><PropertyValue name="AutosReturnValsTimeout">1000</PropertyValue><PropertyValue name="AutosRegistersTimeout">1000</PropertyValue><PropertyValue name="LocalsTimeout">1000</PropertyValue><PropertyValue name="RegistersTimeout">2000</PropertyValue><PropertyValue name="AddressExpressionTimeout">2000</PropertyValue><PropertyValue name="ScriptDocsTimeout">5000</PropertyValue><PropertyValue name="ImmediateWindowTimeout">10000</PropertyValue><PropertyValue name="SetValueTimeout">10000</PropertyValue><PropertyValue name="TreeGridRePaintTimer">250</PropertyValue><PropertyValue name="TreeGridBusyPaintTimer">1000</PropertyValue><PropertyValue name="ModulesWindowUpdateTimer">500</PropertyValue><PropertyValue name="TreeGridDelayOnEnterTimer">125</PropertyValue><PropertyValue name="DelayTreeGridPaintOnBreak">1</PropertyValue><PropertyValue name="ShowNonprintableCharsAsGlyphs">0</PropertyValue><PropertyValue name="ShowSystemProcesses">0</PropertyValue><PropertyValue name="ShowProcessesFromAllSessions">0</PropertyValue><PropertyValue name="EnhancedDataTips">1</PropertyValue><PropertyValue name="DataTipDismissalSensitivity">1</PropertyValue><PropertyValue name="DataTipKeyboardDismissal">0</PropertyValue><PropertyValue name="UserSpecifiedEngines">0</PropertyValue><PropertyValue name="OutputOnException">1</PropertyValue><PropertyValue name="OutputOnStepFilter">1</PropertyValue><PropertyValue name="OutputOnModuleLoad">1</PropertyValue><PropertyValue name="OutputOnModuleUnload">1</PropertyValue><PropertyValue name="OutputOnModuleSymbolSearch">1</PropertyValue><PropertyValue name="OutputOnProcessDestroy">1</PropertyValue><PropertyValue name="OutputOnThreadDestroy">1</PropertyValue><PropertyValue name="OutputOnOutputDebugString">1</PropertyValue><PropertyValue name="OutputOnDebuggerMessage">1</PropertyValue><PropertyValue name="VariableWindowIcons">1</PropertyValue><PropertyValue name="DisableAttachSecurityWarning">0</PropertyValue><PropertyValue name="LoadDllExports">0</PropertyValue><PropertyValue name="NativeRPC">0</PropertyValue><PropertyValue name="AllowSideEffectEval">0</PropertyValue><PropertyValue name="LoadSymbolsWhenSettingsChanged">1</PropertyValue><PropertyValue name="SymbolUseExcludeList">1</PropertyValue><PropertyValue name="SymbolsAlwaysLoadAdjacent">1</PropertyValue><PropertyValue name="DontForceCacheOnManualLoad">0</PropertyValue><PropertyValue name="SymbolUseMSSymbolServers">0</PropertyValue><PropertyValue name="AutoLoadFromSymbolPath">1</PropertyValue><PropertyValue name="OneClickEdit">0</PropertyValue><PropertyValue name="OfferArrayExpansion">0</PropertyValue><PropertyValue name="VariableWindowPromptOnLargeExpansion">1</PropertyValue><PropertyValue name="VariableWindowMaxSupportedChildren">1000000</PropertyValue><PropertyValue name="PromptToAddSourceToIgnoreList">0</PropertyValue><PropertyValue name="OwnerDrawDebugLocationToolbar">0</PropertyValue><PropertyValue name="EnableSelectedBreakpointHighlight">1</PropertyValue><PropertyValue name="DisableUniscribe">0</PropertyValue><PropertyValue name="ShowParallelStacksBottomUp">1</PropertyValue><PropertyValue name="ThreadsWindowGroupingColumn">2048</PropertyValue><PropertyValue name="ThreadsWindowVisibleColumns">509</PropertyValue><PropertyValue name="ThreadsWindowShowTipWhenCallStackExpanded">0</PropertyValue><PropertyValue name="AllowDesignModePinning">0</PropertyValue><PropertyValue name="CallStackParamToString">0</PropertyValue><PropertyValue name="CheckRDTForFilesFirst">1</PropertyValue><PropertyValue name="AllowSourceServerInPartialTrust">0</PropertyValue><PropertyValue name="ENCEnableCrossUser">0</PropertyValue><PropertyValue name="ENCEnableNative">0</PropertyValue><PropertyValue name="OpenNewFilesProvisionally">1</PropertyValue><PropertyValue name="ForceRealFuncEval">1</PropertyValue><PropertyValue name="ShowOnlyCurrentProcess">0</PropertyValue><PropertyValue name="GpuRaceHazardsAllowSame">0</PropertyValue><PropertyValue name="DisasmToolbarIsExpanded">0</PropertyValue><PropertyValue name="AlwaysRunUntrustedSourceServerCommands">0</PropertyValue><PropertyValue name="DebugEngineCompatibilityMode">0</PropertyValue><PropertyValue name="CallStackViewOptionsEx">1</PropertyValue><PropertyValue name="ManagedDebugEngineCompatibilityMode_Normal">0</PropertyValue><PropertyValue name="ManagedDebugEngineCompatibilityMode_ProductInstalled">1</PropertyValue><PropertyValue name="ManagedMemoryViewCollapseSmallObjects">1</PropertyValue><PropertyValue name="SourceServerExtractToDirectory"/><PropertyValue name="FrameworkSourceServerName">http://referencesource.microsoft.com/symbols</PropertyValue><PropertyValue name="PublicSymbolServerName"/><PropertyValue name="PublicSymbolServerName2">http://msdl.microsoft.com/download/symbols</PropertyValue><PropertyValue name="DefaultTracepointMessage">Function: $FUNCTION, Thread: $TID $TNAME</PropertyValue><PropertyValue name="ProgramToDebugPath"/><PropertyValue name="AttachToProcessDefaultEngineList"/><PropertyValue name="SecureSourceLocalDirectory"/><PropertyValue name="SymbolPath"/><PropertyValue name="SymbolPathState"/><PropertyValue name="SymbolCacheDir"/><PropertyValue name="SymbolIncludeList"/><PropertyValue name="SymbolIncludeListState"/><PropertyValue name="SymbolExcludeList"/><PropertyValue name="SymbolExcludeListState"/></Category><Category name="Git Version Control_GitSccProvider" Category="{33a4cda9-b7a6-3f4f-9e1f-e4d71f0a9cfa}" Package="{7fe30a77-37f9-4cf2-83dd-96b207028e1b}" RegisteredName="Git Version Control_GitSccProvider" PackageName="SccProviderPackage"/><Category name="HTML Tag Specific" Category="{7583bb73-a453-40e8-8951-b6986ddb1d9b}" Package="{1B437D20-F8FE-11D2-A6AE-00104BCC7269}" RegisteredName="HTML Tag Specific" PackageName="Visual Studio HTM Editor Package"/><Category name="HTMLX_Advanced" Category="{3d9c2439-5c0a-4592-b9e8-42e26dfe636b}" Package="{cf49ec7d-92b1-4bbd-9254-9cc13978e82e}" RegisteredName="HTMLX_Advanced" PackageName="HtmlPackage"/><Category name="LESS_Advanced" Category="{1b200b66-f69e-452e-9c6f-d38f9cb0628b}" Package="{f4b61ec8-36d8-4155-b2a0-199587d8ddcc}" RegisteredName="LESS_Advanced" PackageName="LessPackage"/><Category name="Performance" Category="{7A697B67-8D8F-43c2-A11C-57568FE3F513}" Package="{f4a63b2a-49ab-4b2d-aa59-a10f01026c89}" RegisteredName="Performance" PackageName="PerformancePackage"><PropertyValue name="toolsoptions.numfunc">5</PropertyValue><PropertyValue name="toolsoptions.showtimetick">0</PropertyValue><PropertyValue name="toolsoptions.numbuffer">64</PropertyValue><PropertyValue name="toolsoptions.sizebuffer">64</PropertyValue><PropertyValue name="toolsoptions.serialize">1</PropertyValue><PropertyValue name="performancereport.showquery">0</PropertyValue><PropertyValue name="toolsoptions.formatcounters">1</PropertyValue><PropertyValue name="toolsoptions.exportpath"/><PropertyValue name="toolsoptions.exportformat">csv</PropertyValue><PropertyValue name="performancereport.hotpathcandidateratio">3.0</PropertyValue><PropertyValue name="performancereport.shownoisereductionwarning">1</PropertyValue><PropertyValue name="performancereport.noisereductiontrim">0</PropertyValue><PropertyValue name="performancereport.noisereductionfold">0</PropertyValue><PropertyValue name="performancereport.noisereductiontrimthreshold">2.0</PropertyValue><PropertyValue name="performancereport.noisereductionfoldthreshold">3.0</PropertyValue><PropertyValue name="tools.options.justmycode">1</PropertyValue><PropertyValue name="tools.options.justmycode.callee">1</PropertyValue><PropertyValue name="tools.options.justmycode.caller">0</PropertyValue><PropertyValue name="tools.options.kernelmodeanalysis">0</PropertyValue><PropertyValue name="tools.options.rules.actions"/></Category><Category name="Source Control_TeamFoundation" Category="{2A718788-A6D9-44C5-90EF-438BF5B06A74}" Package="{4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}" RegisteredName="Source Control_TeamFoundation" PackageName="Microsoft.VisualStudio.TeamFoundation.VersionControl.HatPackage, Microsoft.VisualStudio.TeamFoundation.VersionControl, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"><PropertyValue name="IsProxyEnabled">False</PropertyValue><PropertyValue name="ProxyUrl"/><PropertyValue name="GetLatestOnCheckOut">false</PropertyValue><PropertyValue name="AttemptToAutoResolveConflicts">true</PropertyValue><PropertyValue name="ShowDeletedItems">false</PropertyValue><PropertyValue name="OpenSceToMostRecentPath">false</PropertyValue><PropertyValue name="PromptToConfirmMergeResult">-1</PropertyValue></Category><Category name="Test Tools_Test Execution" Category="{48d11193-265d-1458-743e-2b88c655b377}" Package="{a9405ae6-9ac6-4f0e-a03f-7afe45f6fcb7}" RegisteredName="Test Tools_Test Execution" PackageName="Microsoft.VisualStudio.TestTools.TestCaseManagement.QualityToolsPackage, Microsoft.VisualStudio.QualityTools.TestCaseManagement, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"><PropertyValue name="IsCodeColoringEnabled">True</PropertyValue><PropertyValue name="IsInPlaceInstrumentationEnabled">True</PropertyValue><PropertyValue name="KeepHostProcessAlive">True</PropertyValue><PropertyValue name="MaxTestRunsPerSolution">25</PropertyValue><PropertyValue name="PathToWebRoot"/><PropertyValue name="UnitTestResultNavigatePointOfFailure">True</PropertyValue></Category><Category name="WebProjects" Category="{C78AFEEB-A722-4cf3-AD3F-8694126C2145}" Package="{39c9c826-8ef8-4079-8c95-428f5b1c323f}" RegisteredName="WebProjects" PackageName="Visual Web Developer Project System Package"><PropertyValue name="WarnBeforeRunIfErrors">false</PropertyValue><PropertyValue name="Use64BitIISExpress">false</PropertyValue></Category><Category name="WindowsFormsDesigner_General" Category="{de03177c-918d-40af-8c17-c9d63670c175}" Package="{7b5d447b-0b12-41ea-a84e-c822034422d4}" RegisteredName="WindowsFormsDesigner_General" PackageName="Windows Forms Designer Resources Package"><PropertyValue name="AutoToolboxPopulate">True</PropertyValue><PropertyValue name="EnableInSituEditing">True</PropertyValue><PropertyValue name="EnableRefactoringOnRename">True</PropertyValue><PropertyValue name="GridSize">8, 8</PropertyValue><PropertyValue name="LayoutMode">SnapLines</PropertyValue><PropertyValue name="ObjectBoundSmartTagAutoShow">True</PropertyValue><PropertyValue name="ShowGrid">True</PropertyValue><PropertyValue name="SnapToGrid">True</PropertyValue><PropertyValue name="UseOptimizedCodeGeneration">True</PropertyValue></Category><Category name="XAML_Formatting" Category="{dac05320-0c3a-4ead-a332-8c23b0cfc130}" Package="{512be089-83ec-4cc6-8483-cf16565ae209}" RegisteredName="XAML_Formatting" PackageName="DesignerPackage"><PropertyValue name="AttributeFormat">Preserve</PropertyValue><PropertyValue name="AutoInsertAttributeQuotes">True</PropertyValue><PropertyValue name="AutoInsertCommas">True</PropertyValue><PropertyValue name="AutoInsertEndBraces">True</PropertyValue><PropertyValue name="AutoInsertEndTags">True</PropertyValue><PropertyValue name="AutoNameElements">False</PropertyValue><PropertyValue name="AutoOutlining">True</PropertyValue><PropertyValue name="AutoReformatOnEndTag">True</PropertyValue><PropertyValue name="AutoReformatOnPaste">True</PropertyValue><PropertyValue name="AutoReformatOnStartTag">True</PropertyValue><PropertyValue name="AutoToolboxPopulate">True</PropertyValue><PropertyValue name="BlankLineOption">Preserve</PropertyValue><PropertyValue name="KeepFirstAttributeOnSameLine">True</PropertyValue><PropertyValue name="MaximizeXamlEditor">False</PropertyValue><PropertyValue name="QuoteStyle">DoubleQuote</PropertyValue><PropertyValue name="WrapColumn">120</PropertyValue><PropertyValue name="WrapTags">False</PropertyValue></Category><Category name="XmlEditor" Category="{4E1CDE49-B840-4826-8CC6-8FB80D7EF455}" Package="{87569308-4813-40a0-9cd0-d7a30838ca3f}" RegisteredName="XmlEditor" PackageName="Visual Studio XML Editor Package"><PropertyValue name="AttributeFormatting">None</PropertyValue><PropertyValue name="AutoDownload">False</PropertyValue><PropertyValue name="AutoInsertAttributeQuotes">True</PropertyValue><PropertyValue name="AutoInsertEndTags">True</PropertyValue><PropertyValue name="AutoInsertNamespaceDeclarations">True</PropertyValue><PropertyValue name="AutoInsertOther">True</PropertyValue><PropertyValue name="AutoOutlining">True</PropertyValue><PropertyValue name="AutoReformatOnEndTag">True</PropertyValue><PropertyValue name="AutoReformatOnPaste">True</PropertyValue><PropertyValue name="FormatMixedContentByDefault">True</PropertyValue><PropertyValue name="SchemaCacheLocation">%VsInstallDir%\xml\Schemas</PropertyValue></Category></UserSettings>
\ No newline at end of file diff --git a/SparkleShare/Windows/SparkleShare.wxs b/SparkleShare/Windows/SparkleShare.wxs index 99bf5fa..6ca687b 100644 --- a/SparkleShare/Windows/SparkleShare.wxs +++ b/SparkleShare/Windows/SparkleShare.wxs @@ -2,7 +2,7 @@ <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Product Name='SparkleShare' Id='184950D5-67F6-4D06-9717-7E2F1607A7B0' UpgradeCode='D3DF1D99-87F5-47A7-A349-863DD6E4B73A' - Language='1033' Codepage='1252' Version='1.5.0' Manufacturer='SparkleShare'> + Language='1033' Codepage='1252' Version='2.0.1' Manufacturer='SparkleShare'> <Package Id='*' Keywords='Installer' Description="SparkleShare Setup" Manufacturer='SparkleShare' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> @@ -20,9 +20,9 @@ <File Id='SparkleShareInviteOpener.exe' Name='SparkleShareInviteOpener.exe' Source='!(wix.root)\bin\SparkleShareInviteOpener.exe' DiskId='1' /> </Component> <Component Id='Libraries' Guid='0DA692D5-4DBE-4251-9F62-E7C1A76F10E1'> - <File Id='SparkleLib.Git.dll' Name='SparkleLib.Git.dll' Source='!(wix.root)\bin\SparkleLib.Git.dll' DiskId='1' /> - <File Id='SparkleLib.dll' Name='SparkleLib.dll' Source='!(wix.root)\bin\SparkleLib.dll' DiskId='1' /> - <File Id='sparkleshare_app.ico' Name='sparkleshare.ico' Source='!(wix.root)\SparkleShare\Windows\Pixmaps\sparkleshare-app.ico' DiskId='1' /> + <File Id='Sparkles.Git.dll' Name='Sparkles.Git.dll' Source='!(wix.root)\bin\Sparkles.Git.dll' DiskId='1' /> + <File Id='Sparkles.dll' Name='Sparkles.dll' Source='!(wix.root)\bin\Sparkles.dll' DiskId='1' /> + <File Id='sparkleshare_app.ico' Name='sparkleshare.ico' Source='!(wix.root)\SparkleShare\Windows\Images\sparkleshare-app.ico' DiskId='1' /> </Component> <Directory Id='MSYSGIT_DIR' Name='msysgit'> </Directory> diff --git a/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj b/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj index 379d780..bbccc79 100644 --- a/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj +++ b/SparkleShare/Windows/SparkleShareInviteOpener/SparkleShareInviteOpener.csproj @@ -11,7 +11,7 @@ <RootNamespace>SparkleShareInviteOpener</RootNamespace> <AssemblyName>SparkleShareInviteOpener</AssemblyName> <FileAlignment>512</FileAlignment> - <ApplicationIcon>..\Pixmaps\sparkleshare-app.ico</ApplicationIcon> + <ApplicationIcon>..\Images\sparkleshare-app.ico</ApplicationIcon> <ReleaseVersion /> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> @@ -29,6 +29,24 @@ <DebugType>full</DebugType> <DebugSymbols>true</DebugSymbols> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugWindows|AnyCPU'"> + <DebugSymbols>true</DebugSymbols> + <OutputPath>..\..\..\bin\</OutputPath> + <DefineConstants>TRACE;DEBUG</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>AnyCPU</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ReleaseWindows|AnyCPU'"> + <OutputPath>..\..\..\bin\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>AnyCPU</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> <ItemGroup> <Reference Include="System" /> </ItemGroup> diff --git a/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs b/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs index 98d9128..9f79ab8 100644 --- a/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs +++ b/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/SparkleShare/Windows/SparkleAbout.cs b/SparkleShare/Windows/UserInterface/About.cs index 1e19fc9..85f6cf0 100644 --- a/SparkleShare/Windows/SparkleAbout.cs +++ b/SparkleShare/Windows/UserInterface/About.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) +// Copyright (C) 2010 Hylke Bons (hi@planetpeanut.uk) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -17,30 +17,27 @@ using System; using System.ComponentModel; -using System.Diagnostics; using System.Windows; using System.Windows.Input; using System.Windows.Controls; using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Xaml; namespace SparkleShare { - public class SparkleAbout : Window { + public class About : Window { - public SparkleAboutController Controller = new SparkleAboutController (); + public AboutController Controller = new AboutController (); private Label updates; - public SparkleAbout () + public About () { Title = "About SparkleShare"; ResizeMode = ResizeMode.NoResize; Height = 288; Width = 720; - Icon = SparkleUIHelpers.GetImageSource("sparkleshare-app", "ico"); + Icon = UserInterfaceHelpers.GetImageSource("sparkleshare-app", "ico"); WindowStartupLocation = WindowStartupLocation.CenterScreen; Closing += Close; @@ -77,7 +74,7 @@ namespace SparkleShare { Height = 260 }; - image.Source = SparkleUIHelpers.GetImageSource ("about"); + image.Source = UserInterfaceHelpers.GetImageSource ("about"); Label version = new Label () { @@ -179,7 +176,7 @@ namespace SparkleShare { Content = text_block; MouseUp += delegate { - Program.Controller.OpenWebsite (url); + SparkleShare.Controller.OpenWebsite (url); }; } } diff --git a/SparkleShare/Windows/SparkleBubbles.cs b/SparkleShare/Windows/UserInterface/Bubbles.cs index cbae16d..79e672c 100644 --- a/SparkleShare/Windows/SparkleBubbles.cs +++ b/SparkleShare/Windows/UserInterface/Bubbles.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,22 +15,20 @@ // along with this program. If not, see <http://www.gnu.org/licenses/>. -using System; - namespace SparkleShare { - public class SparkleBubbles { + public class Bubbles { - public SparkleBubblesController Controller = new SparkleBubblesController (); + public BubblesController Controller = new BubblesController (); - public SparkleBubbles () + public Bubbles () { Controller.ShowBubbleEvent += delegate (string title, string subtext, string image_path) { - if (!Program.Controller.NotificationsEnabled) + if (!SparkleShare.Controller.NotificationsEnabled) return; - Program.UI.StatusIcon.ShowBalloon (title, subtext, image_path); + SparkleShare.UI.StatusIcon.ShowBalloon (title, subtext, image_path); }; } } diff --git a/SparkleShare/Windows/UserInterface/Controller.cs b/SparkleShare/Windows/UserInterface/Controller.cs new file mode 100644 index 0000000..7ba2f3b --- /dev/null +++ b/SparkleShare/Windows/UserInterface/Controller.cs @@ -0,0 +1,199 @@ +// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + + +using System; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; + +using System.Windows; +using Forms = System.Windows.Forms; + +using Sparkles; +using Sparkles.Git; + +namespace SparkleShare { + + public class Controller : BaseController { + + public Controller (Configuration config) + : base (config) + { + } + + + public override string PresetsPath + { + get { + return Path.Combine (Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location), "Presets"); + } + } + + + public override void Initialize () + { + // Add msysgit to path, as we cannot asume it is added to the path + // Asume it is installed in @"<exec dir>\msysgit\bin" + string executable_path = Path.GetDirectoryName (Forms.Application.ExecutablePath); + string msysgit_path = Path.Combine (executable_path, "msysgit"); + + Environment.SetEnvironmentVariable ("HOME", Environment.GetFolderPath (Environment.SpecialFolder.UserProfile)); + + SSHCommand.SSHPath = Path.Combine (msysgit_path, "usr", "bin"); + SSHFetcher.SSHKeyScan = Path.Combine (msysgit_path, "usr", "bin", "ssh-keyscan.exe"); + GitCommand.GitPath = Path.Combine (msysgit_path, "bin", "git.exe"); + + base.Initialize (); + } + + + public override string EventLogHTML { + get { + string html = UserInterfaceHelpers.GetHTML ("event-log.html"); + return html.Replace ("<!-- $jquery -->", UserInterfaceHelpers.GetHTML ("jquery.js")); + } + } + + + public override string DayEntryHTML { + get { + return UserInterfaceHelpers.GetHTML ("day-entry.html"); + } + } + + + public override string EventEntryHTML { + get { + return UserInterfaceHelpers.GetHTML ("event-entry.html"); + } + } + + + public override void SetFolderIcon () + { + string app_path = Path.GetDirectoryName (Forms.Application.ExecutablePath); + string icon_file_path = Path.Combine (app_path, "Images", "sparkleshare-folder.ico"); + + if (!File.Exists (icon_file_path)) + { + string ini_file_path = Path.Combine (FoldersPath, "desktop.ini"); + string n = Environment.NewLine; + + string ini_file = "[.ShellClassInfo]" + n + + "IconFile=" + icon_file_path + n + + "IconIndex=0" + n + + "InfoTip=SparkleShare"; + + try + { + File.Create (ini_file_path).Close (); + File.WriteAllText (ini_file_path, ini_file); + + File.SetAttributes (ini_file_path, + File.GetAttributes (ini_file_path) | FileAttributes.Hidden | FileAttributes.System); + + } + catch (IOException e) + { + Logger.LogInfo ("Config", "Failed setting icon for '" + FoldersPath + "': " + e.Message); + } + } + } + + + public override void CreateStartupItem () + { + string startup_folder_path = Environment.GetFolderPath (Environment.SpecialFolder.Startup); + string shortcut_path = Path.Combine (startup_folder_path, "SparkleShare.lnk"); + + if (File.Exists (shortcut_path)) + File.Delete (shortcut_path); + + string shortcut_target = Forms.Application.ExecutablePath; + + Shortcut shortcut = new Shortcut (); + shortcut.Create (shortcut_path, shortcut_target); + } + + + public override void InstallProtocolHandler () + { + // We ship a separate .exe for this + } + + + public void AddToBookmarks () + { + string user_profile_path = Environment.GetFolderPath (Environment.SpecialFolder.UserProfile); + string shortcut_path = Path.Combine (user_profile_path, "Links", "SparkleShare.lnk"); + + if (File.Exists (shortcut_path)) + File.Delete (shortcut_path); + + Shortcut shortcut = new Shortcut (); + shortcut.Create (FoldersPath, shortcut_path); + } + + + public override void CreateSparkleShareFolder () + { + if (!Directory.Exists (FoldersPath)) + { + Directory.CreateDirectory (FoldersPath); + + File.SetAttributes (FoldersPath, File.GetAttributes(FoldersPath) | FileAttributes.System); + Logger.LogInfo ("Config", "Created '" + FoldersPath + "'"); + } + } + + + public override void OpenFile (string path) + { + Process.Start (path); + } + + + public override void OpenFolder (string path) + { + Process.Start (path); + } + + + public override void OpenWebsite (string url) + { + Process.Start (new ProcessStartInfo (url)); + } + + + public override void CopyToClipboard (string text) + { + try { + Clipboard.SetData (DataFormats.Text, text); + + } catch (COMException e) { + Logger.LogInfo ("Controller", "Copy to clipboard failed", e); + } + } + + + public override void Quit () + { + base.Quit (); + } + } +} diff --git a/SparkleShare/Windows/UserInterface/EventLog.cs b/SparkleShare/Windows/UserInterface/EventLog.cs new file mode 100644 index 0000000..735648b --- /dev/null +++ b/SparkleShare/Windows/UserInterface/EventLog.cs @@ -0,0 +1,347 @@ +// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + + +using System; +using System.ComponentModel; +using System.IO; +using System.Security.Permissions; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +using Microsoft.Win32; +using System.Windows.Data; + +namespace SparkleShare +{ + public class EventLog : Window { + + public EventLogController Controller = new EventLogController (); + + private Label label_Size; + private Label label_History; + + private WebBrowser webbrowser; + + private Spinner spinner; + + private ComboBox combobox; + + private Grid grid_Base; + + [DllImport("urlmon.dll")] + [PreserveSig] + [return: MarshalAs(UnmanagedType.Error)] + static extern int CoInternetSetFeatureEnabled(int feature, [MarshalAs(UnmanagedType.U4)] int flags, bool enable); + + public EventLog() + { + CreateEventLog(); + + Background = new SolidColorBrush(Color.FromRgb(240, 240, 240)); + AllowsTransparency = false; + Icon = UserInterfaceHelpers.GetImageSource("sparkleshare-app", "ico"); + WindowStartupLocation = WindowStartupLocation.CenterScreen; + + WriteOutImages(); + + this.label_Size.Content = "Size: " + Controller.Size; + this.label_History.Content = "History: " + Controller.HistorySize; + + this.webbrowser.ObjectForScripting = new SparkleScriptingObject(); + + // Disable annoying IE clicking sound + CoInternetSetFeatureEnabled(21, 0x00000002, true); + + Closing += this.OnClosing; + + Controller.ShowWindowEvent += delegate { + Dispatcher.BeginInvoke((Action)(() => { + Show(); + Activate(); + BringIntoView(); + })); + }; + + Controller.HideWindowEvent += delegate { + Dispatcher.BeginInvoke((Action)(() => { + Hide(); + this.spinner.Visibility = Visibility.Visible; + this.webbrowser.Visibility = Visibility.Collapsed; + })); + }; + + Controller.UpdateSizeInfoEvent += delegate (string size, string history_size) { + Dispatcher.BeginInvoke((Action)(() => { + this.label_Size.Content = "Size: " + size; + this.label_History.Content = "History: " + history_size; + })); + }; + + Controller.UpdateChooserEvent += delegate (string[] folders) { + Dispatcher.BeginInvoke((Action)(() => + UpdateChooser(folders)) + ); + }; + + Controller.UpdateChooserEnablementEvent += delegate (bool enabled) { + Dispatcher.BeginInvoke((Action)(() => + this.combobox.IsEnabled = enabled + )); + }; + + Controller.UpdateContentEvent += delegate (string html) { + Dispatcher.BeginInvoke((Action)(() => { + UpdateContent(html); + + this.spinner.Visibility = Visibility.Collapsed; + this.webbrowser.Visibility = Visibility.Visible; + })); + }; + + Controller.ContentLoadingEvent += () => this.Dispatcher.BeginInvoke( + (Action)(() => { + this.spinner.Visibility = Visibility.Visible; + this.spinner.Start(); + this.webbrowser.Visibility = Visibility.Collapsed; + })); + + Controller.ShowSaveDialogEvent += delegate (string file_name, string target_folder_path) { + Dispatcher.BeginInvoke((Action)(() => { + SaveFileDialog dialog = new SaveFileDialog() + { + FileName = file_name, + InitialDirectory = target_folder_path, + Title = "Restore from History", + DefaultExt = "." + System.IO.Path.GetExtension(file_name), + Filter = "All Files|*.*" + }; + + bool? result = dialog.ShowDialog(this); + + if (result == true) + Controller.SaveDialogCompleted(dialog.FileName); + else + Controller.SaveDialogCancelled(); + })); + }; + } + + + private void CreateEventLog () { + grid_Base = new Grid { Background = Brushes.White }; + + label_Size = new Label { + Content = "Size: ?", + Height = 28, + HorizontalAlignment = HorizontalAlignment.Left, + Margin = new Thickness(20, 0, 0, 0), + FontWeight = FontWeights.Bold + }; + + label_History = new Label { + Content = "History: ?", + Height = 28, + HorizontalAlignment = HorizontalAlignment.Left, + Margin = new Thickness(100, 0, 0, 0), + FontWeight = FontWeights.Bold + }; + + combobox = new ComboBox { + HorizontalAlignment = HorizontalAlignment.Right, + VerticalAlignment = VerticalAlignment.Center, + Margin = new Thickness(0, 0, 6, 0), + MinWidth = 120 + }; + + spinner = new Spinner { Name = "spinner" }; + webbrowser = new WebBrowser { Name = "webbrowser" }; + + Border border = new Border { + VerticalAlignment = VerticalAlignment.Top, + Height = 35, + Background = new SolidColorBrush(Color.FromArgb(255, 240, 240, 240)), + BorderBrush = new SolidColorBrush(Color.FromArgb(255, 223, 223, 223)), + BorderThickness = new Thickness(0, 0, 0, 1) + }; + + Grid borderGrid = new Grid(); + + borderGrid.Children.Add(this.label_Size); + borderGrid.Children.Add(this.label_History); + borderGrid.Children.Add(this.combobox); + + border.Child = borderGrid; + + Grid browserGrid = new Grid { Margin = new Thickness(0, 35, 0, 0) }; + + browserGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); + browserGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); + + browserGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); + browserGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); + + browserGrid.Children.Add(this.spinner); + browserGrid.Children.Add(this.webbrowser); + + Rectangle sizingControlHeight = new Rectangle { + Name = "sizingControlHeight", + Visibility = Visibility.Hidden + }; + + Grid.SetColumn(sizingControlHeight, 1); + + Rectangle sizingControlWidth = new Rectangle { + Name = "sizingControlHeight", + Visibility = Visibility.Hidden + }; + + Grid.SetColumn(sizingControlWidth, 0); + Grid.SetRow(sizingControlWidth, 0); + + browserGrid.Children.Add(sizingControlHeight); + browserGrid.Children.Add(sizingControlWidth); + + webbrowser.SetBinding(HeightProperty, new Binding("ActualHeightProperty") { ElementName = sizingControlHeight.Name }); + webbrowser.SetBinding(WidthProperty, new Binding("ActualWidthProperty") { ElementName = sizingControlWidth.Name }); + + grid_Base.Children.Add(border); + } + + private void OnClosing(object sender, CancelEventArgs cancel_event_args) + { + Controller.WindowClosed(); + cancel_event_args.Cancel = true; + } + + + private void UpdateContent(string html) + { + string pixmaps_path = System.IO.Path.Combine(Sparkles.Configuration.DefaultConfiguration.TmpPath, "Images"); + pixmaps_path = pixmaps_path.Replace("\\", "/"); + + html = html.Replace("<a href=", "<a class='windows' href="); + html = html.Replace("<!-- $body-font-family -->", "Segoe UI"); + html = html.Replace("<!-- $day-entry-header-font-size -->", "13px"); + html = html.Replace("<!-- $body-font-size -->", "12px"); + html = html.Replace("<!-- $secondary-font-color -->", "#bbb"); + html = html.Replace("<!-- $small-color -->", "#ddd"); + html = html.Replace("<!-- $small-font-size -->", "90%"); + html = html.Replace("<!-- $day-entry-header-background-color -->", "#f5f5f5"); + html = html.Replace("<!-- $a-color -->", "#0085cf"); + html = html.Replace("<!-- $a-hover-color -->", "#009ff8"); + html = html.Replace("<!-- $pixmaps-path -->", pixmaps_path); + html = html.Replace("<!-- $document-added-background-image -->", pixmaps_path + "/document-added-12.png"); + html = html.Replace("<!-- $document-edited-background-image -->", pixmaps_path + "/document-edited-12.png"); + html = html.Replace("<!-- $document-deleted-background-image -->", pixmaps_path + "/document-deleted-12.png"); + html = html.Replace("<!-- $document-moved-background-image -->", pixmaps_path + "/document-moved-12.png"); + + this.spinner.Stop(); + + this.webbrowser.ObjectForScripting = new SparkleScriptingObject(); + this.webbrowser.NavigateToString(html); + } + + + public void UpdateChooser(string[] folders) + { + if (folders == null) + { + folders = Controller.Folders; + } + + this.combobox.Items.Clear(); + this.combobox.Items.Add(new ComboBoxItem() { Content = "Summary" }); + this.combobox.Items.Add(new Separator()); + this.combobox.SelectedItem = combobox.Items[0]; + + int row = 2; + foreach (string folder in folders) + { + this.combobox.Items.Add(new ComboBoxItem() { Content = folder }); + + if (folder.Equals(Controller.SelectedFolder)) + this.combobox.SelectedItem = this.combobox.Items[row]; + + row++; + } + + this.combobox.SelectionChanged += delegate { + Dispatcher.BeginInvoke((Action)delegate { + int index = this.combobox.SelectedIndex; + + if (index == 0) + Controller.SelectedFolder = null; + else + Controller.SelectedFolder = (string)((ComboBoxItem)this.combobox.Items[index]).Content; + }); + }; + } + + + private void WriteOutImages() + { + string tmp_path = Sparkles.Configuration.DefaultConfiguration.TmpPath; + string pixmaps_path = System.IO.Path.Combine(tmp_path, "Images"); + + if (!Directory.Exists(pixmaps_path)) + { + Directory.CreateDirectory(pixmaps_path); + + File.SetAttributes(tmp_path, File.GetAttributes(tmp_path) | FileAttributes.Hidden); + } + + BitmapSource image = UserInterfaceHelpers.GetImageSource("user-icon-default"); + string file_path = System.IO.Path.Combine(pixmaps_path, "user-icon-default.png"); + + using (FileStream stream = new FileStream(file_path, FileMode.Create)) + { + BitmapEncoder encoder = new PngBitmapEncoder(); + encoder.Frames.Add(BitmapFrame.Create(image)); + encoder.Save(stream); + } + + string[] actions = new string[] { "added", "deleted", "edited", "moved" }; + + foreach (string action in actions) + { + image = UserInterfaceHelpers.GetImageSource("document-" + action + "-12"); + file_path = System.IO.Path.Combine(pixmaps_path, "document-" + action + "-12.png"); + + using (FileStream stream = new FileStream(file_path, FileMode.Create)) + { + BitmapEncoder encoder = new PngBitmapEncoder(); + encoder.Frames.Add(BitmapFrame.Create(image)); + encoder.Save(stream); + } + } + } + } + + [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] + [ComVisible(true)] + public class SparkleScriptingObject + { + public void LinkClicked(string url) + { + SparkleShare.UI.EventLog.Controller.LinkClicked(url); + } + } +} diff --git a/SparkleShare/Windows/SparkleNote.xaml b/SparkleShare/Windows/UserInterface/Note.xaml index 22f2b24..2d39a24 100644 --- a/SparkleShare/Windows/SparkleNote.xaml +++ b/SparkleShare/Windows/UserInterface/Note.xaml @@ -1,4 +1,4 @@ -<Window x:Class="SparkleShare.SparkleNote" +<Window x:Class="SparkleShare.Note" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" @@ -26,7 +26,7 @@ </StackPanel> <TextBox x:Name="balloon_text_field" Grid.Row="1" Grid.ColumnSpan="2" Width="438" Height="72" BorderBrush="{x:Null}" BorderThickness="0" Padding="8,12,8,8" TextWrapping="Wrap" AcceptsReturn="True" Text="Anything to add?" > <TextBox.Background> - <ImageBrush ImageSource="pack://application:,,,/SparkleShare;component/Pixmaps/text-balloon.png" Stretch="Uniform"></ImageBrush> + <ImageBrush ImageSource="pack://application:,,,/SparkleShare.Windows;component/Images/text-balloon.png" Stretch="Uniform"></ImageBrush> </TextBox.Background> </TextBox> <StackPanel Grid.Column="1" Grid.Row="2" VerticalAlignment="Bottom" HorizontalAlignment="Right" Orientation="Horizontal"> diff --git a/SparkleShare/Windows/SparkleNote.xaml.cs b/SparkleShare/Windows/UserInterface/Note.xaml.cs index a0ba4cc..3616dd7 100644 --- a/SparkleShare/Windows/SparkleNote.xaml.cs +++ b/SparkleShare/Windows/UserInterface/Note.xaml.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -22,23 +22,23 @@ using System.Windows; using System.Windows.Forms.Integration; using System.Windows.Media; -using SparkleLib; +using Sparkles; namespace SparkleShare { - public partial class SparkleNote : Window { + public partial class Note : Window { - public SparkleNoteController Controller = new SparkleNoteController (); + public NoteController Controller = new NoteController (); private readonly string default_text = "Anything to add?"; - public SparkleNote() + public Note () { InitializeComponent(); Background = new SolidColorBrush(Color.FromRgb(240, 240, 240)); AllowsTransparency = false; - Icon = SparkleUIHelpers.GetImageSource("sparkleshare-app", "ico"); + Icon = UserInterfaceHelpers.GetImageSource("sparkleshare-app", "ico"); WindowStartupLocation = WindowStartupLocation.CenterScreen; Closing += this.OnClosing; @@ -85,16 +85,16 @@ namespace SparkleShare { private void CreateNote() { - ImageSource avatar = SparkleUIHelpers.GetImageSource("user-icon-default"); + ImageSource avatar = UserInterfaceHelpers.GetImageSource("user-icon-default"); if (File.Exists (Controller.AvatarFilePath)) { - avatar = SparkleUIHelpers.GetImage (Controller.AvatarFilePath); + avatar = UserInterfaceHelpers.GetImage (Controller.AvatarFilePath); } this.user_image.ImageSource = avatar; this.Title = Controller.CurrentProject ?? "Add Note"; - this.user_name_text_block.Text = Program.Controller.CurrentUser.Name; - this.user_email_text_field.Text = Program.Controller.CurrentUser.Email; + this.user_name_text_block.Text = SparkleShare.Controller.CurrentUser.Name; + this.user_email_text_field.Text = SparkleShare.Controller.CurrentUser.Email; this.balloon_text_field.Text = default_text; ElementHost.EnableModelessKeyboardInterop (this); @@ -120,4 +120,4 @@ namespace SparkleShare { } } } -}
\ No newline at end of file +} diff --git a/SparkleShare/Windows/SparkleNotifyIcon.cs b/SparkleShare/Windows/UserInterface/NotifyIcon.cs index d873017..f123511 100644 --- a/SparkleShare/Windows/SparkleNotifyIcon.cs +++ b/SparkleShare/Windows/UserInterface/NotifyIcon.cs @@ -1,188 +1,188 @@ -// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.ComponentModel;
-using System.Runtime.InteropServices;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Input;
-using System.Windows.Markup;
-
-using Drawing = System.Drawing;
-using Forms = System.Windows.Forms;
-
-namespace SparkleShare {
-
- [ContentProperty("Text")]
- [DefaultEvent("MouseDoubleClick")]
- public class SparkleNotifyIcon : UIElement, IAddChild {
-
- [DllImport("user32.dll", EntryPoint = "DestroyIcon")]
- static extern bool DestroyIcon(IntPtr h_icon);
-
- public Drawing.Bitmap Icon {
- set {
- NotifyIcon.Icon = GetIconFromBitmap(value);
- }
- }
-
- public string Text {
- get {
- return (string) GetValue(TextProperty);
- }
- set {
- var text = value;
-
- if(!string.IsNullOrEmpty(HeaderText))
- text = HeaderText + "\n" + text;
-
- SetValue(TextProperty, text);
- }
- }
-
- public ContextMenu ContextMenu {
- get;
- set;
- }
-
- public string HeaderText {
- get;
- set;
- }
-
- private Forms.NotifyIcon NotifyIcon {
- get;
- set;
- }
-
- public readonly RoutedEvent MouseClickEvent = EventManager.RegisterRoutedEvent(
- "MouseClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(SparkleNotifyIcon));
-
- public readonly RoutedEvent MouseDoubleClickEvent = EventManager.RegisterRoutedEvent(
- "MouseDoubleClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(SparkleNotifyIcon));
-
- public readonly DependencyProperty TextProperty = DependencyProperty.Register(
- "Text", typeof(string), typeof(SparkleNotifyIcon), new PropertyMetadata(OnTextChanged));
-
- public SparkleNotifyIcon() {
- VisibilityProperty.OverrideMetadata(typeof(SparkleNotifyIcon), new PropertyMetadata(OnVisibilityChanged));
-
- NotifyIcon = new Forms.NotifyIcon {
- Text = Text,
- Visible = true,
- ContextMenu = new Forms.ContextMenu()
- };
- NotifyIcon.MouseDown += OnMouseDown;
- NotifyIcon.MouseUp += OnMouseUp;
- NotifyIcon.MouseClick += OnMouseClick;
- NotifyIcon.MouseDoubleClick += OnMouseDoubleClick;
- }
-
- public void ShowBalloonTip(string title, string subtext, string image_path) {
- // TODO:
- // - Use the image pointed to by image_path
- // - Find a way to use the prettier (Win7?) balloons
- NotifyIcon.ShowBalloonTip(5 * 1000, title, subtext, Forms.ToolTipIcon.Info);
- }
-
- public void Dispose() {
- NotifyIcon.Dispose();
- }
-
-
- void IAddChild.AddChild(object value) {
- throw new InvalidOperationException();
- }
-
- void IAddChild.AddText(string text) {
- if(text == null)
- throw new ArgumentNullException();
-
- Text = text;
- }
-
- private static MouseButtonEventArgs CreateMouseButtonEventArgs(RoutedEvent handler, Forms.MouseButtons button) {
- MouseButton mouse_button;
-
- if(button == Forms.MouseButtons.Left) {
- mouse_button = MouseButton.Left;
-
- } else if(button == Forms.MouseButtons.Right) {
- mouse_button = MouseButton.Right;
-
- } else if(button == Forms.MouseButtons.Middle) {
- mouse_button = MouseButton.Middle;
-
- } else if(button == Forms.MouseButtons.XButton1) {
- mouse_button = MouseButton.XButton1;
-
- } else if(button == Forms.MouseButtons.XButton2) {
- mouse_button = MouseButton.XButton2;
-
- } else {
- throw new InvalidOperationException();
- }
-
- return new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, 0, mouse_button) {
- RoutedEvent = handler
- };
- }
-
- private void OnVisibilityChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) {
- SparkleNotifyIcon control = (SparkleNotifyIcon) target;
- control.NotifyIcon.Visible = (control.Visibility == Visibility.Visible);
- }
-
- private void OnMouseDown(object sender, Forms.MouseEventArgs args) {
- RaiseEvent(CreateMouseButtonEventArgs(MouseDownEvent, args.Button));
- }
-
- private void OnMouseClick(object sender, Forms.MouseEventArgs args) {
- RaiseEvent(CreateMouseButtonEventArgs(MouseClickEvent, args.Button));
- }
-
- private void OnMouseDoubleClick(object sender, Forms.MouseEventArgs args) {
- RaiseEvent(CreateMouseButtonEventArgs(MouseDoubleClickEvent, args.Button));
- }
-
- private void OnMouseUp(object sender, Forms.MouseEventArgs args) {
-
- if(args.Button == Forms.MouseButtons.Right) {
-
- ContextMenu.IsOpen = true;
- ContextMenu.StaysOpen = false;
- }
-
- RaiseEvent(CreateMouseButtonEventArgs(MouseUpEvent, args.Button));
- }
-
- private static void OnTextChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) {
- SparkleNotifyIcon control = (SparkleNotifyIcon) target;
- control.NotifyIcon.Text = control.Text;
- }
-
-
- private static Drawing.Icon GetIconFromBitmap(Drawing.Bitmap bitmap) {
- IntPtr unmanaged_icon = bitmap.GetHicon();
- Drawing.Icon icon = (Drawing.Icon) Drawing.Icon.FromHandle(unmanaged_icon).Clone();
- DestroyIcon(unmanaged_icon);
-
- return icon;
- }
- }
-}
+// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + + +using System; +using System.ComponentModel; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Markup; + +using Drawing = System.Drawing; +using Forms = System.Windows.Forms; + +namespace SparkleShare { + + [ContentProperty("Text")] + [DefaultEvent("MouseDoubleClick")] + public class NotifyIcon : UIElement, IAddChild { + + [DllImport("user32.dll", EntryPoint = "DestroyIcon")] + static extern bool DestroyIcon(IntPtr h_icon); + + public Drawing.Bitmap Icon { + set { + Notification.Icon = GetIconFromBitmap(value); + } + } + + public string Text { + get { + return (string) GetValue(TextProperty); + } + set { + var text = value; + + if(!string.IsNullOrEmpty(HeaderText)) + text = HeaderText + "\n" + text; + + SetValue(TextProperty, text); + } + } + + public ContextMenu ContextMenu { + get; + set; + } + + public string HeaderText { + get; + set; + } + + private Forms.NotifyIcon Notification { + get; + set; + } + + public readonly RoutedEvent MouseClickEvent = EventManager.RegisterRoutedEvent( + "MouseClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(NotifyIcon)); + + public readonly RoutedEvent MouseDoubleClickEvent = EventManager.RegisterRoutedEvent( + "MouseDoubleClick", RoutingStrategy.Bubble, typeof(MouseButtonEventHandler), typeof(NotifyIcon)); + + public readonly DependencyProperty TextProperty = DependencyProperty.Register( + "Text", typeof(string), typeof(NotifyIcon), new PropertyMetadata(OnTextChanged)); + + public NotifyIcon() { + VisibilityProperty.OverrideMetadata(typeof(NotifyIcon), new PropertyMetadata(OnVisibilityChanged)); + + Notification = new Forms.NotifyIcon { + Text = Text, + Visible = true, + ContextMenu = new Forms.ContextMenu() + }; + Notification.MouseDown += OnMouseDown; + Notification.MouseUp += OnMouseUp; + Notification.MouseClick += OnMouseClick; + Notification.MouseDoubleClick += OnMouseDoubleClick; + } + + public void ShowBalloonTip(string title, string subtext, string image_path) { + // TODO: + // - Use the image pointed to by image_path + // - Find a way to use the prettier (Win7?) balloons + Notification.ShowBalloonTip(5 * 1000, title, subtext, Forms.ToolTipIcon.Info); + } + + public void Dispose() { + Notification.Dispose(); + } + + + void IAddChild.AddChild(object value) { + throw new InvalidOperationException(); + } + + void IAddChild.AddText(string text) { + if(text == null) + throw new ArgumentNullException(); + + Text = text; + } + + private static MouseButtonEventArgs CreateMouseButtonEventArgs(RoutedEvent handler, Forms.MouseButtons button) { + MouseButton mouse_button; + + if(button == Forms.MouseButtons.Left) { + mouse_button = MouseButton.Left; + + } else if(button == Forms.MouseButtons.Right) { + mouse_button = MouseButton.Right; + + } else if(button == Forms.MouseButtons.Middle) { + mouse_button = MouseButton.Middle; + + } else if(button == Forms.MouseButtons.XButton1) { + mouse_button = MouseButton.XButton1; + + } else if(button == Forms.MouseButtons.XButton2) { + mouse_button = MouseButton.XButton2; + + } else { + throw new InvalidOperationException(); + } + + return new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, 0, mouse_button) { + RoutedEvent = handler + }; + } + + private void OnVisibilityChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) { + NotifyIcon control = (NotifyIcon) target; + control.Notification.Visible = (control.Visibility == Visibility.Visible); + } + + private void OnMouseDown(object sender, Forms.MouseEventArgs args) { + RaiseEvent(CreateMouseButtonEventArgs(MouseDownEvent, args.Button)); + } + + private void OnMouseClick(object sender, Forms.MouseEventArgs args) { + RaiseEvent(CreateMouseButtonEventArgs(MouseClickEvent, args.Button)); + } + + private void OnMouseDoubleClick(object sender, Forms.MouseEventArgs args) { + RaiseEvent(CreateMouseButtonEventArgs(MouseDoubleClickEvent, args.Button)); + } + + private void OnMouseUp(object sender, Forms.MouseEventArgs args) { + + if(args.Button == Forms.MouseButtons.Right) { + + ContextMenu.IsOpen = true; + ContextMenu.StaysOpen = false; + } + + RaiseEvent(CreateMouseButtonEventArgs(MouseUpEvent, args.Button)); + } + + private static void OnTextChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) { + NotifyIcon control = (NotifyIcon) target; + control.Notification.Text = control.Text; + } + + + private static Drawing.Icon GetIconFromBitmap(Drawing.Bitmap bitmap) { + IntPtr unmanaged_icon = bitmap.GetHicon(); + Drawing.Icon icon = (Drawing.Icon) Drawing.Icon.FromHandle(unmanaged_icon).Clone(); + DestroyIcon(unmanaged_icon); + + return icon; + } + } +} diff --git a/SparkleShare/Windows/UserInterface/ProtocolHandler.cs b/SparkleShare/Windows/UserInterface/ProtocolHandler.cs new file mode 100644 index 0000000..b08bd7e --- /dev/null +++ b/SparkleShare/Windows/UserInterface/ProtocolHandler.cs @@ -0,0 +1,74 @@ +// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + + +using Microsoft.Win32; +using System.IO; + +namespace SparkleShare +{ + + /// <summary> + /// Maintain Protocol Handlers created by SparkleShare + /// </summary> + static class SparkleProtocolHandler + { + + /// <summary> + /// Add or Update protocol handler + /// </summary> + /// <param name="handleName">The name of the handler to add</param> + /// <param name="handleValue">Default value of the protocol handler</param> + /// <param name="handleCommand">The arguments passed to the Invite Opener</param> + internal static void AddProtocolHandler(string handleName, string handleValue, string handleCommand) + { + var inviteOpener = Path.Combine(Directory.GetCurrentDirectory(), "SparkleShareInviteOpener"); + + // test the handleName for third party protocols like GitHub + // if one exist and their default value doesn't match our custom Protocol, do not update + using (RegistryKey testKey = Registry.ClassesRoot.OpenSubKey(handleName)) + { + if (testKey == null || handleValue.Equals(testKey.GetValue(""))) + { + using (RegistryKey key = Registry.CurrentUser.CreateSubKey("Software").CreateSubKey("Classes").CreateSubKey(handleName)) + { + key.SetValue("", handleValue); + key.SetValue("URL Protocol", ""); + key.CreateSubKey("DefaultIcon").SetValue("", inviteOpener); + key.CreateSubKey("shell") + .CreateSubKey("open") + .CreateSubKey("command") + .SetValue("", inviteOpener + " " + handleCommand); + } + } + } + } + + /// <summary> + /// Remove protocol handler + /// </summary> + /// <param name="handleName">The name of the handler to remove</param> + /// <param name="handleValue">Default value of the protocol handler</param> + internal static void RemoveProtocolHandler(string handleName, string handleValue) + { + var key = Registry.CurrentUser.OpenSubKey(handleName); + + // if the the default value doesn't match our custom Protocol, do not remove + if (key != null && handleValue.Equals(key.GetValue(""))) + Registry.CurrentUser.DeleteSubKeyTree(handleName); + } + } +} diff --git a/SparkleShare/Windows/SparkleSetup.cs b/SparkleShare/Windows/UserInterface/Setup.cs index d51d69e..d6b523c 100644 --- a/SparkleShare/Windows/SparkleSetup.cs +++ b/SparkleShare/Windows/UserInterface/Setup.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General private License as published by @@ -15,33 +15,27 @@ // along with this program. If not, see <http://www.gnu.org/licenses/>. +using Sparkles; using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Media; using System.Windows; using System.Windows.Controls; -using System.Windows.Data; using System.Windows.Documents; using System.Windows.Markup; using System.Windows.Media; using System.Windows.Media.Imaging; -using System.Windows.Navigation; using System.Windows.Shell; using Drawing = System.Drawing; using Imaging = System.Windows.Interop.Imaging; -using WPF = System.Windows.Controls; namespace SparkleShare { - public class SparkleSetup : SparkleSetupWindow { + public class Setup : SetupWindow { - public SparkleSetupController Controller = new SparkleSetupController (); + public SetupController Controller = new SetupController (); - public SparkleSetup () + public Setup () { Controller.ShowWindowEvent += delegate { Dispatcher.BeginInvoke ((Action) delegate { @@ -139,7 +133,7 @@ namespace SparkleShare { cancel_button.Click += delegate { Dispatcher.BeginInvoke ((Action) delegate { - Program.UI.StatusIcon.Dispose (); + SparkleShare.UI.StatusIcon.Dispose (); Controller.SetupPageCancelled (); }); }; @@ -268,7 +262,7 @@ namespace SparkleShare { header_style.Setters.Add (new Setter (GridViewColumnHeader.VisibilityProperty, Visibility.Collapsed)); grid_view.ColumnHeaderContainerStyle = header_style; - foreach (SparklePlugin plugin in Controller.Plugins) { + foreach (Preset plugin in Controller.Presets) { // FIXME: images are blurry BitmapFrame image = BitmapFrame.Create ( new Uri (plugin.ImagePath) @@ -284,7 +278,7 @@ namespace SparkleShare { } list_view.View = grid_view; - list_view.SelectedIndex = Controller.SelectedPluginIndex; + list_view.SelectedIndex = Controller.SelectedPresetIndex; TextBlock address_label = new TextBlock () { Text = "Address:", @@ -294,11 +288,11 @@ namespace SparkleShare { TextBox address_box = new TextBox () { Width = 200, Text = Controller.PreviousAddress, - IsEnabled = (Controller.SelectedPlugin.Address == null) + IsEnabled = (Controller.SelectedPreset.Address == null) }; TextBlock address_help_label = new TextBlock () { - Text = Controller.SelectedPlugin.AddressExample, + Text = Controller.SelectedPreset.AddressExample, FontSize = 11, Foreground = new SolidColorBrush (Color.FromRgb (128, 128, 128)) }; @@ -312,11 +306,11 @@ namespace SparkleShare { TextBox path_box = new TextBox () { Width = 200, Text = Controller.PreviousPath, - IsEnabled = (Controller.SelectedPlugin.Path == null) + IsEnabled = (Controller.SelectedPreset.Path == null) }; TextBlock path_help_label = new TextBlock () { - Text = Controller.SelectedPlugin.PathExample, + Text = Controller.SelectedPreset.PathExample, FontSize = 11, Width = 200, Foreground = new SolidColorBrush (Color.FromRgb (128, 128, 128)) @@ -409,11 +403,11 @@ namespace SparkleShare { }; list_view.SelectionChanged += delegate { - Controller.SelectedPluginChanged (list_view.SelectedIndex); + Controller.SelectedPresetChanged (list_view.SelectedIndex); }; list_view.KeyDown += delegate { - Controller.SelectedPluginChanged (list_view.SelectedIndex); + Controller.SelectedPresetChanged (list_view.SelectedIndex); }; Controller.CheckAddPage (address_box.Text, path_box.Text, list_view.SelectedIndex); @@ -509,7 +503,7 @@ namespace SparkleShare { help_block.Inlines.Add (new Bold (new Run (Controller.PreviousUrl))); help_block.Inlines.Add (" is the address we’ve compiled. Does this look alright?\n\n"); - help_block.Inlines.Add ("Is this computer’s Client ID known by the host??"); + help_block.Inlines.Add ("Is this computer’s Client ID known by the host?"); if (warnings.Length > 0) { bullets_block.Text += "\n\n•"; @@ -773,7 +767,7 @@ namespace SparkleShare { }; Button show_files_button = new Button () { - Content = "Show files…" + Content = "Show files" }; if (warnings.Length > 0) { @@ -814,167 +808,6 @@ namespace SparkleShare { break; } - - case PageType.Tutorial: { - switch (Controller.TutorialPageNumber) { - case 1: { - Header = "What’s happening next?"; - Description = "SparkleShare creates a special folder on your computer " + - "that will keep track of your projects."; - - - WPF.Image slide_image = new WPF.Image () { - Width = 324, - Height = 200 - }; - - slide_image.Source = SparkleUIHelpers.GetImageSource ("tutorial-slide-1"); - - Button skip_tutorial_button = new Button () { - Content = "Skip tutorial" - }; - - Button continue_button = new Button () { - Content = "Continue" - }; - - - ContentCanvas.Children.Add (slide_image); - Canvas.SetLeft (slide_image, 228); - Canvas.SetTop (slide_image, 130); - - Buttons.Add (skip_tutorial_button); - Buttons.Add (continue_button); - - - skip_tutorial_button.Click += delegate { - Controller.TutorialSkipped (); - }; - - continue_button.Click += delegate { - Controller.TutorialPageCompleted (); - }; - - break; - } - - case 2: { - Header = "Sharing files with others"; - Description = "All files added to your project folders are synced automatically with " + - "the host and your team members."; - - - Button continue_button = new Button () { - Content = "Continue" - }; - - WPF.Image slide_image = new WPF.Image () { - Width = 324, - Height = 200 - }; - - slide_image.Source = SparkleUIHelpers.GetImageSource ("tutorial-slide-2"); - - - ContentCanvas.Children.Add (slide_image); - Canvas.SetLeft (slide_image, 228); - Canvas.SetTop (slide_image, 130); - - Buttons.Add (continue_button); - - - continue_button.Click += delegate { - Controller.TutorialPageCompleted (); - }; - - break; - } - - case 3: { - Header = "The status icon helps you"; - Description = "It shows the syncing progress, provides easy access to " + - "your projects, and lets you view recent changes."; - - Button continue_button = new Button () { - Content = "Continue" - }; - - WPF.Image slide_image = new WPF.Image () { - Width = 324, - Height = 200 - }; - - slide_image.Source = SparkleUIHelpers.GetImageSource ("tutorial-slide-3"); - - - ContentCanvas.Children.Add (slide_image); - Canvas.SetLeft (slide_image, 228); - Canvas.SetTop (slide_image, 130); - - Buttons.Add (continue_button); - - - continue_button.Click += delegate { - Controller.TutorialPageCompleted (); - }; - - break; - } - - case 4: { - Header = "Here’s your unique Client ID"; - Description = "You’ll need it whenever you want to link this computer to a host. " + - "You can also find it in the status icon menu."; - - - TextBox link_code_text_box = new TextBox () { - Text = Program.Controller.CurrentUser.PublicKey, - Width = 250, - MaxLines = 1, - TextWrapping = TextWrapping.NoWrap, - IsEnabled = false - }; - - Button copy_button = new Button () { - Content = "Copy", - Width = 60 - }; - - Button finish_button = new Button () { - Content = "Finish" - }; - - CheckBox check_box = new CheckBox () { - Content = "Add SparkleShare to startup items", - IsChecked = true - }; - - - ContentCanvas.Children.Add (link_code_text_box); - Canvas.SetLeft (link_code_text_box, 235); - Canvas.SetTop (link_code_text_box, 190); - - ContentCanvas.Children.Add (copy_button); - Canvas.SetLeft (copy_button, 490); - Canvas.SetTop (copy_button, 190); - - ContentCanvas.Children.Add (check_box); - Canvas.SetLeft (check_box, 185); - Canvas.SetBottom (check_box, 12); - - Buttons.Add (finish_button); - - - check_box.Click += delegate { Controller.StartupItemChanged (check_box.IsChecked.Value); }; - finish_button.Click += delegate { Controller.TutorialPageCompleted (); }; - copy_button.Click += delegate { Controller.CopyToClipboardClicked(); }; - - break; - } - } - - break; - } } ShowAll (); diff --git a/SparkleShare/Windows/SparkleSetupWindow.cs b/SparkleShare/Windows/UserInterface/SetupWindow.cs index 87607e2..6208906 100644 --- a/SparkleShare/Windows/SparkleSetupWindow.cs +++ b/SparkleShare/Windows/UserInterface/SetupWindow.cs @@ -1,193 +1,193 @@ -// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com)
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see (http://www.gnu.org/licenses/).
-
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Forms.Integration;
-using System.Windows.Media;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-using System.Runtime.InteropServices;
-using System.Windows.Interop;
-
-namespace SparkleShare {
-
- public class SparkleSetupWindow : Window {
-
- public Canvas ContentCanvas = new Canvas ();
- public List <Button> Buttons = new List <Button> ();
- public string Header;
- public string Description;
-
- private Image side_splash;
- private Rectangle bar;
-
- private Rectangle line;
-
-
- public SparkleSetupWindow ()
- {
- Title = "SparkleShare Setup";
- Width = 640;
- Height = 440;
- ResizeMode = ResizeMode.NoResize;
- Background = new SolidColorBrush (Colors.WhiteSmoke);
- Icon = SparkleUIHelpers.GetImageSource ("sparkleshare-app", "ico");
-
- TaskbarItemInfo = new TaskbarItemInfo () {
- Description = "SparkleShare"
- };
-
- WindowStartupLocation = WindowStartupLocation.CenterScreen;
- Content = ContentCanvas;
-
- // Remove the close button
- Closing += Close;
- SourceInitialized += delegate {
- const int gwl_style = -16;
- const int ws_sysmenu = 0x00080000;
- WindowInteropHelper helper = new WindowInteropHelper (this);
- int style = GetWindowLong (helper.Handle, gwl_style);
- SetWindowLong (helper.Handle, gwl_style, style & ~ws_sysmenu);
- };
-
- this.bar = new Rectangle () {
- Width = Width,
- Height = 40,
- Fill = new SolidColorBrush (Color.FromRgb (240, 240, 240))
- };
-
- this.line = new Rectangle () {
- Width = Width,
- Height = 1,
- Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223))
- };
-
- this.side_splash = new Image () {
- Width = 150,
- Height = 482
- };
-
- this.side_splash.Source = SparkleUIHelpers.GetImageSource ("side-splash");
-
-
- ContentCanvas.Children.Add (this.bar);
- Canvas.SetRight (bar, 0);
- Canvas.SetBottom (bar, 0);
-
- ContentCanvas.Children.Add (this.line);
- Canvas.SetRight (this.line, 0);
- Canvas.SetBottom (this.line, 40);
-
- ContentCanvas.Children.Add (this.side_splash);
- Canvas.SetLeft (this.side_splash, 0);
- Canvas.SetBottom (this.side_splash, 0);
- }
-
-
- public void Reset ()
- {
- ContentCanvas.Children.Remove (this.bar);
-
- ContentCanvas.Children.Remove (this.line);
-
- ContentCanvas.Children.Remove (this.side_splash);
- ContentCanvas = new Canvas ();
- Content = ContentCanvas;
-
- ContentCanvas.Children.Add (this.bar);
- ContentCanvas.Children.Add (this.line);
- ContentCanvas.Children.Add (this.side_splash);
-
- Buttons = new List <Button> ();
- Header = "";
- Description = "";
- }
-
-
- public void ShowAll ()
- {
- Label header_label = new Label () {
- Content = Header,
- Foreground = new SolidColorBrush (Color.FromRgb (0, 51, 153)),
- FontSize = 16
- };
-
- TextBlock description_label = new TextBlock () {
- Text = Description,
- TextWrapping = TextWrapping.Wrap,
- Width = 375
- };
-
-
- ContentCanvas.Children.Add (header_label);
- Canvas.SetLeft (header_label, 180);
- Canvas.SetTop (header_label, 18);
-
- ContentCanvas.Children.Add (description_label);
- Canvas.SetLeft (description_label, 185);
- Canvas.SetTop (description_label, 60);
-
-
- if (Buttons.Count > 0) {
- Buttons [0].IsDefault = true;
- Buttons.Reverse ();
-
- int right = 9;
-
- foreach (Button button in Buttons) {
- button.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity));
- Rect rect = new Rect (button.DesiredSize);
-
- button.Width = rect.Width + 26;
-
- if (button.Width < 75)
- button.Width = 75;
-
- ContentCanvas.Children.Add (button);
- Canvas.SetRight (button, right);
- Canvas.SetBottom (button, 9);
-
- right += (int) button.Width + 9;
-
- if ((button.Content as string).Equals ("Continue")) {
- Buttons [Buttons.Count - 1].IsDefault = false;
- button.IsDefault = true;
- }
- }
- }
-
- ElementHost.EnableModelessKeyboardInterop (this);
- }
-
-
- private void Close (object sender, CancelEventArgs args)
- {
- args.Cancel = true;
- }
-
-
- [DllImport("user32.dll")]
- private extern static int SetWindowLong (IntPtr hwnd, int index, int value);
-
- [DllImport("user32.dll")]
- private extern static int GetWindowLong (IntPtr hwnd, int index);
- }
-}
+// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons (hi@planetpeanut.uk) +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see (http://www.gnu.org/licenses/). + + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Forms.Integration; +using System.Windows.Media; +using System.Windows.Shapes; +using System.Windows.Shell; +using System.Runtime.InteropServices; +using System.Windows.Interop; + +namespace SparkleShare { + + public class SetupWindow : Window { + + public Canvas ContentCanvas = new Canvas (); + public List <Button> Buttons = new List <Button> (); + public string Header; + public string Description; + + private Image side_splash; + private Rectangle bar; + + private Rectangle line; + + + public SetupWindow () + { + Title = "SparkleShare Setup"; + Width = 640; + Height = 440; + ResizeMode = ResizeMode.NoResize; + Background = new SolidColorBrush (Colors.WhiteSmoke); + Icon = UserInterfaceHelpers.GetImageSource ("sparkleshare-app", "ico"); + + TaskbarItemInfo = new TaskbarItemInfo () { + Description = "SparkleShare" + }; + + WindowStartupLocation = WindowStartupLocation.CenterScreen; + Content = ContentCanvas; + + // Remove the close button + Closing += Close; + SourceInitialized += delegate { + const int gwl_style = -16; + const int ws_sysmenu = 0x00080000; + WindowInteropHelper helper = new WindowInteropHelper (this); + int style = GetWindowLong (helper.Handle, gwl_style); + SetWindowLong (helper.Handle, gwl_style, style & ~ws_sysmenu); + }; + + this.bar = new Rectangle () { + Width = Width, + Height = 40, + Fill = new SolidColorBrush (Color.FromRgb (240, 240, 240)) + }; + + this.line = new Rectangle () { + Width = Width, + Height = 1, + Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223)) + }; + + this.side_splash = new Image () { + Width = 150, + Height = 482 + }; + + this.side_splash.Source = UserInterfaceHelpers.GetImageSource ("side-splash"); + + + ContentCanvas.Children.Add (this.bar); + Canvas.SetRight (bar, 0); + Canvas.SetBottom (bar, 0); + + ContentCanvas.Children.Add (this.line); + Canvas.SetRight (this.line, 0); + Canvas.SetBottom (this.line, 40); + + ContentCanvas.Children.Add (this.side_splash); + Canvas.SetLeft (this.side_splash, 0); + Canvas.SetBottom (this.side_splash, 0); + } + + + public void Reset () + { + ContentCanvas.Children.Remove (this.bar); + + ContentCanvas.Children.Remove (this.line); + + ContentCanvas.Children.Remove (this.side_splash); + ContentCanvas = new Canvas (); + Content = ContentCanvas; + + ContentCanvas.Children.Add (this.bar); + ContentCanvas.Children.Add (this.line); + ContentCanvas.Children.Add (this.side_splash); + + Buttons = new List <Button> (); + Header = ""; + Description = ""; + } + + + public void ShowAll () + { + Label header_label = new Label () { + Content = Header, + Foreground = new SolidColorBrush (Color.FromRgb (0, 51, 153)), + FontSize = 16 + }; + + TextBlock description_label = new TextBlock () { + Text = Description, + TextWrapping = TextWrapping.Wrap, + Width = 375 + }; + + + ContentCanvas.Children.Add (header_label); + Canvas.SetLeft (header_label, 180); + Canvas.SetTop (header_label, 18); + + ContentCanvas.Children.Add (description_label); + Canvas.SetLeft (description_label, 185); + Canvas.SetTop (description_label, 60); + + + if (Buttons.Count > 0) { + Buttons [0].IsDefault = true; + Buttons.Reverse (); + + int right = 9; + + foreach (Button button in Buttons) { + button.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity)); + Rect rect = new Rect (button.DesiredSize); + + button.Width = rect.Width + 26; + + if (button.Width < 75) + button.Width = 75; + + ContentCanvas.Children.Add (button); + Canvas.SetRight (button, right); + Canvas.SetBottom (button, 9); + + right += (int) button.Width + 9; + + if ((button.Content as string).Equals ("Continue")) { + Buttons [Buttons.Count - 1].IsDefault = false; + button.IsDefault = true; + } + } + } + + ElementHost.EnableModelessKeyboardInterop (this); + } + + + private void Close (object sender, CancelEventArgs args) + { + args.Cancel = true; + } + + + [DllImport("user32.dll")] + private extern static int SetWindowLong (IntPtr hwnd, int index, int value); + + [DllImport("user32.dll")] + private extern static int GetWindowLong (IntPtr hwnd, int index); + } +} diff --git a/SparkleShare/Windows/SparkleShortcut.cs b/SparkleShare/Windows/UserInterface/Shortcut.cs index 763a697..aded16e 100644 --- a/SparkleShare/Windows/SparkleShortcut.cs +++ b/SparkleShare/Windows/UserInterface/Shortcut.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -16,11 +16,8 @@ using System; -using System.ComponentModel; -using System.Drawing; using System.Runtime.InteropServices; using System.Text; -using System.Windows.Forms; namespace SparkleShare { diff --git a/SparkleShare/Windows/SparkleSpinner.cs b/SparkleShare/Windows/UserInterface/Spinner.cs index e8a3885..6f5bcbd 100644 --- a/SparkleShare/Windows/SparkleSpinner.cs +++ b/SparkleShare/Windows/UserInterface/Spinner.cs @@ -1,91 +1,91 @@ -// SparkleShare, a collaboration and sharing tool.
-// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-using System;
-using System.Timers;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media.Imaging;
-using System.ComponentModel;
-
-namespace SparkleShare {
- public class SparkleSpinner : Image {
-
- private Timer timer;
-
- public SparkleSpinner ()
- : this (22) {
- }
-
- public SparkleSpinner (int size) : base () {
- if (DesignerProperties.GetIsInDesignMode(this)) {
- return;
- }
-
- Width = size;
- Height = size;
-
- int current_frame = 0;
- BitmapSource spinner_gallery = SparkleUIHelpers.GetImageSource ("process-working-22");
- int frames_in_width = spinner_gallery.PixelWidth / size;
- int frames_in_height = spinner_gallery.PixelHeight / size;
- int frame_count = (frames_in_width * frames_in_height) - 1;
- Image [] frames = new Image [frame_count];
-
- int i = 0;
- for (int y = 0; y < frames_in_height; y++) {
- for (int x = 0; x < frames_in_width; x++) {
- if (!(y == 0 && x == 0)) {
- CroppedBitmap crop = new CroppedBitmap (spinner_gallery,
- new Int32Rect (size * x, size * y, size, size));
-
- frames [i] = new Image ();
- frames [i].Source = crop;
- i++;
- }
- }
- }
-
- this.timer = new Timer () {
- Interval = 400 / frame_count
- };
-
- this.timer.Elapsed += delegate {
- Dispatcher.BeginInvoke ((Action) delegate {
- if (current_frame < frame_count - 1)
- current_frame++;
- else
- current_frame = 0;
-
- Source = frames [current_frame].Source;
- });
- };
- }
-
-
- public void Start ()
- {
- this.timer.Start ();
- }
-
-
- public void Stop ()
- {
- this.timer.Stop ();
- }
- }
-}
+// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + + +using System; +using System.Timers; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media.Imaging; +using System.ComponentModel; + +namespace SparkleShare { + public class Spinner : Image { + + private Timer timer; + + public Spinner () + : this (22) { + } + + public Spinner (int size) : base () { + if (DesignerProperties.GetIsInDesignMode(this)) { + return; + } + + Width = size; + Height = size; + + int current_frame = 0; + BitmapSource spinner_gallery = UserInterfaceHelpers.GetImageSource ("process-working-22"); + int frames_in_width = spinner_gallery.PixelWidth / size; + int frames_in_height = spinner_gallery.PixelHeight / size; + int frame_count = (frames_in_width * frames_in_height) - 1; + Image [] frames = new Image [frame_count]; + + int i = 0; + for (int y = 0; y < frames_in_height; y++) { + for (int x = 0; x < frames_in_width; x++) { + if (!(y == 0 && x == 0)) { + CroppedBitmap crop = new CroppedBitmap (spinner_gallery, + new Int32Rect (size * x, size * y, size, size)); + + frames [i] = new Image (); + frames [i].Source = crop; + i++; + } + } + } + + this.timer = new Timer () { + Interval = 400 / frame_count + }; + + this.timer.Elapsed += delegate { + Dispatcher.BeginInvoke ((Action) delegate { + if (current_frame < frame_count - 1) + current_frame++; + else + current_frame = 0; + + Source = frames [current_frame].Source; + }); + }; + } + + + public void Start () + { + this.timer.Start (); + } + + + public void Stop () + { + this.timer.Stop (); + } + } +} diff --git a/SparkleShare/Windows/SparkleStatusIcon.cs b/SparkleShare/Windows/UserInterface/StatusIcon.cs index a4a77ad..fb02f59 100644 --- a/SparkleShare/Windows/SparkleStatusIcon.cs +++ b/SparkleShare/Windows/UserInterface/StatusIcon.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -26,15 +26,15 @@ using Drawing = System.Drawing; namespace SparkleShare { - public class SparkleStatusIcon : Control { + public class StatusIcon : Control { - public SparkleStatusIconController Controller = new SparkleStatusIconController(); + public StatusIconController Controller = new StatusIconController(); - private readonly Drawing.Bitmap syncing_idle_image = SparkleUIHelpers.GetBitmap("process-syncing-idle"); - private readonly Drawing.Bitmap syncing_up_image = SparkleUIHelpers.GetBitmap("process-syncing-up"); - private readonly Drawing.Bitmap syncing_down_image = SparkleUIHelpers.GetBitmap("process-syncing-down"); - private readonly Drawing.Bitmap syncing_image = SparkleUIHelpers.GetBitmap("process-syncing"); - private readonly Drawing.Bitmap syncing_error_image = SparkleUIHelpers.GetBitmap("process-syncing-error"); + private readonly Drawing.Bitmap syncing_idle_image = UserInterfaceHelpers.GetBitmap("process-syncing-idle"); + private readonly Drawing.Bitmap syncing_up_image = UserInterfaceHelpers.GetBitmap("process-syncing-up"); + private readonly Drawing.Bitmap syncing_down_image = UserInterfaceHelpers.GetBitmap("process-syncing-down"); + private readonly Drawing.Bitmap syncing_image = UserInterfaceHelpers.GetBitmap("process-syncing"); + private readonly Drawing.Bitmap syncing_error_image = UserInterfaceHelpers.GetBitmap("process-syncing-error"); private ContextMenu context_menu; @@ -43,10 +43,10 @@ namespace SparkleShare { private SparkleMenuItem exit_item; private SparkleMenuItem[] state_menu_items; - private readonly SparkleNotifyIcon notify_icon = new SparkleNotifyIcon(); + private readonly NotifyIcon notify_icon = new NotifyIcon(); - public SparkleStatusIcon() { + public StatusIcon() { this.notify_icon.HeaderText = "SparkleShare"; this.notify_icon.Icon = this.syncing_idle_image; @@ -117,7 +117,7 @@ namespace SparkleShare { }; Image folder_image = new Image { - Source = SparkleUIHelpers.GetImageSource("sparkleshare-folder"), + Source = UserInterfaceHelpers.GetImageSource("sparkleshare-folder"), Width = 16, Height = 16 }; @@ -142,7 +142,7 @@ namespace SparkleShare { if(Controller.LinkCodeItemEnabled) { SparkleMenuItem code_item = new SparkleMenuItem { - Header = Program.Controller.CurrentUser.PublicKey.Substring(0, 20) + "..." + Header = SparkleShare.Controller.UserAuthenticationInfo.PublicKey.Substring(0, 20) + "..." }; SparkleMenuItem copy_item = new SparkleMenuItem { @@ -159,7 +159,7 @@ namespace SparkleShare { CheckBox notify_check_box = new CheckBox { Margin = new Thickness(6, 0, 0, 0), - IsChecked = Program.Controller.NotificationsEnabled + IsChecked = SparkleShare.Controller.NotificationsEnabled }; SparkleMenuItem notify_item = new SparkleMenuItem { @@ -187,13 +187,13 @@ namespace SparkleShare { notify_check_box.Click += delegate { this.context_menu.IsOpen = false; - Program.Controller.ToggleNotifications(); - notify_check_box.IsChecked = Program.Controller.NotificationsEnabled; + SparkleShare.Controller.ToggleNotifications(); + notify_check_box.IsChecked = SparkleShare.Controller.NotificationsEnabled; }; notify_item.Click += delegate { - Program.Controller.ToggleNotifications(); - notify_check_box.IsChecked = Program.Controller.NotificationsEnabled; + SparkleShare.Controller.ToggleNotifications(); + notify_check_box.IsChecked = SparkleShare.Controller.NotificationsEnabled; }; this.exit_item.Click += delegate { @@ -215,7 +215,7 @@ namespace SparkleShare { SparkleMenuItem subfolder_item = new SparkleMenuItem { Header = project.Name.Replace("_", "__"), Icon = new Image { - Source = SparkleUIHelpers.GetImageSource("folder"), + Source = UserInterfaceHelpers.GetImageSource("folder"), Width = 16, Height = 16 } @@ -233,7 +233,7 @@ namespace SparkleShare { Header = "Open folder", Icon = new Image { - Source = SparkleUIHelpers.GetImageSource("folder"), + Source = UserInterfaceHelpers.GetImageSource("folder"), Width = 16, Height = 16 } @@ -284,7 +284,7 @@ namespace SparkleShare { }; SparkleMenuItem try_again_item = new SparkleMenuItem { - Header = "Try Again" + Header = "Retry Sync" }; try_again_item.Click += (sender, e) => Controller.TryAgainDelegate(project.Name)(sender, e); subfolder_item.Items.Add(try_again_item); diff --git a/SparkleShare/Windows/SparkleUI.cs b/SparkleShare/Windows/UserInterface/UserInterface.cs index 31f5ebb..a897e60 100644 --- a/SparkleShare/Windows/SparkleUI.cs +++ b/SparkleShare/Windows/UserInterface/UserInterface.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -19,43 +19,43 @@ using System; using System.Threading; using System.Windows.Forms; -using SparkleLib; +using Sparkles; namespace SparkleShare { - public class SparkleUI { + public class UserInterface { - public SparkleSetup Setup; - public SparkleEventLogWindow EventLog; - public SparkleBubbles Bubbles; - public SparkleStatusIcon StatusIcon; - public SparkleAbout About; - public SparkleNote Note; + public Setup Setup; + public EventLog EventLog; + public Bubbles Bubbles; + public StatusIcon StatusIcon; + public About About; + public Note Note; - static SparkleUI () + static UserInterface () { Application.ThreadException += OnUnhandledException; Application.SetUnhandledExceptionMode (UnhandledExceptionMode.CatchException); } - public SparkleUI () + public UserInterface () { // FIXME: The second time windows are shown, the windows // don't have the smooth ease in animation, but appear abruptly. // The ease out animation always seems to work - Setup = new SparkleSetup (); - EventLog = new SparkleEventLogWindow(); - About = new SparkleAbout (); - Bubbles = new SparkleBubbles (); - StatusIcon = new SparkleStatusIcon (); - Note = new SparkleNote (); + Setup = new Setup (); + EventLog = new EventLog(); + About = new About (); + Bubbles = new Bubbles (); + StatusIcon = new StatusIcon (); + Note = new Note (); - Program.Controller.UIHasLoaded (); + SparkleShare.Controller.UIHasLoaded (); } - public void Run () + public void Run (string [] args) { Application.Run (); StatusIcon.Dispose (); @@ -64,7 +64,7 @@ namespace SparkleShare { private static void OnUnhandledException (object sender, ThreadExceptionEventArgs exception_args) { try { - SparkleLogger.WriteCrashReport (exception_args.Exception); + Logger.WriteCrashReport (exception_args.Exception); } finally { Environment.Exit (-1); } diff --git a/SparkleShare/Windows/SparkleUIHelpers.cs b/SparkleShare/Windows/UserInterface/UserInterfaceHelpers.cs index ff289c8..a76e4d5 100644 --- a/SparkleShare/Windows/SparkleUIHelpers.cs +++ b/SparkleShare/Windows/UserInterface/UserInterfaceHelpers.cs @@ -1,5 +1,5 @@ // SparkleShare, a collaboration and sharing tool. -// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// Copyright (C) 2010 Hylke Bons <hi@planetpeanut.uk> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -18,8 +18,6 @@ using System; using System.IO; using System.Reflection; -using System.Windows; -using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; @@ -27,7 +25,7 @@ using Drawing = System.Drawing; namespace SparkleShare { - public static class SparkleUIHelpers { + public static class UserInterfaceHelpers { public static string ToHex (this Drawing.Color color) { @@ -44,7 +42,7 @@ namespace SparkleShare { public static BitmapFrame GetImageSource (string name, string type) { Assembly assembly = Assembly.GetExecutingAssembly(); - Stream image_stream = assembly.GetManifestResourceStream("SparkleShare.Pixmaps." + name + "." + type); + Stream image_stream = assembly.GetManifestResourceStream("SparkleShare.Windows.Images." + name + "." + type); return BitmapFrame.Create(image_stream); } @@ -62,7 +60,7 @@ namespace SparkleShare { public static Drawing.Bitmap GetBitmap (string name) { Assembly assembly = Assembly.GetExecutingAssembly (); - Stream image_stream = assembly.GetManifestResourceStream ("SparkleShare.Pixmaps." + name + ".png"); + Stream image_stream = assembly.GetManifestResourceStream ("SparkleShare.Windows.Images." + name + ".png"); return (Drawing.Bitmap) Drawing.Bitmap.FromStream (image_stream); } @@ -71,7 +69,7 @@ namespace SparkleShare { { Assembly assembly = Assembly.GetExecutingAssembly (); StreamReader html_reader = new StreamReader ( - assembly.GetManifestResourceStream ("SparkleShare.HTML." + name)); + assembly.GetManifestResourceStream ("SparkleShare.Windows.HTML." + name)); return html_reader.ReadToEnd (); } diff --git a/SparkleShare/Windows/app.config b/SparkleShare/Windows/app.config new file mode 100644 index 0000000..51278a4 --- /dev/null +++ b/SparkleShare/Windows/app.config @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> +<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration> diff --git a/SparkleShare/Windows/build.cmd b/SparkleShare/Windows/build.cmd index e01316c..2cae645 100644 --- a/SparkleShare/Windows/build.cmd +++ b/SparkleShare/Windows/build.cmd @@ -6,7 +6,7 @@ if not exist %msbuild% set msbuild="%WinDirNet%\v4.0.30319\msbuild.exe" set wixBinDir=%WIX%\bin if not exist ..\..\bin mkdir ..\..\bin -copy Pixmaps\sparkleshare-app.ico ..\..\bin\ +copy Images\sparkleshare-app.ico ..\..\bin\ %msbuild% /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU" "%~dp0\SparkleShare.sln" diff --git a/SparkleShare/Windows/packages.config b/SparkleShare/Windows/packages.config new file mode 100644 index 0000000..6c3600d --- /dev/null +++ b/SparkleShare/Windows/packages.config @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="DeltaCompressionDotNet" version="1.0.0" targetFramework="net45" /> + <package id="Mono.Cecil" version="0.9.6.1" targetFramework="net45" /> + <package id="Splat" version="1.6.2" targetFramework="net45" /> + <package id="squirrel.windows" version="1.5.2" targetFramework="net45" /> +</packages>
\ No newline at end of file |