diff --git a/rpm/0004-Accounts-qt-integration.patch b/rpm/0004-Accounts-qt-integration.patch index 1c2367a..4b3686a 100644 --- a/rpm/0004-Accounts-qt-integration.patch +++ b/rpm/0004-Accounts-qt-integration.patch @@ -1,7 +1,7 @@ -From 2756b2f8a3f80c1bab752721fd051e05c03f821c Mon Sep 17 00:00:00 2001 +From 8efc819f896bd8456418d41d567197dd2abaaa20 Mon Sep 17 00:00:00 2001 From: Valerio Valerio Date: Wed, 29 May 2013 09:44:20 +0300 -Subject: [PATCH 04/17] Accounts-qt integration. +Subject: [PATCH] Accounts-qt integration. Squashed commits, either one line description or block comment: @@ -117,50 +117,50 @@ Auth in one step introduced by this commit, better to reduce communication with c: AUTH PLAIN S: 235 2.7.0 Authentication successful --- - common.pri | 6 + - src/libraries/qmfclient/qmailaccountlistmodel.cpp | 44 +- - src/libraries/qmfclient/qmailstore_p.cpp | 1242 +++++++++++++++++++- - src/libraries/qmfclient/qmailstore_p.h | 47 +- - src/libraries/qmfclient/qmfclient.pro | 29 + - src/libraries/qmfclient/share/email.provider | 12 + - src/libraries/qmfclient/share/email.service | 65 + - src/libraries/qmfclient/ssoaccountmanager.cpp | 66 ++ - src/libraries/qmfclient/ssoaccountmanager.h | 75 ++ - src/libraries/qmfclient/ssoauthplugin.cpp | 118 ++ - src/libraries/qmfclient/ssoauthplugin.h | 74 ++ - src/libraries/qmfclient/ssosessionmanager.cpp | 392 ++++++ - src/libraries/qmfclient/ssosessionmanager.h | 115 ++ - .../qmfmessageserver/qmailauthenticator.cpp | 19 +- - .../qmfmessageserver/qmailauthenticator.h | 4 + - .../qmfmessageserver/qmfmessageserver.pro | 9 + - src/libraries/qmfwidgets/qmfwidgets.pro | 6 + - src/plugins/messageservices/imap/imap.pro | 7 + - .../messageservices/imap/imapauthenticator.cpp | 39 + - .../messageservices/imap/imapauthenticator.h | 6 + - src/plugins/messageservices/imap/imapclient.cpp | 296 ++++- - src/plugins/messageservices/imap/imapclient.h | 28 +- - src/plugins/messageservices/imap/imapprotocol.cpp | 43 +- - src/plugins/messageservices/imap/imapprotocol.h | 4 + - src/plugins/messageservices/imap/imapservice.cpp | 66 ++ - src/plugins/messageservices/pop/pop.pro | 7 + - .../messageservices/pop/popauthenticator.cpp | 35 + - src/plugins/messageservices/pop/popauthenticator.h | 5 + - src/plugins/messageservices/pop/popclient.cpp | 127 ++ - src/plugins/messageservices/pop/popclient.h | 25 + - src/plugins/messageservices/pop/popservice.cpp | 25 + - src/plugins/messageservices/smtp/smtp.pro | 7 + - .../messageservices/smtp/smtpauthenticator.cpp | 64 +- - .../messageservices/smtp/smtpauthenticator.h | 5 + - src/plugins/messageservices/smtp/smtpclient.cpp | 172 ++- - src/plugins/messageservices/smtp/smtpclient.h | 28 + - src/plugins/messageservices/smtp/smtpservice.cpp | 8 + - src/plugins/plugins.pro | 3 + - src/plugins/ssoauth/password/password.pro | 21 + - src/plugins/ssoauth/password/passwordplugin.cpp | 185 +++ - src/plugins/ssoauth/password/passwordplugin.h | 72 ++ - src/tools/messageserver/servicehandler.cpp | 13 + - tests/tst_qmailstore/tst_qmailstore.cpp | 85 ++ - 43 files changed, 3637 insertions(+), 62 deletions(-) + common.pri | 6 + + .../qmfclient/qmailaccountlistmodel.cpp | 44 +- + src/libraries/qmfclient/qmailstore_p.cpp | 1259 ++++++++++++++++- + src/libraries/qmfclient/qmailstore_p.h | 47 +- + src/libraries/qmfclient/qmfclient.pro | 29 + + src/libraries/qmfclient/share/email.provider | 12 + + src/libraries/qmfclient/share/email.service | 65 + + src/libraries/qmfclient/ssoaccountmanager.cpp | 66 + + src/libraries/qmfclient/ssoaccountmanager.h | 75 + + src/libraries/qmfclient/ssoauthplugin.cpp | 118 ++ + src/libraries/qmfclient/ssoauthplugin.h | 74 + + src/libraries/qmfclient/ssosessionmanager.cpp | 392 +++++ + src/libraries/qmfclient/ssosessionmanager.h | 115 ++ + .../qmfmessageserver/qmailauthenticator.cpp | 19 +- + .../qmfmessageserver/qmailauthenticator.h | 4 + + .../qmfmessageserver/qmfmessageserver.pro | 9 + + src/libraries/qmfwidgets/qmfwidgets.pro | 6 + + src/plugins/messageservices/imap/imap.pro | 7 + + .../imap/imapauthenticator.cpp | 39 + + .../messageservices/imap/imapauthenticator.h | 6 + + .../messageservices/imap/imapclient.cpp | 296 +++- + src/plugins/messageservices/imap/imapclient.h | 28 +- + .../messageservices/imap/imapprotocol.cpp | 43 +- + .../messageservices/imap/imapprotocol.h | 4 + + .../messageservices/imap/imapservice.cpp | 66 + + src/plugins/messageservices/pop/pop.pro | 7 + + .../messageservices/pop/popauthenticator.cpp | 35 + + .../messageservices/pop/popauthenticator.h | 5 + + src/plugins/messageservices/pop/popclient.cpp | 127 ++ + src/plugins/messageservices/pop/popclient.h | 25 + + .../messageservices/pop/popservice.cpp | 25 + + src/plugins/messageservices/smtp/smtp.pro | 7 + + .../smtp/smtpauthenticator.cpp | 64 +- + .../messageservices/smtp/smtpauthenticator.h | 5 + + .../messageservices/smtp/smtpclient.cpp | 172 ++- + src/plugins/messageservices/smtp/smtpclient.h | 28 + + .../messageservices/smtp/smtpservice.cpp | 8 + + src/plugins/plugins.pro | 3 + + src/plugins/ssoauth/password/password.pro | 21 + + .../ssoauth/password/passwordplugin.cpp | 185 +++ + src/plugins/ssoauth/password/passwordplugin.h | 72 + + src/tools/messageserver/servicehandler.cpp | 13 + + tests/tst_qmailstore/tst_qmailstore.cpp | 85 ++ + 43 files changed, 3651 insertions(+), 65 deletions(-) create mode 100644 src/libraries/qmfclient/share/email.provider create mode 100644 src/libraries/qmfclient/share/email.service create mode 100644 src/libraries/qmfclient/ssoaccountmanager.cpp @@ -174,7 +174,7 @@ S: 235 2.7.0 Authentication successful create mode 100644 src/plugins/ssoauth/password/passwordplugin.h diff --git a/common.pri b/common.pri -index c690ce6..bfd17e8 100644 +index c690ce66..bfd17e85 100644 --- a/common.pri +++ b/common.pri @@ -2,6 +2,12 @@ CONFIG(debug,debug|release) { @@ -191,7 +191,7 @@ index c690ce6..bfd17e8 100644 win32 | macx { diff --git a/src/libraries/qmfclient/qmailaccountlistmodel.cpp b/src/libraries/qmfclient/qmailaccountlistmodel.cpp -index 28f566c..63d98c5 100644 +index 28f566cb..63d98c53 100644 --- a/src/libraries/qmfclient/qmailaccountlistmodel.cpp +++ b/src/libraries/qmfclient/qmailaccountlistmodel.cpp @@ -341,31 +341,37 @@ void QMailAccountListModel::accountsAdded(const QMailAccountIdList& ids) @@ -252,7 +252,7 @@ index 28f566c..63d98c5 100644 } diff --git a/src/libraries/qmfclient/qmailstore_p.cpp b/src/libraries/qmfclient/qmailstore_p.cpp -index 80c7b95..f352b1d 100644 +index 80c7b955..221fa7c5 100644 --- a/src/libraries/qmfclient/qmailstore_p.cpp +++ b/src/libraries/qmfclient/qmailstore_p.cpp @@ -47,6 +47,10 @@ @@ -799,7 +799,7 @@ index 80c7b95..f352b1d 100644 } // namespace -@@ -2531,7 +3005,36 @@ QMailStorePrivate::QMailStorePrivate(QMailStore* parent) +@@ -2531,7 +3005,35 @@ QMailStorePrivate::QMailStorePrivate(QMailStore* parent) contentMutex = new ProcessMutex(databaseIdentifier(), 3); } connect(&databaseUnloadTimer, SIGNAL(timeout()), this, SLOT(unloadDatabase())); @@ -826,7 +826,6 @@ index 80c7b95..f352b1d 100644 + // check if it is an e-mail account + Accounts::ServiceList services = ssoAccount->enabledServices(); + if (!services.count()) { -+ qWarning() << Q_FUNC_INFO << "E-mail Services not found, make sure that *.service and *.provider files are properly installed and e-mail services are enabled."; + ssoAccount = QSharedPointer(); + } + @@ -836,7 +835,7 @@ index 80c7b95..f352b1d 100644 QMailStorePrivate::~QMailStorePrivate() { -@@ -2806,6 +3309,23 @@ void QMailStorePrivate::clearContent() +@@ -2806,6 +3308,25 @@ void QMailStorePrivate::clearContent() Transaction t(this); @@ -852,15 +851,17 @@ index 80c7b95..f352b1d 100644 + if (ssoAccount) { + ssoAccount->remove(); + ssoAccount->syncAndBlock(); -+ } else ++ } else { ++ qWarning() << Q_FUNC_INFO << "E-mail Services not found, make sure that *.service and *.provider files are properly installed and e-mail services are enabled."; + SSOHandleError(manager->lastError()); ++ } + } +#endif + // Drop all data foreach (const QString &table, database()->tables()) { if (table != QLatin1String("versioninfo") && table != QLatin1String("mailstatusflags")) { -@@ -3130,10 +3650,18 @@ bool QMailStorePrivate::idValueExists(quint64 id, const QString& table) +@@ -3130,10 +3651,18 @@ bool QMailStorePrivate::idValueExists(quint64 id, const QString& table) return (query.first()); } @@ -879,7 +880,7 @@ index 80c7b95..f352b1d 100644 bool QMailStorePrivate::idExists(const QMailFolderId& id, const QString& table) { -@@ -3162,6 +3690,51 @@ bool QMailStorePrivate::messageExists(const QString &serveruid, const QMailAccou +@@ -3162,6 +3691,51 @@ bool QMailStorePrivate::messageExists(const QString &serveruid, const QMailAccou return query.first(); } @@ -931,7 +932,7 @@ index 80c7b95..f352b1d 100644 QMailAccount QMailStorePrivate::extractAccount(const QSqlRecord& r) { const AccountRecord record(r); -@@ -3179,7 +3752,7 @@ QMailAccount QMailStorePrivate::extractAccount(const QSqlRecord& r) +@@ -3179,7 +3753,7 @@ QMailAccount QMailStorePrivate::extractAccount(const QSqlRecord& r) return result; } @@ -940,7 +941,7 @@ index 80c7b95..f352b1d 100644 QMailThread QMailStorePrivate::extractThread(const QSqlRecord& r) { -@@ -3422,8 +3995,12 @@ QString QMailStorePrivate::buildOrderClause(const Key& key) const +@@ -3422,8 +3996,12 @@ QString QMailStorePrivate::buildOrderClause(const Key& key) const const QMailThreadSortKey &sortKey(key.key()); return ::buildOrderClause(sortKey.arguments(), key.alias()); } else if (key.isType()) { @@ -953,7 +954,16 @@ index 80c7b95..f352b1d 100644 } return QString(); -@@ -5493,21 +6070,250 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::updateCustomFields(quint64 i +@@ -5033,7 +5611,7 @@ QMailAccount QMailStorePrivate::account(const QMailAccountId &id) const + QMailAccount account; + repeatedly(bind(&QMailStorePrivate::attemptAccount, const_cast(this), + cref(id), &account), +- QLatin1String("account")); ++ QLatin1String("inquire account from id")); + return account; + } + +@@ -5493,21 +6071,250 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::updateCustomFields(quint64 i return Success; } @@ -967,26 +977,28 @@ index 80c7b95..f352b1d 100644 - QString::fromLatin1("%1 custom field query").arg(tableName))); - if (query.lastError().type() != QSqlError::NoError) - return DatabaseFailure; +- +- while (query.next()) +- fields->insert(query.value(0).toString(), query.value(1).toString()); + if (!fields.isEmpty()) { + ssoAccount->beginGroup("customFields"); -- while (query.next()) -- fields->insert(query.value(0).toString(), query.value(1).toString()); +- return Success; +-} + // Insert any custom fields belonging to this account + QMap::const_iterator it = fields.begin(), end = fields.end(); + for ( ; it != end; ++it) { + ssoAccount->setValue(it.key(), QVariant(it.value())); + } + ssoAccount->endGroup(); - -- return Success; ++ + if (!ssoAccount->syncAndBlock()) + return DatabaseFailure; + } + + return Success; - } - ++} ++ +QMailStorePrivate::AttemptResult QMailStorePrivate::updateAccountCustomFields(QSharedPointer& ssoAccount, const QMap &fields) +{ + ssoAccount->beginGroup("customFields"); @@ -1139,7 +1151,7 @@ index 80c7b95..f352b1d 100644 + if (!folders.isEmpty()) { + QVariantList types; + QVariantList folderIds; -+ + + QMap::const_iterator it = folders.begin(), end = folders.end(); + for ( ; it != end; ++it) { + types.append(static_cast(it.key())); @@ -1214,7 +1226,7 @@ index 80c7b95..f352b1d 100644 QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAddAccount(QMailAccount *account, QMailAccountConfiguration* config, QMailAccountIdList *addedAccountIds, Transaction &t, bool commitOnSuccess) -@@ -5609,6 +6415,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAddAccount(QMailAccou +@@ -5609,6 +6416,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAddAccount(QMailAccou addedAccountIds->append(insertId); return Success; } @@ -1222,7 +1234,7 @@ index 80c7b95..f352b1d 100644 QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAddFolder(QMailFolder *folder, QMailFolderIdList *addedFolderIds, QMailAccountIdList *modifiedAccountIds, -@@ -6182,7 +6989,55 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6182,7 +6990,55 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc if (!id.isValid()) return Failure; @@ -1278,7 +1290,7 @@ index 80c7b95..f352b1d 100644 QString properties(QLatin1String("type=?, name=?, emailaddress=?, status=?, signature=?, lastsynchronized=?, iconpath=?")); QVariantList propertyValues; propertyValues << static_cast(account->messageType()) -@@ -6200,7 +7055,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6200,7 +7056,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc if (query.lastError().type() != QSqlError::NoError) return DatabaseFailure; } @@ -1287,7 +1299,7 @@ index 80c7b95..f352b1d 100644 // Update any standard folders configured const QMap &folders(account->standardFolders()); QMap existingFolders; -@@ -6275,13 +7130,20 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6275,13 +7131,20 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc } if (account->customFieldsModified()) { @@ -1308,7 +1320,7 @@ index 80c7b95..f352b1d 100644 // Find the complete set of configuration fields QMap, QString> fields; -@@ -6299,6 +7161,17 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6299,6 +7162,17 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc QMap, QString> existing; { @@ -1326,7 +1338,7 @@ index 80c7b95..f352b1d 100644 QSqlQuery query(simpleQuery(QLatin1String("SELECT service,name,value FROM mailaccountconfig WHERE id=?"), QVariantList() << id.toULongLong(), QLatin1String("updateAccount mailaccountconfig select query"))); -@@ -6307,6 +7180,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6307,6 +7181,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc while (query.next()) existing.insert(qMakePair(query.value(0).toString(), query.value(1).toString()), query.value(2).toString()); @@ -1334,7 +1346,7 @@ index 80c7b95..f352b1d 100644 } QMap obsoleteFields; -@@ -6343,13 +7217,20 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6343,13 +7218,20 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc for ( ; it != end; ++it) { const QString &service = it.key(); const QVariantList &fields = it.value(); @@ -1356,7 +1368,7 @@ index 80c7b95..f352b1d 100644 } } -@@ -6360,13 +7241,23 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6360,13 +7242,23 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc const QString &service = it.key(); const QVariantList &fields = it.value(); const QVariantList &values = vit.value(); @@ -1381,7 +1393,7 @@ index 80c7b95..f352b1d 100644 } } -@@ -6378,12 +7269,23 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6378,12 +7270,23 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc const QVariantList &fields = it.value(); const QVariantList &values = vit.value(); @@ -1405,7 +1417,7 @@ index 80c7b95..f352b1d 100644 } } } -@@ -6392,7 +7294,12 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc +@@ -6392,7 +7295,12 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptUpdateAccount(QMailAc qWarning() << "Could not commit account update to database"; return DatabaseFailure; } @@ -1419,7 +1431,7 @@ index 80c7b95..f352b1d 100644 if (account) { // Update the account cache if (accountCache.contains(id)) -@@ -7434,6 +8341,10 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptEnsureDurability(Tran +@@ -7434,6 +8342,10 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptEnsureDurability(Tran QMailStorePrivate::AttemptResult QMailStorePrivate::attemptCountAccounts(const QMailAccountKey &key, int *result, ReadLock &) { @@ -1430,7 +1442,7 @@ index 80c7b95..f352b1d 100644 QSqlQuery query(simpleQuery(QLatin1String("SELECT COUNT(*) FROM mailaccounts"), Key(key), QLatin1String("countAccounts mailaccounts query"))); -@@ -7442,7 +8353,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptCountAccounts(const Q +@@ -7442,7 +8354,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptCountAccounts(const Q if (query.first()) *result = extractValue(query.value(0)); @@ -1439,7 +1451,7 @@ index 80c7b95..f352b1d 100644 return Success; } -@@ -7513,6 +8424,14 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptQueryAccounts(const Q +@@ -7513,6 +8425,14 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptQueryAccounts(const Q QMailAccountIdList *ids, ReadLock &) { @@ -1454,7 +1466,7 @@ index 80c7b95..f352b1d 100644 QSqlQuery query(simpleQuery(QLatin1String("SELECT id FROM mailaccounts"), QVariantList(), QList() << Key(key) << Key(sortKey), -@@ -7523,7 +8442,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptQueryAccounts(const Q +@@ -7523,7 +8443,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptQueryAccounts(const Q while (query.next()) ids->append(QMailAccountId(extractValue(query.value(0)))); @@ -1463,7 +1475,7 @@ index 80c7b95..f352b1d 100644 return Success; } -@@ -7587,6 +8506,71 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptQueryMessages(const Q +@@ -7587,6 +8507,75 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptQueryMessages(const Q return Success; } @@ -1473,11 +1485,15 @@ index 80c7b95..f352b1d 100644 + ReadLock &) +{ + if (!id.isValid()) -+ return Failure; ++ return Success; + + QSharedPointer ssoAccount = getEmailAccount(id.toULongLong()); + if (!ssoAccount) { -+ return Failure; ++ // On the contrary to updateAccount, not finding an account is not a failure ++ // here, because the purpose of this function is to inquire for one. ++ // We return success and we keep result as invalid / empty. ++ result->setId(QMailAccountId()); ++ return Success; + } + Accounts::ServiceList services = ssoAccount->enabledServices(); + Q_ASSERT (services.count() == 1); @@ -1535,7 +1551,20 @@ index 80c7b95..f352b1d 100644 QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccount(const QMailAccountId &id, QMailAccount *result, ReadLock &) -@@ -7653,7 +8637,50 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccount(const QMailAc +@@ -7600,6 +8589,12 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccount(const QMailAc + + if (query.first()) { + *result = extractAccount(query.record()); ++ } else { ++ // On the contrary to updateAccount, not finding an account is not a failure ++ // here, because the purpose of this function is to inquire for one. ++ // We return success and we keep result as invalid / empty. ++ result->setId(QMailAccountId()); ++ return Success; + } + } + +@@ -7653,7 +8648,50 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccount(const QMailAc return Failure; } @@ -1558,7 +1587,7 @@ index 80c7b95..f352b1d 100644 + + Q_ASSERT(service.serviceType() == "e-mail"); + ssoAccount->selectService(service); - ++ + foreach (const QString& group, ssoAccount->childGroups()) { + if (group != "customFields") { + if (!result->services().contains(group)) { @@ -1576,7 +1605,7 @@ index 80c7b95..f352b1d 100644 + ssoAccount->endGroup(); + } + } -+ + + result->setId(id); + result->setModified(false); + @@ -1586,7 +1615,7 @@ index 80c7b95..f352b1d 100644 QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccountConfiguration(const QMailAccountId &id, QMailAccountConfiguration *result, ReadLock &) -@@ -7703,6 +8730,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccountConfiguration( +@@ -7703,6 +8741,7 @@ QMailStorePrivate::AttemptResult QMailStorePrivate::attemptAccountConfiguration( return Success; } @@ -1594,7 +1623,7 @@ index 80c7b95..f352b1d 100644 QMailStorePrivate::AttemptResult QMailStorePrivate::attemptThread(const QMailThreadId &id, QMailThread *result, ReadLock &) { -@@ -8821,11 +9849,27 @@ bool QMailStorePrivate::checkPreconditions(const QMailFolder& folder, bool updat +@@ -8821,11 +9860,27 @@ bool QMailStorePrivate::checkPreconditions(const QMailFolder& folder, bool updat if(folder.parentAccountId().isValid()) { @@ -1622,7 +1651,7 @@ index 80c7b95..f352b1d 100644 } return true; -@@ -9348,6 +10392,14 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, +@@ -9348,6 +10403,14 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, QMailThreadIdList& modifiedThreadIds, QMailAccountIdList& modifiedAccountIds) { @@ -1637,7 +1666,7 @@ index 80c7b95..f352b1d 100644 { // Get the identifiers for all the accounts we're deleting QSqlQuery query(simpleQuery(QLatin1String("SELECT t0.id FROM mailaccounts t0"), -@@ -9367,6 +10419,7 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, +@@ -9367,6 +10430,7 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, if (noAccounts) return true; } @@ -1645,7 +1674,7 @@ index 80c7b95..f352b1d 100644 // We won't create new message removal records, since there will be no account to link them to QMailStore::MessageRemovalOption option(QMailStore::NoRemovalRecord); -@@ -9411,7 +10464,24 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, +@@ -9411,7 +10475,24 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, // Delete all threads contained by the account we're deleting if (!deleteThreads(threadKey, option, deletedThreadIds, deletedMessageIds, expiredContent, updatedMessageIds, modifiedFolderIds, modifiedThreadIds, modifiedAccountIds)) return false; @@ -1653,9 +1682,9 @@ index 80c7b95..f352b1d 100644 + { + // Remove accounts from SSO + foreach (const QMailAccountId& accountID, deletedAccountIds) { -+ -+ QSharedPointer ssoAccount(Accounts::Account::fromId(manager, accountID.toULongLong(), this)); ++ QSharedPointer ssoAccount(Accounts::Account::fromId(manager, accountID.toULongLong(), this)); ++ + if (ssoAccount) { + ssoAccount->remove(); + if (!ssoAccount->syncAndBlock()) { @@ -1670,7 +1699,7 @@ index 80c7b95..f352b1d 100644 { // Remove any custom fields associated with these accounts QSqlQuery query(simpleQuery(QLatin1String("DELETE FROM mailaccountcustom"), -@@ -9438,7 +10508,7 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, +@@ -9438,7 +10519,7 @@ bool QMailStorePrivate::deleteAccounts(const QMailAccountKey& key, if (query.lastError().type() != QSqlError::NoError) return false; } @@ -1679,7 +1708,7 @@ index 80c7b95..f352b1d 100644 // Do not report any deleted entities as updated for (QMailMessageIdList::iterator mit = updatedMessageIds.begin(); mit != updatedMessageIds.end(); ) { if (deletedMessageIds.contains(*mit)) { -@@ -9788,3 +10858,133 @@ void QMailStorePrivate::emitIpcNotification(const QMailMessageIdList& ids, quint +@@ -9788,3 +10869,133 @@ void QMailStorePrivate::emitIpcNotification(const QMailMessageIdList& ids, quint QMailStoreImplementation::emitIpcNotification(ids, status, set); } @@ -1814,7 +1843,7 @@ index 80c7b95..f352b1d 100644 +} +#endif diff --git a/src/libraries/qmfclient/qmailstore_p.h b/src/libraries/qmfclient/qmailstore_p.h -index 8dd79c9..3d083d0 100644 +index 8dd79c9f..3d083d0f 100644 --- a/src/libraries/qmfclient/qmailstore_p.h +++ b/src/libraries/qmfclient/qmailstore_p.h @@ -50,6 +50,11 @@ @@ -1920,7 +1949,7 @@ index 8dd79c9..3d083d0 100644 template diff --git a/src/libraries/qmfclient/qmfclient.pro b/src/libraries/qmfclient/qmfclient.pro -index 19267f0..4f7e1af 100644 +index 19267f04..4f7e1af2 100644 --- a/src/libraries/qmfclient/qmfclient.pro +++ b/src/libraries/qmfclient/qmfclient.pro @@ -2,6 +2,35 @@ TARGET = QmfClient @@ -1961,7 +1990,7 @@ index 19267f0..4f7e1af 100644 crypto diff --git a/src/libraries/qmfclient/share/email.provider b/src/libraries/qmfclient/share/email.provider new file mode 100644 -index 0000000..b090def +index 00000000..b090def6 --- /dev/null +++ b/src/libraries/qmfclient/share/email.provider @@ -0,0 +1,12 @@ @@ -1979,7 +2008,7 @@ index 0000000..b090def + diff --git a/src/libraries/qmfclient/share/email.service b/src/libraries/qmfclient/share/email.service new file mode 100644 -index 0000000..9f6ef32 +index 00000000..9f6ef320 --- /dev/null +++ b/src/libraries/qmfclient/share/email.service @@ -0,0 +1,65 @@ @@ -2050,7 +2079,7 @@ index 0000000..9f6ef32 + diff --git a/src/libraries/qmfclient/ssoaccountmanager.cpp b/src/libraries/qmfclient/ssoaccountmanager.cpp new file mode 100644 -index 0000000..6cbf216 +index 00000000..e113f40b --- /dev/null +++ b/src/libraries/qmfclient/ssoaccountmanager.cpp @@ -0,0 +1,66 @@ @@ -2106,7 +2135,7 @@ index 0000000..6cbf216 +{ + if (!_manager) { + Q_ASSERT(!_refCount); -+ _manager = new Manager("e-mail"); ++ _manager = new Manager(QLatin1String("e-mail")); + _manager->setAbortOnTimeout(true); + } + @@ -2122,7 +2151,7 @@ index 0000000..6cbf216 +} diff --git a/src/libraries/qmfclient/ssoaccountmanager.h b/src/libraries/qmfclient/ssoaccountmanager.h new file mode 100644 -index 0000000..aa75682 +index 00000000..aa756828 --- /dev/null +++ b/src/libraries/qmfclient/ssoaccountmanager.h @@ -0,0 +1,75 @@ @@ -2203,7 +2232,7 @@ index 0000000..aa75682 +#endif // SSOACCOUNTMANAGER_H diff --git a/src/libraries/qmfclient/ssoauthplugin.cpp b/src/libraries/qmfclient/ssoauthplugin.cpp new file mode 100644 -index 0000000..e085e2d +index 00000000..e085e2d6 --- /dev/null +++ b/src/libraries/qmfclient/ssoauthplugin.cpp @@ -0,0 +1,118 @@ @@ -2327,7 +2356,7 @@ index 0000000..e085e2d + diff --git a/src/libraries/qmfclient/ssoauthplugin.h b/src/libraries/qmfclient/ssoauthplugin.h new file mode 100644 -index 0000000..faf3713 +index 00000000..faf3713c --- /dev/null +++ b/src/libraries/qmfclient/ssoauthplugin.h @@ -0,0 +1,74 @@ @@ -2407,7 +2436,7 @@ index 0000000..faf3713 +#endif // SSOAUTHPLUGIN_H diff --git a/src/libraries/qmfclient/ssosessionmanager.cpp b/src/libraries/qmfclient/ssosessionmanager.cpp new file mode 100644 -index 0000000..e988ed6 +index 00000000..e988ed61 --- /dev/null +++ b/src/libraries/qmfclient/ssosessionmanager.cpp @@ -0,0 +1,392 @@ @@ -2805,7 +2834,7 @@ index 0000000..e988ed6 + diff --git a/src/libraries/qmfclient/ssosessionmanager.h b/src/libraries/qmfclient/ssosessionmanager.h new file mode 100644 -index 0000000..eaecf91 +index 00000000..eaecf916 --- /dev/null +++ b/src/libraries/qmfclient/ssosessionmanager.h @@ -0,0 +1,115 @@ @@ -2925,7 +2954,7 @@ index 0000000..eaecf91 + +#endif // SSOSESSIONMANAGER_H diff --git a/src/libraries/qmfmessageserver/qmailauthenticator.cpp b/src/libraries/qmfmessageserver/qmailauthenticator.cpp -index 83ecfb7..92a12e7 100644 +index 83ecfb7c..92a12e70 100644 --- a/src/libraries/qmfmessageserver/qmailauthenticator.cpp +++ b/src/libraries/qmfmessageserver/qmailauthenticator.cpp @@ -130,6 +130,23 @@ QByteArray QMailAuthenticator::getAuthentication(const QMailAccountConfiguration @@ -2959,7 +2988,7 @@ index 83ecfb7..92a12e7 100644 - +#endif diff --git a/src/libraries/qmfmessageserver/qmailauthenticator.h b/src/libraries/qmfmessageserver/qmailauthenticator.h -index 287bd1f..a9f2d21 100644 +index 287bd1f3..a9f2d214 100644 --- a/src/libraries/qmfmessageserver/qmailauthenticator.h +++ b/src/libraries/qmfmessageserver/qmailauthenticator.h @@ -44,7 +44,11 @@ class MESSAGESERVER_EXPORT QMailAuthenticator @@ -2975,7 +3004,7 @@ index 287bd1f..a9f2d21 100644 #endif diff --git a/src/libraries/qmfmessageserver/qmfmessageserver.pro b/src/libraries/qmfmessageserver/qmfmessageserver.pro -index b042ba2..62d1e28 100644 +index b042ba2b..62d1e28d 100644 --- a/src/libraries/qmfmessageserver/qmfmessageserver.pro +++ b/src/libraries/qmfmessageserver/qmfmessageserver.pro @@ -39,3 +39,12 @@ SOURCES += qmailauthenticator.cpp \ @@ -2992,7 +3021,7 @@ index b042ba2..62d1e28 100644 + PKGCONFIG += libsignon-qt5 +} diff --git a/src/libraries/qmfwidgets/qmfwidgets.pro b/src/libraries/qmfwidgets/qmfwidgets.pro -index ddff356..dafd090 100644 +index ddff356e..dafd090a 100644 --- a/src/libraries/qmfwidgets/qmfwidgets.pro +++ b/src/libraries/qmfwidgets/qmfwidgets.pro @@ -41,3 +41,9 @@ TRANSLATIONS += libqmfutil-ar.ts \ @@ -3006,7 +3035,7 @@ index ddff356..dafd090 100644 + PKGCONFIG += libsignon-qt5 +} diff --git a/src/plugins/messageservices/imap/imap.pro b/src/plugins/messageservices/imap/imap.pro -index 349f96b..1c0ae6b 100644 +index 349f96be..1c0ae6bb 100644 --- a/src/plugins/messageservices/imap/imap.pro +++ b/src/plugins/messageservices/imap/imap.pro @@ -9,6 +9,13 @@ contains(DEFINES,QT_QMF_USE_ALIGNEDTIMER) { @@ -3024,7 +3053,7 @@ index 349f96b..1c0ae6b 100644 imapconfiguration.h \ imapmailboxproperties.h \ diff --git a/src/plugins/messageservices/imap/imapauthenticator.cpp b/src/plugins/messageservices/imap/imapauthenticator.cpp -index 23deb56..941801d 100644 +index 23deb562..941801dd 100644 --- a/src/plugins/messageservices/imap/imapauthenticator.cpp +++ b/src/plugins/messageservices/imap/imapauthenticator.cpp @@ -39,6 +39,7 @@ @@ -3087,7 +3116,7 @@ index 23deb56..941801d 100644 +#endif diff --git a/src/plugins/messageservices/imap/imapauthenticator.h b/src/plugins/messageservices/imap/imapauthenticator.h -index 3a9bdf8..879629f 100644 +index 3a9bdf8d..879629ff 100644 --- a/src/plugins/messageservices/imap/imapauthenticator.h +++ b/src/plugins/messageservices/imap/imapauthenticator.h @@ -43,8 +43,14 @@ class ImapAuthenticator @@ -3106,7 +3135,7 @@ index 3a9bdf8..879629f 100644 #endif diff --git a/src/plugins/messageservices/imap/imapclient.cpp b/src/plugins/messageservices/imap/imapclient.cpp -index a710d48..f5028aa 100644 +index a710d484..f5028aa3 100644 --- a/src/plugins/messageservices/imap/imapclient.cpp +++ b/src/plugins/messageservices/imap/imapclient.cpp @@ -182,16 +182,23 @@ class IdleProtocol : public ImapProtocol { @@ -3564,7 +3593,7 @@ index a710d48..f5028aa 100644 + #include "imapclient.moc" diff --git a/src/plugins/messageservices/imap/imapclient.h b/src/plugins/messageservices/imap/imapclient.h -index 771a7a4..b4dc7b3 100644 +index 771a7a45..b4dc7b32 100644 --- a/src/plugins/messageservices/imap/imapclient.h +++ b/src/plugins/messageservices/imap/imapclient.h @@ -47,6 +47,10 @@ @@ -3629,7 +3658,7 @@ index 771a7a4..b4dc7b3 100644 #endif diff --git a/src/plugins/messageservices/imap/imapprotocol.cpp b/src/plugins/messageservices/imap/imapprotocol.cpp -index f82df5a..e4e0f0e 100644 +index 4df62a57..6c548ee6 100644 --- a/src/plugins/messageservices/imap/imapprotocol.cpp +++ b/src/plugins/messageservices/imap/imapprotocol.cpp @@ -559,8 +559,11 @@ class LoginState : public ImapState @@ -3707,7 +3736,7 @@ index f82df5a..e4e0f0e 100644 } return false; -@@ -3194,11 +3223,19 @@ void ImapProtocol::sendStartTLS() +@@ -3183,11 +3212,19 @@ void ImapProtocol::sendStartTLS() _fsm->setState(&_fsm->startTlsState); } @@ -3727,7 +3756,7 @@ index f82df5a..e4e0f0e 100644 void ImapProtocol::sendLogout() { -@@ -3817,7 +3854,7 @@ QString ImapProtocol::quoteString(const QString& input) +@@ -3806,7 +3843,7 @@ QString ImapProtocol::quoteString(const QString& input) QByteArray ImapProtocol::quoteString(const QByteArray& input) { @@ -3737,7 +3766,7 @@ index f82df5a..e4e0f0e 100644 void ImapProtocol::createMail(const QString &uid, const QDateTime &timeStamp, int size, uint flags, const QString &detachedFile, const QStringList& structure) diff --git a/src/plugins/messageservices/imap/imapprotocol.h b/src/plugins/messageservices/imap/imapprotocol.h -index c7dc4de..d3147ea 100644 +index c7dc4dee..d3147ea4 100644 --- a/src/plugins/messageservices/imap/imapprotocol.h +++ b/src/plugins/messageservices/imap/imapprotocol.h @@ -175,7 +175,11 @@ public: @@ -3753,7 +3782,7 @@ index c7dc4de..d3147ea 100644 /* Valid in authenticated state only */ void sendList(const QMailFolder &reference, const QString &mailbox); diff --git a/src/plugins/messageservices/imap/imapservice.cpp b/src/plugins/messageservices/imap/imapservice.cpp -index eca22f7..f132dd0 100644 +index eca22f75..f132dd0d 100644 --- a/src/plugins/messageservices/imap/imapservice.cpp +++ b/src/plugins/messageservices/imap/imapservice.cpp @@ -199,6 +199,12 @@ private: @@ -3970,7 +3999,7 @@ index eca22f7..f132dd0 100644 destroyIdleSession(); delete _source; diff --git a/src/plugins/messageservices/pop/pop.pro b/src/plugins/messageservices/pop/pop.pro -index 837f928..eb96f74 100644 +index 837f928f..eb96f74d 100644 --- a/src/plugins/messageservices/pop/pop.pro +++ b/src/plugins/messageservices/pop/pop.pro @@ -5,6 +5,13 @@ load(qt_plugin) @@ -3988,7 +4017,7 @@ index 837f928..eb96f74 100644 popconfiguration.h \ popservice.h \ diff --git a/src/plugins/messageservices/pop/popauthenticator.cpp b/src/plugins/messageservices/pop/popauthenticator.cpp -index 34b9c42..87fa079 100644 +index 34b9c422..87fa0791 100644 --- a/src/plugins/messageservices/pop/popauthenticator.cpp +++ b/src/plugins/messageservices/pop/popauthenticator.cpp @@ -38,6 +38,7 @@ @@ -4046,7 +4075,7 @@ index 34b9c42..87fa079 100644 +#endif diff --git a/src/plugins/messageservices/pop/popauthenticator.h b/src/plugins/messageservices/pop/popauthenticator.h -index a704ab5..2d1a104 100644 +index a704ab57..2d1a1040 100644 --- a/src/plugins/messageservices/pop/popauthenticator.h +++ b/src/plugins/messageservices/pop/popauthenticator.h @@ -43,8 +43,13 @@ class PopAuthenticator @@ -4064,7 +4093,7 @@ index a704ab5..2d1a104 100644 #endif diff --git a/src/plugins/messageservices/pop/popclient.cpp b/src/plugins/messageservices/pop/popclient.cpp -index b8aa5c7..c34e9e8 100644 +index 85ac8553..3d567135 100644 --- a/src/plugins/messageservices/pop/popclient.cpp +++ b/src/plugins/messageservices/pop/popclient.cpp @@ -76,10 +76,18 @@ PopClient::PopClient(QObject* parent) @@ -4097,7 +4126,7 @@ index b8aa5c7..c34e9e8 100644 } void PopClient::messageBufferFlushed() -@@ -168,6 +180,7 @@ void PopClient::newConnection() +@@ -156,6 +168,7 @@ void PopClient::newConnection() testing = false; pendingDeletes = false; lastStatusTimer.start(); @@ -4105,7 +4134,7 @@ index b8aa5c7..c34e9e8 100644 if (transport && transport->connected()) { if (selected) { // Re-use the existing connection -@@ -257,6 +270,24 @@ void PopClient::setAccount(const QMailAccountId &id) +@@ -241,6 +254,24 @@ void PopClient::setAccount(const QMailAccountId &id) qMailLog(POP) << "Flags for POP folder" << folder.id() << folder.path() << "updated"; } } @@ -4130,7 +4159,7 @@ index b8aa5c7..c34e9e8 100644 } QMailAccountId PopClient::accountId() const -@@ -529,12 +560,30 @@ void PopClient::processResponse(const QString &response) +@@ -513,12 +544,30 @@ void PopClient::processResponse(const QString &response) { if (response[0] != '+') { // Authentication failed @@ -4161,7 +4190,7 @@ index b8aa5c7..c34e9e8 100644 if (!response.isEmpty()) { // Send the response as Base64 encoded -@@ -743,7 +792,11 @@ void PopClient::nextAction() +@@ -727,7 +776,11 @@ void PopClient::nextAction() emit updateStatus(tr("Logging in")); // Get the login command sequence to use @@ -4173,7 +4202,7 @@ index b8aa5c7..c34e9e8 100644 nextStatus = Auth; nextCommand = authCommands.takeFirst(); -@@ -1240,6 +1293,11 @@ void PopClient::checkForNewMessages() +@@ -1224,6 +1277,11 @@ void PopClient::checkForNewMessages() void PopClient::cancelTransfer(QMailServiceAction::Status::ErrorCode code, const QString &text) { operationFailed(code, text); @@ -4185,7 +4214,7 @@ index b8aa5c7..c34e9e8 100644 } void PopClient::retrieveOperationCompleted() -@@ -1337,3 +1395,72 @@ void PopClient::removeAllFromBuffer(QMailMessage *message) +@@ -1321,3 +1379,72 @@ void PopClient::removeAllFromBuffer(QMailMessage *message) _bufferedMessages.remove(i); } } @@ -4259,7 +4288,7 @@ index b8aa5c7..c34e9e8 100644 + +#endif diff --git a/src/plugins/messageservices/pop/popclient.h b/src/plugins/messageservices/pop/popclient.h -index b3837c1..f7df5d5 100644 +index b3837c17..f7df5d5d 100644 --- a/src/plugins/messageservices/pop/popclient.h +++ b/src/plugins/messageservices/pop/popclient.h @@ -46,6 +46,10 @@ @@ -4320,7 +4349,7 @@ index b3837c1..f7df5d5 100644 #endif diff --git a/src/plugins/messageservices/pop/popservice.cpp b/src/plugins/messageservices/pop/popservice.cpp -index 7d9aa16..3b8663a 100644 +index 7d9aa16e..3b8663a7 100644 --- a/src/plugins/messageservices/pop/popservice.cpp +++ b/src/plugins/messageservices/pop/popservice.cpp @@ -101,6 +101,9 @@ private: @@ -4405,7 +4434,7 @@ index 7d9aa16..3b8663a 100644 } diff --git a/src/plugins/messageservices/smtp/smtp.pro b/src/plugins/messageservices/smtp/smtp.pro -index d3c920f..7663a28 100644 +index d3c920fb..7663a28a 100644 --- a/src/plugins/messageservices/smtp/smtp.pro +++ b/src/plugins/messageservices/smtp/smtp.pro @@ -5,6 +5,13 @@ load(qt_plugin) @@ -4423,7 +4452,7 @@ index d3c920f..7663a28 100644 smtpclient.h \ smtpconfiguration.h \ diff --git a/src/plugins/messageservices/smtp/smtpauthenticator.cpp b/src/plugins/messageservices/smtp/smtpauthenticator.cpp -index 76fb904..0dae24c 100644 +index 76fb904e..0dae24c5 100644 --- a/src/plugins/messageservices/smtp/smtpauthenticator.cpp +++ b/src/plugins/messageservices/smtp/smtpauthenticator.cpp @@ -37,6 +37,7 @@ @@ -4509,7 +4538,7 @@ index 76fb904..0dae24c 100644 - +#endif diff --git a/src/plugins/messageservices/smtp/smtpauthenticator.h b/src/plugins/messageservices/smtp/smtpauthenticator.h -index 97300b9..0618326 100644 +index 97300b99..06183262 100644 --- a/src/plugins/messageservices/smtp/smtpauthenticator.h +++ b/src/plugins/messageservices/smtp/smtpauthenticator.h @@ -42,8 +42,13 @@ @@ -4527,7 +4556,7 @@ index 97300b9..0618326 100644 #endif diff --git a/src/plugins/messageservices/smtp/smtpclient.cpp b/src/plugins/messageservices/smtp/smtpclient.cpp -index 9e1e219..9d77e6c 100644 +index 27893973..7b768e5e 100644 --- a/src/plugins/messageservices/smtp/smtpclient.cpp +++ b/src/plugins/messageservices/smtp/smtpclient.cpp @@ -113,6 +113,11 @@ SmtpClient::SmtpClient(QObject* parent) @@ -4600,7 +4629,7 @@ index 9e1e219..9d77e6c 100644 SmtpConfiguration smtpCfg(config); if ( smtpCfg.smtpServer().isEmpty() ) { status = Done; -@@ -551,6 +586,31 @@ void SmtpClient::nextAction(const QString &response) +@@ -541,6 +576,31 @@ void SmtpClient::nextAction(const QString &response) addressComponent = localAddress.toIPv4Address(); // Find the authentication mode to use @@ -4632,7 +4661,7 @@ index 9e1e219..9d77e6c 100644 QByteArray authCmd(SmtpAuthenticator::getAuthentication(config.serviceConfiguration("smtp"), capabilities)); if (!authCmd.isEmpty()) { sendCommand(authCmd); -@@ -565,14 +625,50 @@ void SmtpClient::nextAction(const QString &response) +@@ -555,14 +615,50 @@ void SmtpClient::nextAction(const QString &response) status = Authenticated; nextAction(QString()); } @@ -4683,7 +4712,7 @@ index 9e1e219..9d77e6c 100644 if (!response.isEmpty()) { // Send the response as Base64 encoded, mask the debug output -@@ -580,8 +676,9 @@ void SmtpClient::nextAction(const QString &response) +@@ -570,8 +666,9 @@ void SmtpClient::nextAction(const QString &response) bufferedResponse.clear(); return; } else { @@ -4695,7 +4724,7 @@ index 9e1e219..9d77e6c 100644 } } else if (responseCode == 235) { // We are now authenticated -@@ -590,14 +687,29 @@ void SmtpClient::nextAction(const QString &response) +@@ -580,14 +677,29 @@ void SmtpClient::nextAction(const QString &response) } else if (responseCode == 530) { operationFailed(QMailServiceAction::Status::ErrConfiguration, response); } else { @@ -4726,7 +4755,7 @@ index 9e1e219..9d77e6c 100644 if (mailItr == mailList.end()) { // Nothing to send status = Quit; -@@ -851,6 +963,10 @@ void SmtpClient::nextAction(const QString &response) +@@ -841,6 +953,10 @@ void SmtpClient::nextAction(const QString &response) void SmtpClient::cancelTransfer(QMailServiceAction::Status::ErrorCode code, const QString &text) { operationFailed(code, text); @@ -4737,7 +4766,7 @@ index 9e1e219..9d77e6c 100644 } void SmtpClient::messageProcessed(const QMailMessageId &id) -@@ -1005,3 +1121,53 @@ void SmtpClient::stopTransferring() +@@ -995,3 +1111,53 @@ void SmtpClient::stopTransferring() status = Sent; } } @@ -4792,7 +4821,7 @@ index 9e1e219..9d77e6c 100644 +} +#endif diff --git a/src/plugins/messageservices/smtp/smtpclient.h b/src/plugins/messageservices/smtp/smtpclient.h -index 5b9034a..2c7b233 100644 +index 5b9034ae..2c7b2333 100644 --- a/src/plugins/messageservices/smtp/smtpclient.h +++ b/src/plugins/messageservices/smtp/smtpclient.h @@ -43,6 +43,10 @@ @@ -4864,7 +4893,7 @@ index 5b9034a..2c7b233 100644 #endif diff --git a/src/plugins/messageservices/smtp/smtpservice.cpp b/src/plugins/messageservices/smtp/smtpservice.cpp -index 4c36938..9da2f7b 100644 +index 4c369380..9da2f7b8 100644 --- a/src/plugins/messageservices/smtp/smtpservice.cpp +++ b/src/plugins/messageservices/smtp/smtpservice.cpp @@ -117,7 +117,10 @@ SmtpService::SmtpService(const QMailAccountId &accountId) @@ -4891,7 +4920,7 @@ index 4c36938..9da2f7b 100644 } diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro -index dc1528b..5226faa 100644 +index dc1528b7..5226faa1 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -11,3 +11,6 @@ exists(/usr/bin/gpgme-config) { @@ -4903,7 +4932,7 @@ index dc1528b..5226faa 100644 +} diff --git a/src/plugins/ssoauth/password/password.pro b/src/plugins/ssoauth/password/password.pro new file mode 100644 -index 0000000..f41e80a +index 00000000..f41e80ad --- /dev/null +++ b/src/plugins/ssoauth/password/password.pro @@ -0,0 +1,21 @@ @@ -4930,7 +4959,7 @@ index 0000000..f41e80a + diff --git a/src/plugins/ssoauth/password/passwordplugin.cpp b/src/plugins/ssoauth/password/passwordplugin.cpp new file mode 100644 -index 0000000..1d2304c +index 00000000..1d2304c1 --- /dev/null +++ b/src/plugins/ssoauth/password/passwordplugin.cpp @@ -0,0 +1,185 @@ @@ -5121,7 +5150,7 @@ index 0000000..1d2304c + diff --git a/src/plugins/ssoauth/password/passwordplugin.h b/src/plugins/ssoauth/password/passwordplugin.h new file mode 100644 -index 0000000..1ae046d +index 00000000..1ae046d8 --- /dev/null +++ b/src/plugins/ssoauth/password/passwordplugin.h @@ -0,0 +1,72 @@ @@ -5198,7 +5227,7 @@ index 0000000..1ae046d + +#endif // PASSWORDPLUGIN_H diff --git a/src/tools/messageserver/servicehandler.cpp b/src/tools/messageserver/servicehandler.cpp -index c8da979..71b8836 100644 +index c8da979c..71b88367 100644 --- a/src/tools/messageserver/servicehandler.cpp +++ b/src/tools/messageserver/servicehandler.cpp @@ -797,10 +797,23 @@ void ServiceHandler::accountsAdded(const QMailAccountIdList &ids) @@ -5226,7 +5255,7 @@ index c8da979..71b8836 100644 void ServiceHandler::accountsRemoved(const QMailAccountIdList &ids) diff --git a/tests/tst_qmailstore/tst_qmailstore.cpp b/tests/tst_qmailstore/tst_qmailstore.cpp -index 26719da..84ca940 100644 +index 26719daa..84ca9409 100644 --- a/tests/tst_qmailstore/tst_qmailstore.cpp +++ b/tests/tst_qmailstore/tst_qmailstore.cpp @@ -48,6 +48,9 @@ @@ -5420,5 +5449,5 @@ index 26719da..84ca940 100644 QMailAccount account3(account1.id()); QCOMPARE(QMailStore::instance()->lastError(), QMailStore::InvalidId); -- -1.8.3-rc3 +2.26.2 diff --git a/rpm/qmf-qt5.spec b/rpm/qmf-qt5.spec index 0636347..2e38e76 100644 --- a/rpm/qmf-qt5.spec +++ b/rpm/qmf-qt5.spec @@ -151,30 +151,7 @@ This package contains the tests for Qt Messaging Framework (QMF). %prep -%setup -q -n %{name}-%{version}/upstream - -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 +%autosetup -p1 -n %{name}-%{version}/upstream %build