提交 efb09d4f 编写于 作者: C Colin Edwards

UI: Remove SourceListWidget

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