! Moves this bars plottable below \a bars. In other words, the bars of this plottable will appear below the bars of \a bars. The move target \a bars must use the same key and value axis as this plottable. Inserting into and removing from existing bar stacking is handled gracefully. If \a bars already has a bars object below itself, this bars object is inserted between the two. If this
| 23832 | \see moveBelow, barAbove, barBelow |
| 23833 | */ |
| 23834 | void QCPBars::moveBelow(QCPBars *bars) |
| 23835 | { |
| 23836 | if (bars == this) return; |
| 23837 | if (bars && (bars->keyAxis() != mKeyAxis.data() || bars->valueAxis() != mValueAxis.data())) |
| 23838 | { |
| 23839 | qDebug() << Q_FUNC_INFO << "passed QCPBars* doesn't have same key and value axis as this QCPBars"; |
| 23840 | return; |
| 23841 | } |
| 23842 | // remove from stacking: |
| 23843 | connectBars(mBarBelow.data(), mBarAbove.data()); // Note: also works if one (or both) of them is 0 |
| 23844 | // if new bar given, insert this bar below it: |
| 23845 | if (bars) |
| 23846 | { |
| 23847 | if (bars->mBarBelow) |
| 23848 | connectBars(bars->mBarBelow.data(), this); |
| 23849 | connectBars(this, bars); |
| 23850 | } |
| 23851 | } |
| 23852 | |
| 23853 | /*! |
| 23854 | Moves this bars plottable above \a bars. In other words, the bars of this plottable will appear |