D18299: ComboBox: fix default delegate

Kai Uwe Broulik noreply at phabricator.kde.org
Wed Oct 16 14:35:23 BST 2019


broulik added a comment.


  I checked Qt source code and Qt indeed should handle this on its own, it also works fine hwere without the code.
  Worse, the explicit assignment from QML breaks any binding set on `currentIndex`.
  In the handler that's called when the delegate model creates a delegate it does the following
  
    void QQuickComboBoxPrivate::createdItem(int index, QObject *object)
    {
        ...
        QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(object);
        if (button) {
            button->setFocusPolicy(Qt::NoFocus);
            connect(button, &QQuickAbstractButton::clicked, this, &QQuickComboBoxPrivate::itemClicked);
            connect(button, &QQuickAbstractButton::hoveredChanged, this, &QQuickComboBoxPrivate::itemHovered);
        }
  
  `ItemDelegate` is an `AbstractButton` and in `itemClicked` it sets the `currentIndex` and emits `activated`.

REPOSITORY
  R858 Qt Quick Controls 2: Desktop Style

REVISION DETAIL
  https://phabricator.kde.org/D18299

To: apol, #frameworks, davidedmundson
Cc: broulik, plasma-devel, LeGast00n, The-Feren-OS-Dev, jraleigh, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20191016/d203e810/attachment.html>


More information about the Plasma-devel mailing list