Changeset View
Changeset View
Standalone View
Standalone View
kmymoney/dialogs/investactivities.h
Context not available. | |||||
4 | begin : Fri Dec 15 2006 | 4 | begin : Fri Dec 15 2006 | ||
---|---|---|---|---|---|
5 | copyright : (C) 2006 by Thomas Baumgart | 5 | copyright : (C) 2006 by Thomas Baumgart | ||
6 | email : Thomas Baumgart <ipwizard@users.sourceforge.net> | 6 | email : Thomas Baumgart <ipwizard@users.sourceforge.net> | ||
7 | (C) 2017 by Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> | ||||
7 | ***************************************************************************/ | 8 | ***************************************************************************/ | ||
8 | 9 | | |||
9 | /*************************************************************************** | 10 | /*************************************************************************** | ||
Context not available. | |||||
21 | // ---------------------------------------------------------------------------- | 22 | // ---------------------------------------------------------------------------- | ||
22 | // QT Includes | 23 | // QT Includes | ||
23 | 24 | | |||
24 | #include <QList> | 25 | #include <qglobal.h> | ||
25 | 26 | | |||
26 | // ---------------------------------------------------------------------------- | 27 | // ---------------------------------------------------------------------------- | ||
27 | // KDE Includes | 28 | // KDE Includes | ||
Context not available. | |||||
29 | // ---------------------------------------------------------------------------- | 30 | // ---------------------------------------------------------------------------- | ||
30 | // Project Includes | 31 | // Project Includes | ||
31 | 32 | | |||
32 | #include "investtransactioneditor.h" | 33 | class QWidget; | ||
34 | class QStringList; | ||||
33 | 35 | | |||
34 | class kMyMoneyEdit; | 36 | class kMyMoneyEdit; | ||
37 | class KMyMoneyCategory; | ||||
38 | | ||||
39 | class MyMoneyMoney; | ||||
40 | class MyMoneySplit; | ||||
41 | class MyMoneyTransaction; | ||||
42 | class MyMoneySecurity; | ||||
43 | | ||||
44 | class InvestTransactionEditor; | ||||
45 | | ||||
46 | namespace eMyMoney { namespace Split { enum class InvestmentTransactionType; } } | ||||
47 | namespace eDialogs { enum class PriceMode; } | ||||
48 | | ||||
49 | template <typename T> class QList; | ||||
50 | template <class Key, class Value> class QMap; | ||||
35 | 51 | | |||
36 | namespace Invest | 52 | namespace Invest | ||
37 | { | 53 | { | ||
38 | 54 | | |||
55 | class ActivityPrivate; | ||||
39 | class Activity | 56 | class Activity | ||
40 | { | 57 | { | ||
58 | Q_DISABLE_COPY(Activity) | ||||
59 | | ||||
41 | public: | 60 | public: | ||
42 | virtual eMyMoney::Split::InvestmentTransactionType type() const = 0; | 61 | virtual eMyMoney::Split::InvestmentTransactionType type() const = 0; | ||
43 | virtual void showWidgets() const = 0; | 62 | virtual void showWidgets() const = 0; | ||
Context not available. | |||||
54 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) = 0; | 73 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) = 0; | ||
55 | 74 | | |||
56 | virtual void preloadAssetAccount(); | 75 | virtual void preloadAssetAccount(); | ||
57 | virtual ~Activity() {} | 76 | virtual ~Activity(); | ||
58 | bool m_memoChanged; | 77 | | ||
59 | QString m_memoText; | 78 | bool &memoChanged(); | ||
79 | QString& memoText(); | ||||
60 | 80 | | |||
61 | protected: | 81 | protected: | ||
62 | Activity(InvestTransactionEditor* editor) : m_memoChanged(false) { | 82 | explicit Activity(InvestTransactionEditor* editor); | ||
63 | m_parent = editor; | 83 | QWidget* haveWidget(const QString& name) const; | ||
64 | } | | |||
65 | QWidget* haveWidget(const QString& name) const { | | |||
66 | return m_parent->haveWidget(name); | | |||
67 | } | | |||
68 | bool haveAssetAccount() const; | 84 | bool haveAssetAccount() const; | ||
69 | bool haveFees(bool optional = false) const { | 85 | bool haveFees(bool optional = false) const; | ||
70 | return haveCategoryAndAmount("fee-account", "fee-amount", optional); | 86 | bool haveInterest(bool optional = false) const; | ||
71 | } | | |||
72 | bool haveInterest(bool optional = false) const { | | |||
73 | return haveCategoryAndAmount("interest-account", "interest-amount", optional); | | |||
74 | } | | |||
75 | bool haveShares() const; | 87 | bool haveShares() const; | ||
76 | bool havePrice() const; | 88 | bool havePrice() const; | ||
77 | bool isMultiSelection() const { | 89 | bool isMultiSelection() const; | ||
78 | return m_parent->isMultiSelection(); | | |||
79 | } | | |||
80 | QString priceLabel() const; | 90 | QString priceLabel() const; | ||
81 | bool createCategorySplits(const MyMoneyTransaction& t, KMyMoneyCategory* cat, kMyMoneyEdit* amount, MyMoneyMoney factor, QList<MyMoneySplit>&splits, const QList<MyMoneySplit>& osplits) const; | 91 | bool createCategorySplits(const MyMoneyTransaction& t, KMyMoneyCategory* cat, kMyMoneyEdit* amount, MyMoneyMoney factor, QList<MyMoneySplit>&splits, const QList<MyMoneySplit>& osplits) const; | ||
82 | void createAssetAccountSplit(MyMoneySplit& split, const MyMoneySplit& stockSplit) const; | 92 | void createAssetAccountSplit(MyMoneySplit& split, const MyMoneySplit& stockSplit) const; | ||
Context not available. | |||||
84 | bool haveCategoryAndAmount(const QString& category, const QString& amount, bool optional) const; | 94 | bool haveCategoryAndAmount(const QString& category, const QString& amount, bool optional) const; | ||
85 | void setLabelText(const QString& idx, const QString& txt) const; | 95 | void setLabelText(const QString& idx, const QString& txt) const; | ||
86 | void setWidgetVisibility(const QStringList& widgetIds, bool visible) const; | 96 | void setWidgetVisibility(const QStringList& widgetIds, bool visible) const; | ||
87 | InvestTransactionEditor::priceModeE priceMode() const { | 97 | eDialogs::PriceMode priceMode() const; | ||
88 | return m_parent->priceMode(); | | |||
89 | } | | |||
90 | 98 | | |||
91 | protected: | 99 | protected: | ||
92 | InvestTransactionEditor* m_parent; | 100 | ActivityPrivate* d_ptr; | ||
93 | QMap<QString, MyMoneyMoney> m_priceInfo; | 101 | Q_DECLARE_PRIVATE(Activity) | ||
94 | }; | 102 | }; | ||
95 | 103 | | |||
96 | class Buy : public Activity | 104 | class Buy : public Activity | ||
97 | { | 105 | { | ||
98 | public: | 106 | public: | ||
99 | Buy(InvestTransactionEditor* editor) : Activity(editor) {} | 107 | explicit Buy(InvestTransactionEditor* editor); | ||
100 | virtual ~Buy() {} | 108 | ~Buy() override; | ||
101 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 109 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
102 | return eMyMoney::Split::InvestmentTransactionType::BuyShares; | 110 | void showWidgets() const override; | ||
103 | } | 111 | bool isComplete(QString& reason) const override; | ||
104 | virtual void showWidgets() const; | 112 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
105 | virtual bool isComplete(QString& reason) const; | | |||
106 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
107 | }; | 113 | }; | ||
108 | 114 | | |||
109 | class Sell : public Activity | 115 | class Sell : public Activity | ||
110 | { | 116 | { | ||
111 | public: | 117 | public: | ||
112 | Sell(InvestTransactionEditor* editor) : Activity(editor) {} | 118 | explicit Sell(InvestTransactionEditor* editor); | ||
113 | virtual ~Sell() {} | 119 | ~Sell() override; | ||
114 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 120 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
115 | return eMyMoney::Split::InvestmentTransactionType::SellShares; | 121 | void showWidgets() const override; | ||
116 | } | 122 | bool isComplete(QString& reason) const override; | ||
117 | virtual void showWidgets() const; | 123 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
118 | virtual bool isComplete(QString& reason) const; | | |||
119 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
120 | }; | 124 | }; | ||
121 | 125 | | |||
122 | class Div : public Activity | 126 | class Div : public Activity | ||
123 | { | 127 | { | ||
124 | public: | 128 | public: | ||
125 | Div(InvestTransactionEditor* editor) : Activity(editor) {} | 129 | explicit Div(InvestTransactionEditor* editor); | ||
126 | virtual ~Div() {} | 130 | ~Div() override; | ||
127 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 131 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
128 | return eMyMoney::Split::InvestmentTransactionType::Dividend; | 132 | void showWidgets() const override; | ||
129 | } | 133 | bool isComplete(QString& reason) const override; | ||
130 | virtual void showWidgets() const; | 134 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
131 | virtual bool isComplete(QString& reason) const; | | |||
132 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
133 | }; | 135 | }; | ||
134 | 136 | | |||
135 | class Reinvest : public Activity | 137 | class Reinvest : public Activity | ||
136 | { | 138 | { | ||
137 | public: | 139 | public: | ||
138 | Reinvest(InvestTransactionEditor* editor) : Activity(editor) {} | 140 | explicit Reinvest(InvestTransactionEditor* editor); | ||
139 | virtual ~Reinvest() {} | 141 | ~Reinvest() override; | ||
140 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 142 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
141 | return eMyMoney::Split::InvestmentTransactionType::ReinvestDividend; | 143 | void showWidgets() const override; | ||
142 | } | 144 | bool isComplete(QString& reason) const override; | ||
143 | virtual void showWidgets() const; | 145 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
144 | virtual bool isComplete(QString& reason) const; | | |||
145 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
146 | }; | 146 | }; | ||
147 | 147 | | |||
148 | class Add : public Activity | 148 | class Add : public Activity | ||
149 | { | 149 | { | ||
150 | public: | 150 | public: | ||
151 | Add(InvestTransactionEditor* editor) : Activity(editor) {} | 151 | explicit Add(InvestTransactionEditor* editor); | ||
152 | virtual ~Add() {} | 152 | ~Add() override; | ||
153 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 153 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
154 | return eMyMoney::Split::InvestmentTransactionType::AddShares; | 154 | void showWidgets() const override; | ||
155 | } | 155 | bool isComplete(QString& reason) const override; | ||
156 | virtual void showWidgets() const; | 156 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
157 | virtual bool isComplete(QString& reason) const; | | |||
158 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
159 | }; | 157 | }; | ||
160 | 158 | | |||
161 | class Remove : public Activity | 159 | class Remove : public Activity | ||
162 | { | 160 | { | ||
163 | public: | 161 | public: | ||
164 | Remove(InvestTransactionEditor* editor) : Activity(editor) {} | 162 | explicit Remove(InvestTransactionEditor* editor); | ||
165 | virtual ~Remove() {} | 163 | ~Remove() override; | ||
166 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 164 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
167 | return eMyMoney::Split::InvestmentTransactionType::RemoveShares; | 165 | void showWidgets() const override; | ||
168 | } | 166 | bool isComplete(QString& reason) const override; | ||
169 | virtual void showWidgets() const; | 167 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
170 | virtual bool isComplete(QString& reason) const; | | |||
171 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
172 | }; | 168 | }; | ||
173 | 169 | | |||
174 | class Split : public Activity | 170 | class Split : public Activity | ||
175 | { | 171 | { | ||
176 | public: | 172 | public: | ||
177 | Split(InvestTransactionEditor* editor) : Activity(editor) {} | 173 | explicit Split(InvestTransactionEditor* editor); | ||
178 | virtual ~Split() {} | 174 | ~Split() override; | ||
179 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 175 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
180 | return eMyMoney::Split::InvestmentTransactionType::SplitShares; | 176 | void showWidgets() const override; | ||
181 | } | 177 | bool isComplete(QString& reason) const override; | ||
182 | virtual void showWidgets() const; | 178 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
183 | virtual bool isComplete(QString& reason) const; | | |||
184 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
185 | }; | 179 | }; | ||
186 | 180 | | |||
187 | class IntInc : public Activity | 181 | class IntInc : public Activity | ||
188 | { | 182 | { | ||
189 | public: | 183 | public: | ||
190 | IntInc(InvestTransactionEditor* editor) : Activity(editor) {} | 184 | explicit IntInc(InvestTransactionEditor* editor); | ||
191 | virtual ~IntInc() {} | 185 | ~IntInc() override; | ||
192 | virtual eMyMoney::Split::InvestmentTransactionType type() const { | 186 | eMyMoney::Split::InvestmentTransactionType type() const override; | ||
193 | return eMyMoney::Split::InvestmentTransactionType::InterestIncome; | 187 | void showWidgets() const override; | ||
194 | } | 188 | bool isComplete(QString& reason) const override; | ||
195 | virtual void showWidgets() const; | 189 | bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency) override; | ||
196 | virtual bool isComplete(QString& reason) const; | | |||
197 | virtual bool createTransaction(MyMoneyTransaction& t, MyMoneySplit& s0, MyMoneySplit& assetAccountSplit, QList<MyMoneySplit>& feeSplits, QList<MyMoneySplit>& m_feeSplits, QList<MyMoneySplit>& interestSplits, QList<MyMoneySplit>& m_interestSplits, MyMoneySecurity& security, MyMoneySecurity& currency); | | |||
198 | }; | 190 | }; | ||
199 | 191 | | |||
200 | } // namespace Invest | 192 | } // namespace Invest | ||
201 | 193 | | |||
202 | | ||||
203 | | ||||
204 | #endif // INVESTACTIVITIES_H | 194 | #endif // INVESTACTIVITIES_H | ||
205 | 195 | | |||
Context not available. |