Skip to content

Commit

Permalink
Return previous value
Browse files Browse the repository at this point in the history
in functor setters for direction and filters
  • Loading branch information
brdvd committed Jul 23, 2023
1 parent 0e9c2b0 commit ef00195
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 25 deletions.
31 changes: 24 additions & 7 deletions include/vrv/functor.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class FunctorBase {
* @name Constructors, destructors
*/
///@{
FunctorBase(){};
FunctorBase() {}
virtual ~FunctorBase() = default;
///@}

Expand All @@ -43,15 +43,32 @@ class FunctorBase {
///@}

/**
* Getters/Setters for the properties
* Getter/Setter for the visibility
*/
///@{
Filters *GetFilters() { return m_filters; }
void SetFilters(Filters *filters) { m_filters = filters; }
bool VisibleOnly() const { return m_visibleOnly; }
void SetVisibleOnly(bool visibleOnly) { m_visibleOnly = visibleOnly; }
///@}

/**
* Getters/Setters for the filters and direction
* Here setters return the previous value
*/
///@{
Filters *GetFilters() const { return m_filters; }
Filters *SetFilters(Filters *filters)
{
Filters *previous = m_filters;
m_filters = filters;
return previous;
}
bool GetDirection() const { return m_direction; }
void SetDirection(bool direction) { m_direction = direction; }
bool SetDirection(bool direction)
{
bool previous = m_direction;
m_direction = direction;
return previous;
}
///@}

/**
Expand Down Expand Up @@ -87,7 +104,7 @@ class Functor : public FunctorBase, public FunctorInterface {
* @name Constructors, destructors
*/
///@{
Functor(){};
Functor() {}
virtual ~Functor() = default;
///@}

Expand All @@ -112,7 +129,7 @@ class ConstFunctor : public FunctorBase, public ConstFunctorInterface {
* @name Constructors, destructors
*/
///@{
ConstFunctor(){};
ConstFunctor() {}
virtual ~ConstFunctor() = default;
///@}

Expand Down
3 changes: 1 addition & 2 deletions src/adjustdotsfunctor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,8 @@ FunctorCode AdjustDotsFunctor::VisitMeasure(Measure *measure)
{
if (!measure->HasAlignmentRefWithMultipleLayers()) return FUNCTOR_SIBLINGS;

Filters *previousFilters = this->GetFilters();
Filters filters;
this->SetFilters(&filters);
Filters *previousFilters = this->SetFilters(&filters);

std::vector<int>::iterator iter;
for (iter = m_staffNs.begin(); iter != m_staffNs.end(); ++iter) {
Expand Down
15 changes: 5 additions & 10 deletions src/adjustgracexposfunctor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,9 @@ FunctorCode AdjustGraceXPosFunctor::VisitAlignment(Alignment *alignment)
MeasureAligner *measureAligner = vrv_cast<MeasureAligner *>(alignment->GetFirstAncestor(MEASURE_ALIGNER));
assert(measureAligner);

bool previousDirection = this->GetDirection();
Filters *previousFilters = this->GetFilters();
this->SetDirection(BACKWARD);
const bool previousDirection = this->SetDirection(BACKWARD);
Filters filters;
this->SetFilters(&filters);
Filters *previousFilters = this->SetFilters(&filters);

std::vector<int>::iterator iter;
for (iter = m_staffNs.begin(); iter != m_staffNs.end(); ++iter) {
Expand Down Expand Up @@ -143,10 +141,8 @@ FunctorCode AdjustGraceXPosFunctor::VisitAlignmentReference(AlignmentReference *
// Because we are processing grace notes alignment backward (see VisitAlignment) we need
// to process the children (LayerElement) "by hand" in FORWARD manner
// (filters can be NULL because filtering was already applied in the parent)
bool previousDirection = this->GetDirection();
Filters *previousFilters = this->GetFilters();
this->SetDirection(FORWARD);
this->SetFilters(NULL);
const bool previousDirection = this->SetDirection(FORWARD);
Filters *previousFilters = this->SetFilters(NULL);

for (auto child : alignmentReference->GetChildren()) {
child->Process(*this);
Expand Down Expand Up @@ -209,8 +205,7 @@ FunctorCode AdjustGraceXPosFunctor::VisitMeasure(Measure *measure)
m_rightDefaultAlignment = NULL;

// We process it backward because we want to get the rightDefaultAlignment
bool previousDirection = this->GetDirection();
this->SetDirection(BACKWARD);
const bool previousDirection = this->SetDirection(BACKWARD);
measure->m_measureAligner.Process(*this);

// We need to process the staves in the reverse order
Expand Down
3 changes: 1 addition & 2 deletions src/adjustlayersfunctor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,8 @@ FunctorCode AdjustLayersFunctor::VisitMeasure(Measure *measure)
{
if (!measure->HasAlignmentRefWithMultipleLayers()) return FUNCTOR_SIBLINGS;

Filters *previousFilters = this->GetFilters();
Filters filters;
this->SetFilters(&filters);
Filters *previousFilters = this->SetFilters(&filters);

std::vector<int>::iterator iter;
for (iter = m_staffNs.begin(); iter != m_staffNs.end(); ++iter) {
Expand Down
3 changes: 1 addition & 2 deletions src/adjustxposfunctor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,8 @@ FunctorCode AdjustXPosFunctor::VisitMeasure(Measure *measure)

const bool hasSystemStartLine = measure->IsFirstInSystem() && system->GetDrawingScoreDef()->HasSystemStartLine();

Filters *previousFilters = this->GetFilters();
Filters filters;
this->SetFilters(&filters);
Filters *previousFilters = this->SetFilters(&filters);

for (auto staffN : m_staffNs) {
m_minPos = 0;
Expand Down
3 changes: 1 addition & 2 deletions src/convertfunctor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,8 @@ FunctorCode ConvertToCastOffMensuralFunctor::VisitMeasure(Measure *measure)
}
m_targetSubSystem->AddChild(targetMeasure);

Filters *previousFilters = this->GetFilters();
Filters filters;
this->SetFilters(&filters);
Filters *previousFilters = this->SetFilters(&filters);

// Now we can process by layer and move their content to (measure) segments
for (const auto &staves : m_layerTree->child) {
Expand Down

0 comments on commit ef00195

Please sign in to comment.