{"thread":{"id":"10155","subject":"[PATCH] gtksourceview2 support for gitview","startedAt":"2007-10-05T07:20:49Z","lastAt":"2007-10-05T07:20:49Z","messageCount":1,"participants":["Frederick Akalin"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"54911","messageId":"1191568849-6923-1-git-send-email-akalin@akalin.cx","threadId":"10155","inReplyTo":null,"subject":"[PATCH] gtksourceview2 support for gitview","fromName":"Frederick Akalin","fromEmail":"akalin@akalin.cx","sentAt":"2007-10-05T07:20:49Z","receivedAt":"2007-10-05T07:20:49Z","isPatch":true,"sender":{"key":"akalin@akalin.cx","avatar":null},"body":"Added support for gtksourceview2 module (pygtksourceview 1.90.x) in\ngitview.  Also refactored code that creates the source buffer and view.\n\nSigned-off-by: Frederick Akalin <akalin@akalin.cx>\n---\n contrib/gitview/gitview |   53 +++++++++++++++++++++++++++-------------------\n 1 files changed, 31 insertions(+), 22 deletions(-)\n\ndiff --git a/contrib/gitview/gitview b/contrib/gitview/gitview\nindex 5931766..449ee69 100755\n--- a/contrib/gitview/gitview\n+++ b/contrib/gitview/gitview\n@@ -28,11 +28,19 @@ import string\n import fcntl\n \n try:\n+    import gtksourceview2\n+    have_gtksourceview2 = True\n+except ImportError:\n+    have_gtksourceview2 = False\n+\n+try:\n     import gtksourceview\n     have_gtksourceview = True\n except ImportError:\n     have_gtksourceview = False\n-    print \"Running without gtksourceview module\"\n+\n+if not have_gtksourceview2 and not have_gtksourceview:\n+    print \"Running without gtksourceview2 or gtksourceview module\"\n \n re_ident = re.compile('(author|committer) (?P<ident>.*) (?P<epoch>\\d+) (?P<tz>[+-]\\d{4})')\n \n@@ -58,6 +66,26 @@ def show_date(epoch, tz):\n \n \treturn time.strftime(\"%Y-%m-%d %H:%M:%S\", time.gmtime(secs))\n \n+def get_source_buffer_and_view():\n+\tif have_gtksourceview2:\n+\t\tbuffer = gtksourceview2.Buffer()\n+\t\tslm = gtksourceview2.LanguageManager()\n+\t\tgsl = slm.get_language(\"diff\")\n+\t\tbuffer.set_highlight_syntax(True)\n+\t\tbuffer.set_language(gsl)\n+\t\tview = gtksourceview2.View(buffer)\n+\telif have_gtksourceview:\n+\t\tbuffer = gtksourceview.SourceBuffer()\n+\t\tslm = gtksourceview.SourceLanguagesManager()\n+\t\tgsl = slm.get_language_from_mime_type(\"text/x-patch\")\n+\t\tbuffer.set_highlight(True)\n+\t\tbuffer.set_language(gsl)\n+\t\tview = gtksourceview.SourceView(buffer)\n+\telse:\n+\t\tbuffer = gtk.TextBuffer()\n+\t\tview = gtk.TextView(buffer)\n+\treturn (buffer, view)\n+\n \n class CellRendererGraph(gtk.GenericCellRenderer):\n \t\"\"\"Cell renderer for directed graph.\n@@ -582,17 +610,7 @@ class DiffWindow(object):\n \t\thpan.pack1(scrollwin, True, True)\n \t\tscrollwin.show()\n \n-\t\tif have_gtksourceview:\n-\t\t\tself.buffer = gtksourceview.SourceBuffer()\n-\t\t\tslm = gtksourceview.SourceLanguagesManager()\n-\t\t\tgsl = slm.get_language_from_mime_type(\"text/x-patch\")\n-\t\t\tself.buffer.set_highlight(True)\n-\t\t\tself.buffer.set_language(gsl)\n-\t\t\tsourceview = gtksourceview.SourceView(self.buffer)\n-\t\telse:\n-\t\t\tself.buffer = gtk.TextBuffer()\n-\t\t\tsourceview = gtk.TextView(self.buffer)\n-\n+\t\t(self.buffer, sourceview) = get_source_buffer_and_view()\n \n \t\tsourceview.set_editable(False)\n \t\tsourceview.modify_font(pango.FontDescription(\"Monospace\"))\n@@ -956,16 +974,7 @@ class GitView(object):\n \t\tvbox.pack_start(scrollwin, expand=True, fill=True)\n \t\tscrollwin.show()\n \n-\t\tif have_gtksourceview:\n-\t\t\tself.message_buffer = gtksourceview.SourceBuffer()\n-\t\t\tslm = gtksourceview.SourceLanguagesManager()\n-\t\t\tgsl = slm.get_language_from_mime_type(\"text/x-patch\")\n-\t\t\tself.message_buffer.set_highlight(True)\n-\t\t\tself.message_buffer.set_language(gsl)\n-\t\t\tsourceview = gtksourceview.SourceView(self.message_buffer)\n-\t\telse:\n-\t\t\tself.message_buffer = gtk.TextBuffer()\n-\t\t\tsourceview = gtk.TextView(self.message_buffer)\n+\t\t(self.message_buffer, sourceview) = get_source_buffer_and_view()\n \n \t\tsourceview.set_editable(False)\n \t\tsourceview.modify_font(pango.FontDescription(\"Monospace\"))\n-- \n1.5.3.3\n"}]}