UI: Manually delete visibility item widgets
parent
db9e966e6c
commit
20b4a1c008
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue