Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-89423

QAbstractItemModel::multiData SC/BC fallout



    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.0.0
    • Core: Item Models
    • None


      In 6.0 QAbstractItemModel::multiData was introduced, and a few overrides provided for models coming with Qt.

      This opens the door to a source incompatibility: in general, if a model overrides data() and multiData(), it should implement data() in terms of multiData(). (The other way around is pointless, as it's the default implementation of multiData). However, a subclass may further override data() to do something else. If that happens, data() and multiData() fall out of sync, and a view gets different results depending on whether it uses data() or multiData().

      Ideally, if one goes the trouble of providing multiData, then it should provide data() as a final override. We can suggest this to users for their models.

      What to do for the models in Qt, however? The major offender is QSIM/QSI, for which multiData overrides have been added, with data() pointing to them. If we want to leave them as-is, we'd need to make multiData() point at data() instead (they won't ever get the benefits of multiData. But after all, theyr'e convenience models)


        Issue Links

          For Gerrit Dashboard: QTBUG-89423
          # Subject Branch Project Status CR V



              dfaure_kdab David Faure
              peppe Giuseppe D'Angelo
              0 Vote for this issue
              4 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes