diff --git a/src/common/KReportData.h b/src/common/KReportData.h --- a/src/common/KReportData.h +++ b/src/common/KReportData.h @@ -38,8 +38,11 @@ { public: SortedField(); + SortedField(const SortedField& other); ~SortedField(); SortedField& operator=(const SortedField &other); + bool operator==(const SortedField &other); + bool operator!=(const SortedField &other); void setField(const QString &field); void setOrder(Qt::SortOrder order); QString field() const; diff --git a/src/common/KReportData.cpp b/src/common/KReportData.cpp --- a/src/common/KReportData.cpp +++ b/src/common/KReportData.cpp @@ -18,6 +18,8 @@ #include "KReportData.h" #include +#define KReportDataSortedFieldPrivateArgs(o) std::tie(o.field, o.order) + class KReportData::SortedField::Private { @@ -39,6 +41,13 @@ { } +KReportData::SortedField::SortedField(const KReportData::SortedField& other) : d(new Private) +{ + d->field = other.field(); + d->order = other.order(); +} + + KReportData::SortedField::~SortedField() { delete d; @@ -53,6 +62,16 @@ return *this; } +bool KReportData::SortedField::operator==(const KReportData::SortedField& other) +{ + return KReportDataSortedFieldPrivateArgs((*d)) == KReportDataSortedFieldPrivateArgs((*(other.d))); +} + +bool KReportData::SortedField::operator!=(const KReportData::SortedField& other) +{ + return KReportDataSortedFieldPrivateArgs((*d)) != KReportDataSortedFieldPrivateArgs((*(other.d))); +} + QString KReportData::SortedField::field() const { return d->field;