project: remove ProjectSettings

This commit is contained in:
itsmattkc
2023-02-28 11:59:05 -08:00
parent cb9008a623
commit f12c3b01d5
18 changed files with 321 additions and 255 deletions
+25 -6
View File
@@ -47,6 +47,7 @@ void ProjectCopier::SetProject(Project *project)
disconnect(original_, &Project::InputDisconnected, this, &ProjectCopier::QueueEdgeRemove);
disconnect(original_, &Project::ValueChanged, this, &ProjectCopier::QueueValueChange);
disconnect(original_, &Project::InputValueHintChanged, this, &ProjectCopier::QueueValueHintChange);
disconnect(original_, &Project::SettingChanged, this, &ProjectCopier::QueueProjectSettingChange);
}
original_ = project;
@@ -68,6 +69,9 @@ void ProjectCopier::SetProject(Project *project)
}
}
// Copy project settings
Project::CopySettings(original_, copy_);
// Ensure graph change value is just before the sync value
UpdateGraphChangeValue();
UpdateLastSyncedValue();
@@ -79,6 +83,7 @@ void ProjectCopier::SetProject(Project *project)
connect(original_, &Project::InputDisconnected, this, &ProjectCopier::QueueEdgeRemove, Qt::DirectConnection);
connect(original_, &Project::ValueChanged, this, &ProjectCopier::QueueValueChange, Qt::DirectConnection);
connect(original_, &Project::InputValueHintChanged, this, &ProjectCopier::QueueValueHintChange, Qt::DirectConnection);
connect(original_, &Project::SettingChanged, this, &ProjectCopier::QueueProjectSettingChange, Qt::DirectConnection);
}
}
@@ -108,6 +113,9 @@ void ProjectCopier::ProcessUpdateQueue()
case QueuedJob::kValueHintChanged:
DoValueHintChange(job.input);
break;
case QueuedJob::kProjectSettingChanged:
DoProjectSettingChange(job.key, job.value);
break;
}
}
@@ -200,6 +208,11 @@ void ProjectCopier::DoValueHintChange(const NodeInput &input)
our_input->SetValueHintForInput(input.input(), hint, input.element());
}
void ProjectCopier::DoProjectSettingChange(const QString &key, const QString &value)
{
copy_->SetSetting(key, value);
}
void ProjectCopier::InsertIntoCopyMap(Node *node, Node *copy)
{
// Insert into map
@@ -214,25 +227,25 @@ void ProjectCopier::InsertIntoCopyMap(Node *node, Node *copy)
void ProjectCopier::QueueNodeAdd(Node *node)
{
graph_update_queue_.push_back({QueuedJob::kNodeAdded, node, NodeInput(), nullptr});
graph_update_queue_.push_back({QueuedJob::kNodeAdded, node, NodeInput(), nullptr, QString(), QString()});
UpdateGraphChangeValue();
}
void ProjectCopier::QueueNodeRemove(Node *node)
{
graph_update_queue_.push_back({QueuedJob::kNodeRemoved, node, NodeInput(), nullptr});
graph_update_queue_.push_back({QueuedJob::kNodeRemoved, node, NodeInput(), nullptr, QString(), QString()});
UpdateGraphChangeValue();
}
void ProjectCopier::QueueEdgeAdd(Node *output, const NodeInput &input)
{
graph_update_queue_.push_back({QueuedJob::kEdgeAdded, nullptr, input, output});
graph_update_queue_.push_back({QueuedJob::kEdgeAdded, nullptr, input, output, QString(), QString()});
UpdateGraphChangeValue();
}
void ProjectCopier::QueueEdgeRemove(Node *output, const NodeInput &input)
{
graph_update_queue_.push_back({QueuedJob::kEdgeRemoved, nullptr, input, output});
graph_update_queue_.push_back({QueuedJob::kEdgeRemoved, nullptr, input, output, QString(), QString()});
UpdateGraphChangeValue();
}
@@ -246,13 +259,19 @@ void ProjectCopier::QueueValueChange(const NodeInput &input)
}
}
graph_update_queue_.push_back({QueuedJob::kValueChanged, nullptr, input, nullptr});
graph_update_queue_.push_back({QueuedJob::kValueChanged, nullptr, input, nullptr, QString(), QString()});
UpdateGraphChangeValue();
}
void ProjectCopier::QueueValueHintChange(const NodeInput &input)
{
graph_update_queue_.push_back({QueuedJob::kValueHintChanged, nullptr, input, nullptr});
graph_update_queue_.push_back({QueuedJob::kValueHintChanged, nullptr, input, nullptr, QString(), QString()});
UpdateGraphChangeValue();
}
void ProjectCopier::QueueProjectSettingChange(const QString &key, const QString &value)
{
graph_update_queue_.push_back({QueuedJob::kProjectSettingChanged, nullptr, NodeInput(), nullptr, key, value});
UpdateGraphChangeValue();
}