Skip to content

Commit 58e03bf

Browse files
Atvaarkmrexodia
authored andcommitted
GUI: Fixed HexEditDialog behavior (x64dbg#670)
Fixed jumping to the end of the line when changing text. 'Keep size' will set the ASCII / Unicode text box to overwrite mode.
1 parent 12c6fdf commit 58e03bf

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/gui/Src/Gui/HexEditDialog.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,21 @@ void HexEditDialog::on_btnUnicode2Hex_clicked()
9696
void HexEditDialog::on_chkKeepSize_toggled(bool checked)
9797
{
9898
mHexEdit->setKeepSize(checked);
99+
QByteArray data = mHexEdit->data();
100+
if(checked)
101+
{
102+
int dataSize = data.size();
103+
QString asciiMask = QString("x").repeated(dataSize / sizeof(char));
104+
QString unicodeMask = QString("x").repeated(dataSize / sizeof(wchar_t));
105+
ui->lineEditAscii->setInputMask(asciiMask);
106+
ui->lineEditUnicode->setInputMask(unicodeMask);
107+
}
108+
else
109+
{
110+
ui->lineEditAscii->setInputMask("");
111+
ui->lineEditUnicode->setInputMask("");
112+
mHexEdit->setData(data);
113+
}
99114
}
100115

101116
void HexEditDialog::dataChangedSlot()
@@ -126,11 +141,15 @@ void HexEditDialog::dataChangedSlot()
126141
void HexEditDialog::on_lineEditAscii_textEdited(const QString & arg1)
127142
{
128143
Q_UNUSED(arg1);
144+
int cursorPosition = ui->lineEditAscii->cursorPosition();
129145
on_btnAscii2Hex_clicked();
146+
ui->lineEditAscii->setCursorPosition(cursorPosition);
130147
}
131148

132149
void HexEditDialog::on_lineEditUnicode_textEdited(const QString & arg1)
133150
{
134151
Q_UNUSED(arg1);
152+
int cursorPosition = ui->lineEditUnicode->cursorPosition();
135153
on_btnUnicode2Hex_clicked();
154+
ui->lineEditUnicode->setCursorPosition(cursorPosition);
136155
}

0 commit comments

Comments
 (0)