r17310 by fschmid - PostScript Exporter: almost finished printing of tables.
scribus-commit
scribus-commit at lists.scribus.net
Thu Feb 16 22:20:37 UTC 2012
Author: fschmid
Date: Thu Feb 16 22:20:37 2012
New Revision: 17310
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=17310
Log:
PostScript Exporter: almost finished printing of tables.
Modified:
trunk/Scribus/scribus/pslib.cpp
trunk/Scribus/scribus/pslib.h
trunk/Scribus/scribus/scribusdoc.cpp
Modified: trunk/Scribus/scribus/pslib.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17310&path=/trunk/Scribus/scribus/pslib.cpp
==============================================================================
--- trunk/Scribus/scribus/pslib.cpp (original)
+++ trunk/Scribus/scribus/pslib.cpp Thu Feb 16 22:20:37 2012
@@ -54,12 +54,14 @@
#include "scpattern.h"
#include "scstreamfilter_ascii85.h"
#include "scstreamfilter_flate.h"
+#include "tableutils.h"
#include "ui/multiprogressdialog.h"
#include "util.h"
#include "util_formats.h"
#include "util_math.h"
#include "text/nlsconfig.h"
+using namespace TableUtils;
PSLib::PSLib(PrintOptions &options, bool psart, SCFonts &AllFonts, QMap<QString, QMap<uint, FPointArray> > DocFonts, ColorList DocColors, bool pdf, bool spot)
{
@@ -2646,10 +2648,6 @@
break;
case PageItem::Table:
PS_save();
- SetClipPath(&c->PoLine);
- PS_closepath();
- PS_clip(c->fillRule);
- PS_save();
PS_translate(c->asTable()->gridOffset().x(), c->asTable()->gridOffset().y());
// Paint table fill.
if (c->asTable()->fillColor() != CommonStrings::None)
@@ -2692,7 +2690,158 @@
colSpan = cell.columnSpan();
}
}
- PS_restore();
+ // Pass 2: Paint vertical borders.
+ for (int row = 0; row < c->asTable()->rows(); ++row)
+ {
+ int colSpan = 0;
+ for (int col = 0; col < c->asTable()->columns(); col += colSpan)
+ {
+ TableCell cell = c->asTable()->cellAt(row, col);
+ if (row == cell.row())
+ {
+ const int lastRow = cell.row() + cell.rowSpan() - 1;
+ const int lastCol = cell.column() + cell.columnSpan() - 1;
+ const double borderX = c->asTable()->columnPosition(lastCol) + c->asTable()->columnWidth(lastCol);
+ QPointF start(borderX, 0.0);
+ QPointF end(borderX, 0.0);
+ QPointF startOffsetFactors, endOffsetFactors;
+ int startRow, endRow;
+ for (int row = cell.row(); row <= lastRow; row += endRow - startRow + 1)
+ {
+ TableCell rightCell = c->asTable()->cellAt(row, lastCol + 1);
+ startRow = qMax(cell.row(), rightCell.row());
+ endRow = qMin(lastRow, rightCell.isValid() ? rightCell.row() + rightCell.rowSpan() - 1 : lastRow);
+ TableCell topLeftCell = c->asTable()->cellAt(startRow - 1, lastCol);
+ TableCell topRightCell = c->asTable()->cellAt(startRow - 1, lastCol + 1);
+ TableCell bottomRightCell = c->asTable()->cellAt(endRow + 1, lastCol + 1);
+ TableCell bottomLeftCell = c->asTable()->cellAt(endRow + 1, lastCol);
+ TableBorder topLeft, top, topRight, border, bottomLeft, bottom, bottomRight;
+ resolveBordersVertical(topLeftCell, topRightCell, cell, rightCell, bottomLeftCell, bottomRightCell,
+ &topLeft, &top, &topRight, &border, &bottomLeft, &bottom, &bottomRight, c->asTable());
+ if (border.isNull())
+ continue; // Quit early if the border to paint is null.
+ start.setY(c->asTable()->rowPosition(startRow));
+ end.setY((c->asTable()->rowPosition(endRow) + c->asTable()->rowHeight(endRow)));
+ joinVertical(border, topLeft, top, topRight, bottomLeft, bottom, bottomRight, &start, &end, &startOffsetFactors, &endOffsetFactors);
+ paintBorder(border, start, end, startOffsetFactors, endOffsetFactors, gcr);
+ }
+ if (col == 0)
+ {
+ const int lastRow = cell.row() + cell.rowSpan() - 1;
+ const int firstCol = cell.column();
+ const double borderX = c->asTable()->columnPosition(firstCol);
+ QPointF start(borderX, 0.0);
+ QPointF end(borderX, 0.0);
+ QPointF startOffsetFactors, endOffsetFactors;
+ int startRow, endRow;
+ for (int row = cell.row(); row <= lastRow; row += endRow - startRow + 1)
+ {
+ TableCell leftCell = c->asTable()->cellAt(row, firstCol - 1);
+ startRow = qMax(cell.row(), leftCell.row());
+ endRow = qMin(lastRow, leftCell.isValid() ? leftCell.row() + leftCell.rowSpan() - 1 : lastRow);
+ TableCell topLeftCell = c->asTable()->cellAt(startRow - 1, firstCol - 1);
+ TableCell topRightCell = c->asTable()->cellAt(startRow - 1, firstCol);
+ TableCell bottomRightCell = c->asTable()->cellAt(lastRow + 1, firstCol);
+ TableCell bottomLeftCell = c->asTable()->cellAt(lastRow + 1, firstCol - 1);
+ TableBorder topLeft, top, topRight, border, bottomLeft, bottom, bottomRight;
+ resolveBordersVertical(topLeftCell, topRightCell, leftCell, cell, bottomLeftCell, bottomRightCell,
+ &topLeft, &top, &topRight, &border, &bottomLeft, &bottom, &bottomRight, c->asTable());
+ if (border.isNull())
+ continue; // Quit early if the border to paint is null.
+ start.setY(c->asTable()->rowPosition(startRow));
+ end.setY((c->asTable()->rowPosition(endRow) + c->asTable()->rowHeight(endRow)));
+ joinVertical(border, topLeft, top, topRight, bottomLeft, bottom, bottomRight, &start, &end, &startOffsetFactors, &endOffsetFactors);
+ paintBorder(border, start, end, startOffsetFactors, endOffsetFactors, gcr);
+ }
+ }
+ }
+ colSpan = cell.columnSpan();
+ }
+ }
+ // Pass 3: Paint horizontal borders.
+ for (int row = 0; row < c->asTable()->rows(); ++row)
+ {
+ int colSpan = 0;
+ for (int col = 0; col < c->asTable()->columns(); col += colSpan)
+ {
+ TableCell cell = c->asTable()->cellAt(row, col);
+ if (row == cell.row())
+ {
+ const int lastRow = cell.row() + cell.rowSpan() - 1;
+ const int lastCol = cell.column() + cell.columnSpan() - 1;
+ const double borderY = (c->asTable()->rowPosition(lastRow) + c->asTable()->rowHeight(lastRow));
+ QPointF start(0.0, borderY);
+ QPointF end(0.0, borderY);
+ QPointF startOffsetFactors, endOffsetFactors;
+ int startCol, endCol;
+ for (int col = cell.column(); col <= lastCol; col += endCol - startCol + 1)
+ {
+ TableCell bottomCell = c->asTable()->cellAt(lastRow + 1, col);
+ startCol = qMax(cell.column(), bottomCell.column());
+ endCol = qMin(lastCol, bottomCell.isValid() ? bottomCell.column() + bottomCell.columnSpan() - 1 : lastCol);
+ TableCell topLeftCell = c->asTable()->cellAt(lastRow, startCol - 1);
+ TableCell topRightCell = c->asTable()->cellAt(lastRow, endCol + 1);
+ TableCell bottomRightCell = c->asTable()->cellAt(lastRow + 1, endCol + 1);
+ TableCell bottomLeftCell = c->asTable()->cellAt(lastRow + 1, startCol - 1);
+ TableBorder topLeft, left, bottomLeft, border, topRight, right, bottomRight;
+ resolveBordersHorizontal(topLeftCell, cell, topRightCell, bottomLeftCell, bottomCell,
+ bottomRightCell, &topLeft, &left, &bottomLeft, &border, &topRight, &right, &bottomRight, c->asTable());
+ if (border.isNull())
+ continue; // Quit early if the border is null.
+ start.setX(c->asTable()->columnPosition(startCol));
+ end.setX(c->asTable()->columnPosition(endCol) + c->asTable()->columnWidth(endCol));
+ joinHorizontal(border, topLeft, left, bottomLeft, topRight, right, bottomRight, &start, &end, &startOffsetFactors, &endOffsetFactors);
+ paintBorder(border, start, end, startOffsetFactors, endOffsetFactors, gcr);
+ }
+ if (row == 0)
+ {
+ const int firstRow = cell.row();
+ const int lastCol = cell.column() + cell.columnSpan() - 1;
+ const double borderY = c->asTable()->rowPosition(firstRow);
+ QPointF start(0.0, borderY);
+ QPointF end(0.0, borderY);
+ QPointF startOffsetFactors, endOffsetFactors;
+ int startCol, endCol;
+ for (int col = cell.column(); col <= lastCol; col += endCol - startCol + 1)
+ {
+ TableCell topCell = c->asTable()->cellAt(firstRow - 1, col);
+ startCol = qMax(cell.column(), topCell.column());
+ endCol = qMin(lastCol, topCell.isValid() ? topCell.column() + topCell.columnSpan() - 1 : lastCol);
+ TableCell topLeftCell = c->asTable()->cellAt(firstRow - 1, startCol - 1);
+ TableCell topRightCell = c->asTable()->cellAt(firstRow - 1, endCol + 1);
+ TableCell bottomRightCell = c->asTable()->cellAt(firstRow, endCol + 1);
+ TableCell bottomLeftCell = c->asTable()->cellAt(firstRow, startCol - 1);
+ TableBorder topLeft, left, bottomLeft, border, topRight, right, bottomRight;
+ resolveBordersHorizontal(topLeftCell, topCell, topRightCell, bottomLeftCell, cell,
+ bottomRightCell, &topLeft, &left, &bottomLeft, &border, &topRight, &right, &bottomRight, c->asTable());
+ if (border.isNull())
+ continue; // Quit early if the border is null.
+ start.setX(c->asTable()->columnPosition(startCol));
+ end.setX(c->asTable()->columnPosition(endCol) + c->asTable()->columnWidth(endCol));
+ joinHorizontal(border, topLeft, left, bottomLeft, topRight, right, bottomRight, &start, &end, &startOffsetFactors, &endOffsetFactors);
+ paintBorder(border, start, end, startOffsetFactors, endOffsetFactors, gcr);
+ }
+ }
+ }
+ colSpan = cell.columnSpan();
+ }
+ }
+ // Pass 4: Paint cell content.
+ for (int row = 0; row < c->asTable()->rows(); ++row)
+ {
+ for (int col = 0; col < c->asTable()->columns(); col ++)
+ {
+ TableCell cell = c->asTable()->cellAt(row, col);
+ if (cell.row() == row && cell.column() == col)
+ {
+ PageItem* textFrame = cell.textFrame();
+ PS_save();
+ PS_translate(cell.contentRect().x(), -cell.contentRect().y());
+ ProcessItem(m_Doc, a, textFrame, PNr, sep, farb, ic, gcr, master, true);
+ PS_restore();
+ }
+ }
+ }
PS_restore();
break;
default:
@@ -2701,6 +2850,195 @@
PS_restore();
}
return true;
+}
+
+
+void PSLib::paintBorder(const TableBorder& border, const QPointF& start, const QPointF& end, const QPointF& startOffsetFactors, const QPointF& endOffsetFactors, bool gcr)
+{
+ PS_save();
+ QPointF lineStart, lineEnd;
+ foreach (const TableBorderLine& line, border.borderLines())
+ {
+ lineStart.setX(start.x() + line.width() * startOffsetFactors.x());
+ lineStart.setY(start.y() + line.width() * startOffsetFactors.y());
+ lineEnd.setX(end.x() + line.width() * endOffsetFactors.x());
+ lineEnd.setY(end.y() + line.width() * endOffsetFactors.y());
+ PS_moveto(lineStart.x(), -lineStart.y());
+ PS_lineto(lineEnd.x(), -lineEnd.y());
+ PS_setlinewidth(line.width());
+ int h, s, v, k;
+ if (line.color() != CommonStrings::None)
+ {
+ SetColor(line.color(), 100, &h, &s, &v, &k, gcr);
+ PS_setcmykcolor_stroke(h / 255.0, s / 255.0, v / 255.0, k / 255.0);
+ }
+ PS_setcapjoin(Qt::FlatCap, Qt::MiterJoin);
+ putColor(line.color(), 100, false);
+ }
+ PS_restore();
+}
+
+void PSLib::resolveBordersHorizontal(const TableCell& topLeftCell, const TableCell& topCell,
+ const TableCell& topRightCell, const TableCell& bottomLeftCell, const TableCell& bottomCell,
+ const TableCell& bottomRightCell, TableBorder* topLeft, TableBorder* left, TableBorder* bottomLeft,
+ TableBorder* center, TableBorder* topRight, TableBorder* right, TableBorder* bottomRight, PageItem_Table* table)
+{
+ if (!topCell.isValid() && !bottomCell.isValid())
+ return;
+ if (topLeftCell.column() == topCell.column())
+ *topLeft = TableBorder();
+ else if (topLeftCell.isValid() && topCell.isValid())
+ *topLeft = collapseBorders(topCell.leftBorder(), topLeftCell.rightBorder());
+ else if (topLeftCell.isValid())
+ *topLeft = collapseBorders(table->rightBorder(), topLeftCell.rightBorder());
+ else if (topCell.isValid())
+ *topLeft = collapseBorders(topCell.leftBorder(), table->leftBorder());
+ else
+ *topLeft = TableBorder();
+ if (topLeftCell.row() == bottomLeftCell.row())
+ *left = TableBorder();
+ else if (topLeftCell.isValid() && bottomLeftCell.isValid())
+ *left = collapseBorders(bottomLeftCell.topBorder(), topLeftCell.bottomBorder());
+ else if (topLeftCell.isValid())
+ *left = collapseBorders(table->bottomBorder(), topLeftCell.bottomBorder());
+ else if (bottomLeftCell.isValid())
+ *left = collapseBorders(bottomLeftCell.topBorder(), table->topBorder());
+ else
+ *left = TableBorder();
+ if (bottomLeftCell.column() == bottomCell.column())
+ *bottomLeft = TableBorder();
+ else if (bottomLeftCell.isValid() && bottomCell.isValid())
+ *bottomLeft = collapseBorders(bottomCell.leftBorder(), bottomLeftCell.rightBorder());
+ else if (bottomLeftCell.isValid())
+ *bottomLeft = collapseBorders(table->rightBorder(), bottomLeftCell.rightBorder());
+ else if (bottomCell.isValid())
+ *bottomLeft = collapseBorders(bottomCell.leftBorder(), table->leftBorder());
+ else
+ *bottomLeft = TableBorder();
+ if (topCell.row() == bottomCell.row())
+ *center = TableBorder();
+ else if (topCell.isValid() && bottomCell.isValid())
+ *center = collapseBorders(topCell.bottomBorder(), bottomCell.topBorder());
+ else if (topCell.isValid())
+ *center = collapseBorders(table->bottomBorder(), topCell.bottomBorder());
+ else if (bottomCell.isValid())
+ *center = collapseBorders(bottomCell.topBorder(), table->topBorder());
+ else
+ *center = TableBorder();
+ if (topRightCell.column() == topCell.column())
+ *topRight = TableBorder();
+ else if (topRightCell.isValid() && topCell.isValid())
+ *topRight = collapseBorders(topRightCell.leftBorder(), topCell.rightBorder());
+ else if (topRightCell.isValid())
+ *topRight = collapseBorders(topRightCell.leftBorder(), table->leftBorder());
+ else if (topCell.isValid())
+ *topRight = collapseBorders(table->rightBorder(), topCell.rightBorder());
+ else
+ *topRight = TableBorder();
+ if (topRightCell.row() == bottomRightCell.row())
+ *right = TableBorder();
+ else if (topRightCell.isValid() && bottomRightCell.isValid())
+ *right = collapseBorders(bottomRightCell.topBorder(), topRightCell.bottomBorder());
+ else if (topRightCell.isValid())
+ *right = collapseBorders(table->bottomBorder(), topRightCell.bottomBorder());
+ else if (bottomRightCell.isValid())
+ *right = collapseBorders(bottomRightCell.topBorder(), table->topBorder());
+ else
+ *right = TableBorder();
+ if (bottomRightCell.column() == bottomCell.column())
+ *bottomRight = TableBorder();
+ else if (bottomRightCell.isValid() && bottomCell.isValid())
+ *bottomRight = collapseBorders(bottomRightCell.leftBorder(), bottomCell.rightBorder());
+ else if (bottomRightCell.isValid())
+ *bottomRight = collapseBorders(bottomRightCell.leftBorder(), table->leftBorder());
+ else if (bottomCell.isValid())
+ *bottomRight = collapseBorders(table->rightBorder(), bottomCell.rightBorder());
+ else
+ *bottomRight = TableBorder();
+}
+
+void PSLib::resolveBordersVertical(const TableCell& topLeftCell, const TableCell& topRightCell, const TableCell& leftCell, const TableCell& rightCell, const TableCell& bottomLeftCell,
+ const TableCell& bottomRightCell, TableBorder* topLeft, TableBorder* top, TableBorder* topRight, TableBorder* center, TableBorder* bottomLeft, TableBorder* bottom, TableBorder* bottomRight, PageItem_Table* table)
+{
+ if (!leftCell.isValid() && !rightCell.isValid())
+ return;
+ // Resolve top left.
+ if (topLeftCell.row() == leftCell.row())
+ *topLeft = TableBorder();
+ else if (topLeftCell.isValid() && leftCell.isValid())
+ *topLeft = collapseBorders(leftCell.topBorder(), topLeftCell.bottomBorder());
+ else if (topLeftCell.isValid())
+ *topLeft = collapseBorders(table->bottomBorder(), topLeftCell.bottomBorder());
+ else if (leftCell.isValid())
+ *topLeft = collapseBorders(leftCell.topBorder(), table->topBorder());
+ else
+ *topLeft = TableBorder();
+ // Resolve top.
+ if (topLeftCell.column() == topRightCell.column())
+ *top = TableBorder();
+ else if (topLeftCell.isValid() && topRightCell.isValid())
+ *top = collapseBorders(topRightCell.leftBorder(), topLeftCell.rightBorder());
+ else if (topLeftCell.isValid())
+ *top = collapseBorders(table->rightBorder(), topLeftCell.rightBorder());
+ else if (topRightCell.isValid())
+ *top = collapseBorders(topRightCell.leftBorder(), table->leftBorder());
+ else
+ *top = TableBorder();
+ // Resolve top right.
+ if (topRightCell.row() == rightCell.row())
+ *topRight = TableBorder();
+ else if (topRightCell.isValid() && rightCell.isValid())
+ *topRight = collapseBorders(rightCell.topBorder(), topRightCell.bottomBorder());
+ else if (topRightCell.isValid())
+ *topRight = collapseBorders(table->bottomBorder(), topRightCell.bottomBorder());
+ else if (rightCell.isValid())
+ *topRight = collapseBorders(rightCell.topBorder(), table->topBorder());
+ else
+ *topRight = TableBorder();
+ // Resolve center.
+ if (leftCell.column() == rightCell.column())
+ *center = TableBorder();
+ else if (leftCell.isValid() && rightCell.isValid())
+ *center = collapseBorders(rightCell.leftBorder(), leftCell.rightBorder());
+ else if (leftCell.isValid())
+ *center = collapseBorders(table->rightBorder(), leftCell.rightBorder());
+ else if (rightCell.isValid())
+ *center = collapseBorders(rightCell.leftBorder(), table->leftBorder());
+ else
+ *center = TableBorder();
+ // Resolve bottom left.
+ if (bottomLeftCell.row() == leftCell.row())
+ *bottomLeft = TableBorder();
+ else if (bottomLeftCell.isValid() && leftCell.isValid())
+ *bottomLeft = collapseBorders(bottomLeftCell.topBorder(), leftCell.bottomBorder());
+ else if (bottomLeftCell.isValid())
+ *bottomLeft = collapseBorders(bottomLeftCell.topBorder(), table->topBorder());
+ else if (leftCell.isValid())
+ *bottomLeft = collapseBorders(table->bottomBorder(), leftCell.bottomBorder());
+ else
+ *bottomLeft = TableBorder();
+ // Resolve bottom.
+ if (bottomLeftCell.column() == bottomRightCell.column())
+ *bottom = TableBorder();
+ else if (bottomLeftCell.isValid() && bottomRightCell.isValid())
+ *bottom = collapseBorders(bottomRightCell.leftBorder(), bottomLeftCell.rightBorder());
+ else if (bottomLeftCell.isValid())
+ *bottom = collapseBorders(table->rightBorder(), bottomLeftCell.rightBorder());
+ else if (bottomRightCell.isValid())
+ *bottom = collapseBorders(bottomRightCell.leftBorder(), table->leftBorder());
+ else
+ *bottom = TableBorder();
+ // Resolve bottom right.
+ if (bottomRightCell.row() == rightCell.row())
+ *bottomRight = TableBorder();
+ else if (bottomRightCell.isValid() && rightCell.isValid())
+ *bottomRight = collapseBorders(bottomRightCell.topBorder(), rightCell.bottomBorder());
+ else if (bottomRightCell.isValid())
+ *bottomRight = collapseBorders(bottomRightCell.topBorder(), table->topBorder());
+ else if (rightCell.isValid())
+ *bottomRight = collapseBorders(table->bottomBorder(), rightCell.bottomBorder());
+ else
+ *bottomRight = TableBorder();
}
void PSLib::ProcessPage(ScribusDoc* Doc, ScPage* a, uint PNr, bool sep, bool farb, bool ic, bool gcr)
Modified: trunk/Scribus/scribus/pslib.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17310&path=/trunk/Scribus/scribus/pslib.h
==============================================================================
--- trunk/Scribus/scribus/pslib.h (original)
+++ trunk/Scribus/scribus/pslib.h Thu Feb 16 22:20:37 2012
@@ -36,6 +36,7 @@
#include "scribusapi.h"
#include "scribusstructs.h"
#include "colormgmt/sccolormgmtengine.h"
+#include "tableborder.h"
#ifdef NLS_PROTO
class ScText;
@@ -47,6 +48,7 @@
class MultiProgressDialog;
class ScImage;
class ScLayer;
+class TableCell;
/**
*@author Franz Schmid
@@ -162,6 +164,16 @@
quint16 encode16dVal(double val);
void encodeColor(QDataStream &vs, QString col);
+ void paintBorder(const TableBorder& border, const QPointF& start, const QPointF& end, const QPointF& startOffsetFactors, const QPointF& endOffsetFactors, bool gcr);
+ void resolveBordersHorizontal(const TableCell& topLeftCell, const TableCell& topCell,
+ const TableCell& topRightCell, const TableCell& bottomLeftCell, const TableCell& bottomCell,
+ const TableCell& bottomRightCell, TableBorder* topLeft, TableBorder* left, TableBorder* bottomLeft,
+ TableBorder* center, TableBorder* topRight, TableBorder* right, TableBorder* bottomRight, PageItem_Table* table);
+ void resolveBordersVertical(const TableCell& topLeftCell, const TableCell& topRightCell,
+ const TableCell& leftCell, const TableCell& rightCell, const TableCell& bottomLeftCell,
+ const TableCell& bottomRightCell, TableBorder* topLeft, TableBorder* top, TableBorder* topRight,
+ TableBorder* center, TableBorder* bottomLeft, TableBorder* bottom, TableBorder* bottomRight, PageItem_Table* table);
+
Optimization optimization;
QString ToStr(double c);
Modified: trunk/Scribus/scribus/scribusdoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17310&path=/trunk/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.cpp (original)
+++ trunk/Scribus/scribus/scribusdoc.cpp Thu Feb 16 22:20:37 2012
@@ -3691,7 +3691,23 @@
for (int ii = 0; ii < allItems.count(); ii++)
{
it = allItems.at(ii);
- checkItemForFonts(it, Really, lc);
+ if (it->isTable())
+ {
+ for (int row = 0; row < it->asTable()->rows(); ++row)
+ {
+ for (int col = 0; col < it->asTable()->columns(); col ++)
+ {
+ TableCell cell = it->asTable()->cellAt(row, col);
+ if (cell.row() == row && cell.column() == col)
+ {
+ PageItem* textFrame = cell.textFrame();
+ checkItemForFonts(textFrame, Really, lc);
+ }
+ }
+ }
+ }
+ else
+ checkItemForFonts(it, Really, lc);
}
allItems.clear();
}
More information about the scribus-commit
mailing list