UI: Manually delete visibility item widgets

master
jp9000 2015-06-27 18:18:40 -07:00
parent db9e966e6c
commit 20b4a1c008
2 changed files with 13 additions and 13 deletions

View File

@ -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)

View File

@ -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)