[polari/wip/kunaljain/experimental-polari-search] ResultView: Show relevant messages



commit 8a7b7e43ecdb83824f0d32fae46fe61fec7dbce2
Author: Kunaal Jain <kunaalus gmail com>
Date:   Sun Jul 3 20:00:42 2016 +0530

    ResultView: Show relevant messages

 data/resources/main-window.ui |    6 +++---
 src/mainWindow.js             |   41 +++++++++++++++++++++++++++++++++--------
 2 files changed, 36 insertions(+), 11 deletions(-)
---
diff --git a/data/resources/main-window.ui b/data/resources/main-window.ui
index c50884d..4884983 100644
--- a/data/resources/main-window.ui
+++ b/data/resources/main-window.ui
@@ -220,7 +220,7 @@
               <object class="Gjs_FixedSizeFrame" id="roomSidebar">
                 <property name="visible">True</property>
                 <property name="hexpand">False</property>
-                <property name="width">200</property>
+                <!-- <property name="width">200</property> -->
                 <property name="shadow-type">none</property>
                 <style>
                   <class name="polari-room-list"/>
@@ -234,7 +234,7 @@
               <object class="Gjs_FixedSizeFrame">
                 <property name="visible">True</property>
                 <property name="hexpand">False</property>
-                <property name="width">200</property>
+                <!-- <property name="width">200</property> -->
                 <property name="shadow-type">none</property>
                 <child>
                   <object class="GtkScrolledWindow">
@@ -263,7 +263,7 @@
               <object class="Gjs_FixedSizeFrame">
                 <property name="visible">True</property>
                 <property name="hexpand">False</property>
-                <property name="width">200</property>
+                <!-- <property name="width">200</property> -->
                 <property name="shadow-type">none</property>
                 <child>
                   <object class="GtkScrolledWindow">
diff --git a/src/mainWindow.js b/src/mainWindow.js
index b2b13de..97c79fd 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -277,13 +277,35 @@ const MainWindow = new Lang.Class({
     },
 
     _rowactivated: function(box, row) {
-        let logManager = LogManager.getDefault();
-        this._logWalker = logManager.walkEvents(row,
-                                                row.channel);
-
-        this._fetchingBacklog = true;
-        this._logWalker.getEvents(10,
-                                  Lang.bind(this, this._onLogEventsReady));
+        this._cancellable.cancel();
+        this._cancellable.reset();
+        let sparql = (
+            'select nie:plainTextContent(?msg) as ?message ' +
+            '       if (nmo:from(?msg) = nco:default-contact-me,' +
+            '           "%s", nco:nickname(nmo:from(?msg))) as ?sender ' +
+            // FIXME: how do we handle the "real" message type?
+            '       %d as ?messageType ' +
+            '       ?timestamp ' +
+            '{ ?msg a nmo:IMMessage; ' +
+            '       nie:contentCreated ?timestamp; ' +
+            '       nmo:communicationChannel ?chan . ' +
+            'BIND( ?timestamp - %s as ?timediff ) . ' +
+            // FIXME: filter by account
+            '  filter (nie:title (?chan) = "%s" && ?timediff >= 0) ' +
+            '} order by asc (?timestamp) LIMIT 10'
+        ).format(row.nickname,
+                 Tp.ChannelTextMessageType.NORMAL,
+                 row.timestamp,
+                 row.channel);
+        log(sparql);
+        // let logManager = LogManager.getDefault();
+        // this._logWalker = logManager.walkEvents(row,
+        //                                         row.channel);
+        //
+        // this._fetchingBacklog = true;
+        // this._logWalker.getEvents(10,
+        //                           Lang.bind(this, this._onLogEventsReady));
+        this._logManager.query(sparql,this._cancellable,Lang.bind(this, this._onLogEventsReady));
         let buffer = this._resultStack.get_buffer();
         let iter = buffer.get_end_iter();
         //this._resultStack.buffer.insert(iter,row._content_label.label, -1);
@@ -291,8 +313,10 @@ const MainWindow = new Lang.Class({
     },
 
     _onLogEventsReady: function(events) {
+        let buffer = this._resultStack.get_buffer();
+        buffer.set_text("",-1);
         for (let i = 0; i < events.length; i++) {
-            let buffer = this._resultStack.get_buffer();
+
             let iter = buffer.get_end_iter();
             this._resultStack.buffer.insert(iter,events[i].message, -1);
             this._resultStack.buffer.insert(iter,'\n', -1);
@@ -329,6 +353,7 @@ const MainWindow = new Lang.Class({
                 row.uid = events[i].id;
                 row.channel = channel;
                 row.nickname = channel;
+                row.timestamp = time;
                 widgetMap[uid] = row;
             }
             row._content_label.label = message;


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