diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2024-04-23 14:03:46 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2024-04-23 14:03:46 +0200 |
commit | 7dfa7469207f899e347dc6f2bf0c3011140a9b23 (patch) | |
tree | ab52ebd391b352af044e6168817e6e477761bd02 /src/libs | |
parent | 2c38f9ae74816fbe193f83766071ffd2fac184c5 (diff) | |
parent | facd32b2e07b3d2a13f26b99ed08ccf1eb174397 (diff) |
Merge remote-tracking branch 'origin/13.0' into HEAD
Change-Id: I1f87297930db420606aab8d7016c290483f262c0
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp | 4 | ||||
-rw-r--r-- | src/libs/utils/fsengine/fsengine_impl.h | 3 | ||||
-rw-r--r-- | src/libs/utils/namevaluesdialog.cpp | 6 | ||||
-rw-r--r-- | src/libs/utils/qtcprocess.cpp | 5 |
4 files changed, 15 insertions, 3 deletions
diff --git a/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp b/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp index de8b82de20..13167f691d 100644 --- a/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp +++ b/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp @@ -353,7 +353,9 @@ void DiagramSceneModel::selectAllElements() void DiagramSceneModel::selectElement(DElement *element) { QGraphicsItem *selectItem = m_elementToItemMap.value(element); - for (QGraphicsItem *item : std::as_const(m_selectedItems)) { + // We have to create a copy since "setSelected" may modify m_selectedItems + const QSet<QGraphicsItem *> copy = m_selectedItems; + for (QGraphicsItem *item : copy) { if (item != selectItem) item->setSelected(false); } diff --git a/src/libs/utils/fsengine/fsengine_impl.h b/src/libs/utils/fsengine/fsengine_impl.h index 00a33f227c..7a68119c83 100644 --- a/src/libs/utils/fsengine/fsengine_impl.h +++ b/src/libs/utils/fsengine/fsengine_impl.h @@ -53,7 +53,8 @@ public: uint ownerId(FileOwner) const override; QString owner(FileOwner) const override; -#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + // The FileTime change in QAbstractFileEngine, in qtbase, is in since Qt 6.7.1 +#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 1) using FileTime = QFile::FileTime; #endif bool setFileTime(const QDateTime &newDate, FileTime time) override; diff --git a/src/libs/utils/namevaluesdialog.cpp b/src/libs/utils/namevaluesdialog.cpp index 35587f8791..0b009c7568 100644 --- a/src/libs/utils/namevaluesdialog.cpp +++ b/src/libs/utils/namevaluesdialog.cpp @@ -45,7 +45,11 @@ signals: void lostFocus(); private: - void focusOutEvent(QFocusEvent *) override { emit lostFocus(); } + void focusOutEvent(QFocusEvent *e) override + { + QPlainTextEdit::focusOutEvent(e); + emit lostFocus(); + } }; } // namespace Internal diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index b399d86b36..3f06e04fc1 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -769,6 +769,7 @@ private: std::unique_ptr<ProcessInterfaceHandler> m_processHandler; mutable QMutex m_mutex; QList<ProcessInterfaceSignal *> m_signals; + Guard m_guard; }; class ProcessPrivate : public QObject @@ -961,6 +962,10 @@ GeneralProcessBlockingImpl::GeneralProcessBlockingImpl(ProcessPrivate *parent) bool GeneralProcessBlockingImpl::waitForSignal(ProcessSignalType newSignal, QDeadlineTimer timeout) { + QTC_ASSERT(!m_guard.isLocked(), qWarning("Process::waitForSignal() called recursively. " + "The call is being ignored."); return false); + GuardLocker locker(m_guard); + m_processHandler->setParent(nullptr); QThread thread; |