Bug #3514 ยป w-batch-edit-proxy-model-fix-broken-indexes.patch
src/Wt/WBatchEditProxyModel.C | ||
---|---|---|
WModelIndex sourceIndex = mapToSource(index);
|
||
if (sourceIndex.isValid())
|
||
return sourceModel()->flags(index);
|
||
return sourceModel()->flags(sourceIndex);
|
||
else {
|
||
std::map<int, WFlags<ItemFlag> >::const_iterator i
|
||
= newRowFlags_.find(index.column());
|
||
if (i != newRowFlags_.end())
|
||
return i->second;
|
||
else
|
||
return WAbstractProxyModel::flags(index);
|
||
return WAbstractProxyModel::flags(sourceIndex);
|
||
}
|
||
}
|
||
test/models/WBatchEditProxyModelTest.C | ||
---|---|---|
BOOST_REQUIRE(sm->rowCount() == 0);
|
||
BOOST_REQUIRE(pm->rowCount() == 0);
|
||
WModelIndex a = f.proxyModel_->index(1, 0);
|
||
WModelIndex b = f.proxyModel_->mapToSource(a);
|
||
WModelIndex c = f.proxyModel_->mapFromSource(b);
|
||
BOOST_REQUIRE(a == c);
|
||
pm->insertRows(0, 2);
|
||
BOOST_REQUIRE(f.modelEvents_[SourceModel].size() == 0);
|