From 5db2c0a453c5e39f49a9546f62b3f8323b316079 Mon Sep 17 00:00:00 2001 From: Sai Vineet Date: Sat, 15 Mar 2014 05:32:36 +0000 Subject: Add font size changing theres a + and a - button on the view toolbar now. Also fixed a tooltip bug for the previous commit. --- diff --git a/develop-activity/develop_app.py b/develop-activity/develop_app.py index b83d0de..2f65032 100644 --- a/develop-activity/develop_app.py +++ b/develop-activity/develop_app.py @@ -95,6 +95,8 @@ class DevelopActivity(activity.Activity): view_btn.props.label = _('View') view_toolbar.connect('theme-changed', self.editor.theme_changed_cb) + view_toolbar.connect('font-size-changed', + self.editor.font_changed_cb) toolbarbox.toolbar.insert(view_btn, -1) edit_btn = ToolbarButton() diff --git a/develop-activity/sourceview_editor.py b/develop-activity/sourceview_editor.py index 9e2cb77..c47bcc7 100644 --- a/develop-activity/sourceview_editor.py +++ b/develop-activity/sourceview_editor.py @@ -31,6 +31,9 @@ from sugar3.graphics.icon import Icon from widgets import TabLabel import logviewer +FONT_CHANGE_STEP = 2 +DEFAULT_FONT_SIZE = 10 + class S_WHERE: selection, file, multifile = range(3) # an enum @@ -50,6 +53,7 @@ class GtkSourceview2Editor(Gtk.Notebook): self.set_scrollable(True) self.theme_state = "light" + self.font_size = DEFAULT_FONT_SIZE def theme_changed_cb(self, widget, theme_name): self.theme_state = theme_name @@ -61,6 +65,16 @@ class GtkSourceview2Editor(Gtk.Notebook): else: children[0].get_children()[0].set_theme(theme_name) + def font_changed_cb(self, widget, size): + self.font_size = size + for i in range(0, self.get_n_pages()): + page = self.get_nth_page(i) + children = page.get_children() + if isinstance(children[0], Icon): + children[1].get_children()[0].set_font_size(size) + else: + children[0].get_children()[0].set_font_size(size) + def _page_removed_cb(self, __notebook, page, n): try: page.page.remove() @@ -88,6 +102,7 @@ class GtkSourceview2Editor(Gtk.Notebook): page = GtkSourceview2Page(full_path) page.set_theme(self.theme_state) + page.set_font_size(self.font_size) vbox = Gtk.VBox() if full_path.endswith('.svg'): @@ -298,11 +313,15 @@ class GtkSourceview2Page(GtkSource.View): self.set_tab_width(4) self.set_auto_indent(True) - self.modify_font(Pango.FontDescription('Monospace 10')) - self.load_text() self.show() + def set_font_size(self, size): + desc = Pango.FontDescription( + 'Monospace %d' % size) + # print 'Monospace %d' % size + self.modify_font(desc) + def set_theme(self, theme): if theme == "light": self.text_buffer.set_style_scheme(self.light_theme) diff --git a/develop-activity/toolbars.py b/develop-activity/toolbars.py index f8b0807..b1a8746 100644 --- a/develop-activity/toolbars.py +++ b/develop-activity/toolbars.py @@ -34,27 +34,56 @@ SEARCH_ICONS = {False: {S_WHERE.selection: "search-in-selection", S_WHERE.file: "regex", S_WHERE.multifile: "multi-regex", }} +from sourceview_editor import FONT_CHANGE_STEP, DEFAULT_FONT_SIZE class DevelopViewToolbar(Gtk.Toolbar): __gsignals__ = { 'theme-changed': (GObject.SIGNAL_RUN_FIRST, None, - (str,)) + (str,)), + 'font-size-changed': (GObject.SIGNAL_RUN_FIRST, None, + (int,)), } def __init__(self, _activity): GObject.GObject.__init__(self) self._activity = _activity + self.theme_state = "light" + self.font_size = DEFAULT_FONT_SIZE self.theme_toggler = ToolButton('dark-theme') - self.theme_state = "light" self.theme_toggler.connect('clicked', self._toggled_theme) + self.theme_toggler.set_tooltip('Switch to Dark Theme') self.insert(self.theme_toggler, -1) self.theme_toggler.show() + sep = Gtk.SeparatorToolItem() + self.insert(sep, -1) + sep.show() + + self.font_plus = ToolButton('gtk-add') + self.font_plus.connect('clicked', self._font_size_increase) + self.font_plus.set_tooltip('Increase Font Size') + self.insert(self.font_plus, -1) + self.font_plus.show() + + self.font_minus = ToolButton('gtk-remove') + self.font_minus.connect('clicked', self._font_size_decrease) + self.font_minus.set_tooltip('Decrease Font Size') + self.insert(self.font_minus, -1) + self.font_minus.show() + self.show() + def _font_size_increase(self, button): + self.font_size += FONT_CHANGE_STEP + self.emit('font-size-changed', self.font_size) + + def _font_size_decrease(self, button): + self.font_size -= FONT_CHANGE_STEP + self.emit('font-size-changed', self.font_size) + def _toggled_theme(self, button): if self.theme_state == "dark": self.theme_state = "light" -- cgit v0.9.1