1. 03 Jun, 2020 1 commit
  2. 02 Jun, 2020 8 commits
  3. 31 May, 2020 2 commits
  4. 30 May, 2020 1 commit
    • Ivan Čukić's avatar
      Define names for useful roles · a569b9c6
      Ivan Čukić authored
      Currently, the EntityTreeModel exposes only a few roles to QML.
      This patch adds names to useful roles like collection URL, collection
      ID, etc.
  5. 29 May, 2020 1 commit
  6. 27 May, 2020 2 commits
  7. 26 May, 2020 2 commits
  8. 25 May, 2020 1 commit
  9. 22 May, 2020 3 commits
  10. 21 May, 2020 1 commit
  11. 20 May, 2020 1 commit
  12. 18 May, 2020 1 commit
  13. 17 May, 2020 2 commits
  14. 14 May, 2020 1 commit
  15. 11 May, 2020 1 commit
  16. 10 May, 2020 1 commit
  17. 09 May, 2020 1 commit
    • Igor Poboiko's avatar
      [StandardActionManager] Don't add PendingCutRole when copying · 03c6b6c0
      Igor Poboiko authored
      Summary: We shouldn't add `PendingCutRole` (which i.e. greys out items from the EntityTreeView) when we are only copying, not cutting
      Test Plan:
      Although I've found no PIM applications which use `Copy` action (KMail, KAdressBook and KOrganizer use `Copy To` with a submenu),
      I've used this action in KJots (to be able to paste links to various notes / books inside notes, instead of existing `copy_link_address` action), and it works.
      Reviewers: dvratil
      Reviewed By: dvratil
      Subscribers: kde-pim
      Tags: #kde_pim
      Differential Revision: https://phabricator.kde.org/D29484
  18. 08 May, 2020 2 commits
  19. 07 May, 2020 2 commits
  20. 06 May, 2020 1 commit
  21. 05 May, 2020 2 commits
    • Kevin Funk's avatar
    • Kevin Funk's avatar
      Windows: Handle QLocalSocket behavior gracefully · c06e4097
      Kevin Funk authored
      On Windows the underlying implementation of QLocalSocket behaves
      differently, it seems to trigger the QLocalSocket::readyRead() signal
      earlier than anticipated (as on Linux).
      Prior to this patch this was not handled gracefully.
      Kudos to David Faure for actually figuring this out by just looking at
      the code and my debug output on Windows. :)
      Let's have a look at what happens on Windows inside Akonadi's Conneciton
      - Akonadi data sends Hello cmd => 91 bytes
      - Akonadi resource receives data
      - QLocalSocket::readyReady() signal fires
      - Triggers Connection::handleIncomingData via signal-slot connection
      - On Windows, QLocalSocket::bytesAvailable() is just 8 bytes
      - Only the first 8 bytes are read, into the `qint64 tag` variable
      - Protocol::deserialize(...) is called
        - Internally calls waitForData(...) (=> waitForReadyRead()) a few times
      - QLocalSocket::readyRead() signal fires again
      - Connection::handleIncomingData re-entered => BUG
      Problematic end result:
      [10972] org.kde.pim.akonadicore: tag: -1099511627647
      [10972] org.kde.pim.akonadicore: Invalid command, the world is going to end!
      [10972] org.kde.pim.akonadicore: State changed: QLocalSocket::ClosingState
      [10972] org.kde.pim.akonadicore: State changed: QLocalSocket::UnconnectedState
      => Resource attempts reconnection to server, just to fail again
      The fix is to temporarily disconnect from the readyRead() signal while
      attempting to wait for data to deserialize commands. This in order to never
      re-enter Connection::handleIncomingData() while doing so.
      Reviewers: dfaure, mlaurent, dvratil
      Reviewed By: dvratil
      Subscribers: dvratil, kde-pim
      Tags: #kde_pim
      Differential Revision: https://phabricator.kde.org/D29266
  22. 03 May, 2020 1 commit
    • David Faure's avatar
      Implement buffering in the DataStream class, to improve performance on Windows. · 0e085b86
      David Faure authored
      The internal QWindowsPipeWriter in Qt doesn't do any buffering, so the first 8
      bytes (the tag) were sent first, and the rest only later.
      This solution uses an explicit flush() method, while doing the flushing
      in the destructor would have been much more convenient and less
      error-prone, but the flushing can throw an exception, so we need
      to do it inside the try/catch -- and certainly not when the stream
      is deleted because another exception happened. This would all be
      so much simpler without the use of exceptions :-)
      Test Plan: all tests pass (on Linux)
      Reviewers: dvratil, kfunk
      Reviewed By: dvratil
      Subscribers: kde-pim
      Tags: #kde_pim
      Differential Revision: https://phabricator.kde.org/D29265
  23. 28 Apr, 2020 1 commit
  24. 27 Apr, 2020 1 commit
    • Igor Poboiko's avatar
      Save configuration when creating resources for new user · 1a13474c
      Igor Poboiko authored
      Akonadi calls `writeConfig` DBus method to save the configuration for newly
      created resources, both via `firstrun` and `SpecialCollections` mechanisms.
      This method is non-existent for all of the resources (it was deprecated in
      KConfig, and apparently is not exported to DBus), method `save` should
      be used instead.
      This is related to issues raised in {D27905}: settings provided in firstrun did
      not override default settings for the resource.
      CCBUG: 345211
      CCBUG: 352502
      Test Plan:
      1) Check `qdbus org.freedesktop.Akonadi.Resource.akonadi_maildir_resource_0 /Settings`
      2) There is no `writeConfig` method, but there is `save` method
      Reviewers: dvratil
      Reviewed By: dvratil
      Subscribers: kde-pim
      Tags: #kde_pim
      Differential Revision: https://phabricator.kde.org/D28523
      (cherry picked from commit 4447e889)