diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 280 |
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")) |