Browse Source

UI: Manually delete visibility item widgets

jp9000 10 years ago
parent
commit
20b4a1c008
2 changed files with 13 additions and 13 deletions
  1. 7 7
      obs/window-basic-filters.cpp
  2. 6 6
      obs/window-basic-main.cpp

+ 7 - 7
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 <QMessageBox>
@@ -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<OBSSource>();
 
 		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)

+ 6 - 6
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<OBSSceneItem>(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)