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

QAbstractItemModel::multiData SC/BC fallout

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important 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)

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            dfaure_kdab David Faure
            peppe Giuseppe D'Angelo
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes