void RulerT::mousePressEvent(QMouseEvent *m) { QRect fpo; mousePressed = true; rulerCode = 0; if (haveInd) { fpo = QRect(static_cast<int>(firstLine+leftIndent-offset)-4, 0, 8, 12); if (fpo.contains(m->pos())) { rulerCode = 1; mouseX = m->x(); return; } fpo = QRect(static_cast<int>(leftIndent-offset)-4, 12, 8, 12); if (fpo.contains(m->pos())) { rulerCode = 2; mouseX = m->x(); return; } } if (tabValues.count() != 0) { for (int yg = 0; yg < static_cast<int>(tabValues.count()); yg++) { fpo = QRect(static_cast<int>(tabValues[yg].tabPosition-offset)-3, 15, 8, 8); if (fpo.contains(m->pos())) { rulerCode = 3; actTab = yg; mouseX = m->x(); emit tabSelected(); emit typeChanged(tabValues[actTab].tabType); emit tabMoved(tabValues[actTab].tabPosition); emit fillCharChanged(tabValues[actTab].tabFillChar); repaint(); return; } } } if ((rulerCode == 0) && (m->button() == Qt::LeftButton)) { ParagraphStyle::TabRecord tb; tb.tabPosition = static_cast<double>(m->x() + offset); tb.tabType = 0; tb.tabFillChar = QChar(); tabValues.prepend(tb); actTab = 0; rulerCode = 3; updateTabList(); repaint(); emit newTab(); emit typeChanged(tabValues[actTab].tabType); emit tabMoved(tabValues[actTab].tabPosition); emit fillCharChanged(tabValues[actTab].tabFillChar); qApp->changeOverrideCursor(QCursor(Qt::SizeHorCursor)); } mouseX = m->x(); }
void RulerT::moveTab(double t) { if (actTab < 0 || actTab >= tabValues.count()) return; tabValues[actTab].tabPosition = t; updateTabList(); repaint(); }
void RulerT::mouseMoveEvent(QMouseEvent *m) { double oldInd; QRect fpo; if ((mousePressed) && (m->y() < height()) && (m->y() > 0) && (m->x() > 0) && (m->x() < width())) { qApp->changeOverrideCursor(QCursor(Qt::SizeHorCursor)); switch (rulerCode) { case 1: firstLine -= mouseX - m->x(); if (firstLine+leftIndent+offset < offset) firstLine += mouseX - m->x(); if (firstLine+leftIndent > Width) firstLine = Width-leftIndent; emit firstLineMoved(firstLine); repaint(); break; case 2: oldInd = leftIndent+firstLine; leftIndent -= mouseX - m->x(); if (leftIndent < 0) leftIndent = 0; if (leftIndent > Width-1) leftIndent = Width-1; firstLine = oldInd - leftIndent; emit leftIndentMoved(leftIndent); emit firstLineMoved(firstLine); repaint(); break; case 3: tabValues[actTab].tabPosition -= mouseX - m->x(); if (tabValues[actTab].tabPosition < 0) tabValues[actTab].tabPosition = 0; if (tabValues[actTab].tabPosition > Width-1) tabValues[actTab].tabPosition = Width-1; updateTabList(); emit tabMoved(tabValues[actTab].tabPosition); repaint(); break; default: break; } mouseX = m->x(); return; } if ((!mousePressed) && (m->y() < height()) && (m->y() > 0) && (m->x() > 0) && (m->x() < width())) { setCursor(IconManager::instance()->loadCursor("tab.png", 3)); if (haveInd) { fpo = QRect(static_cast<int>(firstLine+leftIndent-offset)-4, 0, 8, 12); if (fpo.contains(m->pos())) { setCursor(QCursor(Qt::SizeHorCursor)); return; } fpo = QRect(static_cast<int>(leftIndent-offset)-4, 12, 8, 12); if (fpo.contains(m->pos())) { setCursor(QCursor(Qt::SizeHorCursor)); return; } } if (tabValues.count() != 0) { for (int yg = 0; yg < static_cast<int>(tabValues.count()); yg++) { fpo = QRect(static_cast<int>(tabValues[yg].tabPosition-offset)-3, 15, 8, 8); if (fpo.contains(m->pos())) { setCursor(QCursor(Qt::SizeHorCursor)); return; } } } } if ((mousePressed) && ((m->y() > height()) || (m->y() < 0) || (m->x() < 0) || (m->x() > width()))) { qApp->changeOverrideCursor(IconManager::instance()->loadCursor("DelPoint.png", 1, 1)); } }