File indexing completed on 2024-05-12 16:42:41

0001 /*
0002     SPDX-FileCopyrightText: 2012 Alessandro Russo <axela74@yahoo.it>
0003     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "mymoneytag.h"
0008 #include "mymoneytag_p.h"
0009 
0010 // ----------------------------------------------------------------------------
0011 // QT Includes
0012 
0013 // ----------------------------------------------------------------------------
0014 // Project Includes
0015 
0016 #include "mymoneyexception.h"
0017 
0018 MyMoneyTag MyMoneyTag::null;
0019 
0020 MyMoneyTag::MyMoneyTag() :
0021     MyMoneyObject(*new MyMoneyTagPrivate)
0022 {
0023 }
0024 
0025 MyMoneyTag::MyMoneyTag(const QString &id) :
0026     MyMoneyObject(*new MyMoneyTagPrivate, id)
0027 {
0028 }
0029 
0030 MyMoneyTag::MyMoneyTag(const QString& name, const QColor& tagColor) :
0031     MyMoneyObject(*new MyMoneyTagPrivate)
0032 {
0033     Q_D(MyMoneyTag);
0034     d->m_name      = name;
0035     d->m_tag_color = tagColor;
0036 }
0037 
0038 MyMoneyTag::MyMoneyTag(const MyMoneyTag& other) :
0039     MyMoneyObject(*new MyMoneyTagPrivate(*other.d_func()), other.id())
0040 {
0041 }
0042 
0043 MyMoneyTag::MyMoneyTag(const QString& id, const MyMoneyTag& other) :
0044     MyMoneyObject(*new MyMoneyTagPrivate(*other.d_func()), id)
0045 {
0046 }
0047 
0048 MyMoneyTag::~MyMoneyTag()
0049 {
0050 }
0051 
0052 QString MyMoneyTag::name() const
0053 {
0054     Q_D(const MyMoneyTag);
0055     return d->m_name;
0056 }
0057 
0058 void MyMoneyTag::setName(const QString& val)
0059 {
0060     Q_D(MyMoneyTag);
0061     d->m_name = val;
0062 }
0063 
0064 bool MyMoneyTag::isClosed() const
0065 {
0066     Q_D(const MyMoneyTag);
0067     return d->m_closed;
0068 }
0069 
0070 void MyMoneyTag::setClosed(bool val)
0071 {
0072     Q_D(MyMoneyTag);
0073     d->m_closed = val;
0074 }
0075 
0076 QColor MyMoneyTag::tagColor() const
0077 {
0078     Q_D(const MyMoneyTag);
0079     return d->m_tag_color;
0080 }
0081 
0082 void MyMoneyTag::setTagColor(const QColor& val)
0083 {
0084     Q_D(MyMoneyTag);
0085     d->m_tag_color = val;
0086 }
0087 
0088 void MyMoneyTag::setNamedTagColor(const QString &val)
0089 {
0090     Q_D(MyMoneyTag);
0091     d->m_tag_color.setNamedColor(val);
0092 }
0093 
0094 QString MyMoneyTag::notes() const
0095 {
0096     Q_D(const MyMoneyTag);
0097     return d->m_notes;
0098 }
0099 
0100 void MyMoneyTag::setNotes(const QString& val)
0101 {
0102     Q_D(MyMoneyTag);
0103     d->m_notes = val;
0104 }
0105 
0106 bool MyMoneyTag::operator == (const MyMoneyTag& right) const
0107 {
0108     Q_D(const MyMoneyTag);
0109     auto d2 = static_cast<const MyMoneyTagPrivate *>(right.d_func());
0110     return (MyMoneyObject::operator==(right) //
0111             && ((d->m_name.length() == 0 && d2->m_name.length() == 0) || (d->m_name == d2->m_name)) &&
0112             ((d->m_tag_color.isValid() == false && d2->m_tag_color.isValid() == false) || (d->m_tag_color.name() == d2->m_tag_color.name())) &&
0113             (d->m_closed == d2->m_closed));
0114 }
0115 
0116 bool MyMoneyTag::operator < (const MyMoneyTag& right) const
0117 {
0118     Q_D(const MyMoneyTag);
0119     auto d2 = static_cast<const MyMoneyTagPrivate *>(right.d_func());
0120     return d->m_name < d2->m_name;
0121 }
0122 
0123 bool MyMoneyTag::hasReferenceTo(const QString& /*id*/) const
0124 {
0125     return false;
0126 }