Setting scale factor for export and print.
This commit is contained in:
parent
47b3eab0ad
commit
c8526f2eb0
|
@ -44,6 +44,7 @@
|
||||||
- Tool Point at distance and angle now allows negative length.
|
- Tool Point at distance and angle now allows negative length.
|
||||||
- Export pattern to DXF-ASTM.
|
- Export pattern to DXF-ASTM.
|
||||||
- [smart-pattern/valentina#18] Auto-created Visibility Group for group operation.
|
- [smart-pattern/valentina#18] Auto-created Visibility Group for group operation.
|
||||||
|
- Setting scale factor for export and print.
|
||||||
|
|
||||||
# Version 0.6.2 (unreleased)
|
# Version 0.6.2 (unreleased)
|
||||||
- [#903] Bug in tool Cut Spline path.
|
- [#903] Bug in tool Cut Spline path.
|
||||||
|
|
6
dist/OBS_debian/debian.valentina.1
vendored
6
dist/OBS_debian/debian.valentina.1
vendored
|
@ -1,6 +1,6 @@
|
||||||
.\" Manpage for valentina.
|
.\" Manpage for valentina.
|
||||||
.\" Contact dismine@gmail.com to correct errors.
|
.\" Contact dismine@gmail.com to correct errors.
|
||||||
.TH valentina 1 "15 March, 2020" "valentina man page"
|
.TH valentina 1 "21 March, 2020" "valentina man page"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Valentina \- Pattern making program.
|
Valentina \- Pattern making program.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -213,6 +213,10 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.RB "Page top margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
.RB "Page top margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
||||||
.IP "-B, --bmargin <The bottom margin>"
|
.IP "-B, --bmargin <The bottom margin>"
|
||||||
.RB "Page bottom margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
.RB "Page bottom margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
||||||
|
.IP "--xscale <Horizontal scale>"
|
||||||
|
.RB "Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, " "export mode" ")."
|
||||||
|
.IP "--yscale <Vertical scale>"
|
||||||
|
.RB "Set vertical scale factor from 0.01 to 3.0 (default = 1.0, " "export mode" ")."
|
||||||
.IP "--followGrainline"
|
.IP "--followGrainline"
|
||||||
.RB "Order detail to follow grainline direction (" "export mode" ").
|
.RB "Order detail to follow grainline direction (" "export mode" ").
|
||||||
.IP "--manualPriority"
|
.IP "--manualPriority"
|
||||||
|
|
6
dist/debian/valentina.1
vendored
6
dist/debian/valentina.1
vendored
|
@ -1,6 +1,6 @@
|
||||||
.\" Manpage for valentina.
|
.\" Manpage for valentina.
|
||||||
.\" Contact dismine@gmail.com to correct errors.
|
.\" Contact dismine@gmail.com to correct errors.
|
||||||
.TH valentina 1 "15 March, 2020" "valentina man page"
|
.TH valentina 1 "21 March, 2020" "valentina man page"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Valentina \- Pattern making program.
|
Valentina \- Pattern making program.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -213,6 +213,10 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.RB "Page top margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
.RB "Page top margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
||||||
.IP "-B, --bmargin <The bottom margin>"
|
.IP "-B, --bmargin <The bottom margin>"
|
||||||
.RB "Page bottom margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
.RB "Page bottom margin in current units like 3.0 (" "export mode" "). If not set will be used value from default printer. Or 0 if none printers was found."
|
||||||
|
.IP "--xscale <Horizontal scale>"
|
||||||
|
.RB "Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, " "export mode" ")."
|
||||||
|
.IP "--yscale <Vertical scale>"
|
||||||
|
.RB "Set vertical scale factor from 0.01 to 3.0 (default = 1.0, " "export mode" ")."
|
||||||
.IP "--followGrainline"
|
.IP "--followGrainline"
|
||||||
.RB "Order detail to follow grainline direction (" "export mode" ").
|
.RB "Order detail to follow grainline direction (" "export mode" ").
|
||||||
.IP "--manualPriority"
|
.IP "--manualPriority"
|
||||||
|
|
|
@ -408,6 +408,28 @@ bool VCommandLine::IsCSVWithHeader() const
|
||||||
return IsOptionSet(LONG_OPTION_CSVWITHHEADER);
|
return IsOptionSet(LONG_OPTION_CSVWITHHEADER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VCommandLine::ExportXScale() const
|
||||||
|
{
|
||||||
|
qreal xs = 0;
|
||||||
|
if (IsOptionSet(LONG_OPTION_EXPXSCALE))
|
||||||
|
{
|
||||||
|
xs = OptionValue(LONG_OPTION_EXPXSCALE).toDouble();
|
||||||
|
}
|
||||||
|
return xs;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VCommandLine::ExportYScale() const
|
||||||
|
{
|
||||||
|
qreal ys = 0;
|
||||||
|
if (IsOptionSet(LONG_OPTION_EXPYSCALE))
|
||||||
|
{
|
||||||
|
ys = OptionValue(LONG_OPTION_EXPYSCALE).toDouble();
|
||||||
|
}
|
||||||
|
return ys;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VCommandLine::OptExportSuchDetails() const
|
QString VCommandLine::OptExportSuchDetails() const
|
||||||
{
|
{
|
||||||
|
@ -664,6 +686,12 @@ void VCommandLine::InitCommandLineOptions()
|
||||||
translate("VCommandLine", "Page bottom margin in current units like 3.0 (export mode). If not set will be "
|
translate("VCommandLine", "Page bottom margin in current units like 3.0 (export mode). If not set will be "
|
||||||
"used value from default printer. Or 0 if none printers was found."),
|
"used value from default printer. Or 0 if none printers was found."),
|
||||||
translate("VCommandLine", "The bottom margin")},
|
translate("VCommandLine", "The bottom margin")},
|
||||||
|
{LONG_OPTION_EXPXSCALE,
|
||||||
|
translate("VCommandLine", "Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode)."),
|
||||||
|
translate("VCommandLine", "Horizontal scale")},
|
||||||
|
{LONG_OPTION_EXPYSCALE,
|
||||||
|
translate("VCommandLine", "Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode)."),
|
||||||
|
translate("VCommandLine", "Vertical scale")},
|
||||||
//=================================================================================================================
|
//=================================================================================================================
|
||||||
{LONG_OPTION_FOLLOW_GRAINLINE,
|
{LONG_OPTION_FOLLOW_GRAINLINE,
|
||||||
translate("VCommandLine", "Order detail to follow grainline direction (export mode).")},
|
translate("VCommandLine", "Order detail to follow grainline direction (export mode).")},
|
||||||
|
|
|
@ -88,6 +88,9 @@ public:
|
||||||
bool IsExportOnlyDetails() const;
|
bool IsExportOnlyDetails() const;
|
||||||
bool IsCSVWithHeader() const;
|
bool IsCSVWithHeader() const;
|
||||||
|
|
||||||
|
qreal ExportXScale() const;
|
||||||
|
qreal ExportYScale() const;
|
||||||
|
|
||||||
//@brief returns the piece name regex or empty string if not set
|
//@brief returns the piece name regex or empty string if not set
|
||||||
QString OptExportSuchDetails() const;
|
QString OptExportSuchDetails() const;
|
||||||
|
|
||||||
|
|
214
src/app/valentina/dialogs/dialoglayoutscale.cpp
Normal file
214
src/app/valentina/dialogs/dialoglayoutscale.cpp
Normal file
|
@ -0,0 +1,214 @@
|
||||||
|
/************************************************************************
|
||||||
|
**
|
||||||
|
** @file dialoglayoutscale.cpp
|
||||||
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
||||||
|
** @date 21 3, 2020
|
||||||
|
**
|
||||||
|
** @brief
|
||||||
|
** @copyright
|
||||||
|
** This source code is part of the Valentina project, a pattern making
|
||||||
|
** program, whose allow create and modeling patterns of clothing.
|
||||||
|
** Copyright (C) 2020 Valentina project
|
||||||
|
** <https://gitlab.com/smart-pattern/valentina> 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 <http://www.gnu.org/licenses/>.
|
||||||
|
**
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
#include "dialoglayoutscale.h"
|
||||||
|
#include "ui_dialoglayoutscale.h"
|
||||||
|
#include "../core/vapplication.h"
|
||||||
|
#include "../vmisc/vsettings.h"
|
||||||
|
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
DialogLayoutScale::DialogLayoutScale(bool printTiled, QWidget *parent)
|
||||||
|
:QDialog(parent),
|
||||||
|
ui(new Ui::DialogLayoutScale)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
qApp->ValentinaSettings()->GetOsSeparator() ? setLocale(QLocale()) : setLocale(QLocale::c());
|
||||||
|
|
||||||
|
QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
|
||||||
|
SCASSERT(bOk != nullptr)
|
||||||
|
connect(bOk, &QPushButton::clicked, this, &DialogLayoutScale::Save);
|
||||||
|
|
||||||
|
if (not printTiled)
|
||||||
|
{
|
||||||
|
ui->groupBoxMargins->setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
connect(ui->toolButtonScaleConnected, &QToolButton::clicked, this, &DialogLayoutScale::ToggleScaleConnection);
|
||||||
|
|
||||||
|
connect(ui->doubleSpinBoxHorizontalScale, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
||||||
|
this, &DialogLayoutScale::HorizontalScaleChanged);
|
||||||
|
connect(ui->doubleSpinBoxVerticalScale, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
||||||
|
this, &DialogLayoutScale::VerticalScaleChanged);
|
||||||
|
|
||||||
|
ReadSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
DialogLayoutScale::~DialogLayoutScale()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::SetTiledMargins(QMarginsF margins)
|
||||||
|
{
|
||||||
|
// read Margins top, right, bottom, left
|
||||||
|
margins = UnitConvertor(margins, Unit::Mm, qApp->patternUnit());
|
||||||
|
|
||||||
|
ui->doubleSpinBoxLeftField->setValue(margins.left());
|
||||||
|
ui->doubleSpinBoxTopField->setValue(margins.top());
|
||||||
|
ui->doubleSpinBoxRightField->setValue(margins.right());
|
||||||
|
ui->doubleSpinBoxBottomField->setValue(margins.bottom());
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QMarginsF DialogLayoutScale::GetTiledMargins() const
|
||||||
|
{
|
||||||
|
QMarginsF margins = QMarginsF(
|
||||||
|
ui->doubleSpinBoxLeftField->value(),
|
||||||
|
ui->doubleSpinBoxTopField->value(),
|
||||||
|
ui->doubleSpinBoxRightField->value(),
|
||||||
|
ui->doubleSpinBoxBottomField->value()
|
||||||
|
);
|
||||||
|
|
||||||
|
return UnitConvertor(margins, qApp->patternUnit(), Unit::Mm);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::SetXScale(qreal scale)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxHorizontalScale->setValue(scale * 100.);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal DialogLayoutScale::GetXScale() const
|
||||||
|
{
|
||||||
|
return ui->doubleSpinBoxHorizontalScale->value() / 100.;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::SetYScale(qreal scale)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxVerticalScale->setValue(scale * 100.);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal DialogLayoutScale::GetYScale() const
|
||||||
|
{
|
||||||
|
return ui->doubleSpinBoxVerticalScale->value() / 100.;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::showEvent(QShowEvent *event)
|
||||||
|
{
|
||||||
|
QDialog::showEvent( event );
|
||||||
|
if ( event->spontaneous() )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isInitialized)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// do your init stuff here
|
||||||
|
|
||||||
|
setFixedSize(size());
|
||||||
|
|
||||||
|
isInitialized = true;//first show windows are held
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::Save()
|
||||||
|
{
|
||||||
|
WriteSettings();
|
||||||
|
|
||||||
|
accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::ToggleScaleConnection()
|
||||||
|
{
|
||||||
|
m_scaleConnected = not m_scaleConnected;
|
||||||
|
|
||||||
|
QIcon icon;
|
||||||
|
icon.addFile(m_scaleConnected ? QStringLiteral(":/icon/32x32/link.png")
|
||||||
|
: QStringLiteral(":/icon/32x32/broken_link.png"));
|
||||||
|
ui->toolButtonScaleConnected->setIcon(icon);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::HorizontalScaleChanged(double d)
|
||||||
|
{
|
||||||
|
if (m_scaleConnected)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxVerticalScale->blockSignals(true);
|
||||||
|
ui->doubleSpinBoxVerticalScale->setValue(d);
|
||||||
|
ui->doubleSpinBoxVerticalScale->blockSignals(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::VerticalScaleChanged(double d)
|
||||||
|
{
|
||||||
|
if (m_scaleConnected)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxHorizontalScale->blockSignals(true);
|
||||||
|
ui->doubleSpinBoxHorizontalScale->setValue(d);
|
||||||
|
ui->doubleSpinBoxHorizontalScale->blockSignals(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::ReadSettings()
|
||||||
|
{
|
||||||
|
VSettings *settings = qApp->ValentinaSettings();
|
||||||
|
const Unit unit = qApp->patternUnit();
|
||||||
|
|
||||||
|
// read Margins top, right, bottom, left
|
||||||
|
const QMarginsF margins = settings->GetTiledPDFMargins(unit);
|
||||||
|
|
||||||
|
ui->doubleSpinBoxLeftField->setValue(margins.left());
|
||||||
|
ui->doubleSpinBoxTopField->setValue(margins.top());
|
||||||
|
ui->doubleSpinBoxRightField->setValue(margins.right());
|
||||||
|
ui->doubleSpinBoxBottomField->setValue(margins.bottom());
|
||||||
|
|
||||||
|
ui->doubleSpinBoxLeftField->setSuffix(UnitsToStr(unit, true));
|
||||||
|
ui->doubleSpinBoxTopField->setSuffix(UnitsToStr(unit, true));
|
||||||
|
ui->doubleSpinBoxRightField->setSuffix(UnitsToStr(unit, true));
|
||||||
|
ui->doubleSpinBoxBottomField->setSuffix(UnitsToStr(unit, true));
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogLayoutScale::WriteSettings() const
|
||||||
|
{
|
||||||
|
VSettings *settings = qApp->ValentinaSettings();
|
||||||
|
const Unit unit = qApp->patternUnit();
|
||||||
|
|
||||||
|
// write Margins top, right, bottom, left
|
||||||
|
QMarginsF margins = QMarginsF(
|
||||||
|
ui->doubleSpinBoxLeftField->value(),
|
||||||
|
ui->doubleSpinBoxTopField->value(),
|
||||||
|
ui->doubleSpinBoxRightField->value(),
|
||||||
|
ui->doubleSpinBoxBottomField->value()
|
||||||
|
);
|
||||||
|
settings->SetTiledPDFMargins(margins,unit);
|
||||||
|
}
|
74
src/app/valentina/dialogs/dialoglayoutscale.h
Normal file
74
src/app/valentina/dialogs/dialoglayoutscale.h
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
/************************************************************************
|
||||||
|
**
|
||||||
|
** @file dialoglayoutscale.h
|
||||||
|
** @author Roman Telezhynskyi <dismine(at)gmail.com>
|
||||||
|
** @date 21 3, 2020
|
||||||
|
**
|
||||||
|
** @brief
|
||||||
|
** @copyright
|
||||||
|
** This source code is part of the Valentina project, a pattern making
|
||||||
|
** program, whose allow create and modeling patterns of clothing.
|
||||||
|
** Copyright (C) 2020 Valentina project
|
||||||
|
** <https://gitlab.com/smart-pattern/valentina> 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 <http://www.gnu.org/licenses/>.
|
||||||
|
**
|
||||||
|
*************************************************************************/
|
||||||
|
#ifndef DIALOGLAYOUTSCALE_H
|
||||||
|
#define DIALOGLAYOUTSCALE_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
|
||||||
|
namespace Ui
|
||||||
|
{
|
||||||
|
class DialogLayoutScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
class DialogLayoutScale : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit DialogLayoutScale(bool printTiled, QWidget *parent = nullptr);
|
||||||
|
~DialogLayoutScale();
|
||||||
|
|
||||||
|
void SetTiledMargins(QMarginsF margins);
|
||||||
|
QMarginsF GetTiledMargins() const;
|
||||||
|
|
||||||
|
void SetXScale(qreal scale);
|
||||||
|
qreal GetXScale() const;
|
||||||
|
|
||||||
|
void SetYScale(qreal scale);
|
||||||
|
qreal GetYScale() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void showEvent(QShowEvent *event) override;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void Save();
|
||||||
|
void ToggleScaleConnection();
|
||||||
|
void HorizontalScaleChanged(double d);
|
||||||
|
void VerticalScaleChanged(double d);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Q_DISABLE_COPY(DialogLayoutScale)
|
||||||
|
Ui::DialogLayoutScale *ui;
|
||||||
|
bool isInitialized{false};
|
||||||
|
bool m_scaleConnected{true};
|
||||||
|
|
||||||
|
void ReadSettings();
|
||||||
|
void WriteSettings() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DIALOGLAYOUTSCALE_H
|
334
src/app/valentina/dialogs/dialoglayoutscale.ui
Normal file
334
src/app/valentina/dialogs/dialoglayoutscale.ui
Normal file
|
@ -0,0 +1,334 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>DialogLayoutScale</class>
|
||||||
|
<widget class="QDialog" name="DialogLayoutScale">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>404</width>
|
||||||
|
<height>211</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Layout scale</string>
|
||||||
|
</property>
|
||||||
|
<property name="windowIcon">
|
||||||
|
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||||
|
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBoxMargins">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Margins</string>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="labelLeftField">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Left:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxLeftField">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>cm</string>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="labelRightField">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Right:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" colspan="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxRightField">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>cm</string>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="labelTopField">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Top:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1" colspan="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxTopField">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>cm</string>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="labelBottomField">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Bottom:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1" colspan="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxBottomField">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>cm</string>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBoxScale">
|
||||||
|
<property name="title">
|
||||||
|
<string>Scale</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Horizontal:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Vertical:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxHorizontalScale">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>%</string>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>300.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>100.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxVerticalScale">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>%</string>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>300.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>100.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p><span style=" font-size:16pt;">┐</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignHCenter">
|
||||||
|
<widget class="QToolButton" name="toolButtonScaleConnected">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||||
|
<normaloff>:/icon/32x32/link.png</normaloff>:/icon/32x32/link.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>32</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="popupMode">
|
||||||
|
<enum>QToolButton::DelayedPopup</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignHCenter">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p><span style=" font-size:16pt; font-weight:600;">┘</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources>
|
||||||
|
<include location="../../../libs/vmisc/share/resources/icon.qrc"/>
|
||||||
|
</resources>
|
||||||
|
<connections>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>accepted()</signal>
|
||||||
|
<receiver>DialogLayoutScale</receiver>
|
||||||
|
<slot>accept()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>248</x>
|
||||||
|
<y>254</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>157</x>
|
||||||
|
<y>274</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>rejected()</signal>
|
||||||
|
<receiver>DialogLayoutScale</receiver>
|
||||||
|
<slot>reject()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>316</x>
|
||||||
|
<y>260</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>286</x>
|
||||||
|
<y>274</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
</ui>
|
|
@ -36,5 +36,6 @@
|
||||||
#include "dialogaboutapp.h"
|
#include "dialogaboutapp.h"
|
||||||
#include "dialogpreferences.h"
|
#include "dialogpreferences.h"
|
||||||
#include "dialogfinalmeasurements.h"
|
#include "dialogfinalmeasurements.h"
|
||||||
|
#include "dialoglayoutscale.h"
|
||||||
|
|
||||||
#endif // DIALOGS_H
|
#endif // DIALOGS_H
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# This need for corect working file translations.pro
|
# This need for corect working file translations.pro
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
|
$$PWD/dialoglayoutscale.h \
|
||||||
$$PWD/dialogs.h \
|
$$PWD/dialogs.h \
|
||||||
$$PWD/dialogincrements.h \
|
$$PWD/dialogincrements.h \
|
||||||
$$PWD/dialoghistory.h \
|
$$PWD/dialoghistory.h \
|
||||||
|
@ -26,6 +27,7 @@ HEADERS += \
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
$$PWD/dialogincrements.cpp \
|
$$PWD/dialogincrements.cpp \
|
||||||
$$PWD/dialoghistory.cpp \
|
$$PWD/dialoghistory.cpp \
|
||||||
|
$$PWD/dialoglayoutscale.cpp \
|
||||||
$$PWD/dialogpatternproperties.cpp \
|
$$PWD/dialogpatternproperties.cpp \
|
||||||
$$PWD/dialognewpattern.cpp \
|
$$PWD/dialognewpattern.cpp \
|
||||||
$$PWD/dialogaboutapp.cpp \
|
$$PWD/dialogaboutapp.cpp \
|
||||||
|
@ -47,6 +49,7 @@ SOURCES += \
|
||||||
FORMS += \
|
FORMS += \
|
||||||
$$PWD/dialogincrements.ui \
|
$$PWD/dialogincrements.ui \
|
||||||
$$PWD/dialoghistory.ui \
|
$$PWD/dialoghistory.ui \
|
||||||
|
$$PWD/dialoglayoutscale.ui \
|
||||||
$$PWD/dialogpatternproperties.ui \
|
$$PWD/dialogpatternproperties.ui \
|
||||||
$$PWD/dialognewpattern.ui \
|
$$PWD/dialognewpattern.ui \
|
||||||
$$PWD/dialogaboutapp.ui \
|
$$PWD/dialogaboutapp.ui \
|
||||||
|
|
|
@ -151,26 +151,15 @@ DialogSaveLayout::DialogSaveLayout(int count, Draw mode, const QString &fileName
|
||||||
|
|
||||||
InitTemplates(ui->comboBoxTemplates);
|
InitTemplates(ui->comboBoxTemplates);
|
||||||
|
|
||||||
|
connect(ui->toolButtonScaleConnected, &QToolButton::clicked, this, &DialogSaveLayout::ToggleScaleConnection);
|
||||||
|
|
||||||
|
connect(ui->doubleSpinBoxHorizontalScale, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
||||||
|
this, &DialogSaveLayout::HorizontalScaleChanged);
|
||||||
|
connect(ui->doubleSpinBoxVerticalScale, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
||||||
|
this, &DialogSaveLayout::VerticalScaleChanged);
|
||||||
|
|
||||||
ReadSettings();
|
ReadSettings();
|
||||||
|
|
||||||
// connect for the template drop down box of the tiled pds
|
|
||||||
connect(ui->comboBoxTemplates, QOverload<int>::of(&QComboBox::currentIndexChanged),
|
|
||||||
this, &DialogSaveLayout::WriteSettings);
|
|
||||||
|
|
||||||
// connects for the margins of the tiled pdf
|
|
||||||
connect(ui->doubleSpinBoxLeftField, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
|
||||||
this, &DialogSaveLayout::WriteSettings);
|
|
||||||
connect(ui->doubleSpinBoxTopField, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
|
||||||
this, &DialogSaveLayout::WriteSettings);
|
|
||||||
connect(ui->doubleSpinBoxRightField, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
|
||||||
this, &DialogSaveLayout::WriteSettings);
|
|
||||||
connect(ui->doubleSpinBoxBottomField, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
|
|
||||||
this, &DialogSaveLayout::WriteSettings);
|
|
||||||
|
|
||||||
// connects for the orientation buttons for the tiled pdf
|
|
||||||
connect(ui->toolButtonPortrait, &QToolButton::toggled, this, &DialogSaveLayout::WriteSettings);
|
|
||||||
connect(ui->toolButtonLandscape, &QToolButton::toggled, this, &DialogSaveLayout::WriteSettings);
|
|
||||||
|
|
||||||
ShowExample();//Show example for current format.
|
ShowExample();//Show example for current format.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -520,6 +509,8 @@ LayoutExportFormats DialogSaveLayout::Format() const
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSaveLayout::Save()
|
void DialogSaveLayout::Save()
|
||||||
{
|
{
|
||||||
|
WriteSettings();
|
||||||
|
|
||||||
for (int i=0; i < count; ++i)
|
for (int i=0; i < count; ++i)
|
||||||
{
|
{
|
||||||
const QString name = Path()+'/'+FileName()+QString::number(i+1)+ExportFormatSuffix(Format());
|
const QString name = Path()+'/'+FileName()+QString::number(i+1)+ExportFormatSuffix(Format());
|
||||||
|
@ -623,6 +614,39 @@ void DialogSaveLayout::ShowExample()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSaveLayout::ToggleScaleConnection()
|
||||||
|
{
|
||||||
|
m_scaleConnected = not m_scaleConnected;
|
||||||
|
|
||||||
|
QIcon icon;
|
||||||
|
icon.addFile(m_scaleConnected ? QStringLiteral(":/icon/32x32/link.png")
|
||||||
|
: QStringLiteral(":/icon/32x32/broken_link.png"));
|
||||||
|
ui->toolButtonScaleConnected->setIcon(icon);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSaveLayout::HorizontalScaleChanged(double d)
|
||||||
|
{
|
||||||
|
if (m_scaleConnected)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxVerticalScale->blockSignals(true);
|
||||||
|
ui->doubleSpinBoxVerticalScale->setValue(d);
|
||||||
|
ui->doubleSpinBoxVerticalScale->blockSignals(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSaveLayout::VerticalScaleChanged(double d)
|
||||||
|
{
|
||||||
|
if (m_scaleConnected)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxHorizontalScale->blockSignals(true);
|
||||||
|
ui->doubleSpinBoxHorizontalScale->setValue(d);
|
||||||
|
ui->doubleSpinBoxHorizontalScale->blockSignals(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
bool DialogSaveLayout::IsTextAsPaths() const
|
bool DialogSaveLayout::IsTextAsPaths() const
|
||||||
{
|
{
|
||||||
|
@ -719,6 +743,30 @@ PageOrientation DialogSaveLayout::GetTiledPageOrientation() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSaveLayout::SetXScale(qreal scale)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxHorizontalScale->setValue(scale * 100.);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal DialogSaveLayout::GetXScale() const
|
||||||
|
{
|
||||||
|
return ui->doubleSpinBoxHorizontalScale->value() / 100.;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSaveLayout::SetYScale(qreal scale)
|
||||||
|
{
|
||||||
|
ui->doubleSpinBoxVerticalScale->setValue(scale * 100.);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal DialogSaveLayout::GetYScale() const
|
||||||
|
{
|
||||||
|
return ui->doubleSpinBoxVerticalScale->value() / 100.;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSaveLayout::showEvent(QShowEvent *event)
|
void DialogSaveLayout::showEvent(QShowEvent *event)
|
||||||
{
|
{
|
||||||
|
|
|
@ -86,6 +86,12 @@ public:
|
||||||
void SetTiledPageOrientation(PageOrientation orientation);
|
void SetTiledPageOrientation(PageOrientation orientation);
|
||||||
PageOrientation GetTiledPageOrientation() const;
|
PageOrientation GetTiledPageOrientation() const;
|
||||||
|
|
||||||
|
void SetXScale(qreal scale);
|
||||||
|
qreal GetXScale() const;
|
||||||
|
|
||||||
|
void SetYScale(qreal scale);
|
||||||
|
qreal GetYScale() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void showEvent(QShowEvent *event) override;
|
virtual void showEvent(QShowEvent *event) override;
|
||||||
void InitTemplates(QComboBox *comboBoxTemplates);
|
void InitTemplates(QComboBox *comboBoxTemplates);
|
||||||
|
@ -94,6 +100,9 @@ private slots:
|
||||||
void Save();
|
void Save();
|
||||||
void PathChanged(const QString &text);
|
void PathChanged(const QString &text);
|
||||||
void ShowExample();
|
void ShowExample();
|
||||||
|
void ToggleScaleConnection();
|
||||||
|
void HorizontalScaleChanged(double d);
|
||||||
|
void VerticalScaleChanged(double d);
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(DialogSaveLayout)
|
Q_DISABLE_COPY(DialogSaveLayout)
|
||||||
Ui::DialogSaveLAyout *ui;
|
Ui::DialogSaveLAyout *ui;
|
||||||
|
@ -101,6 +110,7 @@ private:
|
||||||
bool isInitialized;
|
bool isInitialized;
|
||||||
Draw m_mode;
|
Draw m_mode;
|
||||||
bool m_tiledExportMode;
|
bool m_tiledExportMode;
|
||||||
|
bool m_scaleConnected{true};
|
||||||
|
|
||||||
static bool havePdf;
|
static bool havePdf;
|
||||||
static bool tested;
|
static bool tested;
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>719</width>
|
<width>493</width>
|
||||||
<height>314</height>
|
<height>391</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -17,20 +17,20 @@
|
||||||
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||||
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
|
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QFormLayout" name="formLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
<item row="0" column="0">
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Path:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Path:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="lineEditPath">
|
<widget class="QLineEdit" name="lineEditPath">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButtonBrowse">
|
<widget class="QPushButton" name="pushButtonBrowse">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
|
@ -61,44 +61,229 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item>
|
||||||
<widget class="QLabel" name="label_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
<property name="text">
|
<item>
|
||||||
<string>File format:</string>
|
<widget class="QLabel" name="label_2">
|
||||||
</property>
|
<property name="sizePolicy">
|
||||||
</widget>
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>File format:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="comboBoxFormat">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item>
|
||||||
<widget class="QComboBox" name="comboBoxFormat">
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
<property name="sizePolicy">
|
<item>
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
<widget class="QGroupBox" name="groupBoxFormatOptions">
|
||||||
<horstretch>0</horstretch>
|
<property name="title">
|
||||||
<verstretch>0</verstretch>
|
<string>Options</string>
|
||||||
</sizepolicy>
|
</property>
|
||||||
</property>
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
</widget>
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBoxBinaryDXF">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Binary form</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBoxTextAsPaths">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Text as paths</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBoxScale">
|
||||||
|
<property name="title">
|
||||||
|
<string>Scale</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Horizontal:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Vertical:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxHorizontalScale">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>%</string>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>300.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>100.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBoxVerticalScale">
|
||||||
|
<property name="suffix">
|
||||||
|
<string>%</string>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>300.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>100.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p><span style=" font-size:16pt;">┐</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignHCenter">
|
||||||
|
<widget class="QToolButton" name="toolButtonScaleConnected">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||||
|
<normaloff>:/icon/32x32/link.png</normaloff>:/icon/32x32/link.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>32</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="popupMode">
|
||||||
|
<enum>QToolButton::DelayedPopup</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignHCenter">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p><span style=" font-size:16pt; font-weight:600;">┘</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item>
|
||||||
<widget class="QCheckBox" name="checkBoxBinaryDXF">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Binary form</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QCheckBox" name="checkBoxTextAsPaths">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Text as paths</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBoxMargins">
|
<widget class="QGroupBox" name="groupBoxMargins">
|
||||||
|
@ -148,6 +333,9 @@
|
||||||
<property name="suffix">
|
<property name="suffix">
|
||||||
<string>cm</string>
|
<string>cm</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
|
@ -164,6 +352,9 @@
|
||||||
<property name="suffix">
|
<property name="suffix">
|
||||||
<string>cm</string>
|
<string>cm</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -204,6 +395,9 @@
|
||||||
<property name="suffix">
|
<property name="suffix">
|
||||||
<string>cm</string>
|
<string>cm</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
|
@ -224,6 +418,9 @@
|
||||||
<property name="suffix">
|
<property name="suffix">
|
||||||
<string>cm</string>
|
<string>cm</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -239,79 +436,75 @@
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Paper format</string>
|
<string>Paper format</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item>
|
<item row="0" column="0">
|
||||||
<layout class="QFormLayout" name="formLayout_4">
|
<widget class="QLabel" name="labelTemplates">
|
||||||
<item row="1" column="0">
|
<property name="text">
|
||||||
<widget class="QLabel" name="labelTemplates">
|
<string>Templates:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="comboBoxTemplates"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Orientation:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="toolButtonPortrait">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Templates:</string>
|
<string notr="true">...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||||
|
<normaloff>:/icon/16x16/portrait.png</normaloff>:/icon/16x16/portrait.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoExclusive">
|
||||||
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item>
|
||||||
<widget class="QComboBox" name="comboBoxTemplates"/>
|
<widget class="QToolButton" name="toolButtonLandscape">
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_5">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Orientation:</string>
|
<string notr="true">...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
||||||
|
<normaloff>:/icon/16x16/landscape.png</normaloff>:/icon/16x16/landscape.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoExclusive">
|
||||||
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<spacer name="horizontalSpacer">
|
||||||
<item>
|
<property name="orientation">
|
||||||
<widget class="QToolButton" name="toolButtonPortrait">
|
<enum>Qt::Horizontal</enum>
|
||||||
<property name="text">
|
</property>
|
||||||
<string notr="true">...</string>
|
<property name="sizeHint" stdset="0">
|
||||||
</property>
|
<size>
|
||||||
<property name="icon">
|
<width>40</width>
|
||||||
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
<height>20</height>
|
||||||
<normaloff>:/icon/16x16/portrait.png</normaloff>:/icon/16x16/portrait.png</iconset>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="checkable">
|
</spacer>
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="autoExclusive">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="toolButtonLandscape">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
|
|
||||||
<normaloff>:/icon/16x16/landscape.png</normaloff>:/icon/16x16/landscape.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="autoExclusive">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="horizontalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
@ -320,19 +513,28 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item>
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>File name:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="1">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetDefaultConstraint</enum>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>File name:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="lineEditFileName">
|
<widget class="QLineEdit" name="lineEditFileName">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
|
@ -347,6 +549,12 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="labelExample">
|
<widget class="QLabel" name="labelExample">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>130</width>
|
<width>130</width>
|
||||||
|
@ -363,7 +571,7 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0" colspan="2">
|
<item>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
|
|
|
@ -5527,6 +5527,8 @@ bool MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
m_dialogSaveLayout->SelectFormat(static_cast<LayoutExportFormats>(expParams->OptExportType()));
|
m_dialogSaveLayout->SelectFormat(static_cast<LayoutExportFormats>(expParams->OptExportType()));
|
||||||
m_dialogSaveLayout->SetBinaryDXFFormat(expParams->IsBinaryDXF());
|
m_dialogSaveLayout->SetBinaryDXFFormat(expParams->IsBinaryDXF());
|
||||||
m_dialogSaveLayout->SetTextAsPaths(expParams->IsTextAsPaths());
|
m_dialogSaveLayout->SetTextAsPaths(expParams->IsTextAsPaths());
|
||||||
|
m_dialogSaveLayout->SetXScale(expParams->ExportXScale());
|
||||||
|
m_dialogSaveLayout->SetYScale(expParams->ExportYScale());
|
||||||
|
|
||||||
if (static_cast<LayoutExportFormats>(expParams->OptExportType()) == LayoutExportFormats::PDFTiled)
|
if (static_cast<LayoutExportFormats>(expParams->OptExportType()) == LayoutExportFormats::PDFTiled)
|
||||||
{
|
{
|
||||||
|
@ -5562,6 +5564,8 @@ bool MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
m_dialogSaveLayout->SetDestinationPath(expParams->OptDestinationPath());
|
m_dialogSaveLayout->SetDestinationPath(expParams->OptDestinationPath());
|
||||||
m_dialogSaveLayout->SelectFormat(static_cast<LayoutExportFormats>(expParams->OptExportType()));
|
m_dialogSaveLayout->SelectFormat(static_cast<LayoutExportFormats>(expParams->OptExportType()));
|
||||||
m_dialogSaveLayout->SetBinaryDXFFormat(expParams->IsBinaryDXF());
|
m_dialogSaveLayout->SetBinaryDXFFormat(expParams->IsBinaryDXF());
|
||||||
|
m_dialogSaveLayout->SetXScale(expParams->ExportXScale());
|
||||||
|
m_dialogSaveLayout->SetYScale(expParams->ExportYScale());
|
||||||
|
|
||||||
if (static_cast<LayoutExportFormats>(expParams->OptExportType()) == LayoutExportFormats::PDFTiled)
|
if (static_cast<LayoutExportFormats>(expParams->OptExportType()) == LayoutExportFormats::PDFTiled)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "../vlayout/vlayoutgenerator.h"
|
#include "../vlayout/vlayoutgenerator.h"
|
||||||
#include "dialogs/dialoglayoutprogress.h"
|
#include "dialogs/dialoglayoutprogress.h"
|
||||||
#include "dialogs/dialogsavelayout.h"
|
#include "dialogs/dialogsavelayout.h"
|
||||||
|
#include "dialogs/dialoglayoutscale.h"
|
||||||
#include "../vlayout/vposter.h"
|
#include "../vlayout/vposter.h"
|
||||||
#include "../vpatterndb/floatItemData/vpiecelabeldata.h"
|
#include "../vpatterndb/floatItemData/vpiecelabeldata.h"
|
||||||
#include "../vpatterndb/floatItemData/vpatternlabeldata.h"
|
#include "../vpatterndb/floatItemData/vpatternlabeldata.h"
|
||||||
|
@ -868,7 +869,9 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
|
||||||
auto *paper = qgraphicsitem_cast<QGraphicsRectItem *>(papers.at(i));
|
auto *paper = qgraphicsitem_cast<QGraphicsRectItem *>(papers.at(i));
|
||||||
if (paper)
|
if (paper)
|
||||||
{
|
{
|
||||||
*poster += posterazor->Calc(paper->rect().toRect(), i, orientation);
|
QRectF paperRect = paper->rect();
|
||||||
|
QSizeF image(paperRect.width() * m_xscale, paperRect.height() * m_yscale);
|
||||||
|
*poster += posterazor->Calc(image.toSize(), i, orientation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1213,8 +1216,8 @@ void MainWindowsNoGUI::SvgFile(const QString &name, QGraphicsRectItem *paper, QG
|
||||||
const QRectF r = paper->rect();
|
const QRectF r = paper->rect();
|
||||||
QSvgGenerator generator;
|
QSvgGenerator generator;
|
||||||
generator.setFileName(name);
|
generator.setFileName(name);
|
||||||
generator.setSize(QSize(qFloor(r.width() + margins.left() + margins.right()),
|
generator.setSize(QSize(qFloor(r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right()),
|
||||||
qFloor(r.height() + margins.top() + margins.bottom())));
|
qFloor(r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom())));
|
||||||
generator.setViewBox(QRectF(0, 0, r.width() + margins.left() + margins.right(),
|
generator.setViewBox(QRectF(0, 0, r.width() + margins.left() + margins.right(),
|
||||||
r.height() + margins.top() + margins.bottom()));
|
r.height() + margins.top() + margins.bottom()));
|
||||||
generator.setTitle(tr("Pattern"));
|
generator.setTitle(tr("Pattern"));
|
||||||
|
@ -1226,6 +1229,7 @@ void MainWindowsNoGUI::SvgFile(const QString &name, QGraphicsRectItem *paper, QG
|
||||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||||
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthHairLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthHairLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
||||||
painter.setBrush ( QBrush ( Qt::NoBrush ) );
|
painter.setBrush ( QBrush ( Qt::NoBrush ) );
|
||||||
|
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
|
||||||
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
|
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
|
||||||
painter.end();
|
painter.end();
|
||||||
}
|
}
|
||||||
|
@ -1240,8 +1244,8 @@ void MainWindowsNoGUI::PngFile(const QString &name, QGraphicsRectItem *paper, QG
|
||||||
{
|
{
|
||||||
const QRectF r = paper->rect();
|
const QRectF r = paper->rect();
|
||||||
// Create the image with the exact size of the shrunk scene
|
// Create the image with the exact size of the shrunk scene
|
||||||
QImage image(QSize(qFloor(r.width() + margins.left() + margins.right()),
|
QImage image(QSize(qFloor(r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right()),
|
||||||
qFloor(r.height() + margins.top() + margins.bottom())),
|
qFloor(r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom())),
|
||||||
QImage::Format_ARGB32);
|
QImage::Format_ARGB32);
|
||||||
image.fill(Qt::white);
|
image.fill(Qt::white);
|
||||||
QPainter painter(&image);
|
QPainter painter(&image);
|
||||||
|
@ -1249,6 +1253,7 @@ void MainWindowsNoGUI::PngFile(const QString &name, QGraphicsRectItem *paper, QG
|
||||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||||
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
||||||
painter.setBrush ( QBrush ( Qt::NoBrush ) );
|
painter.setBrush ( QBrush ( Qt::NoBrush ) );
|
||||||
|
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
|
||||||
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
|
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
|
||||||
image.save(name);
|
image.save(name);
|
||||||
}
|
}
|
||||||
|
@ -1271,9 +1276,11 @@ void MainWindowsNoGUI::PdfFile(const QString &name, QGraphicsRectItem *paper, QG
|
||||||
printer.setResolution(static_cast<int>(PrintDPI));
|
printer.setResolution(static_cast<int>(PrintDPI));
|
||||||
printer.setOrientation(QPrinter::Portrait);
|
printer.setOrientation(QPrinter::Portrait);
|
||||||
printer.setFullPage(ignorePrinterFields);
|
printer.setFullPage(ignorePrinterFields);
|
||||||
if (not printer.setPageSize(QPageSize(QSizeF(FromPixel(r.width() + margins.left() + margins.right(), Unit::Mm),
|
|
||||||
FromPixel(r.height() + margins.top() + margins.bottom(), Unit::Mm)),
|
qreal width = FromPixel(r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right(), Unit::Mm);
|
||||||
QPageSize::Millimeter)))
|
qreal height = FromPixel(r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom(), Unit::Mm);
|
||||||
|
|
||||||
|
if (not printer.setPageSize(QPageSize(QSizeF(width, height), QPageSize::Millimeter)))
|
||||||
{
|
{
|
||||||
qWarning() << tr("Cannot set printer page size");
|
qWarning() << tr("Cannot set printer page size");
|
||||||
}
|
}
|
||||||
|
@ -1298,6 +1305,7 @@ void MainWindowsNoGUI::PdfFile(const QString &name, QGraphicsRectItem *paper, QG
|
||||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||||
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
||||||
painter.setBrush ( QBrush ( Qt::NoBrush ) );
|
painter.setBrush ( QBrush ( Qt::NoBrush ) );
|
||||||
|
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
|
||||||
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
|
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
|
||||||
painter.end();
|
painter.end();
|
||||||
}
|
}
|
||||||
|
@ -1323,6 +1331,9 @@ void MainWindowsNoGUI::PdfTiledFile(const QString &name)
|
||||||
qWarning()<<tr("Pages will be cropped because they do not fit printer paper size.");
|
qWarning()<<tr("Pages will be cropped because they do not fit printer paper size.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_xscale = m_dialogSaveLayout->GetXScale();
|
||||||
|
m_yscale = m_dialogSaveLayout->GetYScale();
|
||||||
|
|
||||||
printer.setOutputFileName(name);
|
printer.setOutputFileName(name);
|
||||||
printer.setResolution(static_cast<int>(PrintDPI));
|
printer.setResolution(static_cast<int>(PrintDPI));
|
||||||
PrintPages(&printer);
|
PrintPages(&printer);
|
||||||
|
@ -1421,13 +1432,18 @@ void MainWindowsNoGUI::FlatDxfFile(const QString &name, int version, bool binary
|
||||||
PrepareTextForDXF(endStringPlaceholder, details);
|
PrepareTextForDXF(endStringPlaceholder, details);
|
||||||
VDxfPaintDevice generator;
|
VDxfPaintDevice generator;
|
||||||
generator.setFileName(name);
|
generator.setFileName(name);
|
||||||
generator.setSize(paper->rect().size().toSize());
|
|
||||||
|
const QRectF r = paper->rect();
|
||||||
|
generator.setSize(QSize(qFloor(r.width() * m_dialogSaveLayout->GetXScale()),
|
||||||
|
qFloor(r.height() * m_dialogSaveLayout->GetYScale())));
|
||||||
|
|
||||||
generator.setResolution(PrintDPI);
|
generator.setResolution(PrintDPI);
|
||||||
generator.SetVersion(static_cast<DRW::Version>(version));
|
generator.SetVersion(static_cast<DRW::Version>(version));
|
||||||
generator.SetBinaryFormat(binary);
|
generator.SetBinaryFormat(binary);
|
||||||
generator.setInsunits(VarInsunits::Millimeters);// Decided to always use mm. See issue #745
|
generator.setInsunits(VarInsunits::Millimeters);// Decided to always use mm. See issue #745
|
||||||
|
|
||||||
QPainter painter;
|
QPainter painter;
|
||||||
|
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
|
||||||
if (painter.begin(&generator))
|
if (painter.begin(&generator))
|
||||||
{
|
{
|
||||||
scene->render(&painter, paper->rect(), paper->rect(), Qt::IgnoreAspectRatio);
|
scene->render(&painter, paper->rect(), paper->rect(), Qt::IgnoreAspectRatio);
|
||||||
|
@ -1442,11 +1458,14 @@ void MainWindowsNoGUI::AAMADxfFile(const QString &name, int version, bool binary
|
||||||
{
|
{
|
||||||
VDxfPaintDevice generator;
|
VDxfPaintDevice generator;
|
||||||
generator.setFileName(name);
|
generator.setFileName(name);
|
||||||
generator.setSize(size);
|
generator.setSize(QSize(qCeil(size.width() * m_dialogSaveLayout->GetXScale()),
|
||||||
|
qCeil(size.height() * m_dialogSaveLayout->GetYScale())));
|
||||||
generator.setResolution(PrintDPI);
|
generator.setResolution(PrintDPI);
|
||||||
generator.SetVersion(static_cast<DRW::Version>(version));
|
generator.SetVersion(static_cast<DRW::Version>(version));
|
||||||
generator.SetBinaryFormat(binary);
|
generator.SetBinaryFormat(binary);
|
||||||
generator.setInsunits(VarInsunits::Millimeters);// Decided to always use mm. See issue #745
|
generator.setInsunits(VarInsunits::Millimeters);// Decided to always use mm. See issue #745
|
||||||
|
generator.SetXScale(m_dialogSaveLayout->GetXScale());
|
||||||
|
generator.SetYScale(m_dialogSaveLayout->GetYScale());
|
||||||
generator.ExportToAAMA(details);
|
generator.ExportToAAMA(details);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1461,6 +1480,8 @@ void MainWindowsNoGUI::ASTMDxfFile(const QString &name, int version, bool binary
|
||||||
generator.SetVersion(static_cast<DRW::Version>(version));
|
generator.SetVersion(static_cast<DRW::Version>(version));
|
||||||
generator.SetBinaryFormat(binary);
|
generator.SetBinaryFormat(binary);
|
||||||
generator.setInsunits(VarInsunits::Millimeters);// Decided to always use mm. See issue #745
|
generator.setInsunits(VarInsunits::Millimeters);// Decided to always use mm. See issue #745
|
||||||
|
generator.SetXScale(m_dialogSaveLayout->GetXScale());
|
||||||
|
generator.SetYScale(m_dialogSaveLayout->GetYScale());
|
||||||
generator.ExportToASTM(details);
|
generator.ExportToASTM(details);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1477,6 +1498,17 @@ void MainWindowsNoGUI::PreparePaper(int index) const
|
||||||
shadows.at(index)->setVisible(false);
|
shadows.at(index)->setVisible(false);
|
||||||
paper->setPen(QPen(Qt::white, 0.1, Qt::NoPen));// border
|
paper->setPen(QPen(Qt::white, 0.1, Qt::NoPen));// border
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QTransform matrix;
|
||||||
|
matrix.scale(m_xscale, m_yscale);
|
||||||
|
|
||||||
|
QList<QGraphicsItem *> paperDetails = details.at(index);
|
||||||
|
for (auto detail : paperDetails)
|
||||||
|
{
|
||||||
|
QTransform m = detail->transform();
|
||||||
|
m *= matrix;
|
||||||
|
detail->setTransform(m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1491,6 +1523,17 @@ void MainWindowsNoGUI::RestorePaper(int index) const
|
||||||
scenes.at(index)->setBackgroundBrush(brush);
|
scenes.at(index)->setBackgroundBrush(brush);
|
||||||
shadows.at(index)->setVisible(true);
|
shadows.at(index)->setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QTransform matrix;
|
||||||
|
matrix.scale(1./m_xscale, 1./m_yscale);
|
||||||
|
|
||||||
|
QList<QGraphicsItem *> paperDetails = details.at(index);
|
||||||
|
for (auto detail : paperDetails)
|
||||||
|
{
|
||||||
|
QTransform m = detail->transform();
|
||||||
|
m *= matrix;
|
||||||
|
detail->setTransform(m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1581,8 +1624,19 @@ void MainWindowsNoGUI::PrintPreview()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
DialogLayoutScale layoutScale(isTiled, this);
|
||||||
|
layoutScale.SetXScale(1);
|
||||||
|
layoutScale.SetYScale(1);
|
||||||
|
layoutScale.exec();
|
||||||
|
|
||||||
|
m_xscale = layoutScale.GetXScale();
|
||||||
|
m_yscale = layoutScale.GetYScale();
|
||||||
|
}
|
||||||
|
|
||||||
SetPrinterSettings(printer.data(), PrintType::PrintPreview);
|
SetPrinterSettings(printer.data(), PrintType::PrintPreview);
|
||||||
printer->setResolution(static_cast<int>(PrintDPI));
|
printer->setResolution(static_cast<int>(PrintDPI));
|
||||||
|
|
||||||
// display print preview dialog
|
// display print preview dialog
|
||||||
QPrintPreviewDialog preview(printer.data());
|
QPrintPreviewDialog preview(printer.data());
|
||||||
connect(&preview, &QPrintPreviewDialog::paintRequested, this, &MainWindowsNoGUI::PrintPages);
|
connect(&preview, &QPrintPreviewDialog::paintRequested, this, &MainWindowsNoGUI::PrintPages);
|
||||||
|
@ -1613,6 +1667,16 @@ void MainWindowsNoGUI::LayoutPrint()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
DialogLayoutScale layoutScale(isTiled, this);
|
||||||
|
layoutScale.SetXScale(1);
|
||||||
|
layoutScale.SetYScale(1);
|
||||||
|
layoutScale.exec();
|
||||||
|
|
||||||
|
m_xscale = layoutScale.GetXScale();
|
||||||
|
m_yscale = layoutScale.GetYScale();
|
||||||
|
}
|
||||||
|
|
||||||
SetPrinterSettings(printer.data(), PrintType::PrintNative);
|
SetPrinterSettings(printer.data(), PrintType::PrintNative);
|
||||||
QPrintDialog dialog(printer.data(), this );
|
QPrintDialog dialog(printer.data(), this );
|
||||||
// If only user couldn't change page margins we could use method setMinMax();
|
// If only user couldn't change page margins we could use method setMinMax();
|
||||||
|
|
|
@ -162,6 +162,9 @@ private:
|
||||||
|
|
||||||
QString layoutPrinterName;
|
QString layoutPrinterName;
|
||||||
|
|
||||||
|
qreal m_xscale{1};
|
||||||
|
qreal m_yscale{1};
|
||||||
|
|
||||||
static QList<QGraphicsItem *> CreateShadows(const QList<QGraphicsItem *> &papers);
|
static QList<QGraphicsItem *> CreateShadows(const QList<QGraphicsItem *> &papers);
|
||||||
static QList<QGraphicsScene *> CreateScenes(const QList<QGraphicsItem *> &papers,
|
static QList<QGraphicsScene *> CreateScenes(const QList<QGraphicsItem *> &papers,
|
||||||
const QList<QGraphicsItem *> &shadows,
|
const QList<QGraphicsItem *> &shadows,
|
||||||
|
|
|
@ -587,6 +587,30 @@ void VDxfEngine::setInsunits(const VarInsunits &var)
|
||||||
varInsunits = var;
|
varInsunits = var;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VDxfEngine::GetXScale() const
|
||||||
|
{
|
||||||
|
return m_xscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VDxfEngine::SetXScale(const qreal &xscale)
|
||||||
|
{
|
||||||
|
m_xscale = xscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VDxfEngine::GetYScale() const
|
||||||
|
{
|
||||||
|
return m_yscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VDxfEngine::SetYScale(const qreal &yscale)
|
||||||
|
{
|
||||||
|
m_yscale = yscale;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QT_WARNING_PUSH
|
QT_WARNING_PUSH
|
||||||
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
|
@ -642,7 +666,7 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
|
||||||
|
|
||||||
ExportStyleSystemText(input, details);
|
ExportStyleSystemText(input, details);
|
||||||
|
|
||||||
for(auto &detail : details)
|
for(auto detail : details)
|
||||||
{
|
{
|
||||||
dx_ifaceBlock *detailBlock = new dx_ifaceBlock();
|
dx_ifaceBlock *detailBlock = new dx_ifaceBlock();
|
||||||
|
|
||||||
|
@ -655,6 +679,8 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
|
||||||
detailBlock->name = blockName.toStdString();
|
detailBlock->name = blockName.toStdString();
|
||||||
detailBlock->layer = '1';
|
detailBlock->layer = '1';
|
||||||
|
|
||||||
|
detail.Scale(m_xscale, m_yscale);
|
||||||
|
|
||||||
ExportAAMAOutline(detailBlock, detail);
|
ExportAAMAOutline(detailBlock, detail);
|
||||||
ExportAAMADraw(detailBlock, detail);
|
ExportAAMADraw(detailBlock, detail);
|
||||||
ExportAAMAIntcut(detailBlock, detail);
|
ExportAAMAIntcut(detailBlock, detail);
|
||||||
|
@ -775,7 +801,7 @@ void VDxfEngine::ExportPieceText(dx_ifaceBlock *detailBlock, const VLayoutPiece
|
||||||
|
|
||||||
for (int i = 0; i < list.size(); ++i)
|
for (int i = 0; i < list.size(); ++i)
|
||||||
{
|
{
|
||||||
QPointF pos(startPos.x(), startPos.y() - ToPixel(AAMATextHeight, varInsunits)*(list.size() - i-1));
|
QPointF pos(startPos.x(), startPos.y() - ToPixel(AAMATextHeight * m_yscale, varInsunits)*(list.size() - i-1));
|
||||||
detailBlock->ent.push_back(AAMAText(pos, list.at(i), QChar('1')));
|
detailBlock->ent.push_back(AAMAText(pos, list.at(i), QChar('1')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -790,7 +816,8 @@ void VDxfEngine::ExportStyleSystemText(const QSharedPointer<dx_iface> &input, co
|
||||||
{
|
{
|
||||||
for (int j = 0; j < strings.size(); ++j)
|
for (int j = 0; j < strings.size(); ++j)
|
||||||
{
|
{
|
||||||
QPointF pos(0, getSize().height() - ToPixel(AAMATextHeight, varInsunits)*(strings.size() - j-1));
|
QPointF pos(0, getSize().height() -
|
||||||
|
ToPixel(AAMATextHeight * m_yscale, varInsunits)*(strings.size() - j-1));
|
||||||
input->AddEntity(AAMAText(pos, strings.at(j), QChar('1')));
|
input->AddEntity(AAMAText(pos, strings.at(j), QChar('1')));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -840,7 +867,7 @@ bool VDxfEngine::ExportToASTM(const QVector<VLayoutPiece> &details)
|
||||||
|
|
||||||
ExportStyleSystemText(input, details);
|
ExportStyleSystemText(input, details);
|
||||||
|
|
||||||
for(auto &detail : details)
|
for(auto detail : details)
|
||||||
{
|
{
|
||||||
dx_ifaceBlock *detailBlock = new dx_ifaceBlock();
|
dx_ifaceBlock *detailBlock = new dx_ifaceBlock();
|
||||||
|
|
||||||
|
@ -853,6 +880,8 @@ bool VDxfEngine::ExportToASTM(const QVector<VLayoutPiece> &details)
|
||||||
detailBlock->name = blockName.toStdString();
|
detailBlock->name = blockName.toStdString();
|
||||||
detailBlock->layer = '1';
|
detailBlock->layer = '1';
|
||||||
|
|
||||||
|
detail.Scale(m_xscale, m_yscale);
|
||||||
|
|
||||||
ExportASTMPieceBoundary(detailBlock, detail);
|
ExportASTMPieceBoundary(detailBlock, detail);
|
||||||
ExportASTMSewLine(detailBlock, detail);
|
ExportASTMSewLine(detailBlock, detail);
|
||||||
ExportASTMInternalLine(detailBlock, detail);
|
ExportASTMInternalLine(detailBlock, detail);
|
||||||
|
|
|
@ -92,6 +92,12 @@ public:
|
||||||
void setMeasurement(const VarMeasurement &var);
|
void setMeasurement(const VarMeasurement &var);
|
||||||
void setInsunits(const VarInsunits &var);
|
void setInsunits(const VarInsunits &var);
|
||||||
|
|
||||||
|
qreal GetXScale() const;
|
||||||
|
void SetXScale(const qreal &xscale);
|
||||||
|
|
||||||
|
qreal GetYScale() const;
|
||||||
|
void SetYScale(const qreal &yscale);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VDxfEngine)
|
Q_DISABLE_COPY(VDxfEngine)
|
||||||
QSize size;
|
QSize size;
|
||||||
|
@ -104,6 +110,8 @@ private:
|
||||||
VarMeasurement varMeasurement;
|
VarMeasurement varMeasurement;
|
||||||
VarInsunits varInsunits;
|
VarInsunits varInsunits;
|
||||||
DRW_Text *textBuffer;
|
DRW_Text *textBuffer;
|
||||||
|
qreal m_xscale{1};
|
||||||
|
qreal m_yscale{1};
|
||||||
|
|
||||||
Q_REQUIRED_RESULT double FromPixel(double pix, const VarInsunits &unit) const;
|
Q_REQUIRED_RESULT double FromPixel(double pix, const VarInsunits &unit) const;
|
||||||
Q_REQUIRED_RESULT double ToPixel(double val, const VarInsunits &unit) const;
|
Q_REQUIRED_RESULT double ToPixel(double val, const VarInsunits &unit) const;
|
||||||
|
|
|
@ -162,6 +162,40 @@ void VDxfPaintDevice::setInsunits(const VarInsunits &var)
|
||||||
engine->setInsunits(var);
|
engine->setInsunits(var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VDxfPaintDevice::GetXScale() const
|
||||||
|
{
|
||||||
|
return engine->GetYScale();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VDxfPaintDevice::SetXScale(const qreal &xscale)
|
||||||
|
{
|
||||||
|
if (engine->isActive())
|
||||||
|
{
|
||||||
|
qWarning("VDxfPaintDevice::SetXScale(), cannot set x scale while Dxf is being generated");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
engine->SetXScale(xscale);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VDxfPaintDevice::GetYScale() const
|
||||||
|
{
|
||||||
|
return engine->GetXScale();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VDxfPaintDevice::SetYScale(const qreal &yscale)
|
||||||
|
{
|
||||||
|
if (engine->isActive())
|
||||||
|
{
|
||||||
|
qWarning("VDxfPaintDevice::SetYScale(), cannot set y scale while Dxf is being generated");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
engine->SetYScale(yscale);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
bool VDxfPaintDevice::ExportToAAMA(const QVector<VLayoutPiece> &details) const
|
bool VDxfPaintDevice::ExportToAAMA(const QVector<VLayoutPiece> &details) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -66,6 +66,12 @@ public:
|
||||||
void setMeasurement(const VarMeasurement &var);
|
void setMeasurement(const VarMeasurement &var);
|
||||||
void setInsunits(const VarInsunits &var);
|
void setInsunits(const VarInsunits &var);
|
||||||
|
|
||||||
|
qreal GetXScale() const;
|
||||||
|
void SetXScale(const qreal &xscale);
|
||||||
|
|
||||||
|
qreal GetYScale() const;
|
||||||
|
void SetYScale(const qreal &yscale);
|
||||||
|
|
||||||
bool ExportToAAMA(const QVector<VLayoutPiece> &details) const;
|
bool ExportToAAMA(const QVector<VLayoutPiece> &details) const;
|
||||||
bool ExportToASTM(const QVector<VLayoutPiece> &details) const;
|
bool ExportToASTM(const QVector<VLayoutPiece> &details) const;
|
||||||
|
|
||||||
|
|
|
@ -830,6 +830,14 @@ void VLayoutPiece::Translate(qreal dx, qreal dy)
|
||||||
d->matrix *= m;
|
d->matrix *= m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VLayoutPiece::Scale(qreal sx, qreal sy)
|
||||||
|
{
|
||||||
|
QTransform m;
|
||||||
|
m.scale(sx, sy);
|
||||||
|
d->matrix *= m;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VLayoutPiece::Rotate(const QPointF &originPoint, qreal degrees)
|
void VLayoutPiece::Rotate(const QPointF &originPoint, qreal degrees)
|
||||||
{
|
{
|
||||||
|
|
|
@ -126,6 +126,7 @@ public:
|
||||||
void SetMirror(bool value);
|
void SetMirror(bool value);
|
||||||
|
|
||||||
void Translate(qreal dx, qreal dy);
|
void Translate(qreal dx, qreal dy);
|
||||||
|
void Scale(qreal sx, qreal sy);
|
||||||
void Rotate(const QPointF &originPoint, qreal degrees);
|
void Rotate(const QPointF &originPoint, qreal degrees);
|
||||||
void Mirror(const QLineF &edge);
|
void Mirror(const QLineF &edge);
|
||||||
void Mirror();
|
void Mirror();
|
||||||
|
|
|
@ -53,6 +53,8 @@ const QString LONG_OPTION_BINARYDXF = QStringLiteral("bdxf");
|
||||||
const QString LONG_OPTION_TEXT2PATHS = QStringLiteral("text2paths");
|
const QString LONG_OPTION_TEXT2PATHS = QStringLiteral("text2paths");
|
||||||
const QString LONG_OPTION_EXPORTONLYDETAILS = QStringLiteral("exportOnlyDetails");
|
const QString LONG_OPTION_EXPORTONLYDETAILS = QStringLiteral("exportOnlyDetails");
|
||||||
const QString LONG_OPTION_EXPORTSUCHDETAILS = QStringLiteral("exportSuchDetails");
|
const QString LONG_OPTION_EXPORTSUCHDETAILS = QStringLiteral("exportSuchDetails");
|
||||||
|
const QString LONG_OPTION_EXPXSCALE = QStringLiteral("xscale");
|
||||||
|
const QString LONG_OPTION_EXPYSCALE = QStringLiteral("yscale");
|
||||||
|
|
||||||
const QString LONG_OPTION_CROP_LENGTH = QStringLiteral("crop");
|
const QString LONG_OPTION_CROP_LENGTH = QStringLiteral("crop");
|
||||||
const QString SINGLE_OPTION_CROP_LENGTH = QStringLiteral("c");
|
const QString SINGLE_OPTION_CROP_LENGTH = QStringLiteral("c");
|
||||||
|
@ -153,6 +155,8 @@ QStringList AllKeys()
|
||||||
LONG_OPTION_TEXT2PATHS,
|
LONG_OPTION_TEXT2PATHS,
|
||||||
LONG_OPTION_EXPORTONLYDETAILS,
|
LONG_OPTION_EXPORTONLYDETAILS,
|
||||||
LONG_OPTION_EXPORTSUCHDETAILS,
|
LONG_OPTION_EXPORTSUCHDETAILS,
|
||||||
|
LONG_OPTION_EXPXSCALE,
|
||||||
|
LONG_OPTION_EXPYSCALE,
|
||||||
LONG_OPTION_CROP_LENGTH, SINGLE_OPTION_CROP_LENGTH,
|
LONG_OPTION_CROP_LENGTH, SINGLE_OPTION_CROP_LENGTH,
|
||||||
LONG_OPTION_CROP_WIDTH,
|
LONG_OPTION_CROP_WIDTH,
|
||||||
LONG_OPTION_UNITE, SINGLE_OPTION_UNITE,
|
LONG_OPTION_UNITE, SINGLE_OPTION_UNITE,
|
||||||
|
|
|
@ -50,6 +50,8 @@ extern const QString LONG_OPTION_BINARYDXF;
|
||||||
extern const QString LONG_OPTION_TEXT2PATHS;
|
extern const QString LONG_OPTION_TEXT2PATHS;
|
||||||
extern const QString LONG_OPTION_EXPORTONLYDETAILS;
|
extern const QString LONG_OPTION_EXPORTONLYDETAILS;
|
||||||
extern const QString LONG_OPTION_EXPORTSUCHDETAILS;
|
extern const QString LONG_OPTION_EXPORTSUCHDETAILS;
|
||||||
|
extern const QString LONG_OPTION_EXPXSCALE;
|
||||||
|
extern const QString LONG_OPTION_EXPYSCALE;
|
||||||
|
|
||||||
extern const QString LONG_OPTION_CROP_LENGTH;
|
extern const QString LONG_OPTION_CROP_LENGTH;
|
||||||
extern const QString SINGLE_OPTION_CROP_LENGTH;
|
extern const QString SINGLE_OPTION_CROP_LENGTH;
|
||||||
|
|
|
@ -85,5 +85,9 @@
|
||||||
<file>icon/32x32/font_preferences.png</file>
|
<file>icon/32x32/font_preferences.png</file>
|
||||||
<file>icon/24x24/font_preferences@2x.png</file>
|
<file>icon/24x24/font_preferences@2x.png</file>
|
||||||
<file>icon/24x24/font_preferences.png</file>
|
<file>icon/24x24/font_preferences.png</file>
|
||||||
|
<file>icon/32x32/broken_link.png</file>
|
||||||
|
<file>icon/32x32/broken_link@2x.png</file>
|
||||||
|
<file>icon/32x32/link.png</file>
|
||||||
|
<file>icon/32x32/link@2x.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
BIN
src/libs/vmisc/share/resources/icon/32x32/broken_link.png
Normal file
BIN
src/libs/vmisc/share/resources/icon/32x32/broken_link.png
Normal file
Binary file not shown.
After (image error) Size: 1.5 KiB |
BIN
src/libs/vmisc/share/resources/icon/32x32/broken_link@2x.png
Normal file
BIN
src/libs/vmisc/share/resources/icon/32x32/broken_link@2x.png
Normal file
Binary file not shown.
After (image error) Size: 4.4 KiB |
BIN
src/libs/vmisc/share/resources/icon/32x32/link.png
Normal file
BIN
src/libs/vmisc/share/resources/icon/32x32/link.png
Normal file
Binary file not shown.
After (image error) Size: 1.2 KiB |
BIN
src/libs/vmisc/share/resources/icon/32x32/link@2x.png
Normal file
BIN
src/libs/vmisc/share/resources/icon/32x32/link@2x.png
Normal file
Binary file not shown.
After (image error) Size: 3.6 KiB |
Loading…
Reference in New Issue
Block a user