Updated register side pane to use new state restoration code

This commit is contained in:
Nav
2022-07-19 22:58:38 +01:00
parent bce5ee27ce
commit 97d7690682
2 changed files with 33 additions and 11 deletions

View File

@@ -334,12 +334,18 @@ namespace Bloom
if (lastLeftPanelState.has_value() && this->leftPanel != nullptr) { if (lastLeftPanelState.has_value() && this->leftPanel != nullptr) {
this->leftPanel->setSize(lastLeftPanelState->size); this->leftPanel->setSize(lastLeftPanelState->size);
if (lastLeftPanelState->open && this->targetRegistersSidePane != nullptr }
&& this->insightProjectSettings.previousRegistersPaneState.has_value() if (
&& this->insightProjectSettings.previousRegistersPaneState->activated this->targetRegistersSidePane != nullptr
) { && this->insightProjectSettings.previousRegistersPaneState.has_value()
this->toggleTargetRegistersPane(); ) {
} auto& lastRegisterSidePaneState = this->insightProjectSettings.previousRegistersPaneState.value();
// The register pane cannot be detached
lastRegisterSidePaneState.attached = true;
lastRegisterSidePaneState.detachedWindowState = std::nullopt;
this->targetRegistersSidePane->restoreLastPaneState(lastRegisterSidePaneState);
} }
if (lastBottomPanelState.has_value()) { if (lastBottomPanelState.has_value()) {
@@ -535,8 +541,22 @@ namespace Bloom
this->leftPanel this->leftPanel
); );
leftPanelLayout->addWidget(this->targetRegistersSidePane); leftPanelLayout->addWidget(this->targetRegistersSidePane);
this->targetRegistersButton->setChecked(false);
QObject::connect(
this->targetRegistersSidePane,
&PaneWidget::paneActivated,
this,
&InsightWindow::onRegistersPaneStateChanged
);
QObject::connect(
this->targetRegistersSidePane,
&PaneWidget::paneDeactivated,
this,
&InsightWindow::onRegistersPaneStateChanged
);
this->targetRegistersButton->setDisabled(false); this->targetRegistersButton->setDisabled(false);
this->targetRegistersSidePane->deactivate();
auto& memoryInspectionPaneSettingsByMemoryType = auto& memoryInspectionPaneSettingsByMemoryType =
this->insightProjectSettings.memoryInspectionPaneSettingsByMemoryType; this->insightProjectSettings.memoryInspectionPaneSettingsByMemoryType;
@@ -868,14 +888,10 @@ namespace Bloom
void InsightWindow::toggleTargetRegistersPane() { void InsightWindow::toggleTargetRegistersPane() {
if (this->targetRegistersSidePane->activated) { if (this->targetRegistersSidePane->activated) {
this->targetRegistersSidePane->deactivate(); this->targetRegistersSidePane->deactivate();
this->targetRegistersButton->setChecked(false);
} else { } else {
this->targetRegistersSidePane->activate(); this->targetRegistersSidePane->activate();
this->targetRegistersButton->setChecked(true);
} }
this->adjustMinimumSize();
} }
void InsightWindow::toggleRamInspectionPane() { void InsightWindow::toggleRamInspectionPane() {
@@ -928,6 +944,11 @@ namespace Bloom
} }
} }
void InsightWindow::onRegistersPaneStateChanged() {
this->targetRegistersButton->setChecked(this->targetRegistersSidePane->activated);
this->adjustMinimumSize();
}
void InsightWindow::onRamInspectionPaneStateChanged() { void InsightWindow::onRamInspectionPaneStateChanged() {
this->ramInspectionButton->setChecked(this->ramInspectionPane->activated); this->ramInspectionButton->setChecked(this->ramInspectionPane->activated);

View File

@@ -139,6 +139,7 @@ namespace Bloom
void toggleTargetRegistersPane(); void toggleTargetRegistersPane();
void toggleRamInspectionPane(); void toggleRamInspectionPane();
void toggleEepromInspectionPane(); void toggleEepromInspectionPane();
void onRegistersPaneStateChanged();
void onRamInspectionPaneStateChanged(); void onRamInspectionPaneStateChanged();
void onEepromInspectionPaneStateChanged(); void onEepromInspectionPaneStateChanged();
void onProgrammingModeEnabled(); void onProgrammingModeEnabled();