summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPekka Vuorela <pvuorela@iki.fi>2025-11-19 16:05:27 +0200
committerPekka Vuorela <pvuorela@iki.fi>2025-11-20 19:42:06 +0200
commit23d83bf411ef208140588afe86dedded8802608f (patch)
treeca8867467abcc3ab9a43f22593704154a05f365a
parent3dcb14587ce0f84f3cb89f59111176aa5f798cc1 (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.cpp5
-rw-r--r--src/libraries/qmfclient/longstring_p.h7
-rw-r--r--src/libraries/qmfclient/qmailmessage.cpp6
-rw-r--r--tests/tst_python_email/tst_python_email.cpp2
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());
}