From c412e0382db1bd4e98ec1797b69351198065b57c Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 27 Nov 2012 21:23:45 +0100 Subject: Add comparison operators to projectdata Change-Id: I8eaa24edef7d5c4d21f07039e3cf8a58c1d4579d Reviewed-by: Christian Kandeler --- src/lib/api/projectdata.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ src/lib/api/projectdata.h | 7 +++++++ 2 files changed, 49 insertions(+) diff --git a/src/lib/api/projectdata.cpp b/src/lib/api/projectdata.cpp index c11154f31..830c5a5a7 100644 --- a/src/lib/api/projectdata.cpp +++ b/src/lib/api/projectdata.cpp @@ -32,9 +32,51 @@ namespace qbs { // These are not inline because MSVC does not like it when source files have no content. GroupData::GroupData() { } + +bool operator==(const GroupData &lhs, const GroupData &rhs) +{ + return lhs.name() == rhs.name() + && lhs.qbsLine() == rhs.qbsLine() + && lhs.filePaths() == rhs.filePaths() + && lhs.expandedWildcards() == rhs.expandedWildcards() + && lhs.properties() == rhs.properties(); +} + +bool operator!=(const GroupData &lhs, const GroupData &rhs) +{ + return !(lhs == rhs); +} + ProductData::ProductData() { } + +bool operator==(const ProductData &lhs, const ProductData &rhs) +{ + return lhs.name() == rhs.name() + && lhs.qbsFilePath() == rhs.qbsFilePath() + && lhs.qbsLine() == rhs.qbsLine() + && lhs.fileTags() == rhs.fileTags() + && lhs.properties() == rhs.properties() + && lhs.groups() == rhs.groups(); +} + +bool operator!=(const ProductData &lhs, const ProductData &rhs) +{ + return !(lhs == rhs); +} + ProjectData::ProjectData() { } +bool operator==(const ProjectData &lhs, const ProjectData &rhs) +{ + return lhs.qbsFilePath() == rhs.qbsFilePath() + && lhs.products() == rhs.products(); +} + +bool operator!=(const ProjectData &lhs, const ProjectData &rhs) +{ + return !(lhs == rhs); +} + /*! * \class GroupData * \brief The \c GroupData class corresponds to the Group item in a qbs source file. diff --git a/src/lib/api/projectdata.h b/src/lib/api/projectdata.h index 2775761f5..737aaf3c6 100644 --- a/src/lib/api/projectdata.h +++ b/src/lib/api/projectdata.h @@ -63,6 +63,8 @@ private: QVariantMap m_properties; }; +bool operator==(const GroupData &lhs, const GroupData &rhs); +bool operator!=(const GroupData &lhs, const GroupData &rhs); class ProductData { @@ -86,6 +88,8 @@ private: QList m_groups; }; +bool operator==(const ProductData &lhs, const ProductData &rhs); +bool operator!=(const ProductData &lhs, const ProductData &rhs); class ProjectData { @@ -101,6 +105,9 @@ private: QList m_products; }; +bool operator==(const ProjectData &lhs, const ProjectData &rhs); +bool operator!=(const ProjectData &lhs, const ProjectData &rhs); + } // namespace qbs #endif // PUBLICTYPES_H -- cgit v1.2.3