summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/composercontroller.cpp
Commit message (Collapse)AuthorAge
* Avoid binding loop on initialTextChristian Mollekopf2018-07-05
| | | | which broke html -> plain conversion
* Port to gpgme only.Christian Mollekopf2018-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QGpgme and Gpgmepp are not readily available, the cmake files buggy, the buildsystem horrendous and generally just difficult to build on windows. Given that all they are is a wrapper around gpgme, we're better of without all the indirections. What we loose is: * QGpgme moved the work to separate threads (but we then blocked anyways), something that we can just do in our own code should we want to. * QGpgme has a function to prettify dn's that was used to show the signer. Also something we could bring back should we need to (don't know where it is useful atm.) Ported messagepart to gpgme Almost there Moved the crypto bits to a separate file All gpg code is in one place. All tests passing Use error codes Cleanup
* No more direct GpgMe usage in the interfaces.Christian Mollekopf2018-04-26
|
* 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