File indexing completed on 2024-05-19 05:06:51

0001 /*
0002     SPDX-FileCopyrightText: 2005-2009 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "kmymoneyfileinfodlg.h"
0008 
0009 // ----------------------------------------------------------------------------
0010 // QT Includes
0011 
0012 #include <QLabel>
0013 #include <QList>
0014 #include <QDate>
0015 
0016 // ----------------------------------------------------------------------------
0017 // KDE Includes
0018 
0019 // ----------------------------------------------------------------------------
0020 // Project Includes
0021 
0022 #include "ui_kmymoneyfileinfodlg.h"
0023 
0024 #include "mymoneyfile.h"
0025 #include "mymoneyaccount.h"
0026 #include "mymoneyprice.h"
0027 #include "mymoneysecurity.h"
0028 #include "mymoneyenums.h"
0029 #include "pricemodel.h"
0030 #include "parametersmodel.h"
0031 #include "payeesmodel.h"
0032 #include "institutionsmodel.h"
0033 #include "journalmodel.h"
0034 #include "schedulesmodel.h"
0035 
0036 KMyMoneyFileInfoDlg::KMyMoneyFileInfoDlg(QWidget *parent) :
0037     QDialog(parent),
0038     ui(new Ui::KMyMoneyFileInfoDlg)
0039 {
0040     ui->setupUi(this);
0041     // Now fill the fields with data
0042 
0043     const auto file = MyMoneyFile::instance();
0044     ui->m_creationDate->setText(file->parametersModel()->itemById(file->fixedKey(MyMoneyFile::CreationDate)).value());
0045     ui->m_lastModificationDate->setText(file->parametersModel()->itemById(file->fixedKey(MyMoneyFile::LastModificationDate)).value());
0046     ui->m_baseCurrency->setText(file->baseCurrency().name());
0047 
0048     ui->m_payeeCount->setText(QString::fromLatin1("%1").arg(file->payeesModel()->rowCount()));
0049     ui->m_institutionCount->setText(QString::fromLatin1("%1").arg(file->institutionsModel()->rowCount()));
0050 
0051     QList<MyMoneyAccount> a_list = file->accountsModel()->itemList();
0052     ui->m_accountCount->setText(QString::fromLatin1("%1").arg(a_list.count()));
0053 
0054     QMap<eMyMoney::Account::Type, int> accountMap;
0055     QMap<eMyMoney::Account::Type, int> accountMapClosed;
0056     QList<MyMoneyAccount>::const_iterator it_a;
0057     for (it_a = a_list.constBegin(); it_a != a_list.constEnd(); ++it_a) {
0058         accountMap[(*it_a).accountType()] = accountMap[(*it_a).accountType()] + 1;
0059         accountMapClosed[(*it_a).accountType()] = accountMapClosed[(*it_a).accountType()] + 0;
0060         if ((*it_a).isClosed())
0061             accountMapClosed[(*it_a).accountType()] = accountMapClosed[(*it_a).accountType()] + 1;
0062     }
0063 
0064     QMap<eMyMoney::Account::Type, int>::const_iterator it_m;
0065     for (it_m = accountMap.constBegin(); it_m != accountMap.constEnd(); ++it_m) {
0066         QTreeWidgetItem *item = new QTreeWidgetItem();
0067         item->setText(0, MyMoneyAccount::accountTypeToString(it_m.key()));
0068         item->setText(1, QString::fromLatin1("%1").arg(*it_m));
0069         item->setText(2, QString::fromLatin1("%1").arg(accountMapClosed[it_m.key()]));
0070         ui->m_accountView->invisibleRootItem()->addChild(item);
0071     }
0072 
0073     ui->m_transactionCount->setText(QString::fromLatin1("%1").arg(file->journalModel()->transactionCount(QString())));
0074     ui->m_splitCount->setText(QString::fromLatin1("%1").arg(file->journalModel()->rowCount()));
0075     ui->m_scheduleCount->setText(QString::fromLatin1("%1").arg(file->scheduleList().count()));
0076     ui->m_priceCount->setText(QString::fromLatin1("%1").arg(file->priceModel()->rowCount()));
0077 }
0078 
0079 KMyMoneyFileInfoDlg::~KMyMoneyFileInfoDlg()
0080 {
0081     delete ui;
0082 }