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

QQuickWidget deleteLater crashes when removed from QMdiArea

XMLWordPrintable

    • 0b0bb319578bb2e2eced3a80ce3876a4408b72a7 (qtdeclarative/dev, 29.7.2014)

      Deleting QQuickWidget cause crash after it's removed from the QMdiArea.

      QQuickWidget *view = new QQuickWidget;
      mdiarea->addSubWindow(view);
      ...
      mdiarea->removeSubWindow(subWindow);
      subWindow->deleteLater();  // CRASH when subWindow cointains quickwidget
      

      Same works without crash for QWidget. QMdiArea::removeSubWindow() documentation says it just set parent to 0 (like it does) but doesn't delete given widget so it has to do. But something goes wrong there with QuickWidget.

      Actually simple subWindow->deleteLater() removes subWindow from the mdiarea so when need to delete just delete without removeSubWindow().

      Other thing saw is that it's not possible to remove and add back QuickWidget SubWindow to mdiarea. This might be the root cause. Got ASSERT

      ASSERT failure in QSGRenderContext::initialize: "already initialized!", file scenegraph\qsgcontext.cpp, line 439
      

        1. QTBUG-40435.zip
          2 kB
        2. qtbug40435_valgrind.txt
          35 kB
        3. qtbug40435_stack.txt
          17 kB
        4. QTBUG-40435_mod.zip
          2 kB
        5. qtbug40435_mod_stack.txt
          17 kB
        6. qtbug40435_mod_stack.tasks
          5 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            lagocs Laszlo Agocs
            qtcomsupport Qt Support
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: