|
|
|
|
@ -564,35 +564,24 @@ void nmWxPressFlowChartWidget::drawSelectedFlowSegments(QPainter& painter)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 2. 绘制所有流动段的边界线(蓝色)
|
|
|
|
|
// 2. 只绘制各流动段的起点边界线,不额外绘制末尾终点(蓝色)
|
|
|
|
|
painter.setPen(QPen(QColor(0, 0, 255), 2)); // 蓝色,2像素宽
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < segments.size(); ++i) {
|
|
|
|
|
const FlowSegmentData& segment = segments[i];
|
|
|
|
|
|
|
|
|
|
double startTime = segment.segmentStart.getValue().toDouble();
|
|
|
|
|
double endTime = segment.segmentEnd.getValue().toDouble();
|
|
|
|
|
|
|
|
|
|
// 如果是外部拖动状态,并且是被拖动的边界,使用拖动中的时间
|
|
|
|
|
if(m_externalDragActive && i == m_externalDragBoundaryIndex) {
|
|
|
|
|
startTime = m_externalDragBoundaryTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 检查下一个段是否受到拖动影响
|
|
|
|
|
if(m_externalDragActive && i + 1 < segments.size() && (i + 1) == m_externalDragBoundaryIndex) {
|
|
|
|
|
endTime = m_externalDragBoundaryTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 检查是否处于合并状态
|
|
|
|
|
// 转换为屏幕坐标
|
|
|
|
|
int leftX = m_plotArea.left() + (startTime - m_minX) / (m_maxX - m_minX) * m_plotArea.width();
|
|
|
|
|
// 绘制起点边界线
|
|
|
|
|
painter.drawLine(leftX, m_plotArea.top(), leftX, m_plotArea.bottom());
|
|
|
|
|
// 只有最后一个段画终点
|
|
|
|
|
if (i == segments.size() - 1) {
|
|
|
|
|
int rightX = m_plotArea.left() + (endTime - m_minX) / (m_maxX - m_minX) * m_plotArea.width();
|
|
|
|
|
painter.drawLine(rightX, m_plotArea.top(), rightX, m_plotArea.bottom());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|