void AssociationsDialog::changePlotAssociation(int curve, const QString &text) { DataCurve *c = (DataCurve *)graph->curve(curve); // c_keys[curve]); if (!c) return; if (c->plotAssociation() == text) return; QStringList lst = text.split(",", QString::SkipEmptyParts); if (lst.count() == 2) { c->setXColumnName(lst[0].remove("(X)")); c->setTitle(lst[1].remove("(Y)")); c->loadData(); } else if (lst.count() == 3) { // curve with error bars QwtErrorPlotCurve *er = (QwtErrorPlotCurve *)c; QString xColName = lst[0].remove("(X)"); QString yColName = lst[1].remove("(Y)"); QString erColName = lst[2].remove("(xErr)").remove("(yErr)"); DataCurve *master_curve = graph->masterCurve(xColName, yColName); if (!master_curve) return; int type = QwtErrorPlotCurve::Vertical; if (text.contains("(xErr)")) type = QwtErrorPlotCurve::Horizontal; er->setDirection(type); er->setTitle(erColName); if (master_curve != er->masterCurve()) er->setMasterCurve(master_curve); else er->loadData(); } else if (lst.count() == 4) { VectorCurve *v = (VectorCurve *)c; v->setXColumnName(lst[0].remove("(X)")); v->setTitle(lst[1].remove("(Y)")); QString xEndCol = lst[2].remove("(X)").remove("(A)"); QString yEndCol = lst[3].remove("(Y)").remove("(M)"); if (v->vectorEndXAColName() != xEndCol || v->vectorEndYMColName() != yEndCol) v->setVectorEnd(xEndCol, yEndCol); else v->loadData(); } graph->notifyChanges(); }