void EditStaff::editStringDataClicked() { int frets = instrument.stringData()->frets(); QList<int> stringList = instrument.stringData()->stringList(); EditStringData* esd = new EditStringData(this, &stringList, &frets); if (esd->exec()) { StringData* stringData = new StringData(frets, stringList); // detect number of strings going from 0 to !0 or vice versa bool redoStaffTypeCombo = (stringList.size() != 0) != (instrument.stringData()->strings() != 0); instrument.setStringData(stringData); int numStr = stringData ? stringData->strings() : 0; numOfStrings->setText(QString::number(numStr)); if (redoStaffTypeCombo) fillStaffTypeCombo(); } }