From bb7b20b4465754988c7696e407045975c0672030 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 5 Apr 2015 21:17:54 +0200 Subject: [PATCH] QErrorMessage: avoid some code duplication ...by using the predicate from nextPending() in the two showMessage() functions, too, which thus become identical, when substituting type -> QString(). Also saves around 250B in text size. Change-Id: Ibf5d081dbec3438b7b1be4e240879e26d0455d6b Reviewed-by: Friedemann Kleint --- src/widgets/dialogs/qerrormessage.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/widgets/dialogs/qerrormessage.cpp b/src/widgets/dialogs/qerrormessage.cpp index 5c61b58b0f..fb393de6e5 100644 --- a/src/widgets/dialogs/qerrormessage.cpp +++ b/src/widgets/dialogs/qerrormessage.cpp @@ -75,6 +75,7 @@ public: QString currentMessage; QString currentType; + bool isMessageToBeShown(const QString &message, const QString &type) const; bool nextPending(); void retranslateStrings(); }; @@ -304,6 +305,12 @@ QErrorMessage * QErrorMessage::qtHandler() /*! \internal */ +bool QErrorMessagePrivate::isMessageToBeShown(const QString &message, const QString &type) const +{ + return !message.isEmpty() + && (type.isEmpty() ? !doNotShow.contains(message) : !doNotShowType.contains(type)); +} + bool QErrorMessagePrivate::nextPending() { while (!pending.empty()) { @@ -311,7 +318,7 @@ bool QErrorMessagePrivate::nextPending() QString message = qMove(pendingMessage.first); QString type = qMove(pendingMessage.second); pending.pop(); - if (!message.isEmpty() && ((type.isEmpty() && !doNotShow.contains(message)) || (!type.isEmpty() && !doNotShowType.contains(type)))) { + if (isMessageToBeShown(message, type)) { #ifndef QT_NO_TEXTHTMLPARSER errors->setHtml(message); #else @@ -337,12 +344,7 @@ bool QErrorMessagePrivate::nextPending() void QErrorMessage::showMessage(const QString &message) { - Q_D(QErrorMessage); - if (d->doNotShow.contains(message)) - return; - d->pending.push(qMakePair(message,QString())); - if (!isVisible() && d->nextPending()) - show(); + showMessage(message, QString()); } /*! @@ -362,9 +364,9 @@ void QErrorMessage::showMessage(const QString &message) void QErrorMessage::showMessage(const QString &message, const QString &type) { Q_D(QErrorMessage); - if (d->doNotShow.contains(message) && d->doNotShowType.contains(type)) + if (!d->isMessageToBeShown(message, type)) return; - d->pending.push(qMakePair(message,type)); + d->pending.push(qMakePair(message, type)); if (!isVisible() && d->nextPending()) show(); }