File indexing completed on 2024-04-28 04:32:44
0001 /* 0002 SPDX-FileCopyrightText: 2007 Pino Toscano <pino@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 // local includes 0008 #include "pagesize.h" 0009 0010 using namespace Okular; 0011 0012 class Okular::PageSizePrivate : public QSharedData 0013 { 0014 public: 0015 PageSizePrivate() 0016 : m_width(0) 0017 , m_height(0) 0018 { 0019 } 0020 0021 bool operator==(const PageSizePrivate &rhs) const 0022 { 0023 return m_width == rhs.m_width && m_height == rhs.m_height && m_name == rhs.m_name; 0024 } 0025 0026 double m_width; 0027 double m_height; 0028 QString m_name; 0029 }; 0030 0031 PageSize::PageSize() 0032 { 0033 } 0034 0035 PageSize::PageSize(double width, double height, const QString &name) 0036 : d(new PageSizePrivate) 0037 { 0038 d->m_width = width; 0039 d->m_height = height; 0040 d->m_name = name; 0041 } 0042 0043 PageSize::PageSize(const PageSize &pageSize) 0044 : d(pageSize.d) 0045 { 0046 } 0047 0048 PageSize::~PageSize() 0049 { 0050 } 0051 0052 double PageSize::width() const 0053 { 0054 if (!d) { 0055 return 0; 0056 } 0057 0058 return d->m_width; 0059 } 0060 0061 double PageSize::height() const 0062 { 0063 if (!d) { 0064 return 0; 0065 } 0066 0067 return d->m_height; 0068 } 0069 0070 QString PageSize::name() const 0071 { 0072 if (!d) { 0073 return QString(); 0074 } 0075 0076 return d->m_name; 0077 } 0078 0079 bool PageSize::isNull() const 0080 { 0081 if (!d) { 0082 return true; 0083 } 0084 0085 return d->m_width == 0 && d->m_height == 0 && d->m_name.isEmpty(); 0086 } 0087 0088 bool PageSize::operator==(const PageSize &pageSize) const 0089 { 0090 // 1st: we're null: check if the other is null too 0091 if (!d) { 0092 return !pageSize.d; 0093 } 0094 // 2nd: we're not null, return if the other is null 0095 if (!pageSize.d) { 0096 return false; 0097 } 0098 0099 // 3rd: normal == check 0100 return *d == *pageSize.d; 0101 } 0102 0103 bool PageSize::operator!=(const PageSize &pageSize) const 0104 { 0105 return !operator==(pageSize); 0106 } 0107 0108 PageSize &PageSize::operator=(const PageSize &pageSize) 0109 { 0110 if (this == &pageSize) { 0111 return *this; 0112 } 0113 0114 d = pageSize.d; 0115 return *this; 0116 }