summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add missing spaces after for/if/while/switchHEADmasterPekka Vuorela33 hours54-410/+410
| | | | | | | Change-Id: I57c6ed78099b3359a16ce807da95325e755f0197 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: Damien Caliste <dcaliste@free.fr> Reviewed-by: <matti.viljanen@kapsi.fi>
* Remove trailing whitespace with sed scriptPekka Vuorela33 hours112-2764/+2764
| | | | | | | Change-Id: Iebfffe7a6d5b2db40f0508ecd7c8ccddfa6665a6 Reviewed-by: Damien Caliste <dcaliste@free.fr> Reviewed-by: <matti.viljanen@kapsi.fi> Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Fix account added twice in list modelDamien Caliste35 hours1-95/+84
| | | | | | | | | | | | | | 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>
* Add a mail account manager based on libaccounts-qtDamien Caliste4 days10-4/+1263
| | | | | Change-Id: Ice8819e679da538e484c776138e3a9b101493a5d Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Introduce an API handling external accountsDamien Caliste4 days10-17/+301
| | | | | | | | | | | 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>
* Make account tables optionalDamien Caliste4 days4-55/+153
| | | | | | | | | | 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>
* Move handling of standard folders to dedicated routinesDamien Caliste4 days2-107/+152
| | | | | | | | | 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>
* Put key first in QMailStorePrivate::Cache templateDamien Caliste4 days2-36/+38
| | | | | | | | Use a key, value order when defining the Cache template, to follow QCache ordering. Change-Id: I14b56842a47753669d23d21f7166e8f89b166c0e Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Move SQL-related parts into a dedicated classDamien Caliste4 days14-9725/+10339
| | | | | | | | | | 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 connect() api in QMailServiceAction - small api breakPekka Vuorela2025-04-223-107/+115
| | | | | | | | | | | | | | | | | | | | 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>
* Avoid custom QPrivatelyNoncopyable on QMailServiceAction - ABI breakPekka Vuorela2025-04-224-241/+301
| | | | | | | | | | | | | | | 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>
* Adjust and fix protocolRequest API - minor API breakPekka Vuorela2025-04-0710-67/+88
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Declare tests in the build systemDamien Caliste2025-04-0238-18/+174
| | | | | | | | | | | | | | | | | | 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>
* Always compile logging capabilitiesDamien Caliste2025-04-022-46/+6
| | | | | | | | | | | | 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>
* Define D-Bus signals for store IPCDamien Caliste2025-03-2612-526/+463
| | | | | | | Also use serialized arguments via QDBusArgument. Change-Id: I568ed4e2a312817fba8d392f2e33fa6eac7df2f9 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Move store IPC into a dedicated classDamien Caliste2025-03-268-1027/+1017
| | | | | Change-Id: If9241c299ef9e88b01e49e49ee72b56409fd2ada Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Add signal testing for QMailStoreDamien Caliste2025-03-261-0/+41
| | | | | Change-Id: I2f3a3e790480b37e7c85d536b88e8621036fd2b5 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Decode password in plain credentialsDamien Caliste2025-03-261-6/+25
| | | | | | | | | | | | 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>
* Continue login when there is no valid push foldersDamien Caliste2025-03-262-3/+6
| | | | | | | | | | | | | | | | | 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>
* Return an invalid service when not foundDamien Caliste2025-03-172-0/+8
| | | | | | | | | | | | 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>
* Fix crash on imap search without supported keysPekka Vuorela2025-03-031-0/+6
| | | | | | | | | | | | | 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>
* Don't continue on log-in after idle renewalDamien Caliste2025-02-281-3/+5
| | | | | | | | | 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>
* Make ImapService the only place to delay push mail restartDamien Caliste2025-02-283-65/+32
| | | | | | | | | | | | | | | | | | | | | | | 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>
* Synchronize idle renewal timersDamien Caliste2025-02-282-10/+20
| | | | | | | | | | | 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>
* Proper life-cycle management for messageserver plugins. API breakPekka Vuorela2025-02-274-18/+36
| | | | | | | | | | | | | | | | 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>
* Remove initial imap push delayDamien Caliste2025-02-262-24/+1
| | | | | | | | | | | | | | | | 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>
* Avoid uninitialized memory reference in SsoManager::init()Pekka Vuorela2025-02-261-1/+1
| | | | | | | Change-Id: Iea29363085238bec0091ccfd07f063e84d7e3897 Reviewed-by: <matti.viljanen@kapsi.fi> Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: Damien Caliste <dcaliste@free.fr>
* Remove #ifndef QTOPIAMAIL_PARSING_ONLYPekka Vuorela2025-02-254-55/+0
| | | | | | | | | | | | | | | | | | | | 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>
* Remove custom implementation for mime type database, small api breakPekka Vuorela2025-02-257-1402/+23
| | | | | | | | | | | | | 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>
* Remove icons from QMailMessageModelBasePekka Vuorela2025-02-2514-87/+1
| | | | | | | | | 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>
* Remove obsolete database migration filesPekka Vuorela2025-02-2436-206/+0
| | | | | | | | | | | | | | | 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>
* Include missing #include <functional>Pekka Vuorela2025-02-241-0/+2
| | | | | | | Change-Id: I1e09b7a308758af95b84e1fdd837d5fc5584172e Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: Damien Caliste <dcaliste@free.fr> Reviewed-by: <matti.viljanen@kapsi.fi>
* Report client error even when establishing idle connectionsDamien Caliste2025-02-214-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Rework ImapService::onAccountsUpdated()Damien Caliste2025-02-211-26/+23
| | | | | | | | | | | | | | | | 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>
* Reduce status variable number in ImapClient::monitor()Damien Caliste2025-02-212-63/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add missing exportation of the new QMailCryptographicServiceConfiguration classDamien Caliste2025-02-201-1/+1
| | | | | Change-Id: I2fe5118ce780239878c345508baa09ba637f810a Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Separate push email related code from enable/disableDamien Caliste2025-02-192-30/+38
| | | | | Change-Id: If39a2c6d106c88a0f3bc059db1d8f40957649193 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Make configuration local in the IMAP clientDamien Caliste2025-02-196-124/+124
| | | | | | | | | | | | | | | | 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>
* Test account enabled on _client existing in ImapServiceDamien Caliste2025-02-192-7/+4
| | | | | | | | | | 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>
* Add account configurations for cryptographic settingsDamien Caliste2025-02-192-0/+133
| | | | | | | | | | | 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>
* New ServiceConfiguration API to use string listsDamien Caliste2025-02-197-0/+165
| | | | | | | | | | | | 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>
* Remove win32_ce traces and some unnecessary platform specific bitsPekka Vuorela2025-02-174-19/+1
| | | | | | | | | | | | | | | | | | 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>
* Add a couple null pointer checksPekka Vuorela2025-02-142-1/+3
| | | | | | | Change-Id: Id4cac8f496e9734f8f9b514e5d6c9234d0438508 Reviewed-by: <matti.viljanen@kapsi.fi> Reviewed-by: Damien Caliste <dcaliste@free.fr> Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
* Remove semicolons after method bodiesPekka Vuorela2025-02-1418-46/+60
| | | | | | | | | | 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>
* Switch to CamelCased Qt #includesPekka Vuorela2025-02-1213-41/+53
| | | | | | | Change-Id: Ifa2dad56db9667fcbeaff4c618a8a8de75d693c4 Reviewed-by: Damien Caliste <dcaliste@free.fr> Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: <matti.viljanen@kapsi.fi>
* Remove qringbuffer_p.hPekka Vuorela2025-02-121-310/+0
| | | | | | | | | 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>
* Move LongStream to server library, streamline the implementationPekka Vuorela2025-02-120-0/+0
| | | | | | | | | | | | | | | | | | 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>
* Switch custom bind & cref to std:: implementationsPekka Vuorela2025-02-115-743/+86
| | | | | | | | | | | | | | | | 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>
* Move LongStream to server library, streamline the implementationPekka Vuorela2025-02-1120-113/+72
| | | | | | | | | | | | | | | | | | 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>
* Remove (void) parameters, this isn't cPekka Vuorela2025-02-114-18/+18
| | | | | | | Change-Id: Id5c3665cbc1b9faeb837fdb9d7a8cc6aaa881b61 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: <matti.viljanen@kapsi.fi> Reviewed-by: Damien Caliste <dcaliste@free.fr>