[Debian-live-changes] r2209 - in dists/trunk/live-magic: debian src/controllers src/views

lamby-guest at alioth.debian.org lamby-guest at alioth.debian.org
Tue Jun 19 14:55:10 UTC 2007


Author: lamby-guest
Date: 2007-06-19 14:55:10 +0000 (Tue, 19 Jun 2007)
New Revision: 2209

Modified:
   dists/trunk/live-magic/debian/rules
   dists/trunk/live-magic/src/controllers/hooks.py
   dists/trunk/live-magic/src/views/hooks.py
Log:


Modified: dists/trunk/live-magic/debian/rules
===================================================================
--- dists/trunk/live-magic/debian/rules	2007-06-19 14:33:20 UTC (rev 2208)
+++ dists/trunk/live-magic/debian/rules	2007-06-19 14:55:10 UTC (rev 2209)
@@ -2,5 +2,5 @@
 
 DEB_PYTHON_SYSTEM=pycentral
 
-include /usr/share/cdbs/1/rules/debhlper.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/python-distutils.mk

Modified: dists/trunk/live-magic/src/controllers/hooks.py
===================================================================
--- dists/trunk/live-magic/src/controllers/hooks.py	2007-06-19 14:33:20 UTC (rev 2208)
+++ dists/trunk/live-magic/src/controllers/hooks.py	2007-06-19 14:55:10 UTC (rev 2209)
@@ -11,23 +11,35 @@
         self.view.do_set_selected_hook_contents(contents)
         self.hook_select_triggers_change = True
 
-    def _show_hook(self, hook_name):
-        print 1
-
     def notify_load_hooks(self):
         self.view.do_hooks_clear()
-        for filename in self.model.hooks.files.iterkeys():
+        for filename in sorted(self.model.hooks.files.iterkeys()):
             self.view.do_hook_add(filename)
 
+    def _new_hook_template(self, hook_name):
+        # Try and guess the interpreter for the specified filename
+        try:
+            interpreter = {
+                "rb" : "#!/usr/bin/env ruby",
+                "pl" : "#!/usr/bin/perl",
+                "py" : "#!/usr/bin/env python",
+            }[hook_name.rsplit(".")[1]]
+        except (KeyError, IndexError):
+            # Can't guess: assume it's a shell script.
+            interpreter = "#!/bin/sh"
+
+        return "%s\n\n# %s -- description_of_hook\n\n" % (interpreter, hook_name)
+
     def on_button_hook_new_clicked(self, *_):
         hook_name = self.view.do_show_new_hook_window()
         if hook_name is not None:
-            if len(hook_name) > 0:
-                self.model.hooks[hook_name] = ""
+            if len(hook_name) > 0 and hook_name not in self.model.hooks:
+
+                self.model.hooks[hook_name] = self._new_hook_template(hook_name)
                 self.view.set_save_enabled(True)
                 self.notify_load_hooks()
                 self.view.do_set_selected_hook(hook_name)
-                self.view.do_set_selected_hook_contents(self.model.hooks)
+                self.view.do_set_selected_hook_contents(self.model.hooks[hook_name])
             else:
                 self.view.do_show_new_hook_invalid_name()
 

Modified: dists/trunk/live-magic/src/views/hooks.py
===================================================================
--- dists/trunk/live-magic/src/views/hooks.py	2007-06-19 14:33:20 UTC (rev 2208)
+++ dists/trunk/live-magic/src/views/hooks.py	2007-06-19 14:55:10 UTC (rev 2209)
@@ -1,6 +1,7 @@
 import gtk
 import gobject
 import pango
+import mimetypes
 
 class HooksView(object):
     def __init__(self):
@@ -14,17 +15,14 @@
 
         # Configure editor
         try:
-            from gtksourceview import SourceBuffer, SourceView, SourceLanguagesManager
+            from gtksourceview import SourceBuffer, SourceView
             buffer = SourceBuffer()
             self.hook_editor = SourceView(buffer)
             self.hook_editor.set_show_line_numbers(True)
             buffer.set_highlight(True)
-            lang = SourceLanguagesManager().get_language_from_mime_type("application/x-shellscript")
-            buffer.set_language(lang)
         except ImportError:
             self.hook_editor = gtk.TextView()
 
-
         font_desc = pango.FontDescription('Monospace 8')
         if font_desc:
             self.hook_editor.modify_font(font_desc)
@@ -44,7 +42,9 @@
                 gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
 
         entry = gtk.Entry(256)
-        dialog.vbox.pack_start(entry)
+        entry.connect("activate", lambda _: dialog.action_area.get_children()[1].clicked())
+
+        dialog.vbox.pack_start(entry, padding=10)
         dialog.vbox.show_all()
         res = dialog.run()
         dialog.destroy()
@@ -107,18 +107,35 @@
         self['button_hook_rename'].set_sensitive(enabled)
         self['button_hook_delete'].set_sensitive(enabled)
 
-    def do_set_selected_hook(self, hookname):
+    def do_set_selected_hook(self, hook_name):
         # Update combo box to reflect selection
         m = self.cb.get_model()
         iter = m.get_iter_first()
+
         while iter is not None:
-            if hookname == m.get_value(iter, 0):
+            if hook_name == m.get_value(iter, 0):
                 self.cb.set_active_iter(iter)
                 return
             iter = m.iter_next(iter)
 
     def do_set_selected_hook_contents(self, contents):
+        buffer = self.hook_editor.get_buffer()
+        buffer.begin_not_undoable_action()
+
         # Set hook editor contents and allow editing
-        self.hook_editor.get_buffer().set_text(contents)
+        buffer.set_text(contents)
         self.do_enable_edit_hook(True)
+        self.hook_editor.grab_focus()
 
+        buffer.end_not_undoable_action()
+
+        # Set highlighting
+        try:
+            import gnomevfs
+            from gtksourceview import SourceLanguagesManager
+
+            mime_type = gnomevfs.get_mime_type_for_data(contents)
+            lang = SourceLanguagesManager().get_language_from_mime_type(mime_type)
+            buffer.set_language(lang)
+        except ImportError:
+            pass




More information about the Debian-live-changes mailing list