Changeset View
Changeset View
Standalone View
Standalone View
src/backend/worksheet/plots/cartesian/XYAnalysisCurve.cpp
Show First 20 Lines • Show All 70 Lines • ▼ Show 20 Line(s) | |||||
71 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const XYCurve*, dataSourceCurve, dataSourceCurve) | 71 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const XYCurve*, dataSourceCurve, dataSourceCurve) | ||
72 | const QString& XYAnalysisCurve::dataSourceCurvePath() const { | 72 | const QString& XYAnalysisCurve::dataSourceCurvePath() const { | ||
73 | return d_ptr->dataSourceCurvePath; | 73 | return d_ptr->dataSourceCurvePath; | ||
74 | } | 74 | } | ||
75 | 75 | | |||
76 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const AbstractColumn*, xDataColumn, xDataColumn) | 76 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const AbstractColumn*, xDataColumn, xDataColumn) | ||
77 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const AbstractColumn*, yDataColumn, yDataColumn) | 77 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const AbstractColumn*, yDataColumn, yDataColumn) | ||
78 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const AbstractColumn*, y2DataColumn, y2DataColumn) | 78 | BASIC_SHARED_D_READER_IMPL(XYAnalysisCurve, const AbstractColumn*, y2DataColumn, y2DataColumn) | ||
79 | const QString& XYAnalysisCurve::xDataColumnPath() const { Q_D(const XYAnalysisCurve); return d->xDataColumnPath; } | 79 | CLASS_SHARED_D_READER_IMPL(XYAnalysisCurve, QString, xDataColumnPath, xDataColumnPath) | ||
80 | const QString& XYAnalysisCurve::yDataColumnPath() const { Q_D(const XYAnalysisCurve); return d->yDataColumnPath; } | 80 | CLASS_SHARED_D_READER_IMPL(XYAnalysisCurve, QString, yDataColumnPath, yDataColumnPath) | ||
81 | const QString& XYAnalysisCurve::y2DataColumnPath() const { Q_D(const XYAnalysisCurve); return d->y2DataColumnPath; } | 81 | CLASS_SHARED_D_READER_IMPL(XYAnalysisCurve, QString, y2DataColumnPath, y2DataColumnPath) | ||
82 | 82 | | |||
83 | //############################################################################## | 83 | //############################################################################## | ||
84 | //################# setter methods and undo commands ########################## | 84 | //################# setter methods and undo commands ########################## | ||
85 | //############################################################################## | 85 | //############################################################################## | ||
86 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetDataSourceType, XYAnalysisCurve::DataSourceType, dataSourceType) | 86 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetDataSourceType, XYAnalysisCurve::DataSourceType, dataSourceType) | ||
87 | void XYAnalysisCurve::setDataSourceType(DataSourceType type) { | 87 | void XYAnalysisCurve::setDataSourceType(DataSourceType type) { | ||
88 | Q_D(XYAnalysisCurve); | 88 | Q_D(XYAnalysisCurve); | ||
89 | if (type != d->dataSourceType) | 89 | if (type != d->dataSourceType) | ||
Show All 20 Lines | 94 | void XYAnalysisCurve::setDataSourceCurve(const XYCurve* curve) { | |||
110 | } | 110 | } | ||
111 | } | 111 | } | ||
112 | 112 | | |||
113 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetXDataColumn, const AbstractColumn*, xDataColumn) | 113 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetXDataColumn, const AbstractColumn*, xDataColumn) | ||
114 | void XYAnalysisCurve::setXDataColumn(const AbstractColumn* column) { | 114 | void XYAnalysisCurve::setXDataColumn(const AbstractColumn* column) { | ||
115 | DEBUG("XYAnalysisCurve::setXDataColumn()"); | 115 | DEBUG("XYAnalysisCurve::setXDataColumn()"); | ||
116 | Q_D(XYAnalysisCurve); | 116 | Q_D(XYAnalysisCurve); | ||
117 | if (column != d->xDataColumn) { | 117 | if (column != d->xDataColumn) { | ||
118 | setXDataColumnPath(column->path()); | ||||
118 | exec(new XYAnalysisCurveSetXDataColumnCmd(d, column, ki18n("%1: assign x-data"))); | 119 | exec(new XYAnalysisCurveSetXDataColumnCmd(d, column, ki18n("%1: assign x-data"))); | ||
119 | handleSourceDataChanged(); | 120 | handleSourceDataChanged(); | ||
120 | if (column) { | 121 | if (column) { | ||
122 | connect(column->parentAspect(), &AbstractAspect::aspectAboutToBeRemoved, | ||||
123 | this, &XYAnalysisCurve::xDataColumnAboutToBeRemoved); | ||||
121 | connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, SLOT(handleSourceDataChanged())); | 124 | connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, SLOT(handleSourceDataChanged())); | ||
125 | connect(column, &AbstractAspect::aspectDescriptionChanged, this, &XYAnalysisCurve::xDataColumnNameChanged); | ||||
122 | //TODO disconnect on undo | 126 | //TODO disconnect on undo | ||
123 | } | 127 | } | ||
124 | } | 128 | } | ||
125 | } | 129 | } | ||
126 | 130 | | |||
127 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetYDataColumn, const AbstractColumn*, yDataColumn) | 131 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetYDataColumn, const AbstractColumn*, yDataColumn) | ||
128 | void XYAnalysisCurve::setYDataColumn(const AbstractColumn* column) { | 132 | void XYAnalysisCurve::setYDataColumn(const AbstractColumn* column) { | ||
129 | DEBUG("XYAnalysisCurve::setYDataColumn()"); | 133 | DEBUG("XYAnalysisCurve::setYDataColumn()"); | ||
130 | Q_D(XYAnalysisCurve); | 134 | Q_D(XYAnalysisCurve); | ||
131 | if (column != d->yDataColumn) { | 135 | if (column != d->yDataColumn) { | ||
136 | setYDataColumnPath(column->path()); | ||||
132 | exec(new XYAnalysisCurveSetYDataColumnCmd(d, column, ki18n("%1: assign y-data"))); | 137 | exec(new XYAnalysisCurveSetYDataColumnCmd(d, column, ki18n("%1: assign y-data"))); | ||
133 | handleSourceDataChanged(); | 138 | handleSourceDataChanged(); | ||
134 | if (column) { | 139 | if (column) { | ||
140 | connect(column->parentAspect(), &AbstractAspect::aspectAboutToBeRemoved, | ||||
141 | this, &XYAnalysisCurve::yDataColumnAboutToBeRemoved); | ||||
135 | connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, SLOT(handleSourceDataChanged())); | 142 | connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, SLOT(handleSourceDataChanged())); | ||
143 | connect(column, &AbstractAspect::aspectDescriptionChanged, this, &XYAnalysisCurve::yDataColumnNameChanged); | ||||
136 | //TODO disconnect on undo | 144 | //TODO disconnect on undo | ||
137 | } | 145 | } | ||
138 | } | 146 | } | ||
139 | } | 147 | } | ||
140 | 148 | | |||
141 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetY2DataColumn, const AbstractColumn*, y2DataColumn) | 149 | STD_SETTER_CMD_IMPL_S(XYAnalysisCurve, SetY2DataColumn, const AbstractColumn*, y2DataColumn) | ||
142 | void XYAnalysisCurve::setY2DataColumn(const AbstractColumn* column) { | 150 | void XYAnalysisCurve::setY2DataColumn(const AbstractColumn* column) { | ||
143 | DEBUG("XYAnalysisCurve::setY2DataColumn()"); | 151 | DEBUG("XYAnalysisCurve::setY2DataColumn()"); | ||
144 | Q_D(XYAnalysisCurve); | 152 | Q_D(XYAnalysisCurve); | ||
145 | if (column != d->y2DataColumn) { | 153 | if (column != d->y2DataColumn) { | ||
154 | setY2DataColumnPath(column->path()); | ||||
146 | exec(new XYAnalysisCurveSetY2DataColumnCmd(d, column, ki18n("%1: assign second y-data"))); | 155 | exec(new XYAnalysisCurveSetY2DataColumnCmd(d, column, ki18n("%1: assign second y-data"))); | ||
147 | handleSourceDataChanged(); | 156 | handleSourceDataChanged(); | ||
148 | if (column) { | 157 | if (column) { | ||
158 | connect(column->parentAspect(), &AbstractAspect::aspectAboutToBeRemoved, | ||||
159 | this, &XYAnalysisCurve::y2DataColumnAboutToBeRemoved); | ||||
149 | connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, SLOT(handleSourceDataChanged())); | 160 | connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, SLOT(handleSourceDataChanged())); | ||
161 | connect(column, &AbstractAspect::aspectDescriptionChanged, this, &XYAnalysisCurve::y2DataColumnNameChanged); | ||||
150 | //TODO disconnect on undo | 162 | //TODO disconnect on undo | ||
151 | } | 163 | } | ||
152 | } | 164 | } | ||
153 | } | 165 | } | ||
154 | 166 | | |||
167 | void XYAnalysisCurve::setXDataColumnPath(const QString& path) { | ||||
168 | Q_D(XYAnalysisCurve); | ||||
169 | d->xDataColumnPath = path; | ||||
170 | } | ||||
171 | | ||||
172 | void XYAnalysisCurve::setYDataColumnPath(const QString& path) { | ||||
173 | Q_D(XYAnalysisCurve); | ||||
174 | d->yDataColumnPath = path; | ||||
175 | } | ||||
176 | | ||||
177 | void XYAnalysisCurve::setY2DataColumnPath(const QString& path) { | ||||
178 | Q_D(XYAnalysisCurve); | ||||
179 | d->y2DataColumnPath = path; | ||||
180 | } | ||||
181 | | ||||
155 | //############################################################################## | 182 | //############################################################################## | ||
156 | //################################# SLOTS #################################### | 183 | //################################# SLOTS #################################### | ||
157 | //############################################################################## | 184 | //############################################################################## | ||
158 | void XYAnalysisCurve::handleSourceDataChanged() { | 185 | void XYAnalysisCurve::handleSourceDataChanged() { | ||
159 | Q_D(XYAnalysisCurve); | 186 | Q_D(XYAnalysisCurve); | ||
160 | d->sourceDataChangedSinceLastRecalc = true; | 187 | d->sourceDataChangedSinceLastRecalc = true; | ||
161 | emit sourceDataChanged(); | 188 | emit sourceDataChanged(); | ||
162 | } | 189 | } | ||
163 | 190 | | |||
191 | void XYAnalysisCurve::xDataColumnAboutToBeRemoved(const AbstractAspect* aspect) { | ||||
192 | Q_D(XYAnalysisCurve); | ||||
193 | if (aspect == d->xDataColumn) { | ||||
194 | d->xDataColumn = nullptr; | ||||
195 | d->retransform(); | ||||
196 | } | ||||
197 | } | ||||
198 | | ||||
199 | void XYAnalysisCurve::yDataColumnAboutToBeRemoved(const AbstractAspect* aspect) { | ||||
200 | Q_D(XYAnalysisCurve); | ||||
201 | if (aspect == d->yDataColumn) { | ||||
202 | d->yDataColumn = nullptr; | ||||
203 | d->retransform(); | ||||
204 | } | ||||
205 | } | ||||
206 | | ||||
207 | void XYAnalysisCurve::y2DataColumnAboutToBeRemoved(const AbstractAspect* aspect) { | ||||
208 | Q_D(XYAnalysisCurve); | ||||
209 | if (aspect == d->y2DataColumn) { | ||||
210 | d->y2DataColumn = nullptr; | ||||
211 | d->retransform(); | ||||
212 | } | ||||
213 | } | ||||
214 | | ||||
215 | void XYAnalysisCurve::xDataColumnNameChanged() { | ||||
216 | Q_D(XYAnalysisCurve); | ||||
217 | setXDataColumnPath(d->xDataColumn->path()); | ||||
218 | } | ||||
219 | | ||||
220 | void XYAnalysisCurve::yDataColumnNameChanged() { | ||||
221 | Q_D(XYAnalysisCurve); | ||||
222 | setYDataColumnPath(d->yDataColumn->path()); | ||||
223 | } | ||||
224 | | ||||
225 | void XYAnalysisCurve::y2DataColumnNameChanged() { | ||||
226 | Q_D(XYAnalysisCurve); | ||||
227 | setYDataColumnPath(d->y2DataColumn->path()); | ||||
228 | } | ||||
229 | | ||||
164 | //############################################################################## | 230 | //############################################################################## | ||
165 | //######################### Private implementation ############################# | 231 | //######################### Private implementation ############################# | ||
166 | //############################################################################## | 232 | //############################################################################## | ||
167 | XYAnalysisCurvePrivate::XYAnalysisCurvePrivate(XYAnalysisCurve* owner) : XYCurvePrivate(owner), q(owner) { | 233 | XYAnalysisCurvePrivate::XYAnalysisCurvePrivate(XYAnalysisCurve* owner) : XYCurvePrivate(owner), q(owner) { | ||
168 | } | 234 | } | ||
169 | 235 | | |||
170 | //no need to delete xColumn and yColumn, they are deleted | 236 | //no need to delete xColumn and yColumn, they are deleted | ||
171 | //when the parent aspect is removed | 237 | //when the parent aspect is removed | ||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |