Allow registers to be resized smaller & use default scrollbar style
This commit is contained in:
parent
c12eb532c7
commit
af3c415f22
|
@ -68,6 +68,7 @@ CPUWidget::CPUWidget(QWidget* parent) : QWidget(parent), ui(new Ui::CPUWidget)
|
|||
QScrollArea* upperScrollArea = new QScrollArea(this);
|
||||
upperScrollArea->setFrameShape(QFrame::NoFrame);
|
||||
upperScrollArea->setWidget(mGeneralRegs);
|
||||
upperScrollArea->setWidgetResizable(true);
|
||||
|
||||
QPushButton* button_changeview = new QPushButton("", this);
|
||||
connect(button_changeview, SIGNAL(clicked()), mGeneralRegs, SLOT(onChangeFPUViewAction()));
|
||||
|
|
|
@ -1163,6 +1163,7 @@ RegistersView::RegistersView(QWidget* parent) : QScrollArea(parent), mVScrollOff
|
|||
mDisplayx87rX = new QAction(tr("Display x87rX"), this);
|
||||
mDisplayMMX = new QAction(tr("Display MMX"), this);
|
||||
|
||||
// Create the SIMD display mode actions
|
||||
SIMDHex = new QAction(tr("Hexadecimal"), mSwitchSIMDDispMode);
|
||||
SIMDFloat = new QAction(tr("Float"), mSwitchSIMDDispMode);
|
||||
SIMDDouble = new QAction(tr("Double"), mSwitchSIMDDispMode);
|
||||
|
@ -1175,6 +1176,7 @@ RegistersView::RegistersView(QWidget* parent) : QScrollArea(parent), mVScrollOff
|
|||
SIMDHWord = new QAction(tr("Hexadecimal Word"), mSwitchSIMDDispMode);
|
||||
SIMDHDWord = new QAction(tr("Hexadecimal Dword"), mSwitchSIMDDispMode);
|
||||
SIMDHQWord = new QAction(tr("Hexadecimal Qword"), mSwitchSIMDDispMode);
|
||||
// Set the user data of these actions to the config value
|
||||
SIMDHex->setData(QVariant(0));
|
||||
SIMDFloat->setData(QVariant(1));
|
||||
SIMDDouble->setData(QVariant(2));
|
||||
|
@ -1205,6 +1207,7 @@ RegistersView::RegistersView(QWidget* parent) : QScrollArea(parent), mVScrollOff
|
|||
connect(mDisplaySTX, SIGNAL(triggered()), this, SLOT(onFpuMode()));
|
||||
connect(mDisplayx87rX, SIGNAL(triggered()), this, SLOT(onFpuMode()));
|
||||
connect(mDisplayMMX, SIGNAL(triggered()), this, SLOT(onFpuMode()));
|
||||
// Make SIMD display mode actions checkable and unchecked
|
||||
SIMDHex->setCheckable(true);
|
||||
SIMDFloat->setCheckable(true);
|
||||
SIMDDouble->setCheckable(true);
|
||||
|
@ -1620,11 +1623,11 @@ void RegistersView::keyPressEvent(QKeyEvent* event)
|
|||
QScrollArea::keyPressEvent(event);
|
||||
}
|
||||
|
||||
QSize RegistersView::sizeHint() const
|
||||
{
|
||||
// 32 character width
|
||||
return QSize(32 * mCharWidth, this->viewport()->height());
|
||||
}
|
||||
//QSize RegistersView::sizeHint() const
|
||||
//{
|
||||
// // 32 character width
|
||||
// return QSize(32 * mCharWidth, this->viewport()->height());
|
||||
//}
|
||||
|
||||
void* RegistersView::operator new(size_t size)
|
||||
{
|
||||
|
@ -2201,6 +2204,7 @@ void RegistersView::appendRegister(QString & text, REGISTER_NAME reg, const char
|
|||
void RegistersView::setupSIMDModeMenu()
|
||||
{
|
||||
const QAction* selectedAction = nullptr;
|
||||
// Find out which mode is selected by the user
|
||||
switch(ConfigUint("Gui", "SIMDRegistersDisplayMode"))
|
||||
{
|
||||
case 0:
|
||||
|
@ -2240,6 +2244,7 @@ void RegistersView::setupSIMDModeMenu()
|
|||
selectedAction = SIMDHQWord;
|
||||
break;
|
||||
}
|
||||
// Check that action if it is selected, uncheck otherwise
|
||||
SIMDHex->setChecked(SIMDHex == selectedAction);
|
||||
SIMDFloat->setChecked(SIMDFloat == selectedAction);
|
||||
SIMDDouble->setChecked(SIMDDouble == selectedAction);
|
||||
|
@ -2512,8 +2517,8 @@ int RegistersView::CompareRegisters(const REGISTER_NAME reg_name, REGDUMP* regdu
|
|||
|
||||
if(size != 0)
|
||||
return memcmp(reg1_data, reg2_data, size);
|
||||
|
||||
return -1;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
char* RegistersView::registerValue(const REGDUMP* regd, const REGISTER_NAME reg)
|
||||
|
@ -2877,6 +2882,7 @@ void RegistersView::setRegisters(REGDUMP* reg)
|
|||
emit refresh();
|
||||
}
|
||||
|
||||
// Scroll the viewport so that the register will be visible on the screen
|
||||
void RegistersView::ensureRegisterVisible(REGISTER_NAME reg)
|
||||
{
|
||||
QScrollArea* upperScrollArea = (QScrollArea*)this->parentWidget()->parentWidget();
|
||||
|
|
|
@ -130,7 +130,7 @@ public:
|
|||
explicit RegistersView(QWidget* parent);
|
||||
~RegistersView();
|
||||
|
||||
QSize sizeHint() const;
|
||||
//QSize sizeHint() const;
|
||||
|
||||
static void* operator new(size_t size);
|
||||
static void operator delete(void* p);
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include <QMouseEvent>
|
||||
#include "TraceRegisters.h"
|
||||
#include "Configuration.h"
|
||||
#include "EditFloatRegister.h"
|
||||
|
@ -6,8 +5,8 @@
|
|||
|
||||
TraceRegisters::TraceRegisters(QWidget* parent) : RegistersView(parent)
|
||||
{
|
||||
wCM_CopySSERegister = setupAction(DIcon("copy.png"), tr("Copy floating point value"));
|
||||
connect(wCM_CopySSERegister, SIGNAL(triggered()), this, SLOT(onCopySSERegister()));
|
||||
wCM_CopySIMDRegister = setupAction(DIcon("copy.png"), tr("Copy floating point value"));
|
||||
connect(wCM_CopySIMDRegister, SIGNAL(triggered()), this, SLOT(onCopySIMDRegister()));
|
||||
connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(displayCustomContextMenuSlot(QPoint)));
|
||||
}
|
||||
|
||||
|
@ -38,7 +37,7 @@ void TraceRegisters::displayCustomContextMenuSlot(QPoint pos)
|
|||
}
|
||||
if(mFPUMMX.contains(mSelected) || mFPUXMM.contains(mSelected) || mFPUYMM.contains(mSelected))
|
||||
{
|
||||
wMenu.addAction(wCM_CopySSERegister);
|
||||
wMenu.addAction(wCM_CopySIMDRegister);
|
||||
}
|
||||
if(mLABELDISPLAY.contains(mSelected))
|
||||
{
|
||||
|
@ -80,33 +79,22 @@ void TraceRegisters::displayCustomContextMenuSlot(QPoint pos)
|
|||
}
|
||||
}
|
||||
|
||||
void TraceRegisters::onCopySSERegister()
|
||||
static void showCopyFloatRegister(int bits, QWidget* parent, const QString & title, char* registerData)
|
||||
{
|
||||
EditFloatRegister mEditFloat(bits, parent);
|
||||
mEditFloat.setWindowTitle(title);
|
||||
mEditFloat.loadData(registerData);
|
||||
mEditFloat.show();
|
||||
mEditFloat.selectAllText();
|
||||
mEditFloat.exec();
|
||||
}
|
||||
|
||||
void TraceRegisters::onCopySIMDRegister()
|
||||
{
|
||||
if(mFPUYMM.contains(mSelected))
|
||||
{
|
||||
EditFloatRegister mEditFloat(256, this);
|
||||
mEditFloat.setWindowTitle(tr("View YMM register"));
|
||||
mEditFloat.loadData(registerValue(&wRegDumpStruct, mSelected));
|
||||
mEditFloat.show();
|
||||
mEditFloat.selectAllText();
|
||||
mEditFloat.exec();
|
||||
}
|
||||
showCopyFloatRegister(256, this, tr("View YMM register"), registerValue(&wRegDumpStruct, mSelected));
|
||||
else if(mFPUXMM.contains(mSelected))
|
||||
{
|
||||
EditFloatRegister mEditFloat(128, this);
|
||||
mEditFloat.setWindowTitle(tr("View XMM register"));
|
||||
mEditFloat.loadData(registerValue(&wRegDumpStruct, mSelected));
|
||||
mEditFloat.show();
|
||||
mEditFloat.selectAllText();
|
||||
mEditFloat.exec();
|
||||
}
|
||||
showCopyFloatRegister(128, this, tr("View XMM register"), registerValue(&wRegDumpStruct, mSelected));
|
||||
else if(mFPUMMX.contains(mSelected))
|
||||
{
|
||||
EditFloatRegister mEditFloat(64, this);
|
||||
mEditFloat.setWindowTitle(tr("View MMX register"));
|
||||
mEditFloat.loadData(registerValue(&wRegDumpStruct, mSelected));
|
||||
mEditFloat.show();
|
||||
mEditFloat.selectAllText();
|
||||
mEditFloat.exec();
|
||||
}
|
||||
showCopyFloatRegister(64, this, tr("View MMX register"), registerValue(&wRegDumpStruct, mSelected));
|
||||
}
|
||||
|
|
|
@ -13,10 +13,10 @@ public:
|
|||
|
||||
public slots:
|
||||
virtual void displayCustomContextMenuSlot(QPoint pos);
|
||||
void onCopySSERegister();
|
||||
void onCopySIMDRegister();
|
||||
|
||||
private:
|
||||
QAction* wCM_CopySSERegister;
|
||||
QAction* wCM_CopySIMDRegister;
|
||||
};
|
||||
|
||||
#endif // TRACEREGISTERS_H
|
||||
|
|
|
@ -24,9 +24,10 @@ TraceWidget::TraceWidget(QWidget* parent) :
|
|||
QScrollArea* upperScrollArea = new QScrollArea(this);
|
||||
upperScrollArea->setFrameShape(QFrame::NoFrame);
|
||||
upperScrollArea->setWidget(mGeneralRegs);
|
||||
upperScrollArea->setWidgetResizable(true);
|
||||
|
||||
upperScrollArea->horizontalScrollBar()->setStyleSheet(ConfigHScrollBarStyle());
|
||||
upperScrollArea->verticalScrollBar()->setStyleSheet(ConfigVScrollBarStyle());
|
||||
//upperScrollArea->horizontalScrollBar()->setStyleSheet(ConfigHScrollBarStyle());
|
||||
//upperScrollArea->verticalScrollBar()->setStyleSheet(ConfigVScrollBarStyle());
|
||||
|
||||
QPushButton* button_changeview = new QPushButton("", this);
|
||||
button_changeview->setStyleSheet("Text-align:left;padding: 4px;padding-left: 10px;");
|
||||
|
|
Loading…
Reference in New Issue