mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-04-18 16:17:23 -05:00
Clean up variable signal handling
This commit is contained in:
parent
8f77b6cbd7
commit
e36e4f61da
|
|
@ -193,9 +193,6 @@ signals:
|
|||
void ConnectionAdded(const QString &);
|
||||
void ConnectionRenamed(const QString &oldName, const QString &newName);
|
||||
void ConnectionRemoved(const QString &);
|
||||
void VariableAdded(const QString &);
|
||||
void VariableRenamed(const QString &oldName, const QString &newName);
|
||||
void VariableRemoved(const QString &);
|
||||
|
||||
private:
|
||||
enum class MacroSection { CONDITIONS, ACTIONS, ELSE_ACTIONS };
|
||||
|
|
|
|||
|
|
@ -318,14 +318,15 @@ SceneSelectionWidget::SceneSelectionWidget(QWidget *parent, bool variables,
|
|||
this, SLOT(ItemRename(const QString &, const QString &)));
|
||||
|
||||
// Variables
|
||||
QWidget::connect(window(), SIGNAL(VariableAdded(const QString &)), this,
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Add(const QString &)), this,
|
||||
SLOT(ItemAdd(const QString &)));
|
||||
QWidget::connect(window(), SIGNAL(VariableRemoved(const QString &)),
|
||||
this, SLOT(ItemRemove(const QString &)));
|
||||
QWidget::connect(
|
||||
window(),
|
||||
SIGNAL(VariableRenamed(const QString &, const QString &)), this,
|
||||
SLOT(ItemRename(const QString &, const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Remove(const QString &)), this,
|
||||
SLOT(ItemRemove(const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Rename(const QString &, const QString &)), this,
|
||||
SLOT(ItemRename(const QString &, const QString &)));
|
||||
}
|
||||
|
||||
void SceneSelectionWidget::SetScene(const SceneSelection &s)
|
||||
|
|
|
|||
|
|
@ -182,14 +182,15 @@ SourceSelectionWidget::SourceSelectionWidget(QWidget *parent,
|
|||
SLOT(SelectionChanged(int)));
|
||||
|
||||
// Variables
|
||||
QWidget::connect(window(), SIGNAL(VariableAdded(const QString &)), this,
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Add(const QString &)), this,
|
||||
SLOT(ItemAdd(const QString &)));
|
||||
QWidget::connect(window(), SIGNAL(VariableRemoved(const QString &)),
|
||||
this, SLOT(ItemRemove(const QString &)));
|
||||
QWidget::connect(
|
||||
window(),
|
||||
SIGNAL(VariableRenamed(const QString &, const QString &)), this,
|
||||
SLOT(ItemRename(const QString &, const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Remove(const QString &)), this,
|
||||
SLOT(ItemRemove(const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Rename(const QString &, const QString &)), this,
|
||||
SLOT(ItemRename(const QString &, const QString &)));
|
||||
}
|
||||
|
||||
void SourceSelectionWidget::SetSource(const SourceSelection &s)
|
||||
|
|
|
|||
|
|
@ -27,21 +27,16 @@ GenericVaraiableSpinbox::GenericVaraiableSpinbox(QWidget *parent,
|
|||
QWidget::connect(_variable, SIGNAL(SelectionChanged(const QString &)),
|
||||
this, SLOT(VariableChanged(const QString &)));
|
||||
|
||||
// Forward signals for variable selection
|
||||
if (window() != this) {
|
||||
QWidget::connect(window(),
|
||||
SIGNAL(VariableRenamed(const QString &,
|
||||
const QString &)),
|
||||
this,
|
||||
SIGNAL(VariableRenamed(const QString &,
|
||||
const QString &)));
|
||||
QWidget::connect(window(),
|
||||
SIGNAL(VariableAdded(const QString &)), this,
|
||||
SIGNAL(VariableAdded(const QString &)));
|
||||
QWidget::connect(window(),
|
||||
SIGNAL(VariableRemoved(const QString &)), this,
|
||||
SIGNAL(VariableRemoved(const QString &)));
|
||||
}
|
||||
QWidget::connect(
|
||||
VariableSignalManager::Instance(),
|
||||
SIGNAL(Rename(const QString &, const QString &)), this,
|
||||
SIGNAL(VariableRenamed(const QString &, const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Add(const QString &)), this,
|
||||
SIGNAL(VariableAdded(const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Remove(const QString &)), this,
|
||||
SIGNAL(VariableRemoved(const QString &)));
|
||||
|
||||
auto layout = new QHBoxLayout();
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
|
|
|
|||
|
|
@ -260,24 +260,27 @@ VariableSelection::VariableSelection(QWidget *parent)
|
|||
"AdvSceneSwitcher.variable.configure", parent)
|
||||
{
|
||||
// Connect to slots
|
||||
QWidget::connect(
|
||||
window(),
|
||||
SIGNAL(VariableRenamed(const QString &, const QString &)), this,
|
||||
SLOT(RenameItem(const QString &, const QString &)));
|
||||
QWidget::connect(window(), SIGNAL(VariableAdded(const QString &)), this,
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Rename(const QString &, const QString &)), this,
|
||||
SLOT(RenameItem(const QString &, const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Add(const QString &)), this,
|
||||
SLOT(AddItem(const QString &)));
|
||||
QWidget::connect(window(), SIGNAL(VariableRemoved(const QString &)),
|
||||
this, SLOT(RemoveItem(const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Remove(const QString &)), this,
|
||||
SLOT(RemoveItem(const QString &)));
|
||||
|
||||
// Forward signals
|
||||
QWidget::connect(
|
||||
this, SIGNAL(ItemRenamed(const QString &, const QString &)),
|
||||
window(),
|
||||
SIGNAL(VariableRenamed(const QString &, const QString &)));
|
||||
QWidget::connect(this, SIGNAL(ItemAdded(const QString &)), window(),
|
||||
SIGNAL(VariableAdded(const QString &)));
|
||||
QWidget::connect(this, SIGNAL(ItemRemoved(const QString &)), window(),
|
||||
SIGNAL(VariableRemoved(const QString &)));
|
||||
QWidget::connect(this,
|
||||
SIGNAL(ItemRenamed(const QString &, const QString &)),
|
||||
VariableSignalManager::Instance(),
|
||||
SIGNAL(Rename(const QString &, const QString &)));
|
||||
QWidget::connect(this, SIGNAL(ItemAdded(const QString &)),
|
||||
VariableSignalManager::Instance(),
|
||||
SIGNAL(Add(const QString &)));
|
||||
QWidget::connect(this, SIGNAL(ItemRemoved(const QString &)),
|
||||
VariableSignalManager::Instance(),
|
||||
SIGNAL(Remove(const QString &)));
|
||||
}
|
||||
|
||||
void VariableSelection::SetVariable(const std::string &variable)
|
||||
|
|
@ -301,4 +304,14 @@ void VariableSelection::SetVariable(const std::weak_ptr<Variable> &variable_)
|
|||
}
|
||||
}
|
||||
|
||||
VariableSignalManager::VariableSignalManager(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
VariableSignalManager *VariableSignalManager::Instance()
|
||||
{
|
||||
static VariableSignalManager manager;
|
||||
return &manager;
|
||||
}
|
||||
|
||||
} // namespace advss
|
||||
|
|
|
|||
|
|
@ -69,6 +69,18 @@ public:
|
|||
void SetVariable(const std::weak_ptr<Variable> &);
|
||||
};
|
||||
|
||||
class ADVSS_EXPORT VariableSignalManager : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
VariableSignalManager(QObject *parent = nullptr);
|
||||
static VariableSignalManager *Instance();
|
||||
|
||||
signals:
|
||||
void Rename(const QString &, const QString &);
|
||||
void Add(const QString &);
|
||||
void Remove(const QString &);
|
||||
};
|
||||
|
||||
void SaveVariables(obs_data_t *obj);
|
||||
void LoadVariables(obs_data_t *obj);
|
||||
|
||||
|
|
|
|||
|
|
@ -225,14 +225,15 @@ FilterSelectionWidget::FilterSelectionWidget(QWidget *parent,
|
|||
SLOT(SourceChanged(const SourceSelection &)));
|
||||
|
||||
// Variables
|
||||
QWidget::connect(window(), SIGNAL(VariableAdded(const QString &)), this,
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Add(const QString &)), this,
|
||||
SLOT(ItemAdd(const QString &)));
|
||||
QWidget::connect(window(), SIGNAL(VariableRemoved(const QString &)),
|
||||
this, SLOT(ItemRemove(const QString &)));
|
||||
QWidget::connect(
|
||||
window(),
|
||||
SIGNAL(VariableRenamed(const QString &, const QString &)), this,
|
||||
SLOT(ItemRename(const QString &, const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Remove(const QString &)), this,
|
||||
SLOT(ItemRemove(const QString &)));
|
||||
QWidget::connect(VariableSignalManager::Instance(),
|
||||
SIGNAL(Rename(const QString &, const QString &)), this,
|
||||
SLOT(ItemRename(const QString &, const QString &)));
|
||||
}
|
||||
|
||||
void FilterSelectionWidget::SetFilter(const SourceSelection &source,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user