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;