mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
UI: Move projector rename signal
This moves the renaming of projectors from OBSBasic to OBSProjector.
This commit is contained in:
parent
023d9bd851
commit
cd918a7f4c
@ -3344,11 +3344,6 @@ void OBSBasic::RenameSources(OBSSource source, QString newName,
|
||||
volumes[i]->SetName(newName);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < projectors.size(); i++) {
|
||||
if (projectors[i]->GetSource() == source)
|
||||
projectors[i]->RenameProjector(prevName, newName);
|
||||
}
|
||||
|
||||
if (vcamConfig.type == VCamOutputType::SourceOutput &&
|
||||
prevName == QString::fromStdString(vcamConfig.source))
|
||||
vcamConfig.source = newName.toStdString();
|
||||
|
@ -21,8 +21,10 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||
{
|
||||
OBSSource source = GetSource();
|
||||
if (source) {
|
||||
destroyedSignal.Connect(obs_source_get_signal_handler(source),
|
||||
"destroy", OBSSourceDestroyed, this);
|
||||
sigs.emplace_back(obs_source_get_signal_handler(source),
|
||||
"rename", OBSSourceRenamed, this);
|
||||
sigs.emplace_back(obs_source_get_signal_handler(source),
|
||||
"destroy", OBSSourceDestroyed, this);
|
||||
}
|
||||
|
||||
isAlwaysOnTop = config_get_bool(GetGlobalConfig(), "BasicWindow",
|
||||
@ -106,6 +108,8 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||
|
||||
OBSProjector::~OBSProjector()
|
||||
{
|
||||
sigs.clear();
|
||||
|
||||
bool isMultiview = type == ProjectorType::Multiview;
|
||||
obs_display_remove_draw_callback(
|
||||
GetDisplay(), isMultiview ? OBSRenderMultiview : OBSRender,
|
||||
@ -215,6 +219,17 @@ void OBSProjector::OBSRender(void *data, uint32_t cx, uint32_t cy)
|
||||
endRegion();
|
||||
}
|
||||
|
||||
void OBSProjector::OBSSourceRenamed(void *data, calldata_t *params)
|
||||
{
|
||||
OBSProjector *window = reinterpret_cast<OBSProjector *>(data);
|
||||
QString oldName = calldata_string(params, "prev_name");
|
||||
QString newName = calldata_string(params, "new_name");
|
||||
|
||||
QMetaObject::invokeMethod(window, "RenameProjector",
|
||||
Q_ARG(QString, oldName),
|
||||
Q_ARG(QString, newName));
|
||||
}
|
||||
|
||||
void OBSProjector::OBSSourceDestroyed(void *data, calldata_t *)
|
||||
{
|
||||
OBSProjector *window = reinterpret_cast<OBSProjector *>(data);
|
||||
|
@ -19,10 +19,11 @@ class OBSProjector : public OBSQTDisplay {
|
||||
|
||||
private:
|
||||
OBSWeakSourceAutoRelease weakSource;
|
||||
OBSSignal destroyedSignal;
|
||||
std::vector<OBSSignal> sigs;
|
||||
|
||||
static void OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy);
|
||||
static void OBSRender(void *data, uint32_t cx, uint32_t cy);
|
||||
static void OBSSourceRenamed(void *data, calldata_t *params);
|
||||
static void OBSSourceDestroyed(void *data, calldata_t *params);
|
||||
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
@ -53,6 +54,7 @@ private slots:
|
||||
void OpenWindowedProjector();
|
||||
void AlwaysOnTopToggled(bool alwaysOnTop);
|
||||
void ScreenRemoved(QScreen *screen_);
|
||||
void RenameProjector(QString oldName, QString newName);
|
||||
|
||||
public:
|
||||
OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||
@ -63,7 +65,6 @@ public:
|
||||
ProjectorType GetProjectorType();
|
||||
int GetMonitor();
|
||||
static void UpdateMultiviewProjectors();
|
||||
void RenameProjector(QString oldName, QString newName);
|
||||
void SetHideCursor();
|
||||
|
||||
bool IsAlwaysOnTop() const;
|
||||
|
Loading…
Reference in New Issue
Block a user