Commit af94c8a3ebc667fe053bf61c22ab414577a468ad
1 parent
4cef4046
setPropertyRecursive updates
Showing
2 changed files
with
32 additions
and
5 deletions
openbr/core/core.cpp
| ... | ... | @@ -203,9 +203,9 @@ struct AlgorithmCore |
| 203 | 203 | outputDesc.append("GalleryOutput("+gallery.flat()+")"); |
| 204 | 204 | stages.append(progressCounter.data()); |
| 205 | 205 | |
| 206 | - QScopedPointer<Transform> pipeline(br::pipeTransforms(stages)); | |
| 206 | + QScopedPointer<Transform> pipeline(pipeTransforms(stages)); | |
| 207 | 207 | |
| 208 | - QScopedPointer<Transform> stream(br::wrapTransform(pipeline.data(), "Stream(readMode=StreamGallery, endPoint="+outputDesc+"+DiscardTemplates)")); | |
| 208 | + QScopedPointer<Transform> stream(wrapTransform(pipeline.data(), "Stream(readMode=StreamGallery, endPoint="+outputDesc+"+DiscardTemplates)")); | |
| 209 | 209 | |
| 210 | 210 | TemplateList data, output; |
| 211 | 211 | data.append(input); |
| ... | ... | @@ -731,9 +731,17 @@ QSharedPointer<br::Transform> br::Transform::fromAlgorithm(const QString &algori |
| 731 | 731 | if (!preprocess) |
| 732 | 732 | return AlgorithmManager::getAlgorithm(algorithm)->transform; |
| 733 | 733 | else { |
| 734 | - QSharedPointer<Transform> orig_tform = AlgorithmManager::getAlgorithm(algorithm)->transform; | |
| 735 | - QSharedPointer<Transform> newRoot(wrapTransform(orig_tform.data(), "Stream(readMode=DistributeFrames)")); | |
| 736 | - return newRoot; | |
| 734 | + QSharedPointer<Transform> transform = AlgorithmManager::getAlgorithm(algorithm)->transform; | |
| 735 | + QSharedPointer<Transform> progressCounter = AlgorithmManager::getAlgorithm(algorithm)->progressCounter; | |
| 736 | + | |
| 737 | + QList<Transform *> stages; | |
| 738 | + stages.append(transform.data()); | |
| 739 | + stages.append(progressCounter.data()); | |
| 740 | + | |
| 741 | + QSharedPointer<Transform> pipeline(pipeTransforms(stages)); | |
| 742 | + QSharedPointer<Transform> stream(wrapTransform(pipeline.data(), "Stream(readMode=DistributeFrames)")); | |
| 743 | + | |
| 744 | + return stream; | |
| 737 | 745 | } |
| 738 | 746 | } |
| 739 | 747 | ... | ... |
openbr/plugins/stream.cpp
| ... | ... | @@ -1265,6 +1265,9 @@ void BasicLoop::run() |
| 1265 | 1265 | class DirectStreamTransform : public CompositeTransform |
| 1266 | 1266 | { |
| 1267 | 1267 | Q_OBJECT |
| 1268 | + | |
| 1269 | + using CompositeTransform::setPropertyRecursive; | |
| 1270 | + | |
| 1268 | 1271 | public: |
| 1269 | 1272 | Q_PROPERTY(int activeFrames READ get_activeFrames WRITE set_activeFrames RESET reset_activeFrames) |
| 1270 | 1273 | Q_PROPERTY(br::Idiocy::StreamModes readMode READ get_readMode WRITE set_readMode RESET reset_readMode) |
| ... | ... | @@ -1578,6 +1581,8 @@ class StreamTransform : public WrapperTransform |
| 1578 | 1581 | { |
| 1579 | 1582 | Q_OBJECT |
| 1580 | 1583 | |
| 1584 | + using WrapperTransform::setPropertyRecursive; | |
| 1585 | + | |
| 1581 | 1586 | public: |
| 1582 | 1587 | StreamTransform() : WrapperTransform(false) |
| 1583 | 1588 | { |
| ... | ... | @@ -1707,6 +1712,20 @@ public: |
| 1707 | 1712 | return res; |
| 1708 | 1713 | } |
| 1709 | 1714 | |
| 1715 | + bool setPropertyRecursive(const QString &name, QVariant value) | |
| 1716 | + { | |
| 1717 | + if (br::Object::setPropertyRecursive(name, value)) | |
| 1718 | + return true; | |
| 1719 | + | |
| 1720 | + for (int i=0; i < basis->transforms.size();i++) { | |
| 1721 | + if (basis->transforms[i]->setPropertyRecursive(name, value)) { | |
| 1722 | + basis->init(); | |
| 1723 | + return true; | |
| 1724 | + } | |
| 1725 | + } | |
| 1726 | + return false; | |
| 1727 | + } | |
| 1728 | + | |
| 1710 | 1729 | |
| 1711 | 1730 | private: |
| 1712 | 1731 | QSharedPointer<DirectStreamTransform> basis; | ... | ... |