File indexing completed on 2024-05-19 05:07:24

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