void XHTMLReader::endElementHandler(const char *tag) { bool pageBreak = false; ParseContext &context(myParseStack.back()); if (context.styleIndex >= 0) { if (myStyleStack[context.styleIndex].PageBreakAfter == B3_TRUE) { // If we are about to have a page break, we don't want // endParagraph() to apply pending bottom margins. myBottomMargins.resize(0); pageBreak = true; } } XHTMLTagAction *action = ourTagActions[ZLUnicodeUtil::toLower(tag)]; if (action != 0) { action->doAtEnd(*this); } if (pageBreak) { addPageBreak(); } if (myModelReader.paragraphIsOpen()) { if (context.styleIndex >= 0) { myModelReader.addControl(REGULAR, false); } if (context.kind >= 0) { myModelReader.addControl((FBTextKind)context.kind, false); } } if (!context.bottomMarginApplied && elementHasBottomMargin(context)) { ZLTextStyleEntry::SizeUnit unit = ZLTextStyleEntry::SIZE_UNIT_PIXEL; short size = 0; if (context.styleIndex >= 0 && myStyleStack[context.styleIndex].TextStyle.lengthSupported(ZLTextStyleEntry::LENGTH_SPACE_AFTER)) { size = myStyleStack[context.styleIndex].TextStyle.length(ZLTextStyleEntry::LENGTH_SPACE_AFTER, unit); } else if (context.decoration) { const ZLTextFullStyleDecoration *decoration = context.decoration->fullDecoration(); if (decoration) { size = decoration->SpaceAfterOption.value(); unit = decoration->SpaceAfterOptionUnit; } } if (size > 0) { addBottomMargin(size, unit); } } if (!myModelReader.paragraphIsOpen()) { applyBottomMargins(); } if (context.styleIndex >= 0) { myStyleStack.pop_back(); } myElementStack.pop_back(); myParseStack.pop_back(); }
void MainWindow::keepMargins() { if (m_dontKeepMargins) return; /*FDockWidget* newTopWidget = this->newTopWidget(); if(m_topDock != newTopWidget) { removeMargin(m_topDock); m_topDock = newTopWidget; if(m_topDock) m_oldTopDockStyle = m_topDock->styleSheet(); addTopMargin(m_topDock); }*/ FDockWidget* newBottomWidget = this->newBottomWidget(); if(m_bottomDock != newBottomWidget) { removeMargin(m_bottomDock); m_bottomDock = newBottomWidget; if(m_bottomDock) m_oldBottomDockStyle = m_bottomDock->styleSheet(); addBottomMargin(m_bottomDock); m_sizeGrip->raise(); } }