! Draws the bracket decoration on the data points at the begin and end of each selected data segment given in \a seletion. It uses the method \ref drawBracket to actually draw the shapes. \seebaseclassmethod */
| 16532 | \seebaseclassmethod |
| 16533 | */ |
| 16534 | void QCPSelectionDecoratorBracket::drawDecoration(QCPPainter *painter, QCPDataSelection selection) |
| 16535 | { |
| 16536 | if (!mPlottable || selection.isEmpty()) return; |
| 16537 | |
| 16538 | if (QCPPlottableInterface1D *interface1d = mPlottable->interface1D()) |
| 16539 | { |
| 16540 | Q_FOREACH (const QCPDataRange &dataRange, selection.dataRanges()) |
| 16541 | { |
| 16542 | // determine position and (if tangent mode is enabled) angle of brackets: |
| 16543 | int openBracketDir = (mPlottable->keyAxis() && !mPlottable->keyAxis()->rangeReversed()) ? 1 : -1; |
| 16544 | int closeBracketDir = -openBracketDir; |
| 16545 | QPointF openBracketPos = getPixelCoordinates(interface1d, dataRange.begin()); |
| 16546 | QPointF closeBracketPos = getPixelCoordinates(interface1d, dataRange.end()-1); |
| 16547 | double openBracketAngle = 0; |
| 16548 | double closeBracketAngle = 0; |
| 16549 | if (mTangentToData) |
| 16550 | { |
| 16551 | openBracketAngle = getTangentAngle(interface1d, dataRange.begin(), openBracketDir); |
| 16552 | closeBracketAngle = getTangentAngle(interface1d, dataRange.end()-1, closeBracketDir); |
| 16553 | } |
| 16554 | // draw opening bracket: |
| 16555 | QTransform oldTransform = painter->transform(); |
| 16556 | painter->setPen(mBracketPen); |
| 16557 | painter->setBrush(mBracketBrush); |
| 16558 | painter->translate(openBracketPos); |
| 16559 | painter->rotate(openBracketAngle/M_PI*180.0); |
| 16560 | drawBracket(painter, openBracketDir); |
| 16561 | painter->setTransform(oldTransform); |
| 16562 | // draw closing bracket: |
| 16563 | painter->setPen(mBracketPen); |
| 16564 | painter->setBrush(mBracketBrush); |
| 16565 | painter->translate(closeBracketPos); |
| 16566 | painter->rotate(closeBracketAngle/M_PI*180.0); |
| 16567 | drawBracket(painter, closeBracketDir); |
| 16568 | painter->setTransform(oldTransform); |
| 16569 | } |
| 16570 | } |
| 16571 | } |
| 16572 | |
| 16573 | /*! \internal |
| 16574 |