Files
BloomPatched/src/Insight/UserInterfaces/InsightWindow/InsightWindow.hpp

131 lines
4.5 KiB
C++
Raw Normal View History

2021-04-04 21:04:12 +01:00
#pragma once
#include <QtCore>
#include <QMainWindow>
#include <QLabel>
2021-04-04 21:04:12 +01:00
#include <memory>
#include <optional>
#include "src/ProjectConfig.hpp"
#include "src/Insight/InsightWorker/InsightWorker.hpp"
2021-04-04 21:04:12 +01:00
#include "src/Targets/TargetState.hpp"
2021-04-04 21:04:12 +01:00
#include "src/Targets/TargetDescriptor.hpp"
#include "src/Targets/TargetVariant.hpp"
#include "Widgets/PanelWidget.hpp"
#include "Widgets/SvgToolButton.hpp"
#include "Widgets/TargetWidgets/TargetPackageWidgetContainer.hpp"
#include "Widgets/TargetWidgets/TargetPackageWidget.hpp"
2021-09-04 18:11:52 +01:00
#include "Widgets/TargetRegistersPane/TargetRegistersPaneWidget.hpp"
#include "Widgets/TargetMemoryInspectionPane/TargetMemoryInspectionPane.hpp"
#include "Widgets/TargetMemoryInspectionPane/TargetMemoryInspectionPaneSettings.hpp"
#include "AboutWindow.hpp"
2021-04-04 21:04:12 +01:00
namespace Bloom
{
class InsightWindow: public QMainWindow
2021-04-04 21:04:12 +01:00
{
Q_OBJECT
public:
InsightWindow(InsightWorker& insightWorker);
void setEnvironmentConfig(const EnvironmentConfig& environmentConfig) {
this->environmentConfig = environmentConfig;
this->targetConfig = environmentConfig.targetConfig;
}
void setInsightConfig(const InsightConfig& insightConfig) {
this->insightConfig = insightConfig;
}
void init(Targets::TargetDescriptor targetDescriptor);
protected:
void resizeEvent(QResizeEvent* event) override;
void showEvent(QShowEvent* event) override;
2021-04-04 21:04:12 +01:00
private:
2021-05-30 16:53:24 +01:00
InsightConfig insightConfig;
EnvironmentConfig environmentConfig;
TargetConfig targetConfig;
InsightWorker& insightWorker;
2021-05-30 16:53:24 +01:00
bool activated = false;
Targets::TargetDescriptor targetDescriptor;
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
2021-04-04 21:04:12 +01:00
QWidget* windowContainer = nullptr;
2021-04-04 21:04:12 +01:00
QMenuBar* mainMenuBar = nullptr;
QWidget* layoutContainer = nullptr;
QWidget* container = nullptr;
2021-04-04 21:04:12 +01:00
QMenu* variantMenu = nullptr;
QLabel* targetNameLabel = nullptr;
QLabel* targetIdLabel = nullptr;
AboutWindow* aboutWindowWidget = nullptr;
2021-04-04 21:04:12 +01:00
QWidget* header = nullptr;
Widgets::SvgToolButton* refreshIoInspectionButton = nullptr;
2021-04-04 21:04:12 +01:00
QWidget* leftMenuBar = nullptr;
Widgets::PanelWidget* leftPanel = nullptr;
2021-09-04 18:11:52 +01:00
Widgets::TargetRegistersPaneWidget* targetRegistersSidePane = nullptr;
QToolButton* targetRegistersButton = nullptr;
2021-05-30 16:53:24 +01:00
QLabel* ioUnavailableWidget = nullptr;
Widgets::InsightTargetWidgets::TargetPackageWidgetContainer* ioContainerWidget = nullptr;
Widgets::InsightTargetWidgets::TargetPackageWidget* targetPackageWidget = nullptr;
2021-04-04 21:04:12 +01:00
QWidget* bottomMenuBar = nullptr;
Widgets::PanelWidget* bottomPanel = nullptr;
Widgets::TargetMemoryInspectionPane* ramInspectionPane = nullptr;
2021-11-05 23:43:22 +00:00
Widgets::TargetMemoryInspectionPane* eepromInspectionPane = nullptr;
std::map<
Targets::TargetMemoryType,
Widgets::TargetMemoryInspectionPaneSettings
> memoryInspectionPaneSettingsByMemoryType;
QToolButton* ramInspectionButton = nullptr;
2021-11-05 23:43:22 +00:00
QToolButton* eepromInspectionButton = nullptr;
2021-04-04 21:04:12 +01:00
QWidget* footer = nullptr;
QLabel* targetStatusLabel = nullptr;
QLabel* programCounterValueLabel = nullptr;
2021-05-30 16:53:24 +01:00
std::map<QString, Targets::TargetVariant> supportedVariantsByName;
const Targets::TargetVariant* selectedVariant = nullptr;
std::optional<Targets::TargetVariant> previouslySelectedVariant;
2021-04-04 21:04:12 +01:00
bool uiDisabled = false;
2021-06-21 00:14:31 +01:00
static bool isVariantSupported(const Targets::TargetVariant& variant);
2021-04-04 21:04:12 +01:00
2021-12-08 00:33:13 +00:00
void setUiDisabled(bool disable);
2021-05-30 16:53:24 +01:00
void activate();
void populateVariantMenu();
void selectDefaultVariant();
void selectVariant(const Targets::TargetVariant* variant);
void createPanes();
void destroyPanes();
2021-05-30 16:53:24 +01:00
void deactivate();
2021-04-04 21:04:12 +01:00
void adjustPanels();
2021-12-27 04:10:25 +00:00
void adjustMinimumSize();
2021-12-08 00:33:13 +00:00
void onTargetControllerSuspended();
void onTargetControllerResumed(const Bloom::Targets::TargetDescriptor& targetDescriptor);
void onTargetStateUpdate(Targets::TargetState newState);
void onTargetProgramCounterUpdate(quint32 programCounter);
void refresh();
void openReportIssuesUrl();
void openGettingStartedUrl();
void openAboutWindow();
void toggleTargetRegistersPane();
void toggleRamInspectionPane();
void toggleEepromInspectionPane();
2021-04-04 21:04:12 +01:00
};
}