File indexing completed on 2024-05-12 16:42:34
0001 /* 0002 SPDX-FileCopyrightText: 2012-2016 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "mymoneycostcenter.h" 0007 0008 // ---------------------------------------------------------------------------- 0009 // QT Includes 0010 0011 #include <QCollator> 0012 0013 // ---------------------------------------------------------------------------- 0014 // Project Includes 0015 0016 #include "mymoneyobject_p.h" 0017 #include "mymoneyexception.h" 0018 0019 MyMoneyCostCenter MyMoneyCostCenter::null; 0020 0021 class MyMoneyCostCenterPrivate : public MyMoneyObjectPrivate 0022 { 0023 public: 0024 QString m_name; 0025 }; 0026 0027 MyMoneyCostCenter::MyMoneyCostCenter() : 0028 MyMoneyObject(*new MyMoneyCostCenterPrivate) 0029 { 0030 } 0031 0032 MyMoneyCostCenter::MyMoneyCostCenter(const QString &id) : 0033 MyMoneyObject(*new MyMoneyCostCenterPrivate, id) 0034 { 0035 } 0036 0037 MyMoneyCostCenter::MyMoneyCostCenter(const MyMoneyCostCenter& other) : 0038 MyMoneyObject(*new MyMoneyCostCenterPrivate(*other.d_func()), other.id()) 0039 { 0040 } 0041 0042 MyMoneyCostCenter::MyMoneyCostCenter(const QString& id, const MyMoneyCostCenter& other) : 0043 MyMoneyObject(*new MyMoneyCostCenterPrivate(*other.d_func()), id) 0044 { 0045 } 0046 0047 MyMoneyCostCenter::~MyMoneyCostCenter() 0048 { 0049 } 0050 0051 bool MyMoneyCostCenter::operator == (const MyMoneyCostCenter& right) const 0052 { 0053 Q_D(const MyMoneyCostCenter); 0054 auto d2 = static_cast<const MyMoneyCostCenterPrivate *>(right.d_func()); 0055 return (MyMoneyObject::operator==(right) && 0056 ((d->m_name.length() == 0 && d2->m_name.length() == 0) || (d->m_name == d2->m_name))); 0057 } 0058 0059 bool MyMoneyCostCenter::operator < (const MyMoneyCostCenter& right) const 0060 { 0061 Q_D(const MyMoneyCostCenter); 0062 auto d2 = static_cast<const MyMoneyCostCenterPrivate *>(right.d_func()); 0063 QCollator col; 0064 return col.compare(d->m_name, d2->m_name); 0065 } 0066 0067 bool MyMoneyCostCenter::hasReferenceTo(const QString& /*id*/) const 0068 { 0069 return false; 0070 } 0071 0072 QString MyMoneyCostCenter::name() const 0073 { 0074 Q_D(const MyMoneyCostCenter); 0075 return d->m_name; 0076 } 0077 0078 void MyMoneyCostCenter::setName(const QString& val) 0079 { 0080 Q_D(MyMoneyCostCenter); 0081 d->m_name = val; 0082 } 0083 0084 0085 QString MyMoneyCostCenter::shortName() const 0086 { 0087 Q_D(const MyMoneyCostCenter); 0088 QRegExp shortNumberExp("^(\\d+)\\s.+"); 0089 if(shortNumberExp.exactMatch(d->m_name)) { 0090 return shortNumberExp.cap(1); 0091 } 0092 return d->m_name; 0093 }