Skip to content

Commit d5c01c8

Browse files
Copilotxusheng6
andcommitted
Create new tab for TTD memory queries from context menu instead of overwriting current tab
Co-authored-by: xusheng6 <[email protected]>
1 parent fab5d31 commit d5c01c8

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

ui/ttdmemorywidget.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,17 @@ void TTDMemoryWidget::setParametersAndQuery(uint64_t startAddr, uint64_t endAddr
822822
}
823823
}
824824

825+
void TTDMemoryWidget::setParametersAndQueryInNewTab(uint64_t startAddr, uint64_t endAddr, TTDMemoryAccessType accessType)
826+
{
827+
// Always create a new tab for context menu actions
828+
createNewTab();
829+
TTDMemoryQueryWidget* queryWidget = qobject_cast<TTDMemoryQueryWidget*>(m_tabWidget->currentWidget());
830+
if (queryWidget)
831+
{
832+
queryWidget->setParametersAndQuery(startAddr, endAddr, accessType);
833+
}
834+
}
835+
825836

826837

827838
// TTDMemorySidebarWidget implementation
@@ -851,6 +862,14 @@ void TTDMemorySidebarWidget::setParametersAndQuery(uint64_t startAddr, uint64_t
851862
}
852863
}
853864

865+
void TTDMemorySidebarWidget::setParametersAndQueryInNewTab(uint64_t startAddr, uint64_t endAddr, TTDMemoryAccessType accessType)
866+
{
867+
if (m_memoryWidget)
868+
{
869+
m_memoryWidget->setParametersAndQueryInNewTab(startAddr, endAddr, accessType);
870+
}
871+
}
872+
854873

855874
// TTDMemoryWidgetType implementation
856875
std::map<std::pair<ViewFrame*, BinaryViewRef>, TTDMemoryWidgetType::PendingQuery> TTDMemoryWidgetType::s_pendingQueries;

ui/ttdmemorywidget.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ class TTDMemoryWidget : public QWidget
152152
// Method to get current query widget or create new tab
153153
TTDMemoryQueryWidget* getCurrentOrNewQueryWidget();
154154
void setParametersAndQuery(uint64_t startAddr, uint64_t endAddr, TTDMemoryAccessType accessType);
155+
void setParametersAndQueryInNewTab(uint64_t startAddr, uint64_t endAddr, TTDMemoryAccessType accessType);
155156

156157
private Q_SLOTS:
157158
void createNewTab();
@@ -174,6 +175,7 @@ class TTDMemorySidebarWidget : public SidebarWidget
174175

175176
// Method to access the TTD Memory widget for context menu actions
176177
void setParametersAndQuery(uint64_t startAddr, uint64_t endAddr, TTDMemoryAccessType accessType);
178+
void setParametersAndQueryInNewTab(uint64_t startAddr, uint64_t endAddr, TTDMemoryAccessType accessType);
177179
};
178180

179181

ui/ui.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ void GlobalDebuggerUI::QueryTTDMemoryAccess(const UIActionContext& ctxt, uint64_
242242
auto* sidebarWidget = sidebar->widget("TTD Memory");
243243
if (auto* ttdWidget = qobject_cast<TTDMemorySidebarWidget*>(sidebarWidget))
244244
{
245-
ttdWidget->setParametersAndQuery(startAddr, endAddr, accessTypeEnum);
245+
ttdWidget->setParametersAndQueryInNewTab(startAddr, endAddr, accessTypeEnum);
246246
}
247247
});
248248
}

0 commit comments

Comments
 (0)