Merge pull request #1828 from DDRBoxman/removewidget
UI: Remove SourceListWidget
This commit is contained in:
commit
043963c5e8
@ -244,7 +244,6 @@ set(obs_SOURCES
|
||||
vertical-scroll-area.cpp
|
||||
visibility-item-widget.cpp
|
||||
slider-absoluteset-style.cpp
|
||||
source-list-widget.cpp
|
||||
qt-display.cpp
|
||||
crash-report.cpp
|
||||
hotkey-edit.cpp
|
||||
@ -302,7 +301,6 @@ set(obs_HEADERS
|
||||
vertical-scroll-area.hpp
|
||||
visibility-item-widget.hpp
|
||||
slider-absoluteset-style.hpp
|
||||
source-list-widget.hpp
|
||||
qt-display.hpp
|
||||
crash-report.hpp
|
||||
hotkey-edit.hpp
|
||||
|
@ -1,46 +0,0 @@
|
||||
#include <QMouseEvent>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "qt-wrappers.hpp"
|
||||
#include "source-list-widget.hpp"
|
||||
|
||||
Q_DECLARE_METATYPE(OBSSceneItem);
|
||||
|
||||
void SourceListWidget::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->button() == Qt::LeftButton)
|
||||
QListWidget::mouseDoubleClickEvent(event);
|
||||
}
|
||||
|
||||
void SourceListWidget::dropEvent(QDropEvent *event)
|
||||
{
|
||||
QListWidget::dropEvent(event);
|
||||
if (!event->isAccepted() || !count())
|
||||
return;
|
||||
|
||||
auto GetSceneItem = [&](int i)
|
||||
{
|
||||
return item(i)->data(Qt::UserRole).value<OBSSceneItem>();
|
||||
};
|
||||
|
||||
std::vector<obs_sceneitem_t*> newOrder;
|
||||
newOrder.reserve(count());
|
||||
for (int i = count() - 1; i >= 0; i--)
|
||||
newOrder.push_back(GetSceneItem(i));
|
||||
|
||||
auto UpdateOrderAtomically = [&](obs_scene_t *scene)
|
||||
{
|
||||
ignoreReorder = true;
|
||||
obs_scene_reorder_items(scene, newOrder.data(),
|
||||
newOrder.size());
|
||||
ignoreReorder = false;
|
||||
};
|
||||
using UpdateOrderAtomically_t = decltype(UpdateOrderAtomically);
|
||||
|
||||
auto scene = obs_sceneitem_get_scene(GetSceneItem(0));
|
||||
obs_scene_atomic_update(scene, [](void *data, obs_scene_t *scene)
|
||||
{
|
||||
(*static_cast<UpdateOrderAtomically_t*>(data))(scene);
|
||||
}, static_cast<void*>(&UpdateOrderAtomically));
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <QListWidget>
|
||||
|
||||
class QMouseEvent;
|
||||
|
||||
class SourceListWidget : public QListWidget {
|
||||
Q_OBJECT
|
||||
|
||||
bool ignoreReorder = false;
|
||||
public:
|
||||
inline SourceListWidget(QWidget *parent = nullptr)
|
||||
: QListWidget(parent)
|
||||
{
|
||||
}
|
||||
|
||||
bool IgnoreReorder() const { return ignoreReorder; }
|
||||
|
||||
protected:
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||
virtual void dropEvent(QDropEvent *event) override;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user