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

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 // ----------------------------------------------------------------------------
0013 // QT Includes
0014 
0015 #include <QDialog>
0016 
0017 // ----------------------------------------------------------------------------
0018 // KDE Includes
0019 
0020 // ----------------------------------------------------------------------------
0021 // Project Includes
0022 
0023 class MyMoneySecurity;
0024 class MyMoneyStatement;
0025 class MyMoneyPrice;
0026 
0027 typedef QPair<QString, QString> MyMoneySecurityPair;
0028 typedef QMap<QDate, MyMoneyPrice> MyMoneyPriceEntries;
0029 typedef QMap<MyMoneySecurityPair, MyMoneyPriceEntries> MyMoneyPriceList;
0030 
0031 /**
0032   * @author Kevin Tambascio & Ace Jones
0033   */
0034 
0035 class KEquityPriceUpdateDlgPrivate;
0036 class KEquityPriceUpdateDlg : public QDialog
0037 {
0038     Q_OBJECT
0039     Q_DISABLE_COPY(KEquityPriceUpdateDlg)
0040 
0041 public:
0042     explicit KEquityPriceUpdateDlg(QWidget *parent, const QString& securityId = QString());
0043     ~KEquityPriceUpdateDlg();
0044     void storePrices();
0045     MyMoneyPrice price(const QString& id) const;
0046 
0047 protected Q_SLOTS:
0048     void slotConfigureClicked();
0049     void slotUpdateSelectedClicked();
0050     void slotUpdateAllClicked();
0051     void slotUpdateSelection();
0052     void slotDateChanged();
0053 
0054     void logStatusMessage(const QString&);
0055     void logErrorMessage(const QString&);
0056     void slotReceivedCSVQuote(const QString& _kmmID, const QString& _webID, MyMoneyStatement& st);
0057     void slotReceivedQuote(const QString& _kmmID, const QString& _webID, const QDate&, const double&);
0058     void slotQuoteFailed(const QString& _kmmID, const QString& _webID);
0059 
0060 protected:
0061     void addInvestment(const MyMoneySecurity& inv);
0062     void finishUpdate();
0063 
0064 private:
0065     KEquityPriceUpdateDlgPrivate * const d_ptr;
0066     Q_DECLARE_PRIVATE(KEquityPriceUpdateDlg)
0067 
0068 };
0069 
0070 #endif // KEQUITYPRICEUPDATEDLG_H