mirror of
https://gitlab.com/smart-pattern/valentina.git
synced 2024-09-19 15:24:03 +02:00
Compare commits
No commits in common. "7d276461ededdc5943ae0d84f544590c857c6404" and "8c3de72a517e42c34ed954a5dfed5a64d10eb7a5" have entirely different histories.
7d276461ed
...
8c3de72a51
|
@ -18,7 +18,6 @@
|
||||||
- Support for options Force Flipping and Forbid Flipping in Puzzle.
|
- Support for options Force Flipping and Forbid Flipping in Puzzle.
|
||||||
- Remember selected dimension values.
|
- Remember selected dimension values.
|
||||||
- Fix segmenting a simple curve.
|
- Fix segmenting a simple curve.
|
||||||
- Fix export tiled pdf on Mac OS.
|
|
||||||
|
|
||||||
# Valentina 0.7.51 April 18, 2022
|
# Valentina 0.7.51 April 18, 2022
|
||||||
- Z value change for a layout piece.
|
- Z value change for a layout piece.
|
||||||
|
|
|
@ -134,8 +134,12 @@ auto VPLayoutSettings::GetTilesSize() const -> QSizeF
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
auto VPLayoutSettings::GetTilesSize(Unit unit) const -> QSizeF
|
auto VPLayoutSettings::GetTilesSize(Unit unit) const -> QSizeF
|
||||||
{
|
{
|
||||||
return {UnitConvertor(m_tilesSize.width(), Unit::Px, unit),
|
QSizeF convertedSize = QSizeF(
|
||||||
UnitConvertor(m_tilesSize.height(), Unit::Px, unit)};
|
UnitConvertor(m_tilesSize.width(), Unit::Px, unit),
|
||||||
|
UnitConvertor(m_tilesSize.height(), Unit::Px, unit)
|
||||||
|
);
|
||||||
|
|
||||||
|
return convertedSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -2574,10 +2574,7 @@ void VPMainWindow::ExportPdfTiledFile(const VPExportData &data)
|
||||||
bool firstPage = true;
|
bool firstPage = true;
|
||||||
for (const auto& sheet : data.sheets)
|
for (const auto& sheet : data.sheets)
|
||||||
{
|
{
|
||||||
if (not GeneratePdfTiledFile(sheet, data.showTilesScheme, &painter, printer, firstPage))
|
GeneratePdfTiledFile(sheet, data.showTilesScheme, &painter, printer, firstPage);
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2592,17 +2589,14 @@ void VPMainWindow::ExportPdfTiledFile(const VPExportData &data)
|
||||||
|
|
||||||
QPainter painter;
|
QPainter painter;
|
||||||
bool firstPage = true;
|
bool firstPage = true;
|
||||||
if (not GeneratePdfTiledFile(data.sheets.at(i), data.showTilesScheme, &painter, printer, firstPage))
|
GeneratePdfTiledFile(data.sheets.at(i), data.showTilesScheme, &painter, printer, firstPage);
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
auto VPMainWindow::GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesScheme, QPainter *painter,
|
void VPMainWindow::GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesScheme, QPainter *painter,
|
||||||
const QSharedPointer<QPrinter> &printer, bool &firstPage) -> bool
|
const QSharedPointer<QPrinter> &printer, bool &firstPage)
|
||||||
{
|
{
|
||||||
SCASSERT(not sheet.isNull())
|
SCASSERT(not sheet.isNull())
|
||||||
SCASSERT(painter != nullptr)
|
SCASSERT(painter != nullptr)
|
||||||
|
@ -2627,7 +2621,7 @@ auto VPMainWindow::GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesS
|
||||||
if (not painter->begin(printer.data()))
|
if (not painter->begin(printer.data()))
|
||||||
{ // failed to open file
|
{ // failed to open file
|
||||||
qCritical() << tr("Failed to open file, is it writable?");
|
qCritical() << tr("Failed to open file, is it writable?");
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
painter->setPen(QPen(Qt::black, VAbstractApplication::VApp()->Settings()->WidthMainLine(), Qt::SolidLine,
|
painter->setPen(QPen(Qt::black, VAbstractApplication::VApp()->Settings()->WidthMainLine(), Qt::SolidLine,
|
||||||
|
@ -2640,7 +2634,7 @@ auto VPMainWindow::GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesS
|
||||||
{
|
{
|
||||||
if (not DrawTilesScheme(printer.data(), painter, sheet, firstPage))
|
if (not DrawTilesScheme(printer.data(), painter, sheet, firstPage))
|
||||||
{
|
{
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
firstPage = false;
|
firstPage = false;
|
||||||
}
|
}
|
||||||
|
@ -2657,7 +2651,7 @@ auto VPMainWindow::GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesS
|
||||||
if (not printer->newPage())
|
if (not printer->newPage())
|
||||||
{
|
{
|
||||||
qWarning("failed in flushing page to disk, disk full?");
|
qWarning("failed in flushing page to disk, disk full?");
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2668,8 +2662,6 @@ auto VPMainWindow::GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesS
|
||||||
}
|
}
|
||||||
|
|
||||||
sheet->SceneData()->CleanAfterExport();
|
sheet->SceneData()->CleanAfterExport();
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -2778,9 +2770,8 @@ auto VPMainWindow::DrawTilesScheme(QPrinter *printer, QPainter *painter, const V
|
||||||
target = QRectF(0, 0, width, height);
|
target = QRectF(0, 0, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
target = VPrintLayout::SceneTargetRect(printer, target);
|
sheet->SceneData()->Scene()->render(painter, VPrintLayout::SceneTargetRect(printer, target), source,
|
||||||
|
Qt::KeepAspectRatio);
|
||||||
sheet->SceneData()->Scene()->render(painter, target, source, Qt::KeepAspectRatio);
|
|
||||||
|
|
||||||
VWatermarkData watermarkData = m_layout->TileFactory()->WatermarkData();
|
VWatermarkData watermarkData = m_layout->TileFactory()->WatermarkData();
|
||||||
if (watermarkData.opacity > 0)
|
if (watermarkData.opacity > 0)
|
||||||
|
|
|
@ -479,8 +479,8 @@ private:
|
||||||
static void ExportUnifiedPdfFile(const VPExportData &data);
|
static void ExportUnifiedPdfFile(const VPExportData &data);
|
||||||
static void GenerateUnifiedPdfFile(const VPExportData &data, const QString &name);
|
static void GenerateUnifiedPdfFile(const VPExportData &data, const QString &name);
|
||||||
void ExportPdfTiledFile(const VPExportData &data);
|
void ExportPdfTiledFile(const VPExportData &data);
|
||||||
auto GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesScheme, QPainter *painter,
|
void GeneratePdfTiledFile(const VPSheetPtr &sheet, bool showTilesScheme, QPainter *painter,
|
||||||
const QSharedPointer<QPrinter> &printer, bool &firstPage) -> bool;
|
const QSharedPointer<QPrinter> &printer, bool &firstPage);
|
||||||
|
|
||||||
void UpdateScaleConnection() const;
|
void UpdateScaleConnection() const;
|
||||||
|
|
||||||
|
|
|
@ -174,11 +174,6 @@ void VPTileFactory::drawTile(QPainter *painter, QPrinter *printer, const VPSheet
|
||||||
// add the tiles decorations (cutting and gluing lines, scissors, infos etc.)
|
// add the tiles decorations (cutting and gluing lines, scissors, infos etc.)
|
||||||
painter->setPen(PenTileInfos());
|
painter->setPen(PenTileInfos());
|
||||||
|
|
||||||
painter->save();
|
|
||||||
|
|
||||||
const QPair<qreal, qreal> scale = VPrintLayout::PrinterScaleDiff(printer);
|
|
||||||
painter->scale(scale.first, scale.second);
|
|
||||||
|
|
||||||
if(row > 0)
|
if(row > 0)
|
||||||
{
|
{
|
||||||
// add top triangle
|
// add top triangle
|
||||||
|
@ -222,7 +217,7 @@ void VPTileFactory::drawTile(QPainter *painter, QPrinter *printer, const VPSheet
|
||||||
DrawSolidBottomLine(painter, col, nbCol);
|
DrawSolidBottomLine(painter, col, nbCol);
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawRuler(painter, scale.first);
|
DrawRuler(painter);
|
||||||
DrawWatermark(painter);
|
DrawWatermark(painter);
|
||||||
|
|
||||||
if(col < nbCol-1)
|
if(col < nbCol-1)
|
||||||
|
@ -240,8 +235,6 @@ void VPTileFactory::drawTile(QPainter *painter, QPrinter *printer, const VPSheet
|
||||||
|
|
||||||
// prepare the painting for the text information
|
// prepare the painting for the text information
|
||||||
DrawTextInformation(painter, row, col, nbRow, nbCol, sheet->GetName());
|
DrawTextInformation(painter, row, col, nbRow, nbCol, sheet->GetName());
|
||||||
|
|
||||||
painter->restore();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -301,7 +294,7 @@ auto VPTileFactory::WatermarkData() const -> const VWatermarkData &
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VPTileFactory::DrawRuler(QPainter *painter, qreal scale) const
|
void VPTileFactory::DrawRuler(QPainter *painter) const
|
||||||
{
|
{
|
||||||
VPLayoutPtr layout = m_layout.toStrongRef();
|
VPLayoutPtr layout = m_layout.toStrongRef();
|
||||||
if(layout.isNull())
|
if(layout.isNull())
|
||||||
|
@ -337,21 +330,15 @@ void VPTileFactory::DrawRuler(QPainter *painter, qreal scale) const
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
painter->save();
|
QString units = rulerUnits != Unit::Inch ? tr("cm", "unit") : tr("in", "unit");
|
||||||
|
|
||||||
QFont fnt = painter->font();
|
QFont fnt = painter->font();
|
||||||
const int size = qRound(10/scale);
|
fnt.setPointSize(10);
|
||||||
size > 0 ? fnt.setPointSize(size) : fnt.setPointSize(10);
|
|
||||||
painter->setFont(fnt);
|
|
||||||
|
|
||||||
qreal unitsWidth = 0;
|
qreal unitsWidth = 0;
|
||||||
QFontMetrics fm(fnt);
|
QFontMetrics fm(fnt);
|
||||||
QString units = rulerUnits != Unit::Inch ? tr("cm", "unit") : tr("in", "unit");
|
|
||||||
unitsWidth = TextWidth(fm, units);
|
unitsWidth = TextWidth(fm, units);
|
||||||
painter->drawText(QPointF(step*0.5-unitsWidth*0.6,
|
painter->drawText(QPointF(step*0.5-unitsWidth*0.6,
|
||||||
m_drawingAreaHeight - tileStripeWidth + notchHeight+shortNotchHeight), units);
|
m_drawingAreaHeight - tileStripeWidth + notchHeight+shortNotchHeight), units);
|
||||||
|
|
||||||
painter->restore();
|
|
||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,7 +123,7 @@ private:
|
||||||
|
|
||||||
VWatermarkData m_watermarkData{};
|
VWatermarkData m_watermarkData{};
|
||||||
|
|
||||||
void DrawRuler(QPainter *painter, qreal scale) const;
|
void DrawRuler(QPainter *painter) const;
|
||||||
void DrawWatermark(QPainter *painter) const;
|
void DrawWatermark(QPainter *painter) const;
|
||||||
|
|
||||||
auto PenTileInfos() const -> QPen;
|
auto PenTileInfos() const -> QPen;
|
||||||
|
|
|
@ -750,7 +750,7 @@ auto VPrintLayout::ContinueIfLayoutStale(QWidget *parent) -> int
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
auto VPrintLayout::SceneTargetRect(QPrinter *printer, const QRectF &source) -> QRectF
|
QRectF VPrintLayout::SceneTargetRect(QPrinter *printer, const QRectF &source)
|
||||||
{
|
{
|
||||||
SCASSERT(printer != nullptr)
|
SCASSERT(printer != nullptr)
|
||||||
|
|
||||||
|
@ -769,18 +769,6 @@ auto VPrintLayout::SceneTargetRect(QPrinter *printer, const QRectF &source) -> Q
|
||||||
x = 0; y = 0;
|
x = 0; y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPair<qreal, qreal> scaleDiff = PrinterScaleDiff(printer);
|
|
||||||
const double xscale = scaleDiff.first;
|
|
||||||
const double yscale = scaleDiff.second;
|
|
||||||
|
|
||||||
return {x * xscale, y * yscale, source.width() * xscale, source.height() * yscale};
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
auto VPrintLayout::PrinterScaleDiff(QPrinter *printer) -> QPair<qreal, qreal>
|
|
||||||
{
|
|
||||||
SCASSERT(printer != nullptr)
|
|
||||||
|
|
||||||
// Here we try understand difference between printer's dpi and our.
|
// Here we try understand difference between printer's dpi and our.
|
||||||
// Get printer rect according to our dpi.
|
// Get printer rect according to our dpi.
|
||||||
const QRectF printerPageRect(0, 0, ToPixel(printer->pageRect(QPrinter::Millimeter).width(), Unit::Mm),
|
const QRectF printerPageRect(0, 0, ToPixel(printer->pageRect(QPrinter::Millimeter).width(), Unit::Mm),
|
||||||
|
@ -789,5 +777,5 @@ auto VPrintLayout::PrinterScaleDiff(QPrinter *printer) -> QPair<qreal, qreal>
|
||||||
const double xscale = pageRect.width() / printerPageRect.width();
|
const double xscale = pageRect.width() / printerPageRect.width();
|
||||||
const double yscale = pageRect.height() / printerPageRect.height();
|
const double yscale = pageRect.height() / printerPageRect.height();
|
||||||
|
|
||||||
return qMakePair(xscale, yscale);
|
return QRectF(x * xscale, y * yscale, source.width() * xscale, source.height() * yscale);
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,7 +122,6 @@ public:
|
||||||
|
|
||||||
static auto ContinueIfLayoutStale(QWidget *parent) -> int;
|
static auto ContinueIfLayoutStale(QWidget *parent) -> int;
|
||||||
static auto SceneTargetRect(QPrinter *printer, const QRectF &source) -> QRectF;
|
static auto SceneTargetRect(QPrinter *printer, const QRectF &source) -> QRectF;
|
||||||
static auto PrinterScaleDiff(QPrinter *printer) -> QPair<qreal, qreal>;
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void PrintPages (QPrinter *printer);
|
void PrintPages (QPrinter *printer);
|
||||||
|
|
Loading…
Reference in a new issue