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);
|
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 &&
|
if (vcamConfig.type == VCamOutputType::SourceOutput &&
|
||||||
prevName == QString::fromStdString(vcamConfig.source))
|
prevName == QString::fromStdString(vcamConfig.source))
|
||||||
vcamConfig.source = newName.toStdString();
|
vcamConfig.source = newName.toStdString();
|
||||||
|
@ -21,8 +21,10 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
|||||||
{
|
{
|
||||||
OBSSource source = GetSource();
|
OBSSource source = GetSource();
|
||||||
if (source) {
|
if (source) {
|
||||||
destroyedSignal.Connect(obs_source_get_signal_handler(source),
|
sigs.emplace_back(obs_source_get_signal_handler(source),
|
||||||
"destroy", OBSSourceDestroyed, this);
|
"rename", OBSSourceRenamed, this);
|
||||||
|
sigs.emplace_back(obs_source_get_signal_handler(source),
|
||||||
|
"destroy", OBSSourceDestroyed, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
isAlwaysOnTop = config_get_bool(GetGlobalConfig(), "BasicWindow",
|
isAlwaysOnTop = config_get_bool(GetGlobalConfig(), "BasicWindow",
|
||||||
@ -106,6 +108,8 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
|||||||
|
|
||||||
OBSProjector::~OBSProjector()
|
OBSProjector::~OBSProjector()
|
||||||
{
|
{
|
||||||
|
sigs.clear();
|
||||||
|
|
||||||
bool isMultiview = type == ProjectorType::Multiview;
|
bool isMultiview = type == ProjectorType::Multiview;
|
||||||
obs_display_remove_draw_callback(
|
obs_display_remove_draw_callback(
|
||||||
GetDisplay(), isMultiview ? OBSRenderMultiview : OBSRender,
|
GetDisplay(), isMultiview ? OBSRenderMultiview : OBSRender,
|
||||||
@ -215,6 +219,17 @@ void OBSProjector::OBSRender(void *data, uint32_t cx, uint32_t cy)
|
|||||||
endRegion();
|
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 *)
|
void OBSProjector::OBSSourceDestroyed(void *data, calldata_t *)
|
||||||
{
|
{
|
||||||
OBSProjector *window = reinterpret_cast<OBSProjector *>(data);
|
OBSProjector *window = reinterpret_cast<OBSProjector *>(data);
|
||||||
|
@ -19,10 +19,11 @@ class OBSProjector : public OBSQTDisplay {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
OBSWeakSourceAutoRelease weakSource;
|
OBSWeakSourceAutoRelease weakSource;
|
||||||
OBSSignal destroyedSignal;
|
std::vector<OBSSignal> sigs;
|
||||||
|
|
||||||
static void OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy);
|
static void OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy);
|
||||||
static void OBSRender(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);
|
static void OBSSourceDestroyed(void *data, calldata_t *params);
|
||||||
|
|
||||||
void mousePressEvent(QMouseEvent *event) override;
|
void mousePressEvent(QMouseEvent *event) override;
|
||||||
@ -53,6 +54,7 @@ private slots:
|
|||||||
void OpenWindowedProjector();
|
void OpenWindowedProjector();
|
||||||
void AlwaysOnTopToggled(bool alwaysOnTop);
|
void AlwaysOnTopToggled(bool alwaysOnTop);
|
||||||
void ScreenRemoved(QScreen *screen_);
|
void ScreenRemoved(QScreen *screen_);
|
||||||
|
void RenameProjector(QString oldName, QString newName);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
OBSProjector(QWidget *widget, obs_source_t *source_, int monitor,
|
||||||
@ -63,7 +65,6 @@ public:
|
|||||||
ProjectorType GetProjectorType();
|
ProjectorType GetProjectorType();
|
||||||
int GetMonitor();
|
int GetMonitor();
|
||||||
static void UpdateMultiviewProjectors();
|
static void UpdateMultiviewProjectors();
|
||||||
void RenameProjector(QString oldName, QString newName);
|
|
||||||
void SetHideCursor();
|
void SetHideCursor();
|
||||||
|
|
||||||
bool IsAlwaysOnTop() const;
|
bool IsAlwaysOnTop() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user