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

0001 /*
0002     SPDX-FileCopyrightText: 2007 Thomas Baumgart <ipwizard@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2017, 2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KACCOUNTSVIEW_H
0008 #define KACCOUNTSVIEW_H
0009 
0010 // ----------------------------------------------------------------------------
0011 // QT Includes
0012 
0013 // ----------------------------------------------------------------------------
0014 // KDE Includes
0015 
0016 // ----------------------------------------------------------------------------
0017 // Project Includes
0018 
0019 #include "kmymoneyaccountsviewbase.h"
0020 
0021 class MyMoneyMoney;
0022 class MyMoneyAccount;
0023 class MyMoneyObject;
0024 
0025 namespace eMenu {
0026 enum class Action;
0027 }
0028 namespace KMyMoneyPlugin {
0029 class OnlinePlugin;
0030 }
0031 
0032 template <class Key, class Value> class QMap;
0033 
0034 /**
0035   * This class implements the accounts hierarchical and iconic 'view'.
0036   */
0037 
0038 class KAccountsViewPrivate;
0039 class KAccountsView : public KMyMoneyAccountsViewBase
0040 {
0041     Q_OBJECT
0042 
0043 public:
0044     explicit KAccountsView(QWidget *parent = nullptr);
0045     ~KAccountsView();
0046 
0047     void executeCustomAction(eView::Action action) override;
0048     void refresh();
0049     void updateActions(const MyMoneyObject &obj);
0050 
0051 public Q_SLOTS:
0052     void slotNetWorthChanged(const MyMoneyMoney &);
0053     void slotShowAccountMenu(const MyMoneyAccount& acc);
0054 
0055     void slotSelectByObject(const MyMoneyObject& obj, eView::Intent intent) override;
0056     void slotSelectByVariant(const QVariantList& variant, eView::Intent intent) override;
0057 
0058 protected:
0059     void showEvent(QShowEvent * event) override;
0060 
0061 private:
0062     Q_DECLARE_PRIVATE(KAccountsView)
0063 
0064 private Q_SLOTS:
0065     void slotUnusedIncomeExpenseAccountHidden();
0066     void slotNewAccount();
0067     void slotEditAccount();
0068     void slotDeleteAccount();
0069     void slotCloseAccount();
0070     void slotReopenAccount();
0071     void slotChartAccountBalance();
0072     void slotNewCategory();
0073     void slotNewPayee(const QString& nameBase, QString& id);
0074     void slotAccountMapOnline();
0075     void slotAccountUnmapOnline();
0076     void slotAccountUpdateOnline();
0077     void slotAccountUpdateOnlineAll();
0078 };
0079 
0080 #endif