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 "Configuration.h"
|
||||||
#include "WordEditDialog.h"
|
#include "WordEditDialog.h"
|
||||||
#include "LineEditDialog.h"
|
#include "LineEditDialog.h"
|
||||||
|
#include "EditFloatRegister.h"
|
||||||
#include "SelectFields.h"
|
#include "SelectFields.h"
|
||||||
|
|
||||||
void RegistersView::SetChangeButton(QPushButton* push_button)
|
void RegistersView::SetChangeButton(QPushButton* push_button)
|
||||||
|
@ -1308,6 +1309,11 @@ void RegistersView::operator delete(void* p)
|
||||||
_aligned_free(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)
|
QString RegistersView::getRegisterLabel(REGISTER_NAME register_selected)
|
||||||
{
|
{
|
||||||
char label_text[MAX_LABEL_SIZE] = "";
|
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) )
|
#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()
|
void RegistersView::displayEditDialog()
|
||||||
{
|
{
|
||||||
if(mFPU.contains(mSelected))
|
if(mFPU.contains(mSelected))
|
||||||
|
@ -1861,6 +1872,22 @@ void RegistersView::displayEditDialog()
|
||||||
MODIFY_FIELDS_DISPLAY("x87CW_PC", ControlWordPCValueStringTable);
|
MODIFY_FIELDS_DISPLAY("x87CW_PC", ControlWordPCValueStringTable);
|
||||||
else if(mSelected == x87SW_TOP)
|
else if(mSelected == x87SW_TOP)
|
||||||
MODIFY_FIELDS_DISPLAY("x87SW_TOP ST0=", StatusWordTOPValueStringTable);
|
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
|
else
|
||||||
{
|
{
|
||||||
bool errorinput = false;
|
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/SEHChainView.cpp \
|
||||||
Src/Gui/EditBreakpointDialog.cpp \
|
Src/Gui/EditBreakpointDialog.cpp \
|
||||||
Src/Gui/CPUArgumentWidget.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 += \
|
HEADERS += \
|
||||||
|
@ -233,7 +236,10 @@ HEADERS += \
|
||||||
Src/Gui/SEHChainView.h \
|
Src/Gui/SEHChainView.h \
|
||||||
Src/Gui/EditBreakpointDialog.h \
|
Src/Gui/EditBreakpointDialog.h \
|
||||||
Src/Gui/CPUArgumentWidget.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 += \
|
FORMS += \
|
||||||
Src/Gui/MainWindow.ui \
|
Src/Gui/MainWindow.ui \
|
||||||
|
@ -260,7 +266,8 @@ FORMS += \
|
||||||
Src/Gui/EntropyDialog.ui \
|
Src/Gui/EntropyDialog.ui \
|
||||||
Src/Gui/AssembleDialog.ui \
|
Src/Gui/AssembleDialog.ui \
|
||||||
Src/Gui/EditBreakpointDialog.ui \
|
Src/Gui/EditBreakpointDialog.ui \
|
||||||
Src/Gui/CPUArgumentWidget.ui
|
Src/Gui/CPUArgumentWidget.ui \
|
||||||
|
Src/Gui/EditFloatRegister.ui
|
||||||
|
|
||||||
TRANSLATIONS = \
|
TRANSLATIONS = \
|
||||||
Translations/x64dbg_zh_CN.ts
|
Translations/x64dbg_zh_CN.ts
|
||||||
|
|
Loading…
Reference in New Issue