summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger/qt/memorywindow.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2022-09-16 22:09:58 +1000
committer Vas Crabb <vas@vastheman.com>2022-09-16 22:23:34 +1000
commitc76cf754b3cb1a07f8d3ca585bb3a055d78f25be (patch)
tree833fa7b23f8a84a79fd052008a6ad7c3847b46da /src/osd/modules/debugger/qt/memorywindow.cpp
parent1aae44005b59aa712fb60f639ddbb9e8e5e7a357 (diff)
debugger/win: Added capability to save/restore window arrangement.
* Format is mostly compatible with the Cocoa debugger, besides reversed vertical positioning. * Made Qt debugger more compatible with configuration format used by Win32 and Cocoa debuggers. * emu/config.cpp: Preserve elements with no registered handlers in default and system configuation files.
Diffstat (limited to 'src/osd/modules/debugger/qt/memorywindow.cpp')
-rw-r--r--src/osd/modules/debugger/qt/memorywindow.cpp118
1 files changed, 70 insertions, 48 deletions
diff --git a/src/osd/modules/debugger/qt/memorywindow.cpp b/src/osd/modules/debugger/qt/memorywindow.cpp
index 09d13c5d6d4..8373a56ec3f 100644
--- a/src/osd/modules/debugger/qt/memorywindow.cpp
+++ b/src/osd/modules/debugger/qt/memorywindow.cpp
@@ -7,6 +7,8 @@
#include "debug/debugcon.h"
#include "debug/debugcpu.h"
+#include "util/xmlfile.h"
+
#include <QtGui/QClipboard>
#include <QtGui/QMouseEvent>
#include <QtWidgets/QActionGroup>
@@ -76,17 +78,17 @@ MemoryWindow::MemoryWindow(running_machine &machine, QWidget *parent) :
// Create a data format group
QActionGroup *dataFormat = new QActionGroup(this);
dataFormat->setObjectName("dataformat");
- QAction *formatActOne = new QAction("1-byte hexadecimal", this);
- QAction *formatActTwo = new QAction("2-byte hexadecimal", this);
- QAction *formatActFour = new QAction("4-byte hexadecimal", this);
- QAction *formatActEight = new QAction("8-byte hexadecimal", this);
- QAction *formatActOneOctal = new QAction("1-byte octal", this);
- QAction *formatActTwoOctal = new QAction("2-byte octal", this);
- QAction *formatActFourOctal = new QAction("4-byte octal", this);
- QAction *formatActEightOctal = new QAction("8-byte octal", this);
- QAction *formatAct32bitFloat = new QAction("32 bit floating point", this);
- QAction *formatAct64bitFloat = new QAction("64 bit floating point", this);
- QAction *formatAct80bitFloat = new QAction("80 bit floating point", this);
+ QAction *formatActOne = new QAction("1-byte Chunks (Hex)", this);
+ QAction *formatActTwo = new QAction("2-byte Chunks (Hex)", this);
+ QAction *formatActFour = new QAction("4-byte Chunks (Hex)", this);
+ QAction *formatActEight = new QAction("8-byte Chunks (Hex)", this);
+ QAction *formatActOneOctal = new QAction("1-byte Chunks (Octal)", this);
+ QAction *formatActTwoOctal = new QAction("2-byte Chunks (Octal)", this);
+ QAction *formatActFourOctal = new QAction("4-byte Chunks (Octal)", this);
+ QAction *formatActEightOctal = new QAction("8-byte Chunks (Octal)", this);
+ QAction *formatAct32bitFloat = new QAction("32-bit Floating Point", this);
+ QAction *formatAct64bitFloat = new QAction("64-bit Floating Point", this);
+ QAction *formatAct80bitFloat = new QAction("80-bit Floating Point", this);
formatActOne->setObjectName("formatActOne");
formatActTwo->setObjectName("formatActTwo");
formatActFour->setObjectName("formatActFour");
@@ -484,35 +486,35 @@ void MemoryWindowQtConfig::buildFromQWidget(QWidget *widget)
QActionGroup *radixGroup = window->findChild<QActionGroup*>("radixgroup");
if (radixGroup->checkedAction()->text() == "Hexadecimal Addresses")
- m_addressRadix = 0;
+ m_addressRadix = 16;
else if (radixGroup->checkedAction()->text() == "Decimal Addresses")
- m_addressRadix = 1;
+ m_addressRadix = 10;
else if (radixGroup->checkedAction()->text() == "Octal Addresses")
- m_addressRadix = 2;
+ m_addressRadix = 8;
QActionGroup *dataFormat = window->findChild<QActionGroup*>("dataformat");
- if (dataFormat->checkedAction()->text() == "1-byte hexadecimal")
- m_dataFormat = 0;
- else if (dataFormat->checkedAction()->text() == "2-byte hexadecimal")
- m_dataFormat = 1;
- else if (dataFormat->checkedAction()->text() == "4-byte hexadecimal")
- m_dataFormat = 2;
- else if (dataFormat->checkedAction()->text() == "8-byte hexadecimal")
- m_dataFormat = 3;
- else if (dataFormat->checkedAction()->text() == "1-byte octal")
- m_dataFormat = 4;
- else if (dataFormat->checkedAction()->text() == "2-byte octal")
- m_dataFormat = 5;
- else if (dataFormat->checkedAction()->text() == "4-byte octal")
- m_dataFormat = 6;
- else if (dataFormat->checkedAction()->text() == "8-byte octal")
- m_dataFormat = 7;
- else if (dataFormat->checkedAction()->text() == "32 bit floating point")
- m_dataFormat = 8;
- else if (dataFormat->checkedAction()->text() == "64 bit floating point")
- m_dataFormat = 9;
- else if (dataFormat->checkedAction()->text() == "80 bit floating point")
- m_dataFormat = 10;
+ if (dataFormat->checkedAction()->text() == "1-byte Chunks (Hex)")
+ m_dataFormat = int(debug_view_memory::data_format::HEX_8BIT);
+ else if (dataFormat->checkedAction()->text() == "2-byte Chunks (Hex)")
+ m_dataFormat = int(debug_view_memory::data_format::HEX_16BIT);
+ else if (dataFormat->checkedAction()->text() == "4-byte Chunks (Hex)")
+ m_dataFormat = int(debug_view_memory::data_format::HEX_32BIT);
+ else if (dataFormat->checkedAction()->text() == "8-byte Chunks (Hex)")
+ m_dataFormat = int(debug_view_memory::data_format::HEX_64BIT);
+ else if (dataFormat->checkedAction()->text() == "1-byte Chunks (Octal)")
+ m_dataFormat = int(debug_view_memory::data_format::OCTAL_8BIT);
+ else if (dataFormat->checkedAction()->text() == "2-byte Chunks (Octal)")
+ m_dataFormat = int(debug_view_memory::data_format::OCTAL_16BIT);
+ else if (dataFormat->checkedAction()->text() == "4-byte Chunks (Octal)")
+ m_dataFormat = int(debug_view_memory::data_format::OCTAL_32BIT);
+ else if (dataFormat->checkedAction()->text() == "8-byte Chunks (Octal)")
+ m_dataFormat = int(debug_view_memory::data_format::OCTAL_64BIT);
+ else if (dataFormat->checkedAction()->text() == "32-bit floating point")
+ m_dataFormat = int(debug_view_memory::data_format::FLOAT_32BIT);
+ else if (dataFormat->checkedAction()->text() == "64-bit Floating Point")
+ m_dataFormat = int(debug_view_memory::data_format::FLOAT_64BIT);
+ else if (dataFormat->checkedAction()->text() == "80-bit Floating Point")
+ m_dataFormat = int(debug_view_memory::data_format::FLOAT_80BIT);
}
@@ -531,30 +533,50 @@ void MemoryWindowQtConfig::applyToQWidget(QWidget *widget)
addressGroup->actions()[m_addressMode]->trigger();
QActionGroup *radixGroup = window->findChild<QActionGroup*>("radixgroup");
- radixGroup->actions()[m_addressRadix]->trigger();
+ switch (m_addressRadix)
+ {
+ case 16: radixGroup->actions()[0]->trigger(); break;
+ case 10: radixGroup->actions()[1]->trigger(); break;
+ case 8: radixGroup->actions()[2]->trigger(); break;
+ default: break;
+ }
QActionGroup *dataFormat = window->findChild<QActionGroup*>("dataformat");
- dataFormat->actions()[m_dataFormat]->trigger();
+ switch (debug_view_memory::data_format(m_dataFormat))
+ {
+ case debug_view_memory::data_format::HEX_8BIT: dataFormat->actions()[0]->trigger(); break;
+ case debug_view_memory::data_format::HEX_16BIT: dataFormat->actions()[1]->trigger(); break;
+ case debug_view_memory::data_format::HEX_32BIT: dataFormat->actions()[2]->trigger(); break;
+ case debug_view_memory::data_format::HEX_64BIT: dataFormat->actions()[3]->trigger(); break;
+ case debug_view_memory::data_format::OCTAL_8BIT: dataFormat->actions()[4]->trigger(); break;
+ case debug_view_memory::data_format::OCTAL_16BIT: dataFormat->actions()[5]->trigger(); break;
+ case debug_view_memory::data_format::OCTAL_32BIT: dataFormat->actions()[6]->trigger(); break;
+ case debug_view_memory::data_format::OCTAL_64BIT: dataFormat->actions()[7]->trigger(); break;
+ case debug_view_memory::data_format::FLOAT_32BIT: dataFormat->actions()[8]->trigger(); break;
+ case debug_view_memory::data_format::FLOAT_64BIT: dataFormat->actions()[9]->trigger(); break;
+ case debug_view_memory::data_format::FLOAT_80BIT: dataFormat->actions()[10]->trigger(); break;
+ default: break;
+ }
}
void MemoryWindowQtConfig::addToXmlDataNode(util::xml::data_node &node) const
{
WindowQtConfig::addToXmlDataNode(node);
- node.set_attribute_int("memoryregion", m_memoryRegion);
- node.set_attribute_int("reverse", m_reverse);
- node.set_attribute_int("addressmode", m_addressMode);
- node.set_attribute_int("addressradix", m_addressRadix);
- node.set_attribute_int("dataformat", m_dataFormat);
+ node.set_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_REGION, m_memoryRegion);
+ node.set_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_REVERSE_COLUMNS, m_reverse);
+ node.set_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_ADDRESS_MODE, m_addressMode);
+ node.set_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_ADDRESS_RADIX, m_addressRadix);
+ node.set_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_DATA_FORMAT, m_dataFormat);
}
void MemoryWindowQtConfig::recoverFromXmlNode(util::xml::data_node const &node)
{
WindowQtConfig::recoverFromXmlNode(node);
- m_memoryRegion = node.get_attribute_int("memoryregion", m_memoryRegion);
- m_reverse = node.get_attribute_int("reverse", m_reverse);
- m_addressMode = node.get_attribute_int("addressmode", m_addressMode);
- m_addressRadix = node.get_attribute_int("addressradix", m_addressRadix);
- m_dataFormat = node.get_attribute_int("dataformat", m_dataFormat);
+ m_memoryRegion = node.get_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_REGION, m_memoryRegion);
+ m_reverse = node.get_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_REVERSE_COLUMNS, m_reverse);
+ m_addressMode = node.get_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_ADDRESS_MODE, m_addressMode);
+ m_addressRadix = node.get_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_ADDRESS_RADIX, m_addressRadix);
+ m_dataFormat = node.get_attribute_int(osd::debugger::ATTR_WINDOW_MEMORY_DATA_FORMAT, m_dataFormat);
}