diff --git a/.gitignore b/.gitignore index 93c6d588..615a8356 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ Defines.cs SparkleShare/sparkleshare po/sparkleshare.pot SparkleShare/Nautilus/sparkleshare-nautilus-extension.py +gnome-doc-utils.make diff --git a/AUTHORS b/AUTHORS index 8f845076..efd98ae3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -15,6 +15,7 @@ Contributors: Łukasz Jernaś Michael Monreal Oleg Khlystov + Paul Cutler Philipp Gildein Ruben Vermeersch Sandy Armstrong diff --git a/Makefile.am b/Makefile.am index 9394c5eb..53981ba0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,6 @@ SUBDIRS = \ build \ + help \ NotifySharp \ FriendFace \ SparkleLib \ @@ -8,8 +9,11 @@ SUBDIRS = \ data \ po +EXTRA_DIST = gnome-doc-utils.make + DISTCLEANFILES = \ intltool-extract \ intltool-merge \ - intltool-update + intltool-update \ + gnome-doc-utils.make diff --git a/README b/README index 79dde817..74e4a7f3 100644 --- a/README +++ b/README @@ -38,6 +38,7 @@ SparkleShare currently requires: - gvfs >= 1.3 - intltool - nautilus-python + - pygtk Run the service: @@ -68,6 +69,7 @@ To build SparkleShare you need: - monodevelop >= 2.0 - ndesk-dbus-devel >= 0.6 - ndesk-dbus-glib-devel >= 0.6 + - nautilus-python-devel You can build and install SparkleShare like this: diff --git a/SparkleLib/SparkleRepo.cs b/SparkleLib/SparkleRepo.cs index 43ba12e7..499d8a58 100644 --- a/SparkleLib/SparkleRepo.cs +++ b/SparkleLib/SparkleRepo.cs @@ -315,10 +315,8 @@ namespace SparkleLib { Process.Start (); Process.WaitForExit (); - if (Process.StandardOutput.ReadToEnd ().TrimEnd ("\n".ToCharArray ()).Equals ("")) { - Console.WriteLine ("NO CHANGES!!"); + if (Process.StandardOutput.ReadToEnd ().TrimEnd ("\n".ToCharArray ()).Equals ("")) return; - } SparkleHelpers.DebugInfo ("Commit", "[" + Name + "] " + message); @@ -539,9 +537,10 @@ namespace SparkleLib { { if (file_path.EndsWith (".lock") || - file_path.Contains (".git") || - file_path.Contains ("/.") || - file_path.EndsWith (".swp") || + file_path.EndsWith ("~") || + file_path.Contains (".git") || + file_path.Contains ("/.") || + file_path.EndsWith (".swp") || Directory.Exists (LocalPath + file_path)) { return true; // Yes, ignore it diff --git a/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in b/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in index d2883389..9ad18f1e 100644 --- a/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in +++ b/SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in @@ -21,6 +21,10 @@ import time import gio import nautilus +import pygtk +pygtk.require('2.0') +import gtk + SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare") import gettext @@ -62,7 +66,33 @@ class SparkleShareExtension (nautilus.MenuProvider): return True - def compare_versions (self, menu, file_reference): + def copy_web_link (self, menu, file_reference): + + path = file_reference.get_path () + + # Get the remote url used for the repo + url_command = os.popen ("git config --get remote.origin.url") + url = url_command.readline ().strip () + + # Strip the unneeded parts + url = url.lstrip ("ssh://git") + url = url.lstrip ("@") + url = url.rstrip (".git") + + # Format the right web url depending on the service + relative_path = path.lstrip (SPARKLESHARE_PATH) + repo_name = relative_path [:relative_path.find ("/")] + relative_path = relative_path.lstrip (repo_name) + + if "gitorious.org" in url: + url = "http://" + url + "/blobs/master" + relative_path + if "github.com" in url: + url = "http://" + url + "/raw/master" + relative_path + + clipboard = gtk.clipboard_get () + clipboard.set_text (url) + clipboard.store () + return @@ -78,6 +108,12 @@ class SparkleShareExtension (nautilus.MenuProvider): if not (file_reference.get_path ().startswith (SPARKLESHARE_PATH)): return + web_link_menu_item = nautilus.MenuItem ("Nautilus::CopyWebLink", _("Copy Web Link"), + _("Copy the web address of this file to the clipboard")) + + web_link_menu_item.connect ("activate", self.copy_web_link, file_reference) + + epochs = ["", "", "", "", "", "", "", "", "", ""] commit_hashes = ["", "", "", "", "", "", "", "", "", ""] @@ -97,8 +133,9 @@ class SparkleShareExtension (nautilus.MenuProvider): epochs [i] = line.strip ("\n") i += 1 + # Only work if there is history if i < 2: - return + return web_link_menu_item, i = 0 for line in hash_command.readlines (): @@ -129,9 +166,5 @@ class SparkleShareExtension (nautilus.MenuProvider): earlier_version_menu_item.set_submenu (submenu) -# compare_versions_menu_item = nautilus.MenuItem ("Nautilus::CompareVersions", "Compare Versions", -# "Compare two versions of this document at any point in time") -# compare_versions_menu_item = menu_item.connect ("activate", self.compare_versions, file_reference) - - return earlier_version_menu_item, + return earlier_version_menu_item, web_link_menu_item diff --git a/SparkleShare/SparkleLog.cs b/SparkleShare/SparkleLog.cs index 32eb7ee8..b39e514c 100644 --- a/SparkleShare/SparkleLog.cs +++ b/SparkleShare/SparkleLog.cs @@ -364,7 +364,7 @@ namespace SparkleShare { if (edited_files.Children.Length > 0) { Label edited_label = new Label ("\n" + - "Edited" + + _("Edited") + "") { UseMarkup=true, Xalign = 0 @@ -378,7 +378,7 @@ namespace SparkleShare { if (added_files.Children.Length > 0) { Label added_label = new Label ("\n" + - "Added" + + _("Added") + "") { UseMarkup=true, Xalign = 0 @@ -392,7 +392,7 @@ namespace SparkleShare { if (deleted_files.Children.Length > 0) { Label deleted_label = new Label ("\n" + - "Deleted" + + _("Deleted") + "") { UseMarkup=true, Xalign = 0 @@ -406,7 +406,7 @@ namespace SparkleShare { if (moved_files.Children.Length > 0) { Label moved_label = new Label ("\n" + - "Moved" + + _("Moved") + "") { UseMarkup=true, Xalign = 0 diff --git a/autogen.sh b/autogen.sh index b220e638..3af42db6 100755 --- a/autogen.sh +++ b/autogen.sh @@ -64,6 +64,15 @@ check_autotool_version $LIBTOOLIZE 1.4.3 check_autotool_version intltoolize 0.35.0 check_autotool_version pkg-config 0.14.0 +if [ $(pkg-config --modversion gnome-doc-utils 2> /dev/null) ]; then + run gnome-doc-prepare --automake --force +else + echo "gnome-doc-utils not found; user help will not be built" + echo "AC_DEFUN([GNOME_DOC_INIT], [AC_MSG_NOTICE([])])" > build/m4/gnome-doc-utils.m4 + ACLOCAL_FLAGS="-I build/m4 $ACLOCAL_FLAGS" + touch gnome-doc-utils.make +fi + run intltoolize --force --copy run $LIBTOOLIZE --force --copy --automake run aclocal -I build/m4/sparkleshare -I build/m4/shamrock -I build/m4/shave $ACLOCAL_FLAGS diff --git a/build/m4/shamrock/gnome-doc.m4 b/build/m4/shamrock/gnome-doc.m4 index e8896bd7..3f5f638e 100644 --- a/build/m4/shamrock/gnome-doc.m4 +++ b/build/m4/shamrock/gnome-doc.m4 @@ -1,6 +1,22 @@ AC_DEFUN([SHAMROCK_CHECK_GNOME_DOC_UTILS], [ - GNOME_DOC_INIT([$1], HAVE_GNOME_DOC_UTILS=yes, HAVE_GNOME_DOC_UTILS=no) + AC_ARG_ENABLE([user-help], + AC_HELP_STRING([--enable-user-help], [Enable building the user-help [[default=auto]]]),, + enable_user_help=auto) - AM_CONDITIONAL(ENABLE_GNOME_DOCS, test "x$HAVE_GNOME_DOC_UTILS" = "xyes") + if test "x$enable_user_help" = "xauto"; then + PKG_CHECK_MODULES(GNOME_DOC_UTILS, + gnome-doc-utils, + enable_user_help=yes, enable_user_help=no) + elif test "x$enable_user_help" = "xyes"; then + PKG_CHECK_MODULES(GNOME_DOC_UTILS, gnome-doc-utils) + fi + + if test "x$enable_user_help" = "xyes"; then + GNOME_DOC_INIT([$1], enable_user_help=yes, enable_user_help=no) + else + AM_CONDITIONAL(ENABLE_SK, false) + fi + + AM_CONDITIONAL(HAVE_GNOME_DOC_UTILS, test "x$enable_user_help" = "xyes") ]) diff --git a/configure.ac b/configure.ac index 87a2d9f0..37f64697 100644 --- a/configure.ac +++ b/configure.ac @@ -31,6 +31,9 @@ SHAMROCK_EXPAND_LIBDIR SHAMROCK_EXPAND_BINDIR SHAMROCK_EXPAND_DATADIR +dnl Help files +SHAMROCK_CHECK_GNOME_DOC_UTILS(0.17.3) + AC_PROG_INSTALL AC_PATH_PROG(GMCS, gmcs, no) @@ -96,6 +99,7 @@ build/m4/shave/shave build/m4/shave/shave-libtool data/Makefile data/icons/Makefile +help/Makefile FriendFace/Makefile NotifySharp/Makefile SparkleDiff/Makefile @@ -110,3 +114,13 @@ po/Makefile.in Makefile ]) +echo " +SparkleShare ${VERSION} + +Configuration: + Prefix : ${prefix} + Nautilus plugin : ${have_nautilus_python} + User Help : ${enable_user_help} (requires gnome-doc-utils >= 0.17.3) + +" + diff --git a/help/C/account-creation.page b/help/C/account-creation.page new file mode 100644 index 00000000..4c976af5 --- /dev/null +++ b/help/C/account-creation.page @@ -0,0 +1,32 @@ + + + + + + Add the location of your remote folders. + + + Paul Cutler + pcutler@gnome.org + + + + + + Account Setup + +

Insert how to setup your accounts here) +

+ +

Insert more help here, if needed. +

+ +
diff --git a/help/C/advanced.page b/help/C/advanced.page new file mode 100644 index 00000000..a75e3a3e --- /dev/null +++ b/help/C/advanced.page @@ -0,0 +1,32 @@ + + + + + Get help for advanced actions. + + + Paul Cutler + pcutler@gnome.org + + + + + + Advanced Options and Help + +
+ + TBD + + TBD +
+ +
diff --git a/help/C/index.page b/help/C/index.page new file mode 100644 index 00000000..21761b56 --- /dev/null +++ b/help/C/index.page @@ -0,0 +1,40 @@ + + + + + + Paul Cutler + pcutler@gnome.org + + + + + + SparkleShare + +
+ Account Setup +
+ +
+ Sync and Share Files +
+ +
+ Advanced options and help +
+ +
+ Common Problems +
+ +
diff --git a/help/C/introduction.page b/help/C/introduction.page new file mode 100644 index 00000000..2515ce2f --- /dev/null +++ b/help/C/introduction.page @@ -0,0 +1,42 @@ + + + + + + + Introduction to SparkleShare. + + + Paul Cutler + pcutler@gnome.org + + + + + + Introduction + +

+ SparkleShare is an application that allows you to easily + sync and share your files and folders. SparkeShare uses the + distributed version control system Git to keep a record + of all the changes in your files, making it easy to easily go back + to an earlier version of the file if you make a mistake. +

+ +
+ <gui>SparkleShare</gui> screenshot + SparkleShare + +

Sparkleshare

+
+
+ +
diff --git a/help/C/legal.xml b/help/C/legal.xml new file mode 100644 index 00000000..86d6173a --- /dev/null +++ b/help/C/legal.xml @@ -0,0 +1,9 @@ + +

This work is licensed under a +Creative Commons +Attribution-Share Alike 3.0 Unported License.

+

As a special exception, the copyright holders give you permission to copy, +modify, and distribute the example code contained in this document under the +terms of your choosing, without restriction.

+
diff --git a/help/C/share.page b/help/C/share.page new file mode 100644 index 00000000..95e95c56 --- /dev/null +++ b/help/C/share.page @@ -0,0 +1,32 @@ + + + + + + Sync and share your folders and files. + + + Paul Cutler + pcutler@gnome.org + + + + + + Sync and share your files and folders + +

Insert help here. +

+ +

+

+ +
diff --git a/help/Makefile.am b/help/Makefile.am new file mode 100644 index 00000000..7fa2e1e9 --- /dev/null +++ b/help/Makefile.am @@ -0,0 +1,17 @@ +if HAVE_GNOME_DOC_UTILS +include $(top_srcdir)/gnome-doc-utils.make + +DOC_ID = sparkleshare + +DOC_INCLUDES = legal.xml + +DOC_PAGES = account-creation.page \ + advanced.page \ + index.page \ + introduction.page \ + share.page + +DOC_LINGUAS = + +dist-hook: doc-dist-hook +endif