Merge remote-tracking branch 'origin/master' into fix_save_palette_dialog
This commit is contained in:
commit
01d49686ac
2 changed files with 14 additions and 30 deletions
|
@ -445,12 +445,12 @@ TFx *RasterFxPluginHost::clone(bool recursive) const
|
|||
}
|
||||
}
|
||||
|
||||
printf("recursive:%d params:%d\n", recursive, pi_->params_.size());
|
||||
printf("recursive:%d params:%d\n", recursive, params_.size());
|
||||
// clone params before TFx::clone().
|
||||
/* ui_pages_, param_views_ は pi に移ったが createParam の呼び出しだけはしておかないと Fx Settings 構築時に assert failed になる */
|
||||
for (auto const ¶m : pi_->params_) {
|
||||
for (auto const ¶m : params_) {
|
||||
/* 古い createParam() は desc をとらず、コンストラクト時にデフォルト値を持つタイプの T*Param を再作成できない */
|
||||
plugin->createParam(param->desc(), true);
|
||||
plugin->createParam(param->desc());
|
||||
}
|
||||
|
||||
return TFx::clone(plugin, recursive);
|
||||
|
@ -606,17 +606,17 @@ UIPage *RasterFxPluginHost::createUIPage(const char *name)
|
|||
}
|
||||
|
||||
// deprecated. for migration.
|
||||
Param *RasterFxPluginHost::createParam(const char *name, toonz_param_type_enum e, bool fromclone)
|
||||
Param *RasterFxPluginHost::createParam(const char *name, toonz_param_type_enum e)
|
||||
{
|
||||
toonz_param_desc_t *desc = new toonz_param_desc_t;
|
||||
memset(desc, 0, sizeof(toonz_param_desc_t));
|
||||
desc->base.ver = {1, 0};
|
||||
desc->key = name;
|
||||
desc->traits_tag = e;
|
||||
return createParam(desc, fromclone);
|
||||
return createParam(desc);
|
||||
}
|
||||
|
||||
Param *RasterFxPluginHost::createParam(const toonz_param_desc_t *desc, bool fromclone)
|
||||
Param *RasterFxPluginHost::createParam(const toonz_param_desc_t *desc)
|
||||
{
|
||||
TParamP p = parameter_factory(desc);
|
||||
if (!p)
|
||||
|
@ -627,31 +627,15 @@ Param *RasterFxPluginHost::createParam(const toonz_param_desc_t *desc, bool from
|
|||
|
||||
bindParam(this, desc->key, p);
|
||||
|
||||
/* pi は永続性があるので clone から呼ばれた場合は書き換えない */
|
||||
if (!fromclone) {
|
||||
// add to a map
|
||||
Param *param = nullptr;
|
||||
for (auto const &p : pi_->params_) {
|
||||
if (p->name() == desc->key) {
|
||||
param = p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!param) {
|
||||
pi_->params_.push_back(nullptr);
|
||||
pi_->params_.back() = new Param(this, desc->key, toonz_param_type_enum(desc->traits_tag), desc);
|
||||
param = pi_->params_.back();
|
||||
}
|
||||
return param;
|
||||
}
|
||||
return nullptr;
|
||||
params_.push_back(std::make_shared<Param>(this, desc->key, toonz_param_type_enum(desc->traits_tag), desc));
|
||||
return params_.back().get();
|
||||
}
|
||||
|
||||
Param *RasterFxPluginHost::getParam(const char *name) const
|
||||
{
|
||||
for (auto ¶m : pi_->params_) {
|
||||
for (auto ¶m : params_) {
|
||||
if (param->name() == name) {
|
||||
return param;
|
||||
return param.get();
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
|
@ -795,7 +779,7 @@ bool RasterFxPluginHost::setParamStructure(int n, toonz_param_page_t *p, int &er
|
|||
else {
|
||||
if (!validateKeyName(desc->key))
|
||||
err |= TOONZ_PARAM_ERROR_KEY_NAME;
|
||||
for (auto it : pi_->params_) {
|
||||
for (auto it : params_) {
|
||||
if (it->name() == desc->key) {
|
||||
err |= TOONZ_PARAM_ERROR_KEY_DUP;
|
||||
break;
|
||||
|
|
|
@ -89,7 +89,6 @@ public:
|
|||
toonz_param_page_t *param_pages_;
|
||||
|
||||
std::vector<UIPage *> ui_pages_;
|
||||
std::vector<Param *> params_;
|
||||
std::vector<ParamView *> param_views_;
|
||||
std::map<std::string, port_description_t> port_mapper_;
|
||||
|
||||
|
@ -146,6 +145,7 @@ class RasterFxPluginHost : public TZeraryFx, public TPluginInterface
|
|||
PluginInformation *pi_;
|
||||
|
||||
std::vector<std::shared_ptr<TFxPort>> inputs_;
|
||||
std::vector<std::shared_ptr<Param>> params_;
|
||||
void *user_data_;
|
||||
|
||||
static bool validateKeyName(const char *name);
|
||||
|
@ -180,8 +180,8 @@ public:
|
|||
bool setParamStructure(int n, toonz_param_page_t *descs, int &err, void *&pos);
|
||||
bool addPortDesc(port_description_t &&);
|
||||
|
||||
Param *createParam(const toonz_param_desc_t *, bool fromclone = false);
|
||||
Param *createParam(const char *name, toonz_param_type_enum e, bool fromclone = false);
|
||||
Param *createParam(const toonz_param_desc_t *);
|
||||
Param *createParam(const char *name, toonz_param_type_enum e);
|
||||
Param *getParam(const char *name) const;
|
||||
ParamView *createParamView();
|
||||
|
||||
|
|
Loading…
Reference in a new issue