Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 5

Qt-interest Archive, June 2007
Problem with QSqlRelationalTableModel


Message 1 in thread

Hello

I have a problem with QSqlRelationalTableModel, and I think
it may be a bug. I have subclassed the class previously
mentioned. The constructor is:

ComplementModel::ComplementModel(int id, QObject *parent) :
  QSqlRelationalTableModel(parent), idses(id)
{
  setTable("complements");
  setEditStrategy(QSqlTableModel::OnFieldChange);
  setRelation(3, QSqlRelation("concepts", "idconc", "concept"));
  setHeaderData(3, Qt::Horizontal, QObject::tr("Head1"));
  setHeaderData(4, Qt::Horizontal, QObject::tr("Head2"));
  setHeaderData(5, Qt::Horizontal, QObject::tr("Head3"));
  setHeaderData(6, Qt::Horizontal, QObject::tr("Head4"));
  setFilter(QString("idses=%1").arg(idses));
  setSort(1, Qt::AscendingOrder);
  select();
}

All seems to work fine except that I can't navigate with the TAB key.
I've done some research and it seems that the problem is in the sentence:

setEditStrategy(QSqlTableModel::OnFieldChange);

If I replace QSqlTableModel::OnFieldChange with QSqlTableModel::OnManualSubmit 
I can navigate but I can't save the data in the database.

I've tried something like:

bool ComplementModel::setData(const QModelIndex & index,
				const QVariant &value, int role)
{
  bool ok = QSqlRelationalTableModel::setData(index, value, role);
  submitAll();
  return ok;
}

But then, I can't navigate either.

Some suggestion?

Thanks in advance

-- 
 [ signature omitted ]