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.
      a569b9c6
  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
      03c6b6c0
  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
      d4fff010
    • Kevin Funk's avatar
      Windows: Handle QLocalSocket behavior gracefully · c06e4097
      Kevin Funk authored
      Summary:
      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. :)
      
      BEFORE:
      Let's have a look at what happens on Windows inside Akonadi's Conneciton
      class:
      
      - 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
      afterwards.
      
      AFTER:
      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
      c06e4097
  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
      Summary:
      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
      0e085b86
  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
      Summary:
      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)
      1a13474c