void InstrumentWizard::on_addButton_clicked() { QList<QTreeWidgetItem*> wi = instrumentList->selectedItems(); if (wi.isEmpty()) return; InstrumentTemplateListItem* item = (InstrumentTemplateListItem*)wi.front(); const InstrumentTemplate* it = item->instrumentTemplate(); if (it == 0) return; PartListItem* pli = new PartListItem(it, partiturList); pli->op = ITEM_ADD; int n = it->staves; for (int i = 0; i < n; ++i) { StaffListItem* sli = new StaffListItem(pli); sli->op = ITEM_ADD; sli->staff = 0; sli->setPartIdx(i); sli->staffIdx = -1; if (i > MAX_STAVES) sli->setClef(CLEF_G); else sli->setClef(it->clefIdx[i]); } partiturList->setItemExpanded(pli, true); partiturList->clearSelection(); // should not be necessary partiturList->setItemSelected(pli, true); emit completeChanged(true); }
void InstrumentWizard::on_belowButton_clicked() { QList<QTreeWidgetItem*> wi = partiturList->selectedItems(); if (wi.isEmpty()) return; QTreeWidgetItem* item = wi.front(); if (item->type() != STAFF_LIST_ITEM) return; StaffListItem* sli = (StaffListItem*)item; Staff* staff = sli->staff; PartListItem* pli = (PartListItem*)sli->parent(); StaffListItem* nsli = new StaffListItem(); nsli->staff = staff; nsli->setClef(sli->clef()); if (staff) nsli->op = ITEM_ADD; pli->insertChild(pli->indexOfChild(sli)+1, nsli); partiturList->clearSelection(); // should not be necessary partiturList->setItemSelected(nsli, true); }