X-Git-Url: http://git.hcoop.net/clinton/Virtual-Jaguar-Rx.git/blobdiff_plain/cf76e892839806b64588635cb6accb636001e62a..79a018fa160ead41dc5ea29a3939531f0e4a7e21:/src/debugger/memory1browser.cpp diff --git a/src/debugger/memory1browser.cpp b/src/debugger/memory1browser.cpp index a66896a..c13f9ed 100644 --- a/src/debugger/memory1browser.cpp +++ b/src/debugger/memory1browser.cpp @@ -15,21 +15,18 @@ #include "memory1browser.h" #include "memory.h" -#include "debugger\DBGManager.h" +#include "debugger/DBGManager.h" +#include "settings.h" // Memory1BrowserWindow::Memory1BrowserWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Dialog), -// layout(new QVBoxLayout), text(new QTextBrowser), layout(new QVBoxLayout), text(new QLabel), refresh(new QPushButton(tr("Refresh"))), address(new QLineEdit), go(new QPushButton(tr("Go"))), memBase(0), memOrigin(0), NumWinOrigin(0) { - //setWindowTitle(tr("Memory 1 Browser")); - - //address->setInputMask("hhhhhh"); address->setPlaceholderText("0x, decimal value or symbol name"); QHBoxLayout * hbox1 = new QHBoxLayout; @@ -37,18 +34,12 @@ Memory1BrowserWindow::Memory1BrowserWindow(QWidget * parent/*= 0*/): QWidget(par hbox1->addWidget(address); hbox1->addWidget(go); - // Need to set the size as well... -// resize(560, 480); - QFont fixedFont("Lucida Console", 8, QFont::Normal); -// QFont fixedFont("", 8, QFont::Normal); fixedFont.setStyleHint(QFont::TypeWriter); text->setFont(fixedFont); -//// layout->setSizeConstraint(QLayout::SetFixedSize); setLayout(layout); layout->addWidget(text); - //layout->addWidget(refresh); layout->addLayout(hbox1); connect(refresh, SIGNAL(clicked()), this, SLOT(RefreshContentsWindow())); @@ -63,9 +54,8 @@ void Memory1BrowserWindow::RefreshContents(size_t NumWin) if (isVisible()) { - sprintf(string, "Memory %i - %06X", (unsigned int)((NumWinOrigin = NumWin) + 1), (unsigned int)memOrigin); + sprintf(string, "Memory %i - 0x%06X", (unsigned int)((NumWinOrigin = NumWin) + 1), (unsigned int)memOrigin); setWindowTitle(tr(string)); - RefreshContentsWindow(); } } @@ -125,10 +115,10 @@ void Memory1BrowserWindow::keyPressEvent(QKeyEvent * e) { if (e->key() == Qt::Key_PageUp) { - memBase -= 480; - - if (memBase < 0) + if ((memBase -= 480) < 0) + { memBase = 0; + } RefreshContentsWindow(); } @@ -136,10 +126,10 @@ void Memory1BrowserWindow::keyPressEvent(QKeyEvent * e) { if (e->key() == Qt::Key_PageDown) { - memBase += 480; - - if (memBase > (0x200000 - 480)) - memBase = 0x200000 - 480; + if ((memBase += 480) > (vjs.DRAM_size - 480)) + { + memBase = vjs.DRAM_size - 480; + } RefreshContentsWindow(); } @@ -147,10 +137,10 @@ void Memory1BrowserWindow::keyPressEvent(QKeyEvent * e) { if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Minus) { - memBase -= 16; - - if (memBase < 0) + if ((memBase -= 16) < 0) + { memBase = 0; + } RefreshContentsWindow(); } @@ -158,10 +148,10 @@ void Memory1BrowserWindow::keyPressEvent(QKeyEvent * e) { if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Equal) { - memBase += 16; - - if (memBase > (0x200000 - 480)) - memBase = 0x200000 - 480; + if ((memBase += 16) > (vjs.DRAM_size - 480)) + { + memBase = vjs.DRAM_size - 480; + } RefreshContentsWindow(); } @@ -184,22 +174,41 @@ void Memory1BrowserWindow::keyPressEvent(QKeyEvent * e) void Memory1BrowserWindow::GoToAddress(void) { bool ok; + size_t len; QString newAddress; + size_t newmemBase; + QPalette p = address->palette(); newAddress = address->text(); - if (( newAddress.at(0) == QChar('0')) && (newAddress.at(1) == QChar('x'))) + if ((len = newAddress.size())) { - memBase = newAddress.toUInt(&ok, 16); - } - else - { - if (!(memBase = DBGManager_GetAdrFromSymbolName(newAddress.toLatin1().data()))) + if ((len > 1) && (newAddress.at(0) == QChar('0')) && (newAddress.at(1) == QChar('x'))) { - memBase = newAddress.toUInt(&ok, 10); + newmemBase = newAddress.toUInt(&ok, 16); + } + else + { + if (!(newmemBase = DBGManager_GetAdrFromSymbolName(newAddress.toLatin1().data()))) + { + newmemBase = newAddress.toUInt(&ok, 10); + } + else + { + ok = true; + } } - } - memOrigin = memBase; - RefreshContents(NumWinOrigin); + if (!ok || (newmemBase < 0) || (newmemBase > vjs.DRAM_size)) + { + p.setColor(QPalette::Text, Qt::red); + } + else + { + p.setColor(QPalette::Text, Qt::black); + memOrigin = (memBase = newmemBase); + RefreshContents(NumWinOrigin); + } + address->setPalette(p); + } }