Commit af94c8a3ebc667fe053bf61c22ab414577a468ad

Authored by Scott Klum
1 parent 4cef4046

setPropertyRecursive updates

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&lt;br::Transform&gt; br::Transform::fromAlgorithm(const QString &amp;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;
... ...