File indexing completed on 2024-05-12 16:42:34
0001 /* 0002 SPDX-FileCopyrightText: 2000-2001 Michael Edwardes <mte@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2017 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef MYMONEYCATEGORY_H 0008 #define MYMONEYCATEGORY_H 0009 0010 // ---------------------------------------------------------------------------- 0011 // QT Includes 0012 0013 #include <qglobal.h> 0014 0015 class QString; 0016 class QStringList; 0017 0018 /** 0019 * @deprecated This class represents an Income or Expense category. Please don't 0020 * use it anymore, as it will be removed sooner or later. 0021 */ 0022 class MyMoneyCategoryPrivate; 0023 class MyMoneyCategory 0024 { 0025 Q_DECLARE_PRIVATE(MyMoneyCategory) 0026 MyMoneyCategoryPrivate * d_ptr; 0027 0028 friend QDataStream &operator<<(QDataStream &, MyMoneyCategory &); 0029 friend QDataStream &operator>>(QDataStream &, MyMoneyCategory &); 0030 0031 public: 0032 MyMoneyCategory(); 0033 explicit MyMoneyCategory(const bool income, const QString& name); 0034 explicit MyMoneyCategory(const bool income, const QString& name, QStringList minors); 0035 MyMoneyCategory(const MyMoneyCategory & other); 0036 MyMoneyCategory(MyMoneyCategory && other); 0037 MyMoneyCategory & operator=(MyMoneyCategory other); 0038 friend void swap(MyMoneyCategory& first, MyMoneyCategory& second); 0039 ~MyMoneyCategory(); 0040 0041 // Simple get operations 0042 QString name() const; 0043 QStringList& minorCategories(); 0044 0045 // Simple set operations 0046 bool isIncome() const; 0047 void setIncome(const bool val); 0048 void setName(const QString& val); 0049 0050 bool setMinorCategories(QStringList values); 0051 bool addMinorCategory(const QString& val); 0052 bool removeMinorCategory(const QString& val); 0053 bool renameMinorCategory(const QString& oldVal, const QString& newVal); 0054 bool addMinorCategory(QStringList values); 0055 bool removeAllMinors(); 0056 QString firstMinor(); 0057 0058 void clear(); 0059 }; 0060 0061 inline void swap(MyMoneyCategory& first, MyMoneyCategory& second) // krazy:exclude=inline 0062 { 0063 using std::swap; 0064 swap(first.d_ptr, second.d_ptr); 0065 } 0066 0067 inline MyMoneyCategory::MyMoneyCategory(MyMoneyCategory && other) : MyMoneyCategory() // krazy:exclude=inline 0068 { 0069 swap(*this, other); 0070 } 0071 0072 inline MyMoneyCategory & MyMoneyCategory::operator=(MyMoneyCategory other) // krazy:exclude=inline 0073 { 0074 swap(*this, other); 0075 return *this; 0076 } 0077 0078 #endif