summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/iaccessible2/qt_attribution.json1
-rw-r--r--src/corelib/global/qconfig-bootstrapped.h4
-rw-r--r--src/corelib/global/qlibraryinfo.cpp4
-rw-r--r--src/corelib/global/qlibraryinfo.h4
-rw-r--r--src/corelib/kernel/qcore_unix_p.h2
-rw-r--r--src/corelib/kernel/qvariant.cpp8
-rw-r--r--src/corelib/plugin/qelfparser_p.h2
-rw-r--r--src/corelib/thread/qfuturewatcher.cpp8
-rw-r--r--src/corelib/tools/qdatetime.cpp58
-rw-r--r--src/corelib/tools/qdatetime.h20
-rw-r--r--src/corelib/tools/qdatetimeparser.cpp20
-rw-r--r--src/corelib/tools/qdatetimeparser_p.h6
-rw-r--r--src/corelib/tools/qlocale.cpp12
-rw-r--r--src/corelib/tools/qlocale.h2
-rw-r--r--src/gui/painting/qdrawhelper.cpp2
-rw-r--r--src/network/access/access.pri14
-rw-r--r--src/network/access/qftp.cpp4
-rw-r--r--src/network/access/qhsts.cpp19
-rw-r--r--src/network/access/qhsts_p.h8
-rw-r--r--src/network/access/qhstsstore_p.h2
-rw-r--r--src/network/access/qnetworkaccessftpbackend.cpp2
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp13
-rw-r--r--src/network/access/qnetworkaccessmanager_p.h7
-rw-r--r--src/network/access/qnetworkrequest.cpp6
-rw-r--r--src/network/ssl/qsslcertificate.cpp2
-rw-r--r--src/network/ssl/qsslcontext_openssl11.cpp8
-rw-r--r--src/network/ssl/qsslpresharedkeyauthenticator.h2
-rw-r--r--src/plugins/sqldrivers/mysql/qsql_mysql.cpp6
-rw-r--r--src/plugins/sqldrivers/psql/qsql_psql.cpp12
-rw-r--r--src/sql/kernel/qsqldriver.cpp2
-rw-r--r--src/testlib/qtest.h4
-rw-r--r--src/widgets/dialogs/qfilesystemmodel.cpp2
-rw-r--r--src/widgets/itemviews/qdirmodel.cpp2
-rw-r--r--src/widgets/itemviews/qheaderview.cpp3
-rw-r--r--src/widgets/util/qcompleter.cpp9
35 files changed, 170 insertions, 110 deletions
diff --git a/src/3rdparty/iaccessible2/qt_attribution.json b/src/3rdparty/iaccessible2/qt_attribution.json
index 545ffe4d63..290d0d4b7d 100644
--- a/src/3rdparty/iaccessible2/qt_attribution.json
+++ b/src/3rdparty/iaccessible2/qt_attribution.json
@@ -6,6 +6,7 @@
"Description": "IAccessible2 is a new accessibility API which complements Microsoft's earlier work on MSAA",
"Homepage": "http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2",
+ "Version": "1.3.0",
"License": "BSD 3-clause \"New\" or \"Revised\" License",
"LicenseId": "BSD-3-Clause",
"LicenseFile": "LICENSE",
diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h
index a8dbb3edcd..506c8513dc 100644
--- a/src/corelib/global/qconfig-bootstrapped.h
+++ b/src/corelib/global/qconfig-bootstrapped.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -77,6 +77,7 @@
#define QT_CRYPTOGRAPHICHASH_ONLY_SHA1
#define QT_FEATURE_cxx11_random (QT_HAS_INCLUDE(<random>) ? 1 : -1)
#define QT_NO_DATASTREAM
+#define QT_FEATURE_datestring 1
#define QT_FEATURE_datetimeparser -1
#define QT_FEATURE_etw -1
#define QT_FEATURE_getauxval (QT_HAS_INCLUDE(<sys/auxv.h>) ? 1 : -1)
@@ -115,6 +116,7 @@
#define QT_NO_SYSTEMLOCALE
#define QT_FEATURE_systemsemaphore -1
#define QT_FEATURE_temporaryfile 1
+#define QT_FEATURE_textdate 1
#define QT_FEATURE_thread -1
#define QT_FEATURE_timezone -1
#define QT_FEATURE_topleveldomain -1
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index 422d08f32c..e727f00c8e 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -267,7 +267,7 @@ QLibraryInfo::licensedProducts()
\deprecated
This function used to return the installation date for this build of Qt, but now returns a constant date.
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
#if QT_DEPRECATED_SINCE(5, 5)
QDate
QLibraryInfo::buildDate()
@@ -275,7 +275,7 @@ QLibraryInfo::buildDate()
return QDate::fromString(QString::fromLatin1(qt_configure_installation + 12), Qt::ISODate);
}
#endif
-#endif //QT_NO_DATESTRING
+#endif // datestring
#if defined(Q_CC_INTEL) // must be before GNU, Clang and MSVC because ICC/ICL claim to be them
# ifdef __INTEL_CLANG_COMPILER
diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
index 809813d99d..80fc5bd4fc 100644
--- a/src/corelib/global/qlibraryinfo.h
+++ b/src/corelib/global/qlibraryinfo.h
@@ -56,11 +56,11 @@ public:
static QT_DEPRECATED QString licensedProducts();
#endif
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
#if QT_DEPRECATED_SINCE(5, 5)
static QT_DEPRECATED QDate buildDate();
#endif // QT_DEPRECATED_SINCE(5, 5)
-#endif //QT_NO_DATESTRING
+#endif // datestring
static const char * build() Q_DECL_NOTHROW;
diff --git a/src/corelib/kernel/qcore_unix_p.h b/src/corelib/kernel/qcore_unix_p.h
index cb98bef347..5a2a29a327 100644
--- a/src/corelib/kernel/qcore_unix_p.h
+++ b/src/corelib/kernel/qcore_unix_p.h
@@ -178,7 +178,7 @@ inline void qt_ignore_sigpipe()
#if defined(Q_PROCESSOR_X86_32) && defined(__GLIBC__)
# if !__GLIBC_PREREQ(2, 22)
-int qt_open64(const char *pathname, int flags, mode_t);
+Q_CORE_EXPORT int qt_open64(const char *pathname, int flags, mode_t);
# undef QT_OPEN
# define QT_OPEN qt_open64
# endif
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index 4d1aa911f7..0b4c3f387f 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -468,7 +468,7 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
case QVariant::Double:
*str = QString::number(d->data.d, 'g', QLocale::FloatingPointShortest);
break;
-#if !defined(QT_NO_DATESTRING)
+#if QT_CONFIG(datestring)
case QVariant::Date:
*str = v_cast<QDate>(d)->toString(Qt::ISODate);
break;
@@ -617,7 +617,7 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
QDate *dt = static_cast<QDate *>(result);
if (d->type == QVariant::DateTime)
*dt = v_cast<QDateTime>(d)->date();
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
else if (d->type == QVariant::String)
*dt = QDate::fromString(*v_cast<QString>(d), Qt::ISODate);
#endif
@@ -632,7 +632,7 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
case QVariant::DateTime:
*t = v_cast<QDateTime>(d)->time();
break;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
case QVariant::String:
*t = QTime::fromString(*v_cast<QString>(d), Qt::ISODate);
break;
@@ -645,7 +645,7 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
case QVariant::DateTime: {
QDateTime *dt = static_cast<QDateTime *>(result);
switch (d->type) {
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
case QVariant::String:
*dt = QDateTime::fromString(*v_cast<QString>(d), Qt::ISODate);
break;
diff --git a/src/corelib/plugin/qelfparser_p.h b/src/corelib/plugin/qelfparser_p.h
index 1d3578255f..cdf055329d 100644
--- a/src/corelib/plugin/qelfparser_p.h
+++ b/src/corelib/plugin/qelfparser_p.h
@@ -84,7 +84,7 @@ public:
int m_endian;
int m_bits;
- int m_stringTableFileOffset;
+ qelfoff_t m_stringTableFileOffset;
template <typename T>
T read(const char *s)
diff --git a/src/corelib/thread/qfuturewatcher.cpp b/src/corelib/thread/qfuturewatcher.cpp
index 5b68af1fbc..faeb6b3a28 100644
--- a/src/corelib/thread/qfuturewatcher.cpp
+++ b/src/corelib/thread/qfuturewatcher.cpp
@@ -98,7 +98,9 @@ QT_BEGIN_NAMESPACE
/*! \fn template <typename T> QFutureWatcher<T>::QFutureWatcher(QObject *parent)
- Constructs a new QFutureWatcher with the given \a parent.
+ Constructs a new QFutureWatcher with the given \a parent. Until a future is
+ set with setFuture(), the functions isStarted(), isCanceled(), and
+ isFinished() return \c true.
*/
QFutureWatcherBase::QFutureWatcherBase(QObject *parent)
:QObject(*new QFutureWatcherBasePrivate, parent)
@@ -241,7 +243,7 @@ QString QFutureWatcherBase::progressText() const
/*! \fn template <typename T> bool QFutureWatcher<T>::isStarted() const
Returns \c true if the asynchronous computation represented by the future()
- has been started; otherwise returns \c false.
+ has been started, or if no future has been set; otherwise returns \c false.
*/
bool QFutureWatcherBase::isStarted() const
{
@@ -272,7 +274,7 @@ bool QFutureWatcherBase::isRunning() const
/*! \fn template <typename T> bool QFutureWatcher<T>::isCanceled() const
Returns \c true if the asynchronous computation has been canceled with the
- cancel() function; otherwise returns \c false.
+ cancel() function, or if no future has been set; otherwise returns \c false.
Be aware that the computation may still be running even though this
function returns \c true. See cancel() for more details.
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index 9aeebe624d..816bd974eb 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -171,7 +171,7 @@ static ParsedDate getDateFromJulianDay(qint64 julianDay)
static const char monthDays[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
-#ifndef QT_NO_TEXTDATE
+#if QT_CONFIG(textdate)
static const char qt_shortMonthNames[][4] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
@@ -200,9 +200,9 @@ static int fromShortMonthName(const QStringRef &monthName)
}
return -1;
}
-#endif // QT_NO_TEXTDATE
+#endif // textdate
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
struct ParsedRfcDateTime {
QDate date;
QTime time;
@@ -241,7 +241,7 @@ static ParsedRfcDateTime rfcDateImpl(const QString &s)
return result;
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
// Return offset in [+-]HH:mm format
static QString toOffsetString(Qt::DateFormat format, int offset)
@@ -254,6 +254,7 @@ static QString toOffsetString(Qt::DateFormat format, int offset)
(qAbs(offset) / 60) % 60);
}
+#if QT_CONFIG(datestring)
// Parse offset in [+-]HH[[:]mm] format
static int fromOffsetString(const QStringRef &offsetString, bool *valid) Q_DECL_NOTHROW
{
@@ -298,6 +299,7 @@ static int fromOffsetString(const QStringRef &offsetString, bool *valid) Q_DECL_
*valid = true;
return sign * ((hour * 60) + minute) * 60;
}
+#endif // datestring
/*****************************************************************************
QDate member functions
@@ -612,7 +614,7 @@ int QDate::weekNumber(int *yearNumber) const
return week;
}
-#if QT_DEPRECATED_SINCE(5, 11) && !defined(QT_NO_TEXTDATE)
+#if QT_DEPRECATED_SINCE(5, 11) && QT_CONFIG(textdate)
/*!
\since 4.5
\deprecated
@@ -774,11 +776,11 @@ QString QDate::longDayName(int weekday, MonthNameType type)
}
return QString();
}
-#endif // QT_NO_TEXTDATE && deprecated
+#endif // textdate && deprecated
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
-#ifndef QT_NO_TEXTDATE
+#if QT_CONFIG(textdate)
static QString toStringTextDate(QDate date)
{
const ParsedDate pd = getDateFromJulianDay(date.toJulianDay());
@@ -788,7 +790,7 @@ static QString toStringTextDate(QDate date)
+ QString::number(pd.day) + sp
+ QString::number(pd.year);
}
-#endif // QT_NO_TEXTDATE
+#endif // textdate
static QString toStringIsoDate(qint64 jd)
{
@@ -864,7 +866,7 @@ QString QDate::toString(Qt::DateFormat format) const
case Qt::RFC2822Date:
return QLocale::c().toString(*this, QStringViewLiteral("dd MMM yyyy"));
default:
-#ifndef QT_NO_TEXTDATE
+#if QT_CONFIG(textdate)
case Qt::TextDate:
return toStringTextDate(*this);
#endif
@@ -938,7 +940,7 @@ QString QDate::toString(const QString &format) const
}
#endif
-#endif //QT_NO_DATESTRING
+#endif // datestring
/*!
\fn bool QDate::setYMD(int y, int m, int d)
@@ -1200,7 +1202,7 @@ qint64 QDate::daysTo(const QDate &d) const
\sa QTime::currentTime(), QDateTime::currentDateTime()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
/*!
\fn QDate QDate::fromString(const QString &string, Qt::DateFormat format)
@@ -1233,7 +1235,7 @@ QDate QDate::fromString(const QString& string, Qt::DateFormat format)
case Qt::RFC2822Date:
return rfcDateImpl(string).date;
default:
-#ifndef QT_NO_TEXTDATE
+#if QT_CONFIG(textdate)
case Qt::TextDate: {
QVector<QStringRef> parts = string.splitRef(QLatin1Char(' '), QString::SkipEmptyParts);
@@ -1254,7 +1256,7 @@ QDate QDate::fromString(const QString& string, Qt::DateFormat format)
return QDate(year, month, parts.at(2).toInt());
}
-#endif // QT_NO_TEXTDATE
+#endif // textdate
case Qt::ISODate: {
// Semi-strict parsing, must be long enough and have non-numeric separators
if (string.size() < 10 || string.at(4).isDigit() || string.at(7).isDigit()
@@ -1349,7 +1351,7 @@ QDate QDate::fromString(const QString &string, const QString &format)
#endif
return date;
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
/*!
\overload
@@ -1566,7 +1568,7 @@ int QTime::msec() const
return ds() % 1000;
}
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
/*!
\overload
@@ -1702,7 +1704,7 @@ QString QTime::toString(const QString &format) const
}
#endif
-#endif //QT_NO_DATESTRING
+#endif // datestring
/*!
Sets the time to hour \a h, minute \a m, seconds \a s and
@@ -1887,7 +1889,7 @@ int QTime::msecsTo(const QTime &t) const
operating system; not all systems provide 1-millisecond accuracy.
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
static QTime fromIsoTimeString(const QStringRef &string, Qt::DateFormat format, bool *isMidnight24)
{
@@ -2069,7 +2071,7 @@ QTime QTime::fromString(const QString &string, const QString &format)
return time;
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
/*!
@@ -3773,7 +3775,7 @@ void QDateTime::setTime_t(uint secsSince1Jan1970UTC)
}
#endif
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
/*!
\fn QString QDateTime::toString(Qt::DateFormat format) const
@@ -3848,7 +3850,7 @@ QString QDateTime::toString(Qt::DateFormat format) const
return buf;
}
default:
-#ifndef QT_NO_TEXTDATE
+#if QT_CONFIG(textdate)
case Qt::TextDate: {
const QPair<QDate, QTime> p = getDateTime(d);
buf = p.first.toString(Qt::TextDate);
@@ -3993,7 +3995,7 @@ QString QDateTime::toString(const QString &format) const
}
#endif
-#endif //QT_NO_DATESTRING
+#endif // datestring
static inline void massageAdjustedDateTime(const QDateTimeData &d, QDate *date, QTime *time)
{
@@ -4722,7 +4724,7 @@ int QDateTime::utcOffset() const
}
#endif // QT_DEPRECATED_SINCE
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
/*!
\fn QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format)
@@ -4827,7 +4829,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
date = date.addDays(1);
return QDateTime(date, time, spec, offset);
}
-#if !defined(QT_NO_TEXTDATE)
+#if QT_CONFIG(textdate)
case Qt::TextDate: {
QVector<QStringRef> parts = string.splitRef(QLatin1Char(' '), QString::SkipEmptyParts);
@@ -4936,7 +4938,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
return QDateTime(date, time, Qt::UTC);
}
}
-#endif //QT_NO_TEXTDATE
+#endif // textdate
}
return QDateTime();
@@ -5071,7 +5073,7 @@ QDateTime QDateTime::fromString(const QString &string, const QString &format)
return QDateTime();
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
/*!
\fn QDateTime QDateTime::toLocalTime() const
@@ -5330,7 +5332,7 @@ QDataStream &operator>>(QDataStream &in, QDateTime &dateTime)
Date / Time Debug Streams
*****************************************************************************/
-#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DATESTRING)
+#if !defined(QT_NO_DEBUG_STREAM) && QT_CONFIG(datestring)
QDebug operator<<(QDebug dbg, const QDate &date)
{
QDebugStateSaver saver(dbg);
@@ -5382,7 +5384,7 @@ QDebug operator<<(QDebug dbg, const QDateTime &date)
}
return dbg.nospace() << ')';
}
-#endif
+#endif // debug_stream && datestring
/*! \fn uint qHash(const QDateTime &key, uint seed = 0)
\relates QHash
diff --git a/src/corelib/tools/qdatetime.h b/src/corelib/tools/qdatetime.h
index 5a7b75db62..43271b34ed 100644
--- a/src/corelib/tools/qdatetime.h
+++ b/src/corelib/tools/qdatetime.h
@@ -81,7 +81,7 @@ public:
int daysInYear() const;
int weekNumber(int *yearNum = nullptr) const;
-#if QT_DEPRECATED_SINCE(5, 10) && !defined QT_NO_TEXTDATE
+#if QT_DEPRECATED_SINCE(5, 10) && QT_CONFIG(textdate)
QT_DEPRECATED_X("Use QLocale::monthName or QLocale::standaloneMonthName")
static QString shortMonthName(int month, MonthNameType type = DateFormat);
QT_DEPRECATED_X("Use QLocale::dayName or QLocale::standaloneDayName")
@@ -90,8 +90,8 @@ public:
static QString longMonthName(int month, MonthNameType type = DateFormat);
QT_DEPRECATED_X("Use QLocale::dayName or QLocale::standaloneDayName")
static QString longDayName(int weekday, MonthNameType type = DateFormat);
-#endif // QT_NO_TEXTDATE && deprecated
-#ifndef QT_NO_DATESTRING
+#endif // textdate && deprecated
+#if QT_CONFIG(datestring)
QString toString(Qt::DateFormat f = Qt::TextDate) const;
#if QT_STRINGVIEW_LEVEL < 2
QString toString(const QString &format) const;
@@ -123,7 +123,7 @@ QT_DEPRECATED inline bool setYMD(int y, int m, int d)
Q_DECL_CONSTEXPR bool operator>=(const QDate &other) const { return jd >= other.jd; }
static QDate currentDate();
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate);
static QDate fromString(const QString &s, const QString &format);
#endif
@@ -167,7 +167,7 @@ public:
int minute() const;
int second() const;
int msec() const;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QString toString(Qt::DateFormat f = Qt::TextDate) const;
#if QT_STRINGVIEW_LEVEL < 2
QString toString(const QString &format) const;
@@ -192,7 +192,7 @@ public:
Q_DECL_CONSTEXPR inline int msecsSinceStartOfDay() const { return mds == NullTime ? 0 : mds; }
static QTime currentTime();
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
static QTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate);
static QTime fromString(const QString &s, const QString &format);
#endif
@@ -303,7 +303,7 @@ public:
void setMSecsSinceEpoch(qint64 msecs);
void setSecsSinceEpoch(qint64 secs);
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QString toString(Qt::DateFormat f = Qt::TextDate) const;
#if QT_STRINGVIEW_LEVEL < 2
QString toString(const QString &format) const;
@@ -342,7 +342,7 @@ public:
static QDateTime currentDateTime();
static QDateTime currentDateTimeUtc();
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate);
static QDateTime fromString(const QString &s, const QString &format);
#endif
@@ -386,7 +386,7 @@ private:
friend Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QDateTime &);
#endif
-#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DATESTRING)
+#if !defined(QT_NO_DEBUG_STREAM) && QT_CONFIG(datestring)
friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QDateTime &);
#endif
};
@@ -401,7 +401,7 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QDateTime &);
Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QDateTime &);
#endif // QT_NO_DATASTREAM
-#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DATESTRING)
+#if !defined(QT_NO_DEBUG_STREAM) && QT_CONFIG(datestring)
Q_CORE_EXPORT QDebug operator<<(QDebug, const QDate &);
Q_CORE_EXPORT QDebug operator<<(QDebug, const QTime &);
Q_CORE_EXPORT QDebug operator<<(QDebug, const QDateTime &);
diff --git a/src/corelib/tools/qdatetimeparser.cpp b/src/corelib/tools/qdatetimeparser.cpp
index d03518e70d..18c44c3a17 100644
--- a/src/corelib/tools/qdatetimeparser.cpp
+++ b/src/corelib/tools/qdatetimeparser.cpp
@@ -77,7 +77,7 @@ QDateTimeParser::~QDateTimeParser()
int QDateTimeParser::getDigit(const QDateTime &t, int index) const
{
if (index < 0 || index >= sectionNodes.size()) {
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
qWarning("QDateTimeParser::getDigit() Internal error (%s %d)",
qPrintable(t.toString()), index);
#else
@@ -103,7 +103,7 @@ int QDateTimeParser::getDigit(const QDateTime &t, int index) const
default: break;
}
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
qWarning("QDateTimeParser::getDigit() Internal error 2 (%s %d)",
qPrintable(t.toString()), index);
#else
@@ -127,7 +127,7 @@ int QDateTimeParser::getDigit(const QDateTime &t, int index) const
bool QDateTimeParser::setDigit(QDateTime &v, int index, int newVal) const
{
if (index < 0 || index >= sectionNodes.size()) {
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
qWarning("QDateTimeParser::setDigit() Internal error (%s %d %d)",
qPrintable(v.toString()), index, newVal);
#else
@@ -612,7 +612,7 @@ int QDateTimeParser::sectionSize(int sectionIndex) const
int QDateTimeParser::sectionMaxSize(Section s, int count) const
{
-#ifndef QT_NO_TEXTDATE
+#if QT_CONFIG(textdate)
int mcount = 12;
#endif
@@ -636,14 +636,14 @@ int QDateTimeParser::sectionMaxSize(Section s, int count) const
case DaySection: return 2;
case DayOfWeekSectionShort:
case DayOfWeekSectionLong:
-#ifdef QT_NO_TEXTDATE
+#if !QT_CONFIG(textdate)
return 2;
#else
mcount = 7;
Q_FALLTHROUGH();
#endif
case MonthSection:
-#ifdef QT_NO_TEXTDATE
+#if !QT_CONFIG(textdate)
return 2;
#else
if (count <= 2)
@@ -725,7 +725,7 @@ QString QDateTimeParser::sectionText(int sectionIndex) const
}
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QDateTimeParser::ParsedSection
QDateTimeParser::parseSection(const QDateTime &currentValue, int sectionIndex,
@@ -1727,7 +1727,7 @@ QDateTimeParser::AmPmFinder QDateTimeParser::findAmPm(QString &str, int sectionI
return PossibleBoth;
return (!broken[amindex] ? PossibleAM : PossiblePM);
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
/*!
\internal
@@ -1958,7 +1958,7 @@ QString QDateTimeParser::stateName(State s) const
}
}
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
bool QDateTimeParser::fromString(const QString &t, QDate *date, QTime *time) const
{
QDateTime val(QDate(1900, 1, 1), QDATETIMEEDIT_TIME_MIN);
@@ -1983,7 +1983,7 @@ bool QDateTimeParser::fromString(const QString &t, QDate *date, QTime *time) con
}
return true;
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
QDateTime QDateTimeParser::getMinimum() const
{
diff --git a/src/corelib/tools/qdatetimeparser_p.h b/src/corelib/tools/qdatetimeparser_p.h
index c9e63fe307..f7e6e351fe 100644
--- a/src/corelib/tools/qdatetimeparser_p.h
+++ b/src/corelib/tools/qdatetimeparser_p.h
@@ -180,7 +180,7 @@ public:
LowerCase
};
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
StateNode parse(QString input, int position, const QDateTime &defaultValue, bool fixup) const;
bool fromString(const QString &text, QDate *date, QTime *time) const;
#endif
@@ -202,7 +202,7 @@ public:
private:
int sectionMaxSize(Section s, int count) const;
QString sectionText(const QString &text, int sectionIndex, int index) const;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
StateNode scanString(const QDateTime &defaultValue,
bool fixup, QString *input) const;
struct ParsedSection {
@@ -237,7 +237,7 @@ private:
PossibleBoth = 4
};
AmPmFinder findAmPm(QString &str, int index, int *used = 0) const;
-#endif // QT_NO_DATESTRING
+#endif // datestring
bool potentialValue(const QStringRef &str, int min, int max, int index,
const QDateTime &currentValue, int insert) const;
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index b285e58779..ddc973cb37 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -2074,7 +2074,7 @@ QString QLocale::dateTimeFormat(FormatType format) const
\sa timeFormat(), toDate(), toDateTime(), QTime::fromString()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QTime QLocale::toTime(const QString &string, FormatType format) const
{
return toTime(string, timeFormat(format));
@@ -2092,7 +2092,7 @@ QTime QLocale::toTime(const QString &string, FormatType format) const
\sa dateFormat(), toTime(), toDateTime(), QDate::fromString()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QDate QLocale::toDate(const QString &string, FormatType format) const
{
return toDate(string, dateFormat(format));
@@ -2111,7 +2111,7 @@ QDate QLocale::toDate(const QString &string, FormatType format) const
\sa dateTimeFormat(), toTime(), toDate(), QDateTime::fromString()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QDateTime QLocale::toDateTime(const QString &string, FormatType format) const
{
return toDateTime(string, dateTimeFormat(format));
@@ -2129,7 +2129,7 @@ QDateTime QLocale::toDateTime(const QString &string, FormatType format) const
\sa timeFormat(), toDate(), toDateTime(), QTime::fromString()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QTime QLocale::toTime(const QString &string, const QString &format) const
{
QTime time;
@@ -2160,7 +2160,7 @@ QTime QLocale::toTime(const QString &string, const QString &format) const
\sa dateFormat(), toTime(), toDateTime(), QDate::fromString()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QDate QLocale::toDate(const QString &string, const QString &format) const
{
QDate date;
@@ -2191,7 +2191,7 @@ QDate QLocale::toDate(const QString &string, const QString &format) const
\sa dateTimeFormat(), toTime(), toDate(), QDateTime::fromString()
*/
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QDateTime QLocale::toDateTime(const QString &string, const QString &format) const
{
#if QT_CONFIG(datetimeparser)
diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h
index 8e6c5c503b..f3afb8c406 100644
--- a/src/corelib/tools/qlocale.h
+++ b/src/corelib/tools/qlocale.h
@@ -1004,7 +1004,7 @@ public:
QString dateFormat(FormatType format = LongFormat) const;
QString timeFormat(FormatType format = LongFormat) const;
QString dateTimeFormat(FormatType format = LongFormat) const;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
QDate toDate(const QString &string, FormatType = LongFormat) const;
QTime toTime(const QString &string, FormatType = LongFormat) const;
QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const;
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 4b1031daaf..0264059a5c 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -5205,8 +5205,10 @@ void qBlendTexture(int count, const QSpan *spans, void *userData)
case QImage::Format_RGB16:
proc = processTextureSpansRGB16[blendType];
break;
+#if defined(__SSE2__) || defined(__ARM_NEON__) || (Q_PROCESSOR_WORDSIZE == 8)
case QImage::Format_ARGB32:
case QImage::Format_RGBA8888:
+#endif
case QImage::Format_BGR30:
case QImage::Format_A2BGR30_Premultiplied:
case QImage::Format_RGB30:
diff --git a/src/network/access/access.pri b/src/network/access/access.pri
index b068f96283..8a92308f12 100644
--- a/src/network/access/access.pri
+++ b/src/network/access/access.pri
@@ -24,8 +24,7 @@ HEADERS += \
access/qabstractnetworkcache.h \
access/qnetworkfile_p.h \
access/qhsts_p.h \
- access/qhstspolicy.h \
- access/qhstsstore_p.h
+ access/qhstspolicy.h
SOURCES += \
access/qnetworkaccessauthenticationmanager.cpp \
@@ -45,8 +44,7 @@ SOURCES += \
access/qabstractnetworkcache.cpp \
access/qnetworkfile.cpp \
access/qhsts.cpp \
- access/qhstspolicy.cpp \
- access/qhstsstore.cpp
+ access/qhstspolicy.cpp
qtConfig(ftp) {
HEADERS += \
@@ -66,6 +64,14 @@ qtConfig(networkdiskcache) {
SOURCES += access/qnetworkdiskcache.cpp
}
+qtConfig(settings) {
+ HEADERS += \
+ access/qhstsstore_p.h
+
+ SOURCES += \
+ access/qhstsstore.cpp
+}
+
mac: LIBS_PRIVATE += -framework Security
wasm {
diff --git a/src/network/access/qftp.cpp b/src/network/access/qftp.cpp
index 719e3536b4..feece4ebaf 100644
--- a/src/network/access/qftp.cpp
+++ b/src/network/access/qftp.cpp
@@ -525,7 +525,7 @@ static void _q_parseUnixDir(const QStringList &tokens, const QString &userName,
// Resolve the modification date by parsing all possible formats
QDateTime dateTime;
int n = 0;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
do {
dateTime = QLocale::c().toDateTime(dateString, formats.at(n++));
} while (n < formats.size() && (!dateTime.isValid()));
@@ -600,7 +600,7 @@ static void _q_parseDosDir(const QStringList &tokens, const QString &userName, Q
info->setWritable(info->isFile());
QDateTime dateTime;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
dateTime = QLocale::c().toDateTime(tokens.at(1), QLatin1String("MM-dd-yy hh:mmAP"));
if (dateTime.date().year() < 1971) {
dateTime.setDate(QDate(dateTime.date().year() + 100,
diff --git a/src/network/access/qhsts.cpp b/src/network/access/qhsts.cpp
index a015feb044..ce70b6af90 100644
--- a/src/network/access/qhsts.cpp
+++ b/src/network/access/qhsts.cpp
@@ -37,13 +37,16 @@
**
****************************************************************************/
-#include "qhstsstore_p.h"
#include "qhsts_p.h"
#include "QtCore/private/qipaddress_p.h"
#include "QtCore/qvector.h"
#include "QtCore/qlist.h"
+#if QT_CONFIG(settings)
+#include "qhstsstore_p.h"
+#endif // QT_CONFIG(settings)
+
QT_BEGIN_NAMESPACE
static bool is_valid_domain_name(const QString &host)
@@ -83,8 +86,10 @@ void QHstsCache::updateFromHeaders(const QList<QPair<QByteArray, QByteArray>> &h
QHstsHeaderParser parser;
if (parser.parse(headers)) {
updateKnownHost(url.host(), parser.expirationDate(), parser.includeSubDomains());
+#if QT_CONFIG(settings)
if (hstsStore)
hstsStore->synchronize();
+#endif // QT_CONFIG(settings)
}
}
@@ -93,12 +98,14 @@ void QHstsCache::updateFromPolicies(const QVector<QHstsPolicy> &policies)
for (const auto &policy : policies)
updateKnownHost(policy.host(), policy.expiry(), policy.includesSubDomains());
+#if QT_CONFIG(settings)
if (hstsStore && policies.size()) {
// These policies are coming either from store or from QNAM's setter
// function. As a result we can notice expired or new policies, time
// to sync ...
hstsStore->synchronize();
}
+#endif // QT_CONFIG(settings)
}
void QHstsCache::updateKnownHost(const QUrl &url, const QDateTime &expires,
@@ -108,8 +115,10 @@ void QHstsCache::updateKnownHost(const QUrl &url, const QDateTime &expires,
return;
updateKnownHost(url.host(), expires, includeSubDomains);
+#if QT_CONFIG(settings)
if (hstsStore)
hstsStore->synchronize();
+#endif // QT_CONFIG(settings)
}
void QHstsCache::updateKnownHost(const QString &host, const QDateTime &expires,
@@ -137,8 +146,10 @@ void QHstsCache::updateKnownHost(const QString &host, const QDateTime &expires,
}
knownHosts.insert(pos, {hostName, newPolicy});
+#if QT_CONFIG(settings)
if (hstsStore)
hstsStore->addToObserved(newPolicy);
+#endif // QT_CONFIG(settings)
return;
}
@@ -149,8 +160,10 @@ void QHstsCache::updateKnownHost(const QString &host, const QDateTime &expires,
else
return;
+#if QT_CONFIG(settings)
if (hstsStore)
hstsStore->addToObserved(newPolicy);
+#endif // QT_CONFIG(settings)
}
bool QHstsCache::isKnownHost(const QUrl &url) const
@@ -187,10 +200,12 @@ bool QHstsCache::isKnownHost(const QUrl &url) const
if (pos != knownHosts.end()) {
if (pos->second.isExpired()) {
knownHosts.erase(pos);
+#if QT_CONFIG(settings)
if (hstsStore) {
// Inform our store that this policy has expired.
hstsStore->addToObserved(pos->second);
}
+#endif // QT_CONFIG(settings)
} else if (!superDomainMatch || pos->second.includesSubDomains()) {
return true;
}
@@ -221,6 +236,7 @@ QVector<QHstsPolicy> QHstsCache::policies() const
return values;
}
+#if QT_CONFIG(settings)
void QHstsCache::setStore(QHstsStore *store)
{
// Caller retains ownership of store, which must outlive this cache.
@@ -248,6 +264,7 @@ void QHstsCache::setStore(QHstsStore *store)
updateFromPolicies(restored);
}
}
+#endif // QT_CONFIG(settings)
// The parser is quite simple: 'nextToken' knowns exactly what kind of tokens
// are valid and it will return false if something else was found; then
diff --git a/src/network/access/qhsts_p.h b/src/network/access/qhsts_p.h
index bc8708341d..c219d9eab5 100644
--- a/src/network/access/qhsts_p.h
+++ b/src/network/access/qhsts_p.h
@@ -69,8 +69,6 @@ QT_BEGIN_NAMESPACE
template<typename T> class QList;
template <typename T> class QVector;
-class QHstsStore;
-
class Q_AUTOTEST_EXPORT QHstsCache
{
public:
@@ -85,7 +83,9 @@ public:
QVector<QHstsPolicy> policies() const;
- void setStore(QHstsStore *store);
+#if QT_CONFIG(settings)
+ void setStore(class QHstsStore *store);
+#endif // QT_CONFIG(settings)
private:
@@ -119,7 +119,9 @@ private:
};
mutable std::map<HostName, QHstsPolicy> knownHosts;
+#if QT_CONFIG(settings)
QHstsStore *hstsStore = nullptr;
+#endif // QT_CONFIG(settings)
};
class Q_AUTOTEST_EXPORT QHstsHeaderParser
diff --git a/src/network/access/qhstsstore_p.h b/src/network/access/qhstsstore_p.h
index 13042839c4..e82596b250 100644
--- a/src/network/access/qhstsstore_p.h
+++ b/src/network/access/qhstsstore_p.h
@@ -53,6 +53,8 @@
#include <QtNetwork/private/qtnetworkglobal_p.h>
+QT_REQUIRE_CONFIG(settings);
+
#include <QtCore/qsettings.h>
#include <QtCore/qvector.h>
diff --git a/src/network/access/qnetworkaccessftpbackend.cpp b/src/network/access/qnetworkaccessftpbackend.cpp
index 269845ed39..fd6589b396 100644
--- a/src/network/access/qnetworkaccessftpbackend.cpp
+++ b/src/network/access/qnetworkaccessftpbackend.cpp
@@ -423,7 +423,7 @@ void QNetworkAccessFtpBackend::ftpRawCommandReply(int code, const QString &text)
if (id == sizeId) {
// reply to the size command
setHeader(QNetworkRequest::ContentLengthHeader, text.toLongLong());
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
} else if (id == mdtmId) {
QDateTime dt = QDateTime::fromString(text, QLatin1String("yyyyMMddHHmmss"));
setHeader(QNetworkRequest::LastModifiedHeader, dt);
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index 375b8763ee..263469ce38 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -48,6 +48,10 @@
#include "qhstspolicy.h"
#include "qhsts_p.h"
+#if QT_CONFIG(settings)
+#include "qhstsstore_p.h"
+#endif // QT_CONFIG(settings)
+
#include "QtNetwork/qnetworksession.h"
#include "QtNetwork/private/qsharednetworksession_p.h"
@@ -763,9 +767,14 @@ bool QNetworkAccessManager::isStrictTransportSecurityEnabled() const
void QNetworkAccessManager::enableStrictTransportSecurityStore(bool enabled, const QString &storeDir)
{
+#if QT_CONFIG(settings)
Q_D(QNetworkAccessManager);
d->stsStore.reset(enabled ? new QHstsStore(storeDir) : nullptr);
d->stsCache.setStore(d->stsStore.data());
+#else
+ Q_UNUSED(enabled) Q_UNUSED(storeDir)
+ qWarning("HSTS permanent store requires the feature 'settings' enabled");
+#endif // QT_CONFIG(settings)
}
/*!
@@ -779,8 +788,12 @@ void QNetworkAccessManager::enableStrictTransportSecurityStore(bool enabled, con
bool QNetworkAccessManager::isStrictTransportSecurityStoreEnabled() const
{
+#if QT_CONFIG(settings)
Q_D(const QNetworkAccessManager);
return bool(d->stsStore.data());
+#else
+ return false;
+#endif // QT_CONFIG(settings)
}
/*!
diff --git a/src/network/access/qnetworkaccessmanager_p.h b/src/network/access/qnetworkaccessmanager_p.h
index ffed24a314..5cab4928e4 100644
--- a/src/network/access/qnetworkaccessmanager_p.h
+++ b/src/network/access/qnetworkaccessmanager_p.h
@@ -56,7 +56,6 @@
#include "qnetworkaccesscache_p.h"
#include "qnetworkaccessbackend_p.h"
#include "qnetworkrequest.h"
-#include "qhstsstore_p.h"
#include "qhsts_p.h"
#include "private/qobject_p.h"
#include "QtNetwork/qnetworkproxy.h"
@@ -66,6 +65,10 @@
#include "QtNetwork/qnetworkconfigmanager.h"
#endif
+#if QT_CONFIG(settings)
+#include "qhstsstore_p.h"
+#endif // QT_CONFIG(settings)
+
QT_BEGIN_NAMESPACE
class QAuthenticator;
@@ -215,7 +218,9 @@ public:
Q_AUTOTEST_EXPORT static void clearConnectionCache(QNetworkAccessManager *manager);
QHstsCache stsCache;
+#if QT_CONFIG(settings)
QScopedPointer<QHstsStore> stsStore;
+#endif // QT_CONFIG(settings)
bool stsEnabled = false;
#ifndef QT_NO_BEARERMANAGEMENT
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index 57529761ee..689eecfbb9 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -47,7 +47,7 @@
#include "QtCore/qdatetime.h"
#include <ctype.h>
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
# include <stdio.h>
#endif
@@ -1273,7 +1273,7 @@ QDateTime QNetworkHeadersPrivate::fromHttpDate(const QByteArray &value)
int pos = value.indexOf(',');
QDateTime dt;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
if (pos == -1) {
// no comma -> asctime(3) format
dt = QDateTime::fromString(QString::fromLatin1(value), Qt::TextDate);
@@ -1300,7 +1300,7 @@ QDateTime QNetworkHeadersPrivate::fromHttpDate(const QByteArray &value)
dt = c.toDateTime(sansWeekday, QLatin1String("dd-MMM-yy hh:mm:ss 'GMT'"));
}
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
if (dt.isValid())
dt.setTimeSpec(Qt::UTC);
diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
index 31ff296480..d153e0b929 100644
--- a/src/network/ssl/qsslcertificate.cpp
+++ b/src/network/ssl/qsslcertificate.cpp
@@ -761,7 +761,7 @@ QDebug operator<<(QDebug debug, const QSslCertificate &certificate)
<< ", " << certificate.issuerDisplayName()
<< ", " << certificate.subjectDisplayName()
<< ", " << certificate.subjectAlternativeNames()
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
<< ", " << certificate.effectiveDate()
<< ", " << certificate.expiryDate()
#endif
diff --git a/src/network/ssl/qsslcontext_openssl11.cpp b/src/network/ssl/qsslcontext_openssl11.cpp
index 7d11e51e8b..708cb7bb0e 100644
--- a/src/network/ssl/qsslcontext_openssl11.cpp
+++ b/src/network/ssl/qsslcontext_openssl11.cpp
@@ -159,20 +159,20 @@ init_context:
case QSsl::TlsV1SslV3:
case QSsl::AnyProtocol:
minVersion = SSL3_VERSION;
- maxVersion = TLS_MAX_VERSION;
+ maxVersion = 0;
break;
case QSsl::SecureProtocols:
case QSsl::TlsV1_0OrLater:
minVersion = TLS1_VERSION;
- maxVersion = TLS_MAX_VERSION;
+ maxVersion = 0;
break;
case QSsl::TlsV1_1OrLater:
minVersion = TLS1_1_VERSION;
- maxVersion = TLS_MAX_VERSION;
+ maxVersion = 0;
break;
case QSsl::TlsV1_2OrLater:
minVersion = TLS1_2_VERSION;
- maxVersion = TLS_MAX_VERSION;
+ maxVersion = 0;
break;
#if QT_CONFIG(dtls)
case QSsl::DtlsV1_0:
diff --git a/src/network/ssl/qsslpresharedkeyauthenticator.h b/src/network/ssl/qsslpresharedkeyauthenticator.h
index d0e2eda973..423f7731b4 100644
--- a/src/network/ssl/qsslpresharedkeyauthenticator.h
+++ b/src/network/ssl/qsslpresharedkeyauthenticator.h
@@ -45,6 +45,8 @@
#include <QtCore/QSharedDataPointer>
#include <QtCore/QMetaType>
+QT_REQUIRE_CONFIG(ssl);
+
QT_BEGIN_NAMESPACE
class QSslPreSharedKeyAuthenticatorPrivate;
diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
index e2455f87fb..58da2a3c51 100644
--- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
@@ -130,7 +130,7 @@ static inline QByteArray fromUnicode(QTextCodec *tc, const QString &str)
static inline QVariant qDateFromString(const QString &val)
{
-#ifdef QT_NO_DATESTRING
+#if !QT_CONFIG(datestring)
Q_UNUSED(val);
return QVariant(val);
#else
@@ -142,7 +142,7 @@ static inline QVariant qDateFromString(const QString &val)
static inline QVariant qTimeFromString(const QString &val)
{
-#ifdef QT_NO_DATESTRING
+#if !QT_CONFIG(datestring)
Q_UNUSED(val);
return QVariant(val);
#else
@@ -154,7 +154,7 @@ static inline QVariant qTimeFromString(const QString &val)
static inline QVariant qDateTimeFromString(QString &val)
{
-#ifdef QT_NO_DATESTRING
+#if !QT_CONFIG(datestring)
Q_UNUSED(val);
return QVariant(val);
#else
diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp
index 5796644d34..bf0493b0c3 100644
--- a/src/plugins/sqldrivers/psql/qsql_psql.cpp
+++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp
@@ -679,7 +679,7 @@ QVariant QPSQLResult::data(int i)
if (val[0] == '\0') {
return QVariant(QDate());
} else {
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
return QVariant(QDate::fromString(QString::fromLatin1(val), Qt::ISODate));
#else
return QVariant(QString::fromLatin1(val));
@@ -687,7 +687,7 @@ QVariant QPSQLResult::data(int i)
}
case QVariant::Time: {
const QString str = QString::fromLatin1(val);
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
if (str.isEmpty())
return QVariant(QTime());
else
@@ -698,7 +698,7 @@ QVariant QPSQLResult::data(int i)
}
case QVariant::DateTime: {
QString dtval = QString::fromLatin1(val);
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
if (dtval.length() < 10) {
return QVariant(QDateTime());
} else {
@@ -1500,7 +1500,7 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const
} else {
switch (int(field.type())) {
case QVariant::DateTime:
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
if (field.value().toDateTime().isValid()) {
// we force the value to be considered with a timezone information, and we force it to be UTC
// this is safe since postgresql stores only the UTC value and not the timezone offset (only used
@@ -1513,10 +1513,10 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const
}
#else
r = QLatin1String("NULL");
-#endif // QT_NO_DATESTRING
+#endif // datestring
break;
case QVariant::Time:
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
if (field.value().toTime().isValid()) {
r = QLatin1Char('\'') + field.value().toTime().toString(QLatin1String("hh:mm:ss.zzz")) + QLatin1Char('\'');
} else
diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp
index 2d306e9fae..8c6ae382f6 100644
--- a/src/sql/kernel/qsqldriver.cpp
+++ b/src/sql/kernel/qsqldriver.cpp
@@ -617,7 +617,7 @@ QString QSqlDriver::formatValue(const QSqlField &field, bool trimStrings) const
else
r = field.value().toString();
break;
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
case QVariant::Date:
if (field.value().toDate().isValid())
r = QLatin1Char('\'') + field.value().toDate().toString(Qt::ISODate)
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h
index 927b68bd27..2578037946 100644
--- a/src/testlib/qtest.h
+++ b/src/testlib/qtest.h
@@ -87,7 +87,7 @@ template<> inline char *toString(const QByteArray &ba)
return QTest::toPrettyCString(ba.constData(), ba.length());
}
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
template<> inline char *toString(const QTime &time)
{
return time.isValid()
@@ -108,7 +108,7 @@ template<> inline char *toString(const QDateTime &dateTime)
? qstrdup(qPrintable(dateTime.toString(QStringViewLiteral("yyyy/MM/dd hh:mm:ss.zzz[t]"))))
: qstrdup("Invalid QDateTime");
}
-#endif // QT_NO_DATESTRING
+#endif // datestring
template<> inline char *toString(const QChar &c)
{
diff --git a/src/widgets/dialogs/qfilesystemmodel.cpp b/src/widgets/dialogs/qfilesystemmodel.cpp
index e4edd2f6ef..e54fdc97d4 100644
--- a/src/widgets/dialogs/qfilesystemmodel.cpp
+++ b/src/widgets/dialogs/qfilesystemmodel.cpp
@@ -797,7 +797,7 @@ QString QFileSystemModelPrivate::time(const QModelIndex &index) const
{
if (!index.isValid())
return QString();
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
return node(index)->lastModified().toString(Qt::SystemLocaleDate);
#else
Q_UNUSED(index);
diff --git a/src/widgets/itemviews/qdirmodel.cpp b/src/widgets/itemviews/qdirmodel.cpp
index 449850c42e..78fc623fb5 100644
--- a/src/widgets/itemviews/qdirmodel.cpp
+++ b/src/widgets/itemviews/qdirmodel.cpp
@@ -1319,7 +1319,7 @@ QString QDirModelPrivate::type(const QModelIndex &index) const
QString QDirModelPrivate::time(const QModelIndex &index) const
{
-#ifndef QT_NO_DATESTRING
+#if QT_CONFIG(datestring)
return node(index)->info.lastModified().toString(Qt::LocalDate);
#else
Q_UNUSED(index);
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index 3396a91dc5..7bfa51337d 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -2213,9 +2213,6 @@ void QHeaderViewPrivate::_q_sectionsAboutToBeChanged(const QList<QPersistentMode
? model->index(0, logical, root)
: model->index(logical, 0, root),
s});
-
- if (layoutChangePersistentSections.size() > 1000)
- break;
}
}
diff --git a/src/widgets/util/qcompleter.cpp b/src/widgets/util/qcompleter.cpp
index df280119cb..0daa4a4b41 100644
--- a/src/widgets/util/qcompleter.cpp
+++ b/src/widgets/util/qcompleter.cpp
@@ -1243,7 +1243,14 @@ void QCompleter::setPopup(QAbstractItemView *popup)
Qt::FocusPolicy origPolicy = Qt::NoFocus;
if (d->widget)
origPolicy = d->widget->focusPolicy();
- popup->setParent(nullptr, Qt::Popup);
+
+ // Mark the widget window as a popup, so that if the last non-popup window is closed by the
+ // user, the application should not be prevented from exiting. It needs to be set explicitly via
+ // setWindowFlag(), because passing the flag via setParent(parent, windowFlags) does not call
+ // QWidgetPrivate::adjustQuitOnCloseAttribute(), and causes an application not to exit if the
+ // popup ends up being the last window.
+ popup->setParent(nullptr);
+ popup->setWindowFlag(Qt::Popup);
popup->setFocusPolicy(Qt::NoFocus);
if (d->widget)
d->widget->setFocusPolicy(origPolicy);