diff options
author | 2022-09-17 06:28:25 +1000 | |
---|---|---|
committer | 2022-09-17 06:31:07 +1000 | |
commit | c25428f519d401634d2e7555cc5cc0908efb5b0d (patch) | |
tree | 870decebdc57c8c742a8059629225aa923034e53 /src/osd/modules/debugger/qt/mainwindow.cpp | |
parent | b64b4ef8bbae5c5745740d0861393a2b37b0fd32 (diff) |
Added a crude dark theme for the Win32 debugger.
Also made a start on weaning the Qt debugger off its weird configuation
objects. It can now save more view state with less string comparisons
on memory labels, but it can't restore all of it yet.
Diffstat (limited to 'src/osd/modules/debugger/qt/mainwindow.cpp')
-rw-r--r-- | src/osd/modules/debugger/qt/mainwindow.cpp | 52 |
1 files changed, 20 insertions, 32 deletions
diff --git a/src/osd/modules/debugger/qt/mainwindow.cpp b/src/osd/modules/debugger/qt/mainwindow.cpp index ec7bafee33c..974d3632ffc 100644 --- a/src/osd/modules/debugger/qt/mainwindow.cpp +++ b/src/osd/modules/debugger/qt/mainwindow.cpp @@ -148,6 +148,18 @@ void MainWindow::setProcessor(device_t *processor) } +void MainWindow::saveConfigurationToNode(util::xml::data_node &node) +{ + WindowQt::saveConfigurationToNode(node); + + node.set_attribute_int(osd::debugger::ATTR_WINDOW_TYPE, osd::debugger::WINDOW_TYPE_CONSOLE); + + debug_view_disasm &dasmview = *m_dasmFrame->view()->view<debug_view_disasm>(); + node.set_attribute_int(osd::debugger::ATTR_WINDOW_DISASSEMBLY_RIGHT_COLUMN, dasmview.right_column()); + node.set_attribute("qtwindowstate", saveState().toPercentEncoding().data()); +} + + // Used to intercept the user clicking 'X' in the upper corner void MainWindow::closeEvent(QCloseEvent *event) { @@ -207,10 +219,10 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) void MainWindow::toggleBreakpointAtCursor(bool changedTo) { - debug_view_disasm *const dasmView = downcast<debug_view_disasm*>(m_dasmFrame->view()->view()); + debug_view_disasm *const dasmView = m_dasmFrame->view()->view<debug_view_disasm>(); if (dasmView->cursor_visible() && (m_machine.debugger().console().get_visible_cpu() == dasmView->source()->device())) { - offs_t const address = downcast<debug_view_disasm *>(dasmView)->selected_address(); + offs_t const address = dasmView->selected_address(); device_debug *const cpuinfo = dasmView->source()->device()->debug(); // Find an existing breakpoint at this address @@ -231,7 +243,7 @@ void MainWindow::toggleBreakpointAtCursor(bool changedTo) void MainWindow::enableBreakpointAtCursor(bool changedTo) { - debug_view_disasm *const dasmView = downcast<debug_view_disasm*>(m_dasmFrame->view()->view()); + debug_view_disasm *const dasmView = m_dasmFrame->view()->view<debug_view_disasm>(); if (dasmView->cursor_visible() && (m_machine.debugger().console().get_visible_cpu() == dasmView->source()->device())) { offs_t const address = dasmView->selected_address(); @@ -254,10 +266,10 @@ void MainWindow::enableBreakpointAtCursor(bool changedTo) void MainWindow::runToCursor(bool changedTo) { - debug_view_disasm *dasmView = downcast<debug_view_disasm*>(m_dasmFrame->view()->view()); + debug_view_disasm *const dasmView = m_dasmFrame->view()->view<debug_view_disasm>(); if (dasmView->cursor_visible() && (m_machine.debugger().console().get_visible_cpu() == dasmView->source()->device())) { - offs_t address = downcast<debug_view_disasm*>(dasmView)->selected_address(); + offs_t address = dasmView->selected_address(); std::string command = string_format("go 0x%X", address); m_machine.debugger().console().execute_command(command, true); } @@ -266,7 +278,7 @@ void MainWindow::runToCursor(bool changedTo) void MainWindow::rightBarChanged(QAction *changedTo) { - debug_view_disasm *dasmView = downcast<debug_view_disasm*>(m_dasmFrame->view()->view()); + debug_view_disasm *const dasmView = m_dasmFrame->view()->view<debug_view_disasm>(); if (changedTo->text() == "Raw Opcodes") dasmView->set_right_column(DASM_RIGHTCOL_RAW); @@ -382,7 +394,7 @@ void MainWindow::unmountImage(bool changedTo) void MainWindow::dasmViewUpdated() { - debug_view_disasm *const dasmView = downcast<debug_view_disasm *>(m_dasmFrame->view()->view()); + debug_view_disasm *const dasmView = m_dasmFrame->view()->view<debug_view_disasm>(); bool const haveCursor = dasmView->cursor_visible() && (m_machine.debugger().console().get_visible_cpu() == dasmView->source()->device()); bool haveBreakpoint = false; bool breakpointEnabled = false; @@ -471,22 +483,6 @@ void MainWindow::createImagesMenu() //========================================================================= // MainWindowQtConfig //========================================================================= -void MainWindowQtConfig::buildFromQWidget(QWidget* widget) -{ - WindowQtConfig::buildFromQWidget(widget); - MainWindow *window = dynamic_cast<MainWindow *>(widget); - m_windowState = window->saveState(); - - QActionGroup *rightBarGroup = window->findChild<QActionGroup*>("rightbargroup"); - if (rightBarGroup->checkedAction()->text() == "Raw Opcodes") - m_rightBar = 0; - else if (rightBarGroup->checkedAction()->text() == "Encrypted Opcodes") - m_rightBar = 1; - else if (rightBarGroup->checkedAction()->text() == "Comments") - m_rightBar = 2; -} - - void MainWindowQtConfig::applyToQWidget(QWidget *widget) { WindowQtConfig::applyToQWidget(widget); @@ -494,15 +490,7 @@ void MainWindowQtConfig::applyToQWidget(QWidget *widget) window->restoreState(m_windowState); QActionGroup* rightBarGroup = window->findChild<QActionGroup*>("rightbargroup"); - rightBarGroup->actions()[m_rightBar]->trigger(); -} - - -void MainWindowQtConfig::addToXmlDataNode(util::xml::data_node &node) const -{ - WindowQtConfig::addToXmlDataNode(node); - node.set_attribute_int(osd::debugger::ATTR_WINDOW_DISASSEMBLY_RIGHT_COLUMN, m_rightBar); - node.set_attribute("qtwindowstate", m_windowState.toPercentEncoding().data()); + rightBarGroup->actions()[m_rightBar - 1]->trigger(); } |