Edit floating-point register dialog (#695)
* Edit floating-point register * Edit floating-point register * Edit floating-point register * Edit floating-point register * Edit floating-point registers * Edit floating-point register
This commit is contained in:
parent
937a0a44cc
commit
69aa29fd4a
|
@ -0,0 +1,719 @@
|
|||
#include "EditFloatRegister.h"
|
||||
#include "ui_EditFloatRegister.h"
|
||||
#include "Bridge.h"
|
||||
#include "StringUtil.h"
|
||||
|
||||
/**
|
||||
* @brief Initialize EditFloatRegister dialog
|
||||
*
|
||||
* @param[in] RegisterSize The register size. 128 stands for XMM register, 256 stands for YMM register,
|
||||
* 512 stands for ZMM register.
|
||||
*
|
||||
* @param[in] parent The parent of this dialog.
|
||||
*
|
||||
* @return Nothing.
|
||||
*/
|
||||
|
||||
EditFloatRegister::EditFloatRegister(int RegisterSize, QWidget *parent) :
|
||||
QDialog(parent), hexValidate(this), RegSize(RegisterSize),
|
||||
signedShortValidator(LongLongValidator::DataType::SignedShort, this),
|
||||
unsignedShortValidator(LongLongValidator::DataType::UnsignedShort, this),
|
||||
signedLongValidator(LongLongValidator::DataType::SignedLong, this),
|
||||
unsignedLongValidator(LongLongValidator::DataType::UnsignedLong, this),
|
||||
signedLongLongValidator(LongLongValidator::DataType::SignedLongLong, this),
|
||||
unsignedLongLongValidator(LongLongValidator::DataType::UnsignedLongLong, this),
|
||||
doubleValidator(this),
|
||||
ui(new Ui::EditFloatRegister)
|
||||
{
|
||||
memset(Data, 0, sizeof(Data));
|
||||
ui->setupUi(this);
|
||||
setModal(true);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
|
||||
setWindowFlags(Qt::Dialog | Qt::WindowSystemMenuHint | Qt::WindowTitleHint);
|
||||
#endif
|
||||
switch(RegisterSize)
|
||||
{
|
||||
case 128:
|
||||
hideUpperPart();
|
||||
ui->labelLowRegister->setText(QString("XMM:"));
|
||||
break;
|
||||
case 256:
|
||||
break;
|
||||
case 512:
|
||||
default:
|
||||
GuiAddLogMessage(QString("Error, register size %1 is not supported.\n").arg(RegisterSize).toUtf8().constData());
|
||||
break;
|
||||
}
|
||||
|
||||
connect(ui->hexEdit, SIGNAL(textEdited(QString)), this, SLOT(editingHex1FinishedSlot(QString)));
|
||||
ui->hexEdit->setValidator(&hexValidate);
|
||||
connect(ui->hexEdit_2, SIGNAL(textEdited(QString)), this, SLOT(editingHex2FinishedSlot(QString)));
|
||||
ui->hexEdit_2->setValidator(&hexValidate);
|
||||
editingModeChangedSlot(false);
|
||||
connect(ui->radioHex, SIGNAL(toggled(bool)), this, SLOT(editingModeChangedSlot(bool)));
|
||||
connect(ui->radioSigned, SIGNAL(toggled(bool)), this, SLOT(editingModeChangedSlot(bool)));
|
||||
connect(ui->radioUnsigned, SIGNAL(toggled(bool)), this, SLOT(editingModeChangedSlot(bool)));
|
||||
connect(ui->shortEdit0_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort0FinishedSlot(QString)));
|
||||
connect(ui->shortEdit1_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort1FinishedSlot(QString)));
|
||||
connect(ui->shortEdit2_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort2FinishedSlot(QString)));
|
||||
connect(ui->shortEdit3_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort3FinishedSlot(QString)));
|
||||
connect(ui->shortEdit4_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort4FinishedSlot(QString)));
|
||||
connect(ui->shortEdit5_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort5FinishedSlot(QString)));
|
||||
connect(ui->shortEdit6_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort6FinishedSlot(QString)));
|
||||
connect(ui->shortEdit7_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerShort7FinishedSlot(QString)));
|
||||
connect(ui->shortEdit0, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort0FinishedSlot(QString)));
|
||||
connect(ui->shortEdit1, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort1FinishedSlot(QString)));
|
||||
connect(ui->shortEdit2, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort2FinishedSlot(QString)));
|
||||
connect(ui->shortEdit3, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort3FinishedSlot(QString)));
|
||||
connect(ui->shortEdit4, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort4FinishedSlot(QString)));
|
||||
connect(ui->shortEdit5, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort5FinishedSlot(QString)));
|
||||
connect(ui->shortEdit6, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort6FinishedSlot(QString)));
|
||||
connect(ui->shortEdit7, SIGNAL(textEdited(QString)), this, SLOT(editingUpperShort7FinishedSlot(QString)));
|
||||
connect(ui->longEdit0_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerLong0FinishedSlot(QString)));
|
||||
connect(ui->longEdit1_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerLong1FinishedSlot(QString)));
|
||||
connect(ui->longEdit2_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerLong2FinishedSlot(QString)));
|
||||
connect(ui->longEdit3_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerLong3FinishedSlot(QString)));
|
||||
connect(ui->longEdit0, SIGNAL(textEdited(QString)), this, SLOT(editingUpperLong0FinishedSlot(QString)));
|
||||
connect(ui->longEdit1, SIGNAL(textEdited(QString)), this, SLOT(editingUpperLong1FinishedSlot(QString)));
|
||||
connect(ui->longEdit2, SIGNAL(textEdited(QString)), this, SLOT(editingUpperLong2FinishedSlot(QString)));
|
||||
connect(ui->longEdit3, SIGNAL(textEdited(QString)), this, SLOT(editingUpperLong3FinishedSlot(QString)));
|
||||
connect(ui->floatEdit0_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerFloat0FinishedSlot(QString)));
|
||||
connect(ui->floatEdit1_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerFloat1FinishedSlot(QString)));
|
||||
connect(ui->floatEdit2_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerFloat2FinishedSlot(QString)));
|
||||
connect(ui->floatEdit3_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerFloat3FinishedSlot(QString)));
|
||||
connect(ui->floatEdit0, SIGNAL(textEdited(QString)), this, SLOT(editingUpperFloat0FinishedSlot(QString)));
|
||||
connect(ui->floatEdit1, SIGNAL(textEdited(QString)), this, SLOT(editingUpperFloat1FinishedSlot(QString)));
|
||||
connect(ui->floatEdit2, SIGNAL(textEdited(QString)), this, SLOT(editingUpperFloat2FinishedSlot(QString)));
|
||||
connect(ui->floatEdit3, SIGNAL(textEdited(QString)), this, SLOT(editingUpperFloat3FinishedSlot(QString)));
|
||||
connect(ui->doubleEdit0_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerDouble0FinishedSlot(QString)));
|
||||
connect(ui->doubleEdit1_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerDouble1FinishedSlot(QString)));
|
||||
connect(ui->doubleEdit0, SIGNAL(textEdited(QString)), this, SLOT(editingUpperDouble0FinishedSlot(QString)));
|
||||
connect(ui->doubleEdit1, SIGNAL(textEdited(QString)), this, SLOT(editingUpperDouble1FinishedSlot(QString)));
|
||||
connect(ui->longLongEdit0_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerLongLong0FinishedSlot(QString)));
|
||||
connect(ui->longLongEdit1_2, SIGNAL(textEdited(QString)), this, SLOT(editingLowerLongLong1FinishedSlot(QString)));
|
||||
connect(ui->longLongEdit0, SIGNAL(textEdited(QString)), this, SLOT(editingUpperLongLong0FinishedSlot(QString)));
|
||||
connect(ui->longLongEdit1, SIGNAL(textEdited(QString)), this, SLOT(editingUpperLongLong1FinishedSlot(QString)));
|
||||
ui->floatEdit0_2->setValidator(&doubleValidator);
|
||||
ui->floatEdit1_2->setValidator(&doubleValidator);
|
||||
ui->floatEdit2_2->setValidator(&doubleValidator);
|
||||
ui->floatEdit3_2->setValidator(&doubleValidator);
|
||||
ui->floatEdit0->setValidator(&doubleValidator);
|
||||
ui->floatEdit1->setValidator(&doubleValidator);
|
||||
ui->floatEdit2->setValidator(&doubleValidator);
|
||||
ui->floatEdit3->setValidator(&doubleValidator);
|
||||
ui->doubleEdit0_2->setValidator(&doubleValidator);
|
||||
ui->doubleEdit1_2->setValidator(&doubleValidator);
|
||||
ui->doubleEdit0->setValidator(&doubleValidator);
|
||||
ui->doubleEdit1->setValidator(&doubleValidator);
|
||||
}
|
||||
|
||||
void EditFloatRegister::hideUpperPart()
|
||||
{
|
||||
ui->labelH0->hide();
|
||||
ui->labelH1->hide();
|
||||
ui->labelH2->hide();
|
||||
ui->labelH3->hide();
|
||||
ui->labelH4->hide();
|
||||
ui->labelH5->hide();
|
||||
ui->labelH6->hide();
|
||||
ui->labelH7->hide();
|
||||
ui->labelH8->hide();
|
||||
ui->labelH9->hide();
|
||||
ui->labelHA->hide();
|
||||
ui->labelHB->hide();
|
||||
ui->labelHC->hide();
|
||||
ui->labelHD->hide();
|
||||
ui->labelHE->hide();
|
||||
ui->hexEdit->hide();
|
||||
ui->shortEdit0->hide();
|
||||
ui->shortEdit1->hide();
|
||||
ui->shortEdit2->hide();
|
||||
ui->shortEdit3->hide();
|
||||
ui->shortEdit4->hide();
|
||||
ui->shortEdit5->hide();
|
||||
ui->shortEdit6->hide();
|
||||
ui->shortEdit7->hide();
|
||||
ui->longEdit0->hide();
|
||||
ui->longEdit1->hide();
|
||||
ui->longEdit2->hide();
|
||||
ui->longEdit3->hide();
|
||||
ui->floatEdit0->hide();
|
||||
ui->floatEdit1->hide();
|
||||
ui->floatEdit2->hide();
|
||||
ui->floatEdit3->hide();
|
||||
ui->doubleEdit0->hide();
|
||||
ui->doubleEdit1->hide();
|
||||
ui->longLongEdit0->hide();
|
||||
ui->longLongEdit1->hide();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Load register data into the dialog
|
||||
* @param[in] RegisterData the data to be loaded. It must be at lease the same size as the size specified in RegisterSize
|
||||
* @return Nothing.
|
||||
*/
|
||||
void EditFloatRegister::loadData(char *RegisterData)
|
||||
{
|
||||
memcpy(Data, RegisterData, RegSize / 8);
|
||||
reloadDataLow();
|
||||
reloadDataHigh();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the register data from the dialog
|
||||
* @return The output buffer.
|
||||
*/
|
||||
const char *EditFloatRegister::getData()
|
||||
{
|
||||
return Data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief reloads the lower 128-bit of data of the dialog
|
||||
*/
|
||||
void EditFloatRegister::reloadDataLow()
|
||||
{
|
||||
if(mutex == nullptr)
|
||||
mutex = this;
|
||||
if(mutex != ui->hexEdit_2)
|
||||
ui->hexEdit_2->setText(QString(QByteArray(Data, 16).toHex()).toUpper());
|
||||
reloadLongData(*ui->longEdit0_2, Data);
|
||||
reloadLongData(*ui->longEdit1_2, Data + 4);
|
||||
reloadLongData(*ui->longEdit2_2, Data + 8);
|
||||
reloadLongData(*ui->longEdit3_2, Data + 12);
|
||||
reloadShortData(*ui->shortEdit0_2, Data);
|
||||
reloadShortData(*ui->shortEdit1_2, Data + 2);
|
||||
reloadShortData(*ui->shortEdit2_2, Data + 4);
|
||||
reloadShortData(*ui->shortEdit3_2, Data + 6);
|
||||
reloadShortData(*ui->shortEdit4_2, Data + 8);
|
||||
reloadShortData(*ui->shortEdit5_2, Data + 10);
|
||||
reloadShortData(*ui->shortEdit6_2, Data + 12);
|
||||
reloadShortData(*ui->shortEdit7_2, Data + 14);
|
||||
reloadFloatData(*ui->floatEdit0_2, Data);
|
||||
reloadFloatData(*ui->floatEdit1_2, Data + 4);
|
||||
reloadFloatData(*ui->floatEdit2_2, Data + 8);
|
||||
reloadFloatData(*ui->floatEdit3_2, Data + 12);
|
||||
reloadDoubleData(*ui->doubleEdit0_2, Data);
|
||||
reloadDoubleData(*ui->doubleEdit1_2, Data + 8);
|
||||
reloadLongLongData(*ui->longLongEdit0_2, Data);
|
||||
reloadLongLongData(*ui->longLongEdit1_2, Data + 8);
|
||||
mutex = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief reloads the upper 128-bit of data of the dialog
|
||||
*/
|
||||
void EditFloatRegister::reloadDataHigh()
|
||||
{
|
||||
if(mutex == nullptr)
|
||||
mutex = this;
|
||||
if(mutex != ui->hexEdit)
|
||||
ui->hexEdit->setText(QString(QByteArray(Data + 16, 16).toHex()).toUpper());
|
||||
reloadLongData(*ui->longEdit0, Data + 16);
|
||||
reloadLongData(*ui->longEdit1, Data + 20);
|
||||
reloadLongData(*ui->longEdit2, Data + 24);
|
||||
reloadLongData(*ui->longEdit3, Data + 28);
|
||||
reloadShortData(*ui->shortEdit0, Data + 16);
|
||||
reloadShortData(*ui->shortEdit1, Data + 18);
|
||||
reloadShortData(*ui->shortEdit2, Data + 20);
|
||||
reloadShortData(*ui->shortEdit3, Data + 22);
|
||||
reloadShortData(*ui->shortEdit4, Data + 24);
|
||||
reloadShortData(*ui->shortEdit5, Data + 26);
|
||||
reloadShortData(*ui->shortEdit6, Data + 28);
|
||||
reloadShortData(*ui->shortEdit7, Data + 30);
|
||||
reloadFloatData(*ui->floatEdit0, Data + 16);
|
||||
reloadFloatData(*ui->floatEdit1, Data + 20);
|
||||
reloadFloatData(*ui->floatEdit2, Data + 24);
|
||||
reloadFloatData(*ui->floatEdit3, Data + 28);
|
||||
reloadDoubleData(*ui->doubleEdit0, Data + 16);
|
||||
reloadDoubleData(*ui->doubleEdit1, Data + 24);
|
||||
reloadLongLongData(*ui->longLongEdit0, Data + 16);
|
||||
reloadLongLongData(*ui->longLongEdit1, Data + 24);
|
||||
mutex = nullptr;
|
||||
}
|
||||
|
||||
void EditFloatRegister::reloadShortData(QLineEdit& txtbox, char *Data)
|
||||
{
|
||||
if(mutex != &txtbox)
|
||||
{
|
||||
if(ui->radioHex->isChecked())
|
||||
txtbox.setText(QString().number((int)*(unsigned short*)Data, 16).toUpper());
|
||||
else if(ui->radioSigned->isChecked())
|
||||
txtbox.setText(QString().number((int)*(short*)Data));
|
||||
else
|
||||
txtbox.setText(QString().number((unsigned int)*(unsigned short*)Data));
|
||||
}
|
||||
}
|
||||
|
||||
void EditFloatRegister::reloadLongData(QLineEdit& txtbox, char *Data)
|
||||
{
|
||||
if(mutex != &txtbox)
|
||||
{
|
||||
if(ui->radioHex->isChecked())
|
||||
txtbox.setText(QString().number(*(int*)Data, 16).toUpper());
|
||||
else if(ui->radioSigned->isChecked())
|
||||
txtbox.setText(QString().number(*(int*)Data));
|
||||
else
|
||||
txtbox.setText(QString().number(*(unsigned int*)Data));
|
||||
}
|
||||
}
|
||||
|
||||
void EditFloatRegister::reloadFloatData(QLineEdit &txtbox, char *Data)
|
||||
{
|
||||
if(mutex != &txtbox)
|
||||
{
|
||||
txtbox.setText(QString().number(*(float*)Data));
|
||||
}
|
||||
}
|
||||
|
||||
void EditFloatRegister::reloadDoubleData(QLineEdit &txtbox, char *Data)
|
||||
{
|
||||
if(mutex != &txtbox)
|
||||
{
|
||||
txtbox.setText(QString().number(*(double*)Data));
|
||||
}
|
||||
}
|
||||
|
||||
void EditFloatRegister::reloadLongLongData(QLineEdit &txtbox, char *Data)
|
||||
{
|
||||
if(mutex != &txtbox)
|
||||
{
|
||||
if(ui->radioHex->isChecked())
|
||||
txtbox.setText(QString().number(*(unsigned long long*)Data, 16).toUpper());
|
||||
else if(ui->radioSigned->isChecked())
|
||||
txtbox.setText(QString().number(*(long long*)Data));
|
||||
else
|
||||
txtbox.setText(QString().number(*(unsigned long long*)Data));
|
||||
}
|
||||
}
|
||||
|
||||
void EditFloatRegister::editingModeChangedSlot(bool arg)
|
||||
{
|
||||
Q_UNUSED(arg);
|
||||
if(ui->radioHex->isChecked())
|
||||
{
|
||||
ui->shortEdit0_2->setMaxLength(4);
|
||||
ui->shortEdit1_2->setMaxLength(4);
|
||||
ui->shortEdit2_2->setMaxLength(4);
|
||||
ui->shortEdit3_2->setMaxLength(4);
|
||||
ui->shortEdit4_2->setMaxLength(4);
|
||||
ui->shortEdit5_2->setMaxLength(4);
|
||||
ui->shortEdit6_2->setMaxLength(4);
|
||||
ui->shortEdit7_2->setMaxLength(4);
|
||||
ui->shortEdit0->setMaxLength(4);
|
||||
ui->shortEdit1->setMaxLength(4);
|
||||
ui->shortEdit2->setMaxLength(4);
|
||||
ui->shortEdit3->setMaxLength(4);
|
||||
ui->shortEdit4->setMaxLength(4);
|
||||
ui->shortEdit5->setMaxLength(4);
|
||||
ui->shortEdit6->setMaxLength(4);
|
||||
ui->shortEdit7->setMaxLength(4);
|
||||
ui->longEdit0_2->setMaxLength(8);
|
||||
ui->longEdit1_2->setMaxLength(8);
|
||||
ui->longEdit2_2->setMaxLength(8);
|
||||
ui->longEdit3_2->setMaxLength(8);
|
||||
ui->longEdit0->setMaxLength(8);
|
||||
ui->longEdit1->setMaxLength(8);
|
||||
ui->longEdit2->setMaxLength(8);
|
||||
ui->longEdit3->setMaxLength(8);
|
||||
ui->longLongEdit0->setMaxLength(16);
|
||||
ui->longLongEdit1->setMaxLength(16);
|
||||
ui->longLongEdit0_2->setMaxLength(16);
|
||||
ui->longLongEdit1_2->setMaxLength(16);
|
||||
ui->shortEdit0_2->setValidator(&hexValidate);
|
||||
ui->shortEdit1_2->setValidator(&hexValidate);
|
||||
ui->shortEdit2_2->setValidator(&hexValidate);
|
||||
ui->shortEdit3_2->setValidator(&hexValidate);
|
||||
ui->shortEdit4_2->setValidator(&hexValidate);
|
||||
ui->shortEdit5_2->setValidator(&hexValidate);
|
||||
ui->shortEdit6_2->setValidator(&hexValidate);
|
||||
ui->shortEdit7_2->setValidator(&hexValidate);
|
||||
ui->shortEdit0->setValidator(&hexValidate);
|
||||
ui->shortEdit1->setValidator(&hexValidate);
|
||||
ui->shortEdit2->setValidator(&hexValidate);
|
||||
ui->shortEdit3->setValidator(&hexValidate);
|
||||
ui->shortEdit4->setValidator(&hexValidate);
|
||||
ui->shortEdit5->setValidator(&hexValidate);
|
||||
ui->shortEdit6->setValidator(&hexValidate);
|
||||
ui->shortEdit7->setValidator(&hexValidate);
|
||||
ui->longEdit0_2->setValidator(&hexValidate);
|
||||
ui->longEdit1_2->setValidator(&hexValidate);
|
||||
ui->longEdit2_2->setValidator(&hexValidate);
|
||||
ui->longEdit3_2->setValidator(&hexValidate);
|
||||
ui->longEdit0->setValidator(&hexValidate);
|
||||
ui->longEdit1->setValidator(&hexValidate);
|
||||
ui->longEdit2->setValidator(&hexValidate);
|
||||
ui->longEdit3->setValidator(&hexValidate);
|
||||
ui->longLongEdit0->setValidator(&hexValidate);
|
||||
ui->longLongEdit1->setValidator(&hexValidate);
|
||||
ui->longLongEdit0_2->setValidator(&hexValidate);
|
||||
ui->longLongEdit1_2->setValidator(&hexValidate);
|
||||
}
|
||||
else if(ui->radioSigned->isChecked())
|
||||
{
|
||||
ui->shortEdit0_2->setMaxLength(6);
|
||||
ui->shortEdit1_2->setMaxLength(6);
|
||||
ui->shortEdit2_2->setMaxLength(6);
|
||||
ui->shortEdit3_2->setMaxLength(6);
|
||||
ui->shortEdit4_2->setMaxLength(6);
|
||||
ui->shortEdit5_2->setMaxLength(6);
|
||||
ui->shortEdit6_2->setMaxLength(6);
|
||||
ui->shortEdit7_2->setMaxLength(6);
|
||||
ui->shortEdit0->setMaxLength(6);
|
||||
ui->shortEdit1->setMaxLength(6);
|
||||
ui->shortEdit2->setMaxLength(6);
|
||||
ui->shortEdit3->setMaxLength(6);
|
||||
ui->shortEdit4->setMaxLength(6);
|
||||
ui->shortEdit5->setMaxLength(6);
|
||||
ui->shortEdit6->setMaxLength(6);
|
||||
ui->shortEdit7->setMaxLength(6);
|
||||
ui->longEdit0_2->setMaxLength(12);
|
||||
ui->longEdit1_2->setMaxLength(12);
|
||||
ui->longEdit2_2->setMaxLength(12);
|
||||
ui->longEdit3_2->setMaxLength(12);
|
||||
ui->longEdit0->setMaxLength(12);
|
||||
ui->longEdit1->setMaxLength(12);
|
||||
ui->longEdit2->setMaxLength(12);
|
||||
ui->longEdit3->setMaxLength(12);
|
||||
ui->longLongEdit0->setMaxLength(64);
|
||||
ui->longLongEdit1->setMaxLength(64);
|
||||
ui->longLongEdit0_2->setMaxLength(64);
|
||||
ui->longLongEdit1_2->setMaxLength(64);
|
||||
ui->shortEdit0_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit1_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit2_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit3_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit4_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit5_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit6_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit7_2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit0->setValidator(&signedShortValidator);
|
||||
ui->shortEdit1->setValidator(&signedShortValidator);
|
||||
ui->shortEdit2->setValidator(&signedShortValidator);
|
||||
ui->shortEdit3->setValidator(&signedShortValidator);
|
||||
ui->shortEdit4->setValidator(&signedShortValidator);
|
||||
ui->shortEdit5->setValidator(&signedShortValidator);
|
||||
ui->shortEdit6->setValidator(&signedShortValidator);
|
||||
ui->shortEdit7->setValidator(&signedShortValidator);
|
||||
ui->longEdit0_2->setValidator(&signedLongValidator);
|
||||
ui->longEdit1_2->setValidator(&signedLongValidator);
|
||||
ui->longEdit2_2->setValidator(&signedLongValidator);
|
||||
ui->longEdit3_2->setValidator(&signedLongValidator);
|
||||
ui->longEdit0->setValidator(&signedLongValidator);
|
||||
ui->longEdit1->setValidator(&signedLongValidator);
|
||||
ui->longEdit2->setValidator(&signedLongValidator);
|
||||
ui->longEdit3->setValidator(&signedLongValidator);
|
||||
ui->longLongEdit0->setValidator(&signedLongLongValidator);
|
||||
ui->longLongEdit1->setValidator(&signedLongLongValidator);
|
||||
ui->longLongEdit0_2->setValidator(&signedLongLongValidator);
|
||||
ui->longLongEdit1_2->setValidator(&signedLongLongValidator);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->shortEdit0_2->setMaxLength(6);
|
||||
ui->shortEdit1_2->setMaxLength(6);
|
||||
ui->shortEdit2_2->setMaxLength(6);
|
||||
ui->shortEdit3_2->setMaxLength(6);
|
||||
ui->shortEdit4_2->setMaxLength(6);
|
||||
ui->shortEdit5_2->setMaxLength(6);
|
||||
ui->shortEdit6_2->setMaxLength(6);
|
||||
ui->shortEdit7_2->setMaxLength(6);
|
||||
ui->shortEdit0->setMaxLength(6);
|
||||
ui->shortEdit1->setMaxLength(6);
|
||||
ui->shortEdit2->setMaxLength(6);
|
||||
ui->shortEdit3->setMaxLength(6);
|
||||
ui->shortEdit4->setMaxLength(6);
|
||||
ui->shortEdit5->setMaxLength(6);
|
||||
ui->shortEdit6->setMaxLength(6);
|
||||
ui->shortEdit7->setMaxLength(6);
|
||||
ui->longEdit0_2->setMaxLength(12);
|
||||
ui->longEdit1_2->setMaxLength(12);
|
||||
ui->longEdit2_2->setMaxLength(12);
|
||||
ui->longEdit3_2->setMaxLength(12);
|
||||
ui->longEdit0->setMaxLength(12);
|
||||
ui->longEdit1->setMaxLength(12);
|
||||
ui->longEdit2->setMaxLength(12);
|
||||
ui->longEdit3->setMaxLength(12);
|
||||
ui->shortEdit0_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit1_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit2_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit3_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit4_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit5_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit6_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit7_2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit0->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit1->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit2->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit3->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit4->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit5->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit6->setValidator(&unsignedShortValidator);
|
||||
ui->shortEdit7->setValidator(&unsignedShortValidator);
|
||||
ui->longEdit0_2->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit1_2->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit2_2->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit3_2->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit0->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit1->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit2->setValidator(&unsignedLongValidator);
|
||||
ui->longEdit3->setValidator(&unsignedLongValidator);
|
||||
ui->longLongEdit0->setValidator(&unsignedLongLongValidator);
|
||||
ui->longLongEdit1->setValidator(&unsignedLongLongValidator);
|
||||
ui->longLongEdit0_2->setValidator(&unsignedLongLongValidator);
|
||||
ui->longLongEdit1_2->setValidator(&unsignedLongLongValidator);
|
||||
}
|
||||
reloadDataLow();
|
||||
reloadDataHigh();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Desturctor of EditFloatRegister
|
||||
* @return nothing
|
||||
*/
|
||||
|
||||
EditFloatRegister::~EditFloatRegister()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief The higher part of the YMM register (or XMM register) is modified
|
||||
* @param arg the new text
|
||||
*/
|
||||
void EditFloatRegister::editingHex1FinishedSlot(QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
QString filled(arg);
|
||||
filled.append(QString(16 - filled.length(), QChar('0')));
|
||||
for(int i = 0; i < 16; i++)
|
||||
Data[i + 16] = filled.mid(i * 2, 2).toInt(0, 16);
|
||||
reloadDataHigh();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief The lower part of the YMM register (or XMM register) is modified
|
||||
* @param arg the new text
|
||||
*/
|
||||
void EditFloatRegister::editingHex2FinishedSlot(QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
QString filled(arg);
|
||||
filled.append(QString(16 - filled.length(), QChar('0')));
|
||||
for(int i = 0; i < 16; i++)
|
||||
Data[i] = filled.mid(i * 2, 2).toInt(0, 16);
|
||||
reloadDataLow();
|
||||
}
|
||||
|
||||
void EditFloatRegister::editingShortFinishedSlot(size_t offset, QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
if(ui->radioHex->isChecked())
|
||||
*(unsigned short*)(Data + offset) = arg.toUShort(0, 16);
|
||||
else if(ui->radioSigned->isChecked())
|
||||
*(short*)(Data + offset) = arg.toShort();
|
||||
else
|
||||
*(unsigned short*)(Data + offset) = arg.toUShort();
|
||||
offset < 16 ? reloadDataLow() : reloadDataHigh();
|
||||
}
|
||||
void EditFloatRegister::editingLongFinishedSlot(size_t offset, QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
if(ui->radioHex->isChecked())
|
||||
*(unsigned int*)(Data + offset) = arg.toUInt(0, 16);
|
||||
else if(ui->radioSigned->isChecked())
|
||||
*(int*)(Data + offset) = arg.toInt();
|
||||
else
|
||||
*(unsigned int*)(Data + offset) = arg.toUInt();
|
||||
offset < 16 ? reloadDataLow() : reloadDataHigh();
|
||||
}
|
||||
void EditFloatRegister::editingFloatFinishedSlot(size_t offset, QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
bool ok;
|
||||
float data = arg.toFloat(&ok);
|
||||
if(ok)
|
||||
*(float*)(Data + offset) = data;
|
||||
offset < 16 ? reloadDataLow() : reloadDataHigh();
|
||||
}
|
||||
void EditFloatRegister::editingDoubleFinishedSlot(size_t offset, QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
bool ok;
|
||||
double data = arg.toDouble(&ok);
|
||||
if(ok)
|
||||
*(double*)(Data + offset) = data;
|
||||
offset < 16 ? reloadDataLow() : reloadDataHigh();
|
||||
}
|
||||
void EditFloatRegister::editingLongLongFinishedSlot(size_t offset, QString arg)
|
||||
{
|
||||
mutex = sender();
|
||||
if(ui->radioHex->isChecked())
|
||||
*(unsigned long long*)(Data + offset) = arg.toULongLong(0, 16);
|
||||
else if(ui->radioSigned->isChecked())
|
||||
*(long long*)(Data + offset) = arg.toLongLong();
|
||||
else
|
||||
*(unsigned long long*)(Data + offset) = arg.toULongLong();
|
||||
offset < 16 ? reloadDataLow() : reloadDataHigh();
|
||||
}
|
||||
|
||||
void EditFloatRegister::editingLowerShort0FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(0 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort1FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(1 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort2FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(2 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort3FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(3 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort4FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(4 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort5FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(5 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort6FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(6 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerShort7FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(7 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort0FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 0 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort1FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 1 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort2FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 2 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort3FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 3 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort4FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 4 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort5FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 5 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort6FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 6 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperShort7FinishedSlot(QString arg)
|
||||
{
|
||||
editingShortFinishedSlot(16 + 7 * 2, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerLong0FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(0 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerLong1FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(1 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerLong2FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(2 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerLong3FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(3 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperLong0FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(16 + 0 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperLong1FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(16 + 1 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperLong2FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(16 + 2 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperLong3FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongFinishedSlot(16 + 3 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerFloat0FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(0 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerFloat1FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(1 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerFloat2FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(2 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerFloat3FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(3 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperFloat0FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(16 + 0 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperFloat1FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(16 + 1 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperFloat2FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(16 + 2 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperFloat3FinishedSlot(QString arg)
|
||||
{
|
||||
editingFloatFinishedSlot(16 + 3 * 4, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerDouble0FinishedSlot(QString arg)
|
||||
{
|
||||
editingDoubleFinishedSlot(0 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerDouble1FinishedSlot(QString arg)
|
||||
{
|
||||
editingDoubleFinishedSlot(1 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperDouble0FinishedSlot(QString arg)
|
||||
{
|
||||
editingDoubleFinishedSlot(16 + 0 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperDouble1FinishedSlot(QString arg)
|
||||
{
|
||||
editingDoubleFinishedSlot(16 + 1 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerLongLong0FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongLongFinishedSlot(0 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingLowerLongLong1FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongLongFinishedSlot(1 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperLongLong0FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongLongFinishedSlot(16 + 0 * 8, arg);
|
||||
}
|
||||
void EditFloatRegister::editingUpperLongLong1FinishedSlot(QString arg)
|
||||
{
|
||||
editingLongLongFinishedSlot(16 + 1 * 8, arg);
|
||||
}
|
|
@ -0,0 +1,104 @@
|
|||
#ifndef EDITFLOATREGISTER_H
|
||||
#define EDITFLOATREGISTER_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QLineEdit>
|
||||
#include <HexValidator.h>
|
||||
#include "LongLongValidator.h"
|
||||
#include <QDoubleValidator>
|
||||
|
||||
namespace Ui {
|
||||
class EditFloatRegister;
|
||||
}
|
||||
|
||||
class EditFloatRegister : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit EditFloatRegister(int RegisterSize, QWidget *parent = 0);
|
||||
void loadData(char* RegisterData);
|
||||
const char* getData();
|
||||
|
||||
~EditFloatRegister();
|
||||
|
||||
private slots:
|
||||
void editingModeChangedSlot(bool arg);
|
||||
void editingHex1FinishedSlot(QString arg);
|
||||
void editingHex2FinishedSlot(QString arg);
|
||||
// the compiler does not allow us to use template as slot. So we are going to waste the screen space...
|
||||
void editingLowerShort0FinishedSlot(QString arg);
|
||||
void editingLowerShort1FinishedSlot(QString arg);
|
||||
void editingLowerShort2FinishedSlot(QString arg);
|
||||
void editingLowerShort3FinishedSlot(QString arg);
|
||||
void editingLowerShort4FinishedSlot(QString arg);
|
||||
void editingLowerShort5FinishedSlot(QString arg);
|
||||
void editingLowerShort6FinishedSlot(QString arg);
|
||||
void editingLowerShort7FinishedSlot(QString arg);
|
||||
void editingUpperShort0FinishedSlot(QString arg);
|
||||
void editingUpperShort1FinishedSlot(QString arg);
|
||||
void editingUpperShort2FinishedSlot(QString arg);
|
||||
void editingUpperShort3FinishedSlot(QString arg);
|
||||
void editingUpperShort4FinishedSlot(QString arg);
|
||||
void editingUpperShort5FinishedSlot(QString arg);
|
||||
void editingUpperShort6FinishedSlot(QString arg);
|
||||
void editingUpperShort7FinishedSlot(QString arg);
|
||||
void editingLowerLong0FinishedSlot(QString arg);
|
||||
void editingLowerLong1FinishedSlot(QString arg);
|
||||
void editingLowerLong2FinishedSlot(QString arg);
|
||||
void editingLowerLong3FinishedSlot(QString arg);
|
||||
void editingUpperLong0FinishedSlot(QString arg);
|
||||
void editingUpperLong1FinishedSlot(QString arg);
|
||||
void editingUpperLong2FinishedSlot(QString arg);
|
||||
void editingUpperLong3FinishedSlot(QString arg);
|
||||
void editingLowerFloat0FinishedSlot(QString arg);
|
||||
void editingLowerFloat1FinishedSlot(QString arg);
|
||||
void editingLowerFloat2FinishedSlot(QString arg);
|
||||
void editingLowerFloat3FinishedSlot(QString arg);
|
||||
void editingUpperFloat0FinishedSlot(QString arg);
|
||||
void editingUpperFloat1FinishedSlot(QString arg);
|
||||
void editingUpperFloat2FinishedSlot(QString arg);
|
||||
void editingUpperFloat3FinishedSlot(QString arg);
|
||||
void editingLowerDouble0FinishedSlot(QString arg);
|
||||
void editingLowerDouble1FinishedSlot(QString arg);
|
||||
void editingUpperDouble0FinishedSlot(QString arg);
|
||||
void editingUpperDouble1FinishedSlot(QString arg);
|
||||
void editingLowerLongLong0FinishedSlot(QString arg);
|
||||
void editingLowerLongLong1FinishedSlot(QString arg);
|
||||
void editingUpperLongLong0FinishedSlot(QString arg);
|
||||
void editingUpperLongLong1FinishedSlot(QString arg);
|
||||
|
||||
private:
|
||||
HexValidator hexValidate;
|
||||
LongLongValidator signedShortValidator;
|
||||
LongLongValidator unsignedShortValidator;
|
||||
LongLongValidator signedLongValidator;
|
||||
LongLongValidator unsignedLongValidator;
|
||||
LongLongValidator signedLongLongValidator;
|
||||
LongLongValidator unsignedLongLongValidator;
|
||||
QDoubleValidator doubleValidator;
|
||||
|
||||
void hideUpperPart();
|
||||
|
||||
void reloadDataLow();
|
||||
void reloadDataHigh();
|
||||
|
||||
void reloadShortData(QLineEdit& txtbox, char* Data);
|
||||
void reloadLongData(QLineEdit& txtbox, char* Data);
|
||||
void reloadFloatData(QLineEdit& txtbox, char* Data);
|
||||
void reloadDoubleData(QLineEdit& txtbox, char* Data);
|
||||
void reloadLongLongData(QLineEdit& txtbox, char* Data);
|
||||
|
||||
void editingShortFinishedSlot(size_t offset, QString arg);
|
||||
void editingLongFinishedSlot(size_t offset, QString arg);
|
||||
void editingFloatFinishedSlot(size_t offset, QString arg);
|
||||
void editingDoubleFinishedSlot(size_t offset, QString arg);
|
||||
void editingLongLongFinishedSlot(size_t offset, QString arg);
|
||||
|
||||
Ui::EditFloatRegister *ui;
|
||||
QObject* mutex;
|
||||
char Data[64];
|
||||
int RegSize;
|
||||
};
|
||||
|
||||
#endif // EDITFLOATREGISTER_H
|
|
@ -0,0 +1,716 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>EditFloatRegister</class>
|
||||
<widget class="QDialog" name="EditFloatRegister">
|
||||
<property name="windowModality">
|
||||
<enum>Qt::WindowModal</enum>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>701</width>
|
||||
<height>528</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="../../resource.qrc">
|
||||
<normaloff>:/icons/images/modify.png</normaloff>:/icons/images/modify.png</iconset>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="mainLayout">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetNoConstraint</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="highRegister">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH8">
|
||||
<property name="text">
|
||||
<string>High:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH9">
|
||||
<property name="text">
|
||||
<string>byte</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelHA">
|
||||
<property name="text">
|
||||
<string>Short:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelHB">
|
||||
<property name="text">
|
||||
<string>Long:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelHC">
|
||||
<property name="text">
|
||||
<string>Float:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelHD">
|
||||
<property name="text">
|
||||
<string>Double:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelHE">
|
||||
<property name="text">
|
||||
<string>int64:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="hexEdit">
|
||||
<property name="inputMethodHints">
|
||||
<set>Qt::ImhUppercaseOnly</set>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>32</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH0">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0-1</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH1">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2-3</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>4-5</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>6-7</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH6">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>8-9</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH5">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>A-B</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH7">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>C-D</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelH3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>E-F</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit0"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit1"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit3"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit4"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit5"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit6"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit7">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit0"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit1"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit3"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit0"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit1"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit3"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="doubleEdit0"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="doubleEdit1"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longLongEdit0"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longLongEdit1"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lowRegister">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="labelLowRegister">
|
||||
<property name="text">
|
||||
<string>Low:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="text">
|
||||
<string>byte</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Short:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Long:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Float:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>Double:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>int64:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_11">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="hexEdit_2">
|
||||
<property name="inputMethodHints">
|
||||
<set>Qt::ImhUppercaseOnly</set>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>32</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0-1</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2-3</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>4-5</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>6-7</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>8-9</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>A-B</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_27">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>C-D</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_28">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>E-F</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_13">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit0_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit1_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit2_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit3_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit4_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit5_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit6_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="shortEdit7_2">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_14">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit0_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit1_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit2_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longEdit3_2"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit0_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit1_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit2_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="floatEdit3_2"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_16">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="doubleEdit0_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="doubleEdit1_2"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longLongEdit0_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="longLongEdit1_2"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_18">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioHex">
|
||||
<property name="text">
|
||||
<string>Hexadecimal</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioSigned">
|
||||
<property name="text">
|
||||
<string>Signed</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioUnsigned">
|
||||
<property name="text">
|
||||
<string>Unsigned</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_30">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Unified hex value follows memory byte order.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../../resource.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>EditFloatRegister</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>EditFloatRegister</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -5,6 +5,7 @@
|
|||
#include "Configuration.h"
|
||||
#include "WordEditDialog.h"
|
||||
#include "LineEditDialog.h"
|
||||
#include "EditFloatRegister.h"
|
||||
#include "SelectFields.h"
|
||||
|
||||
void RegistersView::SetChangeButton(QPushButton* push_button)
|
||||
|
@ -1308,6 +1309,11 @@ void RegistersView::operator delete(void* p)
|
|||
_aligned_free(p);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the label associated with the register
|
||||
* @param register_selected the register
|
||||
* @return the label
|
||||
*/
|
||||
QString RegistersView::getRegisterLabel(REGISTER_NAME register_selected)
|
||||
{
|
||||
char label_text[MAX_LABEL_SIZE] = "";
|
||||
|
@ -1847,6 +1853,11 @@ void RegistersView::ModifyFields(QString title, STRING_VALUE_TABLE_t* table, SIZ
|
|||
|
||||
#define MODIFY_FIELDS_DISPLAY(title, table) ModifyFields(QString("Edit ") + QString(title), (STRING_VALUE_TABLE_t *) & table, SIZE_TABLE(table) )
|
||||
|
||||
/**
|
||||
* @brief This function displays the appropriate edit dialog according to selected register
|
||||
* @return Nothing.
|
||||
*/
|
||||
|
||||
void RegistersView::displayEditDialog()
|
||||
{
|
||||
if(mFPU.contains(mSelected))
|
||||
|
@ -1861,6 +1872,22 @@ void RegistersView::displayEditDialog()
|
|||
MODIFY_FIELDS_DISPLAY("x87CW_PC", ControlWordPCValueStringTable);
|
||||
else if(mSelected == x87SW_TOP)
|
||||
MODIFY_FIELDS_DISPLAY("x87SW_TOP ST0=", StatusWordTOPValueStringTable);
|
||||
else if(mFPUYMM.contains(mSelected))
|
||||
{
|
||||
EditFloatRegister mEditFloat(256, this);
|
||||
mEditFloat.setWindowTitle(tr("Edit YMM register"));
|
||||
mEditFloat.loadData(registerValue(&wRegDumpStruct, mSelected));
|
||||
if(mEditFloat.exec() == QDialog::Accepted)
|
||||
setRegister(mSelected, (duint)mEditFloat.getData());
|
||||
}
|
||||
else if(mFPUXMM.contains(mSelected))
|
||||
{
|
||||
EditFloatRegister mEditFloat(128, this);
|
||||
mEditFloat.setWindowTitle(tr("Edit XMM register"));
|
||||
mEditFloat.loadData(registerValue(&wRegDumpStruct, mSelected));
|
||||
if(mEditFloat.exec() == QDialog::Accepted)
|
||||
setRegister(mSelected, (duint)mEditFloat.getData());
|
||||
}
|
||||
else
|
||||
{
|
||||
bool errorinput = false;
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
#include "HexValidator.h"
|
||||
#include <QObject>
|
||||
|
||||
HexValidator::HexValidator(QObject *parent) : QValidator(parent)
|
||||
{
|
||||
}
|
||||
|
||||
HexValidator::~HexValidator()
|
||||
{
|
||||
}
|
||||
|
||||
void HexValidator::fixup(QString& input) const
|
||||
{
|
||||
for(auto i : input)
|
||||
{
|
||||
if(!i.isDigit())
|
||||
{
|
||||
if(i >= QChar('a') && i <= QChar('f'))
|
||||
i = i.toUpper();
|
||||
else
|
||||
input.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QValidator::State HexValidator::validate(QString& input, int& pos) const
|
||||
{
|
||||
input = input.toUpper();
|
||||
for(int i = 0; i < input.length(); i++)
|
||||
{
|
||||
if(!(input.at(i).isDigit() || (input.at(i) >= QChar('A') && input.at(i) <= QChar('F'))))
|
||||
return State::Invalid;
|
||||
}
|
||||
return State::Acceptable;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef HEXVALIDATOR_H
|
||||
#define HEXVALIDATOR_H
|
||||
#include <QValidator>
|
||||
|
||||
class HexValidator : public QValidator
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit HexValidator(QObject* parent = 0);
|
||||
~HexValidator();
|
||||
|
||||
void fixup(QString& input) const;
|
||||
State validate(QString& input, int& pos) const;
|
||||
};
|
||||
|
||||
#endif // HEXVALIDATOR_H
|
|
@ -0,0 +1,110 @@
|
|||
#include "LongLongValidator.h"
|
||||
|
||||
LongLongValidator::LongLongValidator(DataType t, QObject *parent) : QValidator(parent), dt(t)
|
||||
{
|
||||
}
|
||||
|
||||
LongLongValidator::~LongLongValidator()
|
||||
{
|
||||
}
|
||||
|
||||
void LongLongValidator::fixup(QString& input) const
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QValidator::State LongLongValidator::validate(QString& input, int& pos) const
|
||||
{
|
||||
bool ok = false;
|
||||
if(input.isEmpty()) return State::Acceptable;
|
||||
switch(dt)
|
||||
{
|
||||
case SignedShort:
|
||||
input.toShort(&ok);
|
||||
if(!ok)
|
||||
{
|
||||
if(input == QString('-'))
|
||||
return State::Acceptable;
|
||||
if(input.toULongLong(&ok) > 32767)
|
||||
{
|
||||
if(ok)
|
||||
{
|
||||
input = "32767";
|
||||
return State::Acceptable;
|
||||
}
|
||||
}
|
||||
else if(input.toLongLong(&ok) < -32768)
|
||||
{
|
||||
if(ok)
|
||||
{
|
||||
input = "-32768";
|
||||
return State::Acceptable;
|
||||
}
|
||||
}
|
||||
return State::Invalid;
|
||||
}
|
||||
return State::Acceptable;
|
||||
case UnsignedShort:
|
||||
input.toShort(&ok);
|
||||
if(!ok)
|
||||
{
|
||||
if(input.toULongLong(&ok) > 65535)
|
||||
{
|
||||
if(ok)
|
||||
{
|
||||
input = "65535";
|
||||
return State::Acceptable;
|
||||
}
|
||||
}
|
||||
return State::Invalid;
|
||||
}
|
||||
return State::Acceptable;
|
||||
case SignedLong:
|
||||
input.toLong(&ok);
|
||||
if(!ok)
|
||||
{
|
||||
if(input == QString('-'))
|
||||
return State::Acceptable;
|
||||
if(input.toULongLong(&ok) > 2147483647)
|
||||
{
|
||||
if(ok)
|
||||
{
|
||||
input = "2147483647";
|
||||
return State::Acceptable;
|
||||
}
|
||||
}
|
||||
else if(input.toLongLong(&ok) < -2147483648)
|
||||
{
|
||||
if(ok)
|
||||
{
|
||||
input = "-2147483648";
|
||||
return State::Acceptable;
|
||||
}
|
||||
}
|
||||
return State::Invalid;
|
||||
}
|
||||
return State::Acceptable;
|
||||
case UnsignedLong:
|
||||
input.toULong(&ok);
|
||||
if(!ok)
|
||||
{
|
||||
if(input.toULongLong(&ok) > 4294967295)
|
||||
if(ok)
|
||||
{
|
||||
input = "4294967295";
|
||||
return State::Acceptable;
|
||||
}
|
||||
return State::Invalid;
|
||||
}
|
||||
return State::Acceptable;
|
||||
case SignedLongLong:
|
||||
input.toLongLong(&ok);
|
||||
if(!ok)
|
||||
return input == QChar('-') ? State::Acceptable : State::Invalid;
|
||||
return State::Acceptable;
|
||||
case UnsignedLongLong:
|
||||
input.toULongLong(&ok);
|
||||
return ok ? State::Acceptable : State::Invalid;
|
||||
}
|
||||
return State::Invalid;
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
#ifndef LONGLONGVALIDATOR_H
|
||||
#define LONGLONGVALIDATOR_H
|
||||
|
||||
#include <QValidator>
|
||||
|
||||
class LongLongValidator : public QValidator
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum DataType
|
||||
{
|
||||
SignedShort,
|
||||
UnsignedShort,
|
||||
SignedLong,
|
||||
UnsignedLong,
|
||||
SignedLongLong,
|
||||
UnsignedLongLong
|
||||
};
|
||||
|
||||
explicit LongLongValidator(DataType t, QObject* parent = 0);
|
||||
~LongLongValidator();
|
||||
|
||||
void fixup(QString& input) const;
|
||||
State validate(QString& input, int& pos) const;
|
||||
private:
|
||||
DataType dt;
|
||||
};
|
||||
|
||||
#endif // LONGLONGVALIDATOR_H
|
|
@ -146,7 +146,10 @@ SOURCES += \
|
|||
Src/Gui/SEHChainView.cpp \
|
||||
Src/Gui/EditBreakpointDialog.cpp \
|
||||
Src/Gui/CPUArgumentWidget.cpp \
|
||||
Src/Gui/HandlesView.cpp
|
||||
Src/Gui/HandlesView.cpp \
|
||||
Src/Gui/EditFloatRegister.cpp \
|
||||
Src/Utils/HexValidator.cpp \
|
||||
Src/Utils/LongLongValidator.cpp
|
||||
|
||||
|
||||
HEADERS += \
|
||||
|
@ -233,7 +236,10 @@ HEADERS += \
|
|||
Src/Gui/SEHChainView.h \
|
||||
Src/Gui/EditBreakpointDialog.h \
|
||||
Src/Gui/CPUArgumentWidget.h \
|
||||
Src/Gui/HandlesView.h
|
||||
Src/Gui/HandlesView.h \
|
||||
Src/Gui/EditFloatRegister.h \
|
||||
Src/Utils/HexValidator.h \
|
||||
Src/Utils/LongLongValidator.h
|
||||
|
||||
FORMS += \
|
||||
Src/Gui/MainWindow.ui \
|
||||
|
@ -260,7 +266,8 @@ FORMS += \
|
|||
Src/Gui/EntropyDialog.ui \
|
||||
Src/Gui/AssembleDialog.ui \
|
||||
Src/Gui/EditBreakpointDialog.ui \
|
||||
Src/Gui/CPUArgumentWidget.ui
|
||||
Src/Gui/CPUArgumentWidget.ui \
|
||||
Src/Gui/EditFloatRegister.ui
|
||||
|
||||
TRANSLATIONS = \
|
||||
Translations/x64dbg_zh_CN.ts
|
||||
|
|
Loading…
Reference in New Issue