File indexing completed on 2024-05-19 05:08:15
0001 /* 0002 SPDX-FileCopyrightText: 2000-2002 Michael Edwardes <mte@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2000-2002 Javier Campos Morales <javi_c@users.sourceforge.net> 0004 SPDX-FileCopyrightText: 2000-2002 Felix Rodriguez <frodriguez@users.sourceforge.net> 0005 SPDX-FileCopyrightText: 2000-2002 John C <thetacoturtle@users.sourceforge.net> 0006 SPDX-FileCopyrightText: 2000-2002 Thomas Baumgart <ipwizard@users.sourceforge.net> 0007 SPDX-FileCopyrightText: 2000-2002 Kevin Tambascio <ktambascio@users.sourceforge.net> 0008 SPDX-FileCopyrightText: 2017 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0009 SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 0012 #ifndef KCATEGORIESVIEW_P_H 0013 #define KCATEGORIESVIEW_P_H 0014 0015 #include "kcategoriesview.h" 0016 0017 // ---------------------------------------------------------------------------- 0018 // QT Includes 0019 0020 // ---------------------------------------------------------------------------- 0021 // KDE Includes 0022 0023 // ---------------------------------------------------------------------------- 0024 // Project Includes 0025 0026 #include "ui_kcategoriesview.h" 0027 #include "kmymoneyviewbase_p.h" 0028 #include "accountsproxymodel.h" 0029 #include "mymoneyaccount.h" 0030 #include "icons.h" 0031 #include "columnselector.h" 0032 0033 using namespace Icons; 0034 0035 class KCategoriesViewPrivate : public KMyMoneyViewBasePrivate 0036 { 0037 Q_DECLARE_PUBLIC(KCategoriesView) 0038 0039 public: 0040 explicit KCategoriesViewPrivate(KCategoriesView *qq) 0041 : KMyMoneyViewBasePrivate(qq) 0042 , ui(new Ui::KCategoriesView) 0043 , m_haveUnusedCategories(false) 0044 , m_proxyModel(nullptr) 0045 { 0046 } 0047 0048 ~KCategoriesViewPrivate() 0049 { 0050 delete ui; 0051 } 0052 0053 void init() 0054 { 0055 Q_Q(KCategoriesView); 0056 ui->setupUi(q); 0057 0058 // setup icons for collapse and expand button 0059 ui->m_collapseButton->setIcon(Icons::get(Icon::ListCollapse)); 0060 ui->m_expandButton->setIcon(Icons::get(Icon::ListExpand)); 0061 0062 // setup filter 0063 m_proxyModel = ui->m_accountTree->proxyModel(); 0064 q->connect(ui->m_searchWidget, &QLineEdit::textChanged, m_proxyModel, &QSortFilterProxyModel::setFilterFixedString); 0065 0066 auto columnSelector = new ColumnSelector(ui->m_accountTree, q->metaObject()->className()); 0067 columnSelector->setAlwaysVisible(QVector<int>({ AccountsModel::Column::AccountName })); 0068 columnSelector->setAlwaysHidden(QVector<int>({ 0069 AccountsModel::Column::PostedValue, 0070 AccountsModel::Column::Iban, 0071 AccountsModel::Column::Bic, 0072 AccountsModel::Column::BankCode, 0073 AccountsModel::Column::Number, 0074 AccountsModel::Column::HasOnlineMapping, 0075 })); 0076 0077 ui->m_accountTree->setModel(MyMoneyFile::instance()->accountsModel()); 0078 m_proxyModel->addAccountGroup(AccountsProxyModel::incomeExpense()); 0079 m_proxyModel->setFilterComboBox(ui->m_filterBox); 0080 0081 columnSelector->setModel(m_proxyModel); 0082 q->slotSettingsChanged(); 0083 0084 q->connect(ui->m_accountTree, &KMyMoneyAccountTreeView::requestCustomContextMenu, q, &KCategoriesView::requestCustomContextMenu); 0085 q->connect(ui->m_accountTree, &KMyMoneyAccountTreeView::requestSelectionChange, q, &KCategoriesView::requestSelectionChange); 0086 q->connect(ui->m_accountTree, &KMyMoneyAccountTreeView::requestActionTrigger, q, &KCategoriesView::requestActionTrigger); 0087 0088 m_focusWidget = ui->m_accountTree; 0089 } 0090 0091 Ui::KCategoriesView *ui; 0092 bool m_haveUnusedCategories; 0093 MyMoneyAccount m_currentCategory; 0094 AccountsProxyModel* m_proxyModel; 0095 }; 0096 0097 #endif