diff options
| author | Ilya Kitaev <mbg033@gmail.com> | 2016-10-07 00:47:28 +0300 |
|---|---|---|
| committer | Ilya Kitaev <mbg033@gmail.com> | 2016-10-10 00:19:13 +0300 |
| commit | 0498c3ba64ace2bd8898a5d0ba3107a2f024c692 (patch) | |
| tree | beb2d8e596eb5632ebcd1efcabcfdf75a299774b /src/libwalletqt/TransactionHistory.cpp | |
| parent | defc2a414abe6df837682d1472db0272f0b55eca (diff) | |
| download | monzero-gui-0498c3ba64ace2bd8898a5d0ba3107a2f024c692.tar.gz monzero-gui-0498c3ba64ace2bd8898a5d0ba3107a2f024c692.tar.xz monzero-gui-0498c3ba64ace2bd8898a5d0ba3107a2f024c692.zip | |
Transaction history is not crashing and refreshing properly
Diffstat (limited to 'src/libwalletqt/TransactionHistory.cpp')
| -rw-r--r-- | src/libwalletqt/TransactionHistory.cpp | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/libwalletqt/TransactionHistory.cpp b/src/libwalletqt/TransactionHistory.cpp index 8f52f07e..e94816f2 100644 --- a/src/libwalletqt/TransactionHistory.cpp +++ b/src/libwalletqt/TransactionHistory.cpp @@ -7,54 +7,53 @@ TransactionInfo *TransactionHistory::transaction(int index) { - // box up Bitmonero::TransactionInfo - Bitmonero::TransactionInfo * impl = m_pimpl->transaction(index); - if (!impl) { + + if (index < 0 || index >= m_tinfo.size()) { qCritical("%s: no transaction info for index %d", __FUNCTION__, index); qCritical("%s: there's %d transactions in backend", __FUNCTION__, m_pimpl->count()); return nullptr; } - TransactionInfo * result = new TransactionInfo(impl, this); - return result; + return m_tinfo.at(index); } -TransactionInfo *TransactionHistory::transaction(const QString &id) -{ - // box up Bitmonero::TransactionInfo - Bitmonero::TransactionInfo * impl = m_pimpl->transaction(id.toStdString()); - TransactionInfo * result = new TransactionInfo(impl, this); - return result; -} +//// XXX: not sure if this method really needed; +//TransactionInfo *TransactionHistory::transaction(const QString &id) +//{ +// return nullptr; +//} QList<TransactionInfo *> TransactionHistory::getAll() const { + // XXX this invalidates previously saved history that might be used by model + emit refreshStarted(); qDeleteAll(m_tinfo); m_tinfo.clear(); TransactionHistory * parent = const_cast<TransactionHistory*>(this); for (const auto i : m_pimpl->getAll()) { TransactionInfo * ti = new TransactionInfo(i, parent); + qDebug() << ti->hash(); m_tinfo.append(ti); } + emit refreshFinished(); return m_tinfo; } void TransactionHistory::refresh() { - // XXX this invalidates previously saved history that might be used by clients - - emit refreshStarted(); + // rebuilding transaction list in wallet_api; m_pimpl->refresh(); - emit refreshFinished(); + // copying list here and keep track on every item to avoid memleaks + getAll(); } quint64 TransactionHistory::count() const { - return m_pimpl->count(); + return m_tinfo.count(); } TransactionHistory::TransactionHistory(Bitmonero::TransactionHistory *pimpl, QObject *parent) : QObject(parent), m_pimpl(pimpl) { - + // this->refresh(); } |
