1. 22 Jul, 2019 1 commit
  2. 12 Jul, 2019 1 commit
  3. 27 Jun, 2019 1 commit
  4. 26 Jun, 2019 1 commit
    • 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
  5. 13 May, 2019 1 commit
  6. 18 Apr, 2019 1 commit
  7. 16 Mar, 2019 1 commit
  8. 22 Jan, 2019 1 commit
  9. 25 Nov, 2018 1 commit
  10. 24 Nov, 2018 2 commits
  11. 21 Aug, 2018 1 commit
  12. 14 Aug, 2018 1 commit
    • Linus Jahn's avatar
      RosterPage: Add tooltips for presence information and JID · caa456f0
      Linus Jahn authored
      This adds tool tips to the roster. They show the alias/name of the contact,
      their full JID (in small), the presence status type (i.e. 'Available', 'Away',
      etc.) and the optional presence status message. The font of the status type is
      in the apropriate color, so for 'Away' the font is orange.
      
      Closes #77.
      caa456f0
  13. 13 Aug, 2018 1 commit
    • Linus Jahn's avatar
      RosterPage: Show presence information via. new PresenceCache · da5679eb
      Linus Jahn 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
  14. 08 Jul, 2018 1 commit
  15. 27 Feb, 2018 1 commit
    • Linus Jahn's avatar
      RosterPage: Display if offline in title · 9a76a757
      Linus Jahn authored
      First, I only added this for the "Connecting..." state, but I noticed that you
      often can't distingush if you're online or not, so from now on it'll also
      display if you're offline. I didn't add the online status, because it's the
      default case; the functionality is not restricted.
      9a76a757
  16. 24 Feb, 2018 1 commit
  17. 13 Jan, 2018 1 commit
    • Linus Jahn's avatar
      Bump copyright to 2018 · 14b7183a
      Linus Jahn 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
  18. 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
  19. 19 Dec, 2017 1 commit
  20. 12 Aug, 2017 1 commit
    • Linus Jahn's avatar
      AvatarStorage: Deploy IDs dynamically to QML (#122) · e3de6116
      Linus Jahn 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
  21. 05 Aug, 2017 1 commit
    • Linus Jahn's avatar
      Add VCard-based Avatars via. vcard-temp · 8f8e40b9
      Linus Jahn 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
  22. 04 Aug, 2017 1 commit
  23. 30 Jul, 2017 4 commits
  24. 08 Jun, 2017 1 commit
  25. 07 Jun, 2017 1 commit
    • Linus Jahn's avatar
      Clean up Message/RosterController · 5fdf2e7a
      Linus Jahn authored
      I separated them again, so the RosterController will also connect to the
      Message received event, and will upsate the unread message counter on its
      own.
      
      I also removed many `emit xxxModelChanged`. They are unnecessary and I don't
      know why I added them at all (in these cases).
      
      There were also some unused #includes, that I have removed.
      
      But the QML API has also changed through this and sendMessage and chatPartner
      are now on the top level of `kaidan`.
      5fdf2e7a
  26. 06 Jun, 2017 1 commit
  27. 05 Jun, 2017 1 commit
  28. 01 May, 2017 1 commit
  29. 30 Apr, 2017 1 commit
  30. 14 Mar, 2017 1 commit
    • Linus Jahn's avatar
      Roster: Sort using last exchanged · 51c48b80
      Linus Jahn authored
      The new `lastExchanged` coloumn in the RosterModel contains
      a ISODate string with the time when the last message has
      arrived or has been sent. The roster is now sorted using this
      property.
      
      The message controller is now able to communicate with the roster
      controller directly and updates the lastExchanged whenever a
      message arrives/is been sent.
      
      To preserve the lastExchanged property, the roster is now only
      'updated' instead of being replaced every login. It looks up
      which JIDs have been removed and added, adds/removes them
      and updates the name of all the others (lastExchanged keeps the
      same). Roster Versioning would be the better solution here and
      also generally ...
      51c48b80
  31. 07 Mar, 2017 1 commit
    • Linus Jahn's avatar
      Add VCard back-end support (#85) · d4527fb8
      Linus Jahn authored
      The new QML-side variables:
      `kaidan.vCardController.currentJid = ""`
      `kaidan.vCardController.currentVCard = VCard` (read-only)
      `kaidan.vCardController.ownVCard = VCard`
      
      Properties of a VCard:
      `version`, `fullName`, `familyName`, `givenName`, `middleName`,
      `prefix`, `suffix`, `nickname`, `preferredEMailAddress`
      
      The own VCard is not working correctly yet.
      d4527fb8
  32. 06 Mar, 2017 1 commit
    • JBB's avatar
      Port to Kirigami 2 (#81) · 16283d28
      JBB authored
      AboutPage: version number is now a Kirigami.Heading, not a normal
      Label with a <h1> tag.
      
      LoginPage is only a normal Kirigami.Page now.
      
      The ListItems in the Roster page are Kirigami.SwipeListItems again and
      have the remove action again.
      16283d28
  33. 05 Mar, 2017 1 commit
  34. 22 Feb, 2017 1 commit
  35. 18 Feb, 2017 1 commit
    • Linus Jahn's avatar
      Add SQLite database for messages and roster caching · 3b366c75
      Linus Jahn authored
      The new SQLite3 database is saved (on Linux) under:
      ~/.local/share/KaidanIM/kaidan/messages.sqlite3 (This is the AppData
      location from Qt)
      
      It currently has two tables one for the roster and one for messages.
      The roster table has two coloumns: jid and name. The message table
      has six: author, author_resource, recipient, recipient_resource,
      timestamp and message. 'recipient' and 'author' contain a bare JID
      (a JID without the resource) and the resource saved in
      author/recipent_resource, if available. The resource is not really
      necessary, but I thought it might be cool to add e.g. some stats for
      this, later.
      
      In the Kaidan.cpp/h, I moved the handleMessageReceived part into the
      MessageController, later we should also move the handle Presence
      Received into a PresenceController or something as this.
      
      I also removed the 'import harbour.kaidan 1.0' in QML, because, now
      we don't have any new QML-types from Kaidan -> you can't import it.
      
      The Chat-GUI is still very ugly, we/I should definitely imporve it
      in a later commit.
      
      Closes #55.
      3b366c75
  36. 08 Jan, 2017 1 commit