bool KstPsdDialog::editObject() { KstPSDList psList; // // if the user selected no vector, treat it as non-dirty... // _vectorDirty = _w->_vector->_vector->currentIndex() != 0; _apodizeFxnDirty = _w->_kstFFTOptions->ApodizeFxn->currentIndex() != 0; _fFTLenDirty = _w->_kstFFTOptions->FFTLen->text() != " "; _sampRateDirty = !_w->_kstFFTOptions->SampRate->text().isEmpty(); _vectorUnitsDirty = !_w->_kstFFTOptions->VectorUnits->text().isEmpty(); _rateUnitsDirty = !_w->_kstFFTOptions->RateUnits->text().isEmpty(); _outputDirty = _w->_kstFFTOptions->Output->currentIndex() != 0; psList = kstObjectSubList<KstDataObject,KstPSD>(KST::dataObjectList); if (_editMultipleMode) { bool didEdit = false; int i; for (i = 0; i < _editMultipleWidget->_objectList->count(); i++) { if (_editMultipleWidget->_objectList->item(i)->isSelected()) { KstPSDList::Iterator psIter; KstPSDPtr psPtr; psIter = psList.findTag(_editMultipleWidget->_objectList->item(i)->text()); if (psIter == psList.end()) { return false; } psPtr = *psIter; if (!editSingleObject(psPtr)) { return false; } didEdit = true; } } if (!didEdit) { QMessageBox::warning(this, QObject::tr("Kst"), QObject::tr("Select one or more objects to edit.")); return false; } } else { KstPSDPtr pp; QString tag_name; pp = kst_cast<KstPSD>(_dp); tag_name = _tagName->text(); if (!pp || (tag_name != pp->tagName() && KstData::self()->dataTagNameNotUnique(tag_name))) { _tagName->setFocus(); return false; } pp->writeLock(); pp->setTagName(tag_name); pp->unlock(); // then edit the object _vectorDirty = true; _apodizeDirty = true; _apodizeFxnDirty = true; _gaussianSigmaDirty = true; _removeMeanDirty = true; _interleavedDirty = true; _sampRateDirty = true; _vectorUnitsDirty = true; _rateUnitsDirty = true; _fFTLenDirty = true; _outputDirty = true; _interpolateHolesDirty = true; if (!editSingleObject(pp)) { return false; } } emit modified(); return true; }
// returns true if succesful bool KstPsdDialogI::editObject() { // if the user selected no vector, treat it as non-dirty _vectorDirty = _w->_vector->_vector->currentItem() != 0; _apodizeDirty = _w->_kstFFTOptions->ApodizeFxn->currentItem() != 0; _fFTLenDirty = _w->_kstFFTOptions->FFTLen->text() != " "; _sampRateDirty = !_w->_kstFFTOptions->SampRate->text().isEmpty(); _vectorUnitsDirty = !_w->_kstFFTOptions->VectorUnits->text().isEmpty(); _rateUnitsDirty = !_w->_kstFFTOptions->RateUnits->text().isEmpty(); _outputDirty = !_w->_kstFFTOptions->Output->currentItem() != 0; KstPSDList psList = kstObjectSubList<KstDataObject,KstPSD>(KST::dataObjectList); // if editing multiple objects, edit each one if (_editMultipleMode) { bool didEdit = false; for (uint i = 0; i < _editMultipleWidget->_objectList->count(); i++) { if (_editMultipleWidget->_objectList->isSelected(i)) { // get the pointer to the object KstPSDList::Iterator psIter = psList.findTag(_editMultipleWidget->_objectList->text(i)); if (psIter == psList.end()) { return false; } KstPSDPtr psPtr = *psIter; if (!editSingleObject(psPtr)) { return false; } didEdit = true; } } if (!didEdit) { KMessageBox::sorry(this, i18n("Select one or more objects to edit.")); return false; } } else { KstPSDPtr pp = kst_cast<KstPSD>(_dp); // verify that the name is unique QString tag_name = _tagName->text(); if (!pp || (tag_name != pp->tagName() && KstData::self()->dataTagNameNotUnique(tag_name))) { _tagName->setFocus(); return false; } pp->writeLock(); pp->setTagName(KstObjectTag(tag_name, pp->tag().context())); // FIXME: doesn't allow changing tag context pp->unlock(); // then edit the object _vectorDirty = true; _apodizeDirty = true; _apodizeFxnDirty = true; _gaussianSigmaDirty = true; _removeMeanDirty = true; _interleavedDirty = true; _sampRateDirty = true; _vectorUnitsDirty = true; _rateUnitsDirty = true; _fFTLenDirty = true; _outputDirty = true; _interpolateHolesDirty = true; if (!editSingleObject(pp)) { return false; } } emit modified(); return true; }