void MyTextEdit::loadDocument()
{
m_document.setHtml(m_html);
m_document.setPageSize(size());
m_document.setDefaultFont(font());
m_pageCount = m_document.pageCount();
QTextBlockFormat pageBreak;
pageBreak.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysBefore);
QTextCursor cursor(&m_document);
cursor.movePosition(QTextCursor::End);
cursor.insertBlock(pageBreak);
}
void MyTextEdit::scrollPage(int num)
{
int currentPage = m_offset / m_document.pageSize().height();
currentPage += num;
if (currentPage < 0)
{
currentPage = 0;
}
if (currentPage >= m_pageCount)
{
currentPage = m_pageCount - 1;
}
m_currentPage = currentPage;
emit signalCurrentPageChanged(currentPage, m_pageCount);
int offset = currentPage *m_document.pageSize().height();
offset = qMin(int(m_document.size().height() - m_document.pageSize().height()), offset);
m_offset = qMax(0, offset);
update();
}