Fix cell dragbar gaps and offset
This commit is contained in:
parent
1e8832d06b
commit
cfb361c1ea
1 changed files with 39 additions and 3 deletions
|
@ -1791,7 +1791,17 @@ void CellArea::drawDragHandle(QPainter &p, bool isStart, const QPoint &xy,
|
|||
dragHandleRect.adjust(0, 1, 0, 0);
|
||||
else
|
||||
dragHandleRect.adjust(1, 0, 0, 0);
|
||||
} else {
|
||||
if (xy.x() > 1 && !m_viewer->orientation()->isVerticalTimeline())
|
||||
dragHandleRect.adjust(-1, 0, 0, 0);
|
||||
else if (xy.y() > 1 && m_viewer->orientation()->isVerticalTimeline())
|
||||
dragHandleRect.adjust(0, -1, 0, 0);
|
||||
}
|
||||
|
||||
// Adjust for 1st row
|
||||
if (xy.x() <= 1 && !m_viewer->orientation()->isVerticalTimeline())
|
||||
dragHandleRect.adjust(0, 0, -1, 0);
|
||||
|
||||
p.fillRect(dragHandleRect, QBrush(sideColor));
|
||||
}
|
||||
|
||||
|
@ -1799,10 +1809,17 @@ void CellArea::drawDragHandle(QPainter &p, bool isStart, const QPoint &xy,
|
|||
void CellArea::drawEndOfDragHandle(QPainter &p, bool isEnd, const QPoint &xy,
|
||||
const QColor &cellColor) const {
|
||||
if (!isEnd) return;
|
||||
|
||||
QPoint lxy = xy;
|
||||
|
||||
// Adjust left for 1st row
|
||||
if (lxy.x() <= 1 && !m_viewer->orientation()->isVerticalTimeline())
|
||||
lxy.setX(lxy.x() - 1);
|
||||
|
||||
QPoint frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QPainterPath corner = m_viewer->orientation()
|
||||
->path(PredefinedPath::DRAG_HANDLE_CORNER)
|
||||
.translated(xy - frameAdj);
|
||||
.translated(lxy - frameAdj);
|
||||
p.fillPath(corner, QBrush(cellColor));
|
||||
}
|
||||
|
||||
|
@ -1811,17 +1828,36 @@ void CellArea::drawLockedDottedLine(QPainter &p, bool isLocked, bool isStart,
|
|||
const QPoint &xy,
|
||||
const QColor &cellColor) const {
|
||||
if (!isLocked) return;
|
||||
|
||||
QPoint lxy = xy;
|
||||
|
||||
int adjEndX = 0, adjEndY = 0;
|
||||
if (!m_viewer->orientation()->isVerticalTimeline()) {
|
||||
if (lxy.x() <= 1) {
|
||||
lxy.setX(lxy.x() + 1); // Adjust for 1st row
|
||||
adjEndX = -2;
|
||||
} else
|
||||
adjEndX = -1;
|
||||
} else {
|
||||
if (lxy.y() <= 1) {
|
||||
lxy.setY(lxy.y() + 1);
|
||||
adjEndY = -2;
|
||||
} else
|
||||
adjEndY = -1;
|
||||
}
|
||||
|
||||
p.setPen(QPen(cellColor, 2, Qt::DotLine));
|
||||
QPoint frameAdj = m_viewer->getFrameZoomAdjustment();
|
||||
QLine dottedLine =
|
||||
m_viewer->orientation()->line(PredefinedLine::LOCKED).translated(xy);
|
||||
m_viewer->orientation()->line(PredefinedLine::LOCKED).translated(lxy);
|
||||
if (isStart) {
|
||||
if (m_viewer->orientation()->isVerticalTimeline())
|
||||
dottedLine.setP1(QPoint(dottedLine.x1(), dottedLine.y1() + 2));
|
||||
else
|
||||
dottedLine.setP1(QPoint(dottedLine.x1() + 2, dottedLine.y1()));
|
||||
}
|
||||
dottedLine.setP2(QPoint(dottedLine.x2(), dottedLine.y2()) - frameAdj);
|
||||
dottedLine.setP2(QPoint(dottedLine.x2() + adjEndX, dottedLine.y2() + adjEndY) -
|
||||
frameAdj);
|
||||
p.drawLine(dottedLine);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue