r16122 by fschmid - Partly fixed Bug #9599. selecting single items out of groups works now with the Outline Palette.
scribus-commit
scribus-commit at lists.scribus.net
Mon Dec 20 20:34:48 CET 2010
Author: fschmid
Date: Mon Dec 20 19:34:48 2010
New Revision: 16122
URL: http://scribus.info/websvn/listing.php?repname=Scribus&sc=1&rev=16122
Log:
Partly fixed Bug #9599. selecting single items out of groups works now with the Outline Palette.
Modified:
trunk/Scribus/scribus/canvas.cpp
trunk/Scribus/scribus/canvas.h
trunk/Scribus/scribus/canvasmode_normal.cpp
trunk/Scribus/scribus/documentchecker.cpp
trunk/Scribus/scribus/scribus.cpp
trunk/Scribus/scribus/scribus.h
trunk/Scribus/scribus/scribusdoc.cpp
trunk/Scribus/scribus/scribusdoc.h
trunk/Scribus/scribus/ui/bookmwin.cpp
trunk/Scribus/scribus/ui/bookmwin.h
trunk/Scribus/scribus/ui/checkDocument.cpp
trunk/Scribus/scribus/ui/checkDocument.h
trunk/Scribus/scribus/ui/outlinepalette.cpp
trunk/Scribus/scribus/ui/outlinepalette.h
trunk/Scribus/scribus/ui/propertiespalette.cpp
Modified: trunk/Scribus/scribus/canvas.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/canvas.cpp
==============================================================================
--- trunk/Scribus/scribus/canvas.cpp (original)
+++ trunk/Scribus/scribus/canvas.cpp Mon Dec 20 19:34:48 2010
@@ -468,8 +468,47 @@
currClip.closeSubpath();
if (currPath.intersects(mouseArea) || currClip.intersects(mouseArea))
{
+ if (currItem->isGroup() && allowInGroup)
+ {
+ PageItem* ret = itemInGroup(currItem, itemPos, mouseArea);
+ if (ret != NULL)
+ return ret;
+ }
return currItem;
}
+ }
+ --currNr;
+ }
+ return NULL;
+}
+
+PageItem* Canvas::itemInGroup(PageItem* group, QTransform itemPos, QRectF mouseArea) const
+{
+ int currNr = group->groupItemList.count() - 1;
+ while (currNr >= 0)
+ {
+ PageItem* embedded = group->groupItemList.at(currNr);
+ QPainterPath currPath(itemPos.map(QPointF(embedded->gXpos,embedded->gYpos)));
+ currPath.lineTo(itemPos.map(QPointF(embedded->width(), embedded->gYpos)));
+ currPath.lineTo(itemPos.map(QPointF(embedded->width(), embedded->height())));
+ currPath.lineTo(itemPos.map(QPointF(embedded->gXpos, embedded->height())));
+ currPath.closeSubpath();
+ QPainterPath currClip;
+ currClip.addPolygon(itemPos.map(QPolygonF(embedded->Clip)));
+ currClip.closeSubpath();
+ if (currPath.intersects(mouseArea) || currClip.intersects(mouseArea))
+ {
+ if (embedded->isGroup())
+ {
+ QTransform itemPosG = itemPos;
+ itemPosG.translate(embedded->gXpos,embedded->gYpos);
+ itemPosG.scale(group->width() / group->groupWidth, group->height() / group->groupHeight);
+ PageItem* ret = itemInGroup(embedded, itemPosG, mouseArea);
+ if (ret != NULL)
+ return ret;
+ }
+ else
+ return embedded;
}
--currNr;
}
Modified: trunk/Scribus/scribus/canvas.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/canvas.h
==============================================================================
--- trunk/Scribus/scribus/canvas.h (original)
+++ trunk/Scribus/scribus/canvas.h Mon Dec 20 19:34:48 2010
@@ -169,7 +169,7 @@
(this flag is ignored in masterpage mode, since all items are masterpage items then).
*/
PageItem* itemUnderCursor(QPoint globalPos, PageItem* itemAbove=NULL, bool allowInGroup=false, bool allowMasterItems=false) const;
-
+ PageItem* itemInGroup(PageItem* group, QTransform itemPos, QRectF mouseArea) const;
PageItem* itemUnderItem(PageItem* item, int& index) const;
const QPolygon& redrawPolygon() const { return m_viewMode.redrawPolygon; }
Modified: trunk/Scribus/scribus/canvasmode_normal.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/canvasmode_normal.cpp
==============================================================================
--- trunk/Scribus/scribus/canvasmode_normal.cpp (original)
+++ trunk/Scribus/scribus/canvasmode_normal.cpp Mon Dec 20 19:34:48 2010
@@ -1051,7 +1051,7 @@
bool CanvasMode_Normal::SeleItem(QMouseEvent *m)
{
m_canvas->m_viewMode.operItemSelecting = true;
- const unsigned SELECT_IN_GROUP = Qt::AltModifier;
+ const unsigned SELECT_IN_GROUP = Qt::AltModifier; // Qt::MetaModifier;
const unsigned SELECT_MULTIPLE = Qt::ShiftModifier;
const unsigned SELECT_BENEATH = Qt::ControlModifier;
QTransform p;
Modified: trunk/Scribus/scribus/documentchecker.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/documentchecker.cpp
==============================================================================
--- trunk/Scribus/scribus/documentchecker.cpp (original)
+++ trunk/Scribus/scribus/documentchecker.cpp Mon Dec 20 19:34:48 2010
@@ -38,7 +38,6 @@
bool DocumentChecker::checkDocument(ScribusDoc *currDoc)
{
- PageItem* currItem;
QString chstr;
struct CheckerPrefs checkerSettings;
checkerSettings.ignoreErrors = currDoc->checkerProfiles()[currDoc->curCheckProfile()].ignoreErrors;
@@ -88,45 +87,67 @@
if (layerError.count() != 0)
currDoc->docLayerErrors.insert(ll.ID, layerError);
}
- for (int d = 0; d < currDoc->MasterItems.count(); ++d)
+ QList<PageItem*> allItems;
+ uint masterItemsCount = currDoc->MasterItems.count();
+ for (uint i = 0; i < masterItemsCount; ++i)
{
- currItem = currDoc->MasterItems.at(d);
- if (!currItem->printEnabled())
- continue;
- if (!(currDoc->layerPrintable(currItem->LayerID)) && (checkerSettings.ignoreOffLayers))
- continue;
- itemError.clear();
- if (((currItem->isAnnotation()) || (currItem->isBookmark)) && (checkerSettings.checkAnnotations))
- itemError.insert(PDFAnnotField, 0);
- if (((currItem->fillTransparency() != 0.0) || (currItem->lineTransparency() != 0.0) || (currItem->fillBlendmode() != 0) || (currItem->lineBlendmode() != 0)) && (checkerSettings.checkTransparency))
- itemError.insert(Transparency, 0);
- if ((currItem->GrType != 0) && (checkerSettings.checkTransparency))
+ PageItem* currItem = currDoc->MasterItems.at(i);
+ if (currItem->isGroup())
+ allItems = currItem->getItemList();
+ else
+ allItems.append(currItem);
+ for (int ii = 0; ii < allItems.count(); ii++)
{
- if (currItem->GrType == 9)
- {
- if (currItem->GrCol1transp != 1.0)
- itemError.insert(Transparency, 0);
- else if (currItem->GrCol2transp != 1.0)
- itemError.insert(Transparency, 0);
- else if (currItem->GrCol3transp != 1.0)
- itemError.insert(Transparency, 0);
- else if (currItem->GrCol4transp != 1.0)
- itemError.insert(Transparency, 0);
- }
- else if (currItem->GrType == 11)
- {
- for (int grow = 0; grow < currItem->meshGradientArray.count(); grow++)
- {
- for (int gcol = 0; gcol < currItem->meshGradientArray[grow].count(); gcol++)
- {
- if (currItem->meshGradientArray[grow][gcol].transparency != 1.0)
+ currItem = allItems.at(ii);
+ if (!currItem->printEnabled())
+ continue;
+ if (!(currDoc->layerPrintable(currItem->LayerID)) && (checkerSettings.ignoreOffLayers))
+ continue;
+ itemError.clear();
+ if (((currItem->isAnnotation()) || (currItem->isBookmark)) && (checkerSettings.checkAnnotations))
+ itemError.insert(PDFAnnotField, 0);
+ if (((currItem->fillTransparency() != 0.0) || (currItem->lineTransparency() != 0.0) || (currItem->fillBlendmode() != 0) || (currItem->lineBlendmode() != 0)) && (checkerSettings.checkTransparency))
+ itemError.insert(Transparency, 0);
+ if ((currItem->GrType != 0) && (checkerSettings.checkTransparency))
+ {
+ if (currItem->GrType == 9)
+ {
+ if (currItem->GrCol1transp != 1.0)
+ itemError.insert(Transparency, 0);
+ else if (currItem->GrCol2transp != 1.0)
+ itemError.insert(Transparency, 0);
+ else if (currItem->GrCol3transp != 1.0)
+ itemError.insert(Transparency, 0);
+ else if (currItem->GrCol4transp != 1.0)
+ itemError.insert(Transparency, 0);
+ }
+ else if (currItem->GrType == 11)
+ {
+ for (int grow = 0; grow < currItem->meshGradientArray.count(); grow++)
+ {
+ for (int gcol = 0; gcol < currItem->meshGradientArray[grow].count(); gcol++)
+ {
+ if (currItem->meshGradientArray[grow][gcol].transparency != 1.0)
+ itemError.insert(Transparency, 0);
+ }
+ }
+ }
+ else
+ {
+ QList<VColorStop*> colorStops = currItem->fill_gradient.colorStops();
+ for( int offset = 0 ; offset < colorStops.count() ; offset++ )
+ {
+ if (colorStops[offset]->opacity != 1.0)
+ {
itemError.insert(Transparency, 0);
- }
- }
- }
- else
- {
- QList<VColorStop*> colorStops = currItem->fill_gradient.colorStops();
+ break;
+ }
+ }
+ }
+ }
+ if ((currItem->GrTypeStroke != 0) && (checkerSettings.checkTransparency))
+ {
+ QList<VColorStop*> colorStops = currItem->stroke_gradient.colorStops();
for( int offset = 0 ; offset < colorStops.count() ; offset++ )
{
if (colorStops[offset]->opacity != 1.0)
@@ -136,463 +157,460 @@
}
}
}
+ if ((currItem->GrMask > 0) && (checkerSettings.checkTransparency))
+ itemError.insert(Transparency, 0);
+ if ((currItem->OwnPage == -1) && (checkerSettings.checkOrphans))
+ itemError.insert(ObjectNotOnPage, 0);
+ #ifdef HAVE_OSG
+ if (currItem->asImageFrame() && !currItem->asOSGFrame())
+ #else
+ if (currItem->asImageFrame())
+ #endif
+ {
+ if ((!currItem->PictureIsAvailable) && (checkerSettings.checkPictures))
+ itemError.insert(MissingImage, 0);
+ else
+ {
+ if (((qRound(72.0 / currItem->imageXScale()) < checkerSettings.minResolution) || (qRound(72.0 / currItem->imageYScale()) < checkerSettings.minResolution))
+ && (currItem->isRaster) && (checkerSettings.checkResolution))
+ itemError.insert(ImageDPITooLow, 0);
+ if (((qRound(72.0 / currItem->imageXScale()) > checkerSettings.maxResolution) || (qRound(72.0 / currItem->imageYScale()) > checkerSettings.maxResolution))
+ && (currItem->isRaster) && (checkerSettings.checkResolution))
+ itemError.insert(ImageDPITooHigh, 0);
+ QFileInfo fi = QFileInfo(currItem->Pfile);
+ QString ext = fi.suffix().toLower();
+ if (extensionIndicatesPDF(ext) && (checkerSettings.checkRasterPDF))
+ itemError.insert(PlacedPDF, 0);
+ if ((ext == "gif") && (checkerSettings.checkForGIF))
+ itemError.insert(ImageIsGIF, 0);
+
+ if (extensionIndicatesPDF(ext))
+ {
+ PDFAnalyzer analyst(currItem->Pfile);
+ QList<PDFColorSpace> usedColorSpaces;
+ bool hasTransparency = false;
+ QList<PDFFont> usedFonts;
+ int pageNum = qMin(qMax(1, currItem->pixm.imgInfo.actualPageNumber), currItem->pixm.imgInfo.numberOfPages) - 1;
+ QList<PDFImage> imgs;
+ bool succeeded = analyst.inspectPDF(pageNum, usedColorSpaces, hasTransparency, usedFonts, imgs);
+ if (succeeded)
+ {
+ if (checkerSettings.checkNotCMYKOrSpot || checkerSettings.checkDeviceColorsAndOutputIntend)
+ {
+ eColorSpaceType currPrintProfCS = ColorSpace_Unknown;
+ if (currDoc->HasCMS)
+ {
+ ScColorProfile printerProf = currDoc->DocPrinterProf;
+ currPrintProfCS = printerProf.colorSpace();
+ }
+ if (checkerSettings.checkNotCMYKOrSpot)
+ {
+ for (int i=0; i<usedColorSpaces.size(); ++i)
+ {
+ if (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_ICCBased || usedColorSpaces[i] == CS_CalGray
+ || usedColorSpaces[i] == CS_CalRGB || usedColorSpaces[i] == CS_Lab)
+ {
+ itemError.insert(NotCMYKOrSpot, 0);
+ break;
+ }
+ }
+ }
+ if (checkerSettings.checkDeviceColorsAndOutputIntend && currDoc->HasCMS)
+ {
+ for (int i=0; i<usedColorSpaces.size(); ++i)
+ {
+ if (currPrintProfCS == ColorSpace_Cmyk && (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_DeviceGray))
+ {
+ itemError.insert(DeviceColorAndOutputIntend, 0);
+ break;
+ }
+ else if (currPrintProfCS == ColorSpace_Rgb && (usedColorSpaces[i] == CS_DeviceCMYK || usedColorSpaces[i] == CS_DeviceGray))
+ {
+ itemError.insert(DeviceColorAndOutputIntend, 0);
+ break;
+ }
+ }
+ }
+ }
+ if (checkerSettings.checkTransparency && hasTransparency)
+ itemError.insert(Transparency, 0);
+ if (checkerSettings.checkFontNotEmbedded || checkerSettings.checkFontIsOpenType)
+ {
+ for (int i=0; i<usedFonts.size(); ++i)
+ {
+ PDFFont currentFont = usedFonts[i];
+ if (!currentFont.isEmbedded && checkerSettings.checkFontNotEmbedded)
+ itemError.insert(FontNotEmbedded, 0);
+ if (currentFont.isEmbedded && currentFont.isOpenType && checkerSettings.checkFontIsOpenType)
+ itemError.insert(EmbeddedFontIsOpenType, 0);
+ }
+ }
+ if (checkerSettings.checkResolution)
+ {
+ for (int i=0; i<imgs.size(); ++i)
+ {
+ if ((imgs[i].dpiX < checkerSettings.minResolution) || (imgs[i].dpiY < checkerSettings.minResolution))
+ itemError.insert(ImageDPITooLow, 0);
+ if ((imgs[i].dpiX > checkerSettings.maxResolution) || (imgs[i].dpiY > checkerSettings.maxResolution))
+ itemError.insert(ImageDPITooHigh, 0);
+ }
+ }
+ }
+ }
+ }
+ }
+ if ((currItem->asTextFrame()) || (currItem->asPathText()))
+ {
+ #ifndef NLS_PROTO
+ if ( currItem->frameOverflows() && (checkerSettings.checkOverflow) && (!((currItem->isAnnotation()) && ((currItem->annotation().Type() == 5) || (currItem->annotation().Type() == 6)))))
+ itemError.insert(TextOverflow, 0);
+ if (currItem->isAnnotation())
+ {
+ ScFace::FontFormat fformat = currItem->itemText.defaultStyle().charStyle().font().format();
+ if (!(fformat == ScFace::SFNT || fformat == ScFace::TTCF))
+ itemError.insert(WrongFontInAnnotation, 0);
+ }
+ for (int e = currItem->firstInFrame(); e <= currItem->lastInFrame(); ++e)
+ {
+ uint chr = currItem->itemText.text(e).unicode();
+ if ((chr == 13) || (chr == 32) || (chr == 29) || (chr == 28) || (chr == 27) || (chr == 26) || (chr == 25))
+ continue;
+ if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
+ {
+ chstr = currItem->itemText.text(e);
+ if (chstr.toUpper() != currItem->itemText.text(e))
+ chstr = chstr.toUpper();
+ chr = chstr[0].unicode();
+ }
+ if (chr == 9)
+ {
+ for (int t1 = 0; t1 < currItem->itemText.paragraphStyle(e).tabValues().count(); t1++)
+ {
+ if (currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar.isNull())
+ continue;
+ chstr = QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar);
+ if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
+ {
+ if (chstr.toUpper() != QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar))
+ chstr = chstr.toUpper();
+ }
+ chr = chstr[0].unicode();
+ if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ for (int t1 = 0; t1 < currItem->itemText.defaultStyle().tabValues().count(); t1++)
+ {
+ if (currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar.isNull())
+ continue;
+ chstr = QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar);
+ if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
+ {
+ if (chstr.toUpper() != QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar))
+ chstr = chstr.toUpper();
+ }
+ chr = chstr[0].unicode();
+ if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ continue;
+ }
+ if ((chr == 30) || (chr == 23))
+ {
+ for (int numco = 0x30; numco < 0x3A; ++numco)
+ {
+ if ((!currItem->itemText.charStyle(e).font().canRender(numco)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ continue;
+ }
+ if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ #endif
+ }
+ if (((currItem->fillColor() != CommonStrings::None) || (currItem->lineColor() != CommonStrings::None)) && (checkerSettings.checkNotCMYKOrSpot))
+ {
+ bool rgbUsed = false;
+ if ((currItem->fillColor() != CommonStrings::None))
+ {
+ ScColor tmpC = currDoc->PageColors[currItem->fillColor()];
+ if (tmpC.getColorModel() == colorModelRGB)
+ rgbUsed = true;
+ }
+ if ((currItem->lineColor() != CommonStrings::None))
+ {
+ ScColor tmpC = currDoc->PageColors[currItem->lineColor()];
+ if (tmpC.getColorModel() == colorModelRGB)
+ rgbUsed = true;
+ }
+ if (rgbUsed)
+ itemError.insert(NotCMYKOrSpot, 0);
+ }
+ if (itemError.count() != 0)
+ currDoc->masterItemErrors.insert(currItem, itemError);
}
- if ((currItem->GrTypeStroke != 0) && (checkerSettings.checkTransparency))
+ }
+ allItems.clear();
+ uint docItemsCount = currDoc->DocItems.count();
+ for (uint i = 0; i < docItemsCount; ++i)
+ {
+ PageItem* currItem = currDoc->DocItems.at(i);
+ if (currItem->isGroup())
+ allItems = currItem->getItemList();
+ else
+ allItems.append(currItem);
+ for (int ii = 0; ii < allItems.count(); ii++)
{
- QList<VColorStop*> colorStops = currItem->stroke_gradient.colorStops();
- for( int offset = 0 ; offset < colorStops.count() ; offset++ )
- {
- if (colorStops[offset]->opacity != 1.0)
- {
- itemError.insert(Transparency, 0);
- break;
- }
- }
+ currItem = allItems.at(ii);
+ if (!currItem->printEnabled())
+ continue;
+ if (!(currDoc->layerPrintable(currItem->LayerID)) && (checkerSettings.ignoreOffLayers))
+ continue;
+ itemError.clear();
+ if (((currItem->fillTransparency() != 0.0) || (currItem->lineTransparency() != 0.0) || (currItem->fillBlendmode() != 0) || (currItem->lineBlendmode() != 0)) && (checkerSettings.checkTransparency))
+ itemError.insert(Transparency, 0);
+ if ((currItem->GrType != 0) && (checkerSettings.checkTransparency))
+ {
+ if (currItem->GrType == 9)
+ {
+ if (currItem->GrCol1transp != 1.0)
+ itemError.insert(Transparency, 0);
+ else if (currItem->GrCol2transp != 1.0)
+ itemError.insert(Transparency, 0);
+ else if (currItem->GrCol3transp != 1.0)
+ itemError.insert(Transparency, 0);
+ else if (currItem->GrCol4transp != 1.0)
+ itemError.insert(Transparency, 0);
+ }
+ else if (currItem->GrType == 11)
+ {
+ for (int grow = 0; grow < currItem->meshGradientArray.count(); grow++)
+ {
+ for (int gcol = 0; gcol < currItem->meshGradientArray[grow].count(); gcol++)
+ {
+ if (currItem->meshGradientArray[grow][gcol].transparency != 1.0)
+ itemError.insert(Transparency, 0);
+ }
+ }
+ }
+ else
+ {
+ QList<VColorStop*> colorStops = currItem->fill_gradient.colorStops();
+ for( int offset = 0 ; offset < colorStops.count() ; offset++ )
+ {
+ if (colorStops[offset]->opacity != 1.0)
+ {
+ itemError.insert(Transparency, 0);
+ break;
+ }
+ }
+ }
+ }
+ if ((currItem->GrTypeStroke != 0) && (checkerSettings.checkTransparency))
+ {
+ QList<VColorStop*> colorStops = currItem->stroke_gradient.colorStops();
+ for( int offset = 0 ; offset < colorStops.count() ; offset++ )
+ {
+ if (colorStops[offset]->opacity != 1.0)
+ {
+ itemError.insert(Transparency, 0);
+ break;
+ }
+ }
+ }
+ if ((currItem->GrMask > 0) && (checkerSettings.checkTransparency))
+ itemError.insert(Transparency, 0);
+ if (((currItem->isAnnotation()) || (currItem->isBookmark)) && (checkerSettings.checkAnnotations))
+ itemError.insert(PDFAnnotField, 0);
+ if ((currItem->OwnPage == -1) && (checkerSettings.checkOrphans))
+ itemError.insert(ObjectNotOnPage, 0);
+ #ifdef HAVE_OSG
+ if (currItem->asImageFrame() && !currItem->asOSGFrame())
+ #else
+ if (currItem->asImageFrame())
+ #endif
+ {
+ if ((!currItem->PictureIsAvailable) && (checkerSettings.checkPictures))
+ itemError.insert(MissingImage, 0);
+ else
+ {
+ if (((qRound(72.0 / currItem->imageXScale()) < checkerSettings.minResolution) || (qRound(72.0 / currItem->imageYScale()) < checkerSettings.minResolution))
+ && (currItem->isRaster) && (checkerSettings.checkResolution))
+ itemError.insert(ImageDPITooLow, 0);
+ if (((qRound(72.0 / currItem->imageXScale()) > checkerSettings.maxResolution) || (qRound(72.0 / currItem->imageYScale()) > checkerSettings.maxResolution))
+ && (currItem->isRaster) && (checkerSettings.checkResolution))
+ itemError.insert(ImageDPITooHigh, 0);
+ QFileInfo fi = QFileInfo(currItem->Pfile);
+ QString ext = fi.suffix().toLower();
+ if (extensionIndicatesPDF(ext) && (checkerSettings.checkRasterPDF))
+ itemError.insert(PlacedPDF, 0);
+ if ((ext == "gif") && (checkerSettings.checkForGIF))
+ itemError.insert(ImageIsGIF, 0);
+ if (extensionIndicatesPDF(ext))
+ {
+ PDFAnalyzer analyst(currItem->Pfile);
+ QList<PDFColorSpace> usedColorSpaces;
+ bool hasTransparency = false;
+ QList<PDFFont> usedFonts;
+ int pageNum = qMin(qMax(1, currItem->pixm.imgInfo.actualPageNumber), currItem->pixm.imgInfo.numberOfPages) - 1;
+ QList<PDFImage> imgs;
+ bool succeeded = analyst.inspectPDF(pageNum, usedColorSpaces, hasTransparency, usedFonts, imgs);
+ if (succeeded)
+ {
+ if (checkerSettings.checkNotCMYKOrSpot || checkerSettings.checkDeviceColorsAndOutputIntend)
+ {
+ int currPrintProfCS = -1;
+ if (currDoc->HasCMS)
+ {
+ ScColorProfile printerProf = currDoc->DocPrinterProf;
+ currPrintProfCS = static_cast<int>(printerProf.colorSpace());
+ }
+ if (checkerSettings.checkNotCMYKOrSpot)
+ {
+ for (int i=0; i<usedColorSpaces.size(); ++i)
+ {
+ if (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_ICCBased || usedColorSpaces[i] == CS_CalGray
+ || usedColorSpaces[i] == CS_CalRGB || usedColorSpaces[i] == CS_Lab)
+ {
+ itemError.insert(NotCMYKOrSpot, 0);
+ break;
+ }
+ }
+ }
+ if (checkerSettings.checkDeviceColorsAndOutputIntend && currDoc->HasCMS)
+ {
+ for (int i=0; i<usedColorSpaces.size(); ++i)
+ {
+ if (currPrintProfCS == ColorSpace_Cmyk && (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_DeviceGray))
+ {
+ itemError.insert(DeviceColorAndOutputIntend, 0);
+ break;
+ }
+ else if (currPrintProfCS == ColorSpace_Rgb && (usedColorSpaces[i] == CS_DeviceCMYK || usedColorSpaces[i] == CS_DeviceGray))
+ {
+ itemError.insert(DeviceColorAndOutputIntend, 0);
+ break;
+ }
+ }
+ }
+ }
+ if (checkerSettings.checkTransparency && hasTransparency)
+ itemError.insert(Transparency, 0);
+ if (checkerSettings.checkFontNotEmbedded || checkerSettings.checkFontIsOpenType)
+ {
+ for (int i=0; i<usedFonts.size(); ++i)
+ {
+ PDFFont currentFont = usedFonts[i];
+ if (!currentFont.isEmbedded && checkerSettings.checkFontNotEmbedded)
+ itemError.insert(FontNotEmbedded, 0);
+ if (currentFont.isEmbedded && currentFont.isOpenType && checkerSettings.checkFontIsOpenType)
+ itemError.insert(EmbeddedFontIsOpenType, 0);
+ }
+ }
+ if (checkerSettings.checkResolution)
+ {
+ for (int i=0; i<imgs.size(); ++i)
+ {
+ if ((imgs[i].dpiX < checkerSettings.minResolution) || (imgs[i].dpiY < checkerSettings.minResolution))
+ itemError.insert(ImageDPITooLow, 0);
+ if ((imgs[i].dpiX > checkerSettings.maxResolution) || (imgs[i].dpiY > checkerSettings.maxResolution))
+ itemError.insert(ImageDPITooHigh, 0);
+ }
+ }
+ }
+ }
+ }
+ }
+ if ((currItem->asTextFrame()) || (currItem->asPathText()))
+ {
+ #ifndef NLS_PROTO
+ if ( currItem->frameOverflows() && (checkerSettings.checkOverflow) && (!((currItem->isAnnotation()) && ((currItem->annotation().Type() == 5) || (currItem->annotation().Type() == 6)))))
+ itemError.insert(TextOverflow, 0);
+ if (currItem->isAnnotation())
+ {
+ ScFace::FontFormat fformat = currItem->itemText.defaultStyle().charStyle().font().format();
+ if (!(fformat == ScFace::SFNT || fformat == ScFace::TTCF))
+ itemError.insert(WrongFontInAnnotation, 0);
+ }
+ for (int e = currItem->firstInFrame(); e <= currItem->lastInFrame(); ++e)
+ {
+ uint chr = currItem->itemText.text(e).unicode();
+ if ((chr == 13) || (chr == 32) || (chr == 29) || (chr == 28) || (chr == 27) || (chr == 26) || (chr == 25))
+ continue;
+ if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
+ {
+ chstr = currItem->itemText.text(e,1);
+ if (chstr.toUpper() != currItem->itemText.text(e,1))
+ chstr = chstr.toUpper();
+ chr = chstr[0].unicode();
+ }
+ if (chr == 9)
+ {
+ for (int t1 = 0; t1 < currItem->itemText.paragraphStyle(e).tabValues().count(); t1++)
+ {
+ if (currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar.isNull())
+ continue;
+ chstr = QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar);
+ if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
+ {
+ if (chstr.toUpper() != QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar))
+ chstr = chstr.toUpper();
+ }
+ chr = chstr[0].unicode();
+ if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ for (int t1 = 0; t1 < currItem->itemText.defaultStyle().tabValues().count(); t1++)
+ {
+ if (currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar.isNull())
+ continue;
+ chstr = QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar);
+ if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
+ {
+ if (chstr.toUpper() != QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar))
+ chstr = chstr.toUpper();
+ }
+ chr = chstr[0].unicode();
+ if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ continue;
+ }
+ if ((chr == 30) || (chr == 23))
+ {
+ for (uint numco = 0x30; numco < 0x3A; ++numco)
+ {
+ if ((!currItem->itemText.charStyle(e).font().canRender(numco)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ continue;
+ }
+ if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
+ itemError.insert(MissingGlyph, 0);
+ }
+ #endif
+ }
+ if (((currItem->fillColor() != CommonStrings::None) || (currItem->lineColor() != CommonStrings::None)) && (checkerSettings.checkNotCMYKOrSpot))
+ {
+ bool rgbUsed = false;
+ if ((currItem->fillColor() != CommonStrings::None))
+ {
+ ScColor tmpC = currDoc->PageColors[currItem->fillColor()];
+ if (tmpC.getColorModel() == colorModelRGB)
+ rgbUsed = true;
+ }
+ if ((currItem->lineColor() != CommonStrings::None))
+ {
+ ScColor tmpC = currDoc->PageColors[currItem->lineColor()];
+ if (tmpC.getColorModel() == colorModelRGB)
+ rgbUsed = true;
+ }
+ if (rgbUsed)
+ itemError.insert(NotCMYKOrSpot, 0);
+ }
+ if (itemError.count() != 0)
+ currDoc->docItemErrors.insert(currItem, itemError);
}
- if ((currItem->GrMask > 0) && (checkerSettings.checkTransparency))
- itemError.insert(Transparency, 0);
- if ((currItem->OwnPage == -1) && (checkerSettings.checkOrphans))
- itemError.insert(ObjectNotOnPage, 0);
-#ifdef HAVE_OSG
- if (currItem->asImageFrame() && !currItem->asOSGFrame())
-#else
- if (currItem->asImageFrame())
-#endif
- {
- if ((!currItem->PictureIsAvailable) && (checkerSettings.checkPictures))
- itemError.insert(MissingImage, 0);
- else
- {
- if (((qRound(72.0 / currItem->imageXScale()) < checkerSettings.minResolution) || (qRound(72.0 / currItem->imageYScale()) < checkerSettings.minResolution))
- && (currItem->isRaster) && (checkerSettings.checkResolution))
- itemError.insert(ImageDPITooLow, 0);
- if (((qRound(72.0 / currItem->imageXScale()) > checkerSettings.maxResolution) || (qRound(72.0 / currItem->imageYScale()) > checkerSettings.maxResolution))
- && (currItem->isRaster) && (checkerSettings.checkResolution))
- itemError.insert(ImageDPITooHigh, 0);
- QFileInfo fi = QFileInfo(currItem->Pfile);
- QString ext = fi.suffix().toLower();
- if (extensionIndicatesPDF(ext) && (checkerSettings.checkRasterPDF))
- itemError.insert(PlacedPDF, 0);
- if ((ext == "gif") && (checkerSettings.checkForGIF))
- itemError.insert(ImageIsGIF, 0);
-
- if (extensionIndicatesPDF(ext))
- {
- PDFAnalyzer analyst(currItem->Pfile);
- QList<PDFColorSpace> usedColorSpaces;
- bool hasTransparency = false;
- QList<PDFFont> usedFonts;
- int pageNum = qMin(qMax(1, currItem->pixm.imgInfo.actualPageNumber), currItem->pixm.imgInfo.numberOfPages) - 1;
- QList<PDFImage> imgs;
- bool succeeded = analyst.inspectPDF(pageNum, usedColorSpaces, hasTransparency, usedFonts, imgs);
- if (succeeded)
- {
- if (checkerSettings.checkNotCMYKOrSpot || checkerSettings.checkDeviceColorsAndOutputIntend)
- {
- eColorSpaceType currPrintProfCS = ColorSpace_Unknown;
- if (currDoc->HasCMS)
- {
- ScColorProfile printerProf = currDoc->DocPrinterProf;
- currPrintProfCS = printerProf.colorSpace();
- }
- if (checkerSettings.checkNotCMYKOrSpot)
- {
- for (int i=0; i<usedColorSpaces.size(); ++i)
- {
- if (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_ICCBased || usedColorSpaces[i] == CS_CalGray
- || usedColorSpaces[i] == CS_CalRGB || usedColorSpaces[i] == CS_Lab)
- {
- itemError.insert(NotCMYKOrSpot, 0);
- break;
- }
- }
- }
- if (checkerSettings.checkDeviceColorsAndOutputIntend && currDoc->HasCMS)
- {
- for (int i=0; i<usedColorSpaces.size(); ++i)
- {
- if (currPrintProfCS == ColorSpace_Cmyk && (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_DeviceGray))
- {
- itemError.insert(DeviceColorAndOutputIntend, 0);
- break;
- }
- else if (currPrintProfCS == ColorSpace_Rgb && (usedColorSpaces[i] == CS_DeviceCMYK || usedColorSpaces[i] == CS_DeviceGray))
- {
- itemError.insert(DeviceColorAndOutputIntend, 0);
- break;
- }
- }
- }
- }
- if (checkerSettings.checkTransparency && hasTransparency)
- itemError.insert(Transparency, 0);
- if (checkerSettings.checkFontNotEmbedded || checkerSettings.checkFontIsOpenType)
- {
- for (int i=0; i<usedFonts.size(); ++i)
- {
- PDFFont currentFont = usedFonts[i];
- if (!currentFont.isEmbedded && checkerSettings.checkFontNotEmbedded)
- itemError.insert(FontNotEmbedded, 0);
- if (currentFont.isEmbedded && currentFont.isOpenType && checkerSettings.checkFontIsOpenType)
- itemError.insert(EmbeddedFontIsOpenType, 0);
- }
- }
- if (checkerSettings.checkResolution)
- {
- for (int i=0; i<imgs.size(); ++i)
- {
- if ((imgs[i].dpiX < checkerSettings.minResolution) || (imgs[i].dpiY < checkerSettings.minResolution))
- itemError.insert(ImageDPITooLow, 0);
- if ((imgs[i].dpiX > checkerSettings.maxResolution) || (imgs[i].dpiY > checkerSettings.maxResolution))
- itemError.insert(ImageDPITooHigh, 0);
- }
- }
- }
- }
- }
- }
- if ((currItem->asTextFrame()) || (currItem->asPathText()))
- {
-#ifndef NLS_PROTO
- if ( currItem->frameOverflows() && (checkerSettings.checkOverflow) && (!((currItem->isAnnotation()) && ((currItem->annotation().Type() == 5) || (currItem->annotation().Type() == 6)))))
- itemError.insert(TextOverflow, 0);
- if (currItem->isAnnotation())
- {
- ScFace::FontFormat fformat = currItem->itemText.defaultStyle().charStyle().font().format();
- if (!(fformat == ScFace::SFNT || fformat == ScFace::TTCF))
- itemError.insert(WrongFontInAnnotation, 0);
- }
- for (int e = currItem->firstInFrame(); e <= currItem->lastInFrame(); ++e)
- {
- uint chr = currItem->itemText.text(e).unicode();
- if ((chr == 13) || (chr == 32) || (chr == 29) || (chr == 28) || (chr == 27) || (chr == 26) || (chr == 25))
- continue;
- if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
- {
- chstr = currItem->itemText.text(e);
- if (chstr.toUpper() != currItem->itemText.text(e))
- chstr = chstr.toUpper();
- chr = chstr[0].unicode();
- }
- if (chr == 9)
- {
- for (int t1 = 0; t1 < currItem->itemText.paragraphStyle(e).tabValues().count(); t1++)
- {
- if (currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar.isNull())
- continue;
- chstr = QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar);
- if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
- {
- if (chstr.toUpper() != QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar))
- chstr = chstr.toUpper();
- }
- chr = chstr[0].unicode();
- if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
- for (int t1 = 0; t1 < currItem->itemText.defaultStyle().tabValues().count(); t1++)
- {
- if (currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar.isNull())
- continue;
- chstr = QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar);
- if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
- {
- if (chstr.toUpper() != QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar))
- chstr = chstr.toUpper();
- }
- chr = chstr[0].unicode();
- if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
- continue;
- }
- if ((chr == 30) || (chr == 23))
- {
- for (int numco = 0x30; numco < 0x3A; ++numco)
- {
- if ((!currItem->itemText.charStyle(e).font().canRender(numco)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
- continue;
- }
- if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
-#endif
- }
- if (((currItem->fillColor() != CommonStrings::None) || (currItem->lineColor() != CommonStrings::None)) && (checkerSettings.checkNotCMYKOrSpot))
- {
- bool rgbUsed = false;
- if ((currItem->fillColor() != CommonStrings::None))
- {
- ScColor tmpC = currDoc->PageColors[currItem->fillColor()];
- if (tmpC.getColorModel() == colorModelRGB)
- rgbUsed = true;
- }
- if ((currItem->lineColor() != CommonStrings::None))
- {
- ScColor tmpC = currDoc->PageColors[currItem->lineColor()];
- if (tmpC.getColorModel() == colorModelRGB)
- rgbUsed = true;
- }
- if (rgbUsed)
- itemError.insert(NotCMYKOrSpot, 0);
- }
- if (itemError.count() != 0)
- currDoc->masterItemErrors.insert(d /*currItem->ItemNr*/, itemError);
}
- for (int d = 0; d < currDoc->DocItems.count(); ++d)
- {
- currItem = currDoc->DocItems.at(d);
- if (!currItem->printEnabled())
- continue;
- if (!(currDoc->layerPrintable(currItem->LayerID)) && (checkerSettings.ignoreOffLayers))
- continue;
- itemError.clear();
- if (((currItem->fillTransparency() != 0.0) || (currItem->lineTransparency() != 0.0) || (currItem->fillBlendmode() != 0) || (currItem->lineBlendmode() != 0)) && (checkerSettings.checkTransparency))
- itemError.insert(Transparency, 0);
- if ((currItem->GrType != 0) && (checkerSettings.checkTransparency))
- {
- if (currItem->GrType == 9)
- {
- if (currItem->GrCol1transp != 1.0)
- itemError.insert(Transparency, 0);
- else if (currItem->GrCol2transp != 1.0)
- itemError.insert(Transparency, 0);
- else if (currItem->GrCol3transp != 1.0)
- itemError.insert(Transparency, 0);
- else if (currItem->GrCol4transp != 1.0)
- itemError.insert(Transparency, 0);
- }
- else if (currItem->GrType == 11)
- {
- for (int grow = 0; grow < currItem->meshGradientArray.count(); grow++)
- {
- for (int gcol = 0; gcol < currItem->meshGradientArray[grow].count(); gcol++)
- {
- if (currItem->meshGradientArray[grow][gcol].transparency != 1.0)
- itemError.insert(Transparency, 0);
- }
- }
- }
- else
- {
- QList<VColorStop*> colorStops = currItem->fill_gradient.colorStops();
- for( int offset = 0 ; offset < colorStops.count() ; offset++ )
- {
- if (colorStops[offset]->opacity != 1.0)
- {
- itemError.insert(Transparency, 0);
- break;
- }
- }
- }
- }
- if ((currItem->GrTypeStroke != 0) && (checkerSettings.checkTransparency))
- {
- QList<VColorStop*> colorStops = currItem->stroke_gradient.colorStops();
- for( int offset = 0 ; offset < colorStops.count() ; offset++ )
- {
- if (colorStops[offset]->opacity != 1.0)
- {
- itemError.insert(Transparency, 0);
- break;
- }
- }
- }
- if ((currItem->GrMask > 0) && (checkerSettings.checkTransparency))
- itemError.insert(Transparency, 0);
- if (((currItem->isAnnotation()) || (currItem->isBookmark)) && (checkerSettings.checkAnnotations))
- itemError.insert(PDFAnnotField, 0);
- if ((currItem->OwnPage == -1) && (checkerSettings.checkOrphans))
- itemError.insert(ObjectNotOnPage, 0);
-#ifdef HAVE_OSG
- if (currItem->asImageFrame() && !currItem->asOSGFrame())
-#else
- if (currItem->asImageFrame())
-#endif
- {
- if ((!currItem->PictureIsAvailable) && (checkerSettings.checkPictures))
- itemError.insert(MissingImage, 0);
- else
- {
- if (((qRound(72.0 / currItem->imageXScale()) < checkerSettings.minResolution) || (qRound(72.0 / currItem->imageYScale()) < checkerSettings.minResolution))
- && (currItem->isRaster) && (checkerSettings.checkResolution))
- itemError.insert(ImageDPITooLow, 0);
- if (((qRound(72.0 / currItem->imageXScale()) > checkerSettings.maxResolution) || (qRound(72.0 / currItem->imageYScale()) > checkerSettings.maxResolution))
- && (currItem->isRaster) && (checkerSettings.checkResolution))
- itemError.insert(ImageDPITooHigh, 0);
- QFileInfo fi = QFileInfo(currItem->Pfile);
- QString ext = fi.suffix().toLower();
- if (extensionIndicatesPDF(ext) && (checkerSettings.checkRasterPDF))
- itemError.insert(PlacedPDF, 0);
- if ((ext == "gif") && (checkerSettings.checkForGIF))
- itemError.insert(ImageIsGIF, 0);
- if (extensionIndicatesPDF(ext))
- {
- PDFAnalyzer analyst(currItem->Pfile);
- QList<PDFColorSpace> usedColorSpaces;
- bool hasTransparency = false;
- QList<PDFFont> usedFonts;
- int pageNum = qMin(qMax(1, currItem->pixm.imgInfo.actualPageNumber), currItem->pixm.imgInfo.numberOfPages) - 1;
- QList<PDFImage> imgs;
- bool succeeded = analyst.inspectPDF(pageNum, usedColorSpaces, hasTransparency, usedFonts, imgs);
- if (succeeded)
- {
- if (checkerSettings.checkNotCMYKOrSpot || checkerSettings.checkDeviceColorsAndOutputIntend)
- {
- int currPrintProfCS = -1;
- if (currDoc->HasCMS)
- {
- ScColorProfile printerProf = currDoc->DocPrinterProf;
- currPrintProfCS = static_cast<int>(printerProf.colorSpace());
- }
- if (checkerSettings.checkNotCMYKOrSpot)
- {
- for (int i=0; i<usedColorSpaces.size(); ++i)
- {
- if (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_ICCBased || usedColorSpaces[i] == CS_CalGray
- || usedColorSpaces[i] == CS_CalRGB || usedColorSpaces[i] == CS_Lab)
- {
- itemError.insert(NotCMYKOrSpot, 0);
- break;
- }
- }
- }
- if (checkerSettings.checkDeviceColorsAndOutputIntend && currDoc->HasCMS)
- {
- for (int i=0; i<usedColorSpaces.size(); ++i)
- {
- if (currPrintProfCS == ColorSpace_Cmyk && (usedColorSpaces[i] == CS_DeviceRGB || usedColorSpaces[i] == CS_DeviceGray))
- {
- itemError.insert(DeviceColorAndOutputIntend, 0);
- break;
- }
- else if (currPrintProfCS == ColorSpace_Rgb && (usedColorSpaces[i] == CS_DeviceCMYK || usedColorSpaces[i] == CS_DeviceGray))
- {
- itemError.insert(DeviceColorAndOutputIntend, 0);
- break;
- }
- }
- }
- }
- if (checkerSettings.checkTransparency && hasTransparency)
- itemError.insert(Transparency, 0);
- if (checkerSettings.checkFontNotEmbedded || checkerSettings.checkFontIsOpenType)
- {
- for (int i=0; i<usedFonts.size(); ++i)
- {
- PDFFont currentFont = usedFonts[i];
- if (!currentFont.isEmbedded && checkerSettings.checkFontNotEmbedded)
- itemError.insert(FontNotEmbedded, 0);
- if (currentFont.isEmbedded && currentFont.isOpenType && checkerSettings.checkFontIsOpenType)
- itemError.insert(EmbeddedFontIsOpenType, 0);
- }
- }
- if (checkerSettings.checkResolution)
- {
- for (int i=0; i<imgs.size(); ++i)
- {
- if ((imgs[i].dpiX < checkerSettings.minResolution) || (imgs[i].dpiY < checkerSettings.minResolution))
- itemError.insert(ImageDPITooLow, 0);
- if ((imgs[i].dpiX > checkerSettings.maxResolution) || (imgs[i].dpiY > checkerSettings.maxResolution))
- itemError.insert(ImageDPITooHigh, 0);
- }
- }
- }
- }
- }
- }
- if ((currItem->asTextFrame()) || (currItem->asPathText()))
- {
-#ifndef NLS_PROTO
- if ( currItem->frameOverflows() && (checkerSettings.checkOverflow) && (!((currItem->isAnnotation()) && ((currItem->annotation().Type() == 5) || (currItem->annotation().Type() == 6)))))
- itemError.insert(TextOverflow, 0);
- if (currItem->isAnnotation())
- {
- ScFace::FontFormat fformat = currItem->itemText.defaultStyle().charStyle().font().format();
- if (!(fformat == ScFace::SFNT || fformat == ScFace::TTCF))
- itemError.insert(WrongFontInAnnotation, 0);
- }
- for (int e = currItem->firstInFrame(); e <= currItem->lastInFrame(); ++e)
- {
- uint chr = currItem->itemText.text(e).unicode();
- if ((chr == 13) || (chr == 32) || (chr == 29) || (chr == 28) || (chr == 27) || (chr == 26) || (chr == 25))
- continue;
- if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
- {
- chstr = currItem->itemText.text(e,1);
- if (chstr.toUpper() != currItem->itemText.text(e,1))
- chstr = chstr.toUpper();
- chr = chstr[0].unicode();
- }
- if (chr == 9)
- {
- for (int t1 = 0; t1 < currItem->itemText.paragraphStyle(e).tabValues().count(); t1++)
- {
- if (currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar.isNull())
- continue;
- chstr = QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar);
- if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
- {
- if (chstr.toUpper() != QString(currItem->itemText.paragraphStyle(e).tabValues()[t1].tabFillChar))
- chstr = chstr.toUpper();
- }
- chr = chstr[0].unicode();
- if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
- for (int t1 = 0; t1 < currItem->itemText.defaultStyle().tabValues().count(); t1++)
- {
- if (currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar.isNull())
- continue;
- chstr = QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar);
- if ((currItem->itemText.charStyle(e).effects() & ScStyle_SmallCaps) || (currItem->itemText.charStyle(e).effects() & ScStyle_AllCaps))
- {
- if (chstr.toUpper() != QString(currItem->itemText.defaultStyle().tabValues()[t1].tabFillChar))
- chstr = chstr.toUpper();
- }
- chr = chstr[0].unicode();
- if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
- continue;
- }
- if ((chr == 30) || (chr == 23))
- {
- for (uint numco = 0x30; numco < 0x3A; ++numco)
- {
- if ((!currItem->itemText.charStyle(e).font().canRender(numco)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
- continue;
- }
- if ((!currItem->itemText.charStyle(e).font().canRender(chr)) && (checkerSettings.checkGlyphs))
- itemError.insert(MissingGlyph, 0);
- }
-#endif
- }
- if (((currItem->fillColor() != CommonStrings::None) || (currItem->lineColor() != CommonStrings::None)) && (checkerSettings.checkNotCMYKOrSpot))
- {
- bool rgbUsed = false;
- if ((currItem->fillColor() != CommonStrings::None))
- {
- ScColor tmpC = currDoc->PageColors[currItem->fillColor()];
- if (tmpC.getColorModel() == colorModelRGB)
- rgbUsed = true;
- }
- if ((currItem->lineColor() != CommonStrings::None))
- {
- ScColor tmpC = currDoc->PageColors[currItem->lineColor()];
- if (tmpC.getColorModel() == colorModelRGB)
- rgbUsed = true;
- }
- if (rgbUsed)
- itemError.insert(NotCMYKOrSpot, 0);
- }
- if (itemError.count() != 0)
- currDoc->docItemErrors.insert(d /*currItem->ItemNr*/, itemError);
- }
-
return ((currDoc->docItemErrors.count() != 0) || (currDoc->masterItemErrors.count() != 0) || (currDoc->docLayerErrors.count() != 0));
}
Modified: trunk/Scribus/scribus/scribus.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp (original)
+++ trunk/Scribus/scribus/scribus.cpp Mon Dec 20 19:34:48 2010
@@ -584,10 +584,12 @@
connect( styleManager, SIGNAL(paletteShown(bool)), scrActions["editStyles"], SLOT(setChecked(bool)));
styleManager->installEventFilter(this);
- connect(docCheckerPalette, SIGNAL(selectElement(int, int)), this, SLOT(selectItemsFromOutlines(int, int)));
+// connect(docCheckerPalette, SIGNAL(selectElement(int, int)), this, SLOT(selectItemsFromOutlines(int, int)));
+ connect(docCheckerPalette, SIGNAL(selectElementByItem(PageItem *, bool)), this, SLOT(selectItemsFromOutlines(PageItem *, bool)));
connect(docCheckerPalette, SIGNAL(selectPage(int)), this, SLOT(selectPagesFromOutlines(int)));
connect(docCheckerPalette, SIGNAL(selectMasterPage(QString)), this, SLOT(manageMasterPages(QString)));
connect(outlinePalette, SIGNAL(selectElement(int, int, bool)), this, SLOT(selectItemsFromOutlines(int, int, bool)));
+ connect(outlinePalette, SIGNAL(selectElementByItem(PageItem *, bool)), this, SLOT(selectItemsFromOutlines(PageItem *, bool)));
connect(outlinePalette, SIGNAL(selectPage(int)), this, SLOT(selectPagesFromOutlines(int)));
connect(outlinePalette, SIGNAL(selectMasterPage(QString)), this, SLOT(manageMasterPages(QString)));
connect(propertiesPalette->paraStyleCombo, SIGNAL(newStyle(const QString&)), this, SLOT(setNewParStyle(const QString&)));
@@ -600,7 +602,7 @@
connect(bookmarkPalette->BView, SIGNAL(MarkMoved()), this, SLOT(StoreBookmarks()));
connect(bookmarkPalette->BView, SIGNAL(changed()), this, SLOT(slotDocCh()));
- connect(bookmarkPalette->BView, SIGNAL(SelectElement(PageItem *)), this, SLOT(selectItemsFromOutlines(PageItem *)));
+ connect(bookmarkPalette->BView, SIGNAL(SelectElement(PageItem *, bool)), this, SLOT(selectItemsFromOutlines(PageItem *, bool)));
// guides
connect(scrActions["pageManageGuides"], SIGNAL(toggled(bool)), guidePalette, SLOT(setPaletteShown(bool)));
connect(guidePalette, SIGNAL(paletteShown(bool)), scrActions["pageManageGuides"], SLOT(setChecked(bool)));
@@ -7506,10 +7508,38 @@
delete dia;
}
-void ScribusMainWindow::selectItemsFromOutlines(PageItem* ite)
-{
- int d = doc->Items->indexOf(ite);
- selectItemsFromOutlines(ite->OwnPage, d, true);
+void ScribusMainWindow::selectItemsFromOutlines(PageItem* ite, bool single)
+{
+ if (HaveDoc && doc->appMode == modeEditClip)
+ view->requestMode(submodeEndNodeEdit);
+ activateWindow();
+ view->Deselect(true);
+ if ((ite->OwnPage != -1) && (ite->OwnPage != static_cast<int>(doc->currentPage()->pageNr())))
+ view->GotoPage(ite->OwnPage);
+ doc->m_Selection->delaySignalsOn();
+ view->SelectItem(ite, true, single);
+ doc->m_Selection->delaySignalsOff();
+ doc->m_Selection->connectItemToGUI();
+ if (doc->m_Selection->count() != 0)
+ {
+ PageItem *currItem = doc->m_Selection->itemAt(0);
+ double rotation=currItem->rotation();
+ if ( rotation != 0.0 )
+ {
+ double MPI180=1.0/(180.0*M_PI);
+ double y1 = sin(rotation*MPI180) * currItem->width();
+ double x1 = cos(rotation*MPI180) * currItem->width();
+ double y2 = sin((rotation+90.0)*MPI180) * currItem->height();
+ double x2 = cos((rotation+90.0)*MPI180) * currItem->height();
+ double mx = currItem->xPos() + ((x1 + x2)/2.0);
+ double my = currItem->yPos() + ((y1 + y2)/2.0);
+ view->SetCCPo(mx, my);
+ }
+ else
+ {
+ view->SetCCPo(currItem->xPos() + currItem->width() / 2.0, currItem->yPos() + currItem->height() / 2.0);
+ }
+ }
}
void ScribusMainWindow::selectItemsFromOutlines(int Page, int Item, bool single)
Modified: trunk/Scribus/scribus/scribus.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/scribus.h
==============================================================================
--- trunk/Scribus/scribus/scribus.h (original)
+++ trunk/Scribus/scribus/scribus.h Mon Dec 20 19:34:48 2010
@@ -497,7 +497,7 @@
void setNewParStyle(const QString& name);
void setNewCharStyle(const QString& name);
void setAbsValue(int a);
- void selectItemsFromOutlines(PageItem *ite);
+ void selectItemsFromOutlines(PageItem *ite, bool single = false);
void selectItemsFromOutlines(int Page, int Item, bool single = false);
void selectPagesFromOutlines(int Page);
void doPrintPreview();
Modified: trunk/Scribus/scribus/scribusdoc.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.cpp (original)
+++ trunk/Scribus/scribus/scribusdoc.cpp Mon Dec 20 19:34:48 2010
@@ -11824,6 +11824,11 @@
bool ScribusDoc::MoveSizeItem(FPoint newX, FPoint newY, int ite, bool fromMP, bool constrainRotation)
{
PageItem *currItem = Items->at(ite);
+ return MoveSizeItem(newX, newY, currItem, fromMP, constrainRotation);
+}
+
+bool ScribusDoc::MoveSizeItem(FPoint newX, FPoint newY, PageItem* currItem, bool fromMP, bool constrainRotation)
+{
QRectF oldR(currItem->getBoundingRect());
if (currItem->asLine())
{
@@ -11861,12 +11866,12 @@
ma3.rotate(currItem->rotation());
double mxc3 = currItem->xPos() - (ma3.m11() * npv.x() + ma3.m21() * npv.y() + ma3.dx());
double myc3 = currItem->yPos() - (ma3.m22() * npv.y() + ma3.m12() * npv.x() + ma3.dy());
- SizeItem(currItem->width() - newY.x(), currItem->height() - newY.y(), ite, fromMP, true, false);
+ SizeItem(currItem->width() - newY.x(), currItem->height() - newY.y(), currItem, fromMP, true, false);
MoveItem(-mxc3, -myc3, currItem, fromMP);
}
else
{
- SizeItem(currItem->width() - newY.x(), currItem->height() - newY.y(), ite, fromMP, true, false);
+ SizeItem(currItem->width() - newY.x(), currItem->height() - newY.y(), currItem, fromMP, true, false);
MoveItem(newX.x(), newX.y(), currItem, fromMP);
}
}
Modified: trunk/Scribus/scribus/scribusdoc.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/scribusdoc.h
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.h (original)
+++ trunk/Scribus/scribus/scribusdoc.h Mon Dec 20 19:34:48 2010
@@ -1015,6 +1015,7 @@
bool SizeItem(double newX, double newY, int ite, bool fromMP = false, bool DoUpdateClip = true, bool redraw = true);
bool SizeItem(double newX, double newY, PageItem *pi, bool fromMP = false, bool DoUpdateClip = true, bool redraw = true);
bool MoveSizeItem(FPoint newX, FPoint newY, int ite, bool fromMP = false, bool constrainRotation=false);
+ bool MoveSizeItem(FPoint newX, FPoint newY, PageItem* currItem, bool fromMP = false, bool constrainRotation = false);
void AdjustItemSize(PageItem *currItem, bool includeGroup = false);
void moveGroup(double x, double y, bool fromMP = false, Selection* customSelection = 0);
void rotateGroup(double angle, FPoint RCenter);
@@ -1185,8 +1186,8 @@
QList<OpenNodesList> OpenNodes;
QTimer *CurTimer;
QMap<int, errorCodes> docLayerErrors;
- QMap<int, errorCodes> docItemErrors;
- QMap<int, errorCodes> masterItemErrors;
+ QMap<PageItem*, errorCodes> docItemErrors;
+ QMap<PageItem*, errorCodes> masterItemErrors;
FPointArray symReturn;
FPointArray symNewLine;
FPointArray symTab;
Modified: trunk/Scribus/scribus/ui/bookmwin.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/bookmwin.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/bookmwin.cpp (original)
+++ trunk/Scribus/scribus/ui/bookmwin.cpp Mon Dec 20 19:34:48 2010
@@ -158,7 +158,7 @@
BookMItem * i = dynamic_cast<BookMItem*>(current);
// something weird here at 1st call...
if (i)
- emit SelectElement(i->PageObject);
+ emit SelectElement(i->PageObject, false);
}
void BookMView::dropEvent(QDropEvent *e)
Modified: trunk/Scribus/scribus/ui/bookmwin.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/bookmwin.h
==============================================================================
--- trunk/Scribus/scribus/ui/bookmwin.h (original)
+++ trunk/Scribus/scribus/ui/bookmwin.h Mon Dec 20 19:34:48 2010
@@ -100,7 +100,7 @@
signals:
void MarkMoved();
- void SelectElement(PageItem *);
+ void SelectElement(PageItem *, bool);
void changed();
protected:
Modified: trunk/Scribus/scribus/ui/checkDocument.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/checkDocument.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/checkDocument.cpp (original)
+++ trunk/Scribus/scribus/ui/checkDocument.cpp Mon Dec 20 19:34:48 2010
@@ -36,116 +36,14 @@
#define COLUMN_LAYER 2
// #define COLUMN_INFO 3
-/*
-static const unsigned char image0_data[] =
- {
- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0xac, 0x77, 0x26, 0x00, 0x00, 0x00,
- 0xff, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x75, 0x91, 0x31, 0x4e, 0xc3,
- 0x40, 0x10, 0x45, 0x9f, 0xad, 0x2d, 0xe6, 0x0a, 0xdc, 0xc2, 0x8e, 0x44,
- 0x91, 0x83, 0x50, 0x51, 0x91, 0x58, 0x29, 0x42, 0xba, 0x80, 0x28, 0x10,
- 0x55, 0xe4, 0x02, 0x45, 0x74, 0x18, 0x24, 0x64, 0xdc, 0xe5, 0x28, 0x31,
- 0x92, 0xd1, 0xe2, 0x74, 0x5c, 0x83, 0x72, 0x0a, 0x4b, 0x43, 0xe1, 0x78,
- 0xb1, 0x22, 0xb1, 0xcd, 0x6a, 0x67, 0xde, 0xfc, 0x9d, 0x99, 0x1f, 0xf9,
- 0xc6, 0x43, 0x07, 0x38, 0xd0, 0x4e, 0x11, 0x27, 0xff, 0xbe, 0xdd, 0x10,
- 0xd0, 0x4e, 0x59, 0x2d, 0xdf, 0x8d, 0xd1, 0x29, 0xdf, 0xae, 0xa3, 0x71,
- 0xde, 0x89, 0x13, 0x8a, 0x57, 0xec, 0xbb, 0xdd, 0x51, 0x1e, 0x2a, 0x00,
- 0x14, 0x10, 0x20, 0x5b, 0x60, 0xd3, 0xf3, 0x35, 0x97, 0x57, 0x3f, 0x91,
- 0x38, 0x21, 0xd6, 0x4e, 0x69, 0xdb, 0x82, 0xfa, 0xe2, 0x8c, 0x49, 0xbe,
- 0x0d, 0xa0, 0x02, 0xe5, 0xa1, 0xe2, 0xe3, 0xf3, 0x29, 0x28, 0xc7, 0x37,
- 0xcb, 0x9d, 0x95, 0x87, 0x0a, 0x5c, 0x8f, 0xc8, 0xb1, 0x85, 0x71, 0x41,
- 0xb6, 0x28, 0x4c, 0x9c, 0xe0, 0x14, 0x05, 0xa0, 0xbe, 0xbb, 0x0d, 0xc0,
- 0xe9, 0x0d, 0xfd, 0xb0, 0x31, 0x48, 0x48, 0x70, 0x02, 0x4e, 0xf2, 0xcd,
- 0x5f, 0xdc, 0x09, 0xf1, 0xf0, 0x75, 0x50, 0x18, 0x81, 0x83, 0xd0, 0xa0,
- 0x8c, 0x6f, 0x3c, 0x69, 0x32, 0x33, 0x0f, 0xb6, 0x07, 0xf3, 0x60, 0x96,
- 0x6f, 0xcc, 0x1e, 0xb7, 0xb6, 0x07, 0x9b, 0x26, 0x4b, 0xf3, 0xb5, 0xc7,
- 0x37, 0xbe, 0xdf, 0x73, 0x9a, 0xae, 0xc9, 0x8e, 0xc3, 0x28, 0xf0, 0x75,
- 0xff, 0x80, 0x02, 0xab, 0x64, 0x46, 0x9a, 0xce, 0x83, 0x41, 0x91, 0x6f,
- 0x7c, 0x70, 0x2a, 0x5b, 0x14, 0x36, 0x74, 0x2d, 0x08, 0xcf, 0x2f, 0xf3,
- 0x68, 0xec, 0xe4, 0x2f, 0x90, 0x07, 0x8c, 0x36, 0xce, 0xc2, 0x57, 0x47,
- 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
- };
-
-static const unsigned char image1_data[] =
- {
- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0xac, 0x77, 0x26, 0x00, 0x00, 0x00,
- 0xfa, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x75, 0x91, 0x31, 0x6e, 0x83,
- 0x40, 0x10, 0x45, 0x1f, 0x68, 0x8b, 0xb9, 0x4a, 0x3a, 0x63, 0xc9, 0x05,
- 0x25, 0xe7, 0x48, 0x15, 0x8c, 0x28, 0x88, 0x3b, 0xe7, 0x1a, 0xe9, 0x02,
- 0x91, 0x2c, 0x42, 0xe7, 0x73, 0x50, 0x19, 0x24, 0xac, 0x35, 0xa5, 0xaf,
- 0x91, 0x72, 0x0b, 0xa4, 0x49, 0x41, 0xb2, 0x46, 0x48, 0x99, 0x66, 0x35,
- 0x33, 0x7f, 0xdf, 0xd7, 0xee, 0x0f, 0xec, 0x60, 0x61, 0x02, 0x0c, 0xb8,
- 0xc9, 0x21, 0x46, 0xfe, 0xed, 0xcd, 0xdf, 0xc0, 0x4d, 0x8e, 0x43, 0xf1,
- 0xa5, 0x2c, 0xaa, 0x3e, 0xbd, 0x06, 0xcb, 0xbd, 0x11, 0x23, 0x94, 0x9f,
- 0xe8, 0x7d, 0x3c, 0x53, 0x57, 0xcd, 0x2f, 0x11, 0xc4, 0x40, 0x96, 0xa3,
- 0xf1, 0xee, 0xc8, 0xf3, 0xcb, 0x77, 0x20, 0x46, 0x08, 0xdd, 0xe4, 0x18,
- 0xc7, 0x92, 0x6e, 0xbc, 0xb3, 0x8d, 0x13, 0x2f, 0x74, 0x13, 0xd4, 0xa7,
- 0x86, 0xfe, 0xfa, 0xee, 0xc9, 0xe1, 0x5b, 0x71, 0xd6, 0xba, 0x6a, 0xbc,
- 0xb5, 0x18, 0x60, 0x75, 0x21, 0xcb, 0x4b, 0x15, 0x23, 0x18, 0x87, 0x03,
- 0x03, 0x5d, 0xdf, 0x7a, 0xc1, 0xfa, 0x84, 0xf9, 0xb1, 0x21, 0x88, 0x5f,
- 0xb0, 0x12, 0x6e, 0x77, 0xc9, 0x3c, 0x07, 0xc4, 0x08, 0x21, 0xb8, 0x07,
- 0x61, 0x25, 0x9c, 0x89, 0x0f, 0x32, 0x76, 0xb0, 0x44, 0x9b, 0x54, 0xed,
- 0x80, 0x5e, 0x3a, 0xd4, 0x0e, 0xa8, 0x6a, 0xa2, 0xaa, 0x89, 0x5e, 0x3a,
- 0x34, 0xde, 0x14, 0x6a, 0x3b, 0x8b, 0x1d, 0xec, 0xfc, 0x1b, 0x51, 0x74,
- 0x24, 0xcb, 0x53, 0xef, 0x70, 0xbb, 0xb6, 0x74, 0x7d, 0xcb, 0xa1, 0x48,
- 0x79, 0x8a, 0xf6, 0x3e, 0xa0, 0xc0, 0x0e, 0xd6, 0x27, 0x95, 0xe5, 0xa5,
- 0x82, 0x00, 0x0e, 0x41, 0xf8, 0xa8, 0xf6, 0xc1, 0x32, 0xc9, 0x1f, 0x9e,
- 0x1c, 0x9d, 0xca, 0x9e, 0x4f, 0x38, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x49,
- 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
- };
-
-static const unsigned char image2_data[] =
- {
- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0b,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0xac, 0x77, 0x26, 0x00, 0x00, 0x01,
- 0x02, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x75, 0x91, 0xb1, 0x4a, 0xc4,
- 0x40, 0x10, 0x86, 0xbf, 0x84, 0x29, 0xc6, 0x37, 0xb8, 0xd6, 0xf2, 0xca,
- 0x10, 0xae, 0xc8, 0x2b, 0xf8, 0x0a, 0xa9, 0x84, 0xa4, 0x08, 0xd8, 0x1c,
- 0xa4, 0xb4, 0x13, 0xbb, 0x80, 0x85, 0x4a, 0xe0, 0x12, 0xb8, 0x46, 0x4b,
- 0x5b, 0x3b, 0xeb, 0xc0, 0x49, 0xd8, 0xd2, 0x57, 0x48, 0x69, 0x21, 0xb8,
- 0xc5, 0x42, 0x2c, 0x72, 0xc9, 0xad, 0x88, 0xdb, 0x2c, 0x33, 0x3b, 0xf3,
- 0xfd, 0x3f, 0xfb, 0x07, 0xfd, 0xa1, 0x07, 0x07, 0x08, 0x58, 0x67, 0x51,
- 0xd1, 0x7f, 0x6b, 0x99, 0x1b, 0xd6, 0x59, 0xae, 0x9b, 0xab, 0x11, 0xef,
- 0x54, 0x45, 0x1b, 0xf8, 0xef, 0xa2, 0xa2, 0x74, 0xf2, 0x38, 0xbe, 0x36,
- 0x1f, 0x0c, 0xb9, 0x01, 0x01, 0x1c, 0xa8, 0x40, 0x59, 0x67, 0x63, 0xba,
- 0x4d, 0x58, 0x7f, 0xa5, 0x81, 0x8a, 0x12, 0x5a, 0x67, 0x79, 0xb9, 0x37,
- 0x3c, 0xed, 0x2c, 0x7d, 0x12, 0x79, 0x16, 0x60, 0x28, 0x0c, 0xcf, 0x77,
- 0xdd, 0x42, 0x0e, 0x6f, 0xf7, 0xe5, 0x38, 0xe4, 0x06, 0x3d, 0x4a, 0xeb,
- 0x91, 0x3c, 0x2b, 0x7c, 0x16, 0x86, 0xb2, 0xce, 0x46, 0x15, 0x45, 0xbe,
- 0x9d, 0x05, 0x81, 0xb8, 0x3b, 0x59, 0xf0, 0x6f, 0xeb, 0x26, 0x88, 0x75,
- 0x96, 0xd0, 0xf7, 0xe8, 0x0f, 0xaa, 0x40, 0xbf, 0x89, 0xa6, 0x1a, 0x50,
- 0x51, 0xc2, 0x5f, 0x04, 0x6f, 0xe1, 0x6d, 0x13, 0x4d, 0x53, 0x3e, 0xb9,
- 0x2a, 0xda, 0x60, 0x55, 0x47, 0x7f, 0x88, 0xca, 0x64, 0xed, 0x7c, 0x9f,
- 0x50, 0xe5, 0xed, 0xe9, 0x37, 0xd2, 0x6d, 0xc4, 0xbc, 0x60, 0x1d, 0xc4,
- 0xef, 0x86, 0xb8, 0x33, 0xac, 0x9a, 0x88, 0x8b, 0x62, 0xbd, 0x04, 0x14,
- 0xf4, 0x87, 0x7e, 0x49, 0xaa, 0xac, 0xb3, 0x71, 0x56, 0x38, 0x13, 0xe5,
- 0xe6, 0xf2, 0x21, 0xf0, 0x93, 0xfc, 0x01, 0x78, 0x2a, 0x84, 0x98, 0x28,
- 0xe8, 0xa9, 0x58, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
- 0x42, 0x60, 0x82
- };
-*/
CheckDocument::CheckDocument( QWidget* parent, bool modal )
: ScrPaletteBase( parent, "checkDocument", modal, 0 ),
m_Doc(0),
-// globalGraveError(false),
pageGraveError(false),
itemError(false),
minResDPI(0),
maxResDPI(0)
{
-/*
- QPixmap img;
- img.loadFromData( image0_data, sizeof( image0_data ), "PNG" );
- graveError = img;
- img.loadFromData( image1_data, sizeof( image1_data ), "PNG" );
- onlyWarning = img;
- img.loadFromData( image2_data, sizeof( image2_data ), "PNG" );
- noErrors = img;
-*/
showPagesWithoutErrors=PrefsManager::instance()->appPrefs.verifierPrefs.showPagesWithoutErrors;
showNonPrintingLayerErrors=PrefsManager::instance()->appPrefs.verifierPrefs.showNonPrintingLayerErrors;
@@ -166,7 +64,6 @@
checkDocumentLayout->addLayout( layout1 );
reportDisplay = new QTreeWidget( this );
-// reportDisplay->setColumnCount(2);
reportDisplay->header()->setClickable( false );
reportDisplay->header()->setMovable( false );
reportDisplay->setSortingEnabled(false);
@@ -202,7 +99,7 @@
if (itemMap.contains(ite))
{
ScCore->primaryMainWindow()->closeActiveWindowMasterPageEditor();
- emit selectElement(m_Doc->DocItems.at(itemMap[ite])->OwnPage, itemMap[ite]);
+ emit selectElementByItem(itemMap[ite], true);
return;
}
if (pageMap.contains(ite))
@@ -219,8 +116,8 @@
if (masterPageItemMap.contains(ite))
{
if (!m_Doc->masterPageMode())
- emit selectMasterPage(m_Doc->MasterItems.at(masterPageItemMap[ite])->OnMasterPage);
- emit selectElement(-1, masterPageItemMap[ite]);
+ emit selectMasterPage(masterPageItemMap[ite]->OnMasterPage);
+ emit selectElementByItem(masterPageItemMap[ite], true);
return;
}
}
@@ -360,8 +257,7 @@
{
// bool resultError = false;
m_Doc = doc;
- disconnect(curCheckProfile, SIGNAL(activated(const QString&)),
- this, SLOT(newScan(const QString&)));
+ disconnect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(newScan(const QString&)));
curCheckProfile->clear();
clearErrorList();
@@ -465,16 +361,16 @@
masterPageMap.insert(page, doc->MasterPages.at(mPage)->pageName());
}
// pagep = page;
- QMap<int, errorCodes>::Iterator masterItemErrorsIt;
+ QMap<PageItem*, errorCodes>::Iterator masterItemErrorsIt;
for (masterItemErrorsIt = doc->masterItemErrors.begin();
masterItemErrorsIt != doc->masterItemErrors.end();
++masterItemErrorsIt)
{
- if (((doc->MasterItems.at(masterItemErrorsIt.key())->OwnPage == mPage)
- || (doc->MasterItems.at(masterItemErrorsIt.key())->OnMasterPage == doc->MasterPages.at(mPage)->pageName()))
+ if (((masterItemErrorsIt.key()->OwnPage == mPage)
+ || (masterItemErrorsIt.key()->OnMasterPage == doc->MasterPages.at(mPage)->pageName()))
&&
((showNonPrintingLayerErrors) ||
- (!showNonPrintingLayerErrors && doc->layerPrintable(doc->MasterItems.at(masterItemErrorsIt.key())->LayerID)))
+ (!showNonPrintingLayerErrors && doc->layerPrintable(masterItemErrorsIt.key()->LayerID)))
)
{
if (!showPagesWithoutErrors && page==NULL)
@@ -484,20 +380,20 @@
}
hasError = true;
QTreeWidgetItem * object = new QTreeWidgetItem( page);
- masterPageItemMap.insert(object, doc->MasterItems.at(masterItemErrorsIt.key())->ItemNr);
- object->setText(COLUMN_ITEM, doc->MasterItems.at(masterItemErrorsIt.key())->itemName());
+ masterPageItemMap.insert(object, masterItemErrorsIt.key());
+ object->setText(COLUMN_ITEM, masterItemErrorsIt.key()->itemName());
errorCodes::Iterator it3;
if (masterItemErrorsIt.value().count() == 1)
{
it3 = masterItemErrorsIt.value().begin();
- buildItem(object, it3.key(), doc->MasterItems.at(masterItemErrorsIt.key()));
+ buildItem(object, it3.key(), masterItemErrorsIt.key());
}
else
{
for (it3 = masterItemErrorsIt.value().begin(); it3 != masterItemErrorsIt.value().end(); ++it3)
{
QTreeWidgetItem * errorText = new QTreeWidgetItem( object, 0 );
- buildItem(errorText, it3.key(), doc->MasterItems.at(masterItemErrorsIt.key()));
+ buildItem(errorText, it3.key(), masterItemErrorsIt.key());
}
object->setExpanded( true );
}
@@ -541,14 +437,14 @@
pageMap.insert(page, aPage);
}
// pagep = page;
- QMap<int, errorCodes>::Iterator docItemErrorsIt;
+ QMap<PageItem*, errorCodes>::Iterator docItemErrorsIt;
for (docItemErrorsIt = doc->docItemErrors.begin();
docItemErrorsIt != doc->docItemErrors.end();
++docItemErrorsIt)
{
- if (doc->DocItems.at(docItemErrorsIt.key())->OwnPage == aPage &&
+ if (docItemErrorsIt.key()->OwnPage == aPage &&
((showNonPrintingLayerErrors) ||
- (!showNonPrintingLayerErrors && doc->layerPrintable(doc->DocItems.at(docItemErrorsIt.key())->LayerID)))
+ (!showNonPrintingLayerErrors && doc->layerPrintable(docItemErrorsIt.key()->LayerID)))
)
{
if (!showPagesWithoutErrors && page==NULL)
@@ -559,20 +455,20 @@
hasError = true;
itemError = false;
QTreeWidgetItem * object = new QTreeWidgetItem(page);
- object->setText(COLUMN_ITEM, doc->DocItems.at(docItemErrorsIt.key())->itemName());
- itemMap.insert(object, doc->DocItems.at(docItemErrorsIt.key())->ItemNr);
+ object->setText(COLUMN_ITEM, docItemErrorsIt.key()->itemName());
+ itemMap.insert(object, docItemErrorsIt.key());
errorCodes::Iterator it3;
if (docItemErrorsIt.value().count() == 1)
{
it3 = docItemErrorsIt.value().begin();
- buildItem(object, it3.key(), doc->DocItems.at(docItemErrorsIt.key()));
+ buildItem(object, it3.key(), docItemErrorsIt.key());
}
else
{
for (it3 = docItemErrorsIt.value().begin(); it3 != docItemErrorsIt.value().end(); ++it3)
{
QTreeWidgetItem * errorText = new QTreeWidgetItem( object);
- buildItem(errorText, it3.key(), doc->DocItems.at(docItemErrorsIt.key()));
+ buildItem(errorText, it3.key(), docItemErrorsIt.key());
}
object->setExpanded( true );
}
@@ -601,13 +497,13 @@
// END of PAGES
// FREE ITEMS **********************************************8888
- QMap<int, errorCodes>::Iterator freeItemsErrorsIt;
+ QMap<PageItem*, errorCodes>::Iterator freeItemsErrorsIt;
bool hasfreeItems = false;
for (freeItemsErrorsIt = doc->docItemErrors.begin();
freeItemsErrorsIt != doc->docItemErrors.end();
++freeItemsErrorsIt)
{
- if (doc->DocItems.at(freeItemsErrorsIt.key())->OwnPage == -1)
+ if (freeItemsErrorsIt.key()->OwnPage == -1)
{
hasfreeItems = true;
break;
@@ -623,24 +519,24 @@
freeItemsErrorsIt != doc->docItemErrors.end();
++freeItemsErrorsIt)
{
- if (doc->DocItems.at(freeItemsErrorsIt.key())->OwnPage == -1)
+ if (freeItemsErrorsIt.key()->OwnPage == -1)
{
hasError = true;
QTreeWidgetItem * object = new QTreeWidgetItem(freeItem);
- object->setText(0, doc->DocItems.at(freeItemsErrorsIt.key())->itemName());
- itemMap.insert(object, doc->DocItems.at(freeItemsErrorsIt.key())->ItemNr);
+ object->setText(0, freeItemsErrorsIt.key()->itemName());
+ itemMap.insert(object, freeItemsErrorsIt.key());
errorCodes::Iterator it3;
if (freeItemsErrorsIt.value().count() == 1)
{
it3 = freeItemsErrorsIt.value().begin();
- buildItem(object, it3.key(), doc->DocItems.at(freeItemsErrorsIt.key()));
+ buildItem(object, it3.key(), freeItemsErrorsIt.key());
}
else
{
for (it3 = freeItemsErrorsIt.value().begin(); it3 != freeItemsErrorsIt.value().end(); ++it3)
{
QTreeWidgetItem * errorText = new QTreeWidgetItem( object);
- buildItem(errorText, it3.key(), doc->DocItems.at(freeItemsErrorsIt.key()));
+ buildItem(errorText, it3.key(), freeItemsErrorsIt.key());
}
object->setExpanded( true );
}
Modified: trunk/Scribus/scribus/ui/checkDocument.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/checkDocument.h
==============================================================================
--- trunk/Scribus/scribus/ui/checkDocument.h (original)
+++ trunk/Scribus/scribus/ui/checkDocument.h Mon Dec 20 19:34:48 2010
@@ -78,7 +78,8 @@
signals:
//void rescan();
//! \brief Signal emitted when user selects any page item in error list.
- void selectElement(int, int);
+// void selectElement(int, int);
+ void selectElementByItem(PageItem *, bool);
//! \brief Signal emitted when user selects any page in error list.
void selectPage(int);
//! \brief Signal emitted when user selects any master page in error list.
@@ -99,13 +100,13 @@
QHBoxLayout* layout1;
QHBoxLayout* layout2;
//! \brief Mappping Page Item - item nr.
- QMap<QTreeWidgetItem*, int> itemMap;
+ QMap<QTreeWidgetItem*, PageItem*> itemMap;
//! \brief Mappping Page - page nr.
QMap<QTreeWidgetItem*, int> pageMap;
//! \brief Mappping Master Page - MP nr.
QMap<QTreeWidgetItem*, QString> masterPageMap;
//! \brief Mappping MP Item - MP item nr.
- QMap<QTreeWidgetItem*, int> masterPageItemMap;
+ QMap<QTreeWidgetItem*, PageItem*> masterPageItemMap;
//! \brief a reference to the current document
ScribusDoc* m_Doc;
Modified: trunk/Scribus/scribus/ui/outlinepalette.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/outlinepalette.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/outlinepalette.cpp (original)
+++ trunk/Scribus/scribus/ui/outlinepalette.cpp Mon Dec 20 19:34:48 2010
@@ -615,10 +615,11 @@
emit selectElement(-1, item->PageItemObject->ItemNr, false);
else
{
+ pgItem = item->PageItemObject;
if (item->PageItemObject->isGroup())
emit selectElement(-1, item->PageItemObject->ItemNr, false);
else
- emit selectElement(-1, item->PageItemObject->ItemNr, true);
+ emit selectElementByItem(pgItem, true);
}
break;
case 2:
@@ -637,7 +638,7 @@
if (pgItem->isGroup())
emit selectElement(pgItem->OwnPage, pgItem->ItemNr, false);
else
- emit selectElement(pgItem->OwnPage, pgItem->ItemNr, true);
+ emit selectElementByItem(pgItem, true);
}
break;
default:
Modified: trunk/Scribus/scribus/ui/outlinepalette.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/outlinepalette.h
==============================================================================
--- trunk/Scribus/scribus/ui/outlinepalette.h (original)
+++ trunk/Scribus/scribus/ui/outlinepalette.h Mon Dec 20 19:34:48 2010
@@ -77,6 +77,7 @@
signals:
void ToggleAllPalettes();
void selectElement(int, int, bool);
+ void selectElementByItem(PageItem *, bool);
void selectPage(int);
void selectMasterPage(QString);
Modified: trunk/Scribus/scribus/ui/propertiespalette.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=16122&path=/trunk/Scribus/scribus/ui/propertiespalette.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/propertiespalette.cpp (original)
+++ trunk/Scribus/scribus/ui/propertiespalette.cpp Mon Dec 20 19:34:48 2010
@@ -2997,7 +2997,7 @@
w = sqrt(pow(w-x,2)+pow(h-y,2));
CurItem->setXYPos(x, CurItem->yPos(), true);
CurItem->setRotation(r, true);
- doc->SizeItem(w, CurItem->height(), CurItem->ItemNr, true);
+ doc->SizeItem(w, CurItem->height(), CurItem, true);
}
else
{
@@ -3077,8 +3077,8 @@
doc->MoveItem(0, y - CurItem->yPos(), CurItem, true);
CurItem->setXYPos(CurItem->xPos(), y, true);
CurItem->setRotation(r, true);
- doc->SizeItem(w, CurItem->height(), CurItem->ItemNr, true);
- doc->RotateItem(r, CurItem->ItemNr);
+ doc->SizeItem(w, CurItem->height(), CurItem, true);
+ doc->RotateItem(r, CurItem);
}
else
{
@@ -3147,7 +3147,7 @@
CurItem->setRotation(r, true);
w = sqrt(pow(w-x,2)+pow(h-y,2));
}
- doc->SizeItem(w, CurItem->height(), CurItem->ItemNr, true, true, false);
+ doc->SizeItem(w, CurItem->height(), CurItem, true, true, false);
}
else
{
@@ -3171,7 +3171,7 @@
doc->MoveRotated(bb2->RightLink, FPoint(dist, 0), true);
bb2 = bb2->RightLink;
}
- doc->MoveSizeItem(FPoint(0, 0), FPoint(-dist, 0), bb->ItemNr, true);
+ doc->MoveSizeItem(FPoint(0, 0), FPoint(-dist, 0), bb, true);
bb = bb->BottomLink;
}
bb2 = bb;
@@ -3180,7 +3180,7 @@
doc->MoveRotated(bb2->RightLink, FPoint(dist, 0), true);
bb2 = bb2->RightLink;
}
- doc->MoveSizeItem(FPoint(0, 0), FPoint(-dist, 0), bb->ItemNr, true);
+ doc->MoveSizeItem(FPoint(0, 0), FPoint(-dist, 0), bb, true);
doc->RotMode ( rmo );
if (keepFrameWHRatioButton->isChecked())
{
@@ -3195,10 +3195,10 @@
if (keepFrameWHRatioButton->isChecked())
{
setBH(w, (w / oldW) * CurItem->height());
- doc->SizeItem(w, (w / oldW) * CurItem->height(), CurItem->ItemNr, true, true, false);
+ doc->SizeItem(w, (w / oldW) * CurItem->height(), CurItem, true, true, false);
}
else
- doc->SizeItem(w, CurItem->height(), CurItem->ItemNr, true, true, false);
+ doc->SizeItem(w, CurItem->height(), CurItem, true, true, false);
}
}
CurItem->Sizing = oldS;
@@ -3253,7 +3253,7 @@
CurItem->setRotation(r, true);
w = sqrt(pow(w-x,2)+pow(h-y,2));
}
- doc->SizeItem(w, CurItem->height(), CurItem->ItemNr, true, true, false);
+ doc->SizeItem(w, CurItem->height(), CurItem, true, true, false);
}
else
{
@@ -3277,7 +3277,7 @@
doc->MoveRotated(bb2->BottomLink, FPoint(0, dist), true);
bb2 = bb2->BottomLink;
}
- doc->MoveSizeItem(FPoint(0, 0), FPoint(0, -dist), bb->ItemNr, true);
+ doc->MoveSizeItem(FPoint(0, 0), FPoint(0, -dist), bb, true);
bb = bb->RightLink;
}
bb2 = bb;
@@ -3286,7 +3286,7 @@
doc->MoveRotated(bb2->BottomLink, FPoint(0, dist), true);
bb2 = bb2->BottomLink;
}
- doc->MoveSizeItem(FPoint(0, 0), FPoint(0, -dist), bb->ItemNr, true);
+ doc->MoveSizeItem(FPoint(0, 0), FPoint(0, -dist), bb, true);
doc->RotMode ( rmo );
if (keepFrameWHRatioButton->isChecked())
{
@@ -3301,10 +3301,10 @@
if (keepFrameWHRatioButton->isChecked())
{
setBH((h / oldH) * CurItem->width(), h);
- doc->SizeItem((h / oldH) * CurItem->width(), h, CurItem->ItemNr, true, true, false);
+ doc->SizeItem((h / oldH) * CurItem->width(), h, CurItem, true, true, false);
}
else
- doc->SizeItem(CurItem->width(), h, CurItem->ItemNr, true, true, false);
+ doc->SizeItem(CurItem->width(), h, CurItem, true, true, false);
}
}
CurItem->Sizing = oldS;
@@ -3330,7 +3330,7 @@
setXY(gx, gy);
}
else
- doc->RotateItem(Rotation->value()*(-1), CurItem->ItemNr);
+ doc->RotateItem(Rotation->value()*(-1), CurItem);
if (!_userActionOn)
{
for (int i = 0; i < doc->m_Selection->count(); ++i)
More information about the scribus-commit
mailing list