290 lines
6.1 KiB
C++
290 lines
6.1 KiB
C++
/* TemplateDesigner.h
|
|
*
|
|
* Copyright (C) 2018 Jim Evins <evins@snaught.com>
|
|
*
|
|
* This file is part of gLabels-qt.
|
|
*
|
|
* gLabels-qt 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.
|
|
*
|
|
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef TemplateDesigner_h
|
|
#define TemplateDesigner_h
|
|
|
|
|
|
#include "ui_TemplateDesignerIntroPage.h"
|
|
#include "ui_TemplateDesignerNamePage.h"
|
|
#include "ui_TemplateDesignerPageSizePage.h"
|
|
#include "ui_TemplateDesignerShapePage.h"
|
|
#include "ui_TemplateDesignerRectPage.h"
|
|
#include "ui_TemplateDesignerRoundPage.h"
|
|
#include "ui_TemplateDesignerEllipsePage.h"
|
|
#include "ui_TemplateDesignerCdPage.h"
|
|
#include "ui_TemplateDesignerNLayoutsPage.h"
|
|
#include "ui_TemplateDesignerOneLayoutPage.h"
|
|
#include "ui_TemplateDesignerTwoLayoutPage.h"
|
|
#include "ui_TemplateDesignerApplyPage.h"
|
|
|
|
#include "model/Template.h"
|
|
|
|
#include <QWizard>
|
|
#include <QWizardPage>
|
|
|
|
|
|
namespace glabels
|
|
{
|
|
///
|
|
/// About Dialog Widget
|
|
///
|
|
class TemplateDesigner : public QWizard
|
|
{
|
|
Q_OBJECT
|
|
|
|
// My subpages are my friends :-)
|
|
friend class TemplateDesignerIntroPage;
|
|
friend class TemplateDesignerNamePage;
|
|
friend class TemplateDesignerPageSizePage;
|
|
friend class TemplateDesignerShapePage;
|
|
friend class TemplateDesignerRectPage;
|
|
friend class TemplateDesignerRoundPage;
|
|
friend class TemplateDesignerEllipsePage;
|
|
friend class TemplateDesignerCdPage;
|
|
friend class TemplateDesignerNLayoutsPage;
|
|
friend class TemplateDesignerOneLayoutPage;
|
|
friend class TemplateDesignerTwoLayoutPage;
|
|
friend class TemplateDesignerApplyPage;
|
|
|
|
|
|
/////////////////////////////////
|
|
// Life Cycle
|
|
/////////////////////////////////
|
|
public:
|
|
TemplateDesigner( QWidget *parent = nullptr );
|
|
|
|
|
|
/////////////////////////////////
|
|
// Private methods
|
|
/////////////////////////////////
|
|
private:
|
|
int nextId() const override;
|
|
|
|
double itemWidth();
|
|
double itemHeight();
|
|
double itemXWaste();
|
|
double itemYWaste();
|
|
model::Template* buildTemplate();
|
|
void printTestSheet();
|
|
void loadFromTemplate( const model::Template* tmplate );
|
|
bool isBasedOnCopy();
|
|
|
|
|
|
/////////////////////////////////
|
|
// Private methods
|
|
/////////////////////////////////
|
|
private:
|
|
bool mIsBasedOnCopy;
|
|
};
|
|
|
|
|
|
//
|
|
// Intro Page
|
|
//
|
|
class TemplateDesignerIntroPage : public QWizardPage, public Ui::TemplateDesignerIntroPage
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
TemplateDesignerIntroPage( QWidget* parent = nullptr );
|
|
|
|
bool isComplete() const override;
|
|
|
|
private slots:
|
|
void onCopyButtonClicked();
|
|
void onNewButtonClicked();
|
|
};
|
|
|
|
|
|
//
|
|
// Name Page
|
|
//
|
|
class TemplateDesignerNamePage : public QWizardPage, public Ui::TemplateDesignerNamePage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerNamePage( QWidget* parent = nullptr );
|
|
|
|
bool isComplete() const override;
|
|
|
|
private slots:
|
|
void onChanged();
|
|
|
|
private:
|
|
bool mCanContinue = false;
|
|
};
|
|
|
|
|
|
//
|
|
// Page Size Page
|
|
//
|
|
class TemplateDesignerPageSizePage : public QWizardPage, public Ui::TemplateDesignerPageSizePage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerPageSizePage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
|
|
private slots:
|
|
void onComboChanged();
|
|
};
|
|
|
|
|
|
//
|
|
// Shape Page
|
|
//
|
|
class TemplateDesignerShapePage : public QWizardPage, public Ui::TemplateDesignerShapePage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerShapePage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
};
|
|
|
|
|
|
//
|
|
// Rect Page
|
|
//
|
|
class TemplateDesignerRectPage : public QWizardPage, public Ui::TemplateDesignerRectPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerRectPage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
};
|
|
|
|
|
|
//
|
|
// Round Page
|
|
//
|
|
class TemplateDesignerRoundPage : public QWizardPage, public Ui::TemplateDesignerRoundPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerRoundPage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
};
|
|
|
|
|
|
//
|
|
// Ellipse Page
|
|
//
|
|
class TemplateDesignerEllipsePage : public QWizardPage, public Ui::TemplateDesignerEllipsePage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerEllipsePage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
};
|
|
|
|
|
|
//
|
|
// Cd Page
|
|
//
|
|
class TemplateDesignerCdPage : public QWizardPage, public Ui::TemplateDesignerCdPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerCdPage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
};
|
|
|
|
|
|
//
|
|
// NLayouts Page
|
|
//
|
|
class TemplateDesignerNLayoutsPage : public QWizardPage, public Ui::TemplateDesignerNLayoutsPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerNLayoutsPage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
};
|
|
|
|
|
|
//
|
|
// OneLayout Page
|
|
//
|
|
class TemplateDesignerOneLayoutPage : public QWizardPage, public Ui::TemplateDesignerOneLayoutPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerOneLayoutPage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
|
|
private slots:
|
|
void onChanged();
|
|
void onPrintButtonClicked();
|
|
};
|
|
|
|
|
|
//
|
|
// TwoLayout Page
|
|
//
|
|
class TemplateDesignerTwoLayoutPage : public QWizardPage, public Ui::TemplateDesignerTwoLayoutPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerTwoLayoutPage( QWidget* parent = nullptr );
|
|
|
|
void initializePage() override;
|
|
void cleanupPage() override;
|
|
|
|
private slots:
|
|
void onChanged();
|
|
void onPrintButtonClicked();
|
|
};
|
|
|
|
|
|
//
|
|
// Apply Page
|
|
//
|
|
class TemplateDesignerApplyPage : public QWizardPage, public Ui::TemplateDesignerApplyPage
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TemplateDesignerApplyPage( QWidget* parent = nullptr );
|
|
|
|
bool validatePage();
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif // TemplateDesigner_h
|