1
0
Fork 0

Allow Option for assembling Instruction on Double Click (#2607)

* Add option to preferences

* Added Events for CheckBox

* Added to Header file

* Add Check

* Fix formatting

* Fixed CPUDisassembly.cpp

* Update CPUDisassembly.cpp

* Update CPUDisassembly.cpp

* Simplified and fixed undeclared variable for duint

* Fixed Errors (hopefully)
This commit is contained in:
Yakov5776 2021-03-11 20:03:12 -05:00 committed by GitHub
parent 4970713eb6
commit 64d808e07c
Signed by: GitHub
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 3 deletions

View File

@ -101,10 +101,19 @@ void CPUDisassembly::mouseDoubleClickEvent(QMouseEvent* event)
// (Disassembly) Assemble dialog
case 2:
{
duint dest = DbgGetBranchDestination(rvaToVa(getInitialSelection()));
duint assembleOnDoubleClickInt;
bool assembleOnDoubleClick = (BridgeSettingGetUint("Disassembler", "AssembleOnDoubleClick", &assembleOnDoubleClickInt) && assembleOnDoubleClickInt);
if(assembleOnDoubleClick)
{
assembleSlot();
}
else
{
duint dest = DbgGetBranchDestination(rvaToVa(getInitialSelection()));
if(DbgMemIsValidReadPtr(dest))
gotoAddress(dest);
if(DbgMemIsValidReadPtr(dest))
gotoAddress(dest);
}
}
break;

View File

@ -82,6 +82,7 @@ void SettingsDialog::LoadSettings()
settings.disasm0xPrefixValues = false;
settings.disasmNoBranchDisasmPreview = false;
settings.disasmNoSourceLineAutoComments = false;
settings.disasmAssembleOnDoubleClick = false;
settings.disasmMaxModuleSize = -1;
settings.guiNoForegroundWindow = true;
settings.guiLoadSaveTabOrder = true;
@ -270,6 +271,7 @@ void SettingsDialog::LoadSettings()
GetSettingBool("Disassembler", "0xPrefixValues", &settings.disasm0xPrefixValues);
GetSettingBool("Disassembler", "NoBranchDisasmPreview", &settings.disasmNoBranchDisasmPreview);
GetSettingBool("Disassembler", "NoSourceLineAutoComments", &settings.disasmNoSourceLineAutoComments);
GetSettingBool("Disassembler", "AssembleOnDoubleClick", &settings.disasmAssembleOnDoubleClick);
if(BridgeSettingGetUint("Disassembler", "MaxModuleSize", &cur))
settings.disasmMaxModuleSize = int(cur);
ui->chkArgumentSpaces->setChecked(settings.disasmArgumentSpaces);
@ -285,6 +287,7 @@ void SettingsDialog::LoadSettings()
ui->chk0xPrefixValues->setChecked(settings.disasm0xPrefixValues);
ui->chkNoBranchDisasmPreview->setChecked(settings.disasmNoBranchDisasmPreview);
ui->chkNoSourceLinesAutoComments->setChecked(settings.disasmNoSourceLineAutoComments);
ui->chkDoubleClickAssemble->setChecked(settings.disasmAssembleOnDoubleClick);
ui->spinMaximumModuleNameSize->setValue(settings.disasmMaxModuleSize);
//Gui tab
@ -454,6 +457,7 @@ void SettingsDialog::SaveSettings()
BridgeSettingSetUint("Disassembler", "0xPrefixValues", settings.disasm0xPrefixValues);
BridgeSettingSetUint("Disassembler", "NoBranchDisasmPreview", settings.disasmNoBranchDisasmPreview);
BridgeSettingSetUint("Disassembler", "NoSourceLineAutoComments", settings.disasmNoSourceLineAutoComments);
BridgeSettingSetUint("Disassembler", "AssembleOnDoubleClick", settings.disasmAssembleOnDoubleClick);
BridgeSettingSetUint("Disassembler", "MaxModuleSize", settings.disasmMaxModuleSize);
//Gui tab
@ -1105,6 +1109,11 @@ void SettingsDialog::on_chkNoSourceLinesAutoComments_toggled(bool checked)
settings.disasmNoSourceLineAutoComments = checked;
}
void SettingsDialog::on_chkDoubleClickAssemble_toggled(bool checked)
{
settings.disasmAssembleOnDoubleClick = checked;
}
void SettingsDialog::on_spinMaximumModuleNameSize_valueChanged(int arg1)
{
settings.disasmMaxModuleSize = arg1;

View File

@ -92,6 +92,7 @@ private slots:
void on_chk0xPrefixValues_toggled(bool checked);
void on_chkNoBranchDisasmPreview_toggled(bool checked);
void on_chkNoSourceLinesAutoComments_toggled(bool checked);
void on_chkDoubleClickAssemble_toggled(bool checked);
void on_spinMaximumModuleNameSize_valueChanged(int arg1);
//Gui Tab
void on_chkFpuRegistersLittleEndian_stateChanged(int arg1);
@ -220,6 +221,7 @@ private:
bool disasm0xPrefixValues;
bool disasmNoBranchDisasmPreview;
bool disasmNoSourceLineAutoComments;
bool disasmAssembleOnDoubleClick;
int disasmMaxModuleSize;
//Gui Tab
bool guiFpuRegistersLittleEndian;

View File

@ -713,6 +713,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="chkDoubleClickAssemble">
<property name="text">
<string>Assemble instruction on double-click</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="layoutMaximumModuleNameSize">
<item>