Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/editor.py
diff options
context:
space:
mode:
authorDaniel Francis <santiago.danielfrancis@gmail.com>2011-12-20 15:36:09 (GMT)
committer Daniel Francis <santiago.danielfrancis@gmail.com>2011-12-20 15:36:09 (GMT)
commit02154f94bd08ed42442d88e885c910c0cf2a3b9d (patch)
treeb70ef6a8d441634ed9945fddcfc59d68e119e3b3 /editor.py
parent678210eff0604cd49fecdbfe2cdea4f1e59589af (diff)
GObject signal handling implemented
Diffstat (limited to 'editor.py')
-rw-r--r--editor.py87
1 files changed, 17 insertions, 70 deletions
diff --git a/editor.py b/editor.py
index 16528bb..d9345fc 100644
--- a/editor.py
+++ b/editor.py
@@ -34,20 +34,15 @@ import gtksourceview2
from sugar.graphics.combobox import ComboBox
from sugar.graphics.toolcombobox import ToolComboBox
-STYLE_MANAGER = gtksourceview2.style_scheme_manager_get_default()
-# Style Files extracted from / Archivos Style extraidos de :
-# http://live.gnome.org/GtkSourceView/StyleSchemes
-STYLE_MANAGER.append_search_path(os.path.join(os.environ["SUGAR_BUNDLE_PATH"],
- "styles"))
-STYLES = STYLE_MANAGER.get_scheme_ids()
LANGUAGE_MANAGER = gtksourceview2.language_manager_get_default()
-LANGUAGES = LANGUAGE_MANAGER.get_language_ids()
-
class Editor(gtksourceview2.View):
__gsignals__ = {"pep8-aviable": (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
- (gobject.TYPE_BOOLEAN,)),}
+ (gobject.TYPE_BOOLEAN,)),
+ "language-changed": (gobject.SIGNAL_RUN_LAST,
+ gobject.TYPE_NONE,
+ (gobject.TYPE_STRING,)),}
def __init__(self):
gtksourceview2.View.__init__(self)
@@ -74,35 +69,16 @@ class Editor(gtksourceview2.View):
self._tagtable.add(self.error_tag)
self.buffer = gtksourceview2.Buffer(tag_table=self._tagtable)
+ self.buffer.set_highlight_syntax(True)
self.set_buffer(self.buffer)
self.show_all()
- def _set_style(self, widget):
- name = self.style_combo.get_active()
- id = STYLES[name]
- self.buffer.set_style_scheme(STYLE_MANAGER.get_scheme(id))
-
- def make_style_combo(self, toolbar):
- self.style_combo = ComboBox()
- count = 0
- classic = 0
- for style in STYLES:
- self.style_combo.append_item(None, style.capitalize())
- if style == "classic":
- classic = count
- count += 1
- self.style_combo.set_active(classic)
- self.style_combo.connect("changed", self._set_style)
- tool_item = ToolComboBox(self.style_combo)
- toolbar.insert(tool_item, -1)
- tool_item.show_all()
-
- def _set_show_line_numbers(self, button):
- if button.get_active():
- self.set_show_line_numbers(True)
- else:
- self.set_show_line_numbers(False)
+ def set_style(self, style):
+ self.buffer.set_style_scheme(style)
+
+ def _set_show_line_numbers(self, widget, active):
+ self.set_show_line_numbers(active)
def _copy_cb(self, widget):
clipboard = gtk.Clipboard()
@@ -127,37 +103,9 @@ class Editor(gtksourceview2.View):
def _redo_cb(self, widget):
self.buffer.redo()
- def _make_languages_combo(self, toolbar):
- self.lang_combo = ComboBox()
- self.lang_combo.append_item(None, _("Plain text"))
- self.lang_combo.set_active(0)
-
- for lang in LANGUAGES:
- self.lang_combo.append_item(None, lang.capitalize())
-
- self.lang_combo.connect("changed", self._set_language)
-
- tool_item = ToolComboBox(self.lang_combo)
- toolbar.insert(tool_item, -1)
-
- tool_item.show()
-
- def _set_language(self, combo):
- name = self.lang_combo.get_active()
- if name != 0:
- id = LANGUAGES[name - 1]
- self.lang = LANGUAGE_MANAGER.get_language(id)
- self.buffer.set_highlight_syntax(True)
- self.buffer.set_language(self.lang)
- if id == "python":
- self.emit("pep8-aviable", True)
- else:
- self.emit("pep8-aviable", False)
-
- elif name == 0:
- self.buffer.set_highlight_syntax(False)
- self.lang = None
- self.emit("pep8-aviable", False)
+ def set_language(self, lang):
+ self.lang = lang
+ self.buffer.set_language(lang)
def _search_and_active_language(self, mimetype):
encontrado = False
@@ -166,11 +114,9 @@ class Editor(gtksourceview2.View):
if len(lang.get_mime_types()):
mime = lang.get_mime_types()[0]
if mimetype == mime:
- self.buffer.set_highlight_syntax(True)
self.buffer.set_language(lang)
list_num = LANGUAGES.index(id)
- self.lang_combo.set_active(
- list_num + 1)
+ self.emit("language-changed", list_num + 1)
encontrado = True
if id == "python":
@@ -178,8 +124,8 @@ class Editor(gtksourceview2.View):
else:
self.emit("pep8-aviable", False)
if not encontrado:
- self.buffer.set_highlight_syntax(False)
- self.lang_combo.set_active(0)
+ self.buffer.set_language(None)
+ self.emit("language-changed", 0)
self.lang = None
self.emit("pep8-aviable", False)
@@ -274,4 +220,5 @@ class Editor(gtksourceview2.View):
_buffer.place_cursor(start)
self.scroll_to_iter(start, 0.1)
+
self.scroll_to_iter(end, 0.1)