File indexing completed on 2024-05-19 05:07:15
0001 /* 0002 SPDX-FileCopyrightText: 2012-2019 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 #include <QRegularExpression> 0013 #include <QRegularExpressionMatch> 0014 #include <QSet> 0015 0016 // ---------------------------------------------------------------------------- 0017 // Project Includes 0018 0019 #include "mymoneyobject_p.h" 0020 #include "mymoneyexception.h" 0021 0022 MyMoneyCostCenter MyMoneyCostCenter::null; 0023 0024 class MyMoneyCostCenterPrivate : public MyMoneyObjectPrivate 0025 { 0026 public: 0027 void collectReferencedObjects() override 0028 { 0029 } 0030 0031 QString m_name; 0032 }; 0033 0034 MyMoneyCostCenter::MyMoneyCostCenter() : 0035 MyMoneyObject(*new MyMoneyCostCenterPrivate) 0036 { 0037 } 0038 0039 MyMoneyCostCenter::MyMoneyCostCenter(const QString &id) : 0040 MyMoneyObject(*new MyMoneyCostCenterPrivate, id) 0041 { 0042 } 0043 0044 MyMoneyCostCenter::MyMoneyCostCenter(const MyMoneyCostCenter& other) : 0045 MyMoneyObject(*new MyMoneyCostCenterPrivate(*other.d_func()), other.id()) 0046 { 0047 } 0048 0049 MyMoneyCostCenter::MyMoneyCostCenter(const QString& id, const MyMoneyCostCenter& other) : 0050 MyMoneyObject(*new MyMoneyCostCenterPrivate(*other.d_func()), id) 0051 { 0052 } 0053 0054 MyMoneyCostCenter::~MyMoneyCostCenter() 0055 { 0056 } 0057 0058 bool MyMoneyCostCenter::operator == (const MyMoneyCostCenter& right) const 0059 { 0060 Q_D(const MyMoneyCostCenter); 0061 auto d2 = static_cast<const MyMoneyCostCenterPrivate *>(right.d_func()); 0062 return (MyMoneyObject::operator==(right) && 0063 ((d->m_name.length() == 0 && d2->m_name.length() == 0) || (d->m_name == d2->m_name))); 0064 } 0065 0066 bool MyMoneyCostCenter::operator < (const MyMoneyCostCenter& right) const 0067 { 0068 Q_D(const MyMoneyCostCenter); 0069 auto d2 = static_cast<const MyMoneyCostCenterPrivate *>(right.d_func()); 0070 QCollator col; 0071 return col.compare(d->m_name, d2->m_name); 0072 } 0073 0074 QString MyMoneyCostCenter::name() const 0075 { 0076 Q_D(const MyMoneyCostCenter); 0077 return d->m_name; 0078 } 0079 0080 void MyMoneyCostCenter::setName(const QString& val) 0081 { 0082 Q_D(MyMoneyCostCenter); 0083 d->m_name = val; 0084 } 0085 0086 0087 QString MyMoneyCostCenter::shortName() const 0088 { 0089 Q_D(const MyMoneyCostCenter); 0090 static const QRegularExpression shortNumberExp("^(\\d+)\\s.+"); 0091 const auto shortNumber(shortNumberExp.match(d->m_name)); 0092 if (shortNumber.hasMatch()) { 0093 return shortNumber.captured(1); 0094 } 0095 return d->m_name; 0096 }