/*************************************************************************** * Copyright (C) 2007 by Pino Toscano * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ // local includes #include "pagesize.h" using namespace Okular; class Okular::PageSizePrivate : public QSharedData { public: PageSizePrivate() : m_width(0) , m_height(0) { } bool operator==(const PageSizePrivate &rhs) const { return m_width == rhs.m_width && m_height == rhs.m_height && m_name == rhs.m_name; } double m_width; double m_height; QString m_name; }; PageSize::PageSize() { } PageSize::PageSize(double width, double height, const QString &name) : d(new PageSizePrivate) { d->m_width = width; d->m_height = height; d->m_name = name; } PageSize::PageSize(const PageSize &pageSize) : d(pageSize.d) { } PageSize::~PageSize() { } double PageSize::width() const { if (!d) return 0; return d->m_width; } double PageSize::height() const { if (!d) return 0; return d->m_height; } QString PageSize::name() const { if (!d) return QString(); return d->m_name; } bool PageSize::isNull() const { if (!d) return true; return d->m_width == 0 && d->m_height == 0 && d->m_name.isEmpty(); } bool PageSize::operator==(const PageSize &pageSize) const { // 1st: we're null: check if the other is null too if (!d) return !pageSize.d; // 2nd: we're not null, return if the other is null if (!pageSize.d) return false; // 3rd: normal == check return *d == *pageSize.d; } bool PageSize::operator!=(const PageSize &pageSize) const { return !operator==(pageSize); } PageSize &PageSize::operator=(const PageSize &pageSize) { if (this == &pageSize) return *this; d = pageSize.d; return *this; }