From a25760df5dfd11ba67b96d10f8a1fe92ec73a256 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Thu, 22 Apr 2021 00:38:44 +0300 Subject: [PATCH] use Containment::action("remove") directly --update Layout::removeView implementation in order to call containment "remove" function directly. That approach works more reliable than the previous one and we are that in the end no orphaned containment config data will be present in the layout file. --- app/layout/genericlayout.cpp | 33 ++++----------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/app/layout/genericlayout.cpp b/app/layout/genericlayout.cpp index 88a6afe4b..b18e353ae 100644 --- a/app/layout/genericlayout.cpp +++ b/app/layout/genericlayout.cpp @@ -42,6 +42,7 @@ #include // KDE +#include #include namespace Latte { @@ -1643,40 +1644,14 @@ void GenericLayout::removeView(const Latte::Data::View &viewData) return; } - Latte::View *view = viewForContainment(viewData.id.toUInt()); - - if (view) { - //! viewMustBeDeleted - m_latteViews.remove(view->containment()); - view->disconnectSensitiveSignals(); - view->positioner()->hideOnExit(); - delete view; - } - - //! delete also the relevant containments Plasma::Containment *viewcontainment = containmentForId(viewData.id.toUInt()); if (viewcontainment) { - m_containments.removeAll(viewcontainment); - delete viewcontainment; - } - - for (int i=0; iactions()->action("remove"); + if (removeaction) { + removeaction->trigger(); } } - - if (m_corona->layoutsManager()->memoryUsage() == MemoryUsage::MultipleLayouts) { - QString multiplelayoutfile = Layouts::Importer::layoutUserFilePath(Layout::MULTIPLELAYOUTSHIDDENNAME); - Layouts::Storage::self()->removeView(multiplelayoutfile, viewData); - } else { - //! remove from storage - Layouts::Storage::self()->removeView(file(), viewData); - } } QString GenericLayout::storedView(const int &containmentId)