Switch to using string as ids for actions and conditions

Using int is an id was getting messy with more and more conditions and
actions beeing added.
It also made the order of conditions and actions in the respective
comboboxes unchangable as there was a 1 to 1 relation of index and id.
This commit is contained in:
WarmUpTill
2021-05-22 00:48:38 +02:00
committed by WarmUpTill
parent ae71b24c60
commit 572b974b82
52 changed files with 173 additions and 132 deletions

View File

@@ -15,7 +15,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionAudio>();
@@ -27,7 +27,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionAudioEdit : public QWidget {

View File

@@ -20,15 +20,16 @@ struct MacroActionInfo {
class MacroActionFactory {
public:
MacroActionFactory() = delete;
static bool Register(int id, MacroActionInfo);
static std::shared_ptr<MacroAction> Create(const int id);
static QWidget *CreateWidget(const int id, QWidget *parent,
static bool Register(std::string id, MacroActionInfo);
static std::shared_ptr<MacroAction> Create(const std::string id);
static QWidget *CreateWidget(const std::string id, QWidget *parent,
std::shared_ptr<MacroAction> action);
static auto GetActionTypes() { return _methods; }
static std::string GetActionName(int id);
static std::string GetActionName(const std::string id);
static std::string GetIdByName(const QString &name);
private:
static std::map<int, MacroActionInfo> _methods;
static std::map<std::string, MacroActionInfo> _methods;
};
class MacroActionEdit : public QWidget {
@@ -36,13 +37,14 @@ class MacroActionEdit : public QWidget {
public:
MacroActionEdit(QWidget *parent = nullptr,
std::shared_ptr<MacroAction> * = nullptr, int type = 0,
std::shared_ptr<MacroAction> * = nullptr,
std::string id = "scene_switch",
bool startCollapsed = false);
void UpdateEntryData(int type);
void UpdateEntryData(std::string id);
void Collapse(bool collapsed);
private slots:
void ActionSelectionChanged(int idx);
void ActionSelectionChanged(const QString &text);
protected:
QComboBox *_actionSelection;

View File

@@ -13,7 +13,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionFilter>();
@@ -25,7 +25,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionFilterEdit : public QWidget {

View File

@@ -16,7 +16,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionRecord>();
@@ -26,7 +26,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionRecordEdit : public QWidget {

View File

@@ -15,7 +15,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionReplayBuffer>();
@@ -33,7 +33,7 @@ private:
Duration _duration;
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionReplayBufferEdit : public QWidget {

View File

@@ -10,7 +10,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionRun>();
@@ -20,7 +20,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionRunEdit : public QWidget {

View File

@@ -9,7 +9,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
@@ -21,7 +21,7 @@ private:
const char *getType() { return "MacroActionSwitchScene"; }
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionSwitchSceneEdit : public SwitchWidget {

View File

@@ -13,7 +13,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionSceneVisibility>();
@@ -25,7 +25,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionSceneVisibilityEdit : public QWidget {

View File

@@ -13,7 +13,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionSource>();
@@ -24,7 +24,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionSourceEdit : public QWidget {

View File

@@ -14,7 +14,7 @@ public:
void LogAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionStream>();
@@ -28,7 +28,7 @@ private:
Duration _retryCooldown;
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionStreamEdit : public QWidget {

View File

@@ -13,7 +13,7 @@ public:
bool PerformAction();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroAction> Create()
{
return std::make_shared<MacroActionWait>();
@@ -24,7 +24,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroActionWaitEdit : public QWidget {

View File

@@ -19,7 +19,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionAudio>();
@@ -39,7 +39,7 @@ public:
private:
float _peak = -std::numeric_limits<float>::infinity();
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionAudioEdit : public QWidget {

View File

@@ -20,15 +20,16 @@ struct MacroConditionInfo {
class MacroConditionFactory {
public:
MacroConditionFactory() = delete;
static bool Register(int id, MacroConditionInfo);
static std::shared_ptr<MacroCondition> Create(const int id);
static QWidget *CreateWidget(const int id, QWidget *parent,
static bool Register(const std::string &, MacroConditionInfo);
static std::shared_ptr<MacroCondition> Create(const std::string);
static QWidget *CreateWidget(const std::string &id, QWidget *parent,
std::shared_ptr<MacroCondition>);
static auto GetConditionTypes() { return _methods; }
static std::string GetConditionName(int id);
static std::string GetConditionName(const std::string &);
static std::string GetIdByName(const QString& name);
private:
static std::map<int, MacroConditionInfo> _methods;
static std::map<std::string, MacroConditionInfo> _methods;
};
class MacroConditionEdit : public QWidget {
@@ -37,15 +38,15 @@ class MacroConditionEdit : public QWidget {
public:
MacroConditionEdit(QWidget *parent = nullptr,
std::shared_ptr<MacroCondition> * = nullptr,
int type = 0, bool root = true,
const std::string &id = "scene", bool root = true,
bool startCollapsed = false);
bool IsRootNode();
void UpdateEntryData(int type);
void UpdateEntryData(const std::string &id);
void Collapse(bool collapsed);
private slots:
void LogicSelectionChanged(int idx);
void ConditionSelectionChanged(int idx);
void ConditionSelectionChanged(const QString &text);
protected:
QComboBox *_logicSelection;

View File

@@ -18,7 +18,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionFile>();
@@ -39,7 +39,7 @@ private:
QDateTime _lastMod;
size_t _lastHash = 0;
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionFileEdit : public QWidget {

View File

@@ -9,7 +9,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionIdle>();
@@ -19,7 +19,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionIdleEdit : public QWidget {

View File

@@ -9,7 +9,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionInterval>();
@@ -19,7 +19,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionIntervalEdit : public QWidget {

View File

@@ -39,7 +39,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionMedia>();
@@ -65,7 +65,7 @@ private:
bool _playedToEnd = false;
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionMediaEdit : public QWidget {

View File

@@ -12,7 +12,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionPluginState>();
@@ -22,7 +22,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionPluginStateEdit : public QWidget {

View File

@@ -8,7 +8,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionProcess>();
@@ -19,7 +19,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionProcessEdit : public QWidget {

View File

@@ -15,7 +15,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionRecord>();
@@ -26,7 +26,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionRecordEdit : public QWidget {

View File

@@ -8,7 +8,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionRegion>();
@@ -18,7 +18,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionRegionEdit : public QWidget {

View File

@@ -14,7 +14,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionScene>();
@@ -26,7 +26,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionSceneEdit : public QWidget {

View File

@@ -14,7 +14,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionStream>();
@@ -25,7 +25,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionStreamEdit : public QWidget {

View File

@@ -19,7 +19,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
QImage GetMatchImage() { return _matchImage; };
static std::shared_ptr<MacroCondition> Create()
{
@@ -39,7 +39,7 @@ private:
std::unique_ptr<AdvSSScreenshotObj> _screenshotData = nullptr;
QImage _matchImage;
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionVideoEdit : public QWidget {

View File

@@ -8,7 +8,7 @@ public:
bool CheckCondition();
bool Save(obs_data_t *obj);
bool Load(obs_data_t *obj);
int GetId() { return id; };
std::string GetId() { return id; };
static std::shared_ptr<MacroCondition> Create()
{
return std::make_shared<MacroConditionWindow>();
@@ -27,7 +27,7 @@ public:
private:
static bool _registered;
static const int id;
static const std::string id;
};
class MacroConditionWindowEdit : public QWidget {

View File

@@ -38,7 +38,7 @@ public:
virtual bool CheckCondition() = 0;
virtual bool Save(obs_data_t *obj) = 0;
virtual bool Load(obs_data_t *obj) = 0;
virtual int GetId() = 0;
virtual std::string GetId() = 0;
LogicType GetLogicType() { return _logic; }
void SetLogicType(LogicType logic) { _logic = logic; }
@@ -53,7 +53,7 @@ public:
virtual bool PerformAction() = 0;
virtual bool Save(obs_data_t *obj) = 0;
virtual bool Load(obs_data_t *obj) = 0;
virtual int GetId() = 0;
virtual std::string GetId() = 0;
virtual void LogAction();
};