Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'activity.py')
-rw-r--r--activity.py280
1 files changed, 60 insertions, 220 deletions
diff --git a/activity.py b/activity.py
index de122d3..ae1488f 100644
--- a/activity.py
+++ b/activity.py
@@ -43,12 +43,12 @@ from sugar.datastore import datastore
from sugar.activity import activity
from pep8_check import PEP8_Check
-from font_options import FontToolbarButton
-from editor import Editor, LANGUAGE_MANAGER, LANGUAGES
+import options
+from editor import Editor
from python_console import PythonConsole
import file_choosers
-file_choosers.langsmanager = LANGUAGE_MANAGER
-file_choosers.langs = LANGUAGES
+file_choosers.langsmanager = options.LANGUAGE_MANAGER
+file_choosers.langs = options.LANGUAGES
class JAMEdit(activity.Activity):
@@ -62,6 +62,7 @@ class JAMEdit(activity.Activity):
self.editor = Editor()
self.editor.connect("pep8-aviable", self.enable_pep8)
+ self.editor.connect('language-changed', self.language_changed)
self.editor.set_size_request(800, 790)
scroll = gtk.ScrolledWindow()
@@ -71,220 +72,67 @@ class JAMEdit(activity.Activity):
scroll.show_all()
vbox = gtk.VBox()
- vbox.pack_start(scroll, True, True, 0)
- vbox.show_all()
+ vpaned = gtk.VPaned()
+ vpaned.pack1(scroll)
+ vbox.pack_start(vpaned, True, True, 0)
self.set_canvas(vbox)
# ****** Toolbars ******
- self.toolbar_box = ToolbarBox()
-
- activity_button = ActivityToolbarButton(self)
- activity_toolbar = activity_button.page
-
- # Abrir objeto / Open object
- open_obj_btn = ToolButton("open-from-journal")
- open_obj_btn.connect("clicked",
- file_choosers.open_from_journal, None, self)
- open_obj_btn.set_tooltip(_("Open object from journal"))
- activity_toolbar.insert(open_obj_btn, -1)
-
- # Separador / Separator
- separator = gtk.SeparatorToolItem()
- separator.set_draw(True)
- separator.set_expand(False)
- activity_toolbar.insert(separator, -1)
-
- # ****** Open File button ******
- open_btn = ToolButton("fileopen")
- open_btn.set_tooltip(_("Open File"))
- open_btn.set_accelerator('<ctrl>o')
- open_btn.connect("clicked", self.open_file)
- activity_toolbar.insert(open_btn, -1)
-
- # ****** Save File button ******
- save_btn = ToolButton("stock_save")
- save_btn.set_tooltip(_("Save this file"))
- save_btn.set_accelerator('<ctrl>s')
- save_btn.connect("clicked", self.save_file)
- activity_toolbar.insert(save_btn, -1)
-
- activity_toolbar.show_all()
- activity_toolbar.stop.hide()
-
- # Guardar como / Save As
- save_as = gtk.MenuItem(_("Save on the file system."))
- activity_toolbar.keep.props.palette.menu.append(save_as)
- save_as.connect("activate", self.save_file_as)
- save_as.show()
-
- # Nuevo / New
- new = ToolButton("new")
- new.set_tooltip(_("New file"))
- new.set_accelerator('<ctrl>n')
- new.connect("clicked", self.new)
- activity_toolbar.insert(new, 6)
- new.show()
-
- activity_toolbar.keep.show()
-
- self.toolbar_box.toolbar.insert(activity_button, 0)
-
- # Edicion / Edit Toolbar
-
- edit_toolbar = EditToolbar()
- edit_toolbar_button = ToolbarButton(label=_("Edit"),
- page=edit_toolbar,
- icon_name='toolbar-edit')
-
- edit_toolbar.cut = ToolButton("cut")
- edit_toolbar.cut.set_tooltip(_("Cut"))
- edit_toolbar.cut.set_accelerator('<ctrl>x')
- edit_toolbar.insert(edit_toolbar.cut, 4)
-
- separator = gtk.SeparatorToolItem()
- separator.set_draw(False)
- separator.set_expand(True)
- edit_toolbar.insert(separator, -1)
-
- edit_toolbar.pep8_btn = ToolButton('pep8')
- edit_toolbar.pep8_btn.set_tooltip(_("PEP 8 Check"))
- edit_toolbar.pep8_btn.connect("clicked", self.pep8_check)
- edit_toolbar.insert(edit_toolbar.pep8_btn, -1)
-
- edit_toolbar.pep8_datetime_separator = gtk.SeparatorToolItem()
- edit_toolbar.pep8_datetime_separator.set_draw(True)
- edit_toolbar.insert(edit_toolbar.pep8_datetime_separator, -1)
-
- insert_datetime = ToolButton("insert-datetime")
- insert_datetime.connect("clicked",
- self.editor._insert_date_time)
- insert_datetime.set_tooltip(_("Insert date and time"))
- edit_toolbar.insert(insert_datetime, -1)
- insert_datetime.show_all()
-
- edit_toolbar.copy.connect("clicked", self.editor._copy_cb)
- edit_toolbar.paste.connect("clicked", self.editor._paste_cb)
- edit_toolbar.undo.connect("clicked", self.editor._undo_cb)
- edit_toolbar.redo.connect("clicked", self.editor._redo_cb)
- edit_toolbar.cut.connect("clicked", self.editor._cut_cb)
-
- edit_toolbar.show_all()
- edit_toolbar.pep8_btn.hide()
- edit_toolbar.pep8_datetime_separator.set_draw(False)
-
- self.toolbar_box.toolbar.insert(edit_toolbar_button, -1)
-
- self.edit_toolbar = edit_toolbar
-
- # Separador / Separator
- separator = gtk.SeparatorToolItem()
- separator.set_draw(False)
- self.toolbar_box.toolbar.insert(separator, -1)
-
- # Buscar / Search
- search_entry = iconentry.IconEntry()
- search_entry.set_size_request(gtk.gdk.screen_width() / 3, -1)
- search_entry.set_icon_from_name(
- iconentry.ICON_ENTRY_PRIMARY, 'system-search')
- search_entry.add_clear_button()
- search_entry.connect('activate',
- self._search_entry_activate_cb)
- search_entry.connect('changed',
- self._search_entry_changed_cb)
- search_item = gtk.ToolItem()
- search_item.add(search_entry)
- self.toolbox.toolbar.insert(search_item, -1)
-
- self._search_prev = ToolButton('go-previous-paired')
- self._search_prev.set_tooltip(_('Previous'))
- self._search_prev.connect('clicked',
- self.editor._search_prev_cb)
- self.toolbox.toolbar.insert(self._search_prev, -1)
-
- self._search_next = ToolButton('go-next-paired')
- self._search_next.set_tooltip(_('Next'))
- self._search_next.connect('clicked',
- self.editor._search_next_cb)
- self.toolbox.toolbar.insert(self._search_next, -1)
+ self.toolbar_box = options.OptionWidget(self, self.editor.get_pango_context())
+ self.toolbar_box.connect('open-from-journal', file_choosers.open_from_journal, None, self)
+ self.toolbar_box.connect('open-file', self.open_file)
+ self.toolbar_box.connect('save-file', self.save_file)
+ self.toolbar_box.connect('save-as', self.save_file_as)
+ self.toolbar_box.connect('new-file', self.new)
+ self.toolbar_box.connect('pep8-check', self.pep8_check)
+ self.toolbar_box.connect('insert-datetime', self.editor._insert_date_time)
+ self.toolbar_box.connect('copy', self.editor._copy_cb)
+ self.toolbar_box.connect('paste', self.editor._paste_cb)
+ self.toolbar_box.connect('undo', self.editor._undo_cb)
+ self.toolbar_box.connect('redo', self.editor._redo_cb)
+ self.toolbar_box.connect('cut', self.editor._cut_cb)
+ self.toolbar_box.connect('search-text', self._search_text)
+ self.toolbar_box.connect('search-prev', self.editor._search_prev_cb)
+ self.toolbar_box.connect('search-next', self.editor._search_next_cb)
+ self.toolbar_box.connect('show-line-numbers', self.editor._set_show_line_numbers)
+ self.toolbar_box.connect('language-changed', self.change_language)
+ self.toolbar_box.connect('style-changed', self.change_style)
+ self.toolbar_box.connect('font-changed', self.change_font)
+ self.toolbar_box.show_all()
+ self.set_toolbar_box(self.toolbar_box)
# Barra de estado de PEP8 / PEP8 status bar
- self.pep8 = PEP8_Check(self)
+ self.pep8 = PEP8_Check()
self.pep8_bar = gtk.Statusbar()
- #self.pep8.connect("show-bar", (lambda w, bar: bar.show_all()), self.pep8_bar)
- #self.pep8.connect("hide-bar", (lambda w, bar: bar.hide()), self.pep8_bar)
+ self.pep8.connect("show-bar", (lambda w, bar: bar.show_all()), self.pep8_bar)
+ self.pep8.connect("hide-bar", (lambda w, bar: bar.hide()), self.pep8_bar)
self.pep8_bar.label = gtk.Label()
- #self.pep8.connect("bar-text", (lambda w, t, l: l.set_text(t)), self.pep8_bar.label)
+ self.pep8.connect("bar-text", (lambda w, t, l: l.set_text(t)), self.pep8_bar.label)
self.pep8_bar.add(self.pep8_bar.label)
vbox.pack_end(self.pep8_bar, False, True, 0)
-
- # Preferencias / preferences
-
- preferences_toolbar = gtk.Toolbar()
-
- show_line_numbers = ToggleToolButton('show-numbers')
- show_line_numbers.set_tooltip(_("Show line numbers"))
-
- show_line_numbers.set_active(True)
- show_line_numbers.connect("clicked", \
- self.editor._set_show_line_numbers)
- show_line_numbers.show()
- preferences_toolbar.insert(show_line_numbers, -1)
-
- self.editor._make_languages_combo(preferences_toolbar)
- self.editor.make_style_combo(preferences_toolbar)
-
- separator = gtk.SeparatorToolItem()
- separator.set_draw(False)
- separator.set_expand(True)
- preferences_toolbar.insert(separator, -1)
- separator.show_all()
self.python_console = PythonConsole()
- self.python_console.showed = False
- vbox.pack_end(self.python_console, False, True, 0)
-
- self.python_console.hide()
-
- python_console_btn = ToolButton("python-console")
- python_console_btn.set_tooltip(_("Show or hide the python console"))
- python_console_btn.connect("clicked", self.show_python_console)
- preferences_toolbar.insert(python_console_btn, -1)
- python_console_btn.show_all()
-
- preferences = ToolbarButton()
- preferences.props.page = preferences_toolbar
- preferences.props.icon_name = 'preferences-system'
- preferences.show_all()
-
- self.toolbar_box.toolbar.insert(preferences, -1)
-
- font_options = FontToolbarButton()
- font_options.connect("load-pango-context",
- self.load_pango_context)
- font_options.load_toolbar()
- font_options.connect("font-changed", self.change_font)
- self.toolbar_box.toolbar.insert(font_options, -1)
- font_options.show()
-
- # Separador / Separator
-
- separator = gtk.SeparatorToolItem()
- separator.set_draw(False)
- separator.set_expand(True)
- self.toolbar_box.toolbar.insert(separator, -1)
-
- # Boton salir / Stop Button
-
- exit = StopButton(self)
- self.toolbar_box.toolbar.insert(exit, -1)
+ self.python_console.show()
+ vpaned.pack2(self.python_console)
+ vpaned.show_all()
+ vbox.show_all()
- self.toolbar_box.show_all()
+ def change_style(self, widget, style):
+ self.editor.set_style(style)
+
+ def language_changed(self, widget, new_lang):
+ self.toolbar_box.set_active_lang(int(new_lang))
+
+ def change_language(self, widget, id, language):
+ if id == "python":
+ self.enable_pep8(None, True)
+ else:
+ self.enable_pep8(None, False)
+ self.editor.set_language(language)
- self.set_toolbar_box(self.toolbar_box)
-
def show_python_console(self, widget):
if not self.python_console.showed:
self.python_console.show()
@@ -294,12 +142,8 @@ class JAMEdit(activity.Activity):
self.python_console.hide()
self.python_console.showed = False
- def _search_entry_activate_cb(self, entry):
- self.editor.set_search_text(entry.props.text)
- self.update_search_buttons()
-
- def _search_entry_changed_cb(self, entry):
- self.editor.set_search_text(entry.props.text)
+ def _search_text(self, widget, text):
+ self.editor.set_search_text(text)
self.update_search_buttons()
def update_search_buttons(self):
@@ -315,15 +159,13 @@ class JAMEdit(activity.Activity):
self._search_next.props.sensitive = next_result != _1
def enable_pep8(self, widget, active):
- self.edit_toolbar.pep8_btn.set_visible(active)
- self.edit_toolbar.pep8_datetime_separator.set_draw(active)
+ self.toolbar_box.set_pep8_sensitive(active)
def change_font(self, widget, family, face, size):
- self.editor.modify_font(
- pango.FontDescription("%s %s %d" % (family, face, size)))
-
- def load_pango_context(self, widget):
- return self.editor.get_pango_context()
+ self.editor.modify_font(pango.FontDescription("%s %s %d" %
+ (family,
+ face,
+ size)))
def pep8_check(self, widget):
self.pep8.check_file(self.editor)
@@ -365,17 +207,15 @@ class JAMEdit(activity.Activity):
file.close()
def new(self, widget):
- self.editor.pep8.check_exit()
+ self.pep8.check_exit(self.editor.get_buffer(), self.editor._get_all_text())
_continue = self.save_file(None, type="exit")
if _continue:
self.metadata["mime_type"] = mime.GENERIC_TYPE_TEXT
self.editor.lang = None
self.editor.file = None
- self.editor.lang_combo.set_active(0)
+ self.toolbar_box.set_active_lang(0)
self.editor.buffer.set_highlight_syntax(False)
- self.edit_toolbar.pep8_btn.hide()
- self.edit_toolbar.pep8_datetime_separator.set_draw(
- False)
+ self.toolbar_box.set_pep8_sensitive(False)
self.editor.buffer.set_text("")
self.set_title(_("New"))