1. 07 Jul, 2019 1 commit
  2. 26 Jun, 2019 2 commits
    • Linus Jahn's avatar
      Rewrite database models to not block the GUI · e8750bad
      Linus Jahn authored
      This rewrites parts of the main database class. All classes working on
      the database have been moved to the new database thread, so inserting
      records into the database isn't blocking the user interface anymore.
      What also improved the performance *massively* is the use of SQLite
      transactions, when inserting multiple records. So inserting is so fast
      now that it actually wouldn't necessarily require another thread, but
      with this we're safe in the future.
      
      The message model and the roster model have been splitted up into a
      database manager and the list model that is used to present cached data
      to the user. The XMPP managers are connected to both the model and the
      db classes, so both are updated in parallel.
      
      There are also two new classes for the RosterItem and the Message,
      because we need to cache those in the models in a vector. The Message
      class inherits from QXmppMessage, so we can now use the same class for
      sending messages and inserting messages into the database.
      
      Closes #273.
      e8750bad
    • Linus Jahn's avatar
      Rename Utils to QmlUtils · a6ba2a0a
      Linus Jahn authored
      a6ba2a0a
  3. 25 Jun, 2019 1 commit
  4. 03 May, 2019 1 commit
  5. 13 Apr, 2019 1 commit
  6. 02 Apr, 2019 1 commit
  7. 16 Mar, 2019 1 commit
  8. 06 Feb, 2019 1 commit
  9. 05 Feb, 2019 2 commits
  10. 22 Jan, 2019 1 commit
  11. 28 Dec, 2018 1 commit
    • Linus Jahn's avatar
      chat: Make HTTP/HTTPS links highlighted and usable · a12910dd
      Linus Jahn authored
      This will highlight links starting with http:// or https:// and will
      make them open externally when clicked. Unfortunately (in Material and
      (KDE) Desktop style) the link color doesn't change when hovered.
      a12910dd
  12. 18 Dec, 2018 1 commit
  13. 24 Nov, 2018 5 commits
  14. 15 Sep, 2018 3 commits
  15. 30 Aug, 2018 1 commit
  16. 21 Aug, 2018 1 commit
  17. 14 Aug, 2018 1 commit
  18. 13 Aug, 2018 1 commit
    • LNJ's avatar
      RosterPage: Show presence information via. new PresenceCache · da5679eb
      LNJ authored
      This adds a PresenceCache which will cache all incoming presences. The presence
      information (currently only status type and status message) can be get from QML
      then. They're just displayed as small circle in green (available), orange (away/
      XA), grey (unavailable) and red (error). In case of an error a small message is
      displayed instead of the last message.
      da5679eb
  19. 04 Apr, 2018 1 commit
  20. 03 Apr, 2018 2 commits
    • LNJ's avatar
      768e2645
    • LNJ's avatar
      back-end: Add signals for asynchronous subscription handling · 38a2bd51
      LNJ authored
      The handling of incoming subscription requests can be done in QML, now.
      
      First the signal of an incoming subscription request is emitted (
      kaidan.subscriptionRequestReceived(from, message)), then the use can decide if
      they want to accept, decline or ignore the request. If they want to decline or
      accept it, the signal kaidan.subscriptionRequestAnswered(jid, accepted) should
      be emitted (accepted=true: allow, accepted=false: decline).
      38a2bd51
  21. 02 Mar, 2018 1 commit
    • LNJ's avatar
      Fix lag when changing chat (#205) · bc071e8c
      LNJ authored
      This also does some clean up and restructuring of the deployment of the
      `chatPartner` property to the ClientThread (MessageHandler) and MessageModel.
      
      Before, a thread-safe function of the ClientThread was used, so the mutex of it
      blocked the GUI, when the client thread was busy in this moment.
      bc071e8c
  22. 25 Feb, 2018 2 commits
    • LNJ's avatar
      Use passive notifications when online actions fail · 672b11fb
      LNJ authored
      This will throw a Kirigami passive notification, whenever you try to add or
      remove a contact or send a message when being offline. It uses the "long" preset
      for the timeout.
      672b11fb
    • LNJ's avatar
      Add XEP-0352: Client State Indication · 855bc84f
      LNJ authored
      This will give the XMPP server the information if the user is currently actively
      using Kaidan or it's runnning in the background. If it's running in the
      background, the server will only send some important messages, not everything.
      855bc84f
  23. 24 Feb, 2018 1 commit
    • LNJ's avatar
      Use new ClientThread for XMPP-connection; Make offline usable · 5c513623
      LNJ authored
      This rewrites the full back-end <-> front-end communication, moves the
      connection logic to the back-end and makes the XMPP client connection
      independant of the user interface (they will run parallel). However, the
      database still runs on the main, GUI thread, so this will still block GUI
      rendering (will be done in one of the next commits).
      
      Now, Kaidan is able to handle different DisconnectionReason, so it can
      distinguish if the authentication failed or there's just no connection to the
      server available. So this will finally make Kaidan offline useable! But it
      currently won't reconenct after losing the connection once.
      
      The bug that Kaidan always crashed, when logging in after logging out has also
      been fixed with this.
      
      The LogInPage was simplified: now, the button only shows "Connecting..." (when
      pressed) or "Connect". The trivial state of "retry" has been removed.
      
      `branding.h` was renamed to `Globals.h`. The new `Enums` namespace is used to
      register enums as a QMetaEnum, to make them printable and accessible in QML. The
      new `Q_ENUM_NS` macro is used for that.
      
      Coding style: I started to use doxygen-compatible inline documentation for the
      most functions, classes, enums and other elements. I don't want to really use
      doxygen (we're not a library), but it should definitely make it easier for new
      developers to understand the code. So from now on new code should be documented
      like this.
      
      Closes #107 - Make Kaidan offline usable.
      5c513623
  24. 13 Jan, 2018 1 commit
    • LNJ's avatar
      Bump copyright to 2018 · 14b7183a
      LNJ authored
      This updates all copyright headers in the source files to 2018. Also,
      there are not all contributors listed with a seperate copyright line,
      only one line for all Kaidan developers and contributors with a 'link'
      to a full list of contributors in the LICENSE file.
      
      It would be very hard to maintain the old strategy and adding each
      contributor to each file. Also the copyright lines were get too long then.
      
      All Kaidan headings are uniform, now. I replaced 'A cross platform XMPP
      client' with 'A user-friendly XMPP client for every device!'.
      14b7183a
  25. 20 Dec, 2017 1 commit
    • Ilya Bizyaev's avatar
      Initial support for Android · d4c295e5
      Ilya Bizyaev authored
      * Added submodules for build dependencies, Moved kaidansf to 3rdparty/, too.
      * Added QMake build system for simpler android compilation
      * Added all images and icons to a resource file for android-only
      * Added AndroidManifest for APK creation
      * Added a script for android compilation into
        `./utils/build-android-deps.sh`.
      * Added splash screen and green status bar for android
      * Global constants are moved into header file: `branding.h`
      d4c295e5
  26. 14 Aug, 2017 1 commit
  27. 12 Aug, 2017 1 commit
    • LNJ's avatar
      AvatarStorage: Deploy IDs dynamically to QML (#122) · e3de6116
      LNJ authored
      This will make it possible to show automatically updating avatars of a
      specific JID. Also the avatar hashes don't have to be saved in the
      message database anymore, and so problems when changing accounts are
      fixed now.
      
      The AvatarStorage now has a signal, that is emitted when the avatar of a JID
      was changed. Connected to it is the NOTIFY signal of the Q_PROPERTY of
      the avatar storage, so all avatars are updated then.
      e3de6116
  28. 05 Aug, 2017 1 commit
    • LNJ's avatar
      Add VCard-based Avatars via. vcard-temp · 8f8e40b9
      LNJ authored
      This implements XEP-0054: vcard-temp, but only handles the avatar/profile picture.
      Avatars (and everything else in the VCard) will currently only be updated on connecting.
      For changing this, we need to implement XEP-0153: vCard-Based Avatars, that will send
      presences with notices of updated VCards.
      8f8e40b9
  29. 04 Aug, 2017 1 commit
  30. 31 Jul, 2017 1 commit