2023-03-05 23:29:03 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
#include <QPixmap>
|
|
|
|
|
#include <optional>
|
|
|
|
|
|
|
|
|
|
#include "src/Insight/UserInterfaces/InsightWindow/Widgets/ListView/ListItem.hpp"
|
|
|
|
|
|
2024-03-09 17:16:29 +00:00
|
|
|
#include "src/Targets/TargetRegisterDescriptor.hpp"
|
2023-03-05 23:29:03 +00:00
|
|
|
|
2023-08-13 15:47:51 +01:00
|
|
|
namespace Widgets
|
2023-03-05 23:29:03 +00:00
|
|
|
{
|
|
|
|
|
class RegisterItem: public ListItem
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
const Targets::TargetRegisterDescriptor registerDescriptor;
|
|
|
|
|
const QString registerName;
|
|
|
|
|
const QString searchKeywords;
|
|
|
|
|
bool excluded = false;
|
|
|
|
|
bool valueChanged = false;
|
|
|
|
|
|
|
|
|
|
explicit RegisterItem(
|
|
|
|
|
const Targets::TargetRegisterDescriptor& registerDescriptor
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
void setValue(const Targets::TargetMemoryBuffer& value);
|
|
|
|
|
|
|
|
|
|
void clearValue() {
|
|
|
|
|
this->valueText.clear();
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-21 20:30:57 +00:00
|
|
|
bool operator < (const ListItem& rhs) const override {
|
|
|
|
|
const auto& rhsRegisterItem = dynamic_cast<const RegisterItem&>(rhs);
|
|
|
|
|
return this->registerName < rhsRegisterItem.registerName;
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 23:29:03 +00:00
|
|
|
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
static constexpr int HEIGHT = 25;
|
|
|
|
|
static inline std::optional<QPixmap> registerIconPixmap = std::nullopt;
|
|
|
|
|
|
|
|
|
|
QString valueText = "";
|
|
|
|
|
|
|
|
|
|
void generatePixmaps() const;
|
|
|
|
|
};
|
|
|
|
|
}
|