summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/statusbarmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/statusbarmanager.cpp')
-rw-r--r--src/plugins/coreplugin/statusbarmanager.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/plugins/coreplugin/statusbarmanager.cpp b/src/plugins/coreplugin/statusbarmanager.cpp
index bd9d86d5bb..5d9116379f 100644
--- a/src/plugins/coreplugin/statusbarmanager.cpp
+++ b/src/plugins/coreplugin/statusbarmanager.cpp
@@ -98,9 +98,9 @@ static void createStatusBarManager()
bar->insertPermanentWidget(1, rightCornerWidget);
m_statusBarWidgets.append(rightCornerWidget);
- auto context = new StatusBarContext(bar);
- context->setWidget(bar);
- ICore::addContextObject(context);
+ auto statusContext = new StatusBarContext(bar);
+ statusContext->setWidget(bar);
+ ICore::addContextObject(statusContext);
QObject::connect(ICore::instance(), &ICore::saveSettingsRequested, [] {
QSettings *s = ICore::settings();
@@ -109,7 +109,8 @@ static void createStatusBarManager()
s->endGroup();
});
- QObject::connect(ICore::instance(), &ICore::coreAboutToClose, [] {
+ QObject::connect(ICore::instance(), &ICore::coreAboutToClose, [statusContext] {
+ delete statusContext;
// This is the catch-all on rampdown. Individual items may
// have been removed earlier by destroyStatusBarWidget().
for (const QPointer<IContext> &context : m_contexts) {
@@ -144,8 +145,8 @@ void StatusBarManager::destroyStatusBarWidget(QWidget *widget)
QTC_ASSERT(widget, return);
for (const QPointer<IContext> &context : m_contexts) {
if (context->widget() == widget) {
- ICore::removeContextObject(context);
m_contexts.removeAll(context);
+ delete context;
break;
}
}