| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an account is added, while an account list model is still
uninitialised, the account was added twice. Correct it by
returning when d->initialize() is called. Also exclude current
ids when matching new accounts. Also rename init member and
initialize() to populated and populate() for clearer meaning.
Additional clean-up in the class, polishing spacing and
brackets alignments.
Change-Id: I1e5e3b8dae15d0b86bfbf26b48085d1d9b599707
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
| |
Change-Id: Ice8819e679da538e484c776138e3a9b101493a5d
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
| |
The new QMailAccountManager API is used by the
mail store to deal with accounts, when provided.
By default, the existing SQL handling of the
accounts is used.
Change-Id: Ided2132ce8bfc7a4efebff90cbb2a727134f8fda
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
| |
Add a constructor option to QMailStoreSql to
use or not the tables related to accounts. When
true, it allows to use an external storage for
the accounts, like system-wide accounts.
Change-Id: I87d1dc8afafa56889511e25b58505dc5dfe1c89e
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
| |
Separate the code dealing with standard folders,
so it can be called separately from the code
dealing with the account.
Change-Id: I65a9ce2c32c5584e4df7f9b339cb4e6d639b5bdd
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
| |
Use a key, value order when defining the Cache
template, to follow QCache ordering.
Change-Id: I14b56842a47753669d23d21f7166e8f89b166c0e
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
| |
Cut QMailStorePrivate into two:
- one new class that is handling SQL-related actions,
- the remaining part, containing the cache and the
notifications.
Change-Id: Ide3f70a5da8e85b465dc0ccd07a4bc15e549f519
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New api better checks the types and we have complex enough ones here.
Besides that, the api had overloaded names for
QMailSearchAction::remainingMessagesCount() and ::messagesCount(),
having same name for both signal and getter. While we could cope with
that with some extra code, it's really just bad API so changed
the signal names to indicate it's about change.
Also the totalProgressChanged() signalling seemed broken.
The signal got connected to handler in private class, which
emitted a similar signal, but that wasn't connected to the main class.
Added such now in QMailActionInfo() ctor.
Change-Id: If0264d8de65509cd1be9b5a5d994c57ab9e9f0d5
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just use the common Q_Q and Q_DECLARE_PRIVATE. Not seeing a point in the
custom code that makes it harder to follow. The QPrivateImplementation
talks about QSharedDataPointer. I'm not entirely following what's
really the problem but in this direction such is not even used.
Small ABI break: apps using QMailServiceAction likely need to be
recompiled due to instance size change.
Change-Id: I0fe87f277ff1c2383331dfe9e9e29377ff608479
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QMailProtocolAction::protocolRequest() is specified
"The request may have associated \a data, in a protocol-specific form",
which should mean that invalid QVariant() is allowed to indicate no data.
This worked earlier but the D-Bus IPC broke it due to D-Bus wire protocol
not allowing invalid variant, and QDBus was refusing to handle such:
'QDBusConnection: error: could not send message to service
"org.qt.messageserver" path "/messageserver" interface
"org.qt.messageserver" member "protocolRequest": Marshalling failed:
Variant containing QVariant::Invalid passed in arguments'
Side-stepped the problem by switching type to QVariantMap, which
is simple to serialize empty and named parameters can be passed now
without extra hassle. It's a small API break but the protocol requests
are quite an advanced feature, and not used with the QMailMessageSource
instances in this repository.
Change-Id: I0a44026938d6e77bc7a89640cffe6efa38cc5616
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tests can be run with `ctest`. The `--verbose`
option makes the output of each test visible.
Fix also minor failures:
- make qlogsystem test locale independent,
- make qmailstore test properly listening to
the messagePropertyUpdated() signal.
IMAP, POP and SMTP tests are declared as always
failing for the moment, since they try to
connect to a mail server (but they are still
useful for debug purposes).
Change-Id: I7ae548110a8eeb37bd07b031a8433d38ea53529e
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't turn on logging compilation with a CPP
macro anymore. Logging can still be disabled
at runtime if necessary.
Also disable only Syslog under Windows and not
all other loggers like files.
Change-Id: Ib480b40be9892f41110f2d2ee9c7211c4e34d9fb
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
| |
Also use serialized arguments via QDBusArgument.
Change-Id: I568ed4e2a312817fba8d392f2e33fa6eac7df2f9
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
| |
Change-Id: If9241c299ef9e88b01e49e49ee72b56409fd2ada
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
| |
Change-Id: I2f3a3e790480b37e7c85d536b88e8621036fd2b5
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
| |
SMTP, POP and IMAP service configurations are
base64 encoding the password in storage. The
PlainCredentials using such values from storage
should thus decode the password before returning
it.
Change-Id: I255fc78cff29a2cc4eeb973ad36a918ca60cd9b8
Reviewed-by: Guido Berhoerster <guido+qt@berhoerster.name>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, login is deferred until all
configured push folders have been established
(or failed), when push email is enabled.
This does not work for a newly created account
where there is no folder registered.
This patch ensures that the code continues
to the login when push email is enabled but
when there is no valid configured folders.
Change-Id: I397d4d2616c3c6cebc9a3f4dcc03f4b5e3564ebe
Reviewed-by: Guido Berhoerster <guido+qt@berhoerster.name>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a QMailAccountConfiguration does not have a
given service, and does not have the configuration
to create it, it must return an invalid
::ServiceConfiguration object, instead of the
undefined value of the terminated iterator.
Change-Id: Ic7dd5b56ddd876ef8a48ea00fbb8f279f765062d
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Guido Berhoerster <guido+qt@berhoerster.name>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just passing QMailMessageKey() ended up with empty search query and
then crashing on QStringList::takeFirst().
Added similar error handling as CreateState::transmit() and
RenameState::transmit() have.
Change-Id: I6fdaa8ac11507dd880676d1f020c53d4964c85aa
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
| |
Fix a regression introduced in 679b6a2d. The setIdlingForFolder()
is also called on idle renewal, when the main session is in logout
state. There is no need to ask for a login then.
Change-Id: Iec6649a529a2d2b5b9b9d817f0ea2df5ff03f383
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The IdleProtocol was delaying its signal emission
of openRequest in case of an error. Then the client
emitted restartPushEmail and the service was immediately
calling initiatePushEmail(). This is the case when
the error happened in the idle protocol.
But the service is already having a delayed machinery
to restart the idle session in case an error happens
in the main client session.
This patch is removing the delay timer in IdleProtocol
so any error happening there is immediately reported to
the service, which decides to delay the call to
initiatePushEmail(). This requires some safe guards
to be added in the service to ensure that the delay
is applied only once even when there are several
push folders emitting errors.
Change-Id: I2b49c0445640d58bb391088b602f152cfe45eb49
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
| |
Use a common QTimer in ImapClient for every
IdleProtocol, so the network accesses to renew
the idling connections are all done in a close-
by period of time, allowing the radio to sleep
for a longer time between wakes-up.
Change-Id: I7c9378a0af74015a34fd6cc98fa9517433d28392
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The setup here was quite broken, nobody really properly owned the
created server plugin instances and the static instance deletion
got rid of them at process shutdown in random order with other qmf
stuff. Resulting in bad memory accessses and whatnot.
Thus separating here the plugin api and the services the plugins
can create. Needs a bit adjustment for the out-of-source plugins using
this.
Change-Id: I226d63ef985b215a09f6125a013bafdc80d69562
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no need anymore to delay IMAP
start on push enabled. If an error occurs
and idling can't be established, there
are already two exponential timers:
- one in ImapService that restart idling
for errors happening in the main client
session.
- one in IdleTransport that delays the
emission of restartPushEmail signal
on error in the idle connection.
Change-Id: I6ccbd7fccc0d36f40d2dc2ca6ddf7b6f099f1638
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
| |
Change-Id: Iea29363085238bec0091ccfd07f063e84d7e3897
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Effectively reverting commit e44c341334b98 which didn't include much
rationale why to have such.
I'm making an assumption that it's not really that needed these days:
- No any sort of documentation nor config option for that. Needs
extra DEFINES passed on build.
- No config.h type of result on how the library gets build, apps
building against this will need to know and seems even pass the same
definition to get the virtual tables matching.
- Naming obsolete these days
- Not sure how much the end result built this way would even make sense,
i.e. does it work for anything else than some limited QMailMessage usage.
Change-Id: I4df9025bed7966f6ab8c4ccd4fe1c96885f332b5
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's been QMimeDatabase and friends since Qt 5.0.
Guess this implementation precedes that. Shouldn't be needed anymore.
This is a small API break but migration to Qt api should be simple and
likely the usage was only internal.
Change-Id: I6d4b6bfd45ad040bd4c6e2b29afc5607a0d3615c
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
| |
The miniature 8×8 are unlikely to help anyone and the UI better
do their own icons that actually match the UI style. That shouldn't
be too complicated.
Change-Id: I86965aff91d0ccfb9dbb532e5d16f26519990190
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of these have been included already in the initial release.
For the ones introduced after that some were jolla development time
migration and not affecting end users on that OS. Unlikely mattered
much elsewhere either, but keeping now the latest change from 2013
on commit c4aeface43f30 as an example how to do migrations later.
Change-Id: I27fd3c0b1c11e26eb946ddb7c8022b8fe23f538a
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|
|
|
|
|
|
|
| |
Change-Id: I1e09b7a308758af95b84e1fdd837d5fc5584172e
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The errorOccurred signal is only emitted for client
session, and not for idle connections (there are
reporting via the client itself, which emits
restartPushEmail signal for idle errors).
It is thus necessary to report any error the client
is emitting. If the client session was launched to
establish idle connections and these sessions are not
running, then one should retry to reestablish the
idle connections later.
Without the patch, in case of a non responding server
(connection to a captive portal without network
granted yet), the client error was not reported when
the connection could not be established. It was
accepted wrongly as succeeded when a new attempt to establish
idle connections was made and Source::retrievalCompleted()
was emitted when queueing the idle folder for scan.
But with the retry timeout becoming larger and larger,
the strategy expiry timeout finally kicked in and the
service was fully restarted.
Change-Id: I206e77f221d2a7c4bdfcee1952dbe1127431e6d6
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid the case of calling disable() in the
callback for any other case than when the account
is disabled.
In particular, don't call disable() + enabled()
to apply a change. The only account change that
requires to stop (and restart) a running client
is a change in the idle folder list. In that case,
there is no need to kill and restart the client,
just restarting the idle function is enough.
Change-Id: Ica39c1c09bb5b156670a0f1301bc6dc9703a7451
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Makes the idle state to rely on _monitored and
_waitingForIdleFolderIds variables only.
_monitored is the set of IdleProtocol listening
to changes in a folder. _waitingForIdleFolderIds
is a subset of _monitored, listing folder where
the protocol was started, but has not reached yet
the idling status.
_idlesEstablished can be replaced by a combination
of the two, being true when and only when some
folders are monitored and all of them are in the
idling state.
Old variable _waitingForIdle is not needed anymore
if monitor() function is modified to ensure that
the list of folders given as argument is properly
transformed into monitored folders, and only these
folders as argument. Calling monitor on the same
list is a no operation, making _waitingForIdle
completely obsolete.
A new closeIdleConnections() function is added
to the public API of ImapClient, since there was
previously no mean to close idle connections,
except by killing the client itself. This is
achieved internally by closing non desired
idle protocols in monitor() before checking if
the settings are push enabled.
Change-Id: I8c62b6d5ff7150ee2c90d7dcfec3bd44f66cf7b6
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
| |
Change-Id: I2fe5118ce780239878c345508baa09ba637f810a
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
| |
Change-Id: If39a2c6d106c88a0f3bc059db1d8f40957649193
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>
|
|
|
|
|
|
|
|
|
|
| |
There is no need to maintain _accountWasEnabled
variable, since a client is created when enabled
and deleted when disabled. Testing _client can
play its role.
Change-Id: I37bbb1bd58368bad626994ce89544ba4dfbaa45c
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
| |
Define a new class allowing to store
signature settings, like the plug-in
used for cryptographic signature or
the preferred keys passed to the sign()
method in QMailCryptographicService.
Change-Id: I331d93ab3f48df501b23688df79a230ba6ea2889
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some configuration values require a string
list, like the scopes in OAuth2 protocol for
authentication. String list can be serialized
to string, but instead of doing it at each
place it is needed, this patch introduces a
way to do it at the ServiceConfiguration level.
Change-Id: I1741d41ecf60a4e07087e2744916eb2065d6710c
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't think we'll need win32ce / windows mobile support by now.
Not sure how beneficial it was in the first place if it lacked
database support.
Besides that, the whole ifdeffing in qmailnamespace.cpp seemed broken
here, block starting outside methods and ending somewhere in a middle
of a method.
pop3client unistd.h not needed anymore, was adder for ::sync()
but that is already gone.
Change-Id: I530028f2fd7d476df0ad11ea259dfb843c627352
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
| |
Change-Id: Id4cac8f496e9734f8f9b514e5d6c9234d0438508
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
| |
Fixed also a copy-paste error on qmailthreadsortkey_p.h.
Change-Id: Ide4bb24e69a94f64c9521f5c4cce7a33921fab11
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
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>
|
|
|
|
|
|
|
|
|
| |
Usage removed in commit a32ca6254da50
Change-Id: I6d08f79f8649d72355f20fe28b1dfdbc675165b7
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The qmfclient was using this just to get storage info, which is
somewhat out of scope for the class api anyway. And also the
"errorMessage" meaning out-of-space error was bad API.
Got rid of OS specific storage calculation in favor of QStorageInfo
and streamlined the error string method.
To me the implementation feels like trying a bit too much to check the
available space, but I'll not touch that now.
Change-Id: Ice4256c0cdf3fa3dc52c1354ab07a433862e66ae
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gcc 4.1.1 shouldn't matter anymore too much.
Switching to std::bind() required sprinkling _1 and _2 for the remaining
parameters of the bound method.
Dropped also curious malloc_trim(0) which seemed like pointless
micro-optimization. Strictly speaking in c++ we don't even use malloc().
And curious QMAILSTORE_USE_RTTI, think we can just assume it.
Change-Id: Ida1bb05b279382cd95911efdcee422ae8d9f5ece
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The qmfclient was using this just to get storage info, which is
somewhat out of scope for the class api anyway. And also the
"errorMessage" meaning out-of-space error was bad API.
Got rid of OS specific storage calculation in favor of QStorageInfo
and streamlined the error string method.
To me the implementation feels like trying a bit too much to check the
available space, but I'll not touch that now.
Change-Id: Ice4256c0cdf3fa3dc52c1354ab07a433862e66ae
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
|
|
|
|
|
|
| |
Change-Id: Id5c3665cbc1b9faeb837fdb9d7a8cc6aaa881b61
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Damien Caliste <dcaliste@free.fr>
|