From 189be63638918146bad0ced7d44b10449e180e5a Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon Date: Tue, 24 Mar 2020 13:17:23 +0100 Subject: [PATCH] Finishing a basic logger --- sources/Debugger/MemoryBusDebug.cpp | 14 ++++++++------ sources/Debugger/MemoryBusDebug.hpp | 4 +++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sources/Debugger/MemoryBusDebug.cpp b/sources/Debugger/MemoryBusDebug.cpp index 886c694..33a3b89 100644 --- a/sources/Debugger/MemoryBusDebug.cpp +++ b/sources/Debugger/MemoryBusDebug.cpp @@ -68,8 +68,8 @@ namespace ComSquare::Debugger MemoryBus::write(addr, data); } - BusLog::BusLog(bool write, uint24_t addr, std::shared_ptr &accessor, uint8_t oldData, uint8_t newData) : - write(write), addr(addr), accessor(accessor), oldData(oldData), newData(newData) + BusLog::BusLog(bool _write, uint24_t _addr, std::shared_ptr &_accessor, uint8_t _oldData, uint8_t _newData) : + write(_write), addr(_addr), accessor(std::move(_accessor)), oldData(_oldData), newData(_newData) {} } @@ -80,7 +80,7 @@ int BusLogModel::rowCount(const QModelIndex &) const int BusLogModel::columnCount(const QModelIndex &) const { - return 5; + return this->_columnCount; } QVariant BusLogModel::data(const QModelIndex &index, int role) const @@ -96,9 +96,9 @@ QVariant BusLogModel::data(const QModelIndex &index, int role) const case 1: return QString(ComSquare::Utility::to_hex(log.addr).c_str()); case 2: - return QString(log.accessor->getName().c_str()); + return QString(log.accessor ? log.accessor->getName().c_str() : "Bus"); case 3: - return QString(log.accessor->getValueName(log.addr - log.accessor->getStart()).c_str()); + return QString(log.accessor ? log.accessor->getValueName(log.addr - log.accessor->getStart()).c_str() : "Open bus"); case 4: return QString(ComSquare::Utility::to_hex(log.oldData).c_str()); case 5: @@ -133,6 +133,8 @@ QVariant BusLogModel::headerData(int section, Qt::Orientation orientation, int r void BusLogModel::log(ComSquare::Debugger::BusLog log) { this->_logs.push_back(log); - this->insertRow(this->_logs.size()); + int row = this->_logs.size(); + this->insertRow(row); + emit this->layoutChanged(); // The row may be inserted but items are not displayed. } diff --git a/sources/Debugger/MemoryBusDebug.hpp b/sources/Debugger/MemoryBusDebug.hpp index 8146c0e..9c2dc9e 100644 --- a/sources/Debugger/MemoryBusDebug.hpp +++ b/sources/Debugger/MemoryBusDebug.hpp @@ -18,7 +18,7 @@ namespace ComSquare::Debugger bool write; uint24_t addr; - std::shared_ptr &accessor; + std::shared_ptr accessor; uint8_t oldData; uint8_t newData; }; @@ -32,6 +32,8 @@ Q_OBJECT private: //! @brief The logs to display. std::vector _logs; + //! @brief The number of column; + const int _columnCount = 6; public: BusLogModel() = default; BusLogModel(const BusLogModel &) = delete;