bool KstPluginDialogI::editObject() { KstCPluginPtr pp = kst_cast<KstCPlugin>(_dp); if (!pp) { // something is dreadfully wrong - this should never happen return false; } pp->writeLock(); if (_tagName->text() != pp->tagName() && KstData::self()->dataTagNameNotUnique(_tagName->text())) { _tagName->setFocus(); pp->unlock(); return false; } pp->setTagName(_tagName->text()); int pitem = _w->PluginCombo->currentItem(); KstSharedPtr<Plugin> pPtr = PluginCollection::self()->plugin(_pluginList[pitem]); // Must unlock before clear() for (KstVectorMap::Iterator i = pp->inputVectors().begin(); i != pp->inputVectors().end(); ++i) { (*i)->unlock(); } for (KstScalarMap::Iterator i = pp->inputScalars().begin(); i != pp->inputScalars().end(); ++i) { (*i)->unlock(); } for (KstStringMap::Iterator i = pp->inputStrings().begin(); i != pp->inputStrings().end(); ++i) { (*i)->unlock(); } pp->inputVectors().clear(); pp->inputScalars().clear(); pp->inputStrings().clear(); // Save the vectors and scalars if (!saveInputs(pp, pPtr)) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); pp->unlock(); return false; } if (pitem >= 0 && _w->PluginCombo->count() > 0) { pp->setPlugin(pPtr); } if (!saveOutputs(pp, pPtr)) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); pp->unlock(); return false; } if (!pp->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); pp->unlock(); return false; } pp->setDirty(); pp->unlock(); emit modified(); return true; }
bool KstPluginDialogI::editObject() { KstCPluginPtr pp = kst_cast<KstCPlugin>(_dp); if (!pp) { // something is dreadfully wrong - this should never happen return false; } KstWriteLocker pl(pp); if (_tagName->text() != pp->tagName() && KstData::self()->dataTagNameNotUnique(_tagName->text())) { _tagName->setFocus(); return false; } pp->setTagName(KstObjectTag(_tagName->text(), KstObjectTag::globalTagContext)); // FIXME: tag context always global? int pitem = _w->PluginCombo->currentItem(); KstSharedPtr<Plugin> pPtr = PluginCollection::self()->plugin(_pluginList[pitem]); pp->setRecursed(false); pp->inputVectors().clear(); pp->inputScalars().clear(); pp->inputStrings().clear(); // Save the vectors and scalars if (!saveInputs(pp, pPtr)) { KMessageBox::sorry(this, i18n("There is an error in the inputs you entered.")); return false; } if (pitem >= 0 && _w->PluginCombo->count() > 0) { pp->setPlugin(pPtr); } if (!saveOutputs(pp, pPtr)) { KMessageBox::sorry(this, i18n("There is an error in the outputs you entered.")); return false; } if (!pp->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); return false; } pp->setRecursed(false); if (pp->recursion()) { pp->setRecursed(true); KMessageBox::sorry(this, i18n("There is a recursion resulting from the plugin you entered.")); return false; } pp->setDirty(); emit modified(); return true; }
bool KstFilterDialogI::newObject() { QString tagName = _tagName->text(); if (KstData::self()->dataTagNameNotUnique(tagName, true, this)) { _tagName->setFocus(); return false; } else { int pitem = _w->PluginCombo->currentItem(); if (pitem >= 0 && _w->PluginCombo->count() > 0) { KstSharedPtr<Plugin> pPtr = PluginCollection::self()->plugin(_pluginList[pitem]); if (pPtr) { KstCPluginPtr plugin = new KstCPlugin; KstWriteLocker pl(plugin); plugin->setDirty(); if (saveInputs(plugin, pPtr)) { if (tagName == plugin_defaultTag) { tagName = KST::suggestPluginName(_pluginList[pitem], KstObjectTag::fromString(_yvector)); } plugin->setTagName(KstObjectTag(tagName, KstObjectTag::globalTagContext)); // FIXME: tag context always global? plugin->setPlugin(pPtr); if (saveOutputs(plugin, pPtr)) { if (plugin->isValid()) { if (!createCurve(plugin)) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); return false; } else { KST::dataObjectList.lock().writeLock(); KST::dataObjectList.append(plugin.data()); KST::dataObjectList.lock().unlock(); } } else { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); return false; } } else { KMessageBox::sorry(this, i18n("There is an error in the outputs you entered.")); return false; } } else { KMessageBox::sorry(this, i18n("There is an error in the inputs you entered.")); return false; } } } emit modified(); } return true; }
bool KstPluginDialogI::newObject() { QString tagName = _tagName->text(); if (tagName != plugin_defaultTag && KstData::self()->dataTagNameNotUnique(tagName, true, this)) { _tagName->setFocus(); return false; } KstCPluginPtr plugin; int pitem = _w->PluginCombo->currentItem(); if (pitem >= 0 && _w->PluginCombo->count() > 0) { KstSharedPtr<Plugin> pPtr = PluginCollection::self()->plugin(_pluginList[pitem]); if (pPtr) { plugin = new KstCPlugin; KstWriteLocker pl(plugin); // set the tag name before any dependents are created if (tagName == plugin_defaultTag) { tagName = KST::suggestPluginName(_pluginList[pitem]); } plugin->setTagName(KstObjectTag(tagName, KstObjectTag::globalTagContext)); if (!saveInputs(plugin, pPtr)) { KMessageBox::sorry(this, i18n("There is an error in the inputs you entered.")); plugin = 0L; return false; } plugin->setPlugin(pPtr); if (!saveOutputs(plugin, pPtr)) { KMessageBox::sorry(this, i18n("There is an error in the outputs you entered.")); plugin = 0L; return false; } } } if (!plugin || !plugin->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered.")); return false; } plugin->setDirty(); KST::dataObjectList.lock().writeLock(); KST::dataObjectList.append(plugin.data()); KST::dataObjectList.lock().unlock(); plugin = 0L; emit modified(); return true; }
void KstPluginDialogI::new_I() { KstPluginPtr plugin; QString tagName = Select->currentText(); if (KST::dataTagNameNotUnique(tagName, true, this)) { Select->setFocus(); return; } int pitem = PluginCombo->currentItem(); if (pitem >= 0 && PluginCombo->count() > 0) { KstSharedPtr<Plugin> pPtr = PluginCollection::self()->plugin(_pluginList[pitem]); if (pPtr != 0L) { plugin = new KstPlugin; if (!saveInputs(plugin, pPtr)) { return; } plugin->setPlugin(pPtr); if (tagName.endsWith(newPluginString)) { QString tmpTagName; int i = 0; do { tmpTagName = i18n("P%1-%2").arg(++i).arg(_pluginList[pitem]); } while (KST::dataTagNameNotUnique(tmpTagName, false)); tagName = tmpTagName; } plugin->setTagName(tagName); if (!saveOutputs(plugin, pPtr)) { return; } } } if (!plugin || !plugin->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered. Please fix it.")); return; } KST::dataObjectList.lock().writeLock(); KST::dataObjectList.append(plugin.data()); KST::dataObjectList.lock().writeUnlock(); plugin = 0L; emit modified(); }
void KstPluginDialogI::edit_I() { int index = Select->currentItem(); if (Select->count() == 0 || index < 0) { new_I(); return; } QString tagName = Select->currentText(); KstPluginList pl = kstObjectSubList<KstDataObject, KstPlugin>(KST::dataObjectList); KstPluginPtr plugin = pl[index]; if (!plugin.data()) { new_I(); return; } int pitem = PluginCombo->currentItem(); if (tagName.endsWith(newPluginString)) { QString tmpTagName; int i = 0; do { tmpTagName = i18n("P%1-%2").arg(++i).arg(_pluginList[pitem]); } while (KST::dataTagNameNotUnique(tmpTagName, false)); tagName = tmpTagName; } //kdDebug() << "Apply as edit [" << tagName << "]" << endl; if (tagName != plugin->tagName()) { if (KST::dataTagNameNotUnique(tagName, true, this)) { Select->setFocus(); return; } } plugin->setTagName(tagName); plugin->inputVectors().clear(); plugin->inputScalars().clear(); KstSharedPtr<Plugin> pPtr = PluginCollection::self()->plugin(_pluginList[pitem]); // Save the vectors and scalars if (!saveInputs(plugin, pPtr)) { return; } if (pitem >= 0 && PluginCombo->count() > 0) { plugin->setPlugin(pPtr); } if (!saveOutputs(plugin, pPtr)) { return; } if (!plugin->isValid()) { KMessageBox::sorry(this, i18n("There is an error in the plugin you entered. Please fix it.")); return; } plugin = 0L; // release pl.clear(); // release emit modified(); }