void KstCurveDifferentiateI::cycleWindow(KstViewWindow *window) { KstTopLevelViewPtr tlv = kst_cast<KstTopLevelView>(window->view()); if (tlv) { Kst2DPlotList plotList = tlv->findChildrenType<Kst2DPlot>(false); for (Kst2DPlotList::Iterator it = plotList.begin(); it != plotList.end(); ++it ) { if (_repeatAcross == 0) { _seqVect[0]->reset(); } KstVCurveList vcurves = kstObjectSubList<KstBaseCurve,KstVCurve>((*it)->Curves); for (KstVCurveList::Iterator i = vcurves.begin(); i != vcurves.end(); ++i) { if (_lineColorOrder > -1) { (*i)->setColor(KstColorSequence::entry(_lineColorSeq.current())); } if (_pointStyleOrder > -1) { (*i)->Point.setType(_pointStyleSeq.current()); (*i)->setHasPoints(true); (*i)->setPointDensity(_pointDensity); } if (_lineStyleOrder > -1) { (*i)->setLineStyle(_lineStyleSeq.current()); } if (_lineWidthOrder > -1) { (*i)->setLineWidth(_lineWidthSeq.current()); } (_seqVect[0])->next(); } } } }
void KstCurveDialogI::update(int new_index) { int i_curve; KstVCurvePtr curve; int index; bool isNew = false; int n_v, n_c; KstVCurveList curves = kstObjectSubList<KstDataObject, KstVCurve>(KST::dataObjectList); if (new_index == -1) { if (curves.findTag(Select->currentText()) != curves.end()) { QString save = Select->currentText(); Select->blockSignals(true); Select->clear(); for (KstVCurveList::iterator i = curves.begin(); i != curves.end(); ++i) { Select->insertItem((*i)->tagName()); } Select->setCurrentText(save); Select->blockSignals(false); return; } } /**********************/ /* initialize indexes */ KST::vectorList.lock().readLock(); n_v = KST::vectorList.count(); KST::vectorList.lock().readUnlock(); n_c = curves.count(); if (new_index == -2) { // initialize for new curve isNew = true; index = n_c; } else if (n_c < 1) { isNew = true; index = 0; } else if (new_index >= 0 && new_index < n_c) { // initialize specific curve index = new_index; } else if (Select->count() > 0) { // initialize for old default index = Select->currentItem(); } else { // initialize for last in list index = n_c - 1; } /*****************************************/ /* fill the Select combo with curve tags */ Select->clear(); for (KstVCurveList::iterator i = curves.begin(); i != curves.end(); ++i) { Select->insertItem((*i)->tagName()); } if (isNew) { QString new_label; new_label.sprintf("C%d-", curves.count()+1); new_label += i18n("<New_Curve>"); Select->insertItem(new_label); } if ((index>=0) && (index<Select->count())) { Select->setCurrentItem(index); } /*******************************************/ /* fill the Vector lists with vector names */ _xVector->update(); _yVector->update(); _xError->update(); _yError->update(); /***********************************/ /* set the curve placement window */ _curvePlacement->setPlotList(KST::plotList.tagNames(), true); _curvePlacement->setColumns(KST::plotList.getPlotCols()); if (isNew) { // guess what placement option is wanted if (!KST::plotList.isEmpty() && curves.count() > KST::plotList.count()) { _curvePlacement->setNewPlot(false); _curvePlacement->setExistingPlot(true); } else { _curvePlacement->setNewPlot(true); _curvePlacement->setExistingPlot(false); } } /****************************************************/ /* set the vector pull downs to the correct vectors */ if (n_c > 0 && !isNew) { i_curve = Select->currentItem(); curve = curves[i_curve]; _xVector->setSelection(curve->getXVTag()); _yVector->setSelection(curve->getYVTag()); _xError->setSelection(curve->getXETag()); _yError->setSelection(curve->getYETag()); _curveAppearance->setValue(curve->hasLines(), curve->hasPoints(), curve->getColor(), curve->Point.getType()); Delete->setEnabled(curve->getUsage() == 2); } else { /* no curves defined - initialize what we can to vector 0 */ _curveAppearance->reset(); Delete->setEnabled(false); } }