Skip to content

Commit

Permalink
frontend: Simplify how projectors are saved/loaded
Browse files Browse the repository at this point in the history
This removes unnecessary code when loading and saving projectors.
  • Loading branch information
cg2121 authored and RytoEX committed Jan 31, 2025
1 parent 708c5f7 commit 43be123
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 24 deletions.
2 changes: 0 additions & 2 deletions frontend/widgets/OBSBasic.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -915,7 +915,6 @@ public slots:
* -------------------------------------
*/
private:
std::vector<SavedProjectorInfo *> savedProjectorsArray;
std::vector<OBSProjector *> projectors;
QPointer<QMenu> previewProjector;
QPointer<QMenu> previewProjectorSource;
Expand All @@ -942,7 +941,6 @@ private slots:
void OpenSceneWindow();

public:
void OpenSavedProjectors();
void DeleteProjector(OBSProjector *projector);

static QList<QString> GetProjectorMenuMonitorsFormatted();
Expand Down
1 change: 0 additions & 1 deletion frontend/widgets/OBSBasic_Preview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,6 @@ void OBSBasic::ResetProjectors()
OBSDataArrayAutoRelease savedProjectorList = SaveProjectors();
ClearProjectors();
LoadSavedProjectors(savedProjectorList);
OpenSavedProjectors();
}

void OBSBasic::UpdatePreviewSafeAreas()
Expand Down
28 changes: 8 additions & 20 deletions frontend/widgets/OBSBasic_Projectors.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,25 +63,20 @@ obs_data_array_t *OBSBasic::SaveProjectors()

void OBSBasic::LoadSavedProjectors(obs_data_array_t *array)
{
for (SavedProjectorInfo *info : savedProjectorsArray) {
delete info;
}
savedProjectorsArray.clear();

size_t num = obs_data_array_count(array);

for (size_t i = 0; i < num; i++) {
OBSDataAutoRelease data = obs_data_array_item(array, i);
SavedProjectorInfo info = {};

SavedProjectorInfo *info = new SavedProjectorInfo();
info->monitor = obs_data_get_int(data, "monitor");
info->type = static_cast<ProjectorType>(obs_data_get_int(data, "type"));
info->geometry = std::string(obs_data_get_string(data, "geometry"));
info->name = std::string(obs_data_get_string(data, "name"));
info->alwaysOnTop = obs_data_get_bool(data, "alwaysOnTop");
info->alwaysOnTopOverridden = obs_data_get_bool(data, "alwaysOnTopOverridden");
info.monitor = obs_data_get_int(data, "monitor");
info.type = static_cast<ProjectorType>(obs_data_get_int(data, "type"));
info.geometry = std::string(obs_data_get_string(data, "geometry"));
info.name = std::string(obs_data_get_string(data, "name"));
info.alwaysOnTop = obs_data_get_bool(data, "alwaysOnTop");
info.alwaysOnTopOverridden = obs_data_get_bool(data, "alwaysOnTopOverridden");

savedProjectorsArray.emplace_back(info);
OpenSavedProjector(&info);
}
}

Expand Down Expand Up @@ -225,13 +220,6 @@ void OBSBasic::OpenSceneWindow()
OpenProjector(obs_scene_get_source(scene), -1, ProjectorType::Scene);
}

void OBSBasic::OpenSavedProjectors()
{
for (SavedProjectorInfo *info : savedProjectorsArray) {
OpenSavedProjector(info);
}
}

void OBSBasic::OpenSavedProjector(SavedProjectorInfo *info)
{
if (info) {
Expand Down
1 change: 0 additions & 1 deletion frontend/widgets/OBSBasic_SceneCollections.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1279,7 +1279,6 @@ void OBSBasic::LoadData(obs_data_t *data, const char *file, bool remigrate)

if (savedProjectors) {
LoadSavedProjectors(savedProjectors);
OpenSavedProjectors();
activateWindow();
}
}
Expand Down

0 comments on commit 43be123

Please sign in to comment.