Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2012-05-02 10:53:17 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2012-05-02 10:53:17 (GMT)
commitb5d73e8fd2584e51954ba5d722b3907461c5dee9 (patch)
tree38f6ef8fcfcc00475f245769de0436c39bae1bc3
parente87d9e0a7ea6932485d704dc02b272659ad3b7d1 (diff)
Use FontComboBox to show font previews - Sans selected by default fix SL #2759
'Times New Roman' was selected by default in AbiWord but the font is not available, then the information in the doc and the font combo was out of sync. Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
-rw-r--r--AbiWordActivity.py6
-rw-r--r--toolbar.py23
-rw-r--r--widgets.py4
3 files changed, 30 insertions, 3 deletions
diff --git a/AbiWordActivity.py b/AbiWordActivity.py
index ed1a3f8..8e94205 100644
--- a/AbiWordActivity.py
+++ b/AbiWordActivity.py
@@ -207,6 +207,12 @@ class AbiWordActivity(activity.Activity):
self.abiword_canvas.invoke_cmd(
'com.abisource.abiword.loadbindings.fromURI',
keybindings_file, 0, 0)
+ # set default font
+ self.abiword_canvas.select_all()
+ # get_selection return content and length
+ if self.abiword_canvas.get_selection('text/plain')[1] == 0:
+ logging.error('Setting default font to Sans in new documents')
+ self.abiword_canvas.set_font_name('Sans')
def get_preview(self):
if not hasattr(self.abiword_canvas, 'render_page_to_image'):
diff --git a/toolbar.py b/toolbar.py
index 9a924d3..4af47ff 100644
--- a/toolbar.py
+++ b/toolbar.py
@@ -37,8 +37,8 @@ from sugar.activity.widgets import UndoButton
from sugar.activity.widgets import RedoButton
from widgets import AbiButton
-from widgets import FontCombo
from widgets import FontSizeCombo
+from fontcombobox import FontComboBox
logger = logging.getLogger('write-activity')
@@ -402,8 +402,13 @@ class TextToolbar(gtk.Toolbar):
def __init__(self, abiword_canvas):
gtk.Toolbar.__init__(self)
- font_name = ToolComboBox(FontCombo(abiword_canvas))
- self.insert(font_name, -1)
+ self.font_name_combo = FontComboBox()
+ self.font_name_combo.set_font_name('Sans')
+ self._fonts_changed_id = self.font_name_combo.connect('changed',
+ self._font_changed_cb, abiword_canvas)
+ self._abi_handler = abiword_canvas.connect('font-family',
+ self._font_family_cb)
+ self.insert(ToolComboBox(self.font_name_combo), -1)
font_size = ToolComboBox(FontSizeCombo(abiword_canvas))
self.insert(font_size, -1)
@@ -449,6 +454,18 @@ class TextToolbar(gtk.Toolbar):
self.show_all()
+ def _font_changed_cb(self, combobox, abi):
+ logger.debug('Setting font: %s', combobox.get_font_name())
+ try:
+ abi.handler_block(self._abi_handler)
+ abi.set_font_name(combobox.get_font_name())
+ finally:
+ abi.handler_unblock(self._abi_handler)
+
+ def _font_family_cb(self, abi, font_family):
+ logging.debug('Abiword font changed to %s', font_family)
+ self.font_name_combo.set_font_name(font_family)
+
def _setToggleButtonState(self, button, b, id):
button.handler_block(id)
button.set_active(b)
diff --git a/widgets.py b/widgets.py
index b79dbf7..0df2b7e 100644
--- a/widgets.py
+++ b/widgets.py
@@ -27,6 +27,9 @@ from sugar.datastore import datastore
logger = logging.getLogger('write-activity')
+"""
+# The FontCombo is not used anymore, keep the code here for reference
+# for a few versions
class FontCombo(ComboBox):
@@ -86,6 +89,7 @@ class FontCombo(ComboBox):
self.handler_block(self._fonts_changed_id)
self.set_active(font_index)
self.handler_unblock(self._fonts_changed_id)
+"""
class FontSizeCombo(ComboBox):