Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-1909

Transcript Window should be recomposable




      The original problem defines that chat messages are sometimes displayed out of order. The direct cause
      of this is unknown (I suspect threading/timing issues). To work around the issue, this commit now
      adds the capability to recompose the entire transcript window from memory.

      A drawback of this is that a(nother) copy of the chat is now kept in memory (the 'entries' list that
      is now added to TranscriptWindow). This might make Spark use more memory.

      I've opted for a rewrite, as in the course of applying fixes to the existing code, I repreatedly got
      lost in the jungle of reuse of styling, particularly. This commit adds new classes for all types of
      entries in the Transcript Window (typically, a chat message), and makes each class responsible for
      creating a UI representation of that type of entry. This removed quite a bit of boiler plate code.

      As each entry now contains the original message, it's make-up as well as timestamp, the transcript
      window is easily redrawn when messages start to arrive out of order. That bit is now implemented as
      a responsibility of the TranscriptWindow class.

      Various smaller changes were made:

      • ctrl-space nickname completion in a MUC now no longer considers users on your roster (but not in the MUC)
      • ctrl-space nickname completion now works for users that have no VCard (uses node-part of the JID instead)
      • message color is now configurable (but still defaults to black).

      Being able to recompose the transcript window will be handy when we want to implement https://xmpp.org/extensions/xep-0308.html


          Issue Links



              guus Guus der Kinderen
              wroot wroot
              0 Vote for this issue
              1 Start watching this issue