1. 02 Jul, 2018 1 commit
  2. 29 Jun, 2018 2 commits
    • Hugo Lefeuvre's avatar
      chatview: implement lazy display · b82bbca8
      Hugo Lefeuvre authored
      Messages are now displayed block by block. When the user reaches the
      top of the scrollbar, a new batch of messages gets loaded.
      This allows better performances on large conversations.
      Change-Id: Idc44df7149db6329982b2aa3420de6c014ce0924
      Gitlab: #811Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
    • Hugo Lefeuvre's avatar
      chatview: load all messages at once in the DOM · 0babe2b4
      Hugo Lefeuvre authored
      Currently messages are appended one by one to the DOM. This is very
      inefficient in the case where conversations have a reasonable size.
      Since we're going to implement lazy loading in a further commit it
      is a good idea to load everything at once in the DOM.
      - During initial load: Generate #messages and THEN load it in the DOM
      - Fix scrolling issues using onload callback after images get loaded
      - Remove useless exec_keeping_scroll_position calls
      - Fix padding issue at the bottom. This is a WebKit bug so we use a
        workaround: dynamically add a small padding to the last element in
        the chatview.
      This commit is the first step towards lazy loading in the chatview.
      Change-Id: I329a11615b846ab0b198af38f529ed0de8a3ac18
      Gitlab: #825
      Gitlab: #834Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
  3. 25 Jun, 2018 1 commit
  4. 18 Jun, 2018 1 commit
  5. 14 Jun, 2018 1 commit
  6. 11 Jun, 2018 1 commit
  7. 08 Jun, 2018 1 commit
  8. 07 Jun, 2018 1 commit
  9. 06 Jun, 2018 4 commits
  10. 05 Jun, 2018 3 commits
  11. 01 Jun, 2018 4 commits
    • Sébastien Blin's avatar
      drawing: fix SIP avatars and color · 3587e495
      Sébastien Blin authored
      + Use algorithm described here:
      + Fix purple color code
      + Move helpers to public to be available anywhere. No reason to make
      it private.
      Change-Id: I4f2814958970da275f8e1a815eefb536c5935cec
      Reviewed-by: default avatarHugo Lefeuvre <hugo.lefeuvre@savoirfairelinux.com>
    • Sébastien Blin's avatar
      editcontactview: remove unused code · e0f0aaf7
      Sébastien Blin authored
      Change-Id: I2827cec1e9f83632630f7c5b63bc8a26f39d4ce1
    • Hugo Lefeuvre's avatar
      chatview: major cleanup · 368c47c5
      Hugo Lefeuvre authored
      Despite of the recent optimization commits, the chatview is still
      affected by a significant number of performance issues. This commit
      tries to address some of them:
      * Use getElementById instead of querySelector, when possible.
      * Use getElementByClassName instead of querySelector, when possible.
      (querySelector is in average 2x slower than getElementById or
      In this commit we also address the following bugs:
      * printHistoryPart: it doesn't make any sense to call
        addOrUpdateMessage if we are at the end of the buffer.
      * the bottom padding of the body isn't updated with the size of
        the #message textarea, leading to an annoying overlap when writing
        large messages.
      * selection highlighting in the chatview is crappy. The user should
        not be able to highlight the background because it doesn't make
        any sense. Only meaningful elements should be highlightable.
      * The first time a message fails to be sent, the cross 'X' icon
        is displayed with a very bad looking shift to the right. This is
        because the 'sending' icon is still displayed, with visibility
      * Many variables were not declared / using some broken, ancient
        JavaScript Sith magic we don't want to mess with. In order to make
        sure we are not going to rely on such mechanisms anymore, add
        "use strict" stanza.
      In addition to that we also fix a _very_ large number of style issues
      (semicolons, indentation, comments) and define a clear style policy
      for the JS code.
      A code audit revealed several small bugs which we are not going to
      address in this commit. Add FIXME comments.
      Also, remove some useless debug warnings from the GTK side chatview
      Change-Id: If6b605868ba6b0b9623ae01c5293064211b58327
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
    • Sébastien Blin's avatar
      misc: improve README and add a CONTRIBUTING file · 547dd535
      Sébastien Blin authored
      Change-Id: I95b604a38b211826269a571a0089dc32c044f130
  12. 31 May, 2018 1 commit
  13. 30 May, 2018 1 commit
    • Hugo Lefeuvre's avatar
      chatview: implement navbar · edad8832
      Hugo Lefeuvre authored
      Currently the navbar is implemented in native GTK, and has a pretty
      bad integration with the chatview. In this patch we implement a
      modern navbar *in* the chatview and remove the old GTK bar.
      *Changes summary*
      chatview, HTML/JS/CSS side:
      - Remove useless function setSendIcon from the chatview
      - Simplify setTemporary in the chatview
      - Use only one single showInvitation function instead of two
        showInvitation and hideInvitation functions.
      - Remove pointless/copy&pasted comments
      chatview, GTK side:
      - Simplify chatview update methods: instead of providing several
      separate functions to update the invitation/banned status of the chat
      view, only provide one (update_chatview_frame). This should have a
      good impact on the performances and simplify webkit crash handling.
      Change-Id: I6959240efd357fedb07d3c60d551efc8fca84812
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
  14. 29 May, 2018 1 commit
  15. 28 May, 2018 1 commit
    • Hugo Lefeuvre's avatar
      chatview js/html: cleanup and optimization work · 65a41d6d
      Hugo Lefeuvre authored
      Major cleanup and optimization work in the chatview (html/js part):
      - use getElementById instead of querySelector when possible. This is
        3x quicker in average!
      - get rid of the useless ring.chatview namespace. This makes the
        chatview code way more readable.
      - get rid of the test code. This has nothing to do in production.
      - store the result of getElementById calls as global variables. These
        calls are very expensive and calling them each time we execute a
        function is pure nonsense.
      - do not call printHistoryPart when buffer is 0
      Change-Id: I76d39a8632f069ecd3d659f4938bffff7a10a71b
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
  16. 18 May, 2018 1 commit
  17. 15 May, 2018 1 commit
  18. 14 May, 2018 4 commits
    • Sébastien Blin's avatar
      accountview: fix account creation by updating selectedInfo · e05cde13
      Sébastien Blin authored
      Change-Id: I6eb9bb046d2964b24b9b323ac1f086ce8185ab2e
      Reviewed-by: default avatarHugo Lefeuvre <hugo.lefeuvre@savoirfairelinux.com>
    • Hugo Lefeuvre's avatar
      accountcreationwizard: close preview when hidden · 24356d47
      Hugo Lefeuvre authored
      Whenever the preview is created and run in the account creation
      wizard, there is no way to stop it. This is very annoying because
      it grabs the webcam rights without releasing them, and the camera
      led stays on, giving the user the impression to be observed.
      In this patch we add a mechanism similar to what is done in the
      general settings tab: we destroy and create the preview each time
      the preview is made visible / hidden. While not the most elegant
      solution it allows us to run the preview if and only if it is
      displayed & stop it otherwise.
      Also, we fix various issues in the account view:
       - when + icon is double clicked, the settings space becomes blank.
         Now if + is clicked while account wizard is open, the account
         wizard gets closed.
       - when an account is selected in the account selection tab while
         the wizard is displayed, nothing "seems to happen". Instead,
         quit the wizard and open the selected tab.
       - when account view is openened for the first time, the settings
         space is blank. Instead, default select an account.
      Change-Id: I1e12333e654f70d590886e2aa4f5112154f3068a
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
    • Hugo Lefeuvre's avatar
      ringmainwindow: fix view inconsistency bug · b8a8057e
      Hugo Lefeuvre authored
      We should switch to the ring main window before updating the lrc.
      Otherwise the conversation is going to be selected by
      slotFilterChanged (signal triggered by updateLrc) while the view will
      be later changed to welcome view without updating the conversationview
      Change-Id: I2caea45dc2a11d90b409cdb06e9ba9eaa14d9f21
      Tuleap: #1876
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
    • Sébastien Blin's avatar
      settings: link settings tabs to selected account · 276202f9
      Sébastien Blin authored
      This patch does nothing for now, but prepare the migration to new
      LRC models.
      Change-Id: I55f63ad494e5d3516d4d01f72051997a430ef5df
      Reviewed-by: default avatarHugo Lefeuvre <hugo.lefeuvre@savoirfairelinux.com>
  19. 09 May, 2018 1 commit
    • Hugo Lefeuvre's avatar
      popupmenu: fix menu for banned accounts · ef608eae
      Hugo Lefeuvre authored
      Currently the popup menu stays the same even if the account is banned
      which may be very confusing for the user (place call or block contact
      options are everything but meaningful in this case !).
      In this patch we implement a specific menu for banned accounts.
      In addition to that, we also force a chat view refresh when
      the filter is updated.
      This patch requires LRC side changes in order to work properly.
      Change-Id: Iea545fe5cf54520e7aba92c7a87a736bc6d71d27
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
  20. 08 May, 2018 1 commit
  21. 07 May, 2018 3 commits
  22. 04 May, 2018 2 commits
  23. 01 May, 2018 2 commits
    • Hugo Lefeuvre's avatar
      Refactoring of the accountContainer logic · 6f2ceb12
      Hugo Lefeuvre authored
       - RingMainWindow has an unique_ptr to an AccountContainer
       - each view / secondary class has its own *copy* of the account
         container pointer (given by ringmainwindow using
       - each time the reference to the struct Info is updated,
         accountContainer_ has to be reset()-ed and and the account
         container re-created by the RingMainWindow. This makes *all*
         copies of the account container pointer invalid (hence all
         view / secondary classes trying to access the account container
         before getting updated perform use-after-free / NULL pointer
       - These copies have to be manually updated ! (well, currently they
         are not updated at all)
       - RingMainWindow has a pointer to a struct Info from LRC.
       - Each view / secondary class has a pointer pointing to
         the struct Info pointer of RingMainWindow
       - Each time the reference to the struct Info is updated, the
         RingMainWindow updates its pointer. Since secondary classes and
         views hold a pointer to this pointer, they are automatically
         updated and there is no dangling pointer anymore.
      This requires no lrc side changes.
      Change-Id: I1329721920a3d42ad623f9fd7202b43700713eed
      Reviewed-by: Sébastien Blin's avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
      Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
    • Sébastien Blin's avatar
      datatransfer: automatically accepts images instead of awaiting · 03f071db
      Sébastien Blin authored
      Change-Id: I64f6a0e3b7d982d5e9848f15ea6276a972ab8d44
      Reviewed-by: Philippe Gorley's avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
  24. 30 Apr, 2018 1 commit