blob: 192ba9dcf67f10420b3bdd952257025c3ba8a3db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
From 6eaefba5001445fa7e198e4caa0bde738240d66f Mon Sep 17 00:00:00 2001
From: Arjen Hiemstra <ahiemstra@heimr.nl>
Date: Wed, 9 Sep 2020 13:00:59 +0200
Subject: [PATCH] Remove actions and delegates from ToolBarLayout when they get
destroyed
Otherwise we're keeping around stale entries that no longer point to
valid stuff.
BUG: 425670
---
src/toolbarlayout.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/toolbarlayout.cpp b/src/toolbarlayout.cpp
index cbf31062..c2df5998 100644
--- a/src/toolbarlayout.cpp
+++ b/src/toolbarlayout.cpp
@@ -112,6 +112,18 @@ void ToolBarLayout::addAction(QObject* action)
d->actions.append(action);
d->actionsChanged = true;
+ connect(action, &QObject::destroyed, this, [this](QObject *action) {
+ auto itr = d->delegates.find(action);
+ if (itr != d->delegates.end()) {
+ d->delegates.erase(itr);
+ }
+
+ d->actions.removeOne(action);
+ d->actionsChanged = true;
+
+ relayout();
+ });
+
relayout();
}
--
GitLab
|