[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