提交 20b4a1c0 编写于 作者: J jp9000

UI: Manually delete visibility item widgets

上级 db9e966e
......@@ -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)
......
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册