diff --git a/src/EditDialog.cpp b/src/EditDialog.cpp index 92571516..64d72257 100644 --- a/src/EditDialog.cpp +++ b/src/EditDialog.cpp @@ -54,10 +54,15 @@ void EditDialog::loadText(const QByteArray& data, int row, int col) curCol = col; oldData = data; - ui->editorText->setPlainText(data); + QString textData = QString::fromUtf8(data.constData(), data.size()); + ui->editorText->setPlainText(textData); ui->editorText->setFocus(); ui->editorText->selectAll(); hexEdit->setData(data); + + // Assume it's binary data and only call checkDatyType afterwards. This means the correct input widget is selected here in all cases + // but once the user changed it to text input it will stay there. + ui->editorStack->setCurrentIndex(1); checkDataType(); } @@ -162,7 +167,6 @@ void EditDialog::checkDataType() ui->comboEditor->setVisible(false); } else { // It's not. So it's probably some random binary data. - ui->editorStack->setCurrentIndex(1); ui->labelType->setText(tr("Type of data currently in cell: Binary")); ui->labelSize->setText(tr("%n byte(s)", "", hexEdit->data().length())); diff --git a/src/EditDialog.ui b/src/EditDialog.ui index 1855e9a9..83a5ab16 100644 --- a/src/EditDialog.ui +++ b/src/EditDialog.ui @@ -93,6 +93,9 @@ This area displays information about the data present in this database cell + + false +