/trunk/Scribus/scribus/pdflib_core.cpp |
---|
3418,6 → 3418,51 |
else |
PutDoc("/BBox [ "+FToStr(-bleedLeft)+" "+FToStr(-Options.bleeds.Bottom)+" "+FToStr(maxBoxX)+" "+FToStr(maxBoxY)+" ]\n"); |
PutDoc("/Group "+QString::number(Gobj)+" 0 R\n"); |
PutDoc("/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\n"); |
if ((Seite.ImgObjects.count() != 0) || (Seite.XObjects.count() != 0)) |
{ |
PutDoc("/XObject <<\n"); |
QMap<QString,int>::Iterator it; |
for (it = Seite.ImgObjects.begin(); it != Seite.ImgObjects.end(); ++it) |
PutDoc("/"+it.key()+" "+QString::number(it.value())+" 0 R\n"); |
QMap<QString,int>::Iterator iti; |
for (iti = Seite.XObjects.begin(); iti != Seite.XObjects.end(); ++iti) |
PutDoc("/"+iti.key()+" "+QString::number(iti.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
if (Seite.FObjects.count() != 0) |
{ |
PutDoc("/Font << \n"); |
QMap<QString,int>::Iterator it2; |
for (it2 = Seite.FObjects.begin(); it2 != Seite.FObjects.end(); ++it2) |
PutDoc("/"+it2.key()+" "+QString::number(it2.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
if (Shadings.count() != 0) |
{ |
PutDoc("/Shading << \n"); |
QMap<QString,int>::Iterator it3; |
for (it3 = Shadings.begin(); it3 != Shadings.end(); ++it3) |
PutDoc("/"+it3.key()+" "+QString::number(it3.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
if (Patterns.count() != 0) |
{ |
PutDoc("/Pattern << \n"); |
QMap<QString,int>::Iterator it3p; |
for (it3p = Patterns.begin(); it3p != Patterns.end(); ++it3p) |
PutDoc("/"+it3p.key()+" "+QString::number(it3p.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
if (Transpar.count() != 0) |
{ |
PutDoc("/ExtGState << \n"); |
QMap<QString,int>::Iterator it3t; |
for (it3t = Transpar.begin(); it3t != Transpar.end(); ++it3t) |
PutDoc("/"+it3t.key()+" "+QString::number(it3t.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
PutDoc(">>\n"); |
if (Options.Compress) |
data = CompressStr(&data); |
PutDoc("/Length "+QString::number(data.length()+1)); |
6021,7 → 6066,7 |
Transpar[GXName] = writeGState("/SMask << /S /Luminosity /G "+QString::number(formObject)+" 0 R >>\n/AIS false\n/BM /" + blendMode(currItem->fillBlendmode()) + "\n"); |
tmp = "/"+GXName+" gs\n"; |
} |
else if ((currItem->GrMask == 3) || (currItem->GrMask == 6)) |
else if ((currItem->GrMask == 3) || (currItem->GrMask == 6) || (currItem->GrMask == 7) || (currItem->GrMask == 8)) |
{ |
QString tmpOut = ""; |
PDF_PatternFillStroke(tmpOut, currItem, 2); |
6058,19 → 6103,24 |
PutDoc("/"+it3p.key()+" "+QString::number(it3p.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
if ((Seite.ImgObjects.count() != 0) || (Seite.XObjects.count() != 0)) |
{ |
PutDoc("/XObject <<\n"); |
QMap<QString,int>::Iterator it; |
for (it = Seite.ImgObjects.begin(); it != Seite.ImgObjects.end(); ++it) |
PutDoc("/"+it.key()+" "+QString::number(it.value())+" 0 R\n"); |
QMap<QString,int>::Iterator iti; |
for (iti = Seite.XObjects.begin(); iti != Seite.XObjects.end(); ++iti) |
PutDoc("/"+iti.key()+" "+QString::number(iti.value())+" 0 R\n"); |
PutDoc(">>\n"); |
} |
PutDoc(">>\n"); |
QString stre = "q\n"; |
if (currItem->isGroup()) |
if ((currItem->isGroup()) || (currItem->itemType() == PageItem::Symbol)) |
{ |
QTransform mpa; |
mpa.translate(currItem->xPos() - ActPageP->xOffset(), ActPageP->height() - (currItem->yPos() - ActPageP->yOffset())); |
mpa.translate(0, currItem->height() * scaleY); |
mpa.rotate(-currItem->rotation()); |
stre += FToStr(mpa.m11())+" "+FToStr(mpa.m12())+" "+FToStr(mpa.m21())+" "+FToStr(mpa.m22())+" "+FToStr(mpa.dx())+" "+FToStr(mpa.dy())+" cm\n"; |
} |
else if (currItem->itemType() == PageItem::Symbol) |
{ |
QTransform mpa; |
mpa.translate(0, currItem->height() * scaleY); |
mpa.scale(scaleX, scaleY); |
stre += FToStr(mpa.m11())+" "+FToStr(mpa.m12())+" "+FToStr(mpa.m21())+" "+FToStr(mpa.m22())+" "+FToStr(mpa.dx())+" "+FToStr(mpa.dy())+" cm\n"; |
} |
6090,8 → 6140,12 |
ResCount++; |
if (currItem->GrMask == 6) |
Transpar[GXName] = writeGState("/SMask << /S /Luminosity /G "+QString::number(formObject)+" 0 R >>\n/BM /" + blendMode(currItem->fillBlendmode()) + "\n"); |
else |
else if (currItem->GrMask == 7) |
Transpar[GXName] = writeGState("/SMask << /S /Luminosity /G "+QString::number(formObject)+" 0 R /BC [ 1 1 1 ] /TR << /FunctionType 2 /Domain [ 0 1 ] /Range [ 0 1 ] /C0 [ 1 ] /C1 [ 0 ] /N 1 >> >>\n/BM /" + blendMode(currItem->fillBlendmode()) + "\n/AIS true\n"); |
else if (currItem->GrMask == 3) |
Transpar[GXName] = writeGState("/SMask << /S /Alpha /G "+QString::number(formObject)+" 0 R >>\n/BM /" + blendMode(currItem->fillBlendmode()) + "\n"); |
else if (currItem->GrMask == 8) |
Transpar[GXName] = writeGState("/SMask << /S /Alpha /G "+QString::number(formObject)+" 0 R /BC [ 1 1 1 ] /TR << /FunctionType 2 /Domain [ 0 1 ] /Range [ 0 1 ] /C0 [ 1 ] /C1 [ 0 ] /N 1 >> >>\n/BM /" + blendMode(currItem->fillBlendmode()) + "\n"); |
tmp = "/"+GXName+" gs\n"; |
} |
else |
6275,13 → 6329,8 |
} |
else if (kind == 2) |
{ |
if (currItem->isGroup()) |
if ((currItem->isGroup()) || (currItem->itemType() == PageItem::Symbol)) |
{ |
mpa.translate(currItem->xPos() - ActPageP->xOffset(), ActPageP->height() - (currItem->yPos() - ActPageP->yOffset())); |
mpa.rotate(-currItem->rotation()); |
} |
else if (currItem->itemType() == PageItem::Symbol) |
{ |
mpa.translate(0, currItem->height() * scaleY); |
mpa.scale(scaleX, scaleY); |
} |
/trunk/Scribus/scribus/pageitem_symbol.cpp |
---|
84,7 → 84,7 |
else |
p->setGradientMask(VGradient::radial, FPoint(GrMaskStartX, GrMaskStartY), FPoint(GrMaskEndX, GrMaskEndY), FPoint(GrMaskFocalX, GrMaskFocalY), GrMaskScale, GrMaskSkew); |
} |
else if ((maskType() == 3) || (maskType() == 6)) |
else if ((maskType() == 3) || (maskType() == 6) || (maskType() == 7) || (maskType() == 8)) |
{ |
if ((patternMask().isEmpty()) || (!m_Doc->docPatterns.contains(patternMask()))) |
p->setMaskMode(0); |
95,8 → 95,12 |
p->setPatternMask(&m_Doc->docPatterns[patternMask()], patternMaskScaleX * scw, patternMaskScaleY * sch, patternMaskOffsetX, patternMaskOffsetY, patternMaskRotation, patternMaskSkewX, patternMaskSkewY, patternMaskMirrorX, patternMaskMirrorY); |
if (maskType() == 3) |
p->setMaskMode(2); |
else if (maskType() == 6) |
p->setMaskMode(4); |
else if (maskType() == 7) |
p->setMaskMode(5); |
else |
p->setMaskMode(4); |
p->setMaskMode(6); |
} |
} |
else |
/trunk/Scribus/scribus/scribusdoc.cpp |
---|
6559,7 → 6559,7 |
{ |
currItem = m_Selection->itemAt(a); |
currItem->GrMask = typ; |
if ((typ > 0) && (typ < 7)) |
if ((typ > 0) && (typ < 9)) |
currItem->updateGradientVectors(); |
currItem->update(); |
} |
/trunk/Scribus/scribus/pageitem_group.cpp |
---|
133,7 → 133,7 |
else |
p->setGradientMask(VGradient::radial, FPoint(GrMaskStartX, GrMaskStartY), FPoint(GrMaskEndX, GrMaskEndY), FPoint(GrMaskFocalX, GrMaskFocalY), GrMaskScale, GrMaskSkew); |
} |
else if ((maskType() == 3) || (maskType() == 6)) |
else if ((maskType() == 3) || (maskType() == 6) || (maskType() == 7) || (maskType() == 8)) |
{ |
if ((patternMask().isEmpty()) || (!m_Doc->docPatterns.contains(patternMask()))) |
p->setMaskMode(0); |
144,8 → 144,12 |
p->setPatternMask(&m_Doc->docPatterns[patternMask()], patternMaskScaleX * scw, patternMaskScaleY * sch, patternMaskOffsetX, patternMaskOffsetY, patternMaskRotation, patternMaskSkewX, patternMaskSkewY, patternMaskMirrorX, patternMaskMirrorY); |
if (maskType() == 3) |
p->setMaskMode(2); |
else if (maskType() == 6) |
p->setMaskMode(4); |
else if (maskType() == 7) |
p->setMaskMode(5); |
else |
p->setMaskMode(4); |
p->setMaskMode(6); |
} |
} |
else |
/trunk/Scribus/scribus/scpainter.cpp |
---|
13,6 → 13,7 |
#include <cairo.h> |
#include <math.h> |
#include <QDebug> |
ScPainter::ScPainter( QImage *target, unsigned int w, unsigned int h, double transparency, int blendmode ) |
{ |
132,7 → 133,7 |
cairo_pattern_t *patM = getMaskPattern(); |
setRasterOp(m_blendMode); |
cairo_mask(m_cr, patM); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy(patM); |
} |
370,7 → 371,7 |
{ |
cairo_pattern_t *patM = getMaskPattern(); |
cairo_mask(m_cr, patM); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy(patM); |
} |
383,7 → 384,7 |
{ |
cairo_pattern_t *patM = getMaskPattern(); |
cairo_mask(m_cr, patM); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy(patM); |
} |
858,9 → 859,11 |
} |
else |
{ |
if (maskMode == 4) |
if ((maskMode == 4) || (maskMode == 5)) |
{ |
imageQ = m_maskPattern->pattern.copy(); |
if (maskMode == 5) |
imageQ.invertPixels(); |
int h = imageQ.height(); |
int w = imageQ.width(); |
int k; |
883,7 → 886,12 |
imageMask = cairo_image_surface_create_for_data ((uchar*)imageQ.bits(), CAIRO_FORMAT_ARGB32, w, h, w*4); |
} |
else |
imageMask = cairo_image_surface_create_for_data ((uchar*)m_maskPattern->getPattern()->bits(), CAIRO_FORMAT_ARGB32, m_maskPattern->getPattern()->width(), m_maskPattern->getPattern()->height(), m_maskPattern->getPattern()->width()*4); |
{ |
imageQ = m_maskPattern->pattern.copy(); |
if (maskMode == 6) |
imageQ.invertPixels(QImage::InvertRgba); |
imageMask = cairo_image_surface_create_for_data ((uchar*)imageQ.bits(), CAIRO_FORMAT_ARGB32, m_maskPattern->getPattern()->width(), m_maskPattern->getPattern()->height(), m_maskPattern->getPattern()->width()*4); |
} |
pat = cairo_pattern_create_for_surface(imageMask); |
cairo_pattern_set_extend(pat, CAIRO_EXTEND_REPEAT); |
cairo_pattern_set_filter(pat, CAIRO_FILTER_GOOD); |
929,7 → 937,7 |
#endif |
cairo_clip_preserve(m_cr); |
cairo_mask(m_cr, pat); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy(pat); |
} |
1486,7 → 1494,7 |
setRasterOp(m_blendModeFill); |
#endif |
cairo_mask(m_cr, patM); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy (patM); |
} |
1544,7 → 1552,7 |
setRasterOp(m_blendModeFill); |
#endif |
cairo_mask(m_cr, patM); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy (patM); |
} |
1734,7 → 1742,7 |
{ |
cairo_pattern_t *patM = getMaskPattern(); |
cairo_mask(m_cr, patM); |
if ((maskMode == 2) || (maskMode == 4)) |
if ((maskMode == 2) || (maskMode == 4) || (maskMode == 5) || (maskMode == 6)) |
cairo_surface_destroy(imageMask); |
cairo_pattern_destroy(patM); |
} |
/trunk/Scribus/scribus/pageitem.cpp |
---|
1543,7 → 1543,7 |
else |
p->setGradientMask(VGradient::radial, FPoint(GrMaskStartX, GrMaskStartY), FPoint(GrMaskEndX, GrMaskEndY), FPoint(GrMaskFocalX, GrMaskFocalY), GrMaskScale, GrMaskSkew); |
} |
else if ((GrMask == 3) || (GrMask == 6)) |
else if ((GrMask == 3) || (GrMask == 6) || (GrMask == 7) || (GrMask == 8)) |
{ |
if ((patternMaskVal.isEmpty()) || (!m_Doc->docPatterns.contains(patternMaskVal))) |
p->setMaskMode(0); |
1552,8 → 1552,12 |
p->setPatternMask(&m_Doc->docPatterns[patternMaskVal], patternMaskScaleX, patternMaskScaleY, patternMaskOffsetX, patternMaskOffsetY, patternMaskRotation, patternMaskSkewX, patternMaskSkewY, patternMaskMirrorX, patternMaskMirrorY); |
if (GrMask == 3) |
p->setMaskMode(2); |
else if (GrMask == 6) |
p->setMaskMode(4); |
else if (GrMask == 7) |
p->setMaskMode(5); |
else |
p->setMaskMode(4); |
p->setMaskMode(6); |
} |
} |
else |
2033,6 → 2037,8 |
QImage PageItem::DrawObj_toImage(QList<PageItem*> &emG, double scaling) |
{ |
bool savedFlag = m_Doc->guidesPrefs().framesShown; |
m_Doc->guidesPrefs().framesShown = false; |
QImage retImg = QImage(qRound(gWidth * scaling), qRound(gHeight * scaling), QImage::Format_ARGB32_Premultiplied); |
retImg.fill( qRgba(0, 0, 0, 0) ); |
ScPainter *painter = new ScPainter(&retImg, retImg.width(), retImg.height(), 1, 0); |
2080,6 → 2086,7 |
} |
painter->end(); |
delete painter; |
m_Doc->guidesPrefs().framesShown = savedFlag; |
return retImg; |
} |
/trunk/Scribus/scribus/ui/about.cpp |
---|
112,7 → 112,7 |
buildID = new QLabel( tab ); |
buildID->setAlignment(Qt::AlignCenter); |
buildID->setTextInteractionFlags(Qt::TextSelectableByMouse); |
QString BUILD_DAY = "07"; |
QString BUILD_DAY = "30"; |
QString BUILD_MONTH = CommonStrings::july; |
QString BUILD_YEAR = "2011"; |
QString BUILD_TIME = ""; |
/trunk/Scribus/scribus/ui/transparencypalette.cpp |
---|
59,6 → 59,7 |
connect(editPatternProps, SIGNAL(clicked()), this, SLOT(changePatternProps())); |
connect(transpCalcGradient, SIGNAL(clicked()), this, SLOT(switchGradientMode())); |
connect(transpCalcPattern, SIGNAL(clicked()), this, SLOT(switchPatternMode())); |
connect(usePatternInverted, SIGNAL(clicked()), this, SLOT(switchPatternMode())); |
} |
void Tpalette::setCurrentItem(PageItem* item) |
139,6 → 140,7 |
disconnect(gradientType, SIGNAL(activated(int)), this, SLOT(slotGradType(int))); |
disconnect(transpCalcGradient, SIGNAL(clicked()), this, SLOT(switchGradientMode())); |
disconnect(transpCalcPattern, SIGNAL(clicked()), this, SLOT(switchPatternMode())); |
disconnect(usePatternInverted, SIGNAL(clicked()), this, SLOT(switchPatternMode())); |
gradEdit->setGradient(currentItem->mask_gradient); |
if (!currentItem->gradientMask().isEmpty()) |
{ |
162,10 → 164,13 |
tabWidget->setTabEnabled(2, true); |
transpCalcGradient->setChecked(false); |
transpCalcPattern->setChecked(false); |
usePatternInverted->setChecked(false); |
if ((currentItem->GrMask == 4) || (currentItem->GrMask == 5)) |
transpCalcGradient->setChecked(true); |
if (currentItem->GrMask == 6) |
if ((currentItem->GrMask == 6) || (currentItem->GrMask == 7)) |
transpCalcPattern->setChecked(true); |
if ((currentItem->GrMask == 7) || (currentItem->GrMask == 8)) |
usePatternInverted->setChecked(true); |
if ((currentItem->GrMask == 1) || (currentItem->GrMask == 4)) |
gradientType->setCurrentIndex(0); |
else if ((currentItem->GrMask == 2) || (currentItem->GrMask == 5)) |
183,6 → 188,7 |
connect(gradientType, SIGNAL(activated(int)), this, SLOT(slotGradType(int))); |
connect(transpCalcGradient, SIGNAL(clicked()), this, SLOT(switchGradientMode())); |
connect(transpCalcPattern, SIGNAL(clicked()), this, SLOT(switchPatternMode())); |
connect(usePatternInverted, SIGNAL(clicked()), this, SLOT(switchPatternMode())); |
} |
void Tpalette::updateCList() |
269,9 → 275,19 |
else if (number == 2) |
{ |
if (transpCalcPattern->isChecked()) |
emit NewGradient(6); |
{ |
if (usePatternInverted->isChecked()) |
emit NewGradient(7); |
else |
emit NewGradient(6); |
} |
else |
emit NewGradient(3); |
{ |
if (usePatternInverted->isChecked()) |
emit NewGradient(8); |
else |
emit NewGradient(3); |
} |
} |
else |
emit NewGradient(0); |
346,10 → 362,19 |
void Tpalette::switchPatternMode() |
{ |
if (transpCalcPattern->isChecked()) |
emit NewGradient(6); |
{ |
if (usePatternInverted->isChecked()) |
emit NewGradient(7); |
else |
emit NewGradient(6); |
} |
else |
emit NewGradient(3); |
{ |
if (usePatternInverted->isChecked()) |
emit NewGradient(8); |
else |
emit NewGradient(3); |
} |
} |
void Tpalette::editGradientVector() |
/trunk/Scribus/scribus/ui/transparencypalette.ui |
---|
7,7 → 7,7 |
<x>0</x> |
<y>0</y> |
<width>236</width> |
<height>363</height> |
<height>373</height> |
</rect> |
</property> |
<property name="windowTitle"> |
362,12 → 362,6 |
<string>Pattern</string> |
</attribute> |
<layout class="QVBoxLayout" name="verticalLayout"> |
<property name="spacing"> |
<number>2</number> |
</property> |
<property name="margin"> |
<number>5</number> |
</property> |
<item> |
<widget class="QListWidget" name="patternBox"> |
<property name="movement"> |
424,6 → 418,13 |
</property> |
</widget> |
</item> |
<item> |
<widget class="QCheckBox" name="usePatternInverted"> |
<property name="text"> |
<string>Use inverted Pattern</string> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
</widget> |
/trunk/Scribus/scribus/pageitem_imageframe.cpp |
---|
181,7 → 181,7 |
else |
p->setGradientMask(VGradient::radial, FPoint(GrMaskStartX * mscalex, GrMaskStartY * mscaley), FPoint(GrMaskEndX * mscalex, GrMaskEndY * mscaley), FPoint(GrMaskFocalX * mscalex, GrMaskFocalY * mscaley), GrMaskScale, GrMaskSkew); |
} |
else if ((GrMask == 3) || (GrMask == 6)) |
else if ((GrMask == 3) || (GrMask == 6) || (GrMask == 7) || (GrMask == 8)) |
{ |
if ((patternMaskVal.isEmpty()) || (!m_Doc->docPatterns.contains(patternMaskVal))) |
p->setMaskMode(0); |
190,8 → 190,12 |
p->setPatternMask(&m_Doc->docPatterns[patternMaskVal], patternMaskScaleX * mscalex, patternMaskScaleY * mscaley, patternMaskOffsetX, patternMaskOffsetY, patternMaskRotation, patternMaskSkewX, patternMaskSkewY, patternMaskMirrorX, patternMaskMirrorY); |
if (GrMask == 3) |
p->setMaskMode(2); |
else if (GrMask == 6) |
p->setMaskMode(4); |
else if (GrMask == 7) |
p->setMaskMode(5); |
else |
p->setMaskMode(4); |
p->setMaskMode(6); |
} |
} |
else |
/trunk/Scribus/scribus/plugins/import/ai/importaiplugin.cpp |
---|
19,6 → 19,7 |
#include "undomanager.h" |
#include "util_formats.h" |
#include <QApplication> |
#include <QMessageBox> |
int importai_getPluginAPIVersion() |
164,6 → 165,7 |
fT.close(); |
if (tempBuf.startsWith("%PDF")) |
{ |
qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); |
QMessageBox msgBox(ScCore->primaryMainWindow()); |
msgBox.setText( tr("This file contains 2 versions of the data.")); |
msgBox.setInformativeText( tr("Choose which one should be imported")); |
181,6 → 183,7 |
QMessageBox::warning(ScCore->primaryMainWindow(), CommonStrings::trWarning, tr("The PDF Import plugin could not be found"), 1, 0, 0); |
return false; |
} |
qApp->changeOverrideCursor(QCursor(Qt::WaitCursor)); |
bool success = fmt->loadFile(fileName, flags); |
if (activeTransaction) |
{ |
194,6 → 197,7 |
QMessageBox::warning(ScCore->primaryMainWindow(), CommonStrings::trWarning, tr("The file could not be imported"), 1, 0, 0); |
return success; |
} |
qApp->changeOverrideCursor(QCursor(Qt::WaitCursor)); |
} |
} |
} |
/trunk/Scribus/scribus/plugins/import/pdf/slaoutput.cpp |
---|
13,11 → 13,7 |
m_doc = doc; |
m_Elements = Elements; |
m_groupStack.clear(); |
groupEntry gElements; |
gElements.forSoftMask = gFalse; |
gElements.alpha = gFalse; |
gElements.maskName = ""; |
m_groupStack.push(gElements); |
pushGroup(); |
m_clipStack.clear(); |
m_currentMask = ""; |
m_importedColors = importedColors; |
139,11 → 135,7 |
void SlaOutputDev::beginTransparencyGroup(GfxState *state, double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool /*isolated*/, GBool /*knockout*/, GBool forSoftMask) |
{ |
// qDebug() << "Start Group"; |
groupEntry gElements; |
gElements.forSoftMask = forSoftMask; |
gElements.alpha = gFalse; |
gElements.maskName = ""; |
m_groupStack.push(gElements); |
pushGroup("", forSoftMask); |
} |
void SlaOutputDev::endTransparencyGroup(GfxState *state) |
190,16 → 182,7 |
} |
} |
if (m_groupStack.count() != 0) |
{ |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
} |
applyMask(ite); |
} |
if (m_groupStack.count() != 0) |
{ |
212,10 → 195,21 |
} |
} |
void SlaOutputDev::setSoftMask(GfxState * /*state*/, double * /*bbox*/, GBool alpha, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) |
void SlaOutputDev::setSoftMask(GfxState * /*state*/, double * /*bbox*/, GBool alpha, Function *transferFunc, GfxColor * /*backdropColor*/) |
{ |
if (m_groupStack.count() != 0) |
{ |
double lum = 0; |
double lum2 = 0; |
if (transferFunc) |
transferFunc->transform(&lum, &lum2); |
else |
lum2 = lum; |
if (lum == lum2) |
m_groupStack.top().inverted = false; |
else |
m_groupStack.top().inverted = true; |
// qDebug() << "Inverted Softmask" << m_groupStack.top().inverted; |
m_groupStack.top().maskName = m_currentMask; |
m_groupStack.top().alpha = alpha; |
} |
258,14 → 252,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
clipEntry clp; |
clp.ClipCoords = out.copy(); |
273,11 → 260,7 |
clp.grStackDepth = grStackDepth; |
m_clipStack.push(clp); |
m_doc->GroupCounter++; |
groupEntry gElements; |
gElements.forSoftMask = gFalse; |
gElements.alpha = gFalse; |
gElements.maskName = ""; |
m_groupStack.push(gElements); |
pushGroup(); |
} |
void SlaOutputDev::eoClip(GfxState *state) |
309,14 → 292,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
clipEntry clp; |
clp.ClipCoords = out.copy(); |
324,11 → 300,7 |
clp.grStackDepth = grStackDepth; |
m_clipStack.push(clp); |
m_doc->GroupCounter++; |
groupEntry gElements; |
gElements.forSoftMask = gFalse; |
gElements.alpha = gFalse; |
gElements.maskName = ""; |
m_groupStack.push(gElements); |
pushGroup(); |
} |
void SlaOutputDev::stroke(GfxState *state) |
417,9 → 389,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->setLineEnd(PLineEnd); |
ite->setLineJoin(PLineJoin); |
ite->setWidthHeight(wh.x(),wh.y()); |
429,14 → 399,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
} |
} |
471,9 → 434,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(true); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->setLineEnd(PLineEnd); |
ite->setLineJoin(PLineJoin); |
ite->setWidthHeight(wh.x(),wh.y()); |
483,14 → 444,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
} |
} |
576,9 → 530,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->setLineEnd(PLineEnd); |
ite->setLineJoin(PLineJoin); |
ite->setTextFlowMode(PageItem::TextFlowDisabled); |
590,14 → 542,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
return gTrue; |
} |
691,9 → 636,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->setLineEnd(PLineEnd); |
ite->setLineJoin(PLineJoin); |
ite->setTextFlowMode(PageItem::TextFlowDisabled); |
705,14 → 648,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
return gTrue; |
} |
747,9 → 683,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->setLineEnd(PLineEnd); |
ite->setLineJoin(PLineJoin); |
ite->setTextFlowMode(PageItem::TextFlowDisabled); |
758,14 → 692,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
// qDebug() << "Mesh of" << shading->getNPatches() << "Patches"; |
for (int i = 0; i < shading->getNPatches(); i++) |
889,6 → 816,7 |
groupEntry gElements; |
gElements.forSoftMask = gFalse; |
gElements.alpha = gFalse; |
gElements.inverted = false; |
gElements.maskName = ""; |
gElements.Items.clear(); |
m_groupStack.push(gElements); |
906,11 → 834,6 |
m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]); |
QTransform mm = QTransform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5]); |
QTransform mmx = mm * m_ctm; |
// qDebug() << "Pattern Fill"; |
// qDebug() << "mat" << mat[0] << mat[1] << mat[2] << mat[3] << mat[4] << mat[5]; |
// qDebug() << "pmat" << pmat[0] << pmat[1] << pmat[2] << pmat[3] << pmat[4] << pmat[5]; |
// qDebug() << "ctm" << ctm[0] << ctm[1] << ctm[2] << ctm[3] << ctm[4] << ctm[5]; |
// qDebug() << "cumulated ctm" << mmx; |
gfx = new Gfx(xref, this, resDict, catalog, &box, NULL); |
gfx->display(str); |
gElements = m_groupStack.pop(); |
955,8 → 878,6 |
state->getClipBBox(&xmin, &ymin, &xmax, &ymax); |
QRectF crect = QRectF(QPointF(xmin, ymin), QPointF(xmax, ymax)); |
crect = crect.normalized(); |
// qDebug() << "Crect" << crect; |
// qDebug() << "Xoffs" << crect.x() - (pmat[4] / fabs(pmat[0])) << "Yoffs" << crect.y() - (m_doc->currentPage()->height() - (pmat[5] / fabs(pmat[3]))); |
QString output = QString("M %1 %2").arg(0.0).arg(0.0); |
output += QString("L %1 %2").arg(crect.width()).arg(0.0); |
output += QString("L %1 %2").arg(crect.width()).arg(crect.height()); |
973,9 → 894,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->setLineEnd(PLineEnd); |
ite->setLineJoin(PLineJoin); |
ite->setTextFlowMode(PageItem::TextFlowDisabled); |
982,20 → 901,12 |
ite->GrType = 8; |
ite->setPattern(id); |
ite->setPatternTransform(fabs(pmat[0]) * 100, fabs(pmat[3]) * 100, mmx.dx() - ctm[4], mmx.dy() - ctm[5], 0, -1 * pmat[1], pmat[2]); |
// ite->setPatternTransform(fabs(pmat[0]) * 100, fabs(pmat[3]) * 100, pmat[4], -1 * pmat[5], 0, -1 * pmat[1], pmat[2]); |
m_doc->AdjustItemSize(ite); |
m_Elements->append(ite); |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
delete gfx; |
return gTrue; |
1074,7 → 985,7 |
yCoor = yCoor + ctm[5] - (fabs(sy) * height); |
else |
yCoor = yCoor + ctm[5]; |
int z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, xCoor , yCoor, fabs(sx) * width, fabs(sy) * height, 0, CurrColorFill, CurrColorStroke, true); |
int z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, xCoor , yCoor, fabs(sx) * width, fabs(sy) * height, 0, CommonStrings::None, CommonStrings::None, true); |
PageItem* ite = m_doc->Items->at(z); |
ite->SetRectFrame(); |
m_doc->setRedrawBounding(ite); |
1084,9 → 995,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->tempImageFile = new QTemporaryFile(QDir::tempPath() + "/scribus_temp_pdf_XXXXXX.png"); |
ite->tempImageFile->open(); |
QString fileName = getLongPathName(ite->tempImageFile->fileName()); |
1104,14 → 1013,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
delete imgStr; |
delete[] buffer; |
1182,7 → 1084,7 |
yCoor = yCoor + ctm[5] - (fabs(sy) * height); |
else |
yCoor = yCoor + ctm[5]; |
int z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, xCoor , yCoor, fabs(sx) * width, fabs(sy) * height, 0, CurrColorFill, CurrColorStroke, true); |
int z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, xCoor , yCoor, fabs(sx) * width, fabs(sy) * height, 0, CommonStrings::None, CommonStrings::None, true); |
PageItem* ite = m_doc->Items->at(z); |
ite->SetRectFrame(); |
m_doc->setRedrawBounding(ite); |
1192,9 → 1094,7 |
ite->setLineShade(100); |
ite->setFillEvenOdd(false); |
ite->setFillTransparency(1.0 - state->getFillOpacity()); |
ite->setLineTransparency(1.0 - state->getStrokeOpacity()); |
ite->setFillBlendmode(getBlendMode(state)); |
ite->setLineBlendmode(getBlendMode(state)); |
ite->tempImageFile = new QTemporaryFile(QDir::tempPath() + "/scribus_temp_pdf_XXXXXX.png"); |
ite->tempImageFile->open(); |
QString fileName = getLongPathName(ite->tempImageFile->fileName()); |
1212,14 → 1112,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
delete imgStr; |
delete[] buffer; |
1581,14 → 1474,7 |
if (m_groupStack.count() != 0) |
{ |
m_groupStack.top().Items.append(ite); |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
applyMask(ite); |
} |
delete fontPath; |
} |
1599,11 → 1485,7 |
void SlaOutputDev::beginTextObject(GfxState *state) |
{ |
// qDebug() << "Begin Text Object"; |
groupEntry gElements; |
gElements.forSoftMask = gFalse; |
gElements.alpha = gFalse; |
gElements.maskName = ""; |
m_groupStack.push(gElements); |
pushGroup(); |
} |
void SlaOutputDev::endTextObject(GfxState *state) |
1628,16 → 1510,7 |
m_Elements->append(tmpSel->itemAt(as)); |
} |
if (m_groupStack.count() != 0) |
{ |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
ite->setMaskType(3); |
else |
ite->setMaskType(6); |
} |
} |
applyMask(ite); |
} |
if (m_groupStack.count() != 0) |
{ |
1851,3 → 1724,37 |
return mode; |
} |
void SlaOutputDev::applyMask(PageItem *ite) |
{ |
if (m_groupStack.count() != 0) |
{ |
if (!m_groupStack.top().maskName.isEmpty()) |
{ |
ite->setPatternMask(m_groupStack.top().maskName); |
if (m_groupStack.top().alpha) |
{ |
if (m_groupStack.top().inverted) |
ite->setMaskType(8); |
else |
ite->setMaskType(3); |
} |
else |
{ |
if (m_groupStack.top().inverted) |
ite->setMaskType(7); |
else |
ite->setMaskType(6); |
} |
} |
} |
} |
void SlaOutputDev::pushGroup(QString maskName, GBool forSoftMask, GBool alpha, bool inverted) |
{ |
groupEntry gElements; |
gElements.forSoftMask = forSoftMask; |
gElements.alpha = alpha; |
gElements.inverted = inverted; |
gElements.maskName = maskName; |
m_groupStack.push(gElements); |
} |
/trunk/Scribus/scribus/plugins/import/pdf/importpdfplugin.cpp |
---|
19,6 → 19,7 |
#include "undomanager.h" |
#include "util_formats.h" |
#include "util.h" |
#include <QApplication> |
#include <QMessageBox> |
207,7 → 208,9 |
} |
else |
{ |
qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); |
QMessageBox::warning(ScCore->primaryMainWindow(), CommonStrings::trWarning, tr("The Import plugin cannot handle Postscript files"), 1, 0, 0); |
qApp->changeOverrideCursor(QCursor(Qt::WaitCursor)); |
return false; |
} |
} |
/trunk/Scribus/scribus/plugins/import/pdf/importpdf.cpp |
---|
331,25 → 331,25 |
Object obj; |
GooString *s1; |
Dict *infoDict = info.getDict(); |
if (infoDict->lookup("Title", &obj )->isString()) |
if (infoDict->lookup((char*)"Title", &obj )->isString()) |
{ |
s1 = obj.getString(); |
m_Doc->documentInfo().setTitle(UnicodeParsedString(obj.getString())); |
obj.free(); |
} |
if (infoDict->lookup("Author", &obj )->isString()) |
if (infoDict->lookup((char*)"Author", &obj )->isString()) |
{ |
s1 = obj.getString(); |
m_Doc->documentInfo().setAuthor(UnicodeParsedString(obj.getString())); |
obj.free(); |
} |
if (infoDict->lookup("Subject", &obj )->isString()) |
if (infoDict->lookup((char*)"Subject", &obj )->isString()) |
{ |
s1 = obj.getString(); |
m_Doc->documentInfo().setSubject(UnicodeParsedString(obj.getString())); |
obj.free(); |
} |
if (infoDict->lookup("Keywords", &obj )->isString()) |
if (infoDict->lookup((char*)"Keywords", &obj )->isString()) |
{ |
s1 = obj.getString(); |
m_Doc->documentInfo().setKeywords(UnicodeParsedString(obj.getString())); |
/trunk/Scribus/scribus/plugins/import/pdf/slaoutput.h |
---|
162,6 → 162,8 |
QString getColor(GfxColorSpace *color_space, GfxColor *color); |
QString convertPath(GfxPath *path); |
int getBlendMode(GfxState *state); |
void applyMask(PageItem *ite); |
void pushGroup(QString maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false); |
bool pathIsClosed; |
bool firstLayer; |
QString CurrColorFill; |
184,6 → 186,7 |
GBool forSoftMask; |
GBool alpha; |
QString maskName; |
bool inverted; |
}; |
QStack<groupEntry> m_groupStack; |
QString m_currentMask; |