diff --git a/SparkleShare/Common/HTML/event-log.html b/SparkleShare/Common/HTML/event-log.html index 4ddaaa7a..368d5722 100755 --- a/SparkleShare/Common/HTML/event-log.html +++ b/SparkleShare/Common/HTML/event-log.html @@ -83,7 +83,7 @@ dl { padding : 6px 0 0 0; - margin: 0 0 12px 0; + margin: 0 0 12px 0; table-layout: fixed; } diff --git a/SparkleShare/Linux/Makefile.am b/SparkleShare/Linux/Makefile.am index 7a2a9b87..9e8f5e55 100644 --- a/SparkleShare/Linux/Makefile.am +++ b/SparkleShare/Linux/Makefile.am @@ -1,5 +1,4 @@ -SUBDIRS = Nautilus \ - Pixmaps +SUBDIRS = Pixmaps ASSEMBLY = SparkleShare TARGET = exe diff --git a/SparkleShare/Linux/Nautilus/Makefile.am b/SparkleShare/Linux/Nautilus/Makefile.am deleted file mode 100755 index 8240d060..00000000 --- a/SparkleShare/Linux/Nautilus/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -SOURCES = \ - sparkleshare-nautilus-extension.py \ - sparkleshare-nautilus3-extension.py - -if NAUTILUS2_EXTENSION_ENABLED -NAUTILUS_PYTHON_INSTALL_DIR=$(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR)) -extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR) -extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus-extension.py)) -endif -if NAUTILUS3_EXTENSION_ENABLED -NAUTILUS_PYTHON_INSTALL_DIR=$(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR)) -extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR) -extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus3-extension.py) -endif -EXTRA_DIST = $(SOURCES) sparkleshare-nautilus-extension.py.in sparkleshare-nautilus3-extension.py.in diff --git a/SparkleShare/Linux/Nautilus/sparkleshare-nautilus-extension.py.in b/SparkleShare/Linux/Nautilus/sparkleshare-nautilus-extension.py.in deleted file mode 100755 index dde1ca83..00000000 --- a/SparkleShare/Linux/Nautilus/sparkleshare-nautilus-extension.py.in +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/python -# 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 . - -import os -import shutil -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 -gettext.bindtextdomain('sparkleshare', '@prefix@/share/locale') -gettext.textdomain('sparkleshare') -_ = gettext.gettext - -class SparkleShareExtension (nautilus.MenuProvider): - - - def __init__ (self): - - debug = "Loaded Nautilus SparkleShare Extension." - - - def checkout_version (self, menu, file_reference, commit_hash, username, timestamp): - - file_name = file_reference.get_basename ().replace (" ", "\ ").replace ("(", "\(").replace (")", "\)") - file_path = file_reference.get_path ().replace (" ", "\ ").replace ("(", "\(").replace (")", "\)") - tmp_file_path = os.path.join (SPARKLESHARE_PATH, ".tmp", file_reference.get_basename ()) - - # Move the current version to a temporary path - shutil.move (file_reference.get_path (), tmp_file_path) - - # Check out the earlier version - os.chdir (file_reference.get_parent ().get_path ()) - os.popen ("git checkout " + commit_hash + " " + file_name - .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)")) - - new_tmp_file_name = file_name + " (" + username + ", " - new_tmp_file_name += time.strftime ("%H:%M %d %b %Y", timestamp).replace (" 0", " ") + ") " - - # Rename the checked out file - shutil.move (file_name, new_tmp_file_name) - - # Move the original file back - shutil.move (tmp_file_path, file_path) - - return True - - - 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 = "https://" + url + "/master" + relative_path - - url = url.replace (" ", "%20"); - - clipboard = gtk.clipboard_get () - clipboard.set_text (url) - clipboard.store () - - return - - - def get_file_items (self, window, files): - - # Only work if one file is selected - if len (files) != 1: - return - - file_reference = gio.File (files [0].get_uri ()) - - # Only work if we're in a SparkleShare repository folder - 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 = ["", "", "", "", "", "", "", "", "", ""] - - os.chdir (file_reference.get_parent ().get_path ()) - - time_command = os.popen ("git log -10 --format='%at' " + file_reference.get_basename () - .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)")) - - author_command = os.popen ("git log -10 --format='%an' " + file_reference.get_basename () - .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)")) - - hash_command = os.popen ("git log -10 --format='%H' " + file_reference.get_basename () - .replace (" ", "\ ").replace ("(", "\(").replace (")", "\)")) - - i = 0 - for line in time_command.readlines (): - epochs [i] = line.strip ("\n") - i += 1 - - # Only work if there is history - if i < 2: - return web_link_menu_item, - - i = 0 - for line in hash_command.readlines (): - commit_hashes [i] = line.strip ("\n") - i += 1 - - earlier_version_menu_item = nautilus.MenuItem ("Nautilus::OpenOlderVersion", _("Get Earlier Version"), - _("Make a copy of an earlier version in this folder")) - submenu = nautilus.Menu () - - i = 0 - for line in author_command.readlines (): - - if i > 0: - - timestamp = time.strftime ("%d %b\t%H:%M", time.localtime (float (epochs [i]))) - username = line.strip ("\n") - - menu_item = nautilus.MenuItem ("Nautilus::Version" + epochs [i], - timestamp + "\t" + username, - _("Select to get a copy of this version")) - - menu_item.connect ("activate", self.checkout_version, file_reference, commit_hashes [i], - username, time.localtime (float (epochs [i]))) - submenu.append_item (menu_item) - - i += 1 - - earlier_version_menu_item.set_submenu (submenu) - - - return earlier_version_menu_item, web_link_menu_item diff --git a/SparkleShare/Linux/Nautilus/sparkleshare-nautilus3-extension.py.in b/SparkleShare/Linux/Nautilus/sparkleshare-nautilus3-extension.py.in deleted file mode 100755 index f12577e9..00000000 --- a/SparkleShare/Linux/Nautilus/sparkleshare-nautilus3-extension.py.in +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/python -# 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 . - -import os -import shutil -import time -import urllib - -# http://projects.gnome.org/nautilus-python/documentation/html/ -from gi.repository import Nautilus, GObject, Gtk, Gdk - -SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare") - -import gettext -gettext.bindtextdomain('sparkleshare', '@prefix@/share/locale') -gettext.textdomain('sparkleshare') -_ = gettext.gettext - -class SparkleShareExtension (GObject.GObject, Nautilus.MenuProvider): - - - def __init__ (self): - pass - - def checkout_version (self, menu, file_path, commit_hash, username, timestamp): - - file_name = os.path.basename (file_path) - tmp_file_path = os.path.join (SPARKLESHARE_PATH, ".tmp", file_name) - - # Move the current version to a temporary path - shutil.move (file_path, tmp_file_path) - - # Check out the earlier version - os.chdir (os.path.dirname (file_path)) - os.popen ("git checkout " + commit_hash + " '" + file_name + "'") - - new_tmp_file_name = file_name + " (" + username + ", " - new_tmp_file_name += time.strftime ("%H:%M %d %b %Y", timestamp).replace (" 0", " ") + ") " - - # Rename the checked out file - shutil.move (file_name, new_tmp_file_name) - - # Move the original file back - shutil.move (tmp_file_path, file_path) - - return True - - def format_web_link (self, path): - # Get the remote url used for the repo - self.chdir_to_repo_base(path) - url_command = os.popen ("git config --get remote.origin.url") - origin_url = url_command.readline ().strip () - if not origin_url: - return - - # Get components - # TODO use regex here or something not so ugly - protocol, remaining = origin_url.split ("://", 1) - host, origin_path = remaining.split("@")[1].split("/", 1); - # Format the right web url depending on the service - repo_base = self.get_repo_base_path(path) - relative_path = path.split(repo_base, 1)[1].lstrip("/") - - #url = url.rstrip (".git") - if "gitorious.org" in host: - # ssh://git@gitorious.org/gnome-design/gnome-design.git - # http://gitorious.org/gnome-design/gnome-design/blobs/raw/master/COPYING - url = "http://" + host + "/" + urllib.quote(origin_path.rstrip(".git")) + "/blobs/master/" + urllib.quote(relative_path) - elif "github.com" in host: - # ssh://git@github.com/hbons/SparkleShare.git - # https://raw.github.com/hbons/SparkleShare/master/README - url = "https://raw.github.com/" + urllib.quote(origin_path.rstrip(".git")) + "/master/" + urllib.quote(relative_path) - else: - # https://git.one-gear.com/?p=thansen/Public.git;a=blob;f=SparkleShare.txt;hb=HEAD - url = "http://" + host + "/?p=" + urllib.quote(origin_path) +";a=blob;f=" + urllib.quote(relative_path) + ";hb=HEAD" - - return url - - def copy_web_link (self, menu, path): - url = self.format_web_link(path) - clipboard = Gtk.Clipboard.get (Gdk.Atom.intern ("CLIPBOARD", False)) - clipboard.set_text (url, -1) - clipboard.store () - - return - - def chdir_to_repo_base(self, file_path): - base_path = self.get_repo_base_path(file_path) - os.chdir(base_path) - - def get_repo_base_path(self, path): - path = os.path.abspath(path) - parts = path.split(SPARKLESHARE_PATH, 1)[1].split("/") - if len(parts) > 1: - sub_folder = parts[1] - else: - sub_folder = parts[0] - return SPARKLESHARE_PATH + "/" + sub_folder - - def get_file_items (self, window, files): - - # Only work if one file is selected - if len (files) != 1: - return - - file_reference = files [0] - - # Only work if we're in a SparkleShare repository folder - if file_reference.is_directory (): - return - if not (file_reference.get_parent_uri ().startswith ('file://' + SPARKLESHARE_PATH)): - return - if file_reference.get_parent_uri () == 'file://' + SPARKLESHARE_PATH: - return - - file_path = urllib.unquote ('/' + file_reference.get_uri ().lstrip('file:/')) - url = self.format_web_link (file_path) - parent_path = os.path.dirname (os.path.abspath (file_path)) - - top_menuitem = Nautilus.MenuItem (name="Nautilus::SparkleShare", - label="SparkleShare") - - top_submenu = Nautilus.Menu () - top_menuitem.set_submenu (top_submenu) - - web_link_menu_item_copy = Nautilus.MenuItem (name="Nautilus::CopyWebLink", - label=_("Copy Web Link"), - tip=_("Copy the web address of this file to the clipboard")) - - web_link_menu_item_copy.connect ("activate", self.copy_web_link, file_path) - - - epochs = ["", "", "", "", "", "", "", "", "", ""] - commit_hashes = ["", "", "", "", "", "", "", "", "", ""] - - - time_command = os.popen ("git log -10 --format='%at' '" + file_path + "'") - - author_command = os.popen ("git log -10 --format='%an' '" + file_path + "'") - - hash_command = os.popen ("git log -10 --format='%H' '" + file_path + "'") - - i = 0 - for line in time_command.readlines (): - epochs [i] = line.strip ("\n") - i += 1 - - - # Only work if there is history - if i < 2: - top_submenu.append_item (web_link_menu_item_copy) - return [top_menuitem] - - i = 0 - for line in hash_command.readlines (): - commit_hashes [i] = line.strip ("\n") - i += 1 - - earlier_version_menu_item = Nautilus.MenuItem (name="Nautilus::OpenOlderVersion", - label=_("Get Earlier Version"), - tip=_("Make a copy of an earlier version in this folder")) - version_submenu = Nautilus.Menu () - - i = 0 - for line in author_command.readlines (): - - if i > 0: - - timestamp = time.strftime ("%d %b\t%H:%M", time.localtime (float (epochs [i]))) - username = line.strip ("\n") - - menu_item = Nautilus.MenuItem (name="Nautilus::Version" + epochs [i], - label=timestamp + "\t" + username, - tip=_("Select to get a copy of this version")) - - menu_item.connect ("activate", self.checkout_version, file_path, commit_hashes [i], - username, time.localtime (float (epochs [i]))) - version_submenu.append_item (menu_item) - - i += 1 - - earlier_version_menu_item.set_submenu (version_submenu) - top_submenu.append_item (earlier_version_menu_item) - top_submenu.append_item (web_link_menu_item_copy) - - return [top_menuitem] diff --git a/build/m4/sparkleshare/nautilus-python.m4 b/build/m4/sparkleshare/nautilus-python.m4 deleted file mode 100755 index cec0a72e..00000000 --- a/build/m4/sparkleshare/nautilus-python.m4 +++ /dev/null @@ -1,34 +0,0 @@ -AC_DEFUN([SPARKLESHARE_NAUTILUS_PYTHON], -[ - AC_ARG_ENABLE(nautilus-extension, - AC_HELP_STRING([--disable-nautilus-extension],[Do not install the Nautilus plugin]), enable_nautilus_extension=$enableval, enable_nautilus_extension=yes ) - if test x$enable_nautilus_extension = xyes; then - PKG_CHECK_MODULES(NAUTILUS_PYTHON, nautilus-python < 1.1, have_nautilus2_python=yes, have_nautilus2_python=no) - if test "x$have_nautilus2_python" = "xyes"; then - NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`" - AC_SUBST(NAUTILUS_PREFIX) - NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`" - AC_SUBST(NAUTILUS_PYTHON_DIR) - AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, true) - else - AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, false) - fi - PKG_CHECK_MODULES(NAUTILUS3_PYTHON, nautilus-python >= 1.1, have_nautilus3_python=yes, have_nautilus3_python=no) - if test "x$have_nautilus3_python" = "xyes"; then - NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`" - AC_SUBST(NAUTILUS_PREFIX) - NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`" - AC_SUBST(NAUTILUS_PYTHON_DIR) - AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, true) - else - AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, false) - fi - else - have_nautilus2_python="disabled" - have_nautilus3_python="disabled" - fi - - AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, test "x$enable_nautilus_extension" = "xyes") - AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, test "x$enable_nautilus_extension" = "xyes") -]) - diff --git a/configure.ac b/configure.ac index 6f4dc050..e007801d 100755 --- a/configure.ac +++ b/configure.ac @@ -118,9 +118,6 @@ AC_SUBST([GUISUBDIRS]) SHAMROCK_CHECK_NUNIT -dnl Get nautilus extensions directory -SPARKLESHARE_NAUTILUS_PYTHON - SHAVE_INIT([build/m4/shave], [enable]) AC_OUTPUT([ @@ -141,9 +138,6 @@ SparkleShare/Linux/Pixmaps/icons/Makefile SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile SparkleShare/Linux/sparkleshare -SparkleShare/Linux/Nautilus/Makefile -SparkleShare/Linux/Nautilus/sparkleshare-nautilus-extension.py -SparkleShare/Linux/Nautilus/sparkleshare-nautilus3-extension.py SparkleShare/Makefile Makefile ]) @@ -154,8 +148,6 @@ SparkleShare ${VERSION} Configuration: Prefix : ${prefix} Build Gtk+ UI : ${enable_gtkui} - Nautilus 2.x plugin : ${have_nautilus2_python} - Nautilus 3.x plugin : ${have_nautilus3_python} "