void PropertyWidget_Distance::handleTabs() { if (m_doc && m_item) { PageItem_TextFrame *tItem = m_item->asTextFrame(); if (tItem == 0) return; const ParagraphStyle& style(m_doc->appMode == modeEdit ? tItem->currentStyle() : tItem->itemText.defaultStyle()); TabManager *dia = new TabManager(this, m_doc->unitIndex(), style.tabValues(), tItem->columnWidth()); if (dia->exec()) { if (m_doc->appMode != modeEdit) { ParagraphStyle newStyle(m_item->itemText.defaultStyle()); newStyle.setTabValues(dia->tmpTab); Selection tempSelection(this, false); tempSelection.addItem(m_item, true); m_doc->itemSelection_ApplyParagraphStyle(newStyle, &tempSelection); } else { ParagraphStyle newStyle; newStyle.setTabValues(dia->tmpTab); m_doc->itemSelection_ApplyParagraphStyle(newStyle); } m_item->update(); } delete dia; } }
void gtAction::setParaStyleAttributes(gtParagraphStyle *pstyle, ParagraphStyle& style) { double linesp; int flags = pstyle->getFlags(); style.erase(); style.setName(pstyle->getName()); if (pstyle->getAutoLineSpacing()) linesp = getLineSpacing(pstyle->getFont()->getSize()); else linesp = pstyle->getLineSpacing(); style.setLineSpacingMode(pstyle->isAdjToBaseline() ? ParagraphStyle::BaselineGridLineSpacing : ParagraphStyle::FixedLineSpacing); style.setLineSpacing(linesp); if (flags & gtParagraphStyle::alignmentWasSet) style.setAlignment(static_cast<ParagraphStyle::AlignmentType>(pstyle->getAlignment())); if (flags & gtParagraphStyle::indentWasSet) style.setLeftMargin(pstyle->getIndent()); if (flags & gtParagraphStyle::firstIndentWasSet) style.setFirstIndent(pstyle->getFirstLineIndent()); if (flags & gtParagraphStyle::spaceAboveWasSet) style.setGapBefore(pstyle->getSpaceAbove()); if (flags & gtParagraphStyle::spaceBelowWasSet) style.setGapAfter(pstyle->getSpaceBelow()); if (flags & gtParagraphStyle::tabValueWasSet) style.setTabValues(*pstyle->getTabValues()); if (flags & gtParagraphStyle::dropCapWasSet) style.setHasDropCap(pstyle->hasDropCap()); if (flags & gtParagraphStyle::dropCapHeightWasSet) style.setDropCapLines(pstyle->getDropCapHeight()); /*vg.setDropCapOffset(0);*/ }
void FileLoader::readParagraphStyle(ParagraphStyle& vg, const QDomElement& pg, SCFonts &avail, ScribusDoc *currDoc) { vg.setName(pg.attribute("NAME")); vg.setLineSpacingMode(static_cast<ParagraphStyle::LineSpacingMode>(pg.attribute("LINESPMode", "0").toInt())); vg.setLineSpacing(ScCLocale::toDoubleC(pg.attribute("LINESP"))); vg.setLeftMargin(ScCLocale::toDoubleC(pg.attribute("INDENT"), 0.0)); if (pg.hasAttribute("RMARGIN")) vg.setRightMargin(ScCLocale::toDoubleC(pg.attribute("RMARGIN"), 0.0)); else vg.setRightMargin(0); vg.setFirstIndent(ScCLocale::toDoubleC(pg.attribute("FIRST"), 0.0)); vg.setAlignment(static_cast<ParagraphStyle::AlignmentType>(pg.attribute("ALIGN").toInt())); vg.setGapBefore(ScCLocale::toDoubleC(pg.attribute("VOR"), 0.0)); vg.setGapAfter(ScCLocale::toDoubleC(pg.attribute("NACH"), 0.0)); QString tmpf = pg.attribute("FONT", currDoc->toolSettings.defFont); currDoc->AllFonts->findFont(tmpf, currDoc); vg.charStyle().setFont((*currDoc->AllFonts)[tmpf]); vg.charStyle().setFontSize(qRound(ScCLocale::toDoubleC(pg.attribute("FONTSIZE"), 12.0) * 10.0)); vg.setHasDropCap(static_cast<bool>(pg.attribute("DROP", "0").toInt())); vg.setDropCapLines(pg.attribute("DROPLIN", "2").toInt()); vg.setDropCapOffset(ScCLocale::toDoubleC(pg.attribute("DROPDIST"), 0.0)); vg.charStyle().setFeatures(static_cast<StyleFlag>(pg.attribute("EFFECT", "0").toInt()).featureList()); vg.charStyle().setFillColor(pg.attribute("FCOLOR", currDoc->toolSettings.dBrush)); vg.charStyle().setFillShade(pg.attribute("FSHADE", "100").toInt()); vg.charStyle().setStrokeColor(pg.attribute("SCOLOR", currDoc->toolSettings.dPen)); vg.charStyle().setStrokeShade(pg.attribute("SSHADE", "100").toInt()); if (static_cast<bool>(pg.attribute("BASE", "0").toInt())) vg.setLineSpacingMode(ParagraphStyle::BaselineGridLineSpacing); vg.charStyle().setShadowXOffset(qRound(ScCLocale::toDoubleC(pg.attribute("TXTSHX"), 5.0)) * 10); vg.charStyle().setShadowYOffset(qRound(ScCLocale::toDoubleC(pg.attribute("TXTSHY"), -5.0)) * 10); vg.charStyle().setOutlineWidth(qRound(ScCLocale::toDoubleC(pg.attribute("TXTOUT"), 1.0)) * 10); vg.charStyle().setUnderlineOffset(qRound(ScCLocale::toDoubleC(pg.attribute("TXTULP"), -0.1)) * 10); vg.charStyle().setUnderlineWidth(qRound(ScCLocale::toDoubleC(pg.attribute("TXTULW"), -0.1)) * 10); vg.charStyle().setStrikethruOffset(qRound(ScCLocale::toDoubleC(pg.attribute("TXTSTP"), -0.1)) * 10); vg.charStyle().setStrikethruWidth(qRound(ScCLocale::toDoubleC(pg.attribute("TXTSTW"), -0.1)) * 10); vg.charStyle().setScaleH(qRound(ScCLocale::toDoubleC(pg.attribute("SCALEH"), 100.0)) * 10); vg.charStyle().setScaleV(qRound(ScCLocale::toDoubleC(pg.attribute("SCALEV"), 100.0)) * 10); vg.charStyle().setBaselineOffset(qRound(ScCLocale::toDoubleC(pg.attribute("BASEO"), 0.0)) * 10); vg.charStyle().setTracking(qRound(ScCLocale::toDoubleC(pg.attribute("KERN"), 0.0)) * 10); if ((pg.hasAttribute("NUMTAB")) && (pg.attribute("NUMTAB", "0").toInt() != 0)) { QList<ParagraphStyle::TabRecord> tbs; ParagraphStyle::TabRecord tb; QString tmp = pg.attribute("TABS"); QTextStream tgv(&tmp, QIODevice::ReadOnly); QString xf, xf2; for (int cxv = 0; cxv < pg.attribute("NUMTAB", "0").toInt(); cxv += 2) { tgv >> xf; tgv >> xf2; tb.tabPosition = ScCLocale::toDoubleC(xf2); tb.tabType = static_cast<int>(ScCLocale::toDoubleC(xf)); tb.tabFillChar = QChar(); tbs.append(tb); } vg.setTabValues(tbs); tmp = ""; }
void begin (const Xml_string& /*tagname*/, Xml_attr attr) { ParagraphStyle* pstyle = this->dig->top<ParagraphStyle>(); ParagraphStyle::TabRecord tb; tb.tabPosition = parseDouble(attr["pos"]); tb.tabFillChar = QChar(parseInt(attr["fillChar"])); tb.tabType = parseInt(attr["type"]); QList<ParagraphStyle::TabRecord> tabs = pstyle->tabValues(); tabs.append(tb); pstyle->setTabValues(tabs); }
void Hruler::mouseReleaseEvent(QMouseEvent *m) { if (m_doc->isLoading()) { Mpressed = false; return; } if (textEditMode && currItem) { if ((m->y() < height()) && (m->y() > 0)) { bool mustApplyStyle = false; ParagraphStyle paraStyle; double ColWidth = (textWidth() - ColGap * (Cols - 1)) / Cols; switch (RulerCode) { case rc_leftFrameDist: m_doc->m_Selection->itemAt(0)->setTextToFrameDistLeft(Extra); emit DocChanged(false); break; case rc_rightFrameDist: m_doc->m_Selection->itemAt(0)->setTextToFrameDistRight(RExtra); emit DocChanged(false); break; case rc_indentFirst: paraStyle.setFirstIndent(First); mustApplyStyle = true; emit DocChanged(false); break; case rc_leftMargin: paraStyle.setLeftMargin(Indent); paraStyle.setFirstIndent(First); mustApplyStyle = true; emit DocChanged(false); break; case rc_rightMargin: paraStyle.setRightMargin(ColWidth - RMargin); mustApplyStyle = true; emit DocChanged(false); break; case rc_tab: if (m->button() == Qt::RightButton) { TabValues[ActTab].tabType += 1; if (TabValues[ActTab].tabType > 4) TabValues[ActTab].tabType = 0; } paraStyle.setTabValues(TabValues); mustApplyStyle = true; emit DocChanged(false); break; default: break; } if (mustApplyStyle) { Selection tempSelection(this, false); tempSelection.addItem(currItem); m_doc->itemSelection_ApplyParagraphStyle(paraStyle, &tempSelection); } else { currItem->update(); } } else { if (RulerCode == rc_tab) { TabValues.removeAt(ActTab); ActTab = 0; ParagraphStyle paraStyle; paraStyle.setTabValues(TabValues); Selection tempSelection(this, false); tempSelection.addItem(currItem); m_doc->itemSelection_ApplyParagraphStyle(paraStyle, &tempSelection); emit DocChanged(false); } } RulerCode = rc_none; m_view->DrawNew(); m_doc->m_Selection->itemAt(0)->emitAllToGUI(); } else { if (Mpressed) { rulerGesture->mouseReleaseEvent(m); Mpressed = false; } } Mpressed = false; qApp->restoreOverrideCursor(); }