diff --git a/src/app/valentina/mainwindowsnogui.cpp b/src/app/valentina/mainwindowsnogui.cpp index 129dae53a..436211ad1 100644 --- a/src/app/valentina/mainwindowsnogui.cpp +++ b/src/app/valentina/mainwindowsnogui.cpp @@ -62,7 +62,13 @@ MainWindowsNoGUI::MainWindowsNoGUI(QWidget *parent) shadows(QList()), scenes(QList()), details(QList >()), undoAction(nullptr), redoAction(nullptr), actionDockWidgetToolOptions(nullptr), actionDockWidgetGroups(nullptr), curFile(QString()), - isLayoutStale(true), margins(), paperSize(), isTiled(false) + isLayoutStale(true), + margins(), + paperSize(), + isTiled(false), + isAutoCrop(false), + isUnitePages(false) + { InitTempLayoutScene(); } @@ -130,6 +136,8 @@ bool MainWindowsNoGUI::LayoutSettings(VLayoutGenerator& lGenerator) PrepareSceneList(); margins = lGenerator.GetFields(); paperSize = QSizeF(lGenerator.GetPaperWidth(), lGenerator.GetPaperHeight()); + isAutoCrop = lGenerator.GetAutoCrop(); + isUnitePages = lGenerator.IsUnitePages(); isLayoutStale = false; if (VApplication::IsGUIMode()) { @@ -913,7 +921,16 @@ void MainWindowsNoGUI::SetPrinterSettings(QPrinter *printer, const PrintType &pr if (not isTiled) { - const QSizeF size = QSizeF(FromPixel(paperSize.width(), Unit::Mm), FromPixel(paperSize.height(), Unit::Mm)); + QSizeF size = QSizeF(FromPixel(paperSize.width(), Unit::Mm), FromPixel(paperSize.height(), Unit::Mm)); + if (isAutoCrop || isUnitePages) + { + auto *paper = qgraphicsitem_cast(papers.at(0)); + if (paper) + { + size = QSizeF(FromPixel(paperSize.width(), Unit::Mm), FromPixel(paper->rect().height(), Unit::Mm)); + } + } + const QPrinter::PageSize pSZ = FindTemplate(size); if (pSZ == QPrinter::Custom) { diff --git a/src/app/valentina/mainwindowsnogui.h b/src/app/valentina/mainwindowsnogui.h index fa37d740d..dbff87c6c 100644 --- a/src/app/valentina/mainwindowsnogui.h +++ b/src/app/valentina/mainwindowsnogui.h @@ -103,6 +103,8 @@ private: Q_DISABLE_COPY(MainWindowsNoGUI) bool isTiled; + bool isAutoCrop; + bool isUnitePages; void CreateShadows(); void CreateScenes();