diff options
| author | Pekka Vuorela <pvuorela@iki.fi> | 2025-11-19 16:05:27 +0200 |
|---|---|---|
| committer | Pekka Vuorela <pvuorela@iki.fi> | 2025-11-20 19:42:06 +0200 |
| commit | 23d83bf411ef208140588afe86dedded8802608f (patch) | |
| tree | ca8867467abcc3ab9a43f22593704154a05f365a | |
| parent | 3dcb14587ce0f84f3cb89f59111176aa5f798cc1 (diff) | |
Make LongString construction more explicit
Strange API when bytearray parameter on ctor use the content but
QString opens a file. Neither were even 'explicit'.
Added 'explicit' and made the file opening use even more explicit
static method.
Change-Id: I41c6f91eba2adcc93aa534e1d4edff5f9fa9f907
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: <matti.viljanen@kapsi.fi>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
| -rw-r--r-- | src/libraries/qmfclient/longstring.cpp | 5 | ||||
| -rw-r--r-- | src/libraries/qmfclient/longstring_p.h | 7 | ||||
| -rw-r--r-- | src/libraries/qmfclient/qmailmessage.cpp | 6 | ||||
| -rw-r--r-- | tests/tst_python_email/tst_python_email.cpp | 2 |
4 files changed, 14 insertions, 6 deletions
diff --git a/src/libraries/qmfclient/longstring.cpp b/src/libraries/qmfclient/longstring.cpp index 8b423c1b..266cd132 100644 --- a/src/libraries/qmfclient/longstring.cpp +++ b/src/libraries/qmfclient/longstring.cpp @@ -561,6 +561,11 @@ LongString::~LongString() delete d; } +LongString LongString::fromFile(const QString &fileName) +{ + return LongString(fileName); +} + LongString &LongString::operator=(const LongString &other) { if (&other != this) { diff --git a/src/libraries/qmfclient/longstring_p.h b/src/libraries/qmfclient/longstring_p.h index 2bffba91..1bd65f16 100644 --- a/src/libraries/qmfclient/longstring_p.h +++ b/src/libraries/qmfclient/longstring_p.h @@ -64,10 +64,11 @@ class QMF_EXPORT LongString public: LongString(); LongString(const LongString &other); - LongString(const QByteArray &ba); - LongString(const QString &fileName); + explicit LongString(const QByteArray &ba); virtual ~LongString(); + static LongString fromFile(const QString &fileName); + LongString &operator=(const LongString &); bool isEmpty() const; @@ -92,6 +93,8 @@ public: template <typename Stream> void deserialize(Stream &stream); private: + explicit LongString(const QString &fileName); + LongStringPrivate* d; }; diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp index d050609b..dd51df87 100644 --- a/src/libraries/qmfclient/qmailmessage.cpp +++ b/src/libraries/qmfclient/qmailmessage.cpp @@ -3277,7 +3277,7 @@ void QMailMessageBodyPrivate::fromFile(const QString& file, const QMailMessageCo _type = content; _encoded = (status == QMailMessageBody::AlreadyEncoded); _filename = file; - _bodyData = LongString(file); + _bodyData = LongString::fromFile(file); ensureCharsetExist(); } @@ -8221,7 +8221,7 @@ QMailMessage QMailMessage::fromRfc2822(const QByteArray &byteArray) */ QMailMessage QMailMessage::fromRfc2822File(const QString& fileName) { - LongString ls(fileName); + LongString ls = LongString::fromFile(fileName); QMailMessage mail = fromRfc2822(ls); mail.extractUndecodedData(ls); return mail; @@ -8234,7 +8234,7 @@ QMailMessage QMailMessage::fromRfc2822File(const QString& fileName) */ QMailMessage QMailMessage::fromSkeletonRfc2822File(const QString& fileName) { - LongString ls(fileName); + LongString ls = LongString::fromFile(fileName); return fromRfc2822(ls); } diff --git a/tests/tst_python_email/tst_python_email.cpp b/tests/tst_python_email/tst_python_email.cpp index 3f0e9fee..63ba6640 100644 --- a/tests/tst_python_email/tst_python_email.cpp +++ b/tests/tst_python_email/tst_python_email.cpp @@ -184,7 +184,7 @@ QMailMessage tst_python_email::fromFile(const QString& filename) QByteArray tst_python_email::fileData(const QString& filename) { - LongString ls(QFINDTESTDATA(filename)); + LongString ls = LongString::fromFile(QFINDTESTDATA(filename)); QByteArray ba(ls.toQByteArray()); return QByteArray(ba.constData(), ba.length()); } |
