[Qt-interest] QSortFilterProxyModel over a QSqlRelationalTableModel

mario dodiesis at gmail.com
Fri Jan 30 18:49:08 CET 2009


On Fri, Jan 30, 2009 at 5:59 PM, Scott Aron Bloom
<Scott.Bloom at sabgroup.com> wrote:
> Looks like a bug in the createEditor...
>
> Should check for a source model...
Something like this...
(not tested)


QWidget *createEditor(QWidget *parent,
                       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 )
    {
		const QSortFilterProxyModel* proxyModel = qobject_cast<const>
QSortFilterProxyModel *>(index.model());
		if(proxyModel)
		{
			childModel = proxyModel->sourceModel () ? proxyModel->sourceModel
()->relationModel(index.column()) : 0;
		}
                //maybe parent recursively...
    }	

     if (childModel)
     {
            return QItemDelegate::createEditor(parent, option, index);
     }

     bla.bla...



> I would file it with trolltech, with the fix.. Then create your own
> derived delegate with the 2 or 3 lines of code fix.

done (the second part)

Tnx
-- 
Mario Signorino | www.sgrunt.net



More information about the Qt-interest-old mailing list