Ejemplo n.º 1
0
void Text::spatiumChanged(qreal oldVal, qreal newVal)
      {
      Element::spatiumChanged(oldVal, newVal);

      if (!sizeIsSpatiumDependent() || styled())
            return;
      qreal v = newVal / oldVal;

      QTextCursor c(_doc);
      QTextBlock cb = _doc->begin();
      while (cb.isValid()) {
            QTextBlock::iterator i(cb.begin());
            for (; !i.atEnd(); ++i) {
                  QTextFragment f = i.fragment();
                  if (f.isValid()) {
                        int pos = f.position();
                        int len = f.length();
                        c.setPosition(pos, QTextCursor::MoveAnchor);
                        c.setPosition(pos + len, QTextCursor::KeepAnchor);
                        QTextCharFormat cf = c.charFormat();
                        QFont font = cf.font();
                        font.setPointSizeF(font.pointSizeF() * v);
                        cf.setFont(font);
                        c.setCharFormat(cf);
                        }
                  }
            cb = cb.next();
            }
      }
Ejemplo n.º 2
0
void Text::spatiumChanged(qreal oldVal, qreal newVal)
      {
      Element::spatiumChanged(oldVal, newVal);
#if 0
qDebug("Text::spatiumChanged %d  -- %s %s %p %f\n",
      sizeIsSpatiumDependent(), name(), parent() ? parent()->name() : "?", this, newVal);
#endif
      if (!sizeIsSpatiumDependent() || styled())
            return;
      qreal v = newVal / oldVal;
      QTextCursor c(_doc);
      c.movePosition(QTextCursor::Start);
      for (;;) {
            c.select(QTextCursor::BlockUnderCursor);
            QTextCharFormat cf = c.charFormat();
            QFont font = cf.font();
            font.setPointSizeF(font.pointSizeF() * v);
            cf.setFont(font);
            c.setCharFormat(cf);
            if (!c.movePosition(QTextCursor::NextBlock))
                  break;
            }
      }