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

0001 /*
0002     SPDX-FileCopyrightText: 2004-2017 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-FileCopyrightText: 2004 Kevin Tambascio <ktambascio@users.sourceforge.net>
0004     SPDX-FileCopyrightText: 2004-2006 Ace Jones <acejones@users.sourceforge.net>
0005     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #ifndef KEQUITYPRICEUPDATEDLG_H
0010 #define KEQUITYPRICEUPDATEDLG_H
0011 
0012 #include "kmm_extended_dialogs_export.h"
0013 
0014 // ----------------------------------------------------------------------------
0015 // QT Includes
0016 
0017 #include <QDialog>
0018 
0019 // ----------------------------------------------------------------------------
0020 // KDE Includes
0021 
0022 // ----------------------------------------------------------------------------
0023 // Project Includes
0024 
0025 class MyMoneySecurity;
0026 class MyMoneyStatement;
0027 class MyMoneyPrice;
0028 
0029 typedef QPair<QString, QString> MyMoneySecurityPair;
0030 typedef QMap<QDate, MyMoneyPrice> MyMoneyPriceEntries;
0031 typedef QMap<MyMoneySecurityPair, MyMoneyPriceEntries> MyMoneyPriceList;
0032 
0033 /**
0034   * @author Kevin Tambascio & Ace Jones
0035   */
0036 
0037 class KEquityPriceUpdateDlgPrivate;
0038 class KMM_EXTENDED_DIALOGS_EXPORT KEquityPriceUpdateDlg : public QDialog
0039 {
0040     Q_OBJECT
0041     Q_DISABLE_COPY(KEquityPriceUpdateDlg)
0042 
0043 public:
0044     explicit KEquityPriceUpdateDlg(QWidget *parent, const QString& securityId = QString());
0045     ~KEquityPriceUpdateDlg();
0046     void storePrices();
0047     MyMoneyPrice price(const QString& id) const;
0048 
0049 protected Q_SLOTS:
0050     void slotConfigureClicked();
0051     void slotUpdateSelectedClicked();
0052     void slotUpdateAllClicked();
0053     void slotUpdateSelection();
0054     void slotDateChanged();
0055 
0056     void logStatusMessage(const QString&);
0057     void logErrorMessage(const QString&);
0058     void slotReceivedCSVQuote(const QString& _kmmID, const QString& _webID, MyMoneyStatement& st);
0059     void slotReceivedQuote(const QString& _kmmID, const QString& _webID, const QDate&, const double&);
0060     void slotQuoteFailed(const QString& _kmmID, const QString& _webID);
0061 
0062 protected:
0063     void addInvestment(const MyMoneySecurity& inv);
0064     void finishUpdate();
0065 
0066 private:
0067     KEquityPriceUpdateDlgPrivate * const d_ptr;
0068     Q_DECLARE_PRIVATE(KEquityPriceUpdateDlg)
0069 
0070 };
0071 
0072 #endif // KEQUITYPRICEUPDATEDLG_H