File tree Expand file tree Collapse file tree 6 files changed +46
-27
lines changed
Expand file tree Collapse file tree 6 files changed +46
-27
lines changed Original file line number Diff line number Diff line change @@ -279,6 +279,8 @@ add_executable(dolphin-emu
279279 QtUtils/AspectRatioWidget.h
280280 QtUtils/BlockUserInputFilter.cpp
281281 QtUtils/BlockUserInputFilter.h
282+ QtUtils/ClearLayoutRecursively.cpp
283+ QtUtils/ClearLayoutRecursively.h
282284 QtUtils/DolphinFileDialog.cpp
283285 QtUtils/DolphinFileDialog.h
284286 QtUtils/DoubleClickEventFilter.cpp
Original file line number Diff line number Diff line change 1919#include " Core/ConfigManager.h"
2020#include " Core/Core.h"
2121#include " DolphinQt/Config/GraphicsModWarningWidget.h"
22+ #include " DolphinQt/QtUtils/ClearLayoutRecursively.h"
2223#include " DolphinQt/Settings.h"
2324#include " UICommon/GameFile.h"
2425#include " VideoCommon/GraphicsModSystem/Config/GraphicsMod.h"
@@ -240,31 +241,6 @@ void GraphicsModListWidget::SaveModList()
240241 m_needs_save = true ;
241242}
242243
243- void GraphicsModListWidget::ClearLayoutRecursively (QLayout* layout)
244- {
245- while (QLayoutItem* child = layout->takeAt (0 ))
246- {
247- if (child == nullptr )
248- continue ;
249-
250- if (child->widget ())
251- {
252- layout->removeWidget (child->widget ());
253- delete child->widget ();
254- }
255- else if (child->layout ())
256- {
257- ClearLayoutRecursively (child->layout ());
258- layout->removeItem (child);
259- }
260- else
261- {
262- layout->removeItem (child);
263- }
264- delete child;
265- }
266- }
267-
268244void GraphicsModListWidget::SaveToDisk ()
269245{
270246 m_needs_save = false ;
Original file line number Diff line number Diff line change @@ -56,8 +56,6 @@ class GraphicsModListWidget : public QWidget
5656
5757 void SaveModList ();
5858
59- void ClearLayoutRecursively (QLayout* layout);
60-
6159 void OpenGraphicsModDir ();
6260
6361 void CalculateGameRunning (Core::State state);
Original file line number Diff line number Diff line change 181181 </ClCompile >
182182 <ClCompile Include =" QtUtils\AspectRatioWidget.cpp" />
183183 <ClCompile Include =" QtUtils\BlockUserInputFilter.cpp" />
184+ <ClCompile Include =" QtUtils\ClearLayoutRecursively.cpp" />
184185 <ClCompile Include =" QtUtils\DolphinFileDialog.cpp" />
185186 <ClCompile Include =" QtUtils\DoubleClickEventFilter.cpp" />
186187 <ClCompile Include =" QtUtils\ElidedButton.cpp" />
240241 <ClInclude Include =" Debugger\RegisterColumn.h" />
241242 <ClInclude Include =" GBAHost.h" />
242243 <ClInclude Include =" QtUtils\ActionHelper.h" />
244+ <ClInclude Include =" QtUtils\ClearLayoutRecursively.h" />
243245 <ClInclude Include =" QtUtils\DolphinFileDialog.h" />
244246 <ClInclude Include =" QtUtils\ImageConverter.h" />
245247 <ClInclude Include =" QtUtils\ModalMessageBox.h" />
Original file line number Diff line number Diff line change 1+ // Copyright 2023 Dolphin Emulator Project
2+ // SPDX-License-Identifier: GPL-2.0-or-later
3+
4+ #include " DolphinQt/QtUtils/ClearLayoutRecursively.h"
5+
6+ #include < QLayout>
7+ #include < QLayoutItem>
8+ #include < QWidget>
9+
10+ void ClearLayoutRecursively (QLayout* layout)
11+ {
12+ while (QLayoutItem* child = layout->takeAt (0 ))
13+ {
14+ if (child == nullptr )
15+ continue ;
16+
17+ if (child->widget ())
18+ {
19+ layout->removeWidget (child->widget ());
20+ delete child->widget ();
21+ }
22+ else if (child->layout ())
23+ {
24+ ClearLayoutRecursively (child->layout ());
25+ layout->removeItem (child);
26+ }
27+ else
28+ {
29+ layout->removeItem (child);
30+ }
31+ delete child;
32+ }
33+ }
Original file line number Diff line number Diff line change 1+ // Copyright 2023 Dolphin Emulator Project
2+ // SPDX-License-Identifier: GPL-2.0-or-later
3+
4+ #pragma once
5+
6+ class QLayout ;
7+
8+ void ClearLayoutRecursively (QLayout* layout);
You can’t perform that action at this time.
0 commit comments