mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-28 02:06:12 -04:00
frontend: Use OBSBasic::Get() in all places
This reduces duplicated code when getting the OBSBasic context.
This commit is contained in:
@@ -40,7 +40,7 @@ void OBSBasicPreview::Init()
|
||||
|
||||
vec2 OBSBasicPreview::GetMouseEventPos(QMouseEvent *event)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
float pixelRatio = main->GetDevicePixelRatio();
|
||||
float scale = pixelRatio / main->previewScale;
|
||||
QPoint qtPos = event->pos();
|
||||
@@ -166,7 +166,7 @@ static inline vec2 GetOBSScreenSize()
|
||||
|
||||
vec3 OBSBasicPreview::GetSnapOffset(const vec3 &tl, const vec3 &br)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
vec2 screenSize = GetOBSScreenSize();
|
||||
vec3 clampOffset;
|
||||
|
||||
@@ -211,7 +211,7 @@ vec3 OBSBasicPreview::GetSnapOffset(const vec3 &tl, const vec3 &br)
|
||||
|
||||
OBSSceneItem OBSBasicPreview::GetItemAtPos(const vec2 &pos, bool selectBelow)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
if (!scene)
|
||||
@@ -267,7 +267,7 @@ static bool CheckItemSelected(obs_scene_t * /* scene */, obs_sceneitem_t *item,
|
||||
|
||||
bool OBSBasicPreview::SelectedAtPos(const vec2 &pos)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
if (!scene)
|
||||
@@ -428,7 +428,7 @@ static vec2 GetItemSize(obs_sceneitem_t *item)
|
||||
|
||||
void OBSBasicPreview::GetStretchHandleData(const vec2 &pos, bool ignoreGroup)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
if (!scene)
|
||||
@@ -556,7 +556,7 @@ void OBSBasicPreview::mousePressEvent(QMouseEvent *event)
|
||||
return;
|
||||
}
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
float pixelRatio = main->GetDevicePixelRatio();
|
||||
float x = pos.x() - main->previewX / pixelRatio;
|
||||
float y = pos.y() - main->previewY / pixelRatio;
|
||||
@@ -678,7 +678,7 @@ static bool select_one(obs_scene_t * /* scene */, obs_sceneitem_t *item, void *p
|
||||
|
||||
void OBSBasicPreview::DoSelect(const vec2 &pos)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
OBSSceneItem item = GetItemAtPos(pos, true);
|
||||
@@ -769,13 +769,13 @@ void OBSBasicPreview::mouseReleaseEvent(QMouseEvent *event)
|
||||
hoveredPreviewItems.push_back(item);
|
||||
selectedItems.clear();
|
||||
}
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSDataAutoRelease rwrapper = obs_scene_save_transform_states(main->GetCurrentScene(), true);
|
||||
|
||||
auto undo_redo = [](const std::string &data) {
|
||||
OBSDataAutoRelease dat = obs_data_create_from_json(data.c_str());
|
||||
OBSSourceAutoRelease source = obs_get_source_by_uuid(obs_data_get_string(dat, "scene_uuid"));
|
||||
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())->SetCurrentScene(source.Get(), true);
|
||||
OBSBasic::Get()->SetCurrentScene(source.Get(), true);
|
||||
|
||||
obs_scene_load_transform_states(data.c_str());
|
||||
};
|
||||
@@ -902,7 +902,7 @@ static bool GetSourceSnapOffset(obs_scene_t * /* scene */, obs_sceneitem_t *item
|
||||
|
||||
void OBSBasicPreview::SnapItemMovement(vec2 &offset)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
|
||||
SelectedItemBounds data;
|
||||
@@ -978,7 +978,7 @@ static bool move_items(obs_scene_t * /* scene */, obs_sceneitem_t *item, void *p
|
||||
void OBSBasicPreview::MoveItems(const vec2 &pos)
|
||||
{
|
||||
Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers();
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
|
||||
vec2 offset, moveOffset;
|
||||
@@ -1146,7 +1146,7 @@ static bool FindItemsInBox(obs_scene_t * /* scene */, obs_sceneitem_t *item, voi
|
||||
|
||||
void OBSBasicPreview::BoxItems(const vec2 &startPos, const vec2 &pos)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
if (!scene)
|
||||
@@ -1473,7 +1473,7 @@ void OBSBasicPreview::StretchItem(const vec2 &pos)
|
||||
|
||||
void OBSBasicPreview::RotateItem(const vec2 &pos)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers();
|
||||
bool shiftDown = (modifiers & Qt::ShiftModifier);
|
||||
@@ -1521,7 +1521,7 @@ void OBSBasicPreview::RotateItem(const vec2 &pos)
|
||||
|
||||
void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
changed = true;
|
||||
|
||||
QPointF qtPos = event->position();
|
||||
@@ -1601,7 +1601,7 @@ void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event)
|
||||
|
||||
if (!mouseMoved && hoveredPreviewItems.size() > 0) {
|
||||
mousePos = pos;
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
float scale = main->GetDevicePixelRatio();
|
||||
float x = qtPos.x() - main->previewX / scale;
|
||||
float y = qtPos.y() - main->previewY / scale;
|
||||
@@ -2084,7 +2084,7 @@ void OBSBasicPreview::DrawOverflow()
|
||||
overflow = gs_texture_create_from_file(path.c_str());
|
||||
}
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSScene scene = main->GetCurrentScene();
|
||||
|
||||
@@ -2107,7 +2107,7 @@ void OBSBasicPreview::DrawSceneEditing()
|
||||
|
||||
GS_DEBUG_MARKER_BEGIN(GS_DEBUG_COLOR_DEFAULT, "DrawSceneEditing");
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
gs_effect_t *solid = obs_get_base_effect(OBS_EFFECT_SOLID);
|
||||
gs_technique_t *tech = gs_effect_get_technique(solid, "Solid");
|
||||
|
||||
@@ -189,7 +189,7 @@ OBSBasicStats::OBSBasicStats(QWidget *parent, bool closable)
|
||||
QObject::connect(&recTimeLeft, &QTimer::timeout, this, &OBSBasicStats::RecordingTimeLeft);
|
||||
recTimeLeft.setInterval(REC_TIME_LEFT_INTERVAL);
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
const char *geometry = config_get_string(main->Config(), "Stats", "geometry");
|
||||
if (geometry != NULL) {
|
||||
@@ -211,7 +211,7 @@ OBSBasicStats::OBSBasicStats(QWidget *parent, bool closable)
|
||||
|
||||
void OBSBasicStats::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
if (isVisible()) {
|
||||
config_set_string(main->Config(), "Stats", "geometry", saveGeometry().toBase64().constData());
|
||||
config_save_safe(main->Config(), "tmp", nullptr);
|
||||
@@ -265,7 +265,7 @@ void OBSBasicStats::InitializeValues()
|
||||
|
||||
void OBSBasicStats::Update()
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
/* TODO: Un-hardcode */
|
||||
|
||||
|
||||
@@ -39,13 +39,13 @@ void OBSBasic::on_actionCopyTransform_triggered()
|
||||
void OBSBasic::on_actionPasteTransform_triggered()
|
||||
{
|
||||
OBSDataAutoRelease wrapper = obs_scene_save_transform_states(GetCurrentScene(), false);
|
||||
auto func = [](obs_scene_t *, obs_sceneitem_t *item, void *data) {
|
||||
auto func = [](obs_scene_t *, obs_sceneitem_t *item, void *) {
|
||||
if (!obs_sceneitem_selected(item))
|
||||
return true;
|
||||
if (obs_sceneitem_locked(item))
|
||||
return true;
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(data);
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
obs_sceneitem_defer_update_begin(item);
|
||||
obs_sceneitem_set_info2(item, &main->copiedTransformInfo);
|
||||
@@ -55,7 +55,7 @@ void OBSBasic::on_actionPasteTransform_triggered()
|
||||
return true;
|
||||
};
|
||||
|
||||
obs_scene_enum_items(GetCurrentScene(), func, this);
|
||||
obs_scene_enum_items(GetCurrentScene(), func, nullptr);
|
||||
|
||||
OBSDataAutoRelease rwrapper = obs_scene_save_transform_states(GetCurrentScene(), false);
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ void OBSBasic::AddDropURL(const char *url, QString &name, obs_data_t *settings,
|
||||
|
||||
void OBSBasic::AddDropSource(const char *data, DropType image)
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSDataAutoRelease settings = obs_data_create();
|
||||
const char *type = nullptr;
|
||||
QString name;
|
||||
|
||||
@@ -360,7 +360,7 @@ void OBSBasic::RefreshSceneCollections(bool refreshCache)
|
||||
|
||||
ui->actionRemoveSceneCollection->setEnabled(numAddedCollections > 1);
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
main->ui->actionPasteFilters->setEnabled(false);
|
||||
main->ui->actionPasteRef->setEnabled(false);
|
||||
|
||||
@@ -1029,7 +1029,7 @@ void undo_redo(const std::string &data)
|
||||
{
|
||||
OBSDataAutoRelease dat = obs_data_create_from_json(data.c_str());
|
||||
OBSSourceAutoRelease source = obs_get_source_by_uuid(obs_data_get_string(dat, "scene_uuid"));
|
||||
reinterpret_cast<OBSBasic *>(App()->GetMainWindow())->SetCurrentScene(source.Get(), true);
|
||||
OBSBasic::Get()->SetCurrentScene(source.Get(), true);
|
||||
|
||||
obs_scene_load_transform_states(data.c_str());
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ void OBSBasic::AddScene(OBSSource source)
|
||||
obs_hotkey_register_source(
|
||||
source, "OBSBasic.SelectScene", Str("Basic.Hotkeys.SelectScene"),
|
||||
[](void *data, obs_hotkey_id, obs_hotkey_t *, bool pressed) {
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
auto potential_source = static_cast<obs_source_t *>(data);
|
||||
OBSSourceAutoRelease source = obs_source_get_ref(potential_source);
|
||||
|
||||
@@ -83,7 +83,7 @@ void OBSBasic::AddQuickTransitionHotkey(QuickTransition *qt)
|
||||
|
||||
auto quickTransition = [](void *data, obs_hotkey_id, obs_hotkey_t *, bool pressed) {
|
||||
int id = (int)(uintptr_t)data;
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
if (pressed)
|
||||
QMetaObject::invokeMethod(main, "TriggerQuickTransition", Qt::QueuedConnection, Q_ARG(int, id));
|
||||
@@ -891,7 +891,7 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
duration->setValue(curDuration);
|
||||
|
||||
auto setTransition = [this](QAction *action, bool visible) {
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
QString id = action->property("transition_id").toString();
|
||||
OBSSceneItem sceneItem = main->GetCurrentSceneItem();
|
||||
@@ -940,7 +940,7 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
undo_redo, undo_redo, undo_data, redo_data);
|
||||
};
|
||||
auto setDuration = [visible](int duration) {
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
OBSSceneItem item = main->GetCurrentSceneItem();
|
||||
obs_sceneitem_set_transition_duration(item, visible, duration);
|
||||
@@ -976,7 +976,7 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
}
|
||||
|
||||
auto copyTransition = [this](QAction *, bool visible) {
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSSceneItem item = main->GetCurrentSceneItem();
|
||||
obs_source_t *tr = obs_sceneitem_get_transition(item, visible);
|
||||
int trDur = obs_sceneitem_get_transition_duration(item, visible);
|
||||
@@ -989,7 +989,7 @@ QMenu *OBSBasic::CreateVisibilityTransitionMenu(bool visible)
|
||||
connect(action, &QAction::triggered, std::bind(copyTransition, action, visible));
|
||||
|
||||
auto pasteTransition = [this](QAction *, bool show) {
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSSource tr = OBSGetStrongRef(main->copySourceTransition);
|
||||
int trDuration = main->copySourceTransitionDuration;
|
||||
if (!tr)
|
||||
|
||||
@@ -157,7 +157,7 @@ void OBSProjector::OBSRender(void *data, uint32_t cx, uint32_t cy)
|
||||
if (!window->ready)
|
||||
return;
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
OBSSource source = window->GetSource();
|
||||
|
||||
uint32_t targetCX;
|
||||
@@ -297,7 +297,7 @@ void OBSProjector::mousePressEvent(QMouseEvent *event)
|
||||
|
||||
void OBSProjector::EscapeTriggered()
|
||||
{
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
main->DeleteProjector(this);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user