[gnome-maps/wip/mlundblad/search-as-you-type: 2/4] placeListRow: Add a function to update existing row



commit e0b94fa9ab6f5d47ad2a9cad7a133b3877bf9888
Author: Marcus Lundblad <ml update uu se>
Date:   Thu May 30 10:51:20 2019 +0200

    placeListRow: Add a function to update existing row
    
    Adds a function to update an existing row with
    a new place.

 src/placeListRow.js | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/src/placeListRow.js b/src/placeListRow.js
index da19041..836c36f 100644
--- a/src/placeListRow.js
+++ b/src/placeListRow.js
@@ -36,13 +36,13 @@ var PlaceListRow = GObject.registerClass({
 }, class PlaceListRow extends Gtk.ListBoxRow {
 
     _init(params) {
-        this.place = params.place;
+        let place = params.place;
         delete params.place;
 
         let searchString = params.searchString || '';
         delete params.searchString;
 
-        let maxChars = params.maxChars || 40;
+        this._maxChars = params.maxChars || 40;
         delete params.maxChars;
 
         let type = params.type;
@@ -50,15 +50,19 @@ var PlaceListRow = GObject.registerClass({
 
         params.height_request = ROW_HEIGHT;
         super._init(params);
+        this.update(place, type, searchString);
+    }
 
+    update(place, type, searchString) {
+        this.place = place;
         let formatter = new PlaceFormatter.PlaceFormatter(this.place);
         this.title = formatter.title;
         let markup = GLib.markup_escape_text(formatter.title, -1);
 
         this._name.label = this._boldMatch(markup, searchString);
-        this._details.max_width_chars = maxChars;
+        this._details.max_width_chars = this._maxChars;
         this._details.label = GLib.markup_escape_text(formatter.getDetailsString(),-1);
-        this._icon.gicon = this.place.icon;
+        this._icon.gicon = place.icon;
 
         if (type === PlaceStore.PlaceType.RECENT ||
             type === PlaceStore.PlaceType.RECENT_ROUTE)
@@ -67,7 +71,8 @@ var PlaceListRow = GObject.registerClass({
             this._typeIcon.icon_name = 'starred-symbolic';
         else if (type === PlaceStore.PlaceType.CONTACT)
             this._typeIcon.icon_name = 'avatar-default-symbolic';
-
+        else
+            this._typeIcon.icon_name = null;
     }
 
     _boldMatch(title, string) {


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