summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Faure <faure@kde.org>2012-04-02 11:42:26 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-08 10:36:51 +0200
commitb069158ed35e7d39c3ac56ce4844c6ff1d69451f (patch)
tree6356bbd180236e082196caa70b0db42576599719
parent32db7de2079967fe1c333c562b742318c50321a4 (diff)
Fix QMimeType::operator== to only compare mimetype names.
The name is the unique identifier. Code such as if (oldItem.mimeType() == newItem.mimeType()) really wants to detect whether the item has a new mimetype (name), not compare static mimetype data such as comments and icons. Change-Id: I5fe56443295c91e1024c066ad6e7f93d842ae507 Reviewed-by: Wolf-Michael Bolle <wolf-michael.bolle@nokia.com>
-rw-r--r--src/corelib/mimetypes/qmimetype.cpp21
-rw-r--r--src/corelib/mimetypes/qmimetype_p.h2
-rw-r--r--tests/auto/corelib/mimetypes/qmimetype/tst_qmimetype.cpp39
3 files changed, 3 insertions, 59 deletions
diff --git a/src/corelib/mimetypes/qmimetype.cpp b/src/corelib/mimetypes/qmimetype.cpp
index 1b13a9f8c7..2ae818d862 100644
--- a/src/corelib/mimetypes/qmimetype.cpp
+++ b/src/corelib/mimetypes/qmimetype.cpp
@@ -77,23 +77,6 @@ void QMimeTypePrivate::clear()
loaded = false;
}
-/*!
- \fn bool QMimeTypePrivate::operator==(const QMimeTypePrivate &other) const;
- Returns true if \a other equals this QMimeTypePrivate object, otherwise returns false.
- */
-bool QMimeTypePrivate::operator==(const QMimeTypePrivate &other) const
-{
- if (name == other.name &&
- localeComments == other.localeComments &&
- genericIconName == other.genericIconName &&
- iconName == other.iconName &&
- globPatterns == other.globPatterns) {
- return true;
- }
-
- return false;
-}
-
void QMimeTypePrivate::addGlobPattern(const QString &pattern)
{
globPatterns.append(pattern);
@@ -184,10 +167,12 @@ QMimeType::~QMimeType()
/*!
\fn bool QMimeType::operator==(const QMimeType &other) const;
Returns true if \a other equals this QMimeType object, otherwise returns false.
+ The name is the unique identifier for a mimetype, so two mimetypes with
+ the same name, are equal.
*/
bool QMimeType::operator==(const QMimeType &other) const
{
- return d == other.d || *d == *other.d;
+ return d == other.d || d->name == other.d->name;
}
/*!
diff --git a/src/corelib/mimetypes/qmimetype_p.h b/src/corelib/mimetypes/qmimetype_p.h
index 775d5278e2..caef65cb5b 100644
--- a/src/corelib/mimetypes/qmimetype_p.h
+++ b/src/corelib/mimetypes/qmimetype_p.h
@@ -59,8 +59,6 @@ public:
void clear();
- bool operator==(const QMimeTypePrivate &other) const;
-
void addGlobPattern(const QString &pattern);
QString name;
diff --git a/tests/auto/corelib/mimetypes/qmimetype/tst_qmimetype.cpp b/tests/auto/corelib/mimetypes/qmimetype/tst_qmimetype.cpp
index 6f24bfe6f1..d88ef18a72 100644
--- a/tests/auto/corelib/mimetypes/qmimetype/tst_qmimetype.cpp
+++ b/tests/auto/corelib/mimetypes/qmimetype/tst_qmimetype.cpp
@@ -176,20 +176,7 @@ void tst_qmimetype::genericIconName()
)
);
- QMimeType otherQMimeType (
- buildQMimeType (
- qMimeTypeName(),
- QString(),
- qMimeTypeGenericIconName(),
- qMimeTypeGlobPatterns()
- )
- );
-
- // Verify that the GenericIconName is part of the equality test:
QCOMPARE(instantiatedQMimeType.genericIconName(), qMimeTypeGenericIconName());
-
- QVERIFY(instantiatedQMimeType != otherQMimeType);
- QVERIFY(!(instantiatedQMimeType == otherQMimeType));
}
// ------------------------------------------------------------------------------------------------
@@ -205,20 +192,7 @@ void tst_qmimetype::iconName()
)
);
- QMimeType otherQMimeType (
- buildQMimeType (
- qMimeTypeName(),
- qMimeTypeGenericIconName(),
- QString(),
- qMimeTypeGlobPatterns()
- )
- );
-
- // Verify that the IconName is part of the equality test:
QCOMPARE(instantiatedQMimeType.iconName(), qMimeTypeIconName());
-
- QVERIFY(instantiatedQMimeType != otherQMimeType);
- QVERIFY(!(instantiatedQMimeType == otherQMimeType));
}
// ------------------------------------------------------------------------------------------------
@@ -234,21 +208,8 @@ void tst_qmimetype::suffixes()
)
);
- QMimeType otherQMimeType (
- buildQMimeType (
- qMimeTypeName(),
- qMimeTypeGenericIconName(),
- qMimeTypeIconName(),
- QStringList()
- )
- );
-
- // Verify that the Suffixes are part of the equality test:
QCOMPARE(instantiatedQMimeType.globPatterns(), qMimeTypeGlobPatterns());
QCOMPARE(instantiatedQMimeType.suffixes(), QStringList() << QString::fromLatin1("png"));
-
- QVERIFY(instantiatedQMimeType != otherQMimeType);
- QVERIFY(!(instantiatedQMimeType == otherQMimeType));
}
// ------------------------------------------------------------------------------------------------