[polari/wip/carlosg/tracker: 415/445] chatView: Replace TpLogger with tracker
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [polari/wip/carlosg/tracker: 415/445] chatView: Replace TpLogger with tracker
- Date: Mon, 21 Jun 2021 22:04:10 +0000 (UTC)
commit fe05d42418bcb804456213e9d0423c37702091b7
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Jan 8 16:10:17 2016 +0100
chatView: Replace TpLogger with tracker
src/chatView.js | 34 ++++++++++------------------------
src/logger.js | 2 +-
src/main.js | 1 -
3 files changed, 11 insertions(+), 26 deletions(-)
---
diff --git a/src/chatView.js b/src/chatView.js
index ffb4b425..a90f7462 100644
--- a/src/chatView.js
+++ b/src/chatView.js
@@ -9,9 +9,9 @@ import Pango from 'gi://Pango';
import PangoCairo from 'gi://PangoCairo';
import Polari from 'gi://Polari';
import Tp from 'gi://TelepathyGLib';
-import Tpl from 'gi://TelepathyLogger';
import { DropTargetIface } from './pasteManager.js';
+import { LogWalker } from './logger.js';
import { UserPopover } from './userList.js';
import { UserStatusMonitor } from './userTracker.js';
import { URLPreview } from './urlPreview.js';
@@ -359,18 +359,11 @@ const ChatView = GObject.registerClass({
});
this._updateMaxNickChars(this._room.account.nickname.length);
- let isRoom = room.type === Tp.HandleType.ROOM;
- let target = new Tpl.Entity({
- type: isRoom ? Tpl.EntityType.ROOM : Tpl.EntityType.CONTACT,
- identifier: room.channel_name,
- });
- let logManager = Tpl.LogManager.dup_singleton();
- this._logWalker = logManager.walk_filtered_events(
- room.account, target,
- Tpl.EventTypeMask.TEXT, null);
+ this._logWalker = new LogWalker(this._room);
this._fetchingBacklog = true;
- this._getLogEvents(NUM_INITIAL_LOG_EVENTS);
+ this._logWalker.getEvents(
+ NUM_INITIAL_LOG_EVENTS, this._onLogEventsReady.bind(this));
this._autoscroll = true;
this._originalUpper = this.vadjustment.get_upper();
@@ -556,18 +549,14 @@ const ChatView = GObject.registerClass({
this._nickStatusChangedId = 0;
this._userTracker = null;
- this._logWalker.run_dispose();
this._logWalker = null;
}
- async _getLogEvents(num) {
- const [events] = await this._logWalker.get_events_async(num);
-
+ _onLogEventsReady(events) {
this._hideLoadingIndicator();
this._fetchingBacklog = false;
- let messages = events.map(e => this._createMessage(e));
- this._pendingLogs = messages.concat(this._pendingLogs);
+ this._pendingLogs = events.concat(this._pendingLogs);
this._insertPendingLogs();
}
@@ -577,17 +566,13 @@ const ChatView = GObject.registerClass({
let msg = Polari.Message.new_from_tp_message(source);
msg.pendingId = valid ? id : undefined;
return msg;
- } else if (source instanceof Tpl.Event) {
- let msg = Polari.Message.new_from_tpl_event(source);
- msg.pendingId = undefined;
- return msg;
}
throw new Error(`Cannot create message from source ${source}`);
}
_getReadyLogs() {
- if (this._logWalker.is_end())
+ if (this._logWalker.isEnd())
return this._pendingLogs.splice(0);
let nick = this._pendingLogs[0].get_sender();
@@ -743,7 +728,7 @@ const ChatView = GObject.registerClass({
_fetchBacklog() {
if (this.vadjustment.value !== 0 ||
- this._logWalker.is_end())
+ this._logWalker.isEnd())
return Gdk.EVENT_PROPAGATE;
if (this._fetchingBacklog)
@@ -752,7 +737,8 @@ const ChatView = GObject.registerClass({
this._fetchingBacklog = true;
this._showLoadingIndicator();
this._backlogTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 500, () => {
- this._getLogEvents(NUM_LOG_EVENTS);
+ this._logWalker.getEvents(
+ NUM_LOG_EVENTS, this._onLogEventsReady.bind(this));
this._backlogTimeoutId = 0;
return GLib.SOURCE_REMOVE;
});
diff --git a/src/logger.js b/src/logger.js
index 08363558..1b8c34d9 100644
--- a/src/logger.js
+++ b/src/logger.js
@@ -1,4 +1,4 @@
-/* exported GenericQuery, LogWalker */
+export { LogWalker };
const { Gio, GLib, Polari, Tracker } = imports.gi;
diff --git a/src/main.js b/src/main.js
index 28aec7e4..43b72e77 100755
--- a/src/main.js
+++ b/src/main.js
@@ -24,7 +24,6 @@ pkg.require({
'Secret': '1',
'Soup': '2.4',
'TelepathyGLib': '0.12',
- 'TelepathyLogger': '0.2',
'Tracker': '2.0',
});
pkg.requireSymbol('Gio', '2.0', 'Application.send_notification');
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]