summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/composercontroller.cpp
Commit message (Collapse)AuthorAge
* Automatic key import / export + Expected monadRémi Nicole2018-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: There are many things going on here (perhaps a bit much for a single patch): - When an attachment is of mime type "application/pgp-keys", a button is added to import the key to GPG - When sending a mail and crypto is enabled (encryption, signing or both), the public key of the first private key found is sent as an un-encrypted attachment (T6994) - The `mailcrypto.{h,cpp}` was, for the most part, rewritten - Introduction of the expected monad, inspired by what was proposed for C++ [here](https://isocpp.org/files/papers/n4015.pdf), but not at all a strict implementation of this specification. We may want to add some more features of this standard later. The rationale for some of the choices: - I found mailcrypto a bit hard to edit to add new features, and a great part was commented code to prepare for the support the SMIME crypto format, which would (in my current knowledge) not be used for sending emails. - One thing I found that may be missing in the code base was a standardized way of handling errors in C++ code. Since exceptions are disabled I think that the functional way is the way to go. After some research I found the Expected monad / tagged union / sum type, which seemed to suit the problem particularly well. In the long run, I hope we would move the entire code base to use `Expected` to indicate if a function might fail. Of course every choice made here is to be considered as a proposition for doing things / RFC, critics wholeheartedly accepted. Reviewers: cmollekopf Tags: #kube Maniphest Tasks: T6994, T8147, T6995 Differential Revision: https://phabricator.kde.org/D11158
* Support encrypted mails forwardingRémi Nicole2018-03-08
| | | | | | | | | | | | | | | | | | | | Summary: Some notes: - What we do is: if the mail is encrypted, decrypt it and copy its content into a new message (with plaintext, html and attachments, if any), and use this message as attachment for forwarding - The `isEncrypted` function from KMime doesn't seem to detect every kind of encrypted mails. AFAIK this structure is not detected: - `multipart/mixed` - `text/plain` - `application/pgp-encrypted` (attachement, named "ATT00001") - `application/octet-stream` (attachment named "encrypted.asc") Reviewers: cmollekopf Tags: PHID-PROJ-6npnfcmppynqynn7slmv Maniphest Tasks: T8112, T7024 Differential Revision: https://phabricator.kde.org/D10966
* Revert "Support encrypted mails forwarding"Christian Mollekopf2018-03-02
| | | | | | This reverts commit f28ec43dca5b2915deb69d54fb942ddf1303f48c. That was pushed by accident.
* Support encrypted mails forwardingChristian Mollekopf2018-03-02
| | | | | | | | | | | | | | | | | | | | Summary: Some notes: - What we do is: if the mail is encrypted, decrypt it and copy its content into a new message (with plaintext, html and attachments, if any), and use this message as attachment for forwarding - The `isEncrypted` function from KMime doesn't seem to detect every kind of encrypted mails. AFAIK this structure is not detected: - `multipart/mixed` - `text/plain` - `application/pgp-encrypted` (attachement, named "ATT00001") - `application/octet-stream` (attachment named "encrypted.asc") Reviewers: cmollekopf Tags: PHID-PROJ-6npnfcmppynqynn7slmv Maniphest Tasks: T8112, T7024 Differential Revision: https://phabricator.kde.org/D10966
* Fixed the foundAllKeys feature in the composerChristian Mollekopf2018-03-01
| | | | | | | setProperty doesn't work anymore for some reason, so we use a regular Q_PROPERTY. We have to explicitly reference the composerController variable, otherwise cc/bcc refernces don't work.
* T7024 fix: implement attachment-based forwardingRémi Nicole2018-02-21
| | | | | | | | | | | | | | | | Summary: Implement attachment-based forwarding. Some notes: - `loadAsDraft` was removed in favor of new enum `loadType` in QML, and callback based generic programming in C++ Reviewers: cmollekopf Tags: #kube Maniphest Tasks: T7024 Differential Revision: https://phabricator.kde.org/D10676
* Remove drafts after sending the messageChristian Mollekopf2018-01-08
|
* Fixed cc and bcc on composercontrollerChristian Mollekopf2017-12-13
|
* Always guard async callbacksChristian Mollekopf2017-12-08
|
* Avoid crashing if we don't find a key.Christian Mollekopf2017-12-04
|
* Subcontrollers for list propertiesChristian Mollekopf2017-12-04
|
* Avoid any keyserver lookup for now.Christian Mollekopf2017-11-27
| | | | | | The can take forever and we don't properly deal with that. For now all keymanagement is delegated to the user, meaning he will have to use external tools.
* Encrypt to all keys if we find multipleChristian Mollekopf2017-11-27
|
* log messagesChristian Mollekopf2017-11-27
|
* Fixed warningsChristian Mollekopf2017-11-27
|
* Disable encryption buttons if keys are missingChristian Mollekopf2017-11-27
|
* Async personal key retrievalChristian Mollekopf2017-11-27
|
* Safeguards to avoid crashesChristian Mollekopf2017-11-27
|
* Factor out how we run it into a separate methodChristian Mollekopf2017-11-25
|
* Lookup keys in threadsChristian Mollekopf2017-11-25
|
* Only look for keys when crypto is enabledChristian Mollekopf2017-11-25
|
* Import missing keysChristian Mollekopf2017-11-24
|
* Encrypt to self so we can read the sent mailChristian Mollekopf2017-11-24
|
* Log some info about the keys we findChristian Mollekopf2017-11-24
|
* Ensure we have valid keys before sendingChristian Mollekopf2017-11-24
|
* Encrypted mailsChristian Mollekopf2017-11-23
|
* Avoid crashing if we fail to assemble the messageChristian Mollekopf2017-11-22
|
* Find signing keysChristian Mollekopf2017-11-22
|
* Prepping encryptionChristian Mollekopf2017-11-22
|
* Load html messages as htmlChristian Mollekopf2017-10-12
|
* Assembling html mailsChristian Mollekopf2017-10-08
|
* Take personal email addresses into account when replying.Christian Mollekopf2017-08-11
|
* splitAddress does not work if the name has a comma in itChristian Mollekopf2017-08-10
| | | | | With i.e. "Mollekopf, Christian <mollekopf@example.org>", we'l end up with an address "Mollekopf" and one "Christian <mollekopf@example.org>".
* Moved mailcomposing into mailtemplatesChristian Mollekopf2017-08-02
| | | | so we can start testing it.
* Separate email assembly from controller.Christian Mollekopf2017-08-02
|
* ComposerController cleanupChristian Mollekopf2017-07-31
|
* Slight composer code refactoringChristian Mollekopf2017-07-31
|
* Remove any leftover recipients for repliesChristian Mollekopf2017-06-23
|
* Also load slightly more complex mails.Christian Mollekopf2017-06-22
| | | | And convert simple html to plaintext.
* Attachment removalChristian Mollekopf2017-06-14
| | | | | We'd rather do something via the model index instead of requering an additional role, but this works for the time being.
* Create CRLF mime messages.Christian Mollekopf2017-06-14
|
* Attachment support in the composerChristian Mollekopf2017-06-14
|
* Working but ugly editor for recipients in composerChristian Mollekopf2017-06-12
| | | | | | | | | What remains to be done is: * proper delegates * removal of recipeients * at some point d&d of recipients * Perhaps something that encapsulates the whole list and the model in a nicer way
* Fixed stuff that got broken during the moveChristian Mollekopf2017-05-23
|
* No more SINK_DEBUG_AREAChristian Mollekopf2017-05-13
|
* Ported away from webkit and to webengineChristian Mollekopf2017-04-13
|
* Moved cpp code into src directoryChristian Mollekopf2017-04-05