diff --git a/FriendFace/FriendFace.cs b/FriendFace/FriendFace.cs
deleted file mode 100644
index 19748228..00000000
--- a/FriendFace/FriendFace.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-// FriendFace creates an icon theme of buddy icons from the web
-// Copyright (C) 2010 Hylke Bons
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
-
-using Gtk;
-using Mono.Unix;
-using System;
-using System.IO;
-
-namespace FriendFace {
-
- public class FaceCollection : IconTheme {
-
- public bool UseFlickr;
- public bool UseGravatar;
- public bool UseIdentica;
- public bool UseTwitter;
-
- private string Path;
-
- public FaceCollection ()
- {
-
- UnixUserInfo unix_user_info = new UnixUserInfo (UnixEnvironment.UserName);
- string default_theme_path = CombineMore (unix_user_info.HomeDirectory, ".icons");
- new FaceCollection (default_theme_path);
-
- }
-
-
- public FaceCollection (string path)
- {
- CustomTheme = "FriendFace";
- SetThemePath (path);
- }
-
-
- public void SetThemePath (string path)
- {
-
- Path = path;
-
- if (!Directory.Exists (Path))
- Directory.CreateDirectory (Path);
-
- AppendSearchPath (path);
-
- Refresh ();
-
- }
-
-
- public string GetThemePath ()
- {
- return Path;
- }
-
-
- public Gdk.Pixbuf GetFace (string identifier, int size)
- {
- return LoadIcon ("avatar-default-" + identifier, size, IconLookupFlags.GenericFallback);
- }
-
-
- public void Refresh ()
- {foreach (string i in SearchPath) {Console.WriteLine (i);}
-
- IconProvider provider = new IconProvider ("");
- string folder = provider.GetTargetFolderPath ();
- string [] files = Directory.GetFiles (folder);
-
- int [] sizes = {16, 24, 32, 48};
-
- foreach (string file_path in files) {
-
- Gdk.Pixbuf pixbuf = new Gdk.Pixbuf (file_path);
-
- FileInfo file_info = new FileInfo (file_path);
-
- // Delete the icon if it turns out to be empty
- if (file_info.Length == 0) {
- File.Delete (file_path);
- Console.WriteLine ("Deleted: " + file_path);
- }
-
- for (int i = 0; i < 4; i++) {
-
- int size = sizes [i];
-
- Gdk.Pixbuf pixbuf_copy = pixbuf.Copy ();
-
- if (pixbuf.Width != size || pixbuf.Height != size)
- pixbuf_copy = pixbuf.ScaleSimple (size, size, Gdk.InterpType.Hyper);
-
- string size_folder_path = CombineMore (Path, size + "x" + size, "status");
- string size_file_path = CombineMore (size_folder_path, System.IO.Path.GetFileName (file_path));
-
- Directory.CreateDirectory (size_folder_path);
-
- if (File.Exists (size_file_path))
- File.Delete (size_file_path);
-
- pixbuf_copy.Save (size_file_path, "png");
-
- }
-
- File.Delete (file_path);
-
- }
-
- RescanIfNeeded ();
-
- }
-
-
- public bool AddFace (string identifier)
- {
-
- if (UseGravatar) {
- GravatarIconProvider provider = new GravatarIconProvider (identifier);
- provider.RetrieveIcon ();
- }
-
- return true;
-
- }
-
-
- // Makes it possible to combine more than
- // two paths at once
- private string CombineMore (params string [] parts)
- {
- string new_path = "";
- foreach (string part in parts)
- new_path = System.IO.Path.Combine (new_path, part);
- return new_path;
- }
-
- }
-
-}
diff --git a/FriendFace/FriendFace.csproj b/FriendFace/FriendFace.csproj
deleted file mode 100644
index 6d63a00f..00000000
--- a/FriendFace/FriendFace.csproj
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.50727
- 2.0
- {3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}
- Library
- FriendFace
- FriendFace
-
-
- true
- full
- false
- ..\bin
- DEBUG
- prompt
- 4
-
-
- none
- false
- ..\bin
- prompt
- 4
-
-
-
- gtk-sharp-2.0
-
-
- gtk-sharp-2.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/FriendFace/GravatarIconProvider.cs b/FriendFace/GravatarIconProvider.cs
deleted file mode 100644
index a958c5c0..00000000
--- a/FriendFace/GravatarIconProvider.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-// FriendFace creates an icon theme of buddy icons from the web
-// Copyright (C) 2010 Hylke Bons
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .using Gtk;
-
-using Gtk;
-using System;
-using System.IO;
-using System.Net;
-using System.Security.Cryptography;
-using System.Text;
-
-namespace FriendFace {
-
- public class GravatarIconProvider : IconProvider {
-
- public GravatarIconProvider (string email) : base (email)
- {
- ServiceName = "gravatar";
- }
-
-
- new public void RetrieveIcon ()
- {
-
- string target_file_path = GetTargetFilePath ();
-
- if (File.Exists (target_file_path))
- return;
-
- WebClient web_client = new WebClient ();
- Uri icon_uri = new Uri ("http://www.gravatar.com/avatar/" + MD5 (Identifier) + ".jpg?s=48&d=404");
-
- web_client.DownloadFileAsync (icon_uri, target_file_path);
-
- web_client.DownloadFileCompleted += delegate {
- base.RetrieveIcon ();
- };
-
- }
-
-
- // Creates an MD5 hash of input
- public static string MD5 (string s)
- {
- MD5 md5 = new MD5CryptoServiceProvider ();
- Byte[] bytes = ASCIIEncoding.Default.GetBytes (s);
- Byte[] encoded_bytes = md5.ComputeHash (bytes);
- return BitConverter.ToString (encoded_bytes).ToLower ().Replace ("-", "");
- }
-
- }
-
-}
diff --git a/FriendFace/IconProvider.cs b/FriendFace/IconProvider.cs
deleted file mode 100644
index e23a5d95..00000000
--- a/FriendFace/IconProvider.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-// IconProvider is a base class that can be extended to pull buddy
-// icons from sources so that they can be used by FaceCollection.
-//
-// Copyright (C) 2010 Hylke Bons
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .using Gtk;
-
-using Gtk;
-using System;
-using System.IO;
-
-namespace FriendFace {
-
- public class IconProvider {
-
- public string Identifier;
- public string ServiceName;
-
- private string TargetFolderPath;
- private string TargetFilePath;
-
- public IconProvider (string identifier)
- {
-
- Identifier = identifier;
-
- string XDG_CACHE_HOME = Environment.GetEnvironmentVariable ("XDG_CACHE_HOME");
-
- if (XDG_CACHE_HOME != null)
- SetTargetFolderPath (CombineMore (XDG_CACHE_HOME, "friendface"));
- else
- SetTargetFolderPath (CombineMore (System.IO.Path.DirectorySeparatorChar.ToString (),
- "tmp", "friendface"));
-
- string file_name = "avatar-default-" + Identifier;
- TargetFilePath = CombineMore (TargetFolderPath, file_name);
-
- }
-
-
- public void RetrieveIcon ()
- {
-
- if (File.Exists (TargetFilePath)) {
-
- FileInfo file_info = new FileInfo (TargetFilePath);
-
- // Delete the icon if it turns out to be empty
- if (file_info.Length == 0) {
- File.Delete (TargetFilePath);
- Console.WriteLine ("Deleted: " + TargetFilePath);
- }
-
- }
-
- }
-
-
- public void SetTargetFolderPath (string path)
- {
-
- TargetFolderPath = path;
-
- if (!Directory.Exists (TargetFolderPath))
- Directory.CreateDirectory (TargetFolderPath);
-
- }
-
-
- public string GetTargetFolderPath ()
- {
- return TargetFolderPath;
- }
-
-
- public void SetTargetFilePath (string path)
- {
- TargetFilePath = path;
- }
-
-
- public string GetTargetFilePath ()
- {
- return TargetFilePath;
- }
-
-
- // Makes it possible to combine more than two paths at once
- public string CombineMore (params string [] parts)
- {
- string new_path = "";
- foreach (string part in parts)
- new_path = Path.Combine (new_path, part);
- return new_path;
- }
-
- }
-
-}
diff --git a/FriendFace/Makefile.am b/FriendFace/Makefile.am
deleted file mode 100644
index 262bf4ce..00000000
--- a/FriendFace/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-ASSEMBLY = FriendFace
-TARGET = library
-
-LINK = $(REF_FRIENDFACE)
-
-SOURCES = \
- FriendFace.cs \
- GravatarIconProvider.cs \
- IconProvider.cs
-
-include $(top_srcdir)/build/build.mk
diff --git a/Makefile.am b/Makefile.am
index b5ffd702..125a6a9f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,11 +2,9 @@ SUBDIRS = \
build \
help \
NotifySharp \
- FriendFace \
SmartIrc4net \
SparkleLib \
SparkleShare \
- SparkleDiff \
data \
po
diff --git a/SparkleDiff/Makefile.am b/SparkleDiff/Makefile.am
deleted file mode 100644
index 8058db39..00000000
--- a/SparkleDiff/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-ASSEMBLY = SparkleDiff
-TARGET = exe
-
-LINK = $(REF_SPARKLEDIFF)
-
-SOURCES = \
- RevisionImage.cs \
- RevisionView.cs \
- SparkleDiff.cs \
- SparkleDiffWindow.cs
-
-include $(top_srcdir)/build/build.mk
diff --git a/SparkleDiff/RevisionImage.cs b/SparkleDiff/RevisionImage.cs
deleted file mode 100644
index 900a9b07..00000000
--- a/SparkleDiff/RevisionImage.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-// SparkleShare, an instant update workflow to Git.
-// Copyright (C) 2010 Hylke Bons
-//
-// 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 .
-using System;
-using Gtk;
-using SparkleShare;
-using System.Diagnostics;
-
-namespace SparkleShare {
-
- // An image grabbed from a stream generated by Git
- public class RevisionImage : Image
- {
-
- public string Revision;
- public string FilePath;
-
- public RevisionImage (string file_path, string revision) : base ()
- {
-
- Revision = revision;
- FilePath = file_path;
-
- Process process = new Process ();
- process.EnableRaisingEvents = true;
- process.StartInfo.RedirectStandardOutput = true;
- process.StartInfo.UseShellExecute = false;
-
- process.StartInfo.WorkingDirectory = SparkleDiff.GetGitRoot (file_path);
- process.StartInfo.FileName = "git";
- process.StartInfo.Arguments = "show " + Revision + ":" + SparkleDiff.GetPathFromGitRoot (FilePath);
- process.Start ();
-
- Pixbuf = new Gdk.Pixbuf ((System.IO.Stream) process.StandardOutput.BaseStream);
-
- }
-
- }
-
-}
diff --git a/SparkleDiff/RevisionView.cs b/SparkleDiff/RevisionView.cs
deleted file mode 100644
index d35e68d5..00000000
--- a/SparkleDiff/RevisionView.cs
+++ /dev/null
@@ -1,306 +0,0 @@
-// SparkleShare, an instant update workflow to Git.
-// Copyright (C) 2010 Hylke Bons
-//
-// 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 .
-
-using Gtk;
-using Mono.Unix;
-using System;
-
-namespace SparkleShare {
-
- // A custom widget containing an image view,
- // previous/next buttons and a combobox
- public class RevisionView : VBox
- {
-
- // Short alias for the translations
- public static string _ (string s)
- {
- return Catalog.GetString (s);
- }
-
-
- public ScrolledWindow ScrolledWindow;
- public IconView IconView;
- public int Selected;
-
- public ToggleButton ToggleButton;
- private Viewport Viewport;
- private ListStore Store;
- private Image Image;
- private int Count;
- private string SecondaryTextColor;
- private string SelectedTextColor;
-
-
- public RevisionView () : base (false, 0)
- {
-
- Count = 0;
- Selected = 0;
-
- TreeView treeview = new TreeView ();
- SelectedTextColor = GdkColorToHex (treeview.Style.Foreground (StateType.Selected));
-
- Window window = new Window ("");
- SecondaryTextColor = GdkColorToHex (window.Style.Foreground (StateType.Insensitive));
-
- ToggleButton = new ToggleButton ();
- ToggleButton.Clicked += ToggleView;
- ToggleButton.Relief = ReliefStyle.None;
-
- ScrolledWindow = new ScrolledWindow ();
-
- Viewport = new Viewport ();
- Viewport.Add (new Label (""));
-
- Store = new ListStore (typeof (Gdk.Pixbuf),
- typeof (string),
- typeof (int));
-
- IconView = new IconView (Store);
- IconView.SelectionChanged += ChangeSelection;
- IconView.MarkupColumn = 1;
- IconView.Margin = 12;
- IconView.Orientation = Orientation.Horizontal;
- IconView.PixbufColumn = 0;
- IconView.Spacing = 12;
-
- Image = new Image ();
-
- ScrolledWindow.Add (Viewport);
- PackStart (ScrolledWindow, true, true, 0);
-
- }
-
-
- // Changes the selection and enforces a policy of always having something selected
- public void ChangeSelection (object o, EventArgs args)
- {
-
- TreeIter iter;
- Store.GetIter (out iter, new TreePath (GetSelected ().ToString ()));
- string text = (string) Store.GetValue (iter, 1);
- Store.SetValue (iter, 1, text.Replace (SelectedTextColor, SecondaryTextColor));
-
- if (IconView.SelectedItems.Length > 0) {
-
- Store.GetIter (out iter, IconView.SelectedItems [0]);
- SetSelected ((int) Store.GetValue (iter, 2));
-
- text = (string) Store.GetValue (iter, 1);
- text = text.Replace (SecondaryTextColor, SelectedTextColor);
- Store.SetValue (iter, 1, text);
-
- } else {
-
- IconView.SelectPath (new TreePath (GetSelected ().ToString()));
-
- }
-
- }
-
-
- // Converts a Gdk RGB color to a hex value.
- // Example: from "rgb:0,0,0" to "#000000"
- public string GdkColorToHex (Gdk.Color color)
- {
-
- return String.Format("#{0:X2}{1:X2}{2:X2}",
- (int) Math.Truncate(color.Red / 256.00),
- (int) Math.Truncate(color.Green / 256.00),
- (int) Math.Truncate(color.Blue / 256.00));
-
- }
-
-
- // Makes sure everything is in place before showing the widget
- new public void ShowAll ()
- {
-
- if (Children.Length == 2) {
-
- ToggleButton = (ToggleButton) Children [0];
- ToggleButton.Remove (ToggleButton.Child);
-
- } else {
-
- ToggleButton = new ToggleButton ();
- ToggleButton.Relief = ReliefStyle.None;
- ToggleButton.Clicked += ToggleView;
- PackStart (ToggleButton, false, false, 6);
-
- }
-
- HBox layout_horizontal = new HBox (false, 12);
- layout_horizontal.BorderWidth = 6;
-
- TreeIter iter;
- Store.GetIter (out iter, new TreePath (GetSelected ().ToString()));
-
- string text = (string) Store.GetValue (iter, 1);
- Gdk.Pixbuf pixbuf = (Gdk.Pixbuf) Store.GetValue (iter, 0);
-
- Label label = new Label (text.Replace (SelectedTextColor, SecondaryTextColor));
- label.UseMarkup = true;
-
- Arrow arrow_down = new Arrow (ArrowType.Down, ShadowType.None);
-
- layout_horizontal.PackStart (new Image (pixbuf), false, false, 0);
- layout_horizontal.PackStart (label, false, false, 0);
- layout_horizontal.PackStart (new Label (""), true, true, 0);
- layout_horizontal.PackStart (arrow_down, false, false, 0);
-
- ToggleButton.Add (layout_horizontal);
- ReorderChild (ToggleButton, 0);
-
- TreePath path = new TreePath (Selected.ToString());
- IconView.SelectPath (path);
-
- base.ShowAll ();
-
- }
-
-
- // Adds a revision to the combobox
- public void AddRow (Gdk.Pixbuf pixbuf, string header, string subtext)
- {
-
- Store.AppendValues (pixbuf, "" + header + "\n" +
- "" + subtext + "",
- Count);
-
- IconView.Model = Store;
- Count++;
-
- }
-
-
- // Toggles between a displayed image and a list of revisions
- public void ToggleView (object o, EventArgs args)
- {
-
- Viewport.Remove (Viewport.Child);
-
- if (ToggleButton.Active) {
-
- Viewport.Add (IconView);
- TreePath path = new TreePath (GetSelected ().ToString());
-
- IconView.ScrollToPath (path, (float) 0.5, (float) 0.5);
- IconView.GrabFocus ();
-
- } else {
-
- Viewport.Add (Image);
-
- }
-
- ShowAll ();
-
- }
-
-
- // Changes the image that is viewed
- public void SetImage (Image image)
- {
-
- Image = image;
- Viewport.Remove (Viewport.Child);
- Viewport.Add (Image);
- ToggleButton.Active = false;
- ShowAll ();
-
- }
-
-
- // Returns the image that is currently viewed
- public Image GetImage ()
- {
- return Image;
- }
-
-
- // Selects an item by number
- public bool SetSelected (int i)
- {
-
- if (i > -1 && i <= Count) {
- Selected = i;
- return true;
- }
-
- return false;
-
- }
-
-
- // Returns the number of the currently selected item
- public int GetSelected ()
- {
- return Selected;
- }
-
-
- // Looks up an icon from the system's theme
- public Gdk.Pixbuf GetIcon (string name, int size)
- {
- IconTheme icon_theme = new IconTheme ();
- icon_theme.AppendSearchPath (System.IO.Path.Combine ("/usr/share/sparkleshare", "icons"));
- return icon_theme.LoadIcon (name, size, IconLookupFlags.GenericFallback);
- }
-
- }
-
-
- // Derived class for the image view on the left
- public class LeftRevisionView : RevisionView
- {
-
- public LeftRevisionView () : base ()
- {
-
- // Select the second revision
- Selected = 1;
-
- // Take reading direction for time into account
- if (Direction == Gtk.TextDirection.Ltr)
- ScrolledWindow.Placement = CornerType.TopRight;
- else
- ScrolledWindow.Placement = CornerType.TopLeft;
-
- }
-
- }
-
-
- // Derived class for the image view on the right
- public class RightRevisionView : RevisionView
- {
-
- public RightRevisionView () : base ()
- {
-
- // Take reading direction for time into account
- if (Direction == Gtk.TextDirection.Ltr)
- ScrolledWindow.Placement = CornerType.TopLeft;
- else
- ScrolledWindow.Placement = CornerType.TopRight;
-
- }
-
- }
-
-}
diff --git a/SparkleDiff/SparkleDiff.cs b/SparkleDiff/SparkleDiff.cs
deleted file mode 100644
index 2c725b12..00000000
--- a/SparkleDiff/SparkleDiff.cs
+++ /dev/null
@@ -1,180 +0,0 @@
-// SparkleShare, an instant update workflow to Git.
-// Copyright (C) 2010 Hylke Bons
-//
-// 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 .
-
-using Gtk;
-using Mono.Unix;
-using System;
-using System.Diagnostics;
-using System.IO;
-using System.Text.RegularExpressions;
-using SparkleLib;
-
-namespace SparkleShare {
-
- public class SparkleDiff
- {
-
- // Short alias for the translations
- public static string _ (string s)
- {
- return Catalog.GetString (s);
- }
-
-
- // Finds out the path relative to the Git root directory
- public static string GetPathFromGitRoot (string file_path)
- {
- string git_root = GetGitRoot (file_path);
- return file_path.Substring (git_root.Length + 1);
- }
-
-
- // Finds out the path relative to the Git root directory
- public static string GetGitRoot (string file_path)
- {
-
- file_path = System.IO.Path.GetDirectoryName (file_path);
-
- while (file_path != null) {
-
- if (Directory.Exists (System.IO.Path.Combine (file_path, ".git")))
- return file_path;
-
- file_path = Directory.GetParent (file_path).FullName;
-
- }
-
- return null;
-
- }
-
-
- public static void Main (string [] args)
- {
-
- Catalog.Init (Defines.GETTEXT_PACKAGE, Defines.LOCALE_DIR);
-
- // Check whether git is installed
- Process Process = new Process ();
- Process.StartInfo.FileName = "git";
- Process.StartInfo.RedirectStandardOutput = true;
- Process.StartInfo.UseShellExecute = false;
- Process.Start ();
-
- if (Process.StandardOutput.ReadToEnd ().IndexOf ("version") == -1) {
- Console.WriteLine (_("Git wasn't found."));
- Console.WriteLine (_("You can get Git from http://git-scm.com/."));
- Environment.Exit (0);
- }
-
- UnixUserInfo UnixUserInfo = new UnixUserInfo (UnixEnvironment.UserName);
-
- // Don't allow running as root
- if (UnixUserInfo.UserId == 0) {
- Console.WriteLine (_("Sorry, you can't run SparkleShare with these permissions."));
- Console.WriteLine (_("Things would go utterly wrong."));
- Environment.Exit (0);
- }
-
- if (args.Length > 0) {
-
- if (args [0].Equals ("--help") || args [0].Equals ("-h")) {
- ShowHelp ();
- Environment.Exit (0);
- }
-
- string file_path = System.IO.Path.GetFullPath (args [0]);
-
- if (File.Exists (file_path)) {
-
- Gtk.Application.Init ();
-
- string [] revisions = GetRevisionsForFilePath (file_path);
-
- // Quit if the given file doesn't have any history
- if (revisions.Length < 2) {
- Console.WriteLine ("SparkleDiff: " + file_path + ": File has no history.");
- Environment.Exit (-1);
- }
-
- SparkleDiffWindow sparkle_diff_window;
- sparkle_diff_window = new SparkleDiffWindow (file_path, revisions);
- sparkle_diff_window.ShowAll ();
-
- // The main loop
- Gtk.Application.Run ();
-
- } else {
-
- Console.WriteLine ("SparkleDiff: " + file_path + ": No such file or directory.");
- Environment.Exit (-1);
-
- }
-
- } else {
-
- ShowHelp ();
-
- }
-
- }
-
-
- // Gets a list of all earlier revisions of this file
- public static string [] GetRevisionsForFilePath (string file_path)
- {
-
- Process process = new Process ();
- process.EnableRaisingEvents = true;
- process.StartInfo.RedirectStandardOutput = true;
- process.StartInfo.UseShellExecute = false;
-
- process.StartInfo.WorkingDirectory = SparkleDiff.GetGitRoot (file_path);
- process.StartInfo.FileName = "git";
- process.StartInfo.Arguments = "log --format=\"%H\" " + SparkleDiff.GetPathFromGitRoot (file_path);
-
- process.Start ();
-
- string output = process.StandardOutput.ReadToEnd ();
- string [] revisions = Regex.Split (output.Trim (), "\n");
-
- return revisions;
-
- }
-
-
- // Prints the help output
- public static void ShowHelp ()
- {
- Console.WriteLine (_("SparkleDiff Copyright (C) 2010 Hylke Bons"));
- Console.WriteLine (" ");
- Console.WriteLine (_("This program comes with ABSOLUTELY NO WARRANTY."));
- Console.WriteLine (_("This is free software, and you are welcome to redistribute it "));
- Console.WriteLine (_("under certain conditions. Please read the GNU GPLv3 for details."));
- Console.WriteLine (" ");
- Console.WriteLine (_("SparkleDiff let's you compare revisions of an image file side by side."));
- Console.WriteLine (" ");
- Console.WriteLine (_("Usage: sparklediff [FILE]"));
- Console.WriteLine (_("Open an image file to show its revisions"));
- Console.WriteLine (" ");
- Console.WriteLine (_("Arguments:"));
- Console.WriteLine (_("\t -h, --help\t\tDisplay this help text."));
- Console.WriteLine (" ");
- }
-
- }
-
-}
diff --git a/SparkleDiff/SparkleDiff.csproj b/SparkleDiff/SparkleDiff.csproj
deleted file mode 100644
index 95c8a972..00000000
--- a/SparkleDiff/SparkleDiff.csproj
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.50727
- 2.0
- {17BF02CB-852A-4756-BA05-EC454643C428}
- Exe
- SparkleDiff
- SparkleDiff
-
-
- true
- full
- false
- ..\bin
- DEBUG
- prompt
- 4
- false
-
-
- none
- false
- ..\bin
- prompt
- 4
- false
-
-
-
-
-
-
-
-
-
- {3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}
- FriendFace
-
-
- {2C914413-B31C-4362-93C7-1AE34F09112A}
- SparkleLib
-
-
-
-
-
- gtk-sharp-2.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/SparkleDiff/SparkleDiffWindow.cs b/SparkleDiff/SparkleDiffWindow.cs
deleted file mode 100644
index 1b69dd62..00000000
--- a/SparkleDiff/SparkleDiffWindow.cs
+++ /dev/null
@@ -1,263 +0,0 @@
-// SparkleShare, an instant update workflow to Git.
-// Copyright (C) 2010 Hylke Bons
-//
-// 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 .
-
-using FriendFace;
-using Gtk;
-using Mono.Unix;
-using System;
-using System.Diagnostics;
-using System.Text.RegularExpressions;
-
-namespace SparkleShare {
-
- // The main window for SparkleDiff
- public class SparkleDiffWindow : Window
- {
-
- // Short alias for the translations
- public static string _ (string s)
- {
- return Catalog.GetString (s);
- }
-
- private RevisionView ViewLeft;
- private RevisionView ViewRight;
-
- private string [] Revisions;
-
- public SparkleDiffWindow (string file_path, string [] revisions) : base ("")
- {
-
- string file_name = System.IO.Path.GetFileName (file_path);
- Revisions = revisions;
-
- SetPosition (WindowPosition.Center);
- BorderWidth = 12;
- IconName = "image-x-generic";
-
- FaceCollection face_collection = new FaceCollection ();
- face_collection.UseGravatar = true;
-
- DeleteEvent += Quit;
-
- Title = file_name;
-
- VBox layout_vertical = new VBox (false, 12);
-
- HBox layout_horizontal = new HBox (true, 6);
-
- Process process = new Process ();
- process.EnableRaisingEvents = true;
- process.StartInfo.RedirectStandardOutput = true;
- process.StartInfo.UseShellExecute = false;
-
- process.StartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName (file_path);
- process.StartInfo.FileName = "git";
- process.StartInfo.Arguments = "log --format=\"%ct\t%an\t%ae\" " + file_name;
- process.Start ();
-
- ViewLeft = new LeftRevisionView ();
- ViewRight = new RightRevisionView ();
-
- string output = process.StandardOutput.ReadToEnd ();
- string [] revisions_info = Regex.Split (output.Trim (), "\n");
-
- int i = 0;
- foreach (string revision_info in revisions_info) {
-
- string [] parts = Regex.Split (revision_info.Trim (), "\t");
-
- int timestamp = int.Parse (parts [0]);
- string author = parts [1];
- string email = parts [2];
-
- string date;
- // TRANSLATORS: This is a format specifier according to System.Globalization.DateTimeFormatInfo
- if (i == 0)
- date = "Latest Revision";
- else
- date = String.Format (_("{0} at {1}"),
- UnixTimestampToDateTime (timestamp).ToString (_("ddd MMM d, yyyy")),
- UnixTimestampToDateTime (timestamp).ToString (_("H:mm")));
-
- face_collection.AddFace (email);
-
- ViewLeft.AddRow (face_collection.GetFace (email, 32), author, date);
- ViewRight.AddRow (face_collection.GetFace (email, 32), author, date);
-
- i++;
-
- }
-
-
- ViewLeft.SetImage (new RevisionImage (file_path, Revisions [1]));
- ViewRight.SetImage (new RevisionImage (file_path, Revisions [0]));
-
- ViewLeft.IconView.SelectionChanged += delegate {
-
- ViewLeft.SetImage (new RevisionImage (file_path, Revisions [ViewLeft.GetSelected ()]));
-
- ViewLeft.ScrolledWindow.Hadjustment = ViewRight.ScrolledWindow.Hadjustment;
- ViewLeft.ScrolledWindow.Vadjustment = ViewRight.ScrolledWindow.Vadjustment;
-
- HookUpViews ();
-
- };
-
- ViewRight.IconView.SelectionChanged += delegate {
-
- ViewRight.SetImage (new RevisionImage (file_path, Revisions [ViewRight.GetSelected ()]));
-
- ViewRight.ScrolledWindow.Hadjustment = ViewLeft.ScrolledWindow.Hadjustment;
- ViewRight.ScrolledWindow.Vadjustment = ViewLeft.ScrolledWindow.Vadjustment;
-
- HookUpViews ();
-
- };
-
- ViewLeft.ToggleButton.Clicked += delegate {
- if (ViewLeft.ToggleButton.Active)
- DetachViews ();
- else
- HookUpViews ();
- };
-
- ViewRight.ToggleButton.Clicked += delegate {
- if (ViewLeft.ToggleButton.Active)
- DetachViews ();
- else
- HookUpViews ();
- };
-
- layout_horizontal.PackStart (ViewLeft);
- layout_horizontal.PackStart (ViewRight);
-
- ResizeToViews ();
-
- // Order time view according to the user's reading direction
- if (Direction == Gtk.TextDirection.Rtl)
- layout_horizontal.ReorderChild (ViewLeft, 1);
-
- HookUpViews ();
-
- HButtonBox dialog_buttons = new HButtonBox ();
- dialog_buttons.Layout = ButtonBoxStyle.End;
- dialog_buttons.BorderWidth = 0;
-
- Button close_button = new Button (Stock.Close);
- close_button.Clicked += delegate (object o, EventArgs args) {
- Environment.Exit (0);
- };
-
- dialog_buttons.Add (close_button);
-
- layout_vertical.PackStart (layout_horizontal, true, true, 0);
- layout_vertical.PackStart (dialog_buttons, false, false, 0);
-
- Add (layout_vertical);
-
- }
-
-
- // Resizes the window so it will fit the content in the best possible way
- private void ResizeToViews ()
- {
-
- int new_width = ViewLeft.GetImage ().Pixbuf.Width + ViewRight.GetImage ().Pixbuf.Width + 200;
- int new_height = 200;
-
- if (ViewLeft.GetImage ().Pixbuf.Height > ViewRight.GetImage ().Pixbuf.Height)
- new_height += ViewLeft.GetImage ().Pixbuf.Height;
- else
- new_height += ViewRight.GetImage ().Pixbuf.Height;
-
- if (new_width >= Screen.Width || new_height >= Screen.Height)
- Maximize ();
- else
- SetSizeRequest (new_width, new_height);
-
- }
-
-
- // Hooks up two views so their scrollbars will be kept in sync
- private void HookUpViews ()
- {
-
- ViewLeft.ScrolledWindow.Hadjustment.ValueChanged += SyncViewsHorizontally;
- ViewLeft.ScrolledWindow.Vadjustment.ValueChanged += SyncViewsVertically;
- ViewRight.ScrolledWindow.Hadjustment.ValueChanged += SyncViewsHorizontally;
- ViewRight.ScrolledWindow.Vadjustment.ValueChanged += SyncViewsVertically;
-
- }
-
-
- // Detach the two views from each other so they don't try to sync anymore
- private void DetachViews ()
- {
-
- ViewLeft.ScrolledWindow.Hadjustment.ValueChanged -= SyncViewsHorizontally;
- ViewLeft.ScrolledWindow.Vadjustment.ValueChanged -= SyncViewsVertically;
- ViewRight.ScrolledWindow.Hadjustment.ValueChanged -= SyncViewsHorizontally;
- ViewRight.ScrolledWindow.Vadjustment.ValueChanged -= SyncViewsVertically;
-
- }
-
-
- // Keeps the two image views in sync horizontally
- private void SyncViewsHorizontally (object o, EventArgs args)
- {
-
- Adjustment source_adjustment = (Adjustment) o;
-
- if (source_adjustment == ViewLeft.ScrolledWindow.Hadjustment)
- ViewRight.ScrolledWindow.Hadjustment = source_adjustment;
- else
- ViewLeft.ScrolledWindow.Hadjustment = source_adjustment;
-
- }
-
-
- // Keeps the two image views in sync vertically
- private void SyncViewsVertically (object o, EventArgs args)
- {
-
- Adjustment source_adjustment = (Adjustment) o;
-
- if (source_adjustment == ViewLeft.ScrolledWindow.Vadjustment)
- ViewRight.ScrolledWindow.Vadjustment = source_adjustment;
- else
- ViewLeft.ScrolledWindow.Vadjustment = source_adjustment;
-
- }
-
-
- // Converts a UNIX timestamp to a more usable time object
- public DateTime UnixTimestampToDateTime (int timestamp)
- {
- DateTime unix_epoch = new DateTime (1970, 1, 1, 0, 0, 0, 0);
- return unix_epoch.AddSeconds (timestamp);
- }
-
-
- // Quits the program
- private void Quit (object o, EventArgs args)
- {
- Environment.Exit (0);
- }
-
- }
-
-}
diff --git a/SparkleDiff/sparklediff.in b/SparkleDiff/sparklediff.in
deleted file mode 100644
index dba1946b..00000000
--- a/SparkleDiff/sparklediff.in
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-case $1 in
-
- --help | help)
- mono "@expanded_libdir@/@PACKAGE@/SparkleDiff.exe" --help
- ;;
-
- *)
- mono "@expanded_libdir@/@PACKAGE@/SparkleDiff.exe" $1
- ;;
-
-esac
diff --git a/configure.ac b/configure.ac
index fbe116a5..f028df0b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -101,9 +101,7 @@ build/m4/shave/shave-libtool
data/Makefile
data/icons/Makefile
help/Makefile
-FriendFace/Makefile
NotifySharp/Makefile
-SparkleDiff/Makefile
SparkleLib/AssemblyInfo.cs
SparkleLib/Defines.cs
SparkleLib/Makefile