#include "fielddelegate.h" #include "../model/fieldmodel.h" #include #include using namespace std; using namespace Io; namespace QtGui { FieldDelegate::FieldDelegate(QObject *parent) : QStyledItemDelegate(parent) { } void FieldDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { if (auto *lineEdit = qobject_cast(editor)) { const auto *model = index.model(); lineEdit->setText(model->data(index, Qt::EditRole).toString()); if (const auto *fieldModel = qobject_cast(model)) { if (fieldModel->passwordVisibility() == PasswordVisibility::Never) { lineEdit->setEchoMode( fieldModel->field(static_cast(index.row()))->type() != FieldType::Password ? QLineEdit::Normal : QLineEdit::Password); } else { lineEdit->setEchoMode(QLineEdit::Normal); } } else { lineEdit->setEchoMode(QLineEdit::Normal); } } else { QStyledItemDelegate::setEditorData(editor, index); } } } // namespace QtGui