mirror of
https://github.com/rizinorg/cutter.git
synced 2025-01-19 10:58:51 +00:00
Move default AsmOptions code to Configuration and shorten it (#415)
* Correct asm.cmtright to asm.cmt.right * Add asm.flgoff to Disassembly Options * Add Configuration::get/setConfig
This commit is contained in:
parent
0cc1f23826
commit
adb311a122
@ -503,60 +503,6 @@ void CutterCore::triggerGraphOptionsChanged()
|
|||||||
emit graphOptionsChanged();
|
emit graphOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CutterCore::resetDefaultAsmOptions()
|
|
||||||
{
|
|
||||||
// TODO Merge with Configuration.cpp
|
|
||||||
setConfig("asm.esil", Config()->getAsmESIL());
|
|
||||||
setConfig("asm.pseudo", Config()->getAsmPseudo());
|
|
||||||
setConfig("asm.offset", Config()->getAsmOffset());
|
|
||||||
setConfig("asm.describe", Config()->getAsmDescribe());
|
|
||||||
setConfig("asm.stackptr", Config()->getAsmStackPointer());
|
|
||||||
setConfig("asm.slow", Config()->getAsmSlow());
|
|
||||||
setConfig("asm.lines", Config()->getAsmLines());
|
|
||||||
setConfig("asm.fcnlines", Config()->getAsmFcnLines());
|
|
||||||
setConfig("asm.emu", Config()->getAsmEmu());
|
|
||||||
setConfig("asm.cmt.right", Config()->getAsmCmtRight());
|
|
||||||
setConfig("asm.varsum", Config()->getAsmVarSum());
|
|
||||||
setConfig("asm.bytes", Config()->getAsmBytes());
|
|
||||||
setConfig("asm.size", Config()->getAsmSize());
|
|
||||||
setConfig("asm.bytespace", Config()->getAsmBytespace());
|
|
||||||
setConfig("asm.lbytes", Config()->getAsmLBytes());
|
|
||||||
setConfig("asm.nbytes", Config()->getAsmNBytes());
|
|
||||||
setConfig("asm.syntax", Config()->getAsmSyntax());
|
|
||||||
setConfig("asm.ucase", Config()->getAsmUppercase());
|
|
||||||
setConfig("asm.bbline", Config()->getAsmBBLine());
|
|
||||||
setConfig("asm.capitalize", Config()->getAsmCapitalize());
|
|
||||||
setConfig("asm.varsub", Config()->getAsmVarsub());
|
|
||||||
setConfig("asm.varsub_only", Config()->getAsmVarsubOnly());
|
|
||||||
}
|
|
||||||
|
|
||||||
void CutterCore::saveDefaultAsmOptions()
|
|
||||||
{
|
|
||||||
Config()->setAsmESIL(getConfigb("asm.esil"));
|
|
||||||
Config()->setAsmPseudo(getConfigb("asm.pseudo"));
|
|
||||||
Config()->setAsmOffset(getConfigb("asm.offset"));
|
|
||||||
Config()->setAsmDescribe(getConfigb("asm.describe"));
|
|
||||||
Config()->setAsmStackPointer(getConfigb("asm.stackptr"));
|
|
||||||
Config()->setAsmSlow(getConfigb("asm.slow"));
|
|
||||||
Config()->setAsmLines(getConfigb("asm.lines"));
|
|
||||||
Config()->setAsmFcnLines(getConfigb("asm.fcnlines"));
|
|
||||||
Config()->setAsmEmu(getConfigb("asm.emu"));
|
|
||||||
Config()->setAsmCmtRight(getConfigb("asm.cmt.right"));
|
|
||||||
Config()->setAsmVarSum(getConfigb("asm.varsum"));
|
|
||||||
Config()->setAsmBytes(getConfigb("asm.bytes"));
|
|
||||||
Config()->setAsmSize(getConfigb("asm.size"));
|
|
||||||
Config()->setAsmBytespace(getConfigb("asm.bytespace"));
|
|
||||||
Config()->setAsmLBytes(getConfigb("asm.lbytes"));
|
|
||||||
Config()->setAsmNBytes(getConfigi("asm.nbytes"));
|
|
||||||
Config()->setAsmSyntax(getConfig("asm.syntax"));
|
|
||||||
Config()->setAsmUppercase(getConfigb("asm.ucase"));
|
|
||||||
Config()->setAsmBBLine(getConfigb("asm.bbline"));
|
|
||||||
Config()->setAsmCapitalize(getConfigb("asm.capitalize"));
|
|
||||||
Config()->setAsmVarsub(getConfigb("asm.varsub"));
|
|
||||||
Config()->setAsmVarsubOnly(getConfigb("asm.varsub_only"));
|
|
||||||
Config()->setAsmTabs(getConfigi("asm.tabs"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CutterCore::getConfig(const QString &k)
|
QString CutterCore::getConfig(const QString &k)
|
||||||
{
|
{
|
||||||
CORE_LOCK();
|
CORE_LOCK();
|
||||||
@ -564,6 +510,21 @@ QString CutterCore::getConfig(const QString &k)
|
|||||||
return QString(r_config_get(core_->config, key.constData()));
|
return QString(r_config_get(core_->config, key.constData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CutterCore::setConfig(const QString &k, const QVariant &v)
|
||||||
|
{
|
||||||
|
switch(v.type()) {
|
||||||
|
case QVariant::Type::Bool:
|
||||||
|
setConfig(k, v.toBool());
|
||||||
|
break;
|
||||||
|
case QVariant::Type::Int:
|
||||||
|
setConfig(k, v.toInt());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
setConfig(k, v.toString());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CutterCore::setCPU(QString arch, QString cpu, int bits, bool temporary)
|
void CutterCore::setCPU(QString arch, QString cpu, int bits, bool temporary)
|
||||||
{
|
{
|
||||||
setConfig("asm.arch", arch);
|
setConfig("asm.arch", arch);
|
||||||
@ -793,7 +754,6 @@ void CutterCore::setSettings()
|
|||||||
|
|
||||||
setConfig("anal.hasnext", false);
|
setConfig("anal.hasnext", false);
|
||||||
setConfig("asm.lines.call", false);
|
setConfig("asm.lines.call", false);
|
||||||
setConfig("asm.flgoff", true);
|
|
||||||
setConfig("anal.autoname", true);
|
setConfig("anal.autoname", true);
|
||||||
|
|
||||||
// Fucking pancake xD
|
// Fucking pancake xD
|
||||||
@ -1584,7 +1544,6 @@ QJsonArray CutterCore::getOpenedFiles()
|
|||||||
QJsonDocument files = cmdj("oj");
|
QJsonDocument files = cmdj("oj");
|
||||||
return files.array();
|
return files.array();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QString> CutterCore::getColorThemes()
|
QList<QString> CutterCore::getColorThemes()
|
||||||
{
|
{
|
||||||
QList<QString> r;
|
QList<QString> r;
|
||||||
|
@ -343,10 +343,8 @@ public:
|
|||||||
void setConfig(const QString &k, const QString &v);
|
void setConfig(const QString &k, const QString &v);
|
||||||
void setConfig(const QString &k, int v);
|
void setConfig(const QString &k, int v);
|
||||||
void setConfig(const QString &k, bool v);
|
void setConfig(const QString &k, bool v);
|
||||||
void setConfig(const QString &k, const char *v)
|
void setConfig(const QString &k, const char *v) { setConfig(k, QString(v)); }
|
||||||
{
|
void setConfig(const QString &k, const QVariant &v);
|
||||||
setConfig(k, QString(v));
|
|
||||||
}
|
|
||||||
int getConfigi(const QString &k);
|
int getConfigi(const QString &k);
|
||||||
bool getConfigb(const QString &k);
|
bool getConfigb(const QString &k);
|
||||||
QString getConfig(const QString &k);
|
QString getConfig(const QString &k);
|
||||||
@ -437,9 +435,6 @@ public:
|
|||||||
void triggerAsmOptionsChanged();
|
void triggerAsmOptionsChanged();
|
||||||
void triggerGraphOptionsChanged();
|
void triggerGraphOptionsChanged();
|
||||||
|
|
||||||
void resetDefaultAsmOptions();
|
|
||||||
void saveDefaultAsmOptions();
|
|
||||||
|
|
||||||
void loadScript(const QString &scriptname);
|
void loadScript(const QString &scriptname);
|
||||||
QString getVersionInformation();
|
QString getVersionInformation();
|
||||||
QJsonArray getOpenedFiles();
|
QJsonArray getOpenedFiles();
|
||||||
|
@ -226,9 +226,6 @@ void MainWindow::openNewFile(const QString &fn, int analLevel, QList<QString> ad
|
|||||||
{
|
{
|
||||||
setFilename(fn);
|
setFilename(fn);
|
||||||
|
|
||||||
/* Reset config */
|
|
||||||
core->resetDefaultAsmOptions();
|
|
||||||
|
|
||||||
/* Prompt to load filename.r2 script */
|
/* Prompt to load filename.r2 script */
|
||||||
QString script = QString("%1.r2").arg(this->filename);
|
QString script = QString("%1.r2").arg(this->filename);
|
||||||
if (r_file_exists(script.toStdString().data())) {
|
if (r_file_exists(script.toStdString().data())) {
|
||||||
|
@ -24,8 +24,6 @@ AsmOptionsWidget::AsmOptionsWidget(PreferencesDialog */*dialog*/, QWidget *paren
|
|||||||
|
|
||||||
connect(Core(), SIGNAL(asmOptionsChanged()), this, SLOT(updateAsmOptionsFromVars()));
|
connect(Core(), SIGNAL(asmOptionsChanged()), this, SLOT(updateAsmOptionsFromVars()));
|
||||||
|
|
||||||
ui->buttonBox->addButton(tr("Save as Defaults"), QDialogButtonBox::ButtonRole::ApplyRole);
|
|
||||||
|
|
||||||
//connect(dialog, SIGNAL(saveAsDefault()), this, SLOT(saveAsDefault()));
|
//connect(dialog, SIGNAL(saveAsDefault()), this, SLOT(saveAsDefault()));
|
||||||
//connect(dialog, SIGNAL(resetToDefault()), this, SLOT(resetToDefault()));
|
//connect(dialog, SIGNAL(resetToDefault()), this, SLOT(resetToDefault()));
|
||||||
}
|
}
|
||||||
@ -35,33 +33,34 @@ AsmOptionsWidget::~AsmOptionsWidget() {}
|
|||||||
|
|
||||||
void AsmOptionsWidget::updateAsmOptionsFromVars()
|
void AsmOptionsWidget::updateAsmOptionsFromVars()
|
||||||
{
|
{
|
||||||
qhelpers::setCheckedWithoutSignals(ui->esilCheckBox, Core()->getConfigb("asm.esil"));
|
qhelpers::setCheckedWithoutSignals(ui->esilCheckBox, Config()->getConfigBool("asm.esil"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->pseudoCheckBox, Core()->getConfigb("asm.pseudo"));
|
qhelpers::setCheckedWithoutSignals(ui->pseudoCheckBox, Config()->getConfigBool("asm.pseudo"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->offsetCheckBox, Core()->getConfigb("asm.offset"));
|
qhelpers::setCheckedWithoutSignals(ui->offsetCheckBox, Config()->getConfigBool("asm.offset"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->describeCheckBox, Core()->getConfigb("asm.describe"));
|
qhelpers::setCheckedWithoutSignals(ui->describeCheckBox, Config()->getConfigBool("asm.describe"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->stackpointerCheckBox, Core()->getConfigb("asm.stackptr"));
|
qhelpers::setCheckedWithoutSignals(ui->stackpointerCheckBox, Config()->getConfigBool("asm.stackptr"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->slowCheckBox, Core()->getConfigb("asm.slow"));
|
qhelpers::setCheckedWithoutSignals(ui->slowCheckBox, Config()->getConfigBool("asm.slow"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->linesCheckBox, Core()->getConfigb("asm.lines"));
|
qhelpers::setCheckedWithoutSignals(ui->linesCheckBox, Config()->getConfigBool("asm.lines"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->fcnlinesCheckBox, Core()->getConfigb("asm.fcnlines"));
|
qhelpers::setCheckedWithoutSignals(ui->fcnlinesCheckBox, Config()->getConfigBool("asm.fcnlines"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->emuCheckBox, Core()->getConfigb("asm.emu"));
|
qhelpers::setCheckedWithoutSignals(ui->flgoffCheckBox, Config()->getConfigBool("asm.flgoff"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->cmtrightCheckBox, Core()->getConfigb("asm.cmtright"));
|
qhelpers::setCheckedWithoutSignals(ui->emuCheckBox, Config()->getConfigBool("asm.emu"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->varsumCheckBox, Core()->getConfigb("asm.varsum"));
|
qhelpers::setCheckedWithoutSignals(ui->cmtrightCheckBox, Config()->getConfigBool("asm.cmt.right"));
|
||||||
qhelpers::setCheckedWithoutSignals(ui->sizeCheckBox, Core()->getConfigb("asm.size"));
|
qhelpers::setCheckedWithoutSignals(ui->varsumCheckBox, Config()->getConfigBool("asm.varsum"));
|
||||||
|
qhelpers::setCheckedWithoutSignals(ui->sizeCheckBox, Config()->getConfigBool("asm.size"));
|
||||||
|
|
||||||
bool bytesEnabled = Core()->getConfigb("asm.bytes");
|
bool bytesEnabled = Config()->getConfigBool("asm.bytes");
|
||||||
qhelpers::setCheckedWithoutSignals(ui->bytesCheckBox, bytesEnabled);
|
qhelpers::setCheckedWithoutSignals(ui->bytesCheckBox, bytesEnabled);
|
||||||
qhelpers::setCheckedWithoutSignals(ui->bytespaceCheckBox, Core()->getConfigb("asm.bytespace"));
|
qhelpers::setCheckedWithoutSignals(ui->bytespaceCheckBox, Config()->getConfigBool("asm.bytespace"));
|
||||||
ui->bytespaceCheckBox->setEnabled(bytesEnabled);
|
ui->bytespaceCheckBox->setEnabled(bytesEnabled);
|
||||||
qhelpers::setCheckedWithoutSignals(ui->lbytesCheckBox, Core()->getConfigb("asm.lbytes"));
|
qhelpers::setCheckedWithoutSignals(ui->lbytesCheckBox, Config()->getConfigBool("asm.lbytes"));
|
||||||
ui->lbytesCheckBox->setEnabled(bytesEnabled);
|
ui->lbytesCheckBox->setEnabled(bytesEnabled);
|
||||||
ui->nbytesSpinBox->blockSignals(true);
|
ui->nbytesSpinBox->blockSignals(true);
|
||||||
ui->nbytesSpinBox->setValue(Core()->getConfigi("asm.nbytes"));
|
ui->nbytesSpinBox->setValue(Config()->getConfigInt("asm.nbytes"));
|
||||||
ui->nbytesSpinBox->blockSignals(false);
|
ui->nbytesSpinBox->blockSignals(false);
|
||||||
ui->nbytesLabel->setEnabled(bytesEnabled);
|
ui->nbytesLabel->setEnabled(bytesEnabled);
|
||||||
ui->nbytesSpinBox->setEnabled(bytesEnabled);
|
ui->nbytesSpinBox->setEnabled(bytesEnabled);
|
||||||
|
|
||||||
|
|
||||||
QString currentSyntax = Core()->getConfig("asm.syntax");
|
QString currentSyntax = Config()->getConfigString("asm.syntax");
|
||||||
for (int i = 0; i < ui->syntaxComboBox->count(); i++) {
|
for (int i = 0; i < ui->syntaxComboBox->count(); i++) {
|
||||||
if (ui->syntaxComboBox->itemData(i) == currentSyntax) {
|
if (ui->syntaxComboBox->itemData(i) == currentSyntax) {
|
||||||
ui->syntaxComboBox->blockSignals(true);
|
ui->syntaxComboBox->blockSignals(true);
|
||||||
@ -72,9 +71,9 @@ void AsmOptionsWidget::updateAsmOptionsFromVars()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui->caseComboBox->blockSignals(true);
|
ui->caseComboBox->blockSignals(true);
|
||||||
if (Core()->getConfigb("asm.ucase")) {
|
if (Config()->getConfigBool("asm.ucase")) {
|
||||||
ui->caseComboBox->setCurrentIndex(1);
|
ui->caseComboBox->setCurrentIndex(1);
|
||||||
} else if (Core()->getConfigb("asm.capitalize")) {
|
} else if (Config()->getConfigBool("asm.capitalize")) {
|
||||||
ui->caseComboBox->setCurrentIndex(2);
|
ui->caseComboBox->setCurrentIndex(2);
|
||||||
} else {
|
} else {
|
||||||
ui->caseComboBox->setCurrentIndex(0);
|
ui->caseComboBox->setCurrentIndex(0);
|
||||||
@ -82,26 +81,20 @@ void AsmOptionsWidget::updateAsmOptionsFromVars()
|
|||||||
ui->caseComboBox->blockSignals(false);
|
ui->caseComboBox->blockSignals(false);
|
||||||
|
|
||||||
ui->asmTabsSpinBox->blockSignals(true);
|
ui->asmTabsSpinBox->blockSignals(true);
|
||||||
ui->asmTabsSpinBox->setValue(Core()->getConfigi("asm.tabs"));
|
ui->asmTabsSpinBox->setValue(Config()->getConfigInt("asm.tabs"));
|
||||||
ui->asmTabsSpinBox->blockSignals(false);
|
ui->asmTabsSpinBox->blockSignals(false);
|
||||||
|
|
||||||
qhelpers::setCheckedWithoutSignals(ui->bblineCheckBox, Core()->getConfigb("asm.bbline"));
|
qhelpers::setCheckedWithoutSignals(ui->bblineCheckBox, Config()->getConfigBool("asm.bbline"));
|
||||||
|
|
||||||
bool varsubEnabled = Core()->getConfigb("asm.varsub");
|
bool varsubEnabled = Config()->getConfigBool("asm.varsub");
|
||||||
qhelpers::setCheckedWithoutSignals(ui->varsubCheckBox, varsubEnabled);
|
qhelpers::setCheckedWithoutSignals(ui->varsubCheckBox, varsubEnabled);
|
||||||
qhelpers::setCheckedWithoutSignals(ui->varsubOnlyCheckBox, Core()->getConfigb("asm.varsub_only"));
|
qhelpers::setCheckedWithoutSignals(ui->varsubOnlyCheckBox, Config()->getConfigBool("asm.varsub_only"));
|
||||||
ui->varsubOnlyCheckBox->setEnabled(varsubEnabled);
|
ui->varsubOnlyCheckBox->setEnabled(varsubEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AsmOptionsWidget::saveAsDefault()
|
|
||||||
{
|
|
||||||
Core()->saveDefaultAsmOptions();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AsmOptionsWidget::resetToDefault()
|
void AsmOptionsWidget::resetToDefault()
|
||||||
{
|
{
|
||||||
Core()->resetDefaultAsmOptions();
|
Config()->resetToDefaultAsmOptions();
|
||||||
updateAsmOptionsFromVars();
|
updateAsmOptionsFromVars();
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
@ -116,73 +109,79 @@ void AsmOptionsWidget::triggerAsmOptionsChanged()
|
|||||||
|
|
||||||
void AsmOptionsWidget::on_esilCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_esilCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.esil", checked);
|
Config()->setConfig("asm.esil", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_pseudoCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_pseudoCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.pseudo", checked);
|
Config()->setConfig("asm.pseudo", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_offsetCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_offsetCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.offset", checked);
|
Config()->setConfig("asm.offset", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_describeCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_describeCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.describe", checked);
|
Config()->setConfig("asm.describe", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_stackpointerCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_stackpointerCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.stackptr", checked);
|
Config()->setConfig("asm.stackptr", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_slowCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_slowCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.slow", checked);
|
Config()->setConfig("asm.slow", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_linesCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_linesCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.lines", checked);
|
Config()->setConfig("asm.lines", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_fcnlinesCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_fcnlinesCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.fcnlines", checked);
|
Config()->setConfig("asm.fcnlines", checked);
|
||||||
|
triggerAsmOptionsChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AsmOptionsWidget::on_flgoffCheckBox_toggled(bool checked)
|
||||||
|
{
|
||||||
|
Config()->setConfig("asm.flgoff", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_emuCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_emuCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.emu", checked);
|
Config()->setConfig("asm.emu", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_cmtrightCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_cmtrightCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.cmtright", checked);
|
Config()->setConfig("asm.cmt.right", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_varsumCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_varsumCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.varsum", checked);
|
Config()->setConfig("asm.varsum", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_bytesCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_bytesCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.bytes", checked);
|
Config()->setConfig("asm.bytes", checked);
|
||||||
ui->bytespaceCheckBox->setEnabled(checked);
|
ui->bytespaceCheckBox->setEnabled(checked);
|
||||||
ui->lbytesCheckBox->setEnabled(checked);
|
ui->lbytesCheckBox->setEnabled(checked);
|
||||||
ui->nbytesLabel->setEnabled(checked);
|
ui->nbytesLabel->setEnabled(checked);
|
||||||
@ -192,31 +191,31 @@ void AsmOptionsWidget::on_bytesCheckBox_toggled(bool checked)
|
|||||||
|
|
||||||
void AsmOptionsWidget::on_sizeCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_sizeCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.size", checked);
|
Config()->setConfig("asm.size", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_bytespaceCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_bytespaceCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.bytespace", checked);
|
Config()->setConfig("asm.bytespace", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_lbytesCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_lbytesCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.lbytes", checked);
|
Config()->setConfig("asm.lbytes", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_nbytesSpinBox_valueChanged(int value)
|
void AsmOptionsWidget::on_nbytesSpinBox_valueChanged(int value)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.nbytes", value);
|
Config()->setConfig("asm.nbytes", value);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_syntaxComboBox_currentIndexChanged(int index)
|
void AsmOptionsWidget::on_syntaxComboBox_currentIndexChanged(int index)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.syntax",
|
Config()->setConfig("asm.syntax",
|
||||||
ui->syntaxComboBox->itemData(index).toString().toUtf8().constData());
|
ui->syntaxComboBox->itemData(index).toString().toUtf8().constData());
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
@ -246,34 +245,34 @@ void AsmOptionsWidget::on_caseComboBox_currentIndexChanged(int index)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Core()->setConfig("asm.ucase", ucase);
|
Config()->setConfig("asm.ucase", ucase);
|
||||||
Core()->setConfig("asm.capitalize", capitalize);
|
Config()->setConfig("asm.capitalize", capitalize);
|
||||||
|
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_asmTabsSpinBox_valueChanged(int value)
|
void AsmOptionsWidget::on_asmTabsSpinBox_valueChanged(int value)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.tabs", value);
|
Config()->setConfig("asm.tabs", value);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_bblineCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_bblineCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.bbline", checked);
|
Config()->setConfig("asm.bbline", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_varsubCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_varsubCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.varsub", checked);
|
Config()->setConfig("asm.varsub", checked);
|
||||||
ui->varsubOnlyCheckBox->setEnabled(checked);
|
ui->varsubOnlyCheckBox->setEnabled(checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsmOptionsWidget::on_varsubOnlyCheckBox_toggled(bool checked)
|
void AsmOptionsWidget::on_varsubOnlyCheckBox_toggled(bool checked)
|
||||||
{
|
{
|
||||||
Core()->setConfig("asm.varsub_only", checked);
|
Config()->setConfig("asm.varsub_only", checked);
|
||||||
triggerAsmOptionsChanged();
|
triggerAsmOptionsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,9 +280,6 @@ void AsmOptionsWidget::on_varsubOnlyCheckBox_toggled(bool checked)
|
|||||||
void AsmOptionsWidget::on_buttonBox_clicked(QAbstractButton *button)
|
void AsmOptionsWidget::on_buttonBox_clicked(QAbstractButton *button)
|
||||||
{
|
{
|
||||||
switch (ui->buttonBox->buttonRole(button)) {
|
switch (ui->buttonBox->buttonRole(button)) {
|
||||||
case QDialogButtonBox::ButtonRole::ApplyRole:
|
|
||||||
saveAsDefault();
|
|
||||||
break;
|
|
||||||
case QDialogButtonBox::ButtonRole::ResetRole:
|
case QDialogButtonBox::ButtonRole::ResetRole:
|
||||||
resetToDefault();
|
resetToDefault();
|
||||||
break;
|
break;
|
||||||
|
@ -28,7 +28,6 @@ private:
|
|||||||
void triggerAsmOptionsChanged();
|
void triggerAsmOptionsChanged();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void saveAsDefault();
|
|
||||||
void resetToDefault();
|
void resetToDefault();
|
||||||
|
|
||||||
void updateAsmOptionsFromVars();
|
void updateAsmOptionsFromVars();
|
||||||
@ -41,6 +40,7 @@ private slots:
|
|||||||
void on_slowCheckBox_toggled(bool checked);
|
void on_slowCheckBox_toggled(bool checked);
|
||||||
void on_linesCheckBox_toggled(bool checked);
|
void on_linesCheckBox_toggled(bool checked);
|
||||||
void on_fcnlinesCheckBox_toggled(bool checked);
|
void on_fcnlinesCheckBox_toggled(bool checked);
|
||||||
|
void on_flgoffCheckBox_toggled(bool checked);
|
||||||
void on_emuCheckBox_toggled(bool checked);
|
void on_emuCheckBox_toggled(bool checked);
|
||||||
void on_cmtrightCheckBox_toggled(bool checked);
|
void on_cmtrightCheckBox_toggled(bool checked);
|
||||||
void on_varsumCheckBox_toggled(bool checked);
|
void on_varsumCheckBox_toggled(bool checked);
|
||||||
|
@ -70,6 +70,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="flgoffCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show offset before flags (asm.flgoff)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="emuCheckBox">
|
<widget class="QCheckBox" name="emuCheckBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -80,7 +87,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="cmtrightCheckBox">
|
<widget class="QCheckBox" name="cmtrightCheckBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Show comments at right of assembly (asm.cmtright)</string>
|
<string>Show comments at right of assembly (asm.cmt.right)</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -7,6 +7,37 @@
|
|||||||
|
|
||||||
Configuration *Configuration::mPtr = nullptr;
|
Configuration *Configuration::mPtr = nullptr;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief All asm.* options saved as settings. Values are the default values.
|
||||||
|
*/
|
||||||
|
static const QHash<QString, QVariant> asmOptions = {
|
||||||
|
{ "asm.esil", false },
|
||||||
|
{ "asm.pseudo", false },
|
||||||
|
{ "asm.offset", true },
|
||||||
|
{ "asm.describe", false },
|
||||||
|
{ "asm.stackptr", false },
|
||||||
|
{ "asm.slow", true },
|
||||||
|
{ "asm.lines", true },
|
||||||
|
{ "asm.fcnlines", true },
|
||||||
|
{ "asm.flgoff", false },
|
||||||
|
{ "asm.emu", false },
|
||||||
|
{ "asm.cmt.right", true },
|
||||||
|
{ "asm.varsum", false },
|
||||||
|
{ "asm.bytes", false },
|
||||||
|
{ "asm.size", false },
|
||||||
|
{ "asm.bytespace", false },
|
||||||
|
{ "asm.lbytes", true },
|
||||||
|
{ "asm.nbytes", 10 },
|
||||||
|
{ "asm.syntax", "intel" },
|
||||||
|
{ "asm.ucase", false },
|
||||||
|
{ "asm.bbline", false },
|
||||||
|
{ "asm.capitalize", false },
|
||||||
|
{ "asm.varsub", true },
|
||||||
|
{ "asm.varsub_only", true },
|
||||||
|
{ "asm.tabs", 5 }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
Configuration::Configuration() : QObject()
|
Configuration::Configuration() : QObject()
|
||||||
{
|
{
|
||||||
mPtr = this;
|
mPtr = this;
|
||||||
@ -24,13 +55,14 @@ void Configuration::loadInitial()
|
|||||||
{
|
{
|
||||||
setDarkTheme(getDarkTheme());
|
setDarkTheme(getDarkTheme());
|
||||||
setColorTheme(getCurrentTheme());
|
setColorTheme(getCurrentTheme());
|
||||||
|
applySavedAsmOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Configuration::resetAll()
|
void Configuration::resetAll()
|
||||||
{
|
{
|
||||||
Core()->cmd("e-");
|
Core()->cmd("e-");
|
||||||
Core()->setSettings();
|
Core()->setSettings();
|
||||||
Core()->resetDefaultAsmOptions();
|
resetToDefaultAsmOptions();
|
||||||
// Delete the file so no extra configuration is in it.
|
// Delete the file so no extra configuration is in it.
|
||||||
QFile settingsFile(s.fileName());
|
QFile settingsFile(s.fileName());
|
||||||
settingsFile.remove();
|
settingsFile.remove();
|
||||||
@ -183,3 +215,58 @@ void Configuration::setColorTheme(QString theme)
|
|||||||
}
|
}
|
||||||
emit colorsUpdated();
|
emit colorsUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Configuration::resetToDefaultAsmOptions()
|
||||||
|
{
|
||||||
|
for (auto it = asmOptions.begin(); it != asmOptions.end(); it++) {
|
||||||
|
setConfig(it.key(), it.value());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Configuration::applySavedAsmOptions()
|
||||||
|
{
|
||||||
|
for (auto it = asmOptions.begin(); it != asmOptions.end(); it++) {
|
||||||
|
Core()->setConfig(it.key(), s.value(it.key(), it.value()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant Configuration::getConfigVar(const QString &key)
|
||||||
|
{
|
||||||
|
QHash<QString, QVariant>::const_iterator it = asmOptions.find(key);
|
||||||
|
if (it != asmOptions.end()) {
|
||||||
|
switch(it.value().type()) {
|
||||||
|
case QVariant::Type::Bool:
|
||||||
|
return Core()->getConfigb(key);
|
||||||
|
case QVariant::Type::Int:
|
||||||
|
return Core()->getConfigi(key);
|
||||||
|
default:
|
||||||
|
return Core()->getConfig(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Configuration::getConfigBool(const QString &key)
|
||||||
|
{
|
||||||
|
return getConfigVar(key).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
int Configuration::getConfigInt(const QString &key)
|
||||||
|
{
|
||||||
|
return getConfigVar(key).toInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Configuration::getConfigString(const QString &key)
|
||||||
|
{
|
||||||
|
return getConfigVar(key).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Configuration::setConfig(const QString &key, const QVariant &value)
|
||||||
|
{
|
||||||
|
if (asmOptions.contains(key)) {
|
||||||
|
s.setValue(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
Core()->setConfig(key, value);
|
||||||
|
}
|
@ -25,6 +25,9 @@ private:
|
|||||||
// Images
|
// Images
|
||||||
QString logoFile;
|
QString logoFile;
|
||||||
|
|
||||||
|
// Asm Options
|
||||||
|
void applySavedAsmOptions();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Functions
|
// Functions
|
||||||
Configuration();
|
Configuration();
|
||||||
@ -47,6 +50,9 @@ public:
|
|||||||
// Images
|
// Images
|
||||||
QString getLogoFile();
|
QString getLogoFile();
|
||||||
|
|
||||||
|
// Asm Options
|
||||||
|
void resetToDefaultAsmOptions();
|
||||||
|
|
||||||
// Graph
|
// Graph
|
||||||
int getGraphBlockMaxChars() const
|
int getGraphBlockMaxChars() const
|
||||||
{
|
{
|
||||||
@ -57,220 +63,22 @@ public:
|
|||||||
s.setValue("graph.maxcols", ch);
|
s.setValue("graph.maxcols", ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Imho it's wrong doing it this way. Should find something else.
|
QString getCurrentTheme() const { return s.value("theme", "solarized").toString(); }
|
||||||
bool getAsmESIL() const
|
|
||||||
{
|
|
||||||
return s.value("asm.esil", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmESIL(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.esil", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmPseudo() const
|
|
||||||
{
|
|
||||||
return s.value("asm.pseudo", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmPseudo(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.pseudo", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmOffset() const
|
|
||||||
{
|
|
||||||
return s.value("asm.offset", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmOffset(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.offset", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmDescribe() const
|
|
||||||
{
|
|
||||||
return s.value("asm.describe", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmDescribe(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.describe", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmStackPointer() const
|
|
||||||
{
|
|
||||||
return s.value("asm.stackptr", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmStackPointer(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.stackptr", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmSlow() const
|
|
||||||
{
|
|
||||||
return s.value("asm.slow", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmSlow(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.slow", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmLines() const
|
|
||||||
{
|
|
||||||
return s.value("asm.lines", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmLines(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.lines", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmFcnLines() const
|
|
||||||
{
|
|
||||||
return s.value("asm.fcnlines", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmFcnLines(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.fcnlines", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmEmu() const
|
|
||||||
{
|
|
||||||
return s.value("asm.emu", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmEmu(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.emu", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmCmtRight() const
|
|
||||||
{
|
|
||||||
return s.value("asm.cmt.right", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmCmtRight(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.cmt.right", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmVarSum() const
|
|
||||||
{
|
|
||||||
return s.value("asm.varsum", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmVarSum(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.varsum", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmBytes() const
|
|
||||||
{
|
|
||||||
return s.value("asm.bytes", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmBytes(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.bytes", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmSize() const
|
|
||||||
{
|
|
||||||
return s.value("asm.size", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmSize(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.size", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmBytespace() const
|
|
||||||
{
|
|
||||||
return s.value("asm.bytespace", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmBytespace(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.bytespace", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmLBytes() const
|
|
||||||
{
|
|
||||||
return s.value("asm.lbytes", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmLBytes(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.lbytes", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
int getAsmNBytes() const
|
|
||||||
{
|
|
||||||
return s.value("asm.nbytes", 10).toInt();
|
|
||||||
}
|
|
||||||
void setAsmNBytes(int v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.nbytes", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString getAsmSyntax() const
|
|
||||||
{
|
|
||||||
return s.value("asm.syntax", "intel").toString();
|
|
||||||
}
|
|
||||||
void setAsmSyntax(const QString &v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.syntax", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmUppercase() const
|
|
||||||
{
|
|
||||||
return s.value("asm.ucase", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmUppercase(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.ucase", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmBBLine() const
|
|
||||||
{
|
|
||||||
return s.value("asm.bbline", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmBBLine(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.bbline", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmCapitalize() const
|
|
||||||
{
|
|
||||||
return s.value("asm.capitalize", false).toBool();
|
|
||||||
}
|
|
||||||
void setAsmCapitalize(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.capitalize", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmVarsub() const
|
|
||||||
{
|
|
||||||
return s.value("asm.varsub", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmVarsub(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.varsub", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getAsmVarsubOnly() const
|
|
||||||
{
|
|
||||||
return s.value("asm.varsub_only", true).toBool();
|
|
||||||
}
|
|
||||||
void setAsmVarsubOnly(bool v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.varsub_only", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
int getAsmTabs() const
|
|
||||||
{
|
|
||||||
return s.value("asm.tabs", 5).toInt();
|
|
||||||
}
|
|
||||||
void setAsmTabs(int v)
|
|
||||||
{
|
|
||||||
s.setValue("asm.tabs", v);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString getCurrentTheme() const
|
|
||||||
{
|
|
||||||
return s.value("theme", "solarized").toString();
|
|
||||||
}
|
|
||||||
void setColorTheme(QString theme);
|
void setColorTheme(QString theme);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Get the value of a config var either from r2 or settings, depending on the key.
|
||||||
|
*/
|
||||||
|
QVariant getConfigVar(const QString &key);
|
||||||
|
bool getConfigBool(const QString &key);
|
||||||
|
int getConfigInt(const QString &key);
|
||||||
|
QString getConfigString(const QString &key);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set the value of a config var either to r2 or settings, depending on the key.
|
||||||
|
*/
|
||||||
|
void setConfig(const QString &key, const QVariant &value);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void fontsUpdated();
|
void fontsUpdated();
|
||||||
void colorsUpdated();
|
void colorsUpdated();
|
||||||
|
Loading…
Reference in New Issue
Block a user