RulerT::RulerT(QWidget *pa, int ein, QList<ParagraphStyle::TabRecord> Tabs, bool ind, double wid) : QWidget(pa) { QPalette palette; palette.setColor(backgroundRole(), QColor(255,255,255)); setPalette(palette); unitIndex = ein; iter=unitRulerGetIter1FromIndex(unitIndex); iter2=unitRulerGetIter2FromIndex(unitIndex); tabValues = Tabs; haveInd = ind; offsetIncrement = 5; offset = 0; firstLine = 0; leftIndent = 0; mousePressed = false; rulerCode = 0; actTab = -1; setMouseTracking(true); if (wid < 0) { setMinimumSize(QSize(400,25)); setMaximumSize(QSize(4000,25)); Width = 4000; resize(400, 25); } else { Width = wid; setMinimumSize(QSize(qMin(static_cast<int>(Width), 400),25)); setMaximumSize(QSize(4000,25)); resize(qMin(static_cast<int>(wid), 400), 25); } }
void RulerT::setTabs(QList<ParagraphStyle::TabRecord> Tabs, int dEin) { unitIndex = dEin; iter = unitRulerGetIter1FromIndex(unitIndex); iter2 = unitRulerGetIter2FromIndex(unitIndex); tabValues = Tabs; actTab = -1; repaint(); }
RulerT::RulerT(QWidget *pa, int ein, QList<ParagraphStyle::TabRecord> Tabs, bool ind, double wid) : QWidget(pa), mousePressed(false), tabValues(Tabs), haveInd(ind), unitIndex(ein), offset(0), actTab(-1), leftIndent(0), firstLine(0), Width(0.0), rulerCode(0), mouseX(0), offsetIncrement(5) { QPalette palette; palette.setColor(backgroundRole(), QColor(255,255,255)); setPalette(palette); iter=unitRulerGetIter1FromIndex(unitIndex); iter2=unitRulerGetIter2FromIndex(unitIndex); setMouseTracking(true); if (wid < 0) { setMinimumSize(QSize(400,25)); setMaximumSize(QSize(4000,25)); Width = 4000; resize(400, 25); } else { Width = wid; setMinimumSize(QSize(qMin(static_cast<int>(Width), 400),25)); setMaximumSize(QSize(4000,25)); resize(qMin(static_cast<int>(wid), 400), 25); } }
void Vruler::unitChange() { double sc = currView->scale(); cor=1; int docUnitIndex=currDoc->unitIndex(); switch (docUnitIndex) { case SC_PT: if (sc > 1 && sc <= 4) cor = 2; if (sc > 4) cor = 10; if (sc < 0.3) { iter = unitRulerGetIter1FromIndex(docUnitIndex) * 3; iter2 = unitRulerGetIter2FromIndex(docUnitIndex) * 3; } else if (sc < 0.2) { iter = unitRulerGetIter1FromIndex(docUnitIndex) * 2; iter2 = unitRulerGetIter2FromIndex(docUnitIndex) * 2; } else { iter = unitRulerGetIter1FromIndex(docUnitIndex) / cor; iter2 = unitRulerGetIter2FromIndex(docUnitIndex) / cor; } break; case SC_MM: if (sc > 1) cor = 10; iter = unitRulerGetIter1FromIndex(docUnitIndex) / cor; iter2 = unitRulerGetIter2FromIndex(docUnitIndex) / cor; break; case SC_IN: iter = unitRulerGetIter1FromIndex(docUnitIndex); iter2 = unitRulerGetIter2FromIndex(docUnitIndex); if (sc > 1 && sc <= 4) { cor = 2; iter /= cor; iter2 /= cor; } if (sc > 4) { cor = 4; iter /= cor; iter2 /= cor; } if (sc < 0.25) { cor = 0.5; iter = 72.0*16.0; iter2 = 72.0*2.0; } break; case SC_P: iter = unitRulerGetIter1FromIndex(docUnitIndex); iter2 = unitRulerGetIter2FromIndex(docUnitIndex); if (sc >= 1 && sc <= 4) { cor = 1; iter = 12.0; iter2 = 60.0; } if (sc > 4) { cor = 2; iter = 6.0; iter2 = 12.0; } if (sc < 0.3) { cor = 0.25; iter = 12.0*4; iter2 = 60.0*4; } else if (sc < 1) { cor = 1; iter = 12.0; iter2 = 60.0; } break; case SC_CM: if (sc > 1 && sc <= 4) cor = 1; if (sc > 4) cor = 10; if (sc < 0.6) { cor=0.1; iter = 720.0/25.4; iter2 = 7200.0/25.4; } else { iter = unitRulerGetIter1FromIndex(docUnitIndex) / cor; iter2 = unitRulerGetIter2FromIndex(docUnitIndex) / cor; } break; case SC_C: iter = unitRulerGetIter1FromIndex(docUnitIndex); iter2 = unitRulerGetIter2FromIndex(docUnitIndex); if (sc >= 1 && sc <= 4) { cor = 1; iter = 72.0/25.4*4.512; iter2 = 72.0/25.4*4.512*5.0; } if (sc > 4) { cor = 2; iter = 72.0/25.4*4.512/2.0; iter2 = 72.0/25.4*4.512; } if (sc < 0.3) { cor = 0.1; iter = 72.0/25.4*4.512*10; iter2 = 72.0/25.4*4.512*5.0*10; } else if (sc < 1) { cor = 1; iter = 72.0/25.4*4.512; iter2 = 72.0/25.4*4.512*5.0; } break; default: if (sc > 1 && sc <= 4) cor = 2; if (sc > 4) cor = 10; iter = unitRulerGetIter1FromIndex(0) / cor; iter2 = unitRulerGetIter2FromIndex(0) / cor; break; } }
void Prefs_Display::drawRuler() { int index = rulerUnitComboBox->currentIndex(); double iter = unitRulerGetIter1FromIndex(index); double iter2 = unitRulerGetIter2FromIndex(index); double maxi; switch (index) { case 0: maxi = 200.0; break; case 1: maxi = iter2; break; case 2: maxi = 2 * iter2; break; case 3: maxi = 240.0; break; case 4: maxi = 240.0; break; default: iter = 10.0; iter2 = iter * 10.0; maxi = 200.0; break; } QPixmap pm(qMin(qMax(displaySizeRuler->width(), qRound(maxi)+30), qRound(maxi*displayScale+30)), 21); pm.fill(); QPainter p; p.begin(&pm); p.drawLine(0, 19, pm.width(), 19); p.setBrush(Qt::black); p.setPen(Qt::black); p.scale(displayScale, 1.0); double xl; for (xl = 0; xl < maxi; xl += iter) p.drawLine(QPointF(xl, 13.0), QPointF(xl, 19.0)); for (xl = 0; xl < maxi+10; xl += iter2) { p.drawLine(QPointF(xl, 6.0), QPointF(xl, 19.0)); p.save(); p.scale(1.0 / displayScale, 1.0); double val; switch (index) { case 2: case 4: val=xl/iter2; break; case 3: case 5: val=xl/iter; break; default: val=xl/iter*10; break; } p.drawText(static_cast<int>((xl+qRound(2/displayScale)) * displayScale), 12, QString::number(val)); p.restore(); } p.end(); displaySizeRuler->setPixmap(pm); }