Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/converter/internal/compat/notationmeta.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -307,14 +307,13 @@ QJsonObject NotationMeta::pageFormatJson(const mu::engraving::MStyle& style)
return format;
}

static void findTextByType(void* data, mu::engraving::EngravingItem* element)
static void findTextByType(std::pair<TextStyleType, QStringList*>* typeStringsData, mu::engraving::EngravingItem* element)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
static void findTextByType(std::pair<TextStyleType, QStringList*>* typeStringsData, mu::engraving::EngravingItem* element)
static void findTextByType(TextStyleType textStyleType, QStringList& strings, mu::engraving::EngravingItem* element)

{
if (!element->isTextBase()) {
return;
}

const mu::engraving::TextBase* text = toTextBase(element);
auto* typeStringsData = static_cast<std::pair<TextStyleType, QStringList*>*>(data);
if (text->textStyleType() == typeStringsData->first) {
QStringList* titleStrings = typeStringsData->second;
Q_ASSERT(titleStrings);
Expand All @@ -336,7 +335,7 @@ QJsonObject NotationMeta::typeDataJson(mu::engraving::Score* score)
QJsonArray typeData;
QStringList typeTextStrings;
std::pair<TextStyleType, QStringList*> extendedTitleData = std::make_pair(nameType.second, &typeTextStrings);
score->scanElements(&extendedTitleData, findTextByType);
score->scanElements([&](EngravingItem* item) { findTextByType(&extendedTitleData, item); });
for (auto typeStr : typeTextStrings) {
typeData.append(typeStr);
}
Expand Down
9 changes: 6 additions & 3 deletions src/converter/internal/compat/scoreelementsscanner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ static bool itemAccepted(const mu::engraving::EngravingItem* item, const mu::eng
return false;
}

if (!item->visible() && !item->score()->isShowInvisible()) {
return false;
}

if (acceptedTypes.empty()) {
return true;
}
Expand Down Expand Up @@ -95,9 +99,8 @@ static muse::String chordToNotes(const mu::engraving::Chord* chord)
return notes.join(u" ");
}

static void addElementInfoIfNeed(void* data, mu::engraving::EngravingItem* item)
static void addElementInfoIfNeed(ScannerData* scannerData, mu::engraving::EngravingItem* item)
{
ScannerData* scannerData = static_cast<ScannerData*>(data);
if (!itemAccepted(item, scannerData->options.acceptedTypes)) {
return;
}
Expand Down Expand Up @@ -205,7 +208,7 @@ ScoreElementScanner::InstrumentElementMap ScoreElementScanner::scanElements(mu::
ScannerData data;
data.options = options;

score->scanElements(&data, addElementInfoIfNeed, false);
score->scanElements([&](mu::engraving::EngravingItem* item) { addElementInfoIfNeed(&data, item); });

return data.elements;
}
39 changes: 0 additions & 39 deletions src/engraving/devtools/engravingelementsprovider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,50 +140,11 @@
--level;
}

void EngravingElementsProvider::dumpTreeTree(const mu::engraving::EngravingObject* obj, int& level)

Check warning on line 143 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / build (linux_arm64)

unused parameter ‘level’ [-Wunused-parameter]

Check warning on line 143 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / build (linux_arm64)

unused parameter ‘obj’ [-Wunused-parameter]

Check warning on line 143 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / build (linux_x64)

unused parameter ‘level’ [-Wunused-parameter]

Check warning on line 143 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / build (linux_x64)

unused parameter ‘obj’ [-Wunused-parameter]

Check warning on line 143 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / windows_x64

'obj': unreferenced parameter

Check warning on line 143 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / windows_x64

'level': unreferenced parameter
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's either delete these methods or fix them

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checkTree and dumpTree above also look like they're unused

{
++level;
QString gap;
gap.fill(' ', level);
LOGD() << gap << obj->typeName();

for (const mu::engraving::EngravingObject* child : obj->scanChildren()) {
dumpTreeTree(child, level);
}

--level;
}

void EngravingElementsProvider::checkObjectTree(const mu::engraving::EngravingObject* obj)

Check warning on line 147 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / build (linux_arm64)

unused parameter ‘obj’ [-Wunused-parameter]

Check warning on line 147 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / build (linux_x64)

unused parameter ‘obj’ [-Wunused-parameter]

Check warning on line 147 in src/engraving/devtools/engravingelementsprovider.cpp

View workflow job for this annotation

GitHub Actions / windows_x64

'obj': unreferenced parameter
{
mu::engraving::EngravingObject* p1 = obj->parent();
mu::engraving::EngravingObject* p2 = obj->scanParent();
if (p1 && p2 && p1 != p2) {
LOGD() << "obj: " << obj->typeName();
LOGD() << "parents is differens, p1: " << p1->typeName() << ", p2: " << p2->typeName();
}

size_t ch1 = obj->children().size();
size_t ch2 = obj->scanChildren().size();
if (ch1 != ch2) {
LOGD() << "obj: " << obj->typeName();
LOGD() << "chcount is differens, ch1: " << ch1 << ", ch2: " << ch2;

LOGD() << "children1:";
for (size_t i = 0; i < obj->children().size(); ++i) {
LOGD() << i << ": " << obj->children().at(i)->typeName();
}

LOGD() << "children2:";

int i = 0;
for (const mu::engraving::EngravingObject* child : obj->scanChildren()) {
LOGD() << i++ << ": " << child->typeName();
}
}

for (const mu::engraving::EngravingObject* ch : obj->children()) {
checkObjectTree(ch);
}
}
}
3 changes: 0 additions & 3 deletions src/engraving/dom/accidental.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,6 @@ class Accidental final : public EngravingItem

Note* note() const { return (explicitParent() && explicitParent()->isNote()) ? toNote(explicitParent()) : 0; }

// Score Tree functions
EngravingObject* scanParent() const override;

TranslatableString subtypeUserName() const override;
void setSubtype(const AsciiStringView& s);
int subtype() const override { return (int)m_accidentalType; }
Expand Down
9 changes: 4 additions & 5 deletions src/engraving/dom/ambitus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,16 +224,15 @@ void Ambitus::setBottomTpc(int val, bool applyLogic)
// scanElements
//---------------------------------------------------------

void Ambitus::scanElements(void* data, void (* func)(void*, EngravingItem*), bool all)
void Ambitus::scanElements(std::function<void(EngravingItem*)> func)
{
UNUSED(all);
func(data, this);
func(this);
if (m_topAccidental->accidentalType() != AccidentalType::NONE) {
func(data, m_topAccidental);
func(m_topAccidental);
}

if (m_bottomAccidental->accidentalType() != AccidentalType::NONE) {
func(data, m_bottomAccidental);
func(m_bottomAccidental);
}
}

Expand Down
6 changes: 1 addition & 5 deletions src/engraving/dom/ambitus.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,6 @@ class Ambitus final : public EngravingItem

Ambitus* clone() const override { return new Ambitus(*this); }

// Score Tree functions
EngravingObject* scanParent() const override;
EngravingObjectList scanChildren() const override;

double mag() const override;

void initFrom(Ambitus* a);
Expand Down Expand Up @@ -94,7 +90,7 @@ class Ambitus final : public EngravingItem

// re-implemented virtual functions
PointF pagePos() const override; // position in page coordinates
void scanElements(void* data, void (* func)(void*, EngravingItem*), bool all=true) override;
void scanElements(std::function<void(EngravingItem*)> func) override;
void setTrack(track_idx_t val) override;

String accessibleInfo() const override;
Expand Down
11 changes: 3 additions & 8 deletions src/engraving/dom/barline.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -702,16 +702,11 @@ void BarLine::endDragGrip(EditData& ed)
// scanElements
//---------------------------------------------------------

void BarLine::scanElements(void* data, void (* func)(void*, EngravingItem*), bool all)
void BarLine::scanElements(std::function<void(EngravingItem*)> func)
{
// if no width (staff has bar lines turned off) and not all requested, do nothing
if (RealIsNull(width()) && !all) {
return;
}

func(data, this);
func(this);
for (EngravingItem* e : m_el) {
e->scanElements(data, func, all);
e->scanElements(func);
}
}

Expand Down
6 changes: 1 addition & 5 deletions src/engraving/dom/barline.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,11 @@ class BarLine final : public EngravingItem

void setParent(Segment* parent);

// Score Tree functions
EngravingObject* scanParent() const override;
EngravingObjectList scanChildren() const override;

BarLine* clone() const override { return new BarLine(*this); }
PointF canvasPos() const override; ///< position in canvas coordinates
PointF pagePos() const override; ///< position in page coordinates

void scanElements(void* data, void (* func)(void*, EngravingItem*), bool all=true) override;
void scanElements(std::function<void(EngravingItem*)> func) override;
void setTrack(track_idx_t t) override;
void add(EngravingItem*) override;
void remove(EngravingItem*) override;
Expand Down
3 changes: 0 additions & 3 deletions src/engraving/dom/beam.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ class Beam final : public BeamBase
public:
~Beam();

// Score Tree functions
EngravingObject* scanParent() const override;

Beam* clone() const override { return new Beam(*this); }
PointF pagePos() const override; ///< position in page coordinates
PointF canvasPos() const override; ///< position in page coordinates
Expand Down
6 changes: 6 additions & 0 deletions src/engraving/dom/box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -994,6 +994,12 @@ void TBox::resetText(Text* text)
text->setParent(this);
}

void TBox::scanElements(std::function<void(EngravingItem*)> func)
{
m_text->scanElements(func);
Box::scanElements(func);
}

//---------------------------------------------------------
// drop
//---------------------------------------------------------
Expand Down
5 changes: 1 addition & 4 deletions src/engraving/dom/box.h
Original file line number Diff line number Diff line change
Expand Up @@ -252,10 +252,7 @@ class TBox : public VBox
Text* text() const { return m_text; }
void resetText(Text* text);

// Score Tree functions
EngravingObject* scanParent() const override;
EngravingObjectList scanChildren() const override;
void scanElements(void* data, void (* func)(void*, EngravingItem*), bool all = true) override;
void scanElements(std::function<void(EngravingItem*)> func) override;

TBox* clone() const override { return new TBox(*this); }

Expand Down
6 changes: 3 additions & 3 deletions src/engraving/dom/bsymbol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,11 @@ void BSymbol::add(EngravingItem* e)
// scanElements
//---------------------------------------------------------

void BSymbol::scanElements(void* data, void (* func)(void*, EngravingItem*), bool all)
void BSymbol::scanElements(std::function<void(EngravingItem*)> func)
{
func(data, this);
func(this);
for (EngravingItem* e : m_leafs) {
e->scanElements(data, func, all);
e->scanElements(func);
}
}

Expand Down
5 changes: 1 addition & 4 deletions src/engraving/dom/bsymbol.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,7 @@ class BSymbol : public EngravingItem

Segment* segment() const { return (Segment*)explicitParent(); }

// Score Tree functions
EngravingObject* scanParent() const override;
EngravingObjectList scanChildren() const override;
void scanElements(void* data, void (* func)(void*, EngravingItem*), bool all=true) override;
void scanElements(std::function<void(EngravingItem*)> func) override;

BSymbol& operator=(const BSymbol&) = delete;

Expand Down
32 changes: 16 additions & 16 deletions src/engraving/dom/chord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -843,7 +843,7 @@ bool Chord::allNotesTiedToNext() const

bool Chord::allElementsInvisible() const
{
for (EngravingObject* child : scanChildren()) {
for (EngravingObject* child : getChildren()) {
if (toEngravingItem(child)->visible()) {
return false;
}
Expand Down Expand Up @@ -1213,45 +1213,45 @@ PointF Chord::pagePos() const
// scanElements
//---------------------------------------------------------

void Chord::scanElements(void* data, void (* func)(void*, EngravingItem*), bool all)
void Chord::scanElements(std::function<void(EngravingItem*)> func)
{
for (Articulation* a : m_articulations) {
a->scanElements(data, func, all);
a->scanElements(func);
}
if (m_hook) {
func(data, m_hook);
func(m_hook);
}
if (m_stem) {
func(data, m_stem);
func(m_stem);
}
if (m_stemSlash) {
func(data, m_stemSlash);
func(m_stemSlash);
}
if (m_arpeggio) {
func(data, m_arpeggio);
func(m_arpeggio);
}
if (m_tremoloTwoChord && (tremoloChordType() != TremoloChordType::TremoloSecondChord)) {
func(data, m_tremoloTwoChord);
func(m_tremoloTwoChord);
}
if (m_tremoloSingleChord) {
func(data, m_tremoloSingleChord);
func(m_tremoloSingleChord);
}
const Staff* st = staff();
if ((st && st->showLedgerLines(tick())) || !st) { // also for palette
for (LedgerLine* ll : m_ledgerLines) {
func(data, ll);
func(ll);
}
}
for (Note* note : m_notes) {
note->scanElements(data, func, all);
note->scanElements(func);
}
for (Chord* chord : m_graceNotes) {
chord->scanElements(data, func, all);
chord->scanElements(func);
}
for (EngravingItem* e : el()) {
e->scanElements(data, func, all);
e->scanElements(func);
}
ChordRest::scanElements(data, func, all);
ChordRest::scanElements(func);
}

//---------------------------------------------------------
Expand Down Expand Up @@ -2679,10 +2679,10 @@ void Chord::setNoteEventLists(std::vector<NoteEventList>& ell)
//---------------------------------------------------------
void Chord::styleChanged()
{
auto updateElementsStyle = [](void*, EngravingItem* e) {
auto updateElementsStyle = [](EngravingItem* e) {
e->styleChanged();
};
scanElements(0, updateElementsStyle);
scanElements(updateElementsStyle);
}

void Chord::computeKerningExceptions()
Expand Down
5 changes: 1 addition & 4 deletions src/engraving/dom/chord.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,7 @@ class Chord final : public ChordRest
~Chord();
Chord& operator=(const Chord&) = delete;

// Score Tree functions
EngravingObject* scanParent() const override;
EngravingObjectList scanChildren() const override;
void scanElements(void* data, void (* func)(void*, EngravingItem*), bool all=true) override;
void scanElements(std::function<void(EngravingItem*)> func) override;

Chord* clone() const override { return new Chord(*this, false); }
EngravingItem* linkedClone() override { return new Chord(*this, true); }
Expand Down
10 changes: 5 additions & 5 deletions src/engraving/dom/chordrest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1026,22 +1026,22 @@ EngravingItem* ChordRest::nextSegmentElement()
// scanElements
//---------------------------------------------------------

void ChordRest::scanElements(void* data, void (* func)(void*, EngravingItem*), bool all)
void ChordRest::scanElements(std::function<void(EngravingItem*)> func)
{
if (m_beam && (m_beam->elements().front() == this)
&& !measure()->stemless(staffIdx())) {
m_beam->scanElements(data, func, all);
m_beam->scanElements(func);
}
for (Lyrics* l : m_lyrics) {
l->scanElements(data, func, all);
l->scanElements(func);
}
DurationElement* de = this;
while (de->tuplet() && de->tuplet()->elements().front() == de) {
de->tuplet()->scanElements(data, func, all);
de->tuplet()->scanElements(func);
de = de->tuplet();
}
if (m_tabDur) {
func(data, m_tabDur);
func(m_tabDur);
}
}

Expand Down
5 changes: 1 addition & 4 deletions src/engraving/dom/chordrest.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,7 @@ class ChordRest : public DurationElement
ChordRest& operator=(const ChordRest&) = delete;
~ChordRest();

// Score Tree functions
virtual EngravingObject* scanParent() const override;
virtual EngravingObjectList scanChildren() const override;
virtual void scanElements(void* data, void (* func)(void*, EngravingItem*), bool all=true) override;
virtual void scanElements(std::function<void(EngravingItem*)> func) override;

virtual EngravingItem* drop(EditData&) override;
virtual void undoUnlink() override;
Expand Down
1 change: 0 additions & 1 deletion src/engraving/dom/dom.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,6 @@ set(DOM_SRC
${CMAKE_CURRENT_LIST_DIR}/scorefile.cpp
${CMAKE_CURRENT_LIST_DIR}/scoreorder.cpp
${CMAKE_CURRENT_LIST_DIR}/scoreorder.h
${CMAKE_CURRENT_LIST_DIR}/scoretree.cpp
${CMAKE_CURRENT_LIST_DIR}/segment.cpp
${CMAKE_CURRENT_LIST_DIR}/segment.h
${CMAKE_CURRENT_LIST_DIR}/segmentlist.cpp
Expand Down
Loading
Loading