[gnome-characters] character: Inherit font from character list



commit 38b4a90956cf27f01194ef45f8f89c0e5de690b5
Author: Daiki Ueno <dueno src gnome org>
Date:   Mon Feb 16 08:52:35 2015 +0900

    character: Inherit font from character list

 src/character.js     |   32 +++-----------------------------
 src/characterList.js |    6 ++++++
 src/window.js        |    9 +++++----
 3 files changed, 14 insertions(+), 33 deletions(-)
---
diff --git a/src/character.js b/src/character.js
index 66f440b..1925702 100644
--- a/src/character.js
+++ b/src/character.js
@@ -33,34 +33,10 @@ const CharacterDialog = new Lang.Class({
     Template: 'resource:///org/gnome/Characters/character.ui',
     InternalChildren: ['main-stack', 'character-label', 'detail-label',
                        'copy-button', 'related-listbox'],
-    Properties: {
-        'font': GObject.ParamSpec.string(
-            'font', '', '',
-            GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
-            'Cantarell')
-    },
-
-    get font() {
-        return this._font;
-    },
-
-    set font(v) {
-        if (v == this._font)
-            return;
-
-        this._font = v;
-        let description = Pango.FontDescription.from_string(this._font);
-        this._character_label.override_font(description);
-
-        let children = this._related_listbox.get_children();
-        for (let index in children) {
-            let label = children[index].get_children()[0];
-            label.override_font(description);
-        }
-    },
 
     _init: function(params) {
-        let filtered = Params.filter(params, { character: null });
+        let filtered = Params.filter(params, { character: null,
+                                               fontDescription: null });
         params = Params.fill(params, { use_header_bar: true,
                                        width_request: 400,
                                        height_request: 400 });
@@ -86,9 +62,7 @@ const CharacterDialog = new Lang.Class({
                     this._main_stack.visible_child_name = 'character';
             }));
 
-        Main.settings.bind('font', this, 'font',
-                           Gio.SettingsBindFlags.DEFAULT);
-
+        this._character_label.override_font(filtered.fontDescription);
         this._setCharacter(filtered.character);
     },
 
diff --git a/src/characterList.js b/src/characterList.js
index 9931830..951e10e 100644
--- a/src/characterList.js
+++ b/src/characterList.js
@@ -295,6 +295,12 @@ const CharacterListView = new Lang.Class({
         this._characters = characters;
     },
 
+    getFontDescription: function() {
+        if (this._filterFontDescription)
+            return this._filterFontDescription;
+        return this._fontDescription;
+    },
+
     updateCharacterList: function() {
         let characters = this._characters;
         let fontDescription = this._fontDescription;
diff --git a/src/window.js b/src/window.js
index dc19ae6..b079df8 100644
--- a/src/window.js
+++ b/src/window.js
@@ -204,7 +204,7 @@ const MainWindow = new Lang.Class({
 
     _character: function(action, v) {
         let [uc, length] = v.get_string()
-        this._mainView.selectCharacter(uc);
+        this._mainView.addToRecent(uc);
     },
 
     _filterFont: function(action, v) {
@@ -318,7 +318,7 @@ const MainView = new Lang.Class({
         }
     },
 
-    selectCharacter: function(uc) {
+    addToRecent: function(uc) {
         if (this.recentCharacters.indexOf(uc) < 0) {
             this.recentCharacters.push(uc);
             if (this.recentCharacters.length > this._maxRecentCharacters)
@@ -331,12 +331,13 @@ const MainView = new Lang.Class({
     },
 
     _handleCharacterSelected: function(widget, uc) {
-        this.selectCharacter(uc);
+        this.addToRecent(uc);
 
         let dialog = new Character.CharacterDialog({
             character: uc,
             modal: true,
-            transient_for: this.get_toplevel()
+            transient_for: this.get_toplevel(),
+            fontDescription: this.visible_child.getFontDescription()
         });
 
         dialog.show();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]