loleaflet/src/core/Socket.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
New commits: commit 6f69af91e68e577aff4e4214ab584aaa8460896f Author: Pranav Kant <pran...@collabora.com> Date: Tue Feb 9 18:16:10 2016 +0530 loleaflet: Fire event on initialization complete Change-Id: Iaba99d88b1ce770374f9f39a443b169c8c019d72 Reviewed-on: https://gerrit.libreoffice.org/22234 Reviewed-by: Jan Holesovsky <ke...@collabora.com> Tested-by: Jan Holesovsky <ke...@collabora.com> diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js index cfd9788..68dc42d 100644 --- a/loleaflet/src/core/Socket.js +++ b/loleaflet/src/core/Socket.js @@ -19,6 +19,43 @@ L.Socket = L.Class.extend({ this.socket.onopen = L.bind(this._onOpen, this); this.socket.onmessage = L.bind(this._onMessage, this); this.socket.binaryType = 'arraybuffer'; + + // When all these conditions are met, fire statusindicator:initializationComplete + map.initConditions = { + 'docLayer': false, + 'statusindicatorfinish': false, + 'StyleApply': false, + 'CharFontName': false, + 'updatepermission': false + }; + map.initComplete = false; + + map._fireInitComplete = L.bind(this._fireInitComplete, this); + map.on('updatepermission', function(e){ + if (map.initComplete) + return; + map._fireInitComplete('updatepermission'); + }).on('commandstatechanged', function(e){ + if (map.initComplete) + return; + if (e.commandName === '.uno:StyleApply') + map._fireInitComplete('StyleApply'); + else if (e.commandName === '.uno:CharFontName') + map._fireInitComplete('CharFontName'); + }); + }, + + _fireInitComplete: function (condition) { + if (this._map.initComplete) + return; + + this._map.initConditions[condition] = true; + for (var key in this._map.initConditions) { + if (!this._map.initConditions[key]) + return; + } + this._map.fire('statusindicator', {statusType: 'initializationComplete'}); + this._map.initComplete = true; }, close: function () { @@ -171,6 +208,7 @@ L.Socket = L.Class.extend({ this._map._docLayer = docLayer; this._map.addLayer(docLayer); + this._map._fireInitComplete('docLayer'); } // these can arrive very early during the startup @@ -185,6 +223,7 @@ L.Socket = L.Class.extend({ } else if (textMsg.startsWith('statusindicatorfinish:')) { this._map.fire('statusindicator', {statusType : 'finish'}); + this._map._fireInitComplete('statusindicatorfinish'); return; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits