mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 02:42:55 +00:00
properly indent QSqlRelationalDelegate
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
68c87b624a
commit
2872a3bd26
1 changed files with 52 additions and 52 deletions
|
@ -50,64 +50,64 @@ class QSqlRelationalDelegate: public QItemDelegate
|
|||
{
|
||||
public:
|
||||
|
||||
explicit QSqlRelationalDelegate(QObject *aParent = Q_NULLPTR)
|
||||
: QItemDelegate(aParent)
|
||||
{}
|
||||
explicit QSqlRelationalDelegate(QObject *aParent = Q_NULLPTR)
|
||||
: QItemDelegate(aParent)
|
||||
{}
|
||||
|
||||
~QSqlRelationalDelegate()
|
||||
{}
|
||||
~QSqlRelationalDelegate()
|
||||
{}
|
||||
|
||||
QWidget *createEditor(QWidget *aParent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
|
||||
QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
|
||||
if (!childModel)
|
||||
return QItemDelegate::createEditor(aParent, option, index);
|
||||
QWidget *createEditor(QWidget *aParent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
|
||||
QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
|
||||
if (!childModel)
|
||||
return QItemDelegate::createEditor(aParent, option, index);
|
||||
|
||||
QComboBox *combo = new QComboBox(aParent);
|
||||
combo->setModel(childModel);
|
||||
combo->setModelColumn(childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn()));
|
||||
combo->installEventFilter(const_cast<QSqlRelationalDelegate *>(this));
|
||||
QComboBox *combo = new QComboBox(aParent);
|
||||
combo->setModel(childModel);
|
||||
combo->setModelColumn(childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn()));
|
||||
combo->installEventFilter(const_cast<QSqlRelationalDelegate *>(this));
|
||||
|
||||
return combo;
|
||||
}
|
||||
|
||||
void setEditorData(QWidget *editor, const QModelIndex &index) const
|
||||
{
|
||||
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
|
||||
QComboBox *combo = qobject_cast<QComboBox *>(editor);
|
||||
if (!sqlModel || !combo) {
|
||||
QItemDelegate::setEditorData(editor, index);
|
||||
return;
|
||||
}
|
||||
combo->setCurrentIndex(combo->findText(sqlModel->data(index).toString()));
|
||||
}
|
||||
|
||||
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
|
||||
{
|
||||
if (!index.isValid())
|
||||
return;
|
||||
|
||||
QSqlRelationalTableModel *sqlModel = qobject_cast<QSqlRelationalTableModel *>(model);
|
||||
QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
|
||||
QComboBox *combo = qobject_cast<QComboBox *>(editor);
|
||||
if (!sqlModel || !childModel || !combo) {
|
||||
QItemDelegate::setModelData(editor, model, index);
|
||||
return;
|
||||
return combo;
|
||||
}
|
||||
|
||||
int currentItem = combo->currentIndex();
|
||||
int childColIndex = childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn());
|
||||
int childEditIndex = childModel->fieldIndex(sqlModel->relation(index.column()).indexColumn());
|
||||
sqlModel->setData(index,
|
||||
childModel->data(childModel->index(currentItem, childColIndex), Qt::DisplayRole),
|
||||
Qt::DisplayRole);
|
||||
sqlModel->setData(index,
|
||||
childModel->data(childModel->index(currentItem, childEditIndex), Qt::EditRole),
|
||||
Qt::EditRole);
|
||||
}
|
||||
void setEditorData(QWidget *editor, const QModelIndex &index) const
|
||||
{
|
||||
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
|
||||
QComboBox *combo = qobject_cast<QComboBox *>(editor);
|
||||
if (!sqlModel || !combo) {
|
||||
QItemDelegate::setEditorData(editor, index);
|
||||
return;
|
||||
}
|
||||
combo->setCurrentIndex(combo->findText(sqlModel->data(index).toString()));
|
||||
}
|
||||
|
||||
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
|
||||
{
|
||||
if (!index.isValid())
|
||||
return;
|
||||
|
||||
QSqlRelationalTableModel *sqlModel = qobject_cast<QSqlRelationalTableModel *>(model);
|
||||
QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
|
||||
QComboBox *combo = qobject_cast<QComboBox *>(editor);
|
||||
if (!sqlModel || !childModel || !combo) {
|
||||
QItemDelegate::setModelData(editor, model, index);
|
||||
return;
|
||||
}
|
||||
|
||||
int currentItem = combo->currentIndex();
|
||||
int childColIndex = childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn());
|
||||
int childEditIndex = childModel->fieldIndex(sqlModel->relation(index.column()).indexColumn());
|
||||
sqlModel->setData(index,
|
||||
childModel->data(childModel->index(currentItem, childColIndex), Qt::DisplayRole),
|
||||
Qt::DisplayRole);
|
||||
sqlModel->setData(index,
|
||||
childModel->data(childModel->index(currentItem, childEditIndex), Qt::EditRole),
|
||||
Qt::EditRole);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue