cutter/src/dialogs/EditStringDialog.cpp
2021-01-24 18:34:16 +02:00

61 lines
1.5 KiB
C++

#include "EditStringDialog.h"
#include "ui_EditStringDialog.h"
EditStringDialog::EditStringDialog(QWidget *parent)
: QDialog(parent), ui(new Ui::EditStringDialog {})
{
ui->setupUi(this);
ui->spinBox_size->setMinimum(0);
ui->lineEdit_address->setMinimumWidth(150);
ui->spinBox_size->setFocus();
ui->comboBox_type->addItems({ "Auto", "ASCII/Latin1", "UTF-8" });
connect(ui->checkBox_autoSize, &QCheckBox::toggled, ui->spinBox_size, &QSpinBox::setDisabled);
}
EditStringDialog::~EditStringDialog() {}
void EditStringDialog::setStringStartAddress(uint64_t address)
{
ui->lineEdit_address->setText(QString::number(address, 16));
}
bool EditStringDialog::getStringStartAddress(uint64_t &returnValue) const
{
bool status = false;
returnValue = ui->lineEdit_address->text().toLongLong(&status, 16);
return status;
}
void EditStringDialog::setStringSizeValue(uint32_t size)
{
ui->spinBox_size->setValue(size);
}
int EditStringDialog::getStringSizeValue() const
{
if (ui->checkBox_autoSize->isChecked()) {
return -1;
}
return ui->spinBox_size->value();
}
EditStringDialog::StringType EditStringDialog::getStringType() const
{
const int indexVal = ui->comboBox_type->currentIndex();
switch (indexVal) {
case 0: {
return EditStringDialog::StringType::Auto;
}
case 1: {
return EditStringDialog::StringType::ASCII_LATIN1;
}
case 2: {
return EditStringDialog::StringType::UTF8;
}
default:
return EditStringDialog::StringType::Auto;
}
}