File indexing completed on 2024-05-19 05:08:15

0001 /*
0002     SPDX-FileCopyrightText: 2007-2019 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 "kmymoneyviewbase.h"
0020 
0021 class MyMoneyMoney;
0022 class MyMoneyAccount;
0023 class MyMoneyObject;
0024 class SelectedObjects;
0025 
0026 namespace eMenu {
0027 enum class Action;
0028 }
0029 namespace KMyMoneyPlugin {
0030 class OnlinePlugin;
0031 }
0032 
0033 template <class Key, class Value> class QMap;
0034 
0035 /**
0036   * This class implements the accounts hierarchical and iconic 'view'.
0037   */
0038 
0039 class KAccountsViewPrivate;
0040 class KAccountsView : public KMyMoneyViewBase
0041 {
0042     Q_OBJECT
0043 
0044 public:
0045     explicit KAccountsView(QWidget *parent = nullptr);
0046     ~KAccountsView();
0047 
0048     void executeCustomAction(eView::Action action) override;
0049     void refresh();
0050 
0051 public Q_SLOTS:
0052     void slotNetWorthChanged(const MyMoneyMoney &netWorth, bool isApproximate);
0053 
0054     void slotSettingsChanged() override;
0055     void updateActions(const SelectedObjects& selections) override;
0056 
0057     virtual void setOnlinePlugins(QMap<QString, KMyMoneyPlugin::OnlinePlugin*>* plugins) override;
0058 
0059 private:
0060     Q_DECLARE_PRIVATE(KAccountsView)
0061 
0062 private Q_SLOTS:
0063     void slotUnusedIncomeExpenseAccountHidden();
0064     void slotNewAccount();
0065     void slotEditAccount();
0066     void slotDeleteAccount();
0067     void slotNewCategory();
0068     void slotNewPayee(const QString& nameBase, QString& id);
0069     void slotAccountMapOnline();
0070     void slotAccountUnmapOnline();
0071     void slotAccountUpdateOnline();
0072     void slotAccountUpdateOnlineAll();
0073 
0074 Q_SIGNALS:
0075     void beginImportingStatements();
0076     void endImportingStatements();
0077 };
0078 
0079 #endif