diff --git a/obs/window-basic-filters.cpp b/obs/window-basic-filters.cpp index 2a865d99756be2641db8a84bba007df69a22817a..8303b5e1595e73bfdb7d1dd8e147c3f0ed74c5fe 100644 --- a/obs/window-basic-filters.cpp +++ b/obs/window-basic-filters.cpp @@ -20,6 +20,7 @@ #include "display-helpers.hpp" #include "qt-wrappers.hpp" #include "visibility-item-widget.hpp" +#include "item-widget-helpers.hpp" #include "obs-app.hpp" #include @@ -105,9 +106,8 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_) OBSBasicFilters::~OBSBasicFilters() { - ui->asyncFilters->clear(); - ui->effectFilters->clear(); - QApplication::sendPostedEvents(this); + ClearListItems(ui->asyncFilters); + ClearListItems(ui->effectFilters); } void OBSBasicFilters::Init() @@ -195,7 +195,7 @@ void OBSBasicFilters::RemoveFilter(OBSSource filter) OBSSource curFilter = v.value(); if (filter == curFilter) { - delete item; + DeleteListItem(list, item); break; } } @@ -223,7 +223,7 @@ void OBSBasicFilters::ReorderFilter(QListWidget *list, if ((int)idx != i) { bool sel = (list->currentRow() == i); - listItem = list->takeItem(i); + listItem = TakeListItem(list, i); if (listItem) { list->insertItem((int)idx, listItem); SetupVisibilityItem(list, @@ -271,8 +271,8 @@ void OBSBasicFilters::UpdateFilters() if (!source) return; - ui->effectFilters->clear(); - ui->asyncFilters->clear(); + ClearListItems(ui->effectFilters); + ClearListItems(ui->asyncFilters); obs_source_enum_filters(source, [] (obs_source_t*, obs_source_t *filter, void *p) diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 661c95b569460e9d274bcaccd9dd628eeeb1fab9..ff5063d8c8a910d0a067360d3f2a55fa1b61b015 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -32,6 +32,7 @@ #include "obs-app.hpp" #include "platform.hpp" #include "visibility-item-widget.hpp" +#include "item-widget-helpers.hpp" #include "window-basic-settings.hpp" #include "window-namedialog.hpp" #include "window-basic-source-select.hpp" @@ -1009,7 +1010,7 @@ OBSSceneItem OBSBasic::GetCurrentSceneItem() void OBSBasic::UpdateSources(OBSScene scene) { - ui->sources->clear(); + ClearListItems(ui->sources); obs_scene_enum_items(scene, [] (obs_scene_t *scene, obs_sceneitem_t *item, void *p) @@ -1121,7 +1122,7 @@ void OBSBasic::RemoveScene(OBSSource source) if (sel != nullptr) { if (items.contains(sel)) - ui->sources->clear(); + ClearListItems(ui->sources); delete sel; } } @@ -1146,7 +1147,7 @@ void OBSBasic::RemoveSceneItem(OBSSceneItem item) QListWidgetItem *listItem = ui->sources->item(i); if (GetOBSRef(listItem) == item) { - delete listItem; + DeleteListItem(ui->sources, listItem); break; } } @@ -1465,7 +1466,7 @@ void OBSBasic::ReorderSceneItem(obs_sceneitem_t *item, size_t idx) if ((int)idx_inv != i) { bool sel = (ui->sources->currentRow() == i); - listItem = ui->sources->takeItem(i); + listItem = TakeListItem(ui->sources, i); if (listItem) { ui->sources->insertItem(idx_inv, listItem); @@ -1975,8 +1976,7 @@ void OBSBasic::closeEvent(QCloseEvent *event) while ((item = ui->scenes->takeItem(0))) delete item; - while ((item = ui->sources->takeItem(0))) - delete item; + ClearListItems(ui->sources); } void OBSBasic::changeEvent(QEvent *event)