1. 11 May, 2016 - 2 commits
  2. 10 May, 2016 - 5 commits
    • Alexander Volkov's avatar
      QFileSystemModel: create nodes with correct QFileInfos · acf43c17
      Alexander Volkov authored
      Create parent nodes with the corresponding paths, not with
      the absolute path of the child node. Otherwise we will get
      incorrect QFileInfo at least in the following case:
      
          QFileSystemModel model;
          model.setRootPath("/usr/bin");
          QModelIndex idx = model.setRootPath("/usr");
          qDebug() << model.fileInfo(idx).absoluteFilePath();
      
      Without the fix it prints "/usr/bin".
      
      It's a regression triggered by 61cefb2f
      
      
      (De-inline QFileSystemModel::fileInfo() and implement it efficiently).
      
      Change-Id: I3b4e5f5b256711e27ad50824eaa8492dbc096808
      Task-number: QTBUG-51586
      Reviewed-by: default avatarLars Knoll <lars.knoll@theqtcompany.com>
      acf43c17
    • Timur Pocheptsov's avatar
      QCocoaWindow - do not call resignKeyWindow · ab3a8443
      Timur Pocheptsov authored
      
      QCocoaWindow::setMouseGrabEnabled/setKeyboardGrabEnabled calls
      resignKeyWindow. According to Apple's docs, we should _never_ call
      this function (it's done by Cocoa automatically).
      Calling this function leaves a window in weird state where it can
      not become key again until you explicitly make another window key first.
      
      Task-number: QTBUG-53050
      Change-Id: I7a887659df8df11880328ffa2adc07c4a3af63e6
      Reviewed-by: default avatarGabriel de Dietrich <gabriel.dedietrich@qt.io>
      Reviewed-by: default avatarMorten Johan Sørvig <morten.sorvig@qt.io>
      ab3a8443
    • Gabriel de Dietrich's avatar
      Acknowledge QWidgetWindow::widget() may be null · ce37467a
      Gabriel de Dietrich authored
      
      We guard QWidgetWindow's widget with a QPointer to avoid
      sending it events during destruction (which may result in
      undefined behavior, since this originates from ~QObject and
      we expect the object to behave as a QWidget). Therefore, we
      need to harden all access to that widget since it can now
      be null, specially during destruction.
      
      As an example, QGestureManager may crash when we delete a
      top-level widget. The crash stack trace is:
      
      1  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::data() const
      2  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::pointer qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>> const&)
      3  QWidget::d_func()
      4  QGestureManager::filterEvent(QWidget *, QEvent *)  <-- the widget ptr is null
      5  QGestureManager::filterEvent(QObject *, QEvent *)
      6  QApplication::notify(QObject *, QEvent *)
      7  QCoreApplication::notifyInternal2(QObject *, QEvent *)
      8  QCoreApplication::sendEvent(QObject *, QEvent *)
      9  QWindow::destroy()
      10 QWidgetPrivate::deleteTLSysExtra()
      11 QWidgetPrivate::deleteExtra()
      12 QWidgetPrivate::~QWidgetPrivate()
      13 QWidgetPrivate::~QWidgetPrivate()
      14 QWidgetPrivate::~QWidgetPrivate()
      15 QScopedPointerDeleter<QObjectData>::cleanup(QObjectData *)
      16 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::~QScopedPointer()
      17 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>>::~QScopedPointer()
      18 QObject::~QObject()
      19 QWidget::~QWidget()
      
      Task-number: QTBUG-53103
      Change-Id: I1bb32648270c4f7791f668b8f0b639ddb4235703
      Reviewed-by: default avatarShawn Rutledge <shawn.rutledge@theqtcompany.com>
      Reviewed-by: default avatarMarc Mutz <marc.mutz@kdab.com>
      ce37467a
    • Gabriel de Dietrich's avatar
      QWidgetWindow: Guard reference to own widget · 6a84a516
      Gabriel de Dietrich authored
      
      ~QWidgetPrivate() may end up calling QWidgetPrivate::
      deleteTLSysExtra() which, in turn, calls QWindow::destroy().
      This sends an event to the window itself. This reaches
      QWidgetWindow::event() which will forward the event to
      the widget. However, the widget has just been deleted
      since the sequence was initiated by ~QObject().
      
      Task-number: QTBUG-53103
      Change-Id: Ib511714a76bbc1e734d6f2800a983eb1459bbf0b
      Reviewed-by: default avatarMarc Mutz <marc.mutz@kdab.com>
      Reviewed-by: default avatarFriedemann Kleint <Friedemann.Kleint@qt.io>
      6a84a516
    • Maurice Kalinowski's avatar
      winrt: Fix potential startup crash · dbd81a0b
      Maurice Kalinowski authored
      
      Depending on the windowstate passed to QWinRTWindow constructor we might
      act on the uiElement which has not been created yet. This happened
      especially in release mode, probably due to timing.
      
      Hence delay uiElement changes until we created it in the constructor and
      can ensure it is valid.
      
      Change-Id: I00daa9fcf8542a0535bbcb663a76d85c36e510e2
      Reviewed-by: default avatarAndrew Knight <andrew.knight@intopalo.com>
      Reviewed-by: default avatarOliver Wolff <oliver.wolff@qt.io>
      dbd81a0b
  3. 09 May, 2016 - 14 commits
  4. 08 May, 2016 - 3 commits
  5. 07 May, 2016 - 1 commit
  6. 06 May, 2016 - 8 commits
  7. 05 May, 2016 - 1 commit
  8. 04 May, 2016 - 6 commits