void InspectorBarLine::manageSpanData() { #if 0 BarLine* bl = toBarLine(inspector->element()); // determine MIN and MAX for SPANFROM and SPANTO Staff* staffFrom = bl->staff(); Staff* staffTo = bl->score()->staff(bl->staffIdx() + bl->span() - 1); int staffFromLines= (staffFrom ? staffFrom->lines(bl->tick()) : 5); int staffToLines = (staffTo ? staffTo->lines(bl->tick()) : 5); // From: min = minimum possible according to number of staff lines // max = if same as To, at least 1sp (2 units) above To; if not, max possible according to num.of lines int min = staffFromLines == 1 ? BARLINE_SPAN_1LINESTAFF_FROM : MIN_BARLINE_SPAN_FROMTO; int max = bl->span() < 2 ? bl->spanTo() - MIN_BARLINE_FROMTO_DIST : (staffFromLines == 1 ? BARLINE_SPAN_1LINESTAFF_TO : (staffFromLines-1) * 2 + 2); b.spanFrom->setMinimum(min); b.spanFrom->setMaximum(max); // To: min = if same as From, at least 1sp (2 units) below From; if not, min possible according to num.of lines // max = max possible according to number of staff lines min = bl->span() < 2 ? bl->spanFrom() + MIN_BARLINE_FROMTO_DIST : (staffToLines == 1 ? BARLINE_SPAN_1LINESTAFF_FROM : MIN_BARLINE_SPAN_FROMTO); max = staffToLines == 1 ? BARLINE_SPAN_1LINESTAFF_TO : (staffToLines-1) * 2 + 2; b.spanTo->setMinimum(min); b.spanTo->setMaximum(max); // determine MAX for SPAN max = bl->score()->nstaves() - bl->staffIdx(); b.span->setMaximum(max); #endif }
void InspectorBarLine::setElement() { InspectorElementBase::setElement(); BarLine* bl = toBarLine(inspector->element()); // enable / disable individual type combo items according to score and selected bar line status bool bMultiStaff = bl->score()->nstaves() > 1; BarLineType blt = bl->barLineType(); bool isRepeat = blt & (BarLineType::START_REPEAT | BarLineType::END_REPEAT | BarLineType::END_START_REPEAT); const QStandardItemModel* model = qobject_cast<const QStandardItemModel*>(b.type->model()); int i = 0; for (auto& k : BarLine::barLineTable) { QStandardItem* item = model->item(i); // if combo item is repeat type, should be disabled for multi-staff scores if (k.type & (BarLineType::START_REPEAT | BarLineType::END_REPEAT | BarLineType::END_START_REPEAT)) { // disable / enable item->setFlags(bMultiStaff ? item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled) : item->flags() | (Qt::ItemFlags)(Qt::ItemIsSelectable|Qt::ItemIsEnabled) ); } // if combo item is NOT repeat type, should be disabled if selected bar line is a repeat else { item->setFlags(isRepeat ? item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled) : item->flags() | (Qt::ItemFlags)(Qt::ItemIsSelectable|Qt::ItemIsEnabled) ); } ++i; } #if 0 blockSpanDataSignals(true); manageSpanData(); blockSpanDataSignals(false); #endif }
void InspectorBarLine::presetTick2Clicked() { BarLine* bl = toBarLine(inspector->element()); Score* score = bl->score(); score->startCmd(); bl->undoChangeProperty(P_ID::BARLINE_SPAN, false); bl->undoChangeProperty(P_ID::BARLINE_SPAN_FROM, BARLINE_SPAN_TICK2_FROM); bl->undoChangeProperty(P_ID::BARLINE_SPAN_TO, BARLINE_SPAN_TICK2_TO); score->endCmd(); }
void InspectorBarLine::presetDefaultClicked() { BarLine* bl = toBarLine(inspector->element()); Score* score = bl->score(); score->startCmd(); bl->undoResetProperty(P_ID::BARLINE_SPAN); bl->undoResetProperty(P_ID::BARLINE_SPAN_FROM); bl->undoResetProperty(P_ID::BARLINE_SPAN_TO); score->endCmd(); }
void InspectorBarLine::setAsStaffDefault() { BarLine* bl = toBarLine(inspector->element()); Staff* staff = bl->staff(); Score* score = bl->score(); score->startCmd(); staff->undoChangeProperty(Pid::STAFF_BARLINE_SPAN, bl->getProperty(Pid::BARLINE_SPAN)); staff->undoChangeProperty(Pid::STAFF_BARLINE_SPAN_FROM, bl->getProperty(Pid::BARLINE_SPAN_FROM)); staff->undoChangeProperty(Pid::STAFF_BARLINE_SPAN_TO, bl->getProperty(Pid::BARLINE_SPAN_TO)); if (bl->barLineType() == BarLineType::NORMAL) bl->setGenerated(true); score->endCmd(); }
void InspectorBarLine::presetShort2Clicked() { BarLine* bl = toBarLine(inspector->element()); Score* score = bl->score(); score->startCmd(); bl->undoChangeProperty(P_ID::BARLINE_SPAN, false); bl->undoChangeProperty(P_ID::BARLINE_SPAN_FROM, BARLINE_SPAN_SHORT2_FROM); int shortDelta = bl->staff() ? (bl->staff()->lines(bl->tick()) - 5) * 2 : 0; bl->undoChangeProperty(P_ID::BARLINE_SPAN_TO, BARLINE_SPAN_SHORT2_TO + shortDelta); score->endCmd(); }