aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2024-04-23 14:03:46 +0200
committerTim Jenssen <tim.jenssen@qt.io>2024-04-23 14:03:46 +0200
commit7dfa7469207f899e347dc6f2bf0c3011140a9b23 (patch)
treeab52ebd391b352af044e6168817e6e477761bd02 /src/libs
parent2c38f9ae74816fbe193f83766071ffd2fac184c5 (diff)
parentfacd32b2e07b3d2a13f26b99ed08ccf1eb174397 (diff)
Merge remote-tracking branch 'origin/13.0' into HEAD
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp4
-rw-r--r--src/libs/utils/fsengine/fsengine_impl.h3
-rw-r--r--src/libs/utils/namevaluesdialog.cpp6
-rw-r--r--src/libs/utils/qtcprocess.cpp5
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;