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()); }
void KstBasicDialogI::init() { KstBasicPluginPtr ptr; if (_newDialog) { ptr = kst_cast<KstBasicPlugin>(KstDataObject::plugin(_pluginName)); } else { ptr = kst_cast<KstBasicPlugin>(findObject(_pluginName)); } Q_ASSERT(ptr); //shouldn't happen if (_grid) { //reset QLayoutIterator it = _grid->iterator(); while(QLayoutItem *item = it.takeCurrent()) { delete item->widget(); delete item; } delete _grid; _grid = 0; } int cnt = 0; int numInputOutputs = ptr->inputVectorList().count() + ptr->inputScalarList().count() + ptr->inputStringList().count() + ptr->outputVectorList().count() + ptr->outputScalarList().count() + ptr->outputStringList().count(); _grid = new QGridLayout(_w->_frame, numInputOutputs + 1, 2, 0, 8); _grid->setColStretch(1,1); _grid->setColStretch(0,0); //create input widgets //First, the inputVectors... QStringList iv = ptr->inputVectorList(); QStringList::ConstIterator ivI = iv.begin(); for (; ivI != iv.end(); ++ivI) { createInputVector(*ivI, ++cnt); } //Now, the inputScalars... QStringList is = ptr->inputScalarList(); QStringList::ConstIterator isI = is.begin(); for (; isI != is.end(); ++isI) { createInputScalar(*isI, ++cnt); } //Finally, the inputStrings... QStringList istr = ptr->inputStringList(); QStringList::ConstIterator istrI = istr.begin(); for (; istrI != istr.end(); ++istrI) { createInputString(*istrI, ++cnt); } //create sep cnt++; QFrame* line = new QFrame(_w->_frame); line->setFrameShadow(QFrame::Sunken); line->setFrameShape(QFrame::HLine); _grid->addMultiCellWidget(line, cnt, cnt, 0, 1); line->show(); cnt++; //create output widgets //output vectors... QStringList ov = ptr->outputVectorList(); QStringList::ConstIterator ovI = ov.begin(); for (; ovI != ov.end(); ++ovI) { createOutputWidget(*ovI, ++cnt); } //output scalars... QStringList os = ptr->outputScalarList(); QStringList::ConstIterator osI = os.begin(); for (; osI != os.end(); ++osI) { createOutputWidget(*osI, ++cnt); } //ouput strings... QStringList ostr = ptr->outputStringList(); QStringList::ConstIterator ostrI = ostr.begin(); for (; ostrI != ostr.end(); ++ostrI) { createOutputWidget(*ostrI, ++cnt); } }
bool KstBasicDialogI::newObject() { //called upon clicking 'ok' in 'new' mode //return false if the specified objects can't be made, otherwise true //Need to create a new object rather than use the one in KstDataObject pluginList KstBasicPluginPtr ptr = kst_cast<KstBasicPlugin>( KstDataObject::createPlugin(_pluginName)); Q_ASSERT(ptr); //should never happen... ptr->writeLock(); QString tagName = _tagName->text(); if (tagName != defaultTag && KstData::self()->dataTagNameNotUnique(tagName, true, this)) { _tagName->setFocus(); return false; } if (tagName == defaultTag) { tagName = KST::suggestPluginName(ptr->propertyString()); } ptr->setTagName(tagName); 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; } //set the outputs //output vectors... QStringList ov = ptr->outputVectorList(); QStringList::ConstIterator ovI = ov.begin(); for (; ovI != ov.end(); ++ovI) { if (QLineEdit *w = output(*ovI)) { ptr->setOutputVector(*ovI, w->text()); } } //output scalars... QStringList os = ptr->outputScalarList(); QStringList::ConstIterator osI = os.begin(); for (; osI != os.end(); ++osI) { if (QLineEdit *w = output(*osI)) { ptr->setOutputScalar(*osI, w->text()); } } //ouput strings... QStringList ostr = ptr->outputStringList(); QStringList::ConstIterator ostrI = ostr.begin(); for (; ostrI != ostr.end(); ++ostrI) { if (QLineEdit *w = output(*ostrI)) { ptr->setOutputString(*ostrI, w->text()); } } if (!ptr || !ptr->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); return false; } ptr->setDirty(); KST::dataObjectList.lock().writeLock(); KST::dataObjectList.append(ptr.data()); KST::dataObjectList.lock().unlock(); ptr = 0L; // drop the reference emit modified(); return true; }