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) const; + bool operator!=(const SortedField &other) const; 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,10 +18,16 @@ #include "KReportData.h" #include +#define KReportDataSortedFieldPrivateArgs(o) std::tie(o.field, o.order) + class KReportData::SortedField::Private { public: + Private() {} + Private(const Private& other) { + KReportDataSortedFieldPrivateArgs((*this)) = KReportDataSortedFieldPrivateArgs(other); + } QString field; Qt::SortOrder order = Qt::AscendingOrder; }; @@ -35,10 +41,15 @@ //==========KReportData::SortedField========== KReportData::SortedField::SortedField() - : d(new Private()) + : d(new Private) +{ +} + +KReportData::SortedField::SortedField(const KReportData::SortedField& other) : d(new Private(*other.d)) { } + KReportData::SortedField::~SortedField() { delete d; @@ -53,6 +64,16 @@ return *this; } +bool KReportData::SortedField::operator==(const KReportData::SortedField& other) const +{ + return KReportDataSortedFieldPrivateArgs((*d)) == KReportDataSortedFieldPrivateArgs((*other.d)); +} + +bool KReportData::SortedField::operator!=(const KReportData::SortedField& other) const +{ + return KReportDataSortedFieldPrivateArgs((*d)) != KReportDataSortedFieldPrivateArgs((*other.d)); +} + QString KReportData::SortedField::field() const { return d->field;