void Hruler::leaveEvent(QEvent *m) { emit MarkerMoved(0, -1); qApp->restoreOverrideCursor(); m_view->m_canvasMode->setModeCursor(); }
void Hruler::mouseMoveEvent(QMouseEvent *m) { if (m_doc->isLoading()) return; if (textEditMode) { double ColWidth = (textWidth() - ColGap * (Cols - 1)) / Cols; int ColEnd, ColStart; double oldInd; if (RulerCode == rc_leftFrameDist || RulerCode == rc_rightFrameDist) { ColStart = 0; //textPosToLocal(0); ColEnd = width(); //textPosToLocal(textWidth()); } else { ColStart = textPosToLocal((ColWidth+ColGap)*(ActCol-1)); ColEnd = textPosToLocal((ColWidth+ColGap)*(ActCol-1) + ColWidth); } if ((Mpressed) && (m->y() < height()) && (m->y() > 0) && (m->x() > ColStart - m_doc->guidesPrefs().grabRadius) && (m->x() < ColEnd + m_doc->guidesPrefs().grabRadius)) { qApp->changeOverrideCursor(QCursor(Qt::SizeHorCursor)); double toplimit = textWidth() + RExtra - (ColGap * (Cols - 1))-1; double toplimit2 = textWidth() + Extra - (ColGap * (Cols - 1))-1; switch (RulerCode) { case rc_leftFrameDist: Extra -= (MouseX - m->x()) / Scaling; if (Extra < 0) Extra = 0; if (Extra > toplimit2) Extra = toplimit2; emit MarkerMoved(currItem->xPos(), textBase()-currItem->xPos()); repaint(); break; case rc_rightFrameDist: RExtra += (MouseX - m->x()) / Scaling; if (RExtra < 0) RExtra = 0; if (RExtra > toplimit) RExtra = toplimit; emit MarkerMoved(textBase(), toplimit -RExtra); repaint(); break; case rc_indentFirst: First -= (MouseX - m->x()) / Scaling; if (First+Indent < 0) First = -Indent; if (First+Indent > ColWidth) First = ColWidth-Indent; emit MarkerMoved(textBase(), First+Indent); repaint(); break; case rc_leftMargin: oldInd = Indent+First; Indent -= (MouseX - m->x()) / Scaling; if (Indent < 0) Indent = 0; if (Indent > ColWidth-1) Indent = ColWidth-1; First = oldInd - Indent; emit MarkerMoved(textBase(), Indent); repaint(); break; case rc_rightMargin: RMargin -= (MouseX - m->x()) / Scaling; if (RMargin < 0) RMargin = 0; if (RMargin > ColWidth-1) RMargin = ColWidth-1; emit MarkerMoved(textBase(), RMargin); repaint(); break; case rc_tab: TabValues[ActTab].tabPosition -= (MouseX - m->x()) / Scaling; if (TabValues[ActTab].tabPosition < 0) TabValues[ActTab].tabPosition = 0; if (TabValues[ActTab].tabPosition > ColWidth-1) TabValues[ActTab].tabPosition = ColWidth-1; emit MarkerMoved(textBase(), TabValues[ActTab].tabPosition); UpdateTabList(); repaint(); break; default: break; } MouseX = m->x(); /* if (RulerCode != rc_none) { QPoint py = m_view->viewport()->mapFromGlobal(m->globalPos()); QPainter p; p.begin(m_view->viewport()); p.setCompositionMode(QPainter::CompositionMode_Xor); p.setPen(QPen(Qt::white, 1, Qt::DotLine, Qt::FlatCap, Qt::MiterJoin)); QPoint out = m_view->contentsToViewport(QPoint(0, qRound(m_doc->currentPage()->yOffset() * Scaling))); p.drawLine(Markp, out.y(), Markp, out.y()+qRound(m_doc->currentPage()->height() * Scaling)); p.drawLine(py.x(), out.y(), py.x(), out.y()+qRound(m_doc->currentPage()->height() * Scaling)); p.end(); Markp = py.x(); }*/ return; } if ((!Mpressed) && (m->y() < height()) && (m->y() > 0) && (m->x() > ColStart - 2*m_doc->guidesPrefs().grabRadius) && (m->x() < ColEnd + 2*m_doc->guidesPrefs().grabRadius)) { setCursor(IconManager::instance()->loadCursor("tab.png", 3)); switch(findRulerHandle(m->pos(), m_doc->guidesPrefs().grabRadius)) { case rc_leftFrameDist: setCursor(QCursor(Qt::SplitHCursor)); break; case rc_rightFrameDist: setCursor(QCursor(Qt::SplitHCursor)); break; case rc_indentFirst: setCursor(QCursor(Qt::SizeHorCursor)); break; case rc_leftMargin: setCursor(QCursor(Qt::SizeHorCursor)); break; case rc_rightMargin: setCursor(QCursor(Qt::SizeHorCursor)); break; case rc_tab: setCursor(QCursor(Qt::SizeHorCursor)); break; } Draw(m->x()); double marker = localToTextPos(m->x()); emit MarkerMoved(textBase(), marker); return; } if ((Mpressed) && (RulerCode == rc_tab) && ((m->y() > height()) || (m->y() < 0))) { setCursor(IconManager::instance()->loadCursor("DelPoint.png", 1, 1)); return; } setCursor(QCursor(Qt::ArrowCursor)); } else { if (Mpressed) { rulerGesture->mouseMoveEvent(m); } else setCursor(QCursor(Qt::ArrowCursor)); } }
void Hruler::leaveEvent(QEvent *e) { emit MarkerMoved(0, -1); currView->m_canvasMode->setModeCursor(); }