/************************************************************************ ** ** @file mainwindowsnogui.h ** @author Roman Telezhynskyi ** @date 12 5, 2015 ** ** @brief ** @copyright ** This source code is part of the Valentine project, a pattern making ** program, whose allow create and modeling patterns of clothing. ** Copyright (C) 2015 Valentina project ** All Rights Reserved. ** ** Valentina is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Valentina is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Valentina. If not, see . ** *************************************************************************/ #ifndef MAINWINDOWSNOGUI_H #define MAINWINDOWSNOGUI_H #include #include "../geometry/vdetail.h" #include "../libs/vlayout/vlayoutdetail.h" #include "xml/vpattern.h" class QGraphicsScene; class QPrinter; class MainWindowsNoGUI : public QMainWindow { Q_OBJECT public: MainWindowsNoGUI(QWidget *parent = nullptr); virtual ~MainWindowsNoGUI(); public slots: void ToolLayoutSettings(bool checked); void ExportLayoutAs(); void SaveAsPDF(); void SaveAsTiledPDF(); void PrintPages (QPrinter *printer); void PrintPreviewOrigin(); void PrintPreviewTiled(); void PrintOrigin(); void PrintTiled(); protected: QVector listDetails; /** @brief currentScene pointer to current scene. */ QGraphicsScene *currentScene; QGraphicsScene *tempSceneLayout; /** @brief pattern container with data (points, arcs, splines, spline paths, variables) */ VContainer *pattern; /** @brief doc dom document container */ VPattern *doc; QList papers; QList shadows; QList scenes; QList > details; QAction *undoAction; QAction *redoAction; QAction *actionDockWidgetToolOptions; /** @brief fileName name current pattern file. */ QString curFile; bool isLayoutStale; void PrepareDetailsForLayout(const QHash *details); void InitTempLayoutScene(); virtual void CleanLayout()=0; virtual void PrepareSceneList()=0; QIcon ScenePreview(int i) const; private: Q_DISABLE_COPY(MainWindowsNoGUI) bool isTiled; void CreateShadows(); void CreateScenes(); QMap InitFormates() const; void SvgFile(const QString &name, int i)const; void PngFile(const QString &name, int i)const; void PdfFile(const QString &name, int i)const; void EpsFile(const QString &name, int i)const; void PsFile(const QString &name, int i)const; void PdfToPs(const QStringList ¶ms)const; void ObjFile(const QString &name, int i)const; QVector AllSheets(); void SaveLayoutAs(); void PrintPreview(); void LayoutPrint(); void SetPrinterSettings(QPrinter *printer); bool isPagesUniform() const; QString FileName() const; int ContinueIfLayoutStale(); void UnitePages(); QList MoveDetails(qreal length, const QList &details); void UnitePapers(int j, QList &nPapers, qreal width, qreal length); void UniteDetails(int j, QList > &nDetails, qreal length, int i); }; #endif // MAINWINDOWSNOGUI_H