bool KstBasicDialogI::editObject() { //called upon clicking 'ok' in 'edit' mode //return false if the specified objects can't be editted, otherwise true KstBasicPluginPtr ptr = kst_cast<KstBasicPlugin>(_dp); Q_ASSERT(ptr); //should never happen... ptr->writeLock(); if (_tagName->text() != ptr->tagName() && KstData::self()->dataTagNameNotUnique(_tagName->text())) { _tagName->setFocus(); ptr->unlock(); return false; } ptr->setTagName(_tagName->text()); // Must unlock before clear() for (KstVectorMap::Iterator i = ptr->inputVectors().begin(); i != ptr->inputVectors().end(); ++i) { (*i)->unlock(); } for (KstScalarMap::Iterator i = ptr->inputScalars().begin(); i != ptr->inputScalars().end(); ++i) { (*i)->unlock(); } for (KstStringMap::Iterator i = ptr->inputStrings().begin(); i != ptr->inputStrings().end(); ++i) { (*i)->unlock(); } ptr->inputVectors().clear(); ptr->inputScalars().clear(); ptr->inputStrings().clear(); ptr->unlock(); // Save the vectors and scalars if (!editSingleObject(ptr) || !ptr->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the values you entered.")); return false; } ptr->setDirty(); emit modified(); return true; }
void KstBasicDialogI::fillFieldsForEdit() { KstBasicPluginPtr ptr = kst_cast<KstBasicPlugin>(_dp); if (!ptr) return; //shouldn't happen ptr->readLock(); _tagName->setText(ptr->tagName()); _legendText->setText(defaultTag); //FIXME? //Update the various widgets... //input vectors... QStringList iv = ptr->inputVectorList(); QStringList::ConstIterator ivI = iv.begin(); for (; ivI != iv.end(); ++ivI) { KstVectorPtr p = ptr->inputVector(*ivI); QString t = p ? p->tagName() : QString::null; if (VectorSelector *w = vector(*ivI)) { w->setSelection(t); } } //input scalars... QStringList is = ptr->inputScalarList(); QStringList::ConstIterator isI = is.begin(); for (; isI != is.end(); ++isI) { KstScalarPtr p = ptr->inputScalar(*isI); QString t = p ? p->tagName() : QString::null; if (ScalarSelector *w = scalar(*isI)) { w->setSelection(t); } } //input strings... QStringList istr = ptr->inputStringList(); QStringList::ConstIterator istrI = istr.begin(); for (; istrI != istr.end(); ++istrI) { KstStringPtr p = ptr->inputString(*istrI); QString t = p ? p->tagName() : QString::null; if (StringSelector *w = string(*istrI)) { w->setSelection(t); } } //output vectors... QStringList ov = ptr->outputVectorList(); QStringList::ConstIterator ovI = ov.begin(); for (; ovI != ov.end(); ++ovI) { KstVectorPtr p = ptr->outputVector(*ovI); QString t = p ? p->tagName() : QString::null; if (QLineEdit *w = output(*ovI)) { w->setText(t); w->setEnabled(false); } } //output scalars... QStringList os = ptr->outputScalarList(); QStringList::ConstIterator osI = os.begin(); for (; osI != os.end(); ++osI) { KstScalarPtr p = ptr->outputScalar(*osI); QString t = p ? p->tagName() : QString::null; if (QLineEdit *w = output(*osI)) { w->setText(t); w->setEnabled(false); } } //ouput strings... QStringList ostr = ptr->outputStringList(); QStringList::ConstIterator ostrI = ostr.begin(); for (; ostrI != ostr.end(); ++ostrI) { KstStringPtr p = ptr->outputString(*ostrI); QString t = p ? p->tagName() : QString::null; if (QLineEdit *w = output(*ostrI)) { w->setText(t); w->setEnabled(false); } } ptr->unlock(); adjustSize(); resize(minimumSizeHint()); setFixedHeight(height()); }