| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The states and signals were painful to follow due to bad naming
and excessive overloading.
Here:
- Renamed some API to avoid overloading, help readability and
allow new connect() syntax without resolving the overloads.
- updateStatus() signals and slots renamed a bit to make it clearer
what is a signal and what is a slot. And avoiding overloading
QMailMessageService::updateStatus() to simplify signal connection.
- Cleaned up QMailTranport API. It's not doing urls but hostnames
and the signals were especially hard to follow
- Use the new connect() syntax in messageserver side
- Avoiding some protected: / virtual methods when there's nothing
even able to inherit the class.
- At least print SSL errors instead of signal that's not connected
anywhere.
- Some minor simplifications and code style adjustments.
The SSL error handling is still funny but at least a bit easier to track.
Change-Id: If168e15ef068fedee46b9401d695ed5dae7962ba
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Missed earlier one QMessageBox deprecation from separate file
- LongStream now doing consistent open() check in all code paths.
Also removed unused member variable 'c' and moved internal constants
to .cpp.
- imapstrategy.h / ImapMessageListStrategy::selectedSectionsAppend()
was dead code due to derived class ImapFetchSelectedMessagesStrategy
having similar named method with extra parameter and default value.
- ImapService was triggering a couple of -Woverloaded-virtual
warnings due to having extra methods with same name as base class.
These were really used internally so simpler as different named private.
- ImapProtocol / QString::lastIndexOf() was complaining about unused
return value. Using that should be even simpler than accessing regexp
match.
- Some small random warnings on unused parameters, missed switch case etc.
Change-Id: I243c09ab2d551fe2f8be18f1b3a4df2e3d84b55c
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
|
|
| |
And added couple 'static's to local functions etc while at it.
Change-Id: I7b95c08199515f53ab0300117cdd3f1d19761b3b
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pair of pair of etc is hard to follow. Use actual type for
containing Imap/pop transfer states. Smtp was better with simpler
data but even there the naming was confusingly singular.
The m_ naming is maybe inconsistent within classes but let's just
gradually move consistently that way.
Change-Id: Iaeb156d894ebadabe7f89a143c51aff9750098a1
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Made setBody() virtual and avoid dynamic_cast to check which type of
instance was used
- Cleaned up some cosmetic details, fixed typos etc
- Restricted some variable scopes
- Renamed some global constants with UpperCase name
- Commented out some dead code
- Use nullptr instead of NULL or 0
- Renamed vague "void QMailMessagePart::defaultContentType()"
- Made attachment methods in QMailMessagePartContainer virtual.
The implementation does some dynamic_casts to check the type of the
instance, which would rather be better as overridden implementation.
Didn't do that yet, but the virtuals should avoid a later ABI break
if/when such is done.
Change-Id: Ia7dc212a1b609d0b02c2cc269082a0e39667c157
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
| |
Change-Id: I3d973ca81b5dcf532233aa97c1065f93c6bb840e
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|
| |
|
|
|
|
|
|
|
| |
And couple small simplifications too.
Change-Id: Id5fe0a3e991961b9b39c92ab1b9b165c6f450289
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
| |
Change-Id: I061ae75d0196ee08380cf3763b1b12d55b631795
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Paving the way to get rid of the QmfList which was added sort of
stopgap on Qt6 migration because of the QList changes.
- Imap plugin using for() loop which should work for any container type
returned by the methods.
- tst_qmailstore unit test just getting the list of addresses after we
are sure those won't change. A few more lines but avoids the custom
type.
- On previous changed also indexing fully 0 based to keep it more robust.
"Hi 0" type of subjects shouldn't really matter on tests.
Change-Id: I7a74dbe7654d5f3dd80435d5bf9af110b875b03a
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Imap test is marked insignicant in .pro but that allows success also,
cmake's WILL_FAIL doesn't. Comment out latter to avoid unexpected
failure.
- Instead of failing, skip tst_qmailstorageaction if there's no
messageserver running as such is not there with simple 'make test'.
- Removed some qtopia style file references, adjusted cosmetic details,
added/removed #includes depending on whether needed or not. Avoiding
some pointless trinary operators.
Change-Id: Ia7f2fd8e7c7318a138e1cb043f1da436902943c0
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Fwd classes were inherited by the actual classes, allowing to #include
only the fwd and not the bigger real class header. Such a compilation time
micro optimization shouldn't really be worth complicating the API.
Thus just moved the enum content to actual classes.
For some backwards compatibility made the Fwd classes typedeffed to the
real ones.
Crypto side didn't even have a proper class, only the Fwd and suppose
all the usage of the code just did include anyway for the whole crypto api.
The QMailFolderFwd::PredefinedFolderId was having a cyclic dependency
when moved to QMailFolder: QMailFolderId ctor variant was depending on
it and QMailFolder was depending on the Id. Moved the predefined id to
the Id class which feels like a better home anyway.
Change-Id: I9a9aa9c407ae90cc11b37179fe417e3a002ce94b
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mostly coding conventions here.
- Method opening braces to their own lines
- Adjusted some inconsistent init list styles
- Removed some redundant static declarations inside anon namespace
- Replaced one delete loop with qDeleteAll()
- Remove some trailing extra new lines
- Added some missing spaces after commas
- for (), if (), switch as common qt style
- Removed some unnecessary scopes within switch cases
Etc.
Change-Id: Ide9ad7fea6f5fce3b854af2bf05874623c474028
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
| |
Replace the custom logging mechanism with QLoggingCategory.
Also declare the warnings with the proper category.
Change-Id: If87d53d27ea0c65abd434af9f99fe49ce634d6dd
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
| |
Change-Id: I57c6ed78099b3359a16ce807da95325e755f0197
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
| |
Change-Id: Iebfffe7a6d5b2db40f0508ecd7c8ccddfa6665a6
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid a complete restart of the client on setting
changes. Reload of the configuration was already
done at each new connection. But completion of the
client task may take time and settings could be
changed in-between.
Let instead the client reports a failure if the
settings are not correct. Doing a deletion of the
client and a recreation of the client on setting
changes won't allow a running task to complete anyway.
Change-Id: Icf11e6f33a5574d8cd7ccd07fe2f3f06e2d5d558
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
| |
Change-Id: Ifa2dad56db9667fcbeaff4c618a8a8de75d693c4
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adjust source code where necessary like:
- #include <private/...> cannot be used since
private is the installation path, but not
the path used in the sources,
- fix map definition in qmailservice.xml,
- had to add #include <qmailstore.h> to
qmailserviceaction.h since qt_add_dbus_adaptor
can only include one header,
- add a method using QDBusVariant in
ServiceHandler so the adaptor can call it.
Change-Id: Idbecf4214dffdf523ccd8558370e8d2854b5d99a
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
| |
This class is not simply a factory creating instances
of crypto plugins, but it's more like a service,
providing methods on QMailMessagePart to execute
cryptographic operations like signing or signature
verification.
Change-Id: I74f65f27137e3bfe78c0f9614728eca37a031b0c
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The replied flag (\Answered in IMAP protocol) is
properly set for a new mail. But it was not set
on a qresync action (fetching mail updates).
The forwarded flag ($Forwarded as an extension
in IMAP protocol), was detected in the received flags
but was not set or updated in created QMailMessages.
Change-Id: I78eb16650dc706e08fee1c6aab68d601159a52e4
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduces a CalendarCancellation flag similar to the
QMailMessage::CalendarInvitation to be matched against the
QMailMessage::status() bitfield.
While the CalendarInvitation flag indicates that the message contains an
attachment of type text/calendar with "REQUEST" method, the
CalendarCancellation flag indicates that there's an attachment of type
text/calendar with "CANCEL" method type. In other words, a calendar
event cancellation.
For reference, the "CANCEL" method of the Content Type header is
described in RFC2447 (iMIP) Section 2.4 [1] in combination with the
RFC2446 (iTIP) sections 3.2 and 3.2.5 [2]
[1] https://tools.ietf.org/html/rfc2447#section-2.4
[2] https://tools.ietf.org/html/rfc2446#section-3.2
Change-Id: I1ef1d8a070e527552dae1ebe1677156bc07ba04d
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the synchronizationEnabled flag is set to false, a variety
of strategy, like search, folder listing, will not search in
such folders. This is maybe a too restrictive usage of this
flag. This patch change the behavior of this flag to act on
synchronization strategies only, when desired.
It activates it only for message retrieval in all folders.
Change-Id: Iebec872984c7e2650167ae585b06bfa3d8cd6990
Reviewed-by: Christopher Adams <chris.adams@jolla.com>
Reviewed-by: David Llewellyn-Jones <david.llewellyn-jones@jolla.com>
|
| |
|
|
|
|
|
|
|
|
| |
Any case where the address of an element is taken and stored or
used, must be changed to use QmfList instead of QList, otherwise
non-const operations will cause the reference to become invalid.
Change-Id: Ic0017cb9eddcf27b93d26adb3ea9c71682c4421b
Reviewed-by: Christopher Adams <chris.adams@jolla.com>
Reviewed-by: David Llewellyn-Jones <david.llewellyn-jones@jolla.com>
|
| |
|
|
|
|
| |
Change-Id: Iccea2c86266b4c20777d939b291084cb709bf592
Reviewed-by: Christopher Adams <chris.adams@jolla.com>
Reviewed-by: David Llewellyn-Jones <david.llewellyn-jones@jolla.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is an issue with the current implementation that downloads twice the
part content in case of subparts and signed mails. For instance a mail with
this layout:
1: multipart/signed
1.1: text/plain
1.2: image/png
2: application/pgp-signature
will trigger in mode RetrievalAction::Auto the following requests:
1-HEADER // as a signed part
1-BODY // as a signed part
1.1-BODY // as a text part
2-BODY // as a non attachment part
which will result in text/plain part being downloaded twice and appended twice
in a text file. To avoid this, this patch don't append to the list of requests
any requests that are within a signed part.
Change-Id: I654d020acf2a6a1fe26ae53ad667a84e7ea90c2e
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create a new interface for cryptographic operations like digital signatures.
Also implement two plug-ins based on GPGme implementing the OpenPGP and S/MIME
protocols.
To allow digital signature checking to work, pristine data as received from
the server need to be stored. This patch is adding such "undecodedData()"
information to the content manager. The IMAP implementation has been updated also
to ensure that pristine data can be retrieved and saved.
Change-Id: Ic801b0de84b42c16f6c64fffdd67dc51c2b8b9b9
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
|
| |
|
|
|
|
|
|
| |
permanent modsequences.
Change-Id: Idc61404580f308e22df90559f4a7d7a59759b273
Done-with: Valério Valério <valerio.valerio@jolla.com>
Reviewed-by: Valerio Valerio <vdv100@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Create a new function to ensure that content type matching is always done
case insensitive.
Originally the comparison was done after a toLower(), but forgetting this, like
in src/libraries/qmfclient/qmailmessage.cpp#6252, can create bugs.
Change-Id: Ia93e068e5374c346c94c2afe4de768d3833b4a9a
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Some email clients (e.g Thunderbird) have an option to just flag a email
as deleted and still leave it around, those will go way once the folder is
expunged or they can also be marked as undeleted before that. We were
not handling this case well before, now those emails are correctly updated
and the client can choose to show them or just hide them from the lists checking
the status flag QMailMessage::Removed.
Change-Id: I9c98481c8994be5226ccde544a091e4fc7b54e4c
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
API to move folder in the hierarchy. Implementation is mostly based on 'onlineRenameFolder' API implementation
Testing:
========
1) Gmail account: Try to move a folder from one folder to another. Expected result: move success
2) Gmail account: Try to move a folder from one folder to root. Expected: move success
3) Gmail account: Try to move top-level (root) folder to some other folder. Expected result: move success
4) Binary compatibility
- Verify that existing 3rd party QMF plugins still work well with new QMF
- Try to move folder for 3rd party QMF account (which doesn't have implementation of MoveFolder)
Verify that MoveFolder action is failed.
Verify in logs that action is completed with "This function is not currently supported" error
5) Gmail account (handling errors):
- Delete folder A on Web UI
- Try to move folder A to folder B on device
- Verify that action is failed
- Try to perform some moveFolder operations again
- Verify that those operation are completed (e.g. completion is not freezed)
Change-Id: Ifd59ad4fe9c41d17963aa64101b203d31dcdfb2d
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem description: classes ImapCreate(Delete/Rename)FolderStrategy have internal
'_inProgress' counters to support multiple requests processing.
However, when some action is completed with error - instances of those classes are not notified at all.
Thus, counters are never become zero and actions are never completed on client side
Additional fixes: don't allow create/rename folder if new name contains IMAP delimiter. Even if IMAP RFC allows this, it will create multiple folders instead of 1,
and it contradicts with user expectations (and with IMAP plugin expectations as well)
Testing:
=======
Use IMAP Gmail account
Delete Folder:
--------------
- Have some folder 'A' and folder 'B' in Gmail structure
- From Gmail Web UI, delete folder 'A', don't sync with device (I used jolla-email)
- On device try to delete this folder 'A'
- Action is completed with error
- Delete folder 'B' on device
- Without the fix: action will not be completed (even if folder is really deleted)
- With the fix: action is completed successfully
Rename folder 1:
- Have some folder 'A' and folder 'B' in Gmail structure
- From Gmail Web UI, delete folder 'A', don't sync with device (I used jolla-email)
- On device try to rename this folder 'A'
- Action is completed with error
- Rename folder 'B' on device
- Without the fix: action will not be completed (even if folder is really renamed)
- With the fix: action is completed successfully
Rename folder 2:
- Have some folder 'A' in Gmail structure
- Try to rename it to 'A/B/C' (where / is IMAP delimiter)
- Without the fix: folder will be created incorrectly (and there will be some empty name folders on device)
- With the fix: action will be completed with error. Log will indicate that folder name contains IMAP delimiter
- The same scenario is applicable to 'Create' folder action
Change-Id: I126f60d38a068a7ffd6cd86b5293866c31bd7633
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
|
| |
|
|
|
| |
Change-Id: Ia3913b998f3686d6f047d02d8781a7297b018bbd
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Part 1: Encode folder name on create/rename according to RFC 3501, section 5.1.3.
Part 2: Move decode/encode implementation in separate files,
because decodeFolderName also needs to be used in ImapRenameFolderStrategy::folderRenamed
Testing (Gmail):
-------
- Create folder with non-English chars (e.g. "Папка") using onlineCreateFolder API
- In web interface - verify that folder name is correct
- Rename folder to some another non-English name using onlineRenameFolder API
- Verify that folder is renamed correctly (Web interface and local device)
Change-Id: Ifb93cacb8832992d796037eb3fb47c4253e08d14
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When renaming top level folder - descendant folder paths were not updated
Scenario: for IMAP account, have the following hierarchy:
Folder1 -> Folder2
If delimiter is "/", then path for Folder2 shall be Folder1/Folder2
Step 1: rename Folder1 to Folder1_new
Step 2: try to rename Folder2 to Folder2_new.
Expected result: Folder2 will be renamed
Actual result: Folder2 will not be renamed, because its full path is still Folder1/Folder2, not Folder1_new/Folder2
IMAP error will be like "NO Unknown source folder. (Failure)"
Change-Id: Ia3a78ffd38c44b7babda93ed554b914cb8bcc47d
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
|
| |
|
|
|
| |
Change-Id: I5ee07f902ddb7f6b2d6ea4662070757df74f22ad
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| |
|
|
|
| |
Change-Id: Icce55517963f0cbc35211e9fc6f1a0fc413f5676
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
For mutipart/alternative mails the code introduced by commit:
a7096490c094608239918ebbdbcca8003e81a8de, enqueues the preferred body part
twice when the content size is bigger that maxMailSize, causing the
part to be written twice.
Signed-off-by: Valerio Valerio <valerio.valerio@jollamobile.com>
Change-Id: I9367494efc19d6a7de73c558044eaab4ca8974c3
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QmfMessageServer.
This was not possible prior to now due to Qt 4 support hanging around like the
undead vampire it is, but now we purged it with fire and light, and the build
system looks a lot less like a stinky, decomposed corpse.
There's still a lot of surprises lurking: qtmail is one such surprise. I don't
quite grasp why it's so heavy on plugins, and qmfutil also needs some...
attention. But at least it's a start.
As part of this work, we rename the qcop headers to fit the private convention.
This could have been done in a prior commit, but given that I didn't have an
easy way to build prior to this commit, I opted to roll them together.
Change-Id: Ia3e288ffc3639a7751c9040ceecb54fca77a31b1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Valerio Valerio <valerio.valerio@jollamobile.com>
|
| |
|
|
|
| |
Change-Id: If0f4427ee93a37de4ebd9e097defd8b3956f0fc6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
|
|
|
|
|
| |
When determing which parts of a message to download
make sure to give highest priority to the preferred
body part, if a preferred body part (text/plain or text/html)
is defined.
|
| |
|
|
|
|
|
| |
highestmodseq for folders wasn't being recorded in mailstore
until the second sync. So flag changes and deletions made
by another client between the first and second sync
weren't being detected.
|
| |
|
|
|
|
|
|
|
|
|
| |
This flag indicates that a new message notification should not be shown
for the message. e.g. an older message retrieved in a folder that has previously
been synchronized, or an existing message moved to a folder such as trash, or a
message externalized by saving in a drafts or sent folder
It should only be used for new messages, e.g. messageAdded signal.
(I've also included some missing doc in the commit.)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Need to set content scheme and identifier for effected mails.
Did numerous tests to ensure there are no regressions, details below
* Tests with sent folder and trash folder on server for fwod server *
1) check forward without download
send and check mail is in sent folder on server
sync and check mail is in inbox
check can get attachment for message in inbox
check can get attachment for message in sent folder
2) move to trash complete mail
check moved mail in trash on server is ok before/after sync
check moved mail is shown in universal trash before/after sync
3) move to trash partially downloaded (forwarded) mail in inbox
forward without download again
check mail in trash on server is ok before sync
check can complete mail (download attachment) before sync
check moved mail is shown in universal trash before sync
4) move to trash partially downloaded (forwarded) mail in inbox
forward without download again
check mail in trash is ok after sync
check can complete mail (download attachment after sync)
check moved mail is shown in universal trash after sync
5) copy message to trash (only works for complete messages)
check copied message is in trash
(noticed that only metadata is fetched for copied message,
but can retrieve rest of mail using GUI)
6) remove from trash
check still removed after sync
7) normal send, restore from trash on server
send normal mail with attachment, sync, move to trash, restore from trash on server, get attachment
* Tests without sent folder and trash on server for fwod server *
Same as above, but test using universal trash and universal sent mail
e.g. check mail is in univeral sent, check can restore from universal trash
* Tests on server without fwod *
Need to do all above tests again
|
| |
|
|
| |
Patch from Edit Siket-Szasz
|
| |
|
|
|
|
|
|
|
|
|
|
| |
void QMailRetrievalAction::createStandardFolders(const QMailAccountId &accountId)
Requests that the message server create the standard folders for the
account accountId. If all standard folders are already set in the storage
the service action will return success immediately, in case some standard folders are
not set, a matching attempt against a predefined list of translations will be made,
if the folders can't be matched, messageserver will try to create them in the server side
and match them if the creation is successful. In case folder creation is not allowed for
the account accountId the service action will return.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Would cause deleted messages to not be deleted from server.
Only occurs in rare situations.
Only occurs for ImapUpdateMessagesFlagsStrategy and
ImapSynchronizeAllStrategy strategies. So will not
occur in any known products using QMF, except qtmail.
Probably will not occur in qtmail either, but I need
to fix this for edit mail in drafts.
Fix a bug whereby all message removal records where deleted instead of none
|
| |
|
|
|
|
|
|
| |
Ensure removed messages are detected on IMAP servers that don't
provide a UIDNEXT response when a folder is SELECTed.
A UIDNEXT response MUST be sent according to RFC 3501 section 6.3.1
but some servers such as Courier don't provide it.
|
| |
|
|
|
|
|
|
|
| |
To automatically detect standard folders.
Also set flags for messages in standard folders, and unset flags for messages
previously in standard folders.
Used in QMailRetrievalAction::retrieveFolderList.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QMailMessageServer::messagesCount signal.
QMailSearchAction::countMessages(const QMailMessageKey &filter, const QString &bodyText) function
Requests that the message server count all messages that match the criteria
specified by \a filter. If \a bodyText is non-empty then messages that
contain the supplied text in their content will also be matched and counted.
It should be implemented for all protocol plugins for accounts with the
QMailAccount::CanSearchOnServer flag set.
Implemented for IMAP plugin, accelerated by use of ESEARH IMAP extension
when supported by the remote server.
QMailSearchAction::messagesCount(uint count)
This signal emits the \a count of matching messages on the remote server.
Only emitted for remote searches.
Emitted by countMessages, and searchMessages functions.
uint QMailSearchAction::messagesCount() const
Returns the count of matching messages on the remote server.
Also implemented boiler plate code in QMailMessageServer etc.
|
| |
|
|
|
|
|
| |
Add 'QMailSearchAction::remainingMessagesCount(uint count) signal.
and 'QMailSearchAction::searchMessages' function with limit argument.
Also add doc.
|