Files
BloomPatched/src/Insight/UserInterfaces/InsightWindow/Widgets/TargetRegistersPane/TargetRegistersPaneWidget.hpp

77 lines
2.2 KiB
C++
Raw Normal View History

2021-09-04 18:11:52 +01:00
#pragma once
#include <QWidget>
#include <QLineEdit>
#include <QScrollArea>
2021-09-04 18:11:52 +01:00
#include <set>
#include <QSize>
#include <QString>
#include <QEvent>
#include <optional>
2022-02-06 20:28:46 +00:00
#include "src/Insight/UserInterfaces/InsightWindow/Widgets/PaneWidget.hpp"
#include "src/Insight/UserInterfaces/InsightWindow/Widgets/PanelWidget.hpp"
2022-02-06 20:28:46 +00:00
#include "ItemWidget.hpp"
#include "src/Insight/UserInterfaces/InsightWindow/Widgets/SvgToolButton.hpp"
2021-09-04 18:11:52 +01:00
#include "src/Insight/InsightWorker/InsightWorker.hpp"
#include "src/Targets/TargetState.hpp"
#include "src/Targets/TargetDescriptor.hpp"
namespace Bloom::Widgets
{
class RegisterGroupWidget;
2022-02-06 20:28:46 +00:00
class TargetRegistersPaneWidget: public PaneWidget
2021-09-04 18:11:52 +01:00
{
Q_OBJECT
public:
TargetRegistersPaneWidget(
const Targets::TargetDescriptor& targetDescriptor,
InsightWorker& insightWorker,
PanelWidget *parent
);
void filterRegisters(const QString& keyword);
void collapseAllRegisterGroups();
void expandAllRegisterGroups();
void refreshRegisterValues(std::optional<std::function<void(void)>> callback = std::nullopt);
void activate();
void deactivate();
2021-10-21 19:24:48 +01:00
void onItemSelectionChange(Bloom::Widgets::ItemWidget* newlySelectedWidget);
protected:
void resizeEvent(QResizeEvent* event) override;
virtual void postActivate();
virtual void postDeactivate();
2021-09-04 18:11:52 +01:00
private:
const Targets::TargetDescriptor& targetDescriptor;
InsightWorker& insightWorker;
QWidget* container = nullptr;
QWidget* toolBar = nullptr;
SvgToolButton* collapseAllButton = nullptr;
SvgToolButton* expandAllButton = nullptr;
QLineEdit* searchInput = nullptr;
QScrollArea* itemScrollArea = nullptr;
2021-09-04 18:11:52 +01:00
QWidget* itemContainer = nullptr;
ItemWidget* selectedItemWidget = nullptr;
std::set<RegisterGroupWidget*> registerGroupWidgets;
Targets::TargetRegisterDescriptors renderedDescriptors;
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
void onTargetStateChanged(Targets::TargetState newState);
2021-09-11 20:45:26 +01:00
void onRegistersRead(const Targets::TargetRegisters& registers);
2021-09-04 18:11:52 +01:00
};
}