diff --git a/src/common/KReportData.h b/src/common/KReportData.h --- a/src/common/KReportData.h +++ b/src/common/KReportData.h @@ -29,16 +29,27 @@ { public: + KReportData(); virtual ~KReportData(); //! Describes sorting for single field /*! By default the order is ascending. */ class KREPORT_EXPORT SortedField { public: SortedField(); - QString field; - Qt::SortOrder order; + ~SortedField(); + SortedField& operator=(const SortedField &other); + void setField(const QString &field); + void setOrder(Qt::SortOrder order); + QString field() const; + QString field(); + Qt::SortOrder order() const; + Qt::SortOrder order(); + + private: + class Private; + Private * const d; }; //! Open the dataset @@ -117,6 +128,11 @@ //! @a source is implementation-specific identifier. //! Owner of the returned pointer is the caller. virtual KReportData* create(const QString &source) const Q_REQUIRED_RESULT; + +private: + Q_DISABLE_COPY(KReportData) + class Private; + Private * const d; }; #endif diff --git a/src/common/KReportData.cpp b/src/common/KReportData.cpp --- a/src/common/KReportData.cpp +++ b/src/common/KReportData.cpp @@ -18,13 +18,81 @@ #include "KReportData.h" #include -KReportData::~KReportData() +class KReportData::SortedField::Private { -} + +public: + QString field; + Qt::SortOrder order = Qt::AscendingOrder; +}; + +class KReportData::Private +{ +public: + bool dummy = true; +}; + +//==========KReportData::SortedField========== KReportData::SortedField::SortedField() - : order(Qt::AscendingOrder) + : d(new Private()) +{ +} + +KReportData::SortedField::~SortedField() +{ + delete d; +} + +KReportData::SortedField & KReportData::SortedField::operator=(const KReportData::SortedField& other) +{ + if (this != &other) { + setField(other.field()); + setOrder(other.order()); + } + return *this; +} + +QString KReportData::SortedField::field() +{ + return d->field; +} + +QString KReportData::SortedField::field() const +{ + return d->field; +} + +Qt::SortOrder KReportData::SortedField::order() +{ + return d->order; +} + +Qt::SortOrder KReportData::SortedField::order() const +{ + return d->order; +} + +void KReportData::SortedField::setField(const QString& field) +{ + d->field = field; +} + +void KReportData::SortedField::setOrder(Qt::SortOrder order) +{ + d->order = order; +} + + +//==========KReportData========== + +KReportData::KReportData() : d(new Private()) +{ +} + +KReportData::~KReportData() { + delete d; } QStringList KReportData::fieldKeys() const diff --git a/src/common/KReportDetailSectionData.cpp b/src/common/KReportDetailSectionData.cpp --- a/src/common/KReportDetailSectionData.cpp +++ b/src/common/KReportDetailSectionData.cpp @@ -91,8 +91,8 @@ } m_groupList.append(dgsd); KReportData::SortedField s; - s.field = dgsd->m_column; - s.order = dgsd->m_sort; + s.setField(dgsd->m_column); + s.setOrder(dgsd->m_sort); m_sortedFields.append(s); } else if (elemThis.tagName() == QLatin1String("report:section") && elemThis.attribute(QLatin1String("report:section-type")) == QLatin1String("detail")) { diff --git a/src/wrtembed/KReportDesignerItemBase.h b/src/wrtembed/KReportDesignerItemBase.h --- a/src/wrtembed/KReportDesignerItemBase.h +++ b/src/wrtembed/KReportDesignerItemBase.h @@ -79,6 +79,7 @@ QString renderText() const; private: + Q_DISABLE_COPY(KReportDesignerItemBase) class Private; Private * const d; };