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

Dialog's accepted() signal emitted before closed() when using non-zero-duration transitions

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.15
    • Fix Version/s: 6.0
    • Component/s: Quick: Controls 2
    • Labels:
      None
    • Commits:
      0d3b8f832aad04c255dac64588b2693f2119cc0c (qt/qtquickcontrols2/dev)

      Description

      https://doc.qt.io/qt-5/qml-qtquick-controls2-dialog.html#accept-method says:

      Closes the dialog and emits the accepted() signal.

      When running this code

      import QtQuick 2.12
      import QtQuick.Controls 2.12
      
      ApplicationWindow {
          width: 400
          height: 400
          visible: true
      
          Dialog {
              standardButtons: Dialog.Ok | Dialog.Cancel
              visible: true
              onAccepted: print("accepted")
              onClosed: print("closed")
          }
      }
      

      with the Material style (which has transitions for Dialog), the output is:

      qml: accepted
      qml: closed
      

      When run with the Default style (which has no transitions for Dialog), the output is:

      qml: closed
      qml: accepted
      

      Besides contradicting the documentation, the concrete problem with this is that it breaks code like this:

          onAccepted: project.modifyAnimation(animationIndex) // oops, animationIndex is -1
      
          onClosed: {
              animationIndex = -1
              animation = null
              acceptOnNextModify = false
          }
      

      This worked in my application (which uses the Material style) but failed in my tests, where I use the Default style to speed things up.

      I think we should fix this by changing the behaviour, and always emit accepted (and rejected) before closed, since they are emitted synchronously.

        Attachments

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

          Activity

            People

            Assignee:
            mitch_curtis Mitch Curtis
            Reporter:
            mitch_curtis Mitch Curtis
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes