Merge branch 'develop' into feature/manual-layout

This commit is contained in:
Roman Telezhynskyi 2020-03-25 15:28:23 +02:00
parent 3ce9de7181
commit c6c4edb893
146 changed files with 16861 additions and 1775 deletions

3
.gitignore vendored
View File

@ -12,6 +12,9 @@
*(v*).vit* *(v*).vit*
*(v*).vst* *(v*).vst*
# Valentina's backup file
*.bak
# KDE directory preferences # KDE directory preferences
.directory .directory

View File

@ -2,8 +2,9 @@
host = https://www.transifex.com host = https://www.transifex.com
lang_map = uk: uk_UA, cs : cs_CZ, nl : nl_NL, fi : fi_FI, es : es_ES, id : id_ID lang_map = uk: uk_UA, cs : cs_CZ, nl : nl_NL, fi : fi_FI, es : es_ES, id : id_ID
[valentina-project.valentina_ts] [valentina-project.valentina-ts]
file_filter = share/translations/valentina_<lang>.ts file_filter = share/translations/valentina_<lang>.ts
minimum_perc = 20
source_file = share/translations/valentina.ts source_file = share/translations/valentina.ts
source_lang = en source_lang = en
type = QT type = QT

View File

@ -38,6 +38,15 @@
- Export tiled PDF with watermark. - Export tiled PDF with watermark.
- [#984] Issue with up to date list of unique names. - [#984] Issue with up to date list of unique names.
- Tracking changes/prevent "OK" recalculation after "Apply". - Tracking changes/prevent "OK" recalculation after "Apply".
- Change behavior for menu Pattern piece -> Show main path. Now it has an influence on export as well.
- Call Piece Options and Delete Piece from the piece list context menu.
- Change default values for grainline length and pattern label size to 10 cm.
- Tool Point at distance and angle now allows negative length.
- Export pattern to DXF-ASTM.
- [smart-pattern/valentina#18] Auto-created Visibility Group for group operation.
- Setting scale factor for export and print.
- New layout generator option: Prefer one sheet solution.
- [smart-pattern/valentina#15] Organization of groups - groups categories
# Version 0.6.2 (unreleased) # Version 0.6.2 (unreleased)
- [#903] Bug in tool Cut Spline path. - [#903] Bug in tool Cut Spline path.

View File

@ -933,5 +933,7 @@ MSVC_DEBUG_CXXFLAGS += \
-wd5026 \ # move constructor was implicitly defined as deleted -wd5026 \ # move constructor was implicitly defined as deleted
-wd5027 \ # move assignment operator was implicitly defined as deleted -wd5027 \ # move assignment operator was implicitly defined as deleted
-wd5039 \ # pointer or reference to potentially throwing function passed to extern C function under -EHc. -wd5039 \ # pointer or reference to potentially throwing function passed to extern C function under -EHc.
-wd4774 # format string expected in argument 3 is not a string literal -wd4774 \ # format string expected in argument 3 is not a string literal
-wd5204 # class has virtual functions, but its trivial destructor is not virtual; instances of objects derived
# from this class may not be destructed correctly
} }

View File

@ -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 "21 July, 2019" "valentina man page" .TH valentina 1 "22 March, 2020" "valentina man page"
.SH NAME .SH NAME
Valentina \- Pattern making program. Valentina \- Pattern making program.
.SH SYNOPSIS .SH SYNOPSIS
@ -102,6 +102,33 @@ The path to output destination folder. By default the directory at which the app
.BR "*" " AutoCAD DXF 2013 AAMA files (*.dxf) = 23," .BR "*" " AutoCAD DXF 2013 AAMA files (*.dxf) = 23,"
.RE .RE
.RS .RS
.BR "*" " AutoCAD DXF R10 ASTM файли (*.dxf) = 24,"
.RE
.RS
.BR "*" " AutoCAD DXF R11/12 ASTM файли (*.dxf) = 25,"
.RE
.RS
.BR "*" " AutoCAD DXF R13 ASTM файли (*.dxf) = 26,"
.RE
.RS
.BR "*" " AutoCAD DXF R14 ASTM файли (*.dxf) = 27,"
.RE
.RS
.BR "*" " AutoCAD DXF 2000 ASTM файли (*.dxf) = 28,"
.RE
.RS
.BR "*" " AutoCAD DXF 2004 ASTM файли (*.dxf) = 29,"
.RE
.RS
.BR "*" " AutoCAD DXF 2007 ASTM файли (*.dxf) = 30,"
.RE
.RS
.BR "*" " AutoCAD DXF 2010 ASTM файли (*.dxf) = 31,"
.RE
.RS
.BR "*" " AutoCAD DXF 2013 ASTM файли (*.dxf) = 32,"
.RE
.RS
.BR "*" " PDF tiled files (*.pdf) = 33." .BR "*" " PDF tiled files (*.pdf) = 33."
.RE .RE
.IP "--bdxf" .IP "--bdxf"
@ -186,16 +213,24 @@ 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"
.RB "Follow manual priority over priority by square (" "export mode" "). .RB "Follow manual priority over priority by square (" "export mode" ")."
.IP "--nestQuantity" .IP "--nestQuantity"
.RB "Nest quantity copies of each piece (" "export mode" "). .RB "Nest quantity copies of each piece (" "export mode" ").
.IP "-c, --crop" .IP "-c, --crop"
.RB "Auto crop unused length (" "export mode" ")." .RB "Auto crop unused length (" "export mode" ")."
.IP "--cropWidth"
.RB "Auto crop unused width (" "export mode" ")."
.IP "-u, --unite" .IP "-u, --unite"
.RB "Unite pages if possible (" "export mode" "). Maximum value limited by QImage that supports only a maximum of " "32768x32768 px" " images." .RB "Unite pages if possible (" "export mode" "). Maximum value limited by QImage that supports only a maximum of " "32768x32768 px" " images."
.IP "--preferOneSheetSolution"
.RB "Prefer one sheet layout solution (" "export mode" ")."
.IP "-S, --savelen" .IP "-S, --savelen"
.RB "Save length of the sheet if set (" "export mode" "). The option tells the program to use as much as possible width of sheet. Quality of a layout can be worse when this option was used." .RB "Save length of the sheet if set (" "export mode" "). The option tells the program to use as much as possible width of sheet. Quality of a layout can be worse when this option was used."
.IP "-l, --layounits <The unit>" .IP "-l, --layounits <The unit>"

View File

@ -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 "17 October, 2019" "valentina man page" .TH valentina 1 "22 March, 2020" "valentina man page"
.SH NAME .SH NAME
Valentina \- Pattern making program. Valentina \- Pattern making program.
.SH SYNOPSIS .SH SYNOPSIS
@ -102,6 +102,33 @@ The path to output destination folder. By default the directory at which the app
.BR "*" " AutoCAD DXF 2013 AAMA files (*.dxf) = 23," .BR "*" " AutoCAD DXF 2013 AAMA files (*.dxf) = 23,"
.RE .RE
.RS .RS
.BR "*" " AutoCAD DXF R10 ASTM файли (*.dxf) = 24,"
.RE
.RS
.BR "*" " AutoCAD DXF R11/12 ASTM файли (*.dxf) = 25,"
.RE
.RS
.BR "*" " AutoCAD DXF R13 ASTM файли (*.dxf) = 26,"
.RE
.RS
.BR "*" " AutoCAD DXF R14 ASTM файли (*.dxf) = 27,"
.RE
.RS
.BR "*" " AutoCAD DXF 2000 ASTM файли (*.dxf) = 28,"
.RE
.RS
.BR "*" " AutoCAD DXF 2004 ASTM файли (*.dxf) = 29,"
.RE
.RS
.BR "*" " AutoCAD DXF 2007 ASTM файли (*.dxf) = 30,"
.RE
.RS
.BR "*" " AutoCAD DXF 2010 ASTM файли (*.dxf) = 31,"
.RE
.RS
.BR "*" " AutoCAD DXF 2013 ASTM файли (*.dxf) = 32,"
.RE
.RS
.BR "*" " PDF tiled files (*.pdf) = 33." .BR "*" " PDF tiled files (*.pdf) = 33."
.RE .RE
.IP "--bdxf" .IP "--bdxf"
@ -186,10 +213,14 @@ 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"
.RB "Follow manual priority over priority by square (" "export mode" "). .RB "Follow manual priority over priority by square (" "export mode" ")."
.IP "--nestQuantity" .IP "--nestQuantity"
.RB "Nest quantity copies of each piece (" "export mode" "). .RB "Nest quantity copies of each piece (" "export mode" ").
.IP "-c, --crop" .IP "-c, --crop"
@ -198,6 +229,8 @@ The path to output destination folder. By default the directory at which the app
.RB "Auto crop unused width (" "export mode" ")." .RB "Auto crop unused width (" "export mode" ")."
.IP "-u, --unite" .IP "-u, --unite"
.RB "Unite pages if possible (" "export mode" "). Maximum value limited by QImage that supports only a maximum of " "32768x32768 px" " images." .RB "Unite pages if possible (" "export mode" "). Maximum value limited by QImage that supports only a maximum of " "32768x32768 px" " images."
.IP "--preferOneSheetSolution"
.RB "Prefer one sheet layout solution (" "export mode" ")."
.IP "-S, --savelen" .IP "-S, --savelen"
.RB "Save length of the sheet if set (" "export mode" "). The option tells the program to use as much as possible width of sheet. Quality of a layout can be worse when this option was used." .RB "Save length of the sheet if set (" "export mode" "). The option tells the program to use as much as possible width of sheet. Quality of a layout can be worse when this option was used."
.IP "-l, --layounits <The unit>" .IP "-l, --layounits <The unit>"

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation> <translation type="vanished">add union details</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2463,6 +2470,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2502,6 +2537,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2515,7 +2578,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation> <translation type="vanished">Unique pattern piece name</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2525,6 +2588,18 @@
<source>New group</source> <source>New group</source>
<translation>New group</translation> <translation>New group</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3064,6 +3139,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Left:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Right:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Bottom:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3363,6 +3497,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3775,6 +3917,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation type="unfinished">Center point</translation> <translation type="unfinished">Center point</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5460,6 +5630,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5567,6 +5761,34 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Options</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9780,6 +10002,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11565,6 +11794,26 @@ Do you want to save your changes?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11697,6 +11946,18 @@ Do you want to save your changes?</translation>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation type="unfinished">Length</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11868,6 +12129,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -12370,6 +12646,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12463,7 +12759,7 @@ Do you want to save your changes?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Can&apos;t open schema file %1: <translation type="vanished">Can&apos;t open schema file %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12472,7 +12768,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation> <translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12500,7 +12796,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation> <translation type="vanished">Could not load schema file &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -13104,6 +13400,14 @@ Do you want to save your changes?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13428,6 +13732,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13439,6 +13747,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Second line point</translation> <translation type="unfinished">Second line point</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13533,6 +13845,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -14133,6 +14449,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15662,6 +15982,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15723,6 +16228,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15732,7 +16249,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Rename</translation> <translation type="vanished">Rename</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15754,6 +16271,26 @@ Do you want to save your changes?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferences</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Přidat spojení jednotlivostí (dílů střihu)</translation> <translation type="vanished">Přidat spojení jednotlivostí (dílů střihu)</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Převrácení podle osy</translation> <translation>Převrácení podle osy</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Otáčení</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Převrácení podle čáry</translation> <translation>Převrácení podle čáry</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Otáčení</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Jedinečný název dílu střihu</translation> <translation type="vanished">Jedinečný název dílu střihu</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Nová skupina</translation> <translation>Nová skupina</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation>Koeficient účinnosti: %1%</translation> <translation>Koeficient účinnosti: %1%</translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Okraje</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Levý:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Pravý:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Nahoře:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Dole:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3349,6 +3483,14 @@ Přesto použít nastavení?</translation>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation>Automaticky ořezat nepoužívanou šířku</translation> <translation>Automaticky ořezat nepoužívanou šířku</translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3761,6 +3903,34 @@ Přesto použít nastavení?</translation>
<source>Center point</source> <source>Center point</source>
<translation>Středový bod</translation> <translation>Středový bod</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Otáčení</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5435,6 +5605,30 @@ Přesto použít nastavení?</translation>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation>Tento bod nemůže být původní bod. Vyberte, prosím, jiný původní bod</translation> <translation>Tento bod nemůže být původní bod. Vyberte, prosím, jiný původní bod</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Název:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5538,6 +5732,38 @@ Přesto použít nastavení?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Natočení:</translation> <translation>Natočení:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Volby</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9569,6 +9795,13 @@ Tato volba se projeví po opětovném spuštění.</translation>
<translation>Odstranit položku ze skupiny</translation> <translation>Odstranit položku ze skupiny</translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11233,6 +11466,26 @@ Chcete uložit změny?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation>Neplatná verze. Nejvyšší podporovaná verze formátu je %1</translation> <translation>Neplatná verze. Nejvyšší podporovaná verze formátu je %1</translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Nelze otevřít soubor %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Nelze otevřít soubor se schématem %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Nepodařilo se nahrát soubor se schématem &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Chyba při ověřování souboru %3 na řádku %1, ve sloupci %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11321,6 +11574,18 @@ Chcete uložit změny?</translation>
<source>Length</source> <source>Length</source>
<translation>Délka</translation> <translation>Délka</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11492,6 +11757,21 @@ Chcete uložit změny?</translation>
<translation>Neplatný zářez.</translation> <translation>Neplatný zářez.</translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11994,6 +12274,26 @@ Chcete uložit změny?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12087,7 +12387,7 @@ Chcete uložit změny?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Nelze otevřít soubor se schématem %1: <translation type="vanished">Nelze otevřít soubor se schématem %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12096,7 +12396,7 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Chyba při ověřování souboru %3 na řádku %1, ve sloupci %2</translation> <translation type="vanished">Chyba při ověřování souboru %3 na řádku %1, ve sloupci %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12124,7 +12424,7 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Nepodařilo se nahrát soubor se schématem &apos;%1&apos;.</translation> <translation type="vanished">Nepodařilo se nahrát soubor se schématem &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12717,6 +13017,14 @@ Chcete uložit změny?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation>Nelze vytvořit záznam historie pro nástroj.</translation> <translation>Nelze vytvořit záznam historie pro nástroj.</translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13034,6 +13342,10 @@ Chcete uložit změny?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation>Původní bod</translation> <translation>Původní bod</translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Převrácení podle osy</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13045,6 +13357,10 @@ Chcete uložit změny?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation>Druhý bod čáry</translation> <translation>Druhý bod čáry</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13139,6 +13455,10 @@ Chcete uložit změny?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation>Původní bod otočení</translation> <translation>Původní bod otočení</translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13739,6 +14059,10 @@ Chcete uložit změny?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation>Úhel otáčení</translation> <translation>Úhel otáčení</translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15238,6 +15562,191 @@ Chcete uložit změny?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation>OtočeníElOblouk_</translation> <translation>OtočeníElOblouk_</translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15299,6 +15808,18 @@ Chcete uložit změny?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation>Skrýt ne v rozvržení</translation> <translation>Skrýt ne v rozvržení</translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15308,7 +15829,7 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Přejmenovat</translation> <translation type="vanished">Přejmenovat</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15330,6 +15851,26 @@ Chcete uložit změny?</translation>
<source>Show All</source> <source>Show All</source>
<translation>Ukázat vše</translation> <translation>Ukázat vše</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Nastavení</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Verbindungsdetail hinzufügen</translation> <translation type="vanished">Verbindungsdetail hinzufügen</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Über Achse spiegeln</translation> <translation>Über Achse spiegeln</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Drehung</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Über Linie spiegeln</translation> <translation>Über Linie spiegeln</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Drehung</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Eindeutiger Name des Schnittteils</translation> <translation type="vanished">Eindeutiger Name des Schnittteils</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Neue Gruppe</translation> <translation>Neue Gruppe</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Links:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Rechts:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Oben:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Unten:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3348,6 +3482,14 @@ Einstellungen trotzdem anwenden?</translation>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3760,6 +3902,34 @@ Einstellungen trotzdem anwenden?</translation>
<source>Center point</source> <source>Center point</source>
<translation>Mittelpunkt</translation> <translation>Mittelpunkt</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Drehung</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5433,6 +5603,30 @@ Einstellungen trotzdem anwenden?</translation>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5536,6 +5730,38 @@ Einstellungen trotzdem anwenden?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Ausrichtung:</translation> <translation>Ausrichtung:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Optionen</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9549,6 +9775,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11190,6 +11423,25 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Konnte Datei %1 nicht öffnen: %2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Konnte Schemadatei %1 nicht öffnen:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Konnte Schemadatei %1 nicht öffnen.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Fehler bei der Gültigkeitsprüfung in Datei %3, Zeile %1, Spalte %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11278,6 +11530,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Länge</translation> <translation type="unfinished">Länge</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11445,6 +11709,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11943,6 +12222,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12035,7 +12334,7 @@ Do you want to save your changes?</source>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Konnte Schemadatei %1 nicht öffnen: <translation type="vanished">Konnte Schemadatei %1 nicht öffnen:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12044,7 +12343,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Fehler bei der Gültigkeitsprüfung in Datei %3, Zeile %1, Spalte %2</translation> <translation type="vanished">Fehler bei der Gültigkeitsprüfung in Datei %3, Zeile %1, Spalte %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12072,7 +12371,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Konnte Schemadatei %1 nicht öffnen.</translation> <translation type="vanished">Konnte Schemadatei %1 nicht öffnen.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12665,6 +12964,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -12954,6 +13261,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Über Achse spiegeln</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12965,6 +13276,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Punkt 2 der Linie</translation> <translation type="unfinished">Punkt 2 der Linie</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13059,6 +13374,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13651,6 +13970,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15146,6 +15469,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15207,6 +15715,18 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15216,7 +15736,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Umbenennen</translation> <translation type="vanished">Umbenennen</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15238,6 +15758,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Einstellungen</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">προσθήκη λεπτομερειών συνένωσης</translation> <translation type="vanished">προσθήκη λεπτομερειών συνένωσης</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2403,6 +2410,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Αναστροφή κατά άξονα</translation> <translation>Αναστροφή κατά άξονα</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Όνομα:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Περιστροφή</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2442,6 +2477,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Αναστροφή κατά γραμμή</translation> <translation>Αναστροφή κατά γραμμή</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Όνομα:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Περιστροφή</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2455,7 +2518,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Μοναδικό όνομα κομματιού πατρόν</translation> <translation type="vanished">Μοναδικό όνομα κομματιού πατρόν</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2465,6 +2528,18 @@
<source>New group</source> <source>New group</source>
<translation>Νέα ομάδα</translation> <translation>Νέα ομάδα</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2992,6 +3067,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Περιθώρια</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Αριστερά:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">εκ</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Δεξιά:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Επάνω:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Κάτω:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3276,6 +3410,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3688,6 +3830,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Κεντρικό σημείο</translation> <translation>Κεντρικό σημείο</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Όνομα:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Περιστροφή</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5349,6 +5519,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Όνομα:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5452,6 +5646,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Επιλογές</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9363,6 +9589,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -10973,6 +11206,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11061,6 +11312,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Μήκος</translation> <translation type="unfinished">Μήκος</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11228,6 +11491,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11614,6 +11892,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -11687,15 +11985,6 @@ Do you want to save your changes?</source>
%2.</source> %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11712,10 +12001,6 @@ Do you want to save your changes?</source>
<source>Could not copy temp file to document file</source> <source>Could not copy temp file to document file</source>
<translation type="vanished">Δεν ήταν δυνατή η αντιγραφή του προσωρινού αρχείου στο αρχείο εγγράφου</translation> <translation type="vanished">Δεν ήταν δυνατή η αντιγραφή του προσωρινού αρχείου στο αρχείο εγγράφου</translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12307,6 +12592,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -12608,6 +12901,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Αναστροφή κατά άξονα</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12619,6 +12916,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Δεύτερο σημείο γραμμής</translation> <translation type="unfinished">Δεύτερο σημείο γραμμής</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -12713,6 +13014,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13309,6 +13614,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -14734,6 +15043,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -14795,12 +15289,24 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Μετονομασία</translation> <translation type="vanished">Μετονομασία</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -14822,6 +15328,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Προτιμήσεις</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation> <translation type="vanished">add union details</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Flipping by axis</translation> <translation>Flipping by axis</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Flipping by line</translation> <translation>Flipping by line</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation> <translation type="vanished">Unique pattern piece name</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>New group</translation> <translation>New group</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Left:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Right:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Bottom:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3901,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Center point</translation> <translation>Center point</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5432,6 +5602,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5535,6 +5729,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Options</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9560,6 +9786,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11224,6 +11457,26 @@ Do you want to save your changes?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11312,6 +11565,18 @@ Do you want to save your changes?</translation>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation type="unfinished">Length</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11483,6 +11748,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11985,6 +12265,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12078,7 +12378,7 @@ Do you want to save your changes?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Can&apos;t open schema file %1: <translation type="vanished">Can&apos;t open schema file %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12087,7 +12387,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation> <translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12115,7 +12415,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation> <translation type="vanished">Could not load schema file &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12708,6 +13008,14 @@ Do you want to save your changes?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13025,6 +13333,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Flipping by axis</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13348,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Second line point</translation> <translation type="unfinished">Second line point</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13130,6 +13446,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14050,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15229,6 +15553,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15290,6 +15799,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15299,7 +15820,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Rename</translation> <translation type="vanished">Rename</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15321,6 +15842,26 @@ Do you want to save your changes?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferences</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation> <translation type="vanished">add union details</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Flipping by axis</translation> <translation>Flipping by axis</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Flipping by line</translation> <translation>Flipping by line</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation> <translation type="vanished">Unique pattern piece name</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>New group</translation> <translation>New group</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Left:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Right:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Bottom:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3901,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Center point</translation> <translation>Center point</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5432,6 +5602,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5535,6 +5729,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Options</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9560,6 +9786,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11224,6 +11457,26 @@ Do you want to save your changes?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11312,6 +11565,18 @@ Do you want to save your changes?</translation>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation type="unfinished">Length</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11483,6 +11748,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11985,6 +12265,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12078,7 +12378,7 @@ Do you want to save your changes?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Can&apos;t open schema file %1: <translation type="vanished">Can&apos;t open schema file %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12087,7 +12387,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation> <translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12115,7 +12415,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation> <translation type="vanished">Could not load schema file &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12708,6 +13008,14 @@ Do you want to save your changes?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13025,6 +13333,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Flipping by axis</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13348,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Second line point</translation> <translation type="unfinished">Second line point</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13130,6 +13446,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14050,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15229,6 +15553,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15290,6 +15799,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15299,7 +15820,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Rename</translation> <translation type="vanished">Rename</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15321,6 +15842,26 @@ Do you want to save your changes?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferences</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation> <translation type="vanished">add union details</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Flipping by axis</translation> <translation>Flipping by axis</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Flipping by line</translation> <translation>Flipping by line</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation> <translation type="vanished">Unique pattern piece name</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>New group</translation> <translation>New group</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Left:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Right:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Bottom:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3901,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Center point</translation> <translation>Center point</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5432,6 +5602,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Name:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5535,6 +5729,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Options</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9560,6 +9786,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11224,6 +11457,26 @@ Do you want to save your changes?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11312,6 +11565,18 @@ Do you want to save your changes?</translation>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation type="unfinished">Length</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11483,6 +11748,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11985,6 +12265,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12078,7 +12378,7 @@ Do you want to save your changes?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Can&apos;t open schema file %1: <translation type="vanished">Can&apos;t open schema file %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12087,7 +12387,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation> <translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12115,7 +12415,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation> <translation type="vanished">Could not load schema file &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12708,6 +13008,14 @@ Do you want to save your changes?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13025,6 +13333,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Flipping by axis</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13348,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Second line point</translation> <translation type="unfinished">Second line point</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13130,6 +13446,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14050,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15229,6 +15553,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15290,6 +15799,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15299,7 +15820,7 @@ Do you want to save your changes?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Rename</translation> <translation type="vanished">Rename</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15321,6 +15842,26 @@ Do you want to save your changes?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferences</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">añadir detalles de la unión</translation> <translation type="vanished">añadir detalles de la unión</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Volteando por ejes</translation> <translation>Volteando por ejes</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Volteando por linea</translation> <translation>Volteando por linea</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Nombre único de pieza del patrón</translation> <translation type="vanished">Nombre único de pieza del patrón</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Nuevo grupo</translation> <translation>Nuevo grupo</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation>Coeficiente de eficiencia: %1%</translation> <translation>Coeficiente de eficiencia: %1%</translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Margenes</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Izquierda:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Derecha:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3348,6 +3482,14 @@ Aplicar características de todos modos?</translation>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation>Recorte automático del ancho no utilizado</translation> <translation>Recorte automático del ancho no utilizado</translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3760,6 +3902,34 @@ Aplicar características de todos modos?</translation>
<source>Center point</source> <source>Center point</source>
<translation>Punto central</translation> <translation>Punto central</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5433,6 +5603,30 @@ Aplicar características de todos modos?</translation>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation>Este punto no puede ser punto de origen. Por favor, seleccione otro punto de origen</translation> <translation>Este punto no puede ser punto de origen. Por favor, seleccione otro punto de origen</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5536,6 +5730,38 @@ Aplicar características de todos modos?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientación:</translation> <translation>Orientación:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Opciones</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9563,6 +9789,13 @@ Esta opción surtirá efecto después de reiniciar.</translation>
<translation>Remover elemento del grupo</translation> <translation>Remover elemento del grupo</translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11227,6 +11460,26 @@ Quieres guardar los cambios?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation>Versión invalida. La versión de formato máximo admitido es %1</translation> <translation>Versión invalida. La versión de formato máximo admitido es %1</translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">No se pudo abrir el archivo %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">No se pudo abrir el archivo de esquema %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">No se puede cargar el archivo de esquema &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Error de validación en el archivo %3 en la línea %1 columna %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11315,6 +11568,18 @@ Quieres guardar los cambios?</translation>
<source>Length</source> <source>Length</source>
<translation>Longitud</translation> <translation>Longitud</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11486,6 +11751,21 @@ Quieres guardar los cambios?</translation>
<translation>Pique invalido.</translation> <translation>Pique invalido.</translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11988,6 +12268,26 @@ Quieres guardar los cambios?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation>Auto cortar ancho sin uso (modo de exportación).</translation> <translation>Auto cortar ancho sin uso (modo de exportación).</translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12081,7 +12381,7 @@ Quieres guardar los cambios?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>No se pudo abrir el archivo de esquema %1: <translation type="vanished">No se pudo abrir el archivo de esquema %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12090,7 +12390,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Error de validación en el archivo %3 en la línea %1 columna %2</translation> <translation type="vanished">Error de validación en el archivo %3 en la línea %1 columna %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12118,7 +12418,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>No se puede cargar el archivo de esquema &apos;%1&apos;.</translation> <translation type="vanished">No se puede cargar el archivo de esquema &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12711,6 +13011,14 @@ Quieres guardar los cambios?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation>No se puede crear un registro de historial para la herramienta.</translation> <translation>No se puede crear un registro de historial para la herramienta.</translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13028,6 +13336,10 @@ Quieres guardar los cambios?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation>Punto origen</translation> <translation>Punto origen</translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Volteando por ejes</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13039,6 +13351,10 @@ Quieres guardar los cambios?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation>Punto segunda linea</translation> <translation>Punto segunda linea</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13133,6 +13449,10 @@ Quieres guardar los cambios?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation>Punto de origen de rotación</translation> <translation>Punto de origen de rotación</translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13733,6 +14053,10 @@ Quieres guardar los cambios?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation>Angulo de rotación</translation> <translation>Angulo de rotación</translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15232,6 +15556,191 @@ Quieres guardar los cambios?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation>RotaciónElArco_</translation> <translation>RotaciónElArco_</translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15293,6 +15802,18 @@ Quieres guardar los cambios?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation>No ocultar en el diseño</translation> <translation>No ocultar en el diseño</translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15302,7 +15823,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Renombrar</translation> <translation type="vanished">Renombrar</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15324,6 +15845,26 @@ Quieres guardar los cambios?</translation>
<source>Show All</source> <source>Show All</source>
<translation>Mostrar Todo</translation> <translation>Mostrar Todo</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferencias</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -36,6 +36,13 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2059,6 +2066,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nmi:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2094,6 +2129,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nmi:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2105,10 +2168,6 @@
<source>Group name:</source> <source>Group name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2117,6 +2176,18 @@
<source>New group</source> <source>New group</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2628,6 +2699,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2852,6 +2982,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3260,6 +3398,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Keskipiste</translation> <translation>Keskipiste</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nmi:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4805,6 +4971,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nmi:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -4888,6 +5078,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Asetukset</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8519,6 +8741,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -9997,6 +10226,26 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Tiedostoa %1 ei voitu avata:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Skeematiedostoa %1 ei voitu avata.
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Tarkastus virhe tiedostossa %3 rivillä %1 kohdassa %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -10085,6 +10334,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Pituus</translation> <translation type="unfinished">Pituus</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -10252,6 +10513,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -10634,6 +10910,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -10727,7 +11023,7 @@ Do you want to save your changes?</source>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Skeematiedostoa %1 ei voitu avata. <translation type="vanished">Skeematiedostoa %1 ei voitu avata.
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -10736,7 +11032,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Tarkastus virhe tiedostossa %3 rivillä %1 kohdassa %2</translation> <translation type="vanished">Tarkastus virhe tiedostossa %3 rivillä %1 kohdassa %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -10762,10 +11058,6 @@ Do you want to save your changes?</source>
<source>Could not remove document file</source> <source>Could not remove document file</source>
<translation type="vanished">Dokumenttitiedostoa ei voitu poistaa</translation> <translation type="vanished">Dokumenttitiedostoa ei voitu poistaa</translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11357,6 +11649,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -11607,6 +11907,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -11618,6 +11922,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Viivan toinen piste</translation> <translation type="unfinished">Viivan toinen piste</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -11712,6 +12020,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -12252,6 +12564,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -13712,6 +14028,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -13773,13 +14274,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished">Poista</translation> <translation type="unfinished">Poista</translation>
@ -13800,6 +14309,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Asetukset</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Ajouter des fusions de pièce de patron</translation> <translation type="vanished">Ajouter des fusions de pièce de patron</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Nom unique de pièce de patron</translation> <translation type="vanished">Nom unique de pièce de patron</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Nouveau groupe</translation> <translation>Nouveau groupe</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Gauche:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Droite:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Haut:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Bas:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3344,6 +3478,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3756,6 +3898,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Point central</translation> <translation>Point central</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5429,6 +5599,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5532,6 +5726,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Options</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9545,6 +9771,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11205,6 +11438,25 @@ Voulez-vous enregistrer les changements?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">impossible d&apos;ouvrir le fichier %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Erreur d&apos;ouverture du fichier de schéma %1: %2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Impossible de lire le schéma de fichier &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Erreur de validation : fichier %3, ligne %1, colonne %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11293,6 +11545,18 @@ Voulez-vous enregistrer les changements?</translation>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Longueur</translation> <translation type="unfinished">Longueur</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11460,6 +11724,21 @@ Voulez-vous enregistrer les changements?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11962,6 +12241,26 @@ Voulez-vous enregistrer les changements?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12055,7 +12354,7 @@ Voulez-vous enregistrer les changements?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Erreur d&apos;ouverture du fichier de schéma %1: %2.</translation> <translation type="vanished">Erreur d&apos;ouverture du fichier de schéma %1: %2.</translation>
</message> </message>
<message> <message>
<source>Could not load schema file.</source> <source>Could not load schema file.</source>
@ -12063,7 +12362,7 @@ Voulez-vous enregistrer les changements?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Erreur de validation : fichier %3, ligne %1, colonne %2</translation> <translation type="vanished">Erreur de validation : fichier %3, ligne %1, colonne %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12091,7 +12390,7 @@ Voulez-vous enregistrer les changements?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Impossible de lire le schéma de fichier &apos;%1&apos;.</translation> <translation type="vanished">Impossible de lire le schéma de fichier &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12684,6 +12983,14 @@ Voulez-vous enregistrer les changements?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -12993,6 +13300,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13004,6 +13315,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Point de deuxieme ligne</translation> <translation type="unfinished">Point de deuxieme ligne</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13098,6 +13413,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13694,6 +14013,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15193,6 +15516,191 @@ Voulez-vous enregistrer les changements?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15254,6 +15762,18 @@ Voulez-vous enregistrer les changements?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15263,7 +15783,7 @@ Voulez-vous enregistrer les changements?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Renommer</translation> <translation type="vanished">Renommer</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15285,6 +15805,26 @@ Voulez-vous enregistrer les changements?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Préférences</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -36,6 +36,13 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -1668,6 +1675,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -1703,6 +1738,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -1714,10 +1777,6 @@
<source>Group name:</source> <source>Group name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1726,6 +1785,18 @@
<source>New group</source> <source>New group</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2185,6 +2256,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2381,6 +2511,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -2757,6 +2895,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>נקודת מרכז</translation> <translation>נקודת מרכז</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4091,6 +4257,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -4174,6 +4364,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">אפשרויות</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -7474,6 +7696,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -8815,6 +9044,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -8903,6 +9150,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">אורך</translation> <translation type="unfinished">אורך</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -9070,6 +9329,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -9448,6 +9722,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -9521,15 +9815,6 @@ Do you want to save your changes?</source>
%2.</source> %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9538,10 +9823,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source> <source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10106,6 +10387,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -10352,6 +10641,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -10363,6 +10656,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -10457,6 +10754,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -10961,6 +11262,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -12346,6 +12651,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetDetails</name> <name>VWidgetDetails</name>
@ -12385,13 +12875,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished">למחוק</translation> <translation type="unfinished">למחוק</translation>
@ -12412,6 +12910,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -36,6 +36,13 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -1939,6 +1946,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -1974,6 +2009,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -1985,10 +2048,6 @@
<source>Group name:</source> <source>Group name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1997,6 +2056,18 @@
<source>New group</source> <source>New group</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2456,6 +2527,61 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2652,6 +2778,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3044,6 +3178,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>titik tengah</translation> <translation>titik tengah</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4417,6 +4579,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -4500,6 +4686,34 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">pilihan</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -7820,6 +8034,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -9195,6 +9416,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -9283,6 +9522,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">panjang</translation> <translation type="unfinished">panjang</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -9450,6 +9701,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -9832,6 +10098,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -9905,15 +10191,6 @@ Do you want to save your changes?</source>
%2.</source> %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9922,10 +10199,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source> <source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10490,6 +10763,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -10736,6 +11017,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -10747,6 +11032,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -10841,6 +11130,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -11357,6 +11650,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -12747,6 +13044,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetDetails</name> <name>VWidgetDetails</name>
@ -12786,13 +13268,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished">hapus</translation> <translation type="unfinished">hapus</translation>
@ -12813,6 +13303,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Aggiungi dettagli di unione</translation> <translation type="vanished">Aggiungi dettagli di unione</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2439,6 +2446,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Ruotare sull&apos;asse</translation> <translation>Ruotare sull&apos;asse</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotazione</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2478,6 +2513,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Ruota sulla linea</translation> <translation>Ruota sulla linea</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotazione</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2491,7 +2554,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Nome unico del pezzo del modello</translation> <translation type="vanished">Nome unico del pezzo del modello</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2501,6 +2564,18 @@
<source>New group</source> <source>New group</source>
<translation>Nuovo gruppo</translation> <translation>Nuovo gruppo</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3040,6 +3115,65 @@
<translation>Coefficiente di efficienza: %1%</translation> <translation>Coefficiente di efficienza: %1%</translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Margini</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Sinistra:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Destra:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Fondo:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3341,6 +3475,14 @@ Applicare la configurazione comunque?</translation>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3753,6 +3895,34 @@ Applicare la configurazione comunque?</translation>
<source>Center point</source> <source>Center point</source>
<translation>Punto centrale</translation> <translation>Punto centrale</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotazione</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5426,6 +5596,30 @@ Applicare la configurazione comunque?</translation>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5529,6 +5723,38 @@ Applicare la configurazione comunque?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientamento:</translation> <translation>Orientamento:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Opzioni</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9555,6 +9781,13 @@ Questa opzione sarà effettiva dopo il riavvio del programma.</translation>
<translation>Rimuovi oggetto dal gruppo</translation> <translation>Rimuovi oggetto dal gruppo</translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11215,6 +11448,25 @@ Vuoi salvare le tue modifiche?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Impossibile aprire file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11303,6 +11555,18 @@ Vuoi salvare le tue modifiche?</translation>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Lunghezza</translation> <translation type="unfinished">Lunghezza</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11474,6 +11738,21 @@ Vuoi salvare le tue modifiche?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11944,6 +12223,26 @@ Vuoi salvare le tue modifiche?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12022,19 +12321,10 @@ Vuoi salvare le tue modifiche?</translation>
<translation>Impossibile aprire file %1: <translation>Impossibile aprire file %1:
%2.</translation> %2.</translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Could not load schema file.</source> <source>Could not load schema file.</source>
<translation type="vanished">Impossibile caricare il file di schema</translation> <translation type="vanished">Impossibile caricare il file di schema</translation>
</message> </message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12047,10 +12337,6 @@ Vuoi salvare le tue modifiche?</translation>
<source>This id is not unique.</source> <source>This id is not unique.</source>
<translation type="vanished">Questo ID è già esistente.</translation> <translation type="vanished">Questo ID è già esistente.</translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12642,6 +12928,14 @@ Vuoi salvare le tue modifiche?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -12955,6 +13249,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation>Punto d&apos;origine</translation> <translation>Punto d&apos;origine</translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Ruotare sull&apos;asse</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12966,6 +13264,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Secondo punto della linea</translation> <translation type="unfinished">Secondo punto della linea</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13060,6 +13362,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation>Ruota punto d&apos;origine</translation> <translation>Ruota punto d&apos;origine</translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13652,6 +13958,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation>Angolo di rotazione</translation> <translation>Angolo di rotazione</translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15106,6 +15416,191 @@ Vuoi salvare le tue modifiche?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15167,12 +15662,24 @@ Vuoi salvare le tue modifiche?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Rinomina</translation> <translation type="vanished">Rinomina</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15194,6 +15701,26 @@ Vuoi salvare le tue modifiche?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferenze</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">voeg een samengevoegd detail toe</translation> <translation type="vanished">voeg een samengevoegd detail toe</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Kantelen via de aslijn</translation> <translation>Kantelen via de aslijn</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Kantelen via de lijn</translation> <translation>Kantelen via de lijn</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Unieke patroondeel naam</translation> <translation type="vanished">Unieke patroondeel naam</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Nieuwe groep</translation> <translation>Nieuwe groep</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation>Efficiëntie coëfficiënt: %1%</translation> <translation>Efficiëntie coëfficiënt: %1%</translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Marges</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Links:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Rechts:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Bovenaan:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Onderaan:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3349,6 +3483,14 @@ Toch de instellingen aanpassen?</translation>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation>Automatisch inkorten van ongebruikte breedte</translation> <translation>Automatisch inkorten van ongebruikte breedte</translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3761,6 +3903,34 @@ Toch de instellingen aanpassen?</translation>
<source>Center point</source> <source>Center point</source>
<translation>Middelpunt</translation> <translation>Middelpunt</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5434,6 +5604,30 @@ Toch de instellingen aanpassen?</translation>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation>Dit punt kan geen startpunt zijn. Gelieve een ander startpunt te kiezen</translation> <translation>Dit punt kan geen startpunt zijn. Gelieve een ander startpunt te kiezen</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5537,6 +5731,38 @@ Toch de instellingen aanpassen?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientatie:</translation> <translation>Orientatie:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Opties</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9566,6 +9792,13 @@ Deze optie wordt actief na een herstart..</translation>
<translation>Verwijder item van groep</translation> <translation>Verwijder item van groep</translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11230,6 +11463,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation>Ongeldige versie. Maximum ondersteund formaat is %1</translation> <translation>Ongeldige versie. Maximum ondersteund formaat is %1</translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">kan bestand niet openen %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Kan schema bestand niet openen %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Kan schema bestand niet laden &apos;%1&quot;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Validatie fout bestand %3 op lijn %1 kolom %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11318,6 +11571,18 @@ Wil je deze veranderingen opslaan?</translation>
<source>Length</source> <source>Length</source>
<translation>Lengte</translation> <translation>Lengte</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11489,6 +11754,21 @@ Wil je deze veranderingen opslaan?</translation>
<translation>Ongeldige inkeping.</translation> <translation>Ongeldige inkeping.</translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11991,6 +12271,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation>Automatisch inkorten van ongebruikte breedte (export modus).</translation> <translation>Automatisch inkorten van ongebruikte breedte (export modus).</translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12084,7 +12384,7 @@ Wil je deze veranderingen opslaan?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Kan schema bestand niet openen %1: <translation type="vanished">Kan schema bestand niet openen %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12093,7 +12393,7 @@ Wil je deze veranderingen opslaan?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Validatie fout bestand %3 op lijn %1 kolom %2</translation> <translation type="vanished">Validatie fout bestand %3 op lijn %1 kolom %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12121,7 +12421,7 @@ Wil je deze veranderingen opslaan?</translation>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Kan schema bestand niet laden &apos;%1&quot;.</translation> <translation type="vanished">Kan schema bestand niet laden &apos;%1&quot;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12714,6 +13014,14 @@ Wil je deze veranderingen opslaan?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation>Kan geen geschiedenis item voor dit gereedschap aanmaken.</translation> <translation>Kan geen geschiedenis item voor dit gereedschap aanmaken.</translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13031,6 +13339,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation>Startpunt</translation> <translation>Startpunt</translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Kantelen via de aslijn</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13042,6 +13354,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation>Tweede lijnpunt</translation> <translation>Tweede lijnpunt</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13136,6 +13452,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation>Rotatie startpunt</translation> <translation>Rotatie startpunt</translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13736,6 +14056,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation>Hoek van draaiing</translation> <translation>Hoek van draaiing</translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15235,6 +15559,191 @@ Wil je deze veranderingen opslaan?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation>RotationElArc_</translation> <translation>RotationElArc_</translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15296,6 +15805,18 @@ Wil je deze veranderingen opslaan?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation>Verberg niet in opmaak</translation> <translation>Verberg niet in opmaak</translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15305,7 +15826,7 @@ Wil je deze veranderingen opslaan?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Hernoem</translation> <translation type="vanished">Hernoem</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15327,6 +15848,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Show All</source> <source>Show All</source>
<translation>Vertoon Alles</translation> <translation>Vertoon Alles</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Voorkeuren</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">dodaj szczegóły połaczenia</translation> <translation type="vanished">dodaj szczegóły połaczenia</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2263,6 +2270,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2302,6 +2337,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2315,7 +2378,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Unikalna nazwa formy</translation> <translation type="vanished">Unikalna nazwa formy</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2325,6 +2388,18 @@
<source>New group</source> <source>New group</source>
<translation>Nowa grupa</translation> <translation>Nowa grupa</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2816,6 +2891,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Marginesy</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Lewy:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Prawy:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3036,6 +3170,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3440,6 +3582,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Punkt środkowy</translation> <translation>Punkt środkowy</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4926,6 +5096,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5009,6 +5203,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Opcje</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8598,6 +8824,13 @@ This option will take an affect after restart.</source>
<translation>Usuń element z grupy</translation> <translation>Usuń element z grupy</translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -10179,6 +10412,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -10267,6 +10518,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Długość</translation> <translation type="unfinished">Długość</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -10434,6 +10697,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -10816,6 +11094,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -10889,15 +11187,6 @@ Do you want to save your changes?</source>
%2.</source> %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10906,10 +11195,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source> <source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11489,6 +11774,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -11747,6 +12040,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -11758,6 +12055,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -11852,6 +12153,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -12380,6 +12685,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -13815,6 +14124,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -13876,13 +14370,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation>Usuń</translation> <translation>Usuń</translation>
@ -13903,6 +14405,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Ustawienia</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Adicionar detalhes de ligação</translation> <translation type="vanished">Adicionar detalhes de ligação</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Espelhar através do eixo</translation> <translation>Espelhar através do eixo</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotação</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Espelhar através de linha</translation> <translation>Espelhar através de linha</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotação</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Nome único da peça de molde</translation> <translation type="vanished">Nome único da peça de molde</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Novo grupo</translation> <translation>Novo grupo</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Margens</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Esquerda:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Direita:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Topo:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Base:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3345,6 +3479,14 @@ Aplicar configurações de qualquer forma?</translation>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3757,6 +3899,34 @@ Aplicar configurações de qualquer forma?</translation>
<source>Center point</source> <source>Center point</source>
<translation>Ponto central</translation> <translation>Ponto central</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotação</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5430,6 +5600,30 @@ Aplicar configurações de qualquer forma?</translation>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nome:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5529,6 +5723,38 @@ Aplicar configurações de qualquer forma?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientação:</translation> <translation>Orientação:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Opções</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9543,6 +9769,13 @@ Esta opção terá um efeito após o reinício.</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11203,6 +11436,26 @@ Deseja salvar suas mudanças?</translation>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation>Versão inválida. O formato da versão máxima suportado é %1</translation> <translation>Versão inválida. O formato da versão máxima suportado é %1</translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Impossível abrir o arquivo %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Impossível abrir o arquivo de esquema %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Arquivo de erro de validação %3 na linha %1 coluna %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11291,6 +11544,18 @@ Deseja salvar suas mudanças?</translation>
<source>Length</source> <source>Length</source>
<translation>Comprimento</translation> <translation>Comprimento</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11462,6 +11727,21 @@ Deseja salvar suas mudanças?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11932,6 +12212,26 @@ Deseja salvar suas mudanças?</translation>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12025,7 +12325,7 @@ Deseja salvar suas mudanças?</translation>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Impossível abrir o arquivo de esquema %1: <translation type="vanished">Impossível abrir o arquivo de esquema %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12034,7 +12334,7 @@ Deseja salvar suas mudanças?</translation>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Arquivo de erro de validação %3 na linha %1 coluna %2</translation> <translation type="vanished">Arquivo de erro de validação %3 na linha %1 coluna %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12048,10 +12348,6 @@ Deseja salvar suas mudanças?</translation>
<source>Got wrong parameter id. Need only id &gt; 0.</source> <source>Got wrong parameter id. Need only id &gt; 0.</source>
<translation type="vanished">Obteve parâmetro de identidade errado. Permitido somente Identidade &gt; 0.</translation> <translation type="vanished">Obteve parâmetro de identidade errado. Permitido somente Identidade &gt; 0.</translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12643,6 +12939,14 @@ Deseja salvar suas mudanças?</translation>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -12960,6 +13264,10 @@ Deseja salvar suas mudanças?</translation>
<source>Origin point</source> <source>Origin point</source>
<translation>Ponto de origem</translation> <translation>Ponto de origem</translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Espelhar através do eixo</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12971,6 +13279,10 @@ Deseja salvar suas mudanças?</translation>
<source>Second line point</source> <source>Second line point</source>
<translation>Segundo ponto da linha</translation> <translation>Segundo ponto da linha</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13065,6 +13377,10 @@ Deseja salvar suas mudanças?</translation>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation>Rotação do ponto de origem</translation> <translation>Rotação do ponto de origem</translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13665,6 +13981,10 @@ Deseja salvar suas mudanças?</translation>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation>Ângulo de rotação</translation> <translation>Ângulo de rotação</translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15119,6 +15439,191 @@ Deseja salvar suas mudanças?</translation>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15180,6 +15685,18 @@ Deseja salvar suas mudanças?</translation>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15189,7 +15706,7 @@ Deseja salvar suas mudanças?</translation>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Renomear</translation> <translation type="vanished">Renomear</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15211,6 +15728,26 @@ Deseja salvar suas mudanças?</translation>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferências</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">adauga detalii ale Uniunii</translation> <translation type="vanished">adauga detalii ale Uniunii</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2228,6 +2235,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2263,6 +2298,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2274,10 +2337,6 @@
<source>Group name:</source> <source>Group name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2286,6 +2345,18 @@
<source>New group</source> <source>New group</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2801,6 +2872,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3025,6 +3155,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3433,6 +3571,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Punct central</translation> <translation>Punct central</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4883,6 +5049,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -4966,6 +5156,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Opțiuni</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8486,6 +8708,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -9932,6 +10161,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -10020,6 +10267,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Lungime</translation> <translation type="unfinished">Lungime</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -10187,6 +10446,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -10569,6 +10843,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -10642,15 +10936,6 @@ Do you want to save your changes?</source>
%2.</source> %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10659,10 +10944,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source> <source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -11231,6 +11512,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -11477,6 +11766,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -11488,6 +11781,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Al doilea Punct de linie</translation> <translation type="unfinished">Al doilea Punct de linie</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -11582,6 +11879,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -12110,6 +12411,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -13535,6 +13840,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetDetails</name> <name>VWidgetDetails</name>
@ -13574,13 +14064,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished">Șterge</translation> <translation type="unfinished">Șterge</translation>
@ -13601,6 +14099,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Preferințe</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">добавить объединение деталей</translation> <translation type="vanished">добавить объединение деталей</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Отразить объект по оси</translation> <translation>Отразить объект по оси</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Отразить объект по линии</translation> <translation>Отразить объект по линии</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Уникальное имя выкройки</translation> <translation type="vanished">Уникальное имя выкройки</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Новая группа</translation> <translation>Новая группа</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation>Коэффициент эффективности: %1%</translation> <translation>Коэффициент эффективности: %1%</translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Поля</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Левое:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">см</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Правое:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Верхнее:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Нижнее:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3349,6 +3483,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation>Автоматически обрезать неиспользуемую ширину</translation> <translation>Автоматически обрезать неиспользуемую ширину</translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3761,6 +3903,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Центральная точка</translation> <translation>Центральная точка</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5435,6 +5605,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5538,6 +5732,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Ориентация:</translation> <translation>Ориентация:</translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9568,6 +9794,13 @@ This option will take an affect after restart.</source>
<translation>Удалить объект из группы</translation> <translation>Удалить объект из группы</translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11232,6 +11465,26 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation>Недействительная версия. Максимально поддерживаемая версия формата %1</translation> <translation>Недействительная версия. Максимально поддерживаемая версия формата %1</translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Невозможно открыть файл %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Невозможно открыть файл схемы %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Не удалось открыть файл схемы &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Ошибка валидации файла %3 в строке %1 столбца %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11320,6 +11573,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation>Длина</translation> <translation>Длина</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11491,6 +11756,21 @@ Do you want to save your changes?</source>
<translation>Неправильная надсечка.</translation> <translation>Неправильная надсечка.</translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11993,6 +12273,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation>Автоматическая обрезка неиспользуемой ширины (режим экспорта).</translation> <translation>Автоматическая обрезка неиспользуемой ширины (режим экспорта).</translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12086,7 +12386,7 @@ Do you want to save your changes?</source>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Невозможно открыть файл схемы %1: <translation type="vanished">Невозможно открыть файл схемы %1:
%2.</translation> %2.</translation>
</message> </message>
<message> <message>
@ -12095,7 +12395,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Ошибка валидации файла %3 в строке %1 столбца %2</translation> <translation type="vanished">Ошибка валидации файла %3 в строке %1 столбца %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12123,7 +12423,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Не удалось открыть файл схемы &apos;%1&apos;.</translation> <translation type="vanished">Не удалось открыть файл схемы &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12716,6 +13016,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13033,6 +13341,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation>Исходная точка</translation> <translation>Исходная точка</translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Отразить объект по оси</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13044,6 +13356,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation>Вторая точка линии</translation> <translation>Вторая точка линии</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13138,6 +13454,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation>Исходная точка вращения</translation> <translation>Исходная точка вращения</translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13738,6 +14058,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation>Угол вращения</translation> <translation>Угол вращения</translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15242,6 +15566,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation>ВращениеЭлДуга_</translation> <translation>ВращениеЭлДуга_</translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15303,6 +15812,18 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation>Скрыть не в раскладке</translation> <translation>Скрыть не в раскладке</translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15312,7 +15833,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Переименовать</translation> <translation type="vanished">Переименовать</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15334,6 +15855,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation>Показать все</translation> <translation>Показать все</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">додати об&apos;єднання деталей</translation> <translation type="vanished">додати об&apos;єднання деталей</translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation>Відзеркалити по вісі</translation> <translation>Відзеркалити по вісі</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Імя:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation>Відзеркалити по лінії</translation> <translation>Відзеркалити по лінії</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Імя:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message> </message>
<message> <message>
<source>Unique pattern piece name</source> <source>Unique pattern piece name</source>
<translation>Унікальне ім&apos;я лекала</translation> <translation type="vanished">Унікальне ім&apos;я лекала</translation>
</message> </message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source> <source>New group</source>
<translation>Нова група</translation> <translation>Нова група</translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,65 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Ліве:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">см</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Праве:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Верхнє:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Нижнє:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3901,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation>Точка центру</translation> <translation>Точка центру</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Імя:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -5433,6 +5603,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Імя:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5536,6 +5730,38 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished">Параметри</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9561,6 +9787,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -11225,6 +11458,25 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished">Не можу відкрити файл%1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Не можу відкрити файл схеми %1:\n%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Не вдалося завантажити файл схеми &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Помилка валідації файлу %3 в рядку %1 стовпця %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11313,6 +11565,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Довжина</translation> <translation type="unfinished">Довжина</translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11484,6 +11748,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11986,6 +12265,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12079,7 +12378,7 @@ Do you want to save your changes?</source>
<message> <message>
<source>Can&apos;t open schema file %1: <source>Can&apos;t open schema file %1:
%2.</source> %2.</source>
<translation>Не можу відкрити файл схеми %1:\n%2.</translation> <translation type="vanished">Не можу відкрити файл схеми %1:\n%2.</translation>
</message> </message>
<message> <message>
<source>Could not load schema file.</source> <source>Could not load schema file.</source>
@ -12087,7 +12386,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Validation error file %3 in line %1 column %2</source> <source>Validation error file %3 in line %1 column %2</source>
<translation>Помилка валідації файлу %3 в рядку %1 стовпця %2</translation> <translation type="vanished">Помилка валідації файлу %3 в рядку %1 стовпця %2</translation>
</message> </message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
@ -12115,7 +12414,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Could not load schema file &apos;%1&apos;.</source> <source>Could not load schema file &apos;%1&apos;.</source>
<translation>Не вдалося завантажити файл схеми &apos;%1&apos;.</translation> <translation type="vanished">Не вдалося завантажити файл схеми &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
@ -12708,6 +13007,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13025,6 +13332,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Відзеркалити по вісі</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13347,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished">Друга точка лінії</translation> <translation type="unfinished">Друга точка лінії</translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13130,6 +13445,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14049,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15229,6 +15552,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15290,6 +15798,18 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15299,7 +15819,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Rename</source> <source>Rename</source>
<translation>Перейменувати</translation> <translation type="vanished">Перейменувати</translation>
</message> </message>
<message> <message>
<source>Delete</source> <source>Delete</source>
@ -15321,6 +15841,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished">Властивості</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
</context> </context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ChangeGroupVisibility</name> <name>ChangeGroupVisibility</name>
<message> <message>
@ -1820,6 +1827,34 @@
<source>Flipping by axis</source> <source>Flipping by axis</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogFlippingByLine</name> <name>DialogFlippingByLine</name>
@ -1855,6 +1890,34 @@
<source>Flipping by line</source> <source>Flipping by line</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogGroup</name> <name>DialogGroup</name>
@ -1866,10 +1929,6 @@
<source>Group name:</source> <source>Group name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Choose group name</source> <source>Choose group name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1878,6 +1937,18 @@
<source>New group</source> <source>New group</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -2329,6 +2400,61 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2533,6 +2659,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -2909,6 +3043,34 @@ Apply settings anyway?</source>
<source>Center point</source> <source>Center point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4194,6 +4356,30 @@ Apply settings anyway?</source>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -4277,6 +4463,34 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -7606,6 +7820,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -9016,6 +9237,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -9104,6 +9343,18 @@ Do you want to save your changes?</source>
<source>Length</source> <source>Length</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>operation options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>delete operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility group</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -9271,6 +9522,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -9649,6 +9915,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source> <source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -9722,15 +10008,6 @@ Do you want to save your changes?</source>
%2.</source> %2.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Parsing error file %3 in line %1 column %2</source> <source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9739,10 +10016,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source> <source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Fail to write Canonical XML.</source> <source>Fail to write Canonical XML.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -10307,6 +10580,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -10549,6 +10830,10 @@ Do you want to save your changes?</source>
<source>Origin point</source> <source>Origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -10560,6 +10845,10 @@ Do you want to save your changes?</source>
<source>Second line point</source> <source>Second line point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -10654,6 +10943,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source> <source>Rotation origin point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -11158,6 +11451,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source> <source>Rotation angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -12543,6 +12840,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment> <comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>converts degrees to radian</source>
<comment>functionm degTorad</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetDetails</name> <name>VWidgetDetails</name>
@ -12582,13 +13064,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source> <source>Hide not in layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Piece options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete piece</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -12609,6 +13099,26 @@ Do you want to save your changes?</source>
<source>Show All</source> <source>Show All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Filter by tags</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

View File

@ -172,6 +172,10 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
vStdErr() << QApplication::translate("vNoisyHandler", "WARNING:") << logMsg << "\n"; vStdErr() << QApplication::translate("vNoisyHandler", "WARNING:") << logMsg << "\n";
break; break;
case QtCriticalMsg: case QtCriticalMsg:
if (isPatternMessage)
{
qApp->PostPatternMessage(logMsg, type);
}
debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line) debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
.arg(context.function, context.category, logMsg); .arg(context.function, context.category, logMsg);
vStdErr() << QApplication::translate("vNoisyHandler", "CRITICAL:") << logMsg << "\n"; vStdErr() << QApplication::translate("vNoisyHandler", "CRITICAL:") << logMsg << "\n";

View File

@ -204,6 +204,7 @@ VLayoutGeneratorPtr VCommandLine::DefaultGenerator() const
diag.SetAutoCropWidth(IsOptionSet(LONG_OPTION_CROP_WIDTH)); diag.SetAutoCropWidth(IsOptionSet(LONG_OPTION_CROP_WIDTH));
diag.SetUnitePages(IsOptionSet(LONG_OPTION_UNITE)); diag.SetUnitePages(IsOptionSet(LONG_OPTION_UNITE));
diag.SetSaveLength(IsOptionSet(LONG_OPTION_SAVELENGTH)); diag.SetSaveLength(IsOptionSet(LONG_OPTION_SAVELENGTH));
diag.SetPreferOneSheetSolution(IsOptionSet(LONG_OPTION_PREFER_ONE_SHEET_SOLUTION));
diag.SetGroup(OptGroup()); diag.SetGroup(OptGroup());
if (IsOptionSet(LONG_OPTION_IGNORE_MARGINS)) if (IsOptionSet(LONG_OPTION_IGNORE_MARGINS))
@ -408,6 +409,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 +687,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).")},
@ -678,6 +707,8 @@ void VCommandLine::InitCommandLineOptions()
{{SINGLE_OPTION_UNITE, LONG_OPTION_UNITE}, {{SINGLE_OPTION_UNITE, LONG_OPTION_UNITE},
translate("VCommandLine", "Unite pages if possible (export mode). Maximum value limited by QImage that " translate("VCommandLine", "Unite pages if possible (export mode). Maximum value limited by QImage that "
"supports only a maximum of 32768x32768 px images.")}, "supports only a maximum of 32768x32768 px images.")},
{LONG_OPTION_PREFER_ONE_SHEET_SOLUTION,
translate("VCommandLine", "Prefer one sheet layout solution (export mode).")},
//================================================================================================================= //=================================================================================================================
{{SINGLE_OPTION_SAVELENGTH, LONG_OPTION_SAVELENGTH}, {{SINGLE_OPTION_SAVELENGTH, LONG_OPTION_SAVELENGTH},
translate("VCommandLine", "Save length of the sheet if set (export mode). The option tells the program to use " translate("VCommandLine", "Save length of the sheet if set (export mode). The option tells the program to use "

View File

@ -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;

View File

@ -40,7 +40,10 @@
#include "../vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h" #include "../vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h"
#include "../xml/vpattern.h" #include "../xml/vpattern.h"
#include "../vmisc/diagnostic.h" #include "../vmisc/diagnostic.h"
#include <QDebug> #include <QDebug>
#include <QtConcurrent>
#include <functional>
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
/** /**
@ -165,26 +168,30 @@ void DialogHistory::FillTable()
qint32 currentRow = -1; qint32 currentRow = -1;
qint32 count = 0; qint32 count = 0;
ui->tableWidget->setRowCount(history.size());//Make row count max possible number ui->tableWidget->setRowCount(history.size());//Make row count max possible number
for (qint32 i = 0; i< history.size(); ++i)
std::function<HistoryRecord (const VToolRecord &tool)> CreateRecord = [this](const VToolRecord &tool)
{ {
const VToolRecord tool = history.at(i); return Record(tool);
const QString historyRecord = Record(tool); };
if (not historyRecord.isEmpty())
QVector<HistoryRecord> historyRecords = QtConcurrent::blockingMapped(history, CreateRecord);
for (auto &record : historyRecords)
{
if (not record.description.isEmpty())
{ {
currentRow++; currentRow++;
{ {
QTableWidgetItem *item = new QTableWidgetItem(QString()); QTableWidgetItem *item = new QTableWidgetItem(QString());
item->setTextAlignment(Qt::AlignHCenter); item->setTextAlignment(Qt::AlignHCenter);
item->setData(Qt::UserRole, tool.getId()); item->setData(Qt::UserRole, record.id);
item->setFlags(item->flags() ^ Qt::ItemIsEditable); item->setFlags(item->flags() ^ Qt::ItemIsEditable);
ui->tableWidget->setItem(currentRow, 0, item); ui->tableWidget->setItem(currentRow, 0, item);
} }
QTableWidgetItem *item = new QTableWidgetItem(historyRecord); QTableWidgetItem *item = new QTableWidgetItem(record.description);
QFont font = item->font(); item->setFont(QFont("Times", 12, QFont::Bold));
font.setBold(true);
item->setFont(font);
item->setFlags(item->flags() ^ Qt::ItemIsEditable); item->setFlags(item->flags() ^ Qt::ItemIsEditable);
ui->tableWidget->setItem(currentRow, 1, item); ui->tableWidget->setItem(currentRow, 1, item);
++count; ++count;
@ -211,16 +218,20 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
* @param tool record data * @param tool record data
* @return description * @return description
*/ */
QString DialogHistory::Record(const VToolRecord &tool) HistoryRecord DialogHistory::Record(const VToolRecord &tool) const
{ {
// This check helps to find missed tools in the switch // This check helps to find missed tools in the switch
Q_STATIC_ASSERT_X(static_cast<int>(Tool::LAST_ONE_DO_NOT_USE) == 55, "Not all tools were used in history."); Q_STATIC_ASSERT_X(static_cast<int>(Tool::LAST_ONE_DO_NOT_USE) == 55, "Not all tools were used in history.");
const QDomElement domElem = doc->elementById(tool.getId()); HistoryRecord record;
record.id = tool.getId();
bool updateCache = false;
const QDomElement domElem = doc->elementById(tool.getId(), QString(), updateCache);
if (domElem.isElement() == false) if (domElem.isElement() == false)
{ {
qDebug()<<"Can't find element by id"<<Q_FUNC_INFO; qDebug()<<"Can't find element by id" << record.id << Q_FUNC_INFO;
return QString(); return record;
} }
try try
{ {
@ -238,110 +249,130 @@ QString DialogHistory::Record(const VToolRecord &tool)
Q_UNREACHABLE(); //-V501 Q_UNREACHABLE(); //-V501
break; break;
case Tool::BasePoint: case Tool::BasePoint:
return tr("%1 - Base point").arg(PointName(tool.getId())); record.description = tr("%1 - Base point").arg(PointName(tool.getId()));
return record;
case Tool::EndLine: case Tool::EndLine:
return tr("%1_%2 - Line from point %1 to point %2") record.description = tr("%1_%2 - Line from point %1 to point %2")
.arg(PointName(AttrUInt(domElem, AttrBasePoint)), PointName(tool.getId())); .arg(PointName(AttrUInt(domElem, AttrBasePoint)), PointName(tool.getId()));
return record;
case Tool::Line: case Tool::Line:
return tr("%1_%2 - Line from point %1 to point %2") record.description = tr("%1_%2 - Line from point %1 to point %2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)), .arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint))); PointName(AttrUInt(domElem, AttrSecondPoint)));
return record;
case Tool::AlongLine: case Tool::AlongLine:
return tr("%3 - Point along line %1_%2") record.description = tr("%3 - Point along line %1_%2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)), .arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId())); PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId()));
return record;
case Tool::ShoulderPoint: case Tool::ShoulderPoint:
return tr("%1 - Point of shoulder").arg(PointName(tool.getId())); record.description = tr("%1 - Point of shoulder").arg(PointName(tool.getId()));
return record;
case Tool::Normal: case Tool::Normal:
return tr("%3 - normal to line %1_%2") record.description = tr("%3 - normal to line %1_%2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)), .arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId())); PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId()));
return record;
case Tool::Bisector: case Tool::Bisector:
return tr("%4 - bisector of angle %1_%2_%3") record.description = tr("%4 - bisector of angle %1_%2_%3")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)), .arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(AttrUInt(domElem, AttrSecondPoint)),
PointName(AttrUInt(domElem, AttrThirdPoint)), PointName(tool.getId())); PointName(AttrUInt(domElem, AttrThirdPoint)), PointName(tool.getId()));
return record;
case Tool::LineIntersect: case Tool::LineIntersect:
return tr("%5 - intersection of lines %1_%2 and %3_%4") record.description = tr("%5 - intersection of lines %1_%2 and %3_%4")
.arg(PointName(AttrUInt(domElem, AttrP1Line1)), .arg(PointName(AttrUInt(domElem, AttrP1Line1)),
PointName(AttrUInt(domElem, AttrP2Line1)), PointName(AttrUInt(domElem, AttrP2Line1)),
PointName(AttrUInt(domElem, AttrP1Line2)), PointName(AttrUInt(domElem, AttrP1Line2)),
PointName(AttrUInt(domElem, AttrP2Line2)), PointName(AttrUInt(domElem, AttrP2Line2)),
PointName(tool.getId())); PointName(tool.getId()));
return record;
case Tool::Spline: case Tool::Spline:
{ {
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(tool.getId()); const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(tool.getId());
SCASSERT(not spl.isNull()) SCASSERT(not spl.isNull())
return spl->NameForHistory(tr("Curve")); record.description = spl->NameForHistory(tr("Curve"));
return record;
} }
case Tool::CubicBezier: case Tool::CubicBezier:
{ {
const QSharedPointer<VCubicBezier> spl = data->GeometricObject<VCubicBezier>(tool.getId()); const QSharedPointer<VCubicBezier> spl = data->GeometricObject<VCubicBezier>(tool.getId());
SCASSERT(not spl.isNull()) SCASSERT(not spl.isNull())
return spl->NameForHistory(tr("Cubic bezier curve")); record.description = spl->NameForHistory(tr("Cubic bezier curve"));
return record;
} }
case Tool::Arc: case Tool::Arc:
{ {
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId()); const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId());
SCASSERT(not arc.isNull()) SCASSERT(not arc.isNull())
return arc->NameForHistory(tr("Arc")); record.description = arc->NameForHistory(tr("Arc"));
return record;
} }
case Tool::ArcWithLength: case Tool::ArcWithLength:
{ {
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId()); const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId());
SCASSERT(not arc.isNull()) SCASSERT(not arc.isNull())
return tr("%1 with length %2") record.description = tr("%1 with length %2")
.arg(arc->NameForHistory(tr("Arc"))) .arg(arc->NameForHistory(tr("Arc")))
.arg(arc->GetLength()); .arg(arc->GetLength());
return record;
} }
case Tool::SplinePath: case Tool::SplinePath:
{ {
const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(tool.getId()); const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(tool.getId());
SCASSERT(not splPath.isNull()) SCASSERT(not splPath.isNull())
return splPath->NameForHistory(tr("Spline path")); record.description = splPath->NameForHistory(tr("Spline path"));
return record;
} }
case Tool::CubicBezierPath: case Tool::CubicBezierPath:
{ {
const QSharedPointer<VCubicBezierPath> splPath = data->GeometricObject<VCubicBezierPath>(tool.getId()); const QSharedPointer<VCubicBezierPath> splPath = data->GeometricObject<VCubicBezierPath>(tool.getId());
SCASSERT(not splPath.isNull()) SCASSERT(not splPath.isNull())
return splPath->NameForHistory(tr("Cubic bezier curve path")); record.description = splPath->NameForHistory(tr("Cubic bezier curve path"));
return record;
} }
case Tool::PointOfContact: case Tool::PointOfContact:
return tr("%4 - point of contact of arc with the center in point %1 and line %2_%3") record.description = tr("%4 - point of contact of arc with the center in point %1 and line %2_%3")
.arg(PointName(AttrUInt(domElem, AttrCenter)), .arg(PointName(AttrUInt(domElem, AttrCenter)),
PointName(AttrUInt(domElem, AttrFirstPoint)), PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(AttrUInt(domElem, AttrSecondPoint)),
PointName(tool.getId())); PointName(tool.getId()));
return record;
case Tool::Height: case Tool::Height:
return tr("Point of perpendicular from point %1 to line %2_%3") record.description = tr("Point of perpendicular from point %1 to line %2_%3")
.arg(PointName(AttrUInt(domElem, AttrBasePoint)), .arg(PointName(AttrUInt(domElem, AttrBasePoint)),
PointName(AttrUInt(domElem, AttrP1Line)), PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line))); PointName(AttrUInt(domElem, AttrP2Line)));
return record;
case Tool::Triangle: case Tool::Triangle:
return tr("Triangle: axis %1_%2, points %3 and %4") record.description = tr("Triangle: axis %1_%2, points %3 and %4")
.arg(PointName(AttrUInt(domElem, AttrAxisP1)), .arg(PointName(AttrUInt(domElem, AttrAxisP1)),
PointName(AttrUInt(domElem, AttrAxisP2)), PointName(AttrUInt(domElem, AttrAxisP2)),
PointName(AttrUInt(domElem, AttrFirstPoint)), PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint))); PointName(AttrUInt(domElem, AttrSecondPoint)));
return record;
case Tool::PointOfIntersection: case Tool::PointOfIntersection:
return tr("%1 - point of intersection %2 and %3") record.description = tr("%1 - point of intersection %2 and %3")
.arg(PointName(tool.getId()), .arg(PointName(tool.getId()),
PointName(AttrUInt(domElem, AttrFirstPoint)), PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint))); PointName(AttrUInt(domElem, AttrSecondPoint)));
return record;
case Tool::CutArc: case Tool::CutArc:
{ {
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(AttrUInt(domElem, AttrArc)); const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(AttrUInt(domElem, AttrArc));
SCASSERT(not arc.isNull()) SCASSERT(not arc.isNull())
return tr("%1 - cut %2") record.description = tr("%1 - cut %2")
.arg(PointName(tool.getId()), arc->NameForHistory(tr("arc"))); .arg(PointName(tool.getId()), arc->NameForHistory(tr("arc")));
return record;
} }
case Tool::CutSpline: case Tool::CutSpline:
{ {
const quint32 splineId = AttrUInt(domElem, VToolCutSpline::AttrSpline); const quint32 splineId = AttrUInt(domElem, VToolCutSpline::AttrSpline);
const QSharedPointer<VAbstractCubicBezier> spl = data->GeometricObject<VAbstractCubicBezier>(splineId); const QSharedPointer<VAbstractCubicBezier> spl = data->GeometricObject<VAbstractCubicBezier>(splineId);
SCASSERT(not spl.isNull()) SCASSERT(not spl.isNull())
return tr("%1 - cut %2") record.description = tr("%1 - cut %2")
.arg(PointName(tool.getId()), spl->NameForHistory(tr("curve"))); .arg(PointName(tool.getId()), spl->NameForHistory(tr("curve")));
return record;
} }
case Tool::CutSplinePath: case Tool::CutSplinePath:
{ {
@ -349,56 +380,71 @@ QString DialogHistory::Record(const VToolRecord &tool)
const QSharedPointer<VAbstractCubicBezierPath> splPath = const QSharedPointer<VAbstractCubicBezierPath> splPath =
data->GeometricObject<VAbstractCubicBezierPath>(splinePathId); data->GeometricObject<VAbstractCubicBezierPath>(splinePathId);
SCASSERT(not splPath.isNull()) SCASSERT(not splPath.isNull())
return tr("%1 - cut %2") record.description = tr("%1 - cut %2")
.arg(PointName(tool.getId()), splPath->NameForHistory(tr("curve path"))); .arg(PointName(tool.getId()), splPath->NameForHistory(tr("curve path")));
return record;
} }
case Tool::LineIntersectAxis: case Tool::LineIntersectAxis:
return tr("%1 - point of intersection line %2_%3 and axis through point %4") record.description = tr("%1 - point of intersection line %2_%3 and axis through point %4")
.arg(PointName(tool.getId()), .arg(PointName(tool.getId()),
PointName(AttrUInt(domElem, AttrP1Line)), PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)), PointName(AttrUInt(domElem, AttrP2Line)),
PointName(AttrUInt(domElem, AttrBasePoint))); PointName(AttrUInt(domElem, AttrBasePoint)));
return record;
case Tool::CurveIntersectAxis: case Tool::CurveIntersectAxis:
return tr("%1 - point of intersection curve and axis through point %2") record.description = tr("%1 - point of intersection curve and axis through point %2")
.arg(PointName(tool.getId()), PointName(AttrUInt(domElem, AttrBasePoint))); .arg(PointName(tool.getId()), PointName(AttrUInt(domElem, AttrBasePoint)));
return record;
case Tool::PointOfIntersectionArcs: case Tool::PointOfIntersectionArcs:
return tr("%1 - point of arcs intersection").arg(PointName(tool.getId())); record.description = tr("%1 - point of arcs intersection").arg(PointName(tool.getId()));
return record;
case Tool::PointOfIntersectionCircles: case Tool::PointOfIntersectionCircles:
return tr("%1 - point of circles intersection").arg(PointName(tool.getId())); record.description = tr("%1 - point of circles intersection").arg(PointName(tool.getId()));
return record;
case Tool::PointOfIntersectionCurves: case Tool::PointOfIntersectionCurves:
return tr("%1 - point of curves intersection").arg(PointName(tool.getId())); record.description = tr("%1 - point of curves intersection").arg(PointName(tool.getId()));
return record;
case Tool::PointFromCircleAndTangent: case Tool::PointFromCircleAndTangent:
return tr("%1 - point from circle and tangent").arg(PointName(tool.getId())); record.description = tr("%1 - point from circle and tangent").arg(PointName(tool.getId()));
return record;
case Tool::PointFromArcAndTangent: case Tool::PointFromArcAndTangent:
return tr("%1 - point from arc and tangent").arg(PointName(tool.getId())); record.description = tr("%1 - point from arc and tangent").arg(PointName(tool.getId()));
return record;
case Tool::TrueDarts: case Tool::TrueDarts:
return tr("Correction the dart %1_%2_%3") record.description = tr("Correction the dart %1_%2_%3")
.arg(PointName(AttrUInt(domElem, AttrDartP1)), .arg(PointName(AttrUInt(domElem, AttrDartP1)),
PointName(AttrUInt(domElem, AttrDartP2)), PointName(AttrUInt(domElem, AttrDartP2)),
PointName(AttrUInt(domElem, AttrDartP2))); PointName(AttrUInt(domElem, AttrDartP2)));
return record;
case Tool::EllipticalArc: case Tool::EllipticalArc:
{ {
const QSharedPointer<VEllipticalArc> elArc = data->GeometricObject<VEllipticalArc>(tool.getId()); const QSharedPointer<VEllipticalArc> elArc = data->GeometricObject<VEllipticalArc>(tool.getId());
SCASSERT(not elArc.isNull()) SCASSERT(not elArc.isNull())
return tr("%1 with length %2") record.description = tr("%1 with length %2")
.arg(elArc->NameForHistory(tr("Elliptical arc"))) .arg(elArc->NameForHistory(tr("Elliptical arc")))
.arg(elArc->GetLength()); .arg(elArc->GetLength());
return record;
} }
case Tool::Rotation: case Tool::Rotation:
return tr("Rotate objects around point %1. Suffix '%2'") record.description = tr("Rotate objects around point %1. Suffix '%2'")
.arg(PointName(AttrUInt(domElem, AttrCenter)), .arg(PointName(AttrUInt(domElem, AttrCenter)),
doc->GetParametrString(domElem, AttrSuffix, QString())); doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
case Tool::FlippingByLine: case Tool::FlippingByLine:
return tr("Flipping by line %1_%2. Suffix '%3'") record.description = tr("Flipping by line %1_%2. Suffix '%3'")
.arg(PointName(AttrUInt(domElem, AttrP1Line)), .arg(PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)), PointName(AttrUInt(domElem, AttrP2Line)),
doc->GetParametrString(domElem, AttrSuffix, QString())); doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
case Tool::FlippingByAxis: case Tool::FlippingByAxis:
return tr("Flipping by axis through %1 point. Suffix '%2'") record.description = tr("Flipping by axis through %1 point. Suffix '%2'")
.arg(PointName(AttrUInt(domElem, AttrCenter)), .arg(PointName(AttrUInt(domElem, AttrCenter)),
doc->GetParametrString(domElem, AttrSuffix, QString())); doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
case Tool::Move: case Tool::Move:
return tr("Move objects. Suffix '%1'").arg(doc->GetParametrString(domElem, AttrSuffix, QString())); record.description = tr("Move objects. Suffix '%1'")
.arg(doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
//Because "history" not only show history of pattern, but help restore current data for each pattern's //Because "history" not only show history of pattern, but help restore current data for each pattern's
//piece, we need add record about details and nodes, but don't show them. //piece, we need add record about details and nodes, but don't show them.
case Tool::Piece: case Tool::Piece:
@ -414,16 +460,16 @@ QString DialogHistory::Record(const VToolRecord &tool)
case Tool::PlaceLabel: case Tool::PlaceLabel:
case Tool::InsertNode: case Tool::InsertNode:
case Tool::DuplicateDetail: case Tool::DuplicateDetail:
return QString(); return record;
} }
} }
catch (const VExceptionBadId &e) catch (const VExceptionBadId &e)
{ {
qDebug()<<e.ErrorMessage()<<Q_FUNC_INFO; qDebug()<<e.ErrorMessage()<<Q_FUNC_INFO;
return QString(); return record;
} }
qDebug()<<"Can't create history record for the tool."; qDebug()<<"Can't create history record for the tool" << record.id;
return QString(); return record;
} }
QT_WARNING_POP QT_WARNING_POP
@ -465,13 +511,13 @@ void DialogHistory::ShowPoint()
* @param pointId point if in data. * @param pointId point if in data.
* @return point name. * @return point name.
*/ */
QString DialogHistory::PointName(quint32 pointId) QString DialogHistory::PointName(quint32 pointId) const
{ {
return data->GeometricObject<VPointF>(pointId)->name(); return data->GeometricObject<VPointF>(pointId)->name();
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
quint32 DialogHistory::AttrUInt(const QDomElement &domElement, const QString &name) quint32 DialogHistory::AttrUInt(const QDomElement &domElement, const QString &name) const
{ {
return doc->GetParametrUInt(domElement, name, QChar('0')); return doc->GetParametrUInt(domElement, name, QChar('0'));
} }

View File

@ -35,6 +35,12 @@
class VPattern; class VPattern;
struct HistoryRecord
{
QString description{};
quint32 id{NULL_ID};
};
namespace Ui namespace Ui
{ {
class DialogHistory; class DialogHistory;
@ -86,11 +92,11 @@ private:
qint32 cursorToolRecordRow; qint32 cursorToolRecordRow;
void FillTable(); void FillTable();
QString Record(const VToolRecord &tool); HistoryRecord Record(const VToolRecord &tool) const;
void InitialTable(); void InitialTable();
void ShowPoint(); void ShowPoint();
QString PointName(quint32 pointId); QString PointName(quint32 pointId) const;
quint32 AttrUInt(const QDomElement &domElement, const QString &name); quint32 AttrUInt(const QDomElement &domElement, const QString &name) const;
void RetranslateUi(); void RetranslateUi();
int CursorRow() const; int CursorRow() const;
}; };

View 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);
}

View File

@ -1,14 +1,14 @@
/************************************************************************ /************************************************************************
** **
** @file changegroupVisibility.h ** @file dialoglayoutscale.h
** @author Roman Telezhynskyi <dismine(at)gmail.com> ** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 14 7, 2019 ** @date 21 3, 2020
** **
** @brief ** @brief
** @copyright ** @copyright
** This source code is part of the Valentina project, a pattern making ** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing. ** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2019 Valentina project ** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved. ** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
** **
** Valentina is free software: you can redistribute it and/or modify ** Valentina is free software: you can redistribute it and/or modify
@ -25,31 +25,50 @@
** along with Valentina. If not, see <http://www.gnu.org/licenses/>. ** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
** **
*************************************************************************/ *************************************************************************/
#ifndef CHANGEGROUPVISIBILITY_H #ifndef DIALOGLAYOUTSCALE_H
#define CHANGEGROUPVISIBILITY_H #define DIALOGLAYOUTSCALE_H
#include "vundocommand.h" #include <QDialog>
class ChangeGroupVisibility : public VUndoCommand namespace Ui
{
class DialogLayoutScale;
}
class DialogLayoutScale : public QDialog
{ {
Q_OBJECT Q_OBJECT
public:
ChangeGroupVisibility(VAbstractPattern *doc, vidtype id, bool visible, QUndoCommand *parent = nullptr);
virtual ~ChangeGroupVisibility();
virtual void undo() override;
virtual void redo() override;
signals: public:
void UpdateGroup(vidtype id, bool visible); 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: private:
Q_DISABLE_COPY(ChangeGroupVisibility) Q_DISABLE_COPY(DialogLayoutScale)
Ui::DialogLayoutScale *ui;
bool isInitialized{false};
bool m_scaleConnected{true};
bool m_oldVisibility{true}; void ReadSettings();
bool m_newVisibility{true}; void WriteSettings() const;
const QString m_nameActivDraw{};
void Do(bool visible);
}; };
#endif // CHANGEGROUPVISIBILITY_H #endif // DIALOGLAYOUTSCALE_H

View 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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;┐&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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 notr="true">...</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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;┘&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>

View File

@ -292,6 +292,18 @@ void DialogLayoutSettings::SetSaveLength(bool save)
ui->checkBoxSaveLength->setChecked(save); ui->checkBoxSaveLength->setChecked(save);
} }
//---------------------------------------------------------------------------------------------------------------------
bool DialogLayoutSettings::IsPreferOneSheetSolution() const
{
return ui->checkBoxOneSheetSolution->isChecked();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogLayoutSettings::SetPreferOneSheetSolution(bool prefer)
{
ui->checkBoxOneSheetSolution->setChecked(prefer);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool DialogLayoutSettings::IsUnitePages() const bool DialogLayoutSettings::IsUnitePages() const
{ {
@ -600,6 +612,7 @@ void DialogLayoutSettings::DialogAccepted()
generator->SetAutoCropLength(GetAutoCropLength()); generator->SetAutoCropLength(GetAutoCropLength());
generator->SetAutoCropWidth(GetAutoCropWidth()); generator->SetAutoCropWidth(GetAutoCropWidth());
generator->SetSaveLength(IsSaveLength()); generator->SetSaveLength(IsSaveLength());
generator->SetPreferOneSheetSolution(IsPreferOneSheetSolution());
generator->SetUnitePages(IsUnitePages()); generator->SetUnitePages(IsUnitePages());
generator->SetStripOptimization(IsStripOptimization()); generator->SetStripOptimization(IsStripOptimization());
generator->SetMultiplier(GetMultiplier()); generator->SetMultiplier(GetMultiplier());
@ -695,6 +708,7 @@ void DialogLayoutSettings::RestoreDefaults()
SetNestingTime(VSettings::GetDefNestingTime()); SetNestingTime(VSettings::GetDefNestingTime());
SetEfficiencyCoefficient(VSettings::GetDefEfficiencyCoefficient()); SetEfficiencyCoefficient(VSettings::GetDefEfficiencyCoefficient());
SetNestQuantity(VSettings::GetDefLayoutNestQuantity()); SetNestQuantity(VSettings::GetDefLayoutNestQuantity());
SetPreferOneSheetSolution(VSettings::GetDefLayoutPreferOneSheetSolution());
CorrectMaxFileds(); CorrectMaxFileds();
IgnoreAllFields(ui->checkBoxIgnoreFileds->isChecked()); IgnoreAllFields(ui->checkBoxIgnoreFileds->isChecked());
@ -1019,6 +1033,7 @@ void DialogLayoutSettings::ReadSettings()
SetAutoCropLength(settings->GetLayoutAutoCropLength()); SetAutoCropLength(settings->GetLayoutAutoCropLength());
SetAutoCropWidth(settings->GetLayoutAutoCropWidth()); SetAutoCropWidth(settings->GetLayoutAutoCropWidth());
SetSaveLength(settings->GetLayoutSaveLength()); SetSaveLength(settings->GetLayoutSaveLength());
SetPreferOneSheetSolution(settings->GetLayoutPreferOneSheetSolution());
SetUnitePages(settings->GetLayoutUnitePages()); SetUnitePages(settings->GetLayoutUnitePages());
SetFields(settings->GetFields(GetDefPrinterFields())); SetFields(settings->GetFields(GetDefPrinterFields()));
SetIgnoreAllFields(settings->GetIgnoreAllFields()); SetIgnoreAllFields(settings->GetIgnoreAllFields());
@ -1046,6 +1061,7 @@ void DialogLayoutSettings::WriteSettings() const
settings->SetLayoutAutoCropLength(GetAutoCropLength()); settings->SetLayoutAutoCropLength(GetAutoCropLength());
settings->SetLayoutAutoCropWidth(GetAutoCropWidth()); settings->SetLayoutAutoCropWidth(GetAutoCropWidth());
settings->SetLayoutSaveLength(IsSaveLength()); settings->SetLayoutSaveLength(IsSaveLength());
settings->SetLayoutPreferOneSheetSolution(IsPreferOneSheetSolution());
settings->SetLayoutUnitePages(IsUnitePages()); settings->SetLayoutUnitePages(IsUnitePages());
settings->SetFields(GetFields()); settings->SetFields(GetFields());
settings->SetIgnoreAllFields(IsIgnoreAllFields()); settings->SetIgnoreAllFields(IsIgnoreAllFields());

View File

@ -85,6 +85,9 @@ public:
bool IsSaveLength() const; bool IsSaveLength() const;
void SetSaveLength(bool save); void SetSaveLength(bool save);
bool IsPreferOneSheetSolution() const;
void SetPreferOneSheetSolution(bool prefer);
bool IsUnitePages() const; bool IsUnitePages() const;
void SetUnitePages(bool save); void SetUnitePages(bool save);

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>601</width> <width>601</width>
<height>600</height> <height>645</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -448,6 +448,16 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="checkBoxOneSheetSolution">
<property name="toolTip">
<string>Enable this option to prefer getting one sheet solutions. </string>
</property>
<property name="text">
<string>Prefer one sheet solution</string>
</property>
</widget>
</item>
<item> <item>
<widget class="Line" name="line_7"> <widget class="Line" name="line_7">
<property name="orientation"> <property name="orientation">

View File

@ -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

View File

@ -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 \

View File

@ -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)
{ {
@ -810,16 +858,15 @@ QVector<std::pair<QString, LayoutExportFormats> > DialogSaveLayout::InitFormats(
InitFormat(LayoutExportFormats::DXF_AC1021_AAMA); InitFormat(LayoutExportFormats::DXF_AC1021_AAMA);
InitFormat(LayoutExportFormats::DXF_AC1024_AAMA); InitFormat(LayoutExportFormats::DXF_AC1024_AAMA);
InitFormat(LayoutExportFormats::DXF_AC1027_AAMA); InitFormat(LayoutExportFormats::DXF_AC1027_AAMA);
// We will support them anyway InitFormat(LayoutExportFormats::DXF_AC1006_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1006_ASTM); InitFormat(LayoutExportFormats::DXF_AC1009_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1009_ASTM); InitFormat(LayoutExportFormats::DXF_AC1012_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1012_ASTM); InitFormat(LayoutExportFormats::DXF_AC1014_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1014_ASTM); InitFormat(LayoutExportFormats::DXF_AC1015_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1015_ASTM); InitFormat(LayoutExportFormats::DXF_AC1018_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1018_ASTM); InitFormat(LayoutExportFormats::DXF_AC1021_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1021_ASTM); InitFormat(LayoutExportFormats::DXF_AC1024_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1024_ASTM); InitFormat(LayoutExportFormats::DXF_AC1027_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1027_ASTM);
InitFormat(LayoutExportFormats::PDFTiled); InitFormat(LayoutExportFormats::PDFTiled);
// InitFormat(LayoutExportFormats::NC); // InitFormat(LayoutExportFormats::NC);

View File

@ -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;

View File

@ -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>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>Path:</string> <string>Path:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<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,14 +61,22 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>File format:</string> <string>File format:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item>
<widget class="QComboBox" name="comboBoxFormat"> <widget class="QComboBox" name="comboBoxFormat">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred"> <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
@ -78,7 +86,30 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <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>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QGroupBox" name="groupBoxFormatOptions">
<property name="title">
<string>Options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="checkBoxBinaryDXF"> <widget class="QCheckBox" name="checkBoxBinaryDXF">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -88,7 +119,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item>
<widget class="QCheckBox" name="checkBoxTextAsPaths"> <widget class="QCheckBox" name="checkBoxTextAsPaths">
<property name="enabled"> <property name="enabled">
<bool>true</bool> <bool>true</bool>
@ -98,7 +129,161 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> </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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;┐&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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 notr="true">...</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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;┘&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<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,27 +436,25 @@
<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">
<item row="1" column="0">
<widget class="QLabel" name="labelTemplates"> <widget class="QLabel" name="labelTemplates">
<property name="text"> <property name="text">
<string>Templates:</string> <string>Templates:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="0" column="1">
<widget class="QComboBox" name="comboBoxTemplates"/> <widget class="QComboBox" name="comboBoxTemplates"/>
</item> </item>
<item row="2" column="0"> <item row="1" column="0">
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="label_5">
<property name="text"> <property name="text">
<string>Orientation:</string> <string>Orientation:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
<item> <item>
<widget class="QToolButton" name="toolButtonPortrait"> <widget class="QToolButton" name="toolButtonPortrait">
@ -314,25 +509,32 @@
</layout> </layout>
</item> </item>
</layout> </layout>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="5" column="0"> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QLabel" name="label_3"> <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"> <property name="text">
<string>File name:</string> <string>File name:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<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>

View File

@ -263,12 +263,44 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
QAction *actionSelectAll = menu->addAction(tr("Select all")); QAction *actionSelectAll = menu->addAction(tr("Select all"));
QAction *actionSelectNone = menu->addAction(tr("Select none")); QAction *actionSelectNone = menu->addAction(tr("Select none"));
QAction *actionSeparator = new QAction(this); menu->addSeparator();
actionSeparator->setSeparator(true);
menu->addAction(actionSeparator);
QAction *actionInvertSelection = menu->addAction(tr("Invert selection")); QAction *actionInvertSelection = menu->addAction(tr("Invert selection"));
bool pieceMode = false;
QAction *actionPieceOptions = nullptr;
QAction *actionDeletePiece = nullptr;
VToolSeamAllowance *toolPiece = nullptr;
QTableWidgetItem *selectedItem = ui->tableWidget->itemAt(pos);
if (selectedItem)
{
QTableWidgetItem *item = ui->tableWidget->item(selectedItem->row(), PieceColumn::InLayout);
const quint32 id = item->data(Qt::UserRole).toUInt();
try
{
toolPiece = qobject_cast<VToolSeamAllowance *>(VAbstractPattern::getTool(id));
if (toolPiece)
{
pieceMode = true;
menu->addSeparator();
actionPieceOptions = menu->addAction(QIcon::fromTheme(QStringLiteral("preferences-other")),
tr("Piece options"));
actionDeletePiece = menu->addAction(QIcon::fromTheme(QStringLiteral("edit-delete")),
tr("Delete piece"));
actionDeletePiece->setDisabled(toolPiece->referens() > 0);
}
}
catch (const VExceptionBadId &)
{
const QString errorMsg = tr("Cannot find piece by id '%1'").arg(id);
qWarning() << VAbstractApplication::patternMessageSignature + errorMsg;
}
}
const QHash<quint32, VPiece> *allDetails = m_data->DataPieces(); const QHash<quint32, VPiece> *allDetails = m_data->DataPieces();
if (allDetails->count() == 0) if (allDetails->count() == 0)
{ {
@ -333,6 +365,23 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
qApp->getUndoStack()->endMacro(); qApp->getUndoStack()->endMacro();
} }
else if (pieceMode && selectedAction == actionPieceOptions)
{
toolPiece->ShowOptions();
}
else if (pieceMode && selectedAction == actionDeletePiece)
{
try
{
toolPiece->DeleteFromMenu();
}
catch(const VExceptionToolWasDeleted &e)
{
Q_UNUSED(e);
return;//Leave this method immediately!!!
}
//Leave this method immediately after call!!!
}
} }
//------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------

View File

@ -29,11 +29,11 @@
#include "vwidgetgroups.h" #include "vwidgetgroups.h"
#include "ui_vwidgetgroups.h" #include "ui_vwidgetgroups.h"
#include "../vtools/dialogs/tools/dialoggroup.h" #include "../vtools/dialogs/tools/dialoggroup.h"
#include "../vtools/undocommands/delgroup.h" #include "../vtools/undocommands/undogroup.h"
#include "../vtools/undocommands/changegroupvisibility.h"
#include "../vtools/undocommands/changemultiplegroupsvisibility.h"
#include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vcontainer.h"
#include "../vmisc/compatibility.h"
#include <QCompleter>
#include <QMenu> #include <QMenu>
#include <QTableWidget> #include <QTableWidget>
@ -53,6 +53,7 @@ VWidgetGroups::VWidgetGroups(VAbstractPattern *doc, QWidget *parent)
connect(ui->tableWidget, &QTableWidget::cellClicked, this, &VWidgetGroups::GroupVisibilityChanged); connect(ui->tableWidget, &QTableWidget::cellClicked, this, &VWidgetGroups::GroupVisibilityChanged);
connect(ui->tableWidget, &QTableWidget::cellChanged, this, &VWidgetGroups::RenameGroup); connect(ui->tableWidget, &QTableWidget::cellChanged, this, &VWidgetGroups::RenameGroup);
connect(ui->tableWidget, &QTableWidget::customContextMenuRequested, this, &VWidgetGroups::CtxMenu); connect(ui->tableWidget, &QTableWidget::customContextMenuRequested, this, &VWidgetGroups::CtxMenu);
connect(ui->lineEditTags, &QLineEdit::textChanged, this, &VWidgetGroups::UpdateGroups);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -112,6 +113,32 @@ void VWidgetGroups::SetMultipleGroupsVisibility(const QVector<vidtype> &groups,
qApp->getUndoStack()->push(changeGroups); qApp->getUndoStack()->push(changeGroups);
} }
//---------------------------------------------------------------------------------------------------------------------
QMap<quint32, VGroupData> VWidgetGroups::FilterGroups(const QMap<quint32, VGroupData> &groups)
{
QMap<quint32, VGroupData> filtered;
QSet<QString> filterCategories = ConvertToSet<QString>(VAbstractPattern::FilterGroupTags(ui->lineEditTags->text()));
if (filterCategories.isEmpty())
{
return groups;
}
auto i = groups.constBegin();
while (i != groups.constEnd())
{
const VGroupData &data = i.value();
QSet<QString> groupCategories = ConvertToSet<QString>(data.tags);
if (SetIntersects(filterCategories, groupCategories))
{
filtered.insert(i.key(), data);
}
++i;
}
return filtered;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
int VWidgetGroups::GroupRow(vidtype id) const int VWidgetGroups::GroupRow(vidtype id) const
{ {
@ -150,9 +177,9 @@ void VWidgetGroups::RenameGroup(int row, int column)
} }
const quint32 id = ui->tableWidget->item(row, 0)->data(Qt::UserRole).toUInt(); const quint32 id = ui->tableWidget->item(row, 0)->data(Qt::UserRole).toUInt();
doc->SetGroupName(id, ui->tableWidget->item(row, column)->text()); ::RenameGroup *renameGroup = new ::RenameGroup(doc, id, ui->tableWidget->item(row, column)->text());
connect(renameGroup, &RenameGroup::UpdateGroups, this, &VWidgetGroups::UpdateGroups);
UpdateGroups(); qApp->getUndoStack()->push(renameGroup);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -187,7 +214,7 @@ void VWidgetGroups::CtxMenu(const QPoint &pos)
menu->addAction(QIcon(QStringLiteral("://icon/16x16/closed_eye.png")), tr("Hide")) : menu->addAction(QIcon(QStringLiteral("://icon/16x16/closed_eye.png")), tr("Hide")) :
menu->addAction(QIcon(QStringLiteral("://icon/16x16/open_eye.png")), tr("Show")); menu->addAction(QIcon(QStringLiteral("://icon/16x16/open_eye.png")), tr("Show"));
QAction *actionRename = menu->addAction(tr("Rename")); QAction *actionPreferences = menu->addAction(QIcon::fromTheme(preferencesOtherIcon), tr("Preferences"));
QAction *actionDelete = menu->addAction(QIcon::fromTheme(editDeleteIcon), tr("Delete")); QAction *actionDelete = menu->addAction(QIcon::fromTheme(editDeleteIcon), tr("Delete"));
menu->addSeparator(); menu->addSeparator();
QAction *actionHideAll = menu->addAction(tr("Hide All")); QAction *actionHideAll = menu->addAction(tr("Hide All"));
@ -201,19 +228,22 @@ void VWidgetGroups::CtxMenu(const QPoint &pos)
{ {
SetGroupVisibility(id, not doc->GetGroupVisibility(id)); SetGroupVisibility(id, not doc->GetGroupVisibility(id));
} }
else if (selectedAction == actionRename) else if (selectedAction == actionPreferences)
{ {
QScopedPointer<VContainer> fackeContainer(new VContainer(qApp->TrVars(), qApp->patternUnitP(), QScopedPointer<VContainer> fackeContainer(new VContainer(qApp->TrVars(), qApp->patternUnitP(),
VContainer::UniqueNamespace())); VContainer::UniqueNamespace()));
QScopedPointer<DialogGroup> dialog(new DialogGroup(fackeContainer.data(), NULL_ID, this)); QScopedPointer<DialogGroup> dialog(new DialogGroup(fackeContainer.data(), NULL_ID, this));
dialog->SetName(doc->GetGroupName(id)); dialog->SetName(doc->GetGroupName(id));
dialog->SetTags(doc->GetGroupTags(id));
dialog->SetGroupCategories(doc->GetGroupCategories());
const int result = dialog->exec(); const int result = dialog->exec();
if (result == QDialog::Accepted) if (result == QDialog::Accepted)
{ {
doc->SetGroupName(id, dialog->GetName()); ChangeGroupOptions *changeGroupOptions = new ChangeGroupOptions(doc, id, dialog->GetName(),
item = ui->tableWidget->item(row, 1); dialog->GetTags());
item->setText(dialog->GetName()); connect(changeGroupOptions, &ChangeGroupOptions::UpdateGroups, this, &VWidgetGroups::UpdateGroups);
qApp->getUndoStack()->push(changeGroupOptions);
} }
} }
else if (selectedAction == actionDelete) else if (selectedAction == actionDelete)
@ -279,8 +309,13 @@ void VWidgetGroups::UpdateGroups()
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VWidgetGroups::FillTable(const QMap<quint32, QPair<QString, bool> > &groups) void VWidgetGroups::FillTable(QMap<quint32, VGroupData> groups)
{ {
emit doc->UpdateToolTip();
ui->lineEditTags->SetCompletion(doc->GetGroupCategories());
groups = FilterGroups(groups);
ui->tableWidget->blockSignals(true); ui->tableWidget->blockSignals(true);
ui->tableWidget->clear(); ui->tableWidget->clear();
@ -291,11 +326,11 @@ void VWidgetGroups::FillTable(const QMap<quint32, QPair<QString, bool> > &groups
while (i != groups.constEnd()) while (i != groups.constEnd())
{ {
++currentRow; ++currentRow;
const QPair<QString, bool> data = i.value(); const VGroupData data = i.value();
QTableWidgetItem *item = new QTableWidgetItem(); QTableWidgetItem *item = new QTableWidgetItem();
item->setTextAlignment(Qt::AlignHCenter); item->setTextAlignment(Qt::AlignHCenter);
(data.second) ? item->setIcon(QIcon("://icon/16x16/open_eye.png")) (data.visible) ? item->setIcon(QIcon("://icon/16x16/open_eye.png"))
: item->setIcon(QIcon("://icon/16x16/closed_eye.png")); : item->setIcon(QIcon("://icon/16x16/closed_eye.png"));
item->setData(Qt::UserRole, i.key()); item->setData(Qt::UserRole, i.key());
@ -307,8 +342,9 @@ void VWidgetGroups::FillTable(const QMap<quint32, QPair<QString, bool> > &groups
ui->tableWidget->setItem(currentRow, 0, item); ui->tableWidget->setItem(currentRow, 0, item);
item = new QTableWidgetItem(data.first); item = new QTableWidgetItem(data.name);
item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter); item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
item->setToolTip(tr("Categories: %1.").arg(data.tags.join(", ")));
if(doc->GroupIsEmpty(i.key())) if(doc->GroupIsEmpty(i.key()))
{ {

View File

@ -34,6 +34,7 @@
class QTableWidgetItem; class QTableWidgetItem;
class VAbstractPattern; class VAbstractPattern;
struct VGroupData;
namespace Ui namespace Ui
{ {
@ -61,10 +62,12 @@ private:
Ui::VWidgetGroups *ui; Ui::VWidgetGroups *ui;
VAbstractPattern *doc; VAbstractPattern *doc;
void FillTable(const QMap<quint32, QPair<QString, bool> > &groups); void FillTable(QMap<quint32, VGroupData> groups);
void SetGroupVisibility(vidtype id, bool visible) const; void SetGroupVisibility(vidtype id, bool visible) const;
void SetMultipleGroupsVisibility(const QVector<vidtype> &groups, bool visible) const; void SetMultipleGroupsVisibility(const QVector<vidtype> &groups, bool visible) const;
QMap<quint32, VGroupData> FilterGroups(const QMap<quint32, VGroupData> &groups);
int GroupRow(vidtype id) const; int GroupRow(vidtype id) const;
}; };

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>371</width> <width>371</width>
<height>279</height> <height>438</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -18,6 +18,30 @@
<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="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Tags:</string>
</property>
</widget>
</item>
<item>
<widget class="VCompleterLineEdit" name="lineEditTags">
<property name="toolTip">
<string>Separate each tag with comma.</string>
</property>
<property name="placeholderText">
<string>Filter by tags</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<widget class="QTableWidget" name="tableWidget"> <widget class="QTableWidget" name="tableWidget">
<property name="alternatingRowColors"> <property name="alternatingRowColors">
@ -47,16 +71,23 @@
<attribute name="verticalHeaderVisible"> <attribute name="verticalHeaderVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderMinimumSectionSize"> <attribute name="verticalHeaderMinimumSectionSize">
<number>10</number> <number>10</number>
</attribute> </attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>false</bool>
</attribute>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>VCompleterLineEdit</class>
<extends>QLineEdit</extends>
<header>vlineedit.h</header>
</customwidget>
</customwidgets>
<resources> <resources>
<include location="../../../libs/vmisc/share/resources/icon.qrc"/> <include location="../../../libs/vmisc/share/resources/icon.qrc"/>
</resources> </resources>

View File

@ -58,7 +58,7 @@
#include "tools/vtooluniondetails.h" #include "tools/vtooluniondetails.h"
#include "dialogs/dialogs.h" #include "dialogs/dialogs.h"
#include "dialogs/vwidgetgroups.h" #include "dialogs/vwidgetgroups.h"
#include "../vtools/undocommands/addgroup.h" #include "../vtools/undocommands/undogroup.h"
#include "dialogs/vwidgetdetails.h" #include "dialogs/vwidgetdetails.h"
#include "../vpatterndb/vpiecepath.h" #include "../vpatterndb/vpiecepath.h"
#include "../qmuparser/qmuparsererror.h" #include "../qmuparser/qmuparsererror.h"
@ -648,6 +648,12 @@ void MainWindow::SetToolButton(bool checked, Tool t, const QString &cursor, cons
case Tool::PlaceLabel: case Tool::PlaceLabel:
dialogTool->SetPiecesList(doc->GetActivePPPieces()); dialogTool->SetPiecesList(doc->GetActivePPPieces());
break; break;
case Tool::Rotation:
case Tool::Move:
case Tool::FlippingByAxis:
case Tool::FlippingByLine:
dialogTool->SetGroupCategories(doc->GetGroupCategories());
break;
default: default:
break; break;
} }
@ -1241,7 +1247,8 @@ void MainWindow::ClosedDialogGroup(int result)
{ {
const QPointer<DialogGroup> dialog = qobject_cast<DialogGroup *>(dialogTool); const QPointer<DialogGroup> dialog = qobject_cast<DialogGroup *>(dialogTool);
SCASSERT(not dialog.isNull()) SCASSERT(not dialog.isNull())
const QDomElement group = doc->CreateGroup(pattern->getNextId(), dialog->GetName(), dialog->GetGroup()); const QDomElement group = doc->CreateGroup(pattern->getNextId(), dialog->GetName(), dialog->GetTags(),
dialog->GetGroup());
if (not group.isNull()) if (not group.isNull())
{ {
AddGroup *addGroup = new AddGroup(group, doc); AddGroup *addGroup = new AddGroup(group, doc);
@ -5527,6 +5534,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 +5571,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)
{ {

View File

@ -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"
@ -312,7 +313,7 @@ bool MainWindowsNoGUI::GenerateLayout(VLayoutGenerator& lGenerator)
if (lGenerator.PapersCount() <= papersCount) if (lGenerator.PapersCount() <= papersCount)
{ {
const qreal layoutEfficiency = lGenerator.LayoutEfficiency(); const qreal layoutEfficiency = lGenerator.LayoutEfficiency();
if (efficiency < layoutEfficiency) if (efficiency < layoutEfficiency || lGenerator.PapersCount() < papersCount)
{ {
efficiency = layoutEfficiency; efficiency = layoutEfficiency;
if (VApplication::IsGUIMode()) if (VApplication::IsGUIMode())
@ -402,9 +403,12 @@ bool MainWindowsNoGUI::GenerateLayout(VLayoutGenerator& lGenerator)
|| nestingState == LayoutErrors::TerminatedByException || nestingState == LayoutErrors::TerminatedByException
|| (nestingState == LayoutErrors::NoError && not qFuzzyIsNull(lGenerator.GetEfficiencyCoefficient()) || (nestingState == LayoutErrors::NoError && not qFuzzyIsNull(lGenerator.GetEfficiencyCoefficient())
&& efficiency >= lGenerator.GetEfficiencyCoefficient())) && efficiency >= lGenerator.GetEfficiencyCoefficient()))
{
if (not lGenerator.IsPreferOneSheetSolution() || lGenerator.PapersCount() == 1)
{ {
break; break;
} }
}
if (IsTimeout()) if (IsTimeout())
{ {
@ -510,7 +514,16 @@ void MainWindowsNoGUI::ExportData(const QVector<VLayoutPiece> &listDetails)
format == LayoutExportFormats::DXF_AC1018_AAMA || format == LayoutExportFormats::DXF_AC1018_AAMA ||
format == LayoutExportFormats::DXF_AC1021_AAMA || format == LayoutExportFormats::DXF_AC1021_AAMA ||
format == LayoutExportFormats::DXF_AC1024_AAMA || format == LayoutExportFormats::DXF_AC1024_AAMA ||
format == LayoutExportFormats::DXF_AC1027_AAMA) format == LayoutExportFormats::DXF_AC1027_AAMA ||
format == LayoutExportFormats::DXF_AC1006_ASTM ||
format == LayoutExportFormats::DXF_AC1009_ASTM ||
format == LayoutExportFormats::DXF_AC1012_ASTM ||
format == LayoutExportFormats::DXF_AC1014_ASTM ||
format == LayoutExportFormats::DXF_AC1015_ASTM ||
format == LayoutExportFormats::DXF_AC1018_ASTM ||
format == LayoutExportFormats::DXF_AC1021_ASTM ||
format == LayoutExportFormats::DXF_AC1024_ASTM ||
format == LayoutExportFormats::DXF_AC1027_ASTM)
{ {
if (m_dialogSaveLayout->Mode() == Draw::Layout) if (m_dialogSaveLayout->Mode() == Draw::Layout)
{ {
@ -665,15 +678,31 @@ void MainWindowsNoGUI::ExportApparelLayout(const QVector<VLayoutPiece> &details,
switch (format) switch (format)
{ {
case LayoutExportFormats::DXF_AC1006_ASTM: case LayoutExportFormats::DXF_AC1006_ASTM:
ASTMDxfFile(name, DRW::AC1006, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1009_ASTM: case LayoutExportFormats::DXF_AC1009_ASTM:
ASTMDxfFile(name, DRW::AC1009, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1012_ASTM: case LayoutExportFormats::DXF_AC1012_ASTM:
ASTMDxfFile(name, DRW::AC1012, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1014_ASTM: case LayoutExportFormats::DXF_AC1014_ASTM:
ASTMDxfFile(name, DRW::AC1014, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1015_ASTM: case LayoutExportFormats::DXF_AC1015_ASTM:
ASTMDxfFile(name, DRW::AC1015, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1018_ASTM: case LayoutExportFormats::DXF_AC1018_ASTM:
ASTMDxfFile(name, DRW::AC1018, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1021_ASTM: case LayoutExportFormats::DXF_AC1021_ASTM:
ASTMDxfFile(name, DRW::AC1021, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1024_ASTM: case LayoutExportFormats::DXF_AC1024_ASTM:
ASTMDxfFile(name, DRW::AC1024, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1027_ASTM: case LayoutExportFormats::DXF_AC1027_ASTM:
Q_UNREACHABLE(); // For now not supported ASTMDxfFile(name, DRW::AC1027, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break; break;
case LayoutExportFormats::DXF_AC1006_AAMA: case LayoutExportFormats::DXF_AC1006_AAMA:
AAMADxfFile(name, DRW::AC1006, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details); AAMADxfFile(name, DRW::AC1006, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
@ -798,7 +827,6 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
ToPixel(printer->pageRect(QPrinter::Millimeter).height(), Unit::Mm)); ToPixel(printer->pageRect(QPrinter::Millimeter).height(), Unit::Mm));
const double xscale = printer->pageRect().width() / printerPageRect.width(); const double xscale = printer->pageRect().width() / printerPageRect.width();
const double yscale = printer->pageRect().height() / printerPageRect.height(); const double yscale = printer->pageRect().height() / printerPageRect.height();
const double scale = qMin(xscale, yscale);
QPainter painter; QPainter painter;
if (not painter.begin(printer)) if (not painter.begin(printer))
@ -844,7 +872,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);
} }
} }
@ -949,7 +979,9 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
qreal x,y; qreal x,y;
if(printer->fullPage()) if(printer->fullPage())
{ {
QMarginsF printerMargins = printer->pageLayout().margins(); QPageLayout layout = printer->pageLayout();
layout.setUnits(QPageLayout::Millimeter);
QMarginsF printerMargins = layout.margins();
x = qFloor(ToPixel(printerMargins.left(),Unit::Mm)); x = qFloor(ToPixel(printerMargins.left(),Unit::Mm));
y = qFloor(ToPixel(printerMargins.top(),Unit::Mm)); y = qFloor(ToPixel(printerMargins.top(),Unit::Mm));
} }
@ -958,7 +990,7 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
x = 0; y = 0; x = 0; y = 0;
} }
QRectF target(x * scale, y * scale, source.width() * scale, source.height() * scale); QRectF target(x * xscale, y * yscale, source.width() * xscale, source.height() * yscale);
scenes.at(paperIndex)->render(&painter, target, source, Qt::IgnoreAspectRatio); scenes.at(paperIndex)->render(&painter, target, source, Qt::IgnoreAspectRatio);
@ -1187,10 +1219,10 @@ 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() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right(),
r.height() + margins.top() + margins.bottom())); r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom()));
generator.setTitle(tr("Pattern")); generator.setTitle(tr("Pattern"));
generator.setDescription(doc->GetDescription().toHtmlEscaped()); generator.setDescription(doc->GetDescription().toHtmlEscaped());
generator.setResolution(static_cast<int>(PrintDPI)); generator.setResolution(static_cast<int>(PrintDPI));
@ -1200,6 +1232,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();
} }
@ -1214,8 +1247,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);
@ -1223,6 +1256,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);
} }
@ -1245,9 +1279,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");
} }
@ -1272,6 +1308,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();
} }
@ -1297,6 +1334,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);
@ -1395,7 +1435,11 @@ 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);
@ -1404,6 +1448,7 @@ void MainWindowsNoGUI::FlatDxfFile(const QString &name, int version, bool binary
QPainter painter; QPainter painter;
if (painter.begin(&generator)) if (painter.begin(&generator))
{ {
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
scene->render(&painter, paper->rect(), paper->rect(), Qt::IgnoreAspectRatio); scene->render(&painter, paper->rect(), paper->rect(), Qt::IgnoreAspectRatio);
painter.end(); painter.end();
} }
@ -1413,6 +1458,23 @@ void MainWindowsNoGUI::FlatDxfFile(const QString &name, int version, bool binary
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void MainWindowsNoGUI::AAMADxfFile(const QString &name, int version, bool binary, const QSize &size, void MainWindowsNoGUI::AAMADxfFile(const QString &name, int version, bool binary, const QSize &size,
const QVector<VLayoutPiece> &details) const const QVector<VLayoutPiece> &details) const
{
VDxfPaintDevice generator;
generator.setFileName(name);
generator.setSize(QSize(qCeil(size.width() * m_dialogSaveLayout->GetXScale()),
qCeil(size.height() * m_dialogSaveLayout->GetYScale())));
generator.setResolution(PrintDPI);
generator.SetVersion(static_cast<DRW::Version>(version));
generator.SetBinaryFormat(binary);
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);
}
//---------------------------------------------------------------------------------------------------------------------
void MainWindowsNoGUI::ASTMDxfFile(const QString &name, int version, bool binary, const QSize &size,
const QVector<VLayoutPiece> &details) const
{ {
VDxfPaintDevice generator; VDxfPaintDevice generator;
generator.setFileName(name); generator.setFileName(name);
@ -1421,7 +1483,9 @@ void MainWindowsNoGUI::AAMADxfFile(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.ExportToAAMA(details); generator.SetXScale(m_dialogSaveLayout->GetXScale());
generator.SetYScale(m_dialogSaveLayout->GetYScale());
generator.ExportToASTM(details);
} }
QT_WARNING_POP QT_WARNING_POP
@ -1437,6 +1501,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);
}
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -1451,6 +1526,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);
}
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -1541,8 +1627,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);
@ -1573,6 +1670,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();

View File

@ -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,
@ -182,6 +185,8 @@ private:
const QList<QList<QGraphicsItem *> > &details)const; const QList<QList<QGraphicsItem *> > &details)const;
void AAMADxfFile(const QString &name, int version, bool binary, const QSize &size, void AAMADxfFile(const QString &name, int version, bool binary, const QSize &size,
const QVector<VLayoutPiece> &details) const; const QVector<VLayoutPiece> &details) const;
void ASTMDxfFile(const QString &name, int version, bool binary, const QSize &size,
const QVector<VLayoutPiece> &details) const;
void PreparePaper(int index) const; void PreparePaper(int index) const;
void RestorePaper(int index) const; void RestorePaper(int index) const;

View File

@ -3450,6 +3450,22 @@ void VPattern::GarbageCollector(bool commit)
{ {
modElement.removeChild(modNode); modElement.removeChild(modNode);
cleared = true; cleared = true;
// Clear history
try
{
vidtype id = GetParametrId(modNode);
auto record = std::find_if(history.begin(), history.end(),
[id](const VToolRecord &record) { return record.getId() == id; });
if (record != history.end())
{
history.erase(record);
}
}
catch(const VExceptionWrongId &)
{
// do nothing
}
} }
} }
} }

View File

@ -58,6 +58,7 @@
<file>schema/pattern/v0.8.4.xsd</file> <file>schema/pattern/v0.8.4.xsd</file>
<file>schema/pattern/v0.8.5.xsd</file> <file>schema/pattern/v0.8.5.xsd</file>
<file>schema/pattern/v0.8.6.xsd</file> <file>schema/pattern/v0.8.6.xsd</file>
<file>schema/pattern/v0.8.7.xsd</file>
<file>schema/standard_measurements/v0.3.0.xsd</file> <file>schema/standard_measurements/v0.3.0.xsd</file>
<file>schema/standard_measurements/v0.4.0.xsd</file> <file>schema/standard_measurements/v0.4.0.xsd</file>
<file>schema/standard_measurements/v0.4.1.xsd</file> <file>schema/standard_measurements/v0.4.1.xsd</file>

File diff suppressed because it is too large Load Diff

View File

@ -136,6 +136,7 @@ const QString VAbstractPattern::AttrCheckUniqueness = QStringLiteral("checkUni
const QString VAbstractPattern::AttrManualPassmarkLength = QStringLiteral("manualPassmarkLength"); const QString VAbstractPattern::AttrManualPassmarkLength = QStringLiteral("manualPassmarkLength");
const QString VAbstractPattern::AttrPassmarkLength = QStringLiteral("passmarkLength"); const QString VAbstractPattern::AttrPassmarkLength = QStringLiteral("passmarkLength");
const QString VAbstractPattern::AttrOpacity = QStringLiteral("opacity"); const QString VAbstractPattern::AttrOpacity = QStringLiteral("opacity");
const QString VAbstractPattern::AttrTags = QStringLiteral("tags");
const QString VAbstractPattern::AttrAll = QStringLiteral("all"); const QString VAbstractPattern::AttrAll = QStringLiteral("all");
@ -283,6 +284,17 @@ QMap<int, QString> AdjustMaterials(QMap<int, QString> materials)
return materials; return materials;
} }
//---------------------------------------------------------------------------------------------------------------------
QString PrepareGroupTags(QStringList tags)
{
for (auto &tag : tags)
{
tag = tag.simplified();
}
return ConvertToList(ConvertToSet<QString>(tags)).join(',');
}
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -1730,6 +1742,12 @@ void VAbstractPattern::SelectedDetail(quint32 id)
emit ShowDetail(id); emit ShowDetail(id);
} }
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::UpdateVisiblityGroups()
{
emit UpdateGroups();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::ToolExists(const quint32 &id) void VAbstractPattern::ToolExists(const quint32 &id)
{ {
@ -2422,17 +2440,22 @@ QDomElement VAbstractPattern::CreateGroups()
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QDomElement VAbstractPattern::CreateGroup(quint32 id, const QString &name, const QMap<quint32, quint32> &groupData) QDomElement VAbstractPattern::CreateGroup(quint32 id, const QString &name, const QStringList &tags,
const QMap<quint32, quint32> &groupData, vidtype tool)
{ {
if (id == NULL_ID || groupData.isEmpty()) if (id == NULL_ID || groupData.isEmpty())
{ {
return QDomElement(); return QDomElement();
} }
const QString preparedTags = PrepareGroupTags(tags);
QDomElement group = createElement(TagGroup); QDomElement group = createElement(TagGroup);
SetAttribute(group, AttrId, id); SetAttribute(group, AttrId, id);
SetAttribute(group, AttrName, name); SetAttribute(group, AttrName, name);
SetAttribute(group, AttrVisible, true); SetAttribute(group, AttrVisible, true);
SetAttributeOrRemoveIf(group, AttrTool, tool, tool == null_id);
SetAttributeOrRemoveIf(group, AttrTags, preparedTags, preparedTags.isEmpty());
auto i = groupData.constBegin(); auto i = groupData.constBegin();
while (i != groupData.constEnd()) while (i != groupData.constEnd())
@ -2446,44 +2469,43 @@ QDomElement VAbstractPattern::CreateGroup(quint32 id, const QString &name, const
return group; return group;
} }
//---------------------------------------------------------------------------------------------------------------------
vidtype VAbstractPattern::GroupLinkedToTool(vidtype toolId) const
{
const QDomNodeList groups = elementsByTagName(TagGroup);
for (int i=0; i < groups.size(); ++i)
{
const QDomElement group = groups.at(i).toElement();
if (not group.isNull() && group.hasAttribute(AttrTool))
{
const quint32 id = GetParametrUInt(group, AttrTool, NULL_ID_STR);
if (toolId == id)
{
return GetParametrUInt(group, AttrId, NULL_ID_STR);
}
}
}
return null_id;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString VAbstractPattern::GetGroupName(quint32 id) QString VAbstractPattern::GetGroupName(quint32 id)
{ {
QString name = tr("New group"); QString name = tr("New group");
QDomElement groups = CreateGroups();
if (not groups.isNull())
{
QDomElement group = elementById(id, TagGroup); QDomElement group = elementById(id, TagGroup);
if (group.isElement()) if (group.isElement())
{ {
name = GetParametrString(group, AttrName, name); name = GetParametrString(group, AttrName, name);
return name;
}
else
{
if (groups.childNodes().isEmpty())
{
QDomNode parent = groups.parentNode();
parent.removeChild(groups);
} }
qDebug("Can't get group by id = %u.", id);
return name; return name;
} }
}
else
{
qDebug("Can't get tag Groups.");
return name;
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetGroupName(quint32 id, const QString &name) void VAbstractPattern::SetGroupName(quint32 id, const QString &name)
{
QDomElement groups = CreateGroups();
if (not groups.isNull())
{ {
QDomElement group = elementById(id, TagGroup); QDomElement group = elementById(id, TagGroup);
if (group.isElement()) if (group.isElement())
@ -2492,27 +2514,57 @@ void VAbstractPattern::SetGroupName(quint32 id, const QString &name)
modified = true; modified = true;
emit patternChanged(false); emit patternChanged(false);
} }
else
{
if (groups.childNodes().isEmpty())
{
QDomNode parent = groups.parentNode();
parent.removeChild(groups);
} }
qDebug("Can't get group by id = %u.", id); //---------------------------------------------------------------------------------------------------------------------
} QStringList VAbstractPattern::GetGroupTags(vidtype id)
}
else
{ {
qDebug("Can't get tag Groups."); QStringList tags;
QDomElement group = elementById(id, TagGroup);
if (group.isElement())
{
tags = FilterGroupTags(GetParametrEmptyString(group, AttrTags));
}
return tags;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetGroupTags(quint32 id, const QStringList &tags)
{
QDomElement group = elementById(id, TagGroup);
if (group.isElement())
{
const QString rawTags = tags.join(',');
SetAttributeOrRemoveIf(group, AttrTags, rawTags, rawTags.isEmpty());
modified = true;
emit patternChanged(false);
} }
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QMap<quint32, QPair<QString, bool> > VAbstractPattern::GetGroups() QStringList VAbstractPattern::GetGroupCategories() const
{ {
QMap<quint32, QPair<QString, bool> > data; QSet<QString> categories;
const QDomNodeList groups = elementsByTagName(TagGroup);
for (int i=0; i < groups.size(); ++i)
{
const QDomElement group = groups.at(i).toElement();
if (not group.isNull() && group.hasAttribute(AttrTags))
{
QStringList groupTags = VAbstractPattern::FilterGroupTags(GetParametrEmptyString(group, AttrTags));
categories.unite(ConvertToSet<QString>(groupTags));
}
}
return ConvertToList(categories);
}
//---------------------------------------------------------------------------------------------------------------------
QMap<quint32, VGroupData> VAbstractPattern::GetGroups()
{
QMap<quint32, VGroupData> data;
try try
{ {
@ -2529,11 +2581,13 @@ QMap<quint32, QPair<QString, bool> > VAbstractPattern::GetGroups()
{ {
if (group.tagName() == TagGroup) if (group.tagName() == TagGroup)
{ {
VGroupData groupData;
const quint32 id = GetParametrUInt(group, AttrId, QChar('0')); const quint32 id = GetParametrUInt(group, AttrId, QChar('0'));
const bool visible = GetParametrBool(group, AttrVisible, trueStr); groupData.visible = GetParametrBool(group, AttrVisible, trueStr);
const QString name = GetParametrString(group, AttrName, tr("New group")); groupData.name = GetParametrString(group, AttrName, tr("New group"));
groupData.tags = FilterGroupTags(GetParametrEmptyString(group, AttrTags));
data.insert(id, qMakePair(name, visible)); data.insert(id, groupData);
} }
} }
} }
@ -2547,7 +2601,7 @@ QMap<quint32, QPair<QString, bool> > VAbstractPattern::GetGroups()
} }
catch (const VExceptionConversionError &) catch (const VExceptionConversionError &)
{ {
return QMap<quint32, QPair<QString, bool> >(); return QMap<quint32, VGroupData>();
} }
return data; return data;
@ -2804,3 +2858,22 @@ QString VAbstractPattern::PieceDrawName(quint32 id)
return draw.attribute(VAbstractPattern::AttrName); return draw.attribute(VAbstractPattern::AttrName);
} }
//---------------------------------------------------------------------------------------------------------------------
QStringList VAbstractPattern::FilterGroupTags(const QString &tags)
{
if (tags.isEmpty())
{
return QStringList();
}
QStringList list = tags.split(',');
for (auto &tag : list)
{
tag = tag.simplified();
}
list.removeAll("");
return ConvertToList(ConvertToSet<QString>(list));
}

View File

@ -78,6 +78,13 @@ struct VFinalMeasurement
QString description; QString description;
}; };
struct VGroupData
{
QString name{};
bool visible{true};
QStringList tags{};
};
QT_WARNING_POP QT_WARNING_POP
class VAbstractPattern : public VDomDocument class VAbstractPattern : public VDomDocument
@ -200,16 +207,27 @@ public:
void ParseGroups(const QDomElement &domElement); void ParseGroups(const QDomElement &domElement);
QDomElement CreateGroups(); QDomElement CreateGroups();
QDomElement CreateGroup(quint32 id, const QString &name, const QMap<quint32, quint32> &groupData); QDomElement CreateGroup(quint32 id, const QString &name, const QStringList &tags,
const QMap<quint32, quint32> &groupData, vidtype tool=null_id);
vidtype GroupLinkedToTool(vidtype toolId) const;
QString GetGroupName(quint32 id); QString GetGroupName(quint32 id);
void SetGroupName(quint32 id, const QString &name); void SetGroupName(quint32 id, const QString &name);
QMap<quint32, QPair<QString, bool> > GetGroups();
QStringList GetGroupTags(vidtype id);
void SetGroupTags(quint32 id, const QStringList &tags);
QStringList GetGroupCategories() const;
QMap<quint32, VGroupData> GetGroups();
QMap<quint32, QString> GetGroupsContainingItem(quint32 toolId, quint32 objectId, bool containItem); QMap<quint32, QString> GetGroupsContainingItem(quint32 toolId, quint32 objectId, bool containItem);
QDomElement AddItemToGroup(quint32 toolId, quint32 objectId, quint32 groupId); QDomElement AddItemToGroup(quint32 toolId, quint32 objectId, quint32 groupId);
QDomElement RemoveItemFromGroup(quint32 toolId, quint32 objectId, quint32 groupId); QDomElement RemoveItemFromGroup(quint32 toolId, quint32 objectId, quint32 groupId);
bool GroupIsEmpty(quint32 id); bool GroupIsEmpty(quint32 id);
bool GetGroupVisibility(quint32 id); bool GetGroupVisibility(quint32 id);
static QStringList FilterGroupTags(const QString &tags);
QString PieceDrawName(quint32 id); QString PieceDrawName(quint32 id);
static const QString TagPattern; static const QString TagPattern;
@ -288,6 +306,7 @@ public:
static const QString AttrManualPassmarkLength; static const QString AttrManualPassmarkLength;
static const QString AttrPassmarkLength; static const QString AttrPassmarkLength;
static const QString AttrOpacity; static const QString AttrOpacity;
static const QString AttrTags;
static const QString AttrAll; static const QString AttrAll;
@ -405,6 +424,7 @@ signals:
* @brief UpdateGroups emit if the groups have been updated * @brief UpdateGroups emit if the groups have been updated
*/ */
void UpdateGroups(); void UpdateGroups();
void UpdateToolTip();
public slots: public slots:
virtual void LiteParseTree(const Document &parse)=0; virtual void LiteParseTree(const Document &parse)=0;
@ -413,6 +433,7 @@ public slots:
void ClearScene(); void ClearScene();
void CheckInLayoutList(); void CheckInLayoutList();
void SelectedDetail(quint32 id); void SelectedDetail(quint32 id);
void UpdateVisiblityGroups();
protected: protected:
/** @brief nameActivDraw name current pattern peace. */ /** @brief nameActivDraw name current pattern peace. */

View File

@ -264,7 +264,7 @@ VDomDocument::~VDomDocument()
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QDomElement VDomDocument::elementById(quint32 id, const QString &tagName) QDomElement VDomDocument::elementById(quint32 id, const QString &tagName, bool updateCache)
{ {
if (id == 0) if (id == 0)
{ {
@ -275,14 +275,25 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
{ {
const QDomElement e = m_elementIdCache.value(id); const QDomElement e = m_elementIdCache.value(id);
if (e.parentNode().nodeType() != QDomNode::BaseNode) if (e.parentNode().nodeType() != QDomNode::BaseNode)
{
if (not tagName.isEmpty())
{
if (e.tagName() == tagName)
{ {
return e; return e;
} }
m_elementIdCache.remove(id); }
else
{
return e;
}
}
} }
// Cached missed if (updateCache)
{ // Cached missed
RefreshElementIdCache(); RefreshElementIdCache();
}
if (tagName.isEmpty()) if (tagName.isEmpty())
{ {
@ -290,10 +301,8 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
QHash<quint32, QDomElement> tmpCache; QHash<quint32, QDomElement> tmpCache;
if (VDomDocument::find(tmpCache, this->documentElement(), id)) if (VDomDocument::find(tmpCache, this->documentElement(), id))
{ {
m_elementIdCache = tmpCache; return tmpCache.value(id);
return m_elementIdCache.value(id);
} }
m_elementIdCache = tmpCache;
} }
else else
{ {
@ -305,7 +314,6 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
{ {
const quint32 elementId = GetParametrUInt(domElement, AttrId, NULL_ID_STR); const quint32 elementId = GetParametrUInt(domElement, AttrId, NULL_ID_STR);
m_elementIdCache.insert(elementId, domElement);
if (elementId == id) if (elementId == id)
{ {
return domElement; return domElement;

View File

@ -96,7 +96,7 @@ public:
explicit VDomDocument(QObject *parent = nullptr); explicit VDomDocument(QObject *parent = nullptr);
virtual ~VDomDocument(); virtual ~VDomDocument();
QDomElement elementById(quint32 id, const QString &tagName = QString()); QDomElement elementById(quint32 id, const QString &tagName = QString(), bool updateCache=true);
template <typename T> template <typename T>
void SetAttribute(QDomElement &domElement, const QString &name, const T &value) const; void SetAttribute(QDomElement &domElement, const QString &name, const T &value) const;

View File

@ -59,8 +59,8 @@ class QDomElement;
*/ */
const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.4"); const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.4");
const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.8.6"); const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.8.7");
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.8.6.xsd"); const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.8.7.xsd");
//VPatternConverter::PatternMinVer; // <== DON'T FORGET TO UPDATE TOO!!!! //VPatternConverter::PatternMinVer; // <== DON'T FORGET TO UPDATE TOO!!!!
//VPatternConverter::PatternMaxVer; // <== DON'T FORGET TO UPDATE TOO!!!! //VPatternConverter::PatternMaxVer; // <== DON'T FORGET TO UPDATE TOO!!!!
@ -236,7 +236,8 @@ QString VPatternConverter::XSDSchema(int ver) const
std::make_pair(FORMAT_VERSION(0, 8, 3), QStringLiteral("://schema/pattern/v0.8.3.xsd")), std::make_pair(FORMAT_VERSION(0, 8, 3), QStringLiteral("://schema/pattern/v0.8.3.xsd")),
std::make_pair(FORMAT_VERSION(0, 8, 4), QStringLiteral("://schema/pattern/v0.8.4.xsd")), std::make_pair(FORMAT_VERSION(0, 8, 4), QStringLiteral("://schema/pattern/v0.8.4.xsd")),
std::make_pair(FORMAT_VERSION(0, 8, 5), QStringLiteral("://schema/pattern/v0.8.5.xsd")), std::make_pair(FORMAT_VERSION(0, 8, 5), QStringLiteral("://schema/pattern/v0.8.5.xsd")),
std::make_pair(FORMAT_VERSION(0, 8, 6), CurrentSchema) std::make_pair(FORMAT_VERSION(0, 8, 6), QStringLiteral("://schema/pattern/v0.8.6.xsd")),
std::make_pair(FORMAT_VERSION(0, 8, 7), CurrentSchema)
}; };
if (schemas.contains(ver)) if (schemas.contains(ver))
@ -481,6 +482,10 @@ void VPatternConverter::ApplyPatches()
ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 6))); ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 6)));
Q_FALLTHROUGH(); Q_FALLTHROUGH();
case (FORMAT_VERSION(0, 8, 6)): case (FORMAT_VERSION(0, 8, 6)):
ToV0_8_7();
ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 7)));
Q_FALLTHROUGH();
case (FORMAT_VERSION(0, 8, 7)):
break; break;
default: default:
InvalidVersion(m_ver); InvalidVersion(m_ver);
@ -498,7 +503,7 @@ void VPatternConverter::DowngradeToCurrentMaxVersion()
bool VPatternConverter::IsReadOnly() const bool VPatternConverter::IsReadOnly() const
{ {
// Check if attribute readOnly was not changed in file format // Check if attribute readOnly was not changed in file format
Q_STATIC_ASSERT_X(VPatternConverter::PatternMaxVer == FORMAT_VERSION(0, 8, 6), Q_STATIC_ASSERT_X(VPatternConverter::PatternMaxVer == FORMAT_VERSION(0, 8, 7),
"Check attribute readOnly."); "Check attribute readOnly.");
// Possibly in future attribute readOnly will change position etc. // Possibly in future attribute readOnly will change position etc.
@ -1128,6 +1133,16 @@ void VPatternConverter::ToV0_8_6()
Save(); Save();
} }
//---------------------------------------------------------------------------------------------------------------------
void VPatternConverter::ToV0_8_7()
{
// TODO. Delete if minimal supported version is 0.8.7
Q_STATIC_ASSERT_X(VPatternConverter::PatternMinVer < FORMAT_VERSION(0, 8, 7),
"Time to refactor the code.");
SetVersion(QStringLiteral("0.8.7"));
Save();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VPatternConverter::TagUnitToV0_2_0() void VPatternConverter::TagUnitToV0_2_0()
{ {

View File

@ -53,7 +53,7 @@ public:
static const QString PatternMaxVerStr; static const QString PatternMaxVerStr;
static const QString CurrentSchema; static const QString CurrentSchema;
static Q_DECL_CONSTEXPR const int PatternMinVer = FORMAT_VERSION(0, 1, 4); static Q_DECL_CONSTEXPR const int PatternMinVer = FORMAT_VERSION(0, 1, 4);
static Q_DECL_CONSTEXPR const int PatternMaxVer = FORMAT_VERSION(0, 8, 6); static Q_DECL_CONSTEXPR const int PatternMaxVer = FORMAT_VERSION(0, 8, 7);
protected: protected:
virtual int MinVer() const override; virtual int MinVer() const override;
@ -129,6 +129,7 @@ private:
void ToV0_8_4(); void ToV0_8_4();
void ToV0_8_5(); void ToV0_8_5();
void ToV0_8_6(); void ToV0_8_6();
void ToV0_8_7();
void TagUnitToV0_2_0(); void TagUnitToV0_2_0();
void TagIncrementToV0_2_0(); void TagIncrementToV0_2_0();

View File

@ -46,6 +46,9 @@ void dx_iface::writeEntity(DRW_Entity* e){
case DRW::POINT: case DRW::POINT:
dxfW->writePoint(static_cast<DRW_Point*>(e)); dxfW->writePoint(static_cast<DRW_Point*>(e));
break; break;
case DRW::ASTMNOTCH:
dxfW->writeASTMNotch(static_cast<DRW_ASTMNotch*>(e));
break;
case DRW::LINE: case DRW::LINE:
dxfW->writeLine(static_cast<DRW_Line*>(e)); dxfW->writeLine(static_cast<DRW_Line*>(e));
break; break;
@ -283,6 +286,107 @@ void dx_iface::AddAAMAHeaderData()
cData.headerC.addStr("$CLAYER", "1", 8); // Current layer name cData.headerC.addStr("$CLAYER", "1", 8); // Current layer name
} }
void dx_iface::AddASTMLayers()
{
DRW_Layer layer;
layer.name = '1';// piece boundary
layer.color = DRW::black;
cData.layers.push_back(layer);
// Do not support
// layer.name = '2';// turn points
// layer.color = DRW::black;
// cData.layers.push_back(layer);
// Do not support
// layer.name = '3';// curve points
// layer.color = DRW::black;
// cData.layers.push_back(layer);
layer.name = '4';// V-notch and slit notch
layer.color = DRW::black;
cData.layers.push_back(layer);
// Do not support
// layer.name = '5';// grade reference and alternate grade reference line(s)
// layer.color = DRW::black;
// cData.layers.push_back(layer);
// Do not support
// layer.name = '6';// mirror line
// layer.color = DRW::black;
// cData.layers.push_back(layer);
layer.name = '7';// grainline
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = '8';// internal line(s)
layer.color = DRW::black;
cData.layers.push_back(layer);
// Do not support
// layer.name = '9';// stripe reference line(s)
// layer.color = DRW::black;
// cData.layers.push_back(layer);
// Do not support
// layer.name = '10';// plaid reference line(s)
// layer.color = DRW::black;
// cData.layers.push_back(layer);
layer.name = "11";// internal cutout(s)
layer.color = DRW::black;
cData.layers.push_back(layer);
// Layer 12 intentionally left blank by the standard
layer.name = "13";// drill holes
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "14";// sew line(s)
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "15";// annotation text
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "80";// T-notch
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "81";// castle notch
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "82";// check notch
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "83";// U-notch
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "84";// piece boundary quality validation curves
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "85";// internal lines quality validation curves
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "86";// internal cutouts quality validation curves
layer.color = DRW::black;
cData.layers.push_back(layer);
layer.name = "87";// sew lines quality validation curves
layer.color = DRW::black;
cData.layers.push_back(layer);
}
void dx_iface::AddDefLayers() void dx_iface::AddDefLayers()
{ {
DRW_Layer defLayer; DRW_Layer defLayer;

View File

@ -124,6 +124,7 @@ public:
void AddDefLayers(); void AddDefLayers();
void AddAAMALayers(); void AddAAMALayers();
void AddAAMAHeaderData(); void AddAAMAHeaderData();
void AddASTMLayers();
private: private:
Q_DISABLE_COPY(dx_iface) Q_DISABLE_COPY(dx_iface)

View File

@ -224,6 +224,18 @@ void DRW_Point::parseCode(int code, dxfReader *reader){
} }
} }
void DRW_ASTMNotch::parseCode(int code, dxfReader *reader)
{
switch (code) {
case 50:
angle = reader->getDouble();
break;
default:
DRW_Point::parseCode(code, reader);
break;
}
}
void DRW_Line::parseCode(int code, dxfReader *reader){ void DRW_Line::parseCode(int code, dxfReader *reader){
switch (code) { switch (code) {
case 11: case 11:

View File

@ -80,6 +80,7 @@ namespace DRW {
VIEWPORT, VIEWPORT,
// WIPEOUT, //WIPEOUTVARIABLE // WIPEOUT, //WIPEOUTVARIABLE
XLINE, XLINE,
ASTMNOTCH, // ASTM NOTCH
UNKNOWN UNKNOWN
}; };
@ -251,6 +252,22 @@ public:
// the UCS in effect when the point was drawn // the UCS in effect when the point was drawn
}; };
class DRW_ASTMNotch : public DRW_Point {
SETENTFRIENDS
public:
DRW_ASTMNotch()
{
eType = DRW::ASTMNOTCH;
}
protected:
void parseCode(int code, dxfReader *reader);
public:
double angle{0}; /*!< angle, code 50 */
};
//! Class to handle line entity //! Class to handle line entity
/*! /*!
* Class to handle line entity * Class to handle line entity

View File

@ -553,6 +553,15 @@ bool dxfRW::writePoint(DRW_Point *ent) {
return true; return true;
} }
bool dxfRW::writeASTMNotch(DRW_ASTMNotch *ent)
{
writePoint(ent);
writer->writeDouble(50, ent->angle);
writer->writeDouble(39, ent->thickness); // Defined, but not used in point
return true;
}
bool dxfRW::writeLine(DRW_Line *ent) { bool dxfRW::writeLine(DRW_Line *ent) {
writer->writeString(0, "LINE"); writer->writeString(0, "LINE");
writeEntity(ent); writeEntity(ent);

View File

@ -47,6 +47,7 @@ public:
bool writeVport(DRW_Vport *ent); bool writeVport(DRW_Vport *ent);
bool writeAppId(DRW_AppId *ent); bool writeAppId(DRW_AppId *ent);
bool writePoint(DRW_Point *ent); bool writePoint(DRW_Point *ent);
bool writeASTMNotch(DRW_ASTMNotch *ent);
bool writeLine(DRW_Line *ent); bool writeLine(DRW_Line *ent);
bool writeRay(DRW_Ray *ent); bool writeRay(DRW_Ray *ent);
bool writeXline(DRW_Xline *ent); bool writeXline(DRW_Xline *ent);

View File

@ -55,6 +55,23 @@
static const qreal AAMATextHeight = 2.5; static const qreal AAMATextHeight = 2.5;
namespace
{
QVector<QPointF> PieceOutline(const VLayoutPiece &detail)
{
QVector<QPointF> outline;
if (detail.IsSeamAllowance() && not detail.IsSeamAllowanceBuiltIn())
{
outline = detail.GetMappedSeamAllowancePoints();
}
else
{
outline = detail.GetMappedContourPoints();
}
return outline;
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
static inline QPaintEngine::PaintEngineFeatures svgEngineFeatures() static inline QPaintEngine::PaintEngineFeatures svgEngineFeatures()
{ {
@ -570,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")
@ -623,9 +664,9 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
} }
input->AddAAMALayers(); input->AddAAMALayers();
ExportAAMAGlobalText(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();
@ -638,12 +679,14 @@ 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);
ExportAAMANotch(detailBlock, detail); ExportAAMANotch(detailBlock, detail);
ExportAAMAGrainline(detailBlock, detail); ExportAAMAGrainline(detailBlock, detail);
ExportAAMAText(detailBlock, detail); ExportPieceText(detailBlock, detail);
ExportAAMADrill(detailBlock, detail); ExportAAMADrill(detailBlock, detail);
input->AddBlock(detailBlock); input->AddBlock(detailBlock);
@ -661,17 +704,7 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportAAMAOutline(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail) void VDxfEngine::ExportAAMAOutline(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{ {
QVector<QPointF> outline; DRW_Entity *e = AAMAPolygon(PieceOutline(detail), QChar('1'), true);
if (detail.IsSeamAllowance() && not detail.IsSeamAllowanceBuiltIn())
{
outline = detail.GetMappedSeamAllowancePoints();
}
else
{
outline = detail.GetMappedContourPoints();
}
DRW_Entity *e = AAMAPolygon(outline, QChar('1'), true);
if (e) if (e)
{ {
detailBlock->ent.push_back(e); detailBlock->ent.push_back(e);
@ -761,20 +794,20 @@ void VDxfEngine::ExportAAMAGrainline(dx_ifaceBlock *detailBlock, const VLayoutPi
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportAAMAText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail) void VDxfEngine::ExportPieceText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{ {
const QStringList list = detail.GetPieceText(); const QStringList list = detail.GetPieceText();
const QPointF startPos = detail.GetPieceTextPosition(); const QPointF startPos = detail.GetPieceTextPosition();
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')));
} }
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportAAMAGlobalText(const QSharedPointer<dx_iface> &input, const QVector<VLayoutPiece> &details) void VDxfEngine::ExportStyleSystemText(const QSharedPointer<dx_iface> &input, const QVector<VLayoutPiece> &details)
{ {
for(auto &detail : details) for(auto &detail : details)
{ {
@ -783,7 +816,8 @@ void VDxfEngine::ExportAAMAGlobalText(const QSharedPointer<dx_iface> &input, con
{ {
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;
@ -812,6 +846,263 @@ void VDxfEngine::ExportAAMADrill(dx_ifaceBlock *detailBlock, const VLayoutPiece
} }
} }
//---------------------------------------------------------------------------------------------------------------------
bool VDxfEngine::ExportToASTM(const QVector<VLayoutPiece> &details)
{
if (size.isValid() == false)
{
qWarning()<<"VDxfEngine::begin(), size is not valid";
return false;
}
input = QSharedPointer<dx_iface>(new dx_iface(getFileNameForLocale(), m_version, varMeasurement,
varInsunits));
input->AddAAMAHeaderData();
if (m_version > DRW::AC1009)
{
input->AddDefLayers();
}
input->AddASTMLayers();
ExportStyleSystemText(input, details);
for(auto detail : details)
{
dx_ifaceBlock *detailBlock = new dx_ifaceBlock();
QString blockName = detail.GetName();
if (m_version <= DRW::AC1009)
{
blockName.replace(' ', '_');
}
detailBlock->name = blockName.toStdString();
detailBlock->layer = '1';
detail.Scale(m_xscale, m_yscale);
ExportASTMPieceBoundary(detailBlock, detail);
ExportASTMSewLine(detailBlock, detail);
ExportASTMInternalLine(detailBlock, detail);
ExportASTMInternalCutout(detailBlock, detail);
ExportASTMNotch(detailBlock, detail);
ExportAAMAGrainline(detailBlock, detail);
ExportPieceText(detailBlock, detail);
ExportASTMDrill(detailBlock, detail);
ExportASTMAnnotationText(detailBlock, detail);
input->AddBlock(detailBlock);
DRW_Insert *insert = new DRW_Insert();
insert->name = blockName.toStdString();
insert->layer = '1';
input->AddEntity(insert);
}
return input->fileExport(m_binary);
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMPieceBoundary(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
QVector<QPointF> pieceBoundary = PieceOutline(detail);
// Piece boundary
DRW_Entity *e = AAMAPolygon(PieceOutline(detail), QChar('1'), true);
if (e)
{
detailBlock->ent.push_back(e);
}
// Piece boundary quality validation curves
DRW_Entity *q = AAMAPolygon(PieceOutline(detail), "84", true);
if (q)
{
detailBlock->ent.push_back(q);
}
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMSewLine(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
if (not detail.IsHideMainPath() && not detail.IsSeamAllowanceBuiltIn())
{
QVector<QPointF> sewLine = detail.GetMappedContourPoints();
// Sew lines
if (DRW_Entity *e = AAMAPolygon(sewLine, "14", true))
{
detailBlock->ent.push_back(e);
}
// Sew lines quality validation curves
if (DRW_Entity *e = AAMAPolygon(sewLine, "87", true))
{
detailBlock->ent.push_back(e);
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMInternalLine(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
const QVector<QVector<QPointF>> drawIntCut = detail.InternalPathsForCut(false);
for(auto &intCut : drawIntCut)
{
// Internal line
if (DRW_Entity *e = AAMAPolygon(intCut, QChar('8'), false))
{
detailBlock->ent.push_back(e);
}
// Internal lines quality validation curves
if (DRW_Entity *e = AAMAPolygon(intCut, "85", false))
{
detailBlock->ent.push_back(e);
}
}
const QVector<VLayoutPlaceLabel> labels = detail.GetPlaceLabels();
for(auto &label : labels)
{
if (label.type != PlaceLabelType::Doubletree && label.type != PlaceLabelType::Button
&& label.type != PlaceLabelType::Circle)
{
for(auto &p : qAsConst(label.shape))
{
// Internal line (placelabel)
if (DRW_Entity *e = AAMAPolygon(p, QChar('8'), false))
{
detailBlock->ent.push_back(e);
}
// Internal lines quality validation curves
if (DRW_Entity *e = AAMAPolygon(p, "85", false))
{
detailBlock->ent.push_back(e);
}
}
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMInternalCutout(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
QVector<QVector<QPointF>> drawIntCut = detail.InternalPathsForCut(true);
for(auto &intCut : drawIntCut)
{
// Internal cutout
if (DRW_Entity *e = AAMAPolygon(intCut, "11", false))
{
detailBlock->ent.push_back(e);
}
// Internal cutouts quality validation curves
if (DRW_Entity *e = AAMAPolygon(intCut, "86", false))
{
detailBlock->ent.push_back(e);
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMAnnotationText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
QString name = detail.GetName();
QPointF textPos = detail.VLayoutPiece::DetailBoundingRect().center();
QPointF pos(textPos.x(), textPos.y() - ToPixel(AAMATextHeight, varInsunits));
detailBlock->ent.push_back(AAMAText(pos, name, "15"));
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMDrill(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
const QVector<VLayoutPlaceLabel> labels = detail.GetPlaceLabels();
for(auto &label : labels)
{
if (label.type == PlaceLabelType::Doubletree || label.type == PlaceLabelType::Button
|| label.type == PlaceLabelType::Circle)
{
const QPointF center = detail.GetMatrix().map(label.center);
DRW_Point *point = new DRW_Point();
point->basePoint = DRW_Coord(FromPixel(center.x(), varInsunits),
FromPixel(getSize().height() - center.y(), varInsunits), 0);
point->layer = "13";
detailBlock->ent.push_back(point);
// TODO. Investigate drill category
// QPointF pos(center.x(), center.y() - ToPixel(AAMATextHeight, varInsunits));
// detailBlock->ent.push_back(AAMAText(pos, category, "13"));
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportASTMNotch(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
if (detail.IsSeamAllowance())
{
const QVector<VLayoutPassmark> passmarks = detail.GetPassmarks();
for(auto &passmark : passmarks)
{
DRW_ASTMNotch *notch = new DRW_ASTMNotch();
const QPointF center = passmark.baseLine.p1();
notch->basePoint = DRW_Coord(FromPixel(center.x(), varInsunits),
FromPixel(getSize().height() - center.y(), varInsunits),
FromPixel(passmark.baseLine.length(), varInsunits));
notch->angle = passmark.baseLine.angle();
if (passmark.type == PassmarkLineType::OneLine || passmark.type == PassmarkLineType::TwoLines
|| passmark.type == PassmarkLineType::ThreeLines)
{ // Slit notch
notch->layer = "4";
}
else if (passmark.type == PassmarkLineType::VMark || passmark.type == PassmarkLineType::VMark2)
{
QLineF boundaryLine = QLineF(passmark.lines.first().p2(), passmark.lines.last().p2());
notch->thickness = FromPixel(boundaryLine.length(), varInsunits); // width
notch->layer = "4";
}
else if (passmark.type == PassmarkLineType::TMark)
{
qreal width = FromPixel(passmark.lines.last().length(), varInsunits);
notch->thickness = FromPixel(width, varInsunits);
notch->layer = "80";
}
else if (passmark.type == PassmarkLineType::BoxMark)
{
QPointF start = passmark.lines.first().p1();
QPointF end = passmark.lines.last().p2();
notch->layer = "81";
notch->thickness = FromPixel(QLineF(start, end).length(), varInsunits);
}
else if (passmark.type == PassmarkLineType::UMark)
{
QPointF start = passmark.lines.first().p1();
QPointF end = passmark.lines.last().p2();
notch->thickness = FromPixel(QLineF(start, end).length(), varInsunits);
notch->layer = "83";
}
detailBlock->ent.push_back(notch);
}
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
DRW_Entity *VDxfEngine::AAMAPolygon(const QVector<QPointF> &polygon, const QString &layer, bool forceClosed) DRW_Entity *VDxfEngine::AAMAPolygon(const QVector<QPointF> &polygon, const QString &layer, bool forceClosed)
{ {

View File

@ -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;
@ -114,10 +122,19 @@ private:
void ExportAAMAIntcut(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail); void ExportAAMAIntcut(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMANotch(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail); void ExportAAMANotch(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMAGrainline(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail); void ExportAAMAGrainline(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMAText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail); void ExportPieceText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMAGlobalText(const QSharedPointer<dx_iface> &input, const QVector<VLayoutPiece> &details); void ExportStyleSystemText(const QSharedPointer<dx_iface> &input, const QVector<VLayoutPiece> &details);
void ExportAAMADrill(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail); void ExportAAMADrill(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
bool ExportToASTM(const QVector<VLayoutPiece> &details);
void ExportASTMPieceBoundary(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportASTMSewLine(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportASTMInternalLine(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportASTMInternalCutout(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportASTMAnnotationText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportASTMDrill(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportASTMNotch(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
Q_REQUIRED_RESULT DRW_Entity *AAMAPolygon(const QVector<QPointF> &polygon, const QString &layer, bool forceClosed); Q_REQUIRED_RESULT DRW_Entity *AAMAPolygon(const QVector<QPointF> &polygon, const QString &layer, bool forceClosed);
Q_REQUIRED_RESULT DRW_Entity *AAMALine(const QLineF &line, const QString &layer); Q_REQUIRED_RESULT DRW_Entity *AAMALine(const QLineF &line, const QString &layer);
Q_REQUIRED_RESULT DRW_Entity *AAMAText(const QPointF &pos, const QString &text, const QString &layer); Q_REQUIRED_RESULT DRW_Entity *AAMAText(const QPointF &pos, const QString &text, const QString &layer);

View File

@ -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
{ {
@ -171,6 +205,15 @@ bool VDxfPaintDevice::ExportToAAMA(const QVector<VLayoutPiece> &details) const
return res; return res;
} }
//---------------------------------------------------------------------------------------------------------------------
bool VDxfPaintDevice::ExportToASTM(const QVector<VLayoutPiece> &details) const
{
engine->setActive(true);
const bool res = engine->ExportToASTM(details);
engine->setActive(false);
return res;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
int VDxfPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const int VDxfPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
{ {

View File

@ -66,7 +66,14 @@ 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;
protected: protected:
virtual int metric(PaintDeviceMetric metric) const override; virtual int metric(PaintDeviceMetric metric) const override;

View File

@ -37,6 +37,7 @@
#include "../vgeometry/vsplinepath.h" #include "../vgeometry/vsplinepath.h"
#include "../vgeometry/vcubicbezierpath.h" #include "../vgeometry/vcubicbezierpath.h"
#include "../vtools/tools/drawTools/drawtools.h" #include "../vtools/tools/drawTools/drawtools.h"
#include "../vpatterndb/calculator.h"
namespace namespace
{ {
@ -88,7 +89,7 @@ VPatternRecipe::VPatternRecipe(VContainer *data, VAbstractPattern *pattern, QObj
QDomElement recipeElement = createElement(QStringLiteral("recipe")); QDomElement recipeElement = createElement(QStringLiteral("recipe"));
recipeElement.appendChild(createComment(FileComment())); recipeElement.appendChild(createComment(FileComment()));
SetAttribute(recipeElement, QStringLiteral("version"), QStringLiteral("1.0.0")); SetAttribute(recipeElement, QStringLiteral("version"), QStringLiteral("1.1.0"));
recipeElement.appendChild(Prerequisite()); recipeElement.appendChild(Prerequisite());
recipeElement.appendChild(Content()); recipeElement.appendChild(Content());
@ -252,6 +253,8 @@ QDomElement VPatternRecipe::Content()
content.appendChild(Draft(draw)); content.appendChild(Draft(draw));
} }
content.appendChild(FinalMeasurements());
return content; return content;
} }
@ -402,6 +405,46 @@ QT_WARNING_POP
throw VExceptionInvalidHistory(tr("Can't create history record for the tool.")); throw VExceptionInvalidHistory(tr("Can't create history record for the tool."));
} }
//---------------------------------------------------------------------------------------------------------------------
QDomElement VPatternRecipe::FinalMeasurements()
{
QDomElement recipeFinalMeasurements = createElement(QStringLiteral("finalMeasurements"));
const QVector<VFinalMeasurement> measurements = m_pattern->GetFinalMeasurements();
for (auto &m : measurements)
{
recipeFinalMeasurements.appendChild(FinalMeasurement(m));
}
return recipeFinalMeasurements;
}
//---------------------------------------------------------------------------------------------------------------------
QDomElement VPatternRecipe::FinalMeasurement(const VFinalMeasurement &fm)
{
QDomElement recipeFinalMeasurement = createElement(QStringLiteral("finalMeasurement"));
SetAttribute(recipeFinalMeasurement, QStringLiteral("description"), fm.description);
SetAttribute(recipeFinalMeasurement, QStringLiteral("name"), fm.name);
SetAttribute(recipeFinalMeasurement, QStringLiteral("formula"), fm.formula); // TODO: localize
QScopedPointer<Calculator> cal(new Calculator());
const qreal result = cal->EvalFormula(m_data->DataVariables(), fm.formula);
if (qIsInf(result) || qIsNaN(result))
{
const QString errorMsg = QString("%1\n\n%1").arg(tr("Reading final measurements error."),
tr("Value for final measurtement '%1' is infinite or NaN. "
"Please, check your calculations.").arg(fm.name));
qApp->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::patternMessageSignature + errorMsg;
}
SetAttribute(recipeFinalMeasurement, QStringLiteral("value"), result);
return recipeFinalMeasurement;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QDomElement VPatternRecipe::BasePoint(const VToolRecord &record) QDomElement VPatternRecipe::BasePoint(const VToolRecord &record)
{ {

View File

@ -37,6 +37,7 @@ class VIncrement;
class VToolRecord; class VToolRecord;
class VFormula; class VFormula;
class VAbstractOperation; class VAbstractOperation;
struct VFinalMeasurement;
class VPatternRecipe : public VDomDocument class VPatternRecipe : public VDomDocument
{ {
@ -65,6 +66,9 @@ private:
QDomElement Draft(const QDomElement &draft); QDomElement Draft(const QDomElement &draft);
QDomElement Step(const VToolRecord &tool); QDomElement Step(const VToolRecord &tool);
QDomElement FinalMeasurements();
QDomElement FinalMeasurement(const VFinalMeasurement &fm);
QDomElement BasePoint(const VToolRecord &record); QDomElement BasePoint(const VToolRecord &record);
QDomElement EndLine(const VToolRecord &record); QDomElement EndLine(const VToolRecord &record);
QDomElement Line(const VToolRecord &record); QDomElement Line(const VToolRecord &record);

View File

@ -51,7 +51,7 @@
const quint32 VAbstractPieceData::streamHeader = 0x05CDD73A; // CRC-32Q string "VAbstractPieceData" const quint32 VAbstractPieceData::streamHeader = 0x05CDD73A; // CRC-32Q string "VAbstractPieceData"
const quint16 VAbstractPieceData::classVersion = 2; const quint16 VAbstractPieceData::classVersion = 2;
const qreal maxL = 2.5; const qreal maxL = 3.5;
const qreal VSAPoint::passmarkFactor = 0.5; const qreal VSAPoint::passmarkFactor = 0.5;
const qreal VSAPoint::maxPassmarkLength = (10/*mm*/ / 25.4) * PrintDPI; const qreal VSAPoint::maxPassmarkLength = (10/*mm*/ / 25.4) * PrintDPI;

View File

@ -29,6 +29,7 @@
#include "vbank.h" #include "vbank.h"
#include <climits> #include <climits>
#include <QLoggingCategory>
#include "../vmisc/diagnostic.h" #include "../vmisc/diagnostic.h"
#include "../vmisc/vabstractapplication.h" #include "../vmisc/vabstractapplication.h"
@ -334,8 +335,9 @@ bool VBank::PrepareUnsorted()
const qint64 square = details.at(i).Square(); const qint64 square = details.at(i).Square();
if (square <= 0) if (square <= 0)
{ {
qCCritical(lBank, "Preparing data for layout error: Detail '%s' square <= 0", qCCritical(lBank) << VAbstractApplication::patternMessageSignature +
qUtf8Printable(details.at(i).GetName())); tr("Preparing data for layout error: Detail '%1' square <= 0")
.arg(details.at(i).GetName());
prepare = false; prepare = false;
return prepare; return prepare;
} }
@ -358,14 +360,16 @@ bool VBank::PrepareDetails()
{ {
if (layoutWidth <= 0) if (layoutWidth <= 0)
{ {
qCCritical(lBank, "Preparing data for layout error: Layout paper sheet <= 0"); qCCritical(lBank) << VAbstractApplication::patternMessageSignature +
tr("Preparing data for layout error: Layout paper sheet <= 0");
prepare = false; prepare = false;
return prepare; return prepare;
} }
if (details.isEmpty()) if (details.isEmpty())
{ {
qCCritical(lBank, "Preparing data for layout error: List of details is empty"); qCCritical(lBank) << VAbstractApplication::patternMessageSignature +
tr("Preparing data for layout error: List of details is empty");
prepare = false; prepare = false;
return prepare; return prepare;
} }

View File

@ -53,6 +53,7 @@ enum class Cases : qint8 { CaseThreeGroup = 0, CaseTwoGroup, CaseDesc, UnknownCa
class VBank class VBank
{ {
Q_DECLARE_TR_FUNCTIONS(VBank)
public: public:
VBank(); VBank();

View File

@ -278,8 +278,10 @@ QLineF VContour::GlobalEdge(int i) const
const QLineF emptyEdge = EmptySheetEdge(); const QLineF emptyEdge = EmptySheetEdge();
const qreal nShift = emptyEdge.length()/GlobalEdgesCount(); const qreal nShift = emptyEdge.length()/GlobalEdgesCount();
edge = IsPortrait() ? QLineF(nShift*(i-1), emptyEdge.y1(), nShift*i, emptyEdge.y2()) : edge = IsPortrait() ? QLineF(nShift*(i-1) + emptyEdge.x1(), emptyEdge.y1(),
QLineF(emptyEdge.x1(), nShift*(i-1), emptyEdge.x2(), nShift*i); nShift*i + emptyEdge.x1(), emptyEdge.y2()) :
QLineF(emptyEdge.x1(), nShift*(i-1) + emptyEdge.y1(),
emptyEdge.x2(), nShift*i + emptyEdge.y1());
} }
else else
{ {
@ -445,7 +447,7 @@ bool VContour::IsPortrait() const
QLineF VContour::EmptySheetEdge() const QLineF VContour::EmptySheetEdge() const
{ {
const int offset = qRound(accuracyPointOnLine*4.); const int offset = qRound(accuracyPointOnLine*4.);
const int layoutOffset = qCeil(d->layoutWidth - accuracyPointOnLine*4.); const int layoutOffset = qCeil(d->layoutWidth - accuracyPointOnLine*2.);
return IsPortrait() ? QLineF(offset, -layoutOffset, d->paperWidth-offset, -layoutOffset) : return IsPortrait() ? QLineF(offset, -layoutOffset, d->paperWidth-offset, -layoutOffset) :
QLineF(-layoutOffset, offset, -layoutOffset, d->paperHeight-offset); QLineF(-layoutOffset, offset, -layoutOffset, d->paperHeight-offset);
} }

View File

@ -275,12 +275,7 @@ qreal VLayoutGenerator::LayoutEfficiency() const
qreal efficiency = 0; qreal efficiency = 0;
if (not papers.isEmpty()) if (not papers.isEmpty())
{ {
for(auto &paper : papers) efficiency = MasterPage().Efficiency();
{
efficiency += paper.Efficiency();
}
efficiency /= papers.size();
} }
return efficiency; return efficiency;
} }
@ -613,7 +608,7 @@ void VLayoutGenerator::UnitePages()
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VLayoutGenerator::UniteDetails(int j, QList<QList<VLayoutPiece> > &nDetails, qreal length, int i) void VLayoutGenerator::UniteDetails(int j, QList<QList<VLayoutPiece> > &nDetails, qreal length, int i) const
{ {
if ((j == 0 && nDetails.isEmpty()) || j >= nDetails.size()) if ((j == 0 && nDetails.isEmpty()) || j >= nDetails.size())
{//First or new details in paper {//First or new details in paper
@ -639,7 +634,7 @@ void VLayoutGenerator::UnitePapers(int j, QList<qreal> &papersLength, qreal leng
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QList<VLayoutPiece> VLayoutGenerator::MoveDetails(qreal length, const QVector<VLayoutPiece> &details) QList<VLayoutPiece> VLayoutGenerator::MoveDetails(qreal length, const QVector<VLayoutPiece> &details) const
{ {
if (qFuzzyIsNull(length)) if (qFuzzyIsNull(length))
{ {
@ -656,6 +651,87 @@ QList<VLayoutPiece> VLayoutGenerator::MoveDetails(qreal length, const QVector<VL
return newDetails; return newDetails;
} }
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief MasterPage return one "master" page combined all pieces on all pages.
*
* The main purpose of this method is to return the master page. This way we can efficiently calculate the efficiency
* of a solution taking into account empty space between bounding rectangles.
*
* @return master page
*/
VLayoutPaper VLayoutGenerator::MasterPage() const
{
if (papers.size() < 2)
{
return papers.first();
}
QList<QList<VLayoutPiece> > nDetails;
qreal length = 0;
const int j = 0; // papers count. Always 1.
for (int i = 0; i < papers.size(); ++i)
{
if (IsPortrait())
{
int paperHeight = 0;
if (autoCropLength)
{
const QRectF rec = papers.at(i).DetailsBoundingRect();
paperHeight = qRound(rec.y() + rec.height());
}
else
{
paperHeight = papers.at(i).GetHeight();
}
if (i != papers.size()-1)
{
paperHeight = qRound(paperHeight + bank->GetLayoutWidth()*2);
}
UniteDetails(j, nDetails, length, i);
length += paperHeight;
}
else
{
int paperWidth = 0;
if (autoCropLength)
{
const QRectF rec = papers.at(i).DetailsBoundingRect();
paperWidth = qRound(rec.x() + rec.width());
}
else
{
paperWidth = papers.at(i).GetWidth();
}
if (i != papers.size()-1)
{
paperWidth = qRound(paperWidth + bank->GetLayoutWidth()*2);
}
UniteDetails(j, nDetails, length, i);
length += paperWidth;
}
}
const int height = IsPortrait() ? qRound(length+accuracyPointOnLine*4) : PageHeight();
const int width = IsPortrait() ? PageWidth() : qRound(length+accuracyPointOnLine*4);
VLayoutPaper paper(height, width, bank->GetLayoutWidth());
paper.SetShift(shift);
paper.SetPaperIndex(static_cast<quint32>(0));
paper.SetRotate(rotate);
paper.SetFollowGrainline(followGrainline);
paper.SetRotationNumber(rotationNumber);
paper.SetSaveLength(saveLength);
paper.SetDetails(nDetails.at(0));
return paper;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VLayoutGenerator::IsUnitePages() const bool VLayoutGenerator::IsUnitePages() const
{ {
@ -680,6 +756,18 @@ void VLayoutGenerator::SetSaveLength(bool value)
saveLength = value; saveLength = value;
} }
//---------------------------------------------------------------------------------------------------------------------
bool VLayoutGenerator::IsPreferOneSheetSolution() const
{
return preferOneSheetSolution;
}
//---------------------------------------------------------------------------------------------------------------------
void VLayoutGenerator::SetPreferOneSheetSolution(bool value)
{
preferOneSheetSolution = value;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VLayoutGenerator::GetAutoCropLength() const bool VLayoutGenerator::GetAutoCropLength() const
{ {

View File

@ -117,6 +117,9 @@ public:
bool IsSaveLength() const; bool IsSaveLength() const;
void SetSaveLength(bool value); void SetSaveLength(bool value);
bool IsPreferOneSheetSolution() const;
void SetPreferOneSheetSolution(bool value);
bool IsUnitePages() const; bool IsUnitePages() const;
void SetUnitePages(bool value); void SetUnitePages(bool value);
@ -154,6 +157,7 @@ private:
bool autoCropLength; bool autoCropLength;
bool autoCropWidth; bool autoCropWidth;
bool saveLength; bool saveLength;
bool preferOneSheetSolution{false};
bool unitePages; bool unitePages;
bool stripOptimizationEnabled; bool stripOptimizationEnabled;
quint8 multiplier; quint8 multiplier;
@ -167,9 +171,10 @@ private:
void GatherPages(); void GatherPages();
void UnitePages(); void UnitePages();
void UniteDetails(int j, QList<QList<VLayoutPiece> > &nDetails, qreal length, int i); void UniteDetails(int j, QList<QList<VLayoutPiece> > &nDetails, qreal length, int i) const;
void UnitePapers(int j, QList<qreal> &papersLength, qreal length); void UnitePapers(int j, QList<qreal> &papersLength, qreal length);
QList<VLayoutPiece> MoveDetails(qreal length, const QVector<VLayoutPiece> &details); QList<VLayoutPiece> MoveDetails(qreal length, const QVector<VLayoutPiece> &details) const;
VLayoutPaper MasterPage() const;
}; };
#endif // VLAYOUTGENERATOR_H #endif // VLAYOUTGENERATOR_H

View File

@ -354,7 +354,7 @@ QVector<VLayoutPassmark> ConvertPassmarks(const VPiece &piece, const VContainer
} }
if (qApp->Settings()->IsDoublePassmark() if (qApp->Settings()->IsDoublePassmark()
&& not piece.IsHideMainPath() && (qApp->Settings()->IsPieceShowMainPath() || not piece.IsHideMainPath())
&& pData.isMainPathNode && pData.isMainPathNode
&& pData.passmarkAngleType != PassmarkAngleType::Intersection && pData.passmarkAngleType != PassmarkAngleType::Intersection
&& pData.passmarkAngleType != PassmarkAngleType::IntersectionOnlyLeft && pData.passmarkAngleType != PassmarkAngleType::IntersectionOnlyLeft
@ -466,7 +466,8 @@ VLayoutPiece VLayoutPiece::Create(const VPiece &piece, vidtype id, const VContai
qWarning() << VAbstractApplication::patternMessageSignature + errorMsg; qWarning() << VAbstractApplication::patternMessageSignature + errorMsg;
} }
det.SetCountourPoints(futureMainPath.result(), piece.IsHideMainPath()); det.SetCountourPoints(futureMainPath.result(),
qApp->Settings()->IsPieceShowMainPath() ? false : piece.IsHideMainPath());
det.SetSeamAllowancePoints(futureSeamAllowance.result(), piece.IsSeamAllowance(), piece.IsSeamAllowanceBuiltIn()); det.SetSeamAllowancePoints(futureSeamAllowance.result(), piece.IsSeamAllowance(), piece.IsSeamAllowanceBuiltIn());
det.SetInternalPaths(futureInternalPaths.result()); det.SetInternalPaths(futureInternalPaths.result());
det.SetPassmarks(futurePassmarks.result()); det.SetPassmarks(futurePassmarks.result());
@ -543,6 +544,7 @@ QVector<VLayoutPassmark> VLayoutPiece::Map<VLayoutPassmark>(QVector<VLayoutPassm
for (int i = 0; i < passmarks.size(); ++i) for (int i = 0; i < passmarks.size(); ++i)
{ {
passmarks[i].lines = Map(passmarks.at(i).lines); passmarks[i].lines = Map(passmarks.at(i).lines);
passmarks[i].baseLine = d->matrix.map(passmarks.at(i).baseLine);
} }
return passmarks; return passmarks;
@ -828,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)
{ {

View File

@ -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();

View File

@ -124,7 +124,7 @@ VPoster::VPoster(const QPrinter *printer)
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QVector<PosterData> VPoster::Calc(const QRect &imageRect, int page, PageOrientation orientation) const QVector<PosterData> VPoster::Calc(const QSize &imageRect, int page, PageOrientation orientation) const
{ {
QVector<PosterData> poster; QVector<PosterData> poster;
@ -390,7 +390,7 @@ int VPoster::CountColumns(int width, PageOrientation orientation) const
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
PosterData VPoster::Cut(int i, int j, const QRect &imageRect, PageOrientation orientation) const PosterData VPoster::Cut(int i, int j, const QSize &imageRect, PageOrientation orientation) const
{ {
Q_UNUSED(imageRect) Q_UNUSED(imageRect)
@ -431,7 +431,9 @@ QRect VPoster::PageRect() const
if(printer->fullPage()) if(printer->fullPage())
{ {
QMarginsF pMargins = printer->pageLayout().margins(); QPageLayout layout = printer->pageLayout();
layout.setUnits(QPageLayout::Millimeter);
QMarginsF pMargins = layout.margins();
QRectF newRect = rect.marginsRemoved(pMargins); QRectF newRect = rect.marginsRemoved(pMargins);
const QRect pageRectFP(0, 0, qFloor(ToPixel(newRect.width())), qFloor(ToPixel(newRect.height()))); const QRect pageRectFP(0, 0, qFloor(ToPixel(newRect.width())), qFloor(ToPixel(newRect.height())));
return pageRectFP; return pageRectFP;

View File

@ -68,7 +68,7 @@ class VPoster
public: public:
explicit VPoster(const QPrinter *printer); explicit VPoster(const QPrinter *printer);
QVector<PosterData> Calc(const QRect &imageRect, int page, PageOrientation orientation) const; QVector<PosterData> Calc(const QSize &imageRect, int page, PageOrientation orientation) const;
QVector<QGraphicsItem *> Tile(QGraphicsItem *parent, const PosterData &img, int sheets, QVector<QGraphicsItem *> Tile(QGraphicsItem *parent, const PosterData &img, int sheets,
const VWatermarkData &watermarkData, const QString &watermarkPath) const; const VWatermarkData &watermarkData, const QString &watermarkPath) const;
@ -84,7 +84,7 @@ private:
int CountRows(int height, PageOrientation orientation) const; int CountRows(int height, PageOrientation orientation) const;
int CountColumns(int width, PageOrientation orientation) const; int CountColumns(int width, PageOrientation orientation) const;
PosterData Cut(int i, int j, const QRect &imageRect, PageOrientation orientation) const; PosterData Cut(int i, int j, const QSize &imageRect, PageOrientation orientation) const;
QRect PageRect() const; QRect PageRect() const;

View File

@ -45,7 +45,8 @@ unix {
# Key -isystem disable checking errors in system headers. # Key -isystem disable checking errors in system headers.
-isystem "$${OUT_PWD}/$${MOC_DIR}" \ -isystem "$${OUT_PWD}/$${MOC_DIR}" \
-isystem "$${OUT_PWD}/$${RCC_DIR}" \ -isystem "$${OUT_PWD}/$${RCC_DIR}" \
$$CLANG_DEBUG_CXXFLAGS # See common.pri for more details. $$CLANG_DEBUG_CXXFLAGS \# See common.pri for more details.
-Wno-gnu-zero-variadic-macro-arguments\ # See macros qCCritical
checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
QMAKE_CXXFLAGS += -Werror QMAKE_CXXFLAGS += -Werror

View File

@ -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");
@ -134,6 +136,7 @@ const QString LONG_OPTION_MANUAL_PRIORITY = QStringLiteral("manualPriority");
const QString LONG_OPTION_LANDSCAPE_ORIENTATION = QStringLiteral("landscapeOrientation"); const QString LONG_OPTION_LANDSCAPE_ORIENTATION = QStringLiteral("landscapeOrientation");
const QString LONG_OPTION_NEST_QUANTITY = QStringLiteral("nestQuantity"); const QString LONG_OPTION_NEST_QUANTITY = QStringLiteral("nestQuantity");
const QString LONG_OPTION_PREFER_ONE_SHEET_SOLUTION = QStringLiteral("preferOneSheetSolution");
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
/** /**
@ -153,6 +156,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,
@ -189,6 +194,7 @@ QStringList AllKeys()
LONG_OPTION_FOLLOW_GRAINLINE, LONG_OPTION_FOLLOW_GRAINLINE,
LONG_OPTION_MANUAL_PRIORITY, LONG_OPTION_MANUAL_PRIORITY,
LONG_OPTION_LANDSCAPE_ORIENTATION, LONG_OPTION_LANDSCAPE_ORIENTATION,
LONG_OPTION_NEST_QUANTITY LONG_OPTION_NEST_QUANTITY,
LONG_OPTION_PREFER_ONE_SHEET_SOLUTION
}; };
} }

View File

@ -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;
@ -128,6 +130,7 @@ extern const QString LONG_OPTION_FOLLOW_GRAINLINE;
extern const QString LONG_OPTION_MANUAL_PRIORITY; extern const QString LONG_OPTION_MANUAL_PRIORITY;
extern const QString LONG_OPTION_LANDSCAPE_ORIENTATION; extern const QString LONG_OPTION_LANDSCAPE_ORIENTATION;
extern const QString LONG_OPTION_NEST_QUANTITY; extern const QString LONG_OPTION_NEST_QUANTITY;
extern const QString LONG_OPTION_PREFER_ONE_SHEET_SOLUTION;
QStringList AllKeys(); QStringList AllKeys();

View File

@ -195,4 +195,27 @@ inline void AppendTo(Cont &container, const Input &input)
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) #endif // QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
} }
//---------------------------------------------------------------------------------------------------------------------
template <typename T>
inline bool SetIntersects(const QSet<T> &set1, const QSet<T> &set2)
{
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
return set1.intersects(set2);
#else
const bool otherIsBigger = set2.size() > set1.size();
const QSet<T> &smallestSet = otherIsBigger ? set1 : set2;
const QSet<T> &biggestSet = otherIsBigger ? set2 : set1;
typename QSet<T>::const_iterator i = smallestSet.cbegin();
typename QSet<T>::const_iterator e = smallestSet.cend();
while (i != e)
{
if (biggestSet.contains(*i))
return true;
++i;
}
return false;
#endif
}
#endif // COMPATIBILITY_H #endif // COMPATIBILITY_H

View File

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -238,6 +238,11 @@ VCommonSettings::VCommonSettings(Format format, Scope scope, const QString &orga
:QSettings(format, scope, organization, application, parent) :QSettings(format, scope, organization, application, parent)
{} {}
//---------------------------------------------------------------------------------------------------------------------
VCommonSettings::VCommonSettings(const QString &fileName, QSettings::Format format, QObject *parent)
:QSettings(fileName, format, parent)
{}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString VCommonSettings::SharePath(const QString &shareItem) QString VCommonSettings::SharePath(const QString &shareItem)
{ {

View File

@ -44,6 +44,7 @@ class VCommonSettings : public QSettings
public: public:
VCommonSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(), VCommonSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(),
QObject *parent = nullptr); QObject *parent = nullptr);
VCommonSettings(const QString &fileName, Format format, QObject *parent = nullptr);
static QString SharePath(const QString &shareItem); static QString SharePath(const QString &shareItem);
static QString MultisizeTablesPath(); static QString MultisizeTablesPath();

View File

@ -91,6 +91,8 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutNestQuantity, (QLatin1Stri
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutAutoCropLength, (QLatin1String("layout/autoCropLength"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutAutoCropLength, (QLatin1String("layout/autoCropLength")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutAutoCropWidth, (QLatin1String("layout/autoCropWidth"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutAutoCropWidth, (QLatin1String("layout/autoCropWidth")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutSaveLength, (QLatin1String("layout/saveLength"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutSaveLength, (QLatin1String("layout/saveLength")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutPreferOneSheetSolution,
(QLatin1String("layout/preferOneSheetSolution")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutUnitePages, (QLatin1String("layout/unitePages"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutUnitePages, (QLatin1String("layout/unitePages")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingFields, (QLatin1String("layout/fields"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingFields, (QLatin1String("layout/fields")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingIgnoreFields, (QLatin1String("layout/ignoreFields"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingIgnoreFields, (QLatin1String("layout/ignoreFields")))
@ -137,6 +139,13 @@ VSettings::VSettings(Format format, Scope scope, const QString &organization, co
qRegisterMetaTypeStreamOperators<QMarginsF>("QMarginsF"); qRegisterMetaTypeStreamOperators<QMarginsF>("QMarginsF");
} }
//---------------------------------------------------------------------------------------------------------------------
VSettings::VSettings(const QString &fileName, QSettings::Format format, QObject *parent)
:VCommonSettings(fileName, format, parent)
{
qRegisterMetaTypeStreamOperators<QMarginsF>("QMarginsF");
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
template <class T> template <class T>
inline T VSettings::ValueOrDef(const QString &setting, const T &defValue) const inline T VSettings::ValueOrDef(const QString &setting, const T &defValue) const
@ -419,6 +428,24 @@ void VSettings::SetLayoutSaveLength(bool value)
setValue(*settingLayoutSaveLength, value); setValue(*settingLayoutSaveLength, value);
} }
//---------------------------------------------------------------------------------------------------------------------
bool VSettings::GetLayoutPreferOneSheetSolution() const
{
return value(*settingLayoutPreferOneSheetSolution, GetDefLayoutPreferOneSheetSolution()).toBool();
}
//---------------------------------------------------------------------------------------------------------------------
bool VSettings::GetDefLayoutPreferOneSheetSolution()
{
return false;
}
//---------------------------------------------------------------------------------------------------------------------
void VSettings::SetLayoutPreferOneSheetSolution(bool value)
{
setValue(*settingLayoutPreferOneSheetSolution, value);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VSettings::GetLayoutUnitePages() const bool VSettings::GetLayoutUnitePages() const
{ {

View File

@ -45,6 +45,7 @@ class VSettings : public VCommonSettings
public: public:
VSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(), VSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(),
QObject *parent = nullptr); QObject *parent = nullptr);
VSettings(const QString &fileName, Format format, QObject *parent = nullptr);
QString GetLabelLanguage() const; QString GetLabelLanguage() const;
void SetLabelLanguage(const QString &value); void SetLabelLanguage(const QString &value);
@ -109,6 +110,10 @@ public:
static bool GetDefLayoutSaveLength(); static bool GetDefLayoutSaveLength();
void SetLayoutSaveLength(bool value); void SetLayoutSaveLength(bool value);
bool GetLayoutPreferOneSheetSolution() const;
static bool GetDefLayoutPreferOneSheetSolution();
void SetLayoutPreferOneSheetSolution(bool value);
bool GetLayoutUnitePages() const; bool GetLayoutUnitePages() const;
static bool GetDefLayoutUnitePages(); static bool GetDefLayoutUnitePages();
void SetLayoutUnitePages(bool value); void SetLayoutUnitePages(bool value);

View File

@ -660,7 +660,7 @@ QVector<QLineF> VPassmark::FullPassmark(const VPiece &piece, const VContainer *d
QVector<QLineF> lines; QVector<QLineF> lines;
lines += SAPassmark(piece, data, PassmarkSide::All); lines += SAPassmark(piece, data, PassmarkSide::All);
if (qApp->Settings()->IsDoublePassmark() if (qApp->Settings()->IsDoublePassmark()
&& not piece.IsHideMainPath() && (qApp->Settings()->IsPieceShowMainPath() || not piece.IsHideMainPath())
&& m_data.isMainPathNode && m_data.isMainPathNode
&& m_data.passmarkAngleType != PassmarkAngleType::Intersection && m_data.passmarkAngleType != PassmarkAngleType::Intersection
&& m_data.passmarkAngleType != PassmarkAngleType::IntersectionOnlyLeft && m_data.passmarkAngleType != PassmarkAngleType::IntersectionOnlyLeft

View File

@ -47,15 +47,7 @@
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
VTranslateVars::VTranslateVars() VTranslateVars::VTranslateVars()
:VTranslateMeasurements(), :VTranslateMeasurements()
PMSystemNames(QMap<QString, qmu::QmuTranslation>()),
PMSystemAuthors(QMap<QString, qmu::QmuTranslation>()),
PMSystemBooks(QMap<QString, qmu::QmuTranslation>()),
variables(QMap<QString, qmu::QmuTranslation>()),
functions(QMap<QString, qmu::QmuTranslation>()),
placeholders(QMap<QString, qmu::QmuTranslation>()),
stDescriptions(QMap<QString, qmu::QmuTranslation>()),
translatedFunctions(QMap<QString, QString>())
{ {
InitPatternMakingSystems(); InitPatternMakingSystems();
InitVariables(); InitVariables();
@ -408,45 +400,140 @@ void VTranslateVars::InitVariables()
void VTranslateVars::InitFunctions() void VTranslateVars::InitFunctions()
{ {
functions.insert(degTorad_F, translate("VTranslateVars", "degTorad", "converts degrees to radian")); functions.insert(degTorad_F, translate("VTranslateVars", "degTorad", "converts degrees to radian"));
functionsDescriptions.insert(degTorad_F, translate("VTranslateVars", "converts degrees to radian",
"functionm degTorad"));
functions.insert(radTodeg_F, translate("VTranslateVars", "radTodeg", "converts radian to degrees")); functions.insert(radTodeg_F, translate("VTranslateVars", "radTodeg", "converts radian to degrees"));
functionsDescriptions.insert(radTodeg_F, translate("VTranslateVars", "converts radian to degrees",
"function radTodeg"));
functions.insert(sin_F, translate("VTranslateVars", "sin", "sine function working with radians")); functions.insert(sin_F, translate("VTranslateVars", "sin", "sine function working with radians"));
functionsDescriptions.insert(sin_F, translate("VTranslateVars", "sine function working with radians",
"function sin"));
functions.insert(cos_F, translate("VTranslateVars", "cos", "cosine function working with radians")); functions.insert(cos_F, translate("VTranslateVars", "cos", "cosine function working with radians"));
functionsDescriptions.insert(cos_F, translate("VTranslateVars", "cosine function working with radians",
"function cos"));
functions.insert(tan_F, translate("VTranslateVars", "tan", "tangens function working with radians")); functions.insert(tan_F, translate("VTranslateVars", "tan", "tangens function working with radians"));
functionsDescriptions.insert(tan_F, translate("VTranslateVars", "tangens function working with radians",
"function tan"));
functions.insert(asin_F, translate("VTranslateVars", "asin", "arcus sine function working with radians")); functions.insert(asin_F, translate("VTranslateVars", "asin", "arcus sine function working with radians"));
functionsDescriptions.insert(asin_F, translate("VTranslateVars", "arcus sine function working with radians",
"function asin"));
functions.insert(acos_F, translate("VTranslateVars", "acos", "arcus cosine function working with radians")); functions.insert(acos_F, translate("VTranslateVars", "acos", "arcus cosine function working with radians"));
functionsDescriptions.insert(acos_F, translate("VTranslateVars", "arcus cosine function working with radians",
"function acos"));
functions.insert(atan_F, translate("VTranslateVars", "atan", "arcus tangens function working with radians")); functions.insert(atan_F, translate("VTranslateVars", "atan", "arcus tangens function working with radians"));
functionsDescriptions.insert(atan_F, translate("VTranslateVars", "arcus tangens function working with radians",
"function atan"));
functions.insert(sinh_F, translate("VTranslateVars", "sinh", "hyperbolic sine function")); functions.insert(sinh_F, translate("VTranslateVars", "sinh", "hyperbolic sine function"));
functionsDescriptions.insert(sinh_F, translate("VTranslateVars", "hyperbolic sine function", "function sinh"));
functions.insert(cosh_F, translate("VTranslateVars", "cosh", "hyperbolic cosine")); functions.insert(cosh_F, translate("VTranslateVars", "cosh", "hyperbolic cosine"));
functionsDescriptions.insert(cosh_F, translate("VTranslateVars", "hyperbolic cosine", "function cosh"));
functions.insert(tanh_F, translate("VTranslateVars", "tanh", "hyperbolic tangens function")); functions.insert(tanh_F, translate("VTranslateVars", "tanh", "hyperbolic tangens function"));
functionsDescriptions.insert(tanh_F, translate("VTranslateVars", "hyperbolic tangens function", "function tanh"));
functions.insert(asinh_F, translate("VTranslateVars", "asinh", "hyperbolic arcus sine function")); functions.insert(asinh_F, translate("VTranslateVars", "asinh", "hyperbolic arcus sine function"));
functionsDescriptions.insert(asinh_F, translate("VTranslateVars", "hyperbolic arcus sine function",
"function asinh"));
functions.insert(acosh_F, translate("VTranslateVars", "acosh", "hyperbolic arcus cosine function")); functions.insert(acosh_F, translate("VTranslateVars", "acosh", "hyperbolic arcus cosine function"));
functionsDescriptions.insert(acosh_F, translate("VTranslateVars", "hyperbolic arcus cosine function",
"function acosh"));
functions.insert(atanh_F, translate("VTranslateVars", "atanh", "hyperbolic arcur tangens function")); functions.insert(atanh_F, translate("VTranslateVars", "atanh", "hyperbolic arcur tangens function"));
functionsDescriptions.insert(atanh_F, translate("VTranslateVars", "hyperbolic arcur tangens function",
"function atanh"));
functions.insert(sinD_F, translate("VTranslateVars", "sinD", "sine function working with degrees")); functions.insert(sinD_F, translate("VTranslateVars", "sinD", "sine function working with degrees"));
functionsDescriptions.insert(sinD_F, translate("VTranslateVars", "sine function working with degrees",
"function sinD"));
functions.insert(cosD_F, translate("VTranslateVars", "cosD", "cosine function working with degrees")); functions.insert(cosD_F, translate("VTranslateVars", "cosD", "cosine function working with degrees"));
functionsDescriptions.insert(cosD_F, translate("VTranslateVars", "cosine function working with degrees",
"function cosD"));
functions.insert(tanD_F, translate("VTranslateVars", "tanD", "tangens function working with degrees")); functions.insert(tanD_F, translate("VTranslateVars", "tanD", "tangens function working with degrees"));
functionsDescriptions.insert(tanD_F, translate("VTranslateVars", "tangens function working with degrees",
"function tanD"));
functions.insert(asinD_F, translate("VTranslateVars", "asinD", "arcus sine function working with degrees")); functions.insert(asinD_F, translate("VTranslateVars", "asinD", "arcus sine function working with degrees"));
functionsDescriptions.insert(asinD_F, translate("VTranslateVars", "arcus sine function working with degrees",
"function asinD"));
functions.insert(acosD_F, translate("VTranslateVars", "acosD", "arcus cosine function working with degrees")); functions.insert(acosD_F, translate("VTranslateVars", "acosD", "arcus cosine function working with degrees"));
functionsDescriptions.insert(acosD_F, translate("VTranslateVars", "arcus cosine function working with degrees",
"function acosD"));
functions.insert(atanD_F, translate("VTranslateVars", "atanD", "arcus tangens function working with degrees")); functions.insert(atanD_F, translate("VTranslateVars", "atanD", "arcus tangens function working with degrees"));
functionsDescriptions.insert(atanD_F, translate("VTranslateVars", "arcus tangens function working with degrees",
"function atanD"));
functions.insert(log2_F, translate("VTranslateVars", "log2", "logarithm to the base 2")); functions.insert(log2_F, translate("VTranslateVars", "log2", "logarithm to the base 2"));
functionsDescriptions.insert(log2_F, translate("VTranslateVars", "logarithm to the base 2", "function log2"));
functions.insert(log10_F, translate("VTranslateVars", "log10", "logarithm to the base 10")); functions.insert(log10_F, translate("VTranslateVars", "log10", "logarithm to the base 10"));
functionsDescriptions.insert(log10_F, translate("VTranslateVars", "logarithm to the base 10", "function log10"));
functions.insert(log_F, translate("VTranslateVars", "log", "logarithm to the base 10")); functions.insert(log_F, translate("VTranslateVars", "log", "logarithm to the base 10"));
functionsDescriptions.insert(log_F, translate("VTranslateVars", "logarithm to the base 10", "function log"));
functions.insert(ln_F, translate("VTranslateVars", "ln", "logarithm to base e (2.71828...)")); functions.insert(ln_F, translate("VTranslateVars", "ln", "logarithm to base e (2.71828...)"));
functionsDescriptions.insert(ln_F, translate("VTranslateVars", "logarithm to base e (2.71828...)", "function ln"));
functions.insert(exp_F, translate("VTranslateVars", "exp", "e raised to the power of x")); functions.insert(exp_F, translate("VTranslateVars", "exp", "e raised to the power of x"));
functionsDescriptions.insert(exp_F, translate("VTranslateVars", "e raised to the power of x", "function exp"));
functions.insert(sqrt_F, translate("VTranslateVars", "sqrt", "square root of a value")); functions.insert(sqrt_F, translate("VTranslateVars", "sqrt", "square root of a value"));
functionsDescriptions.insert(sqrt_F, translate("VTranslateVars", "square root of a value", "function sqrt"));
functions.insert(sign_F, translate("VTranslateVars", "sign", "sign function -1 if x<0; 1 if x>0")); functions.insert(sign_F, translate("VTranslateVars", "sign", "sign function -1 if x<0; 1 if x>0"));
functionsDescriptions.insert(sign_F, translate("VTranslateVars", "sign function -1 if x<0; 1 if x>0",
"function sign"));
functions.insert(rint_F, translate("VTranslateVars", "rint", "round to nearest integer")); functions.insert(rint_F, translate("VTranslateVars", "rint", "round to nearest integer"));
functionsDescriptions.insert(rint_F, translate("VTranslateVars", "round to nearest integer", "function rint"));
functions.insert(r2cm_F, translate("VTranslateVars", "r2cm", "round to up to 1 decimal")); functions.insert(r2cm_F, translate("VTranslateVars", "r2cm", "round to up to 1 decimal"));
functionsDescriptions.insert(r2cm_F, translate("VTranslateVars", "round to up to 1 decimal", "function r2cm"));
functions.insert(csrCm_F, translate("VTranslateVars", "csrCm", "cut, split and rotate modeling operation. Takes" functions.insert(csrCm_F, translate("VTranslateVars", "csrCm", "cut, split and rotate modeling operation. Takes"
" cm units.")); " cm units."));
functionsDescriptions.insert(csrCm_F, translate("VTranslateVars", "cut, split and rotate modeling operation. Takes "
"cm units.", "function csrCm"));
functions.insert(csrInch_F, translate("VTranslateVars", "csrInch", "cut, split and rotate modeling operation. Takes" functions.insert(csrInch_F, translate("VTranslateVars", "csrInch", "cut, split and rotate modeling operation. Takes"
" inch units.")); " inch units."));
functionsDescriptions.insert(csrInch_F, translate("VTranslateVars", "cut, split and rotate modeling operation. Takes"
" inch units.", "function csrInch"));
functions.insert(abs_F, translate("VTranslateVars", "abs", "absolute value")); functions.insert(abs_F, translate("VTranslateVars", "abs", "absolute value"));
functionsDescriptions.insert(abs_F, translate("VTranslateVars", "absolute value", "function abs"));
functions.insert(min_F, translate("VTranslateVars", "min", "min of all arguments")); functions.insert(min_F, translate("VTranslateVars", "min", "min of all arguments"));
functionsDescriptions.insert(min_F, translate("VTranslateVars", "min of all arguments", "function min"));
functions.insert(max_F, translate("VTranslateVars", "max", "max of all arguments")); functions.insert(max_F, translate("VTranslateVars", "max", "max of all arguments"));
functionsDescriptions.insert(max_F, translate("VTranslateVars", "max of all arguments", "function max"));
functions.insert(sum_F, translate("VTranslateVars", "sum", "sum of all arguments")); functions.insert(sum_F, translate("VTranslateVars", "sum", "sum of all arguments"));
functionsDescriptions.insert(sum_F, translate("VTranslateVars", "sum of all arguments", "function sum"));
functions.insert(avg_F, translate("VTranslateVars", "avg", "mean value of all arguments")); functions.insert(avg_F, translate("VTranslateVars", "avg", "mean value of all arguments"));
functionsDescriptions.insert(avg_F, translate("VTranslateVars", "mean value of all arguments", "function avg"));
functions.insert(fmod_F, translate("VTranslateVars", "fmod", functions.insert(fmod_F, translate("VTranslateVars", "fmod",
"Returns the floating-point remainder of numer/denom (rounded towards zero)")); "Returns the floating-point remainder of numer/denom (rounded towards zero)"));
functionsDescriptions.insert(fmod_F, translate("VTranslateVars", "Returns the floating-point remainder of "
"numer/denom (rounded towards zero)",
"function fmod"));
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -1094,6 +1181,7 @@ void VTranslateVars::Retranslate()
PMSystemBooks.clear(); PMSystemBooks.clear();
variables.clear(); variables.clear();
functions.clear(); functions.clear();
functionsDescriptions.clear();
stDescriptions.clear(); stDescriptions.clear();
InitPatternMakingSystems(); InitPatternMakingSystems();
@ -1115,3 +1203,9 @@ QMap<QString, qmu::QmuTranslation> VTranslateVars::GetFunctions() const
{ {
return functions; return functions;
} }
//---------------------------------------------------------------------------------------------------------------------
QMap<QString, qmu::QmuTranslation> VTranslateVars::GetFunctionsDescriptions() const
{
return functionsDescriptions;
}

View File

@ -67,19 +67,21 @@ public:
QMap<QString, QString> GetTranslatedFunctions() const; QMap<QString, QString> GetTranslatedFunctions() const;
QMap<QString, qmu::QmuTranslation> GetFunctions() const; QMap<QString, qmu::QmuTranslation> GetFunctions() const;
QMap<QString, qmu::QmuTranslation> GetFunctionsDescriptions() const;
static void BiasTokens(int position, int bias, QMap<int, QString> &tokens); static void BiasTokens(int position, int bias, QMap<int, QString> &tokens);
private: private:
Q_DISABLE_COPY(VTranslateVars) Q_DISABLE_COPY(VTranslateVars)
QMap<QString, qmu::QmuTranslation> PMSystemNames; QMap<QString, qmu::QmuTranslation> PMSystemNames{};
QMap<QString, qmu::QmuTranslation> PMSystemAuthors; QMap<QString, qmu::QmuTranslation> PMSystemAuthors{};
QMap<QString, qmu::QmuTranslation> PMSystemBooks; QMap<QString, qmu::QmuTranslation> PMSystemBooks{};
QMap<QString, qmu::QmuTranslation> variables; QMap<QString, qmu::QmuTranslation> variables{};
QMap<QString, qmu::QmuTranslation> functions; QMap<QString, qmu::QmuTranslation> functions{};
QMap<QString, qmu::QmuTranslation> placeholders; QMap<QString, qmu::QmuTranslation> functionsDescriptions{};
QMap<QString, qmu::QmuTranslation> stDescriptions; QMap<QString, qmu::QmuTranslation> placeholders{};
QMap<QString, QString> translatedFunctions; QMap<QString, qmu::QmuTranslation> stDescriptions{};
QMap<QString, QString> translatedFunctions{};
void InitPatternMakingSystems(); void InitPatternMakingSystems();
void InitVariables(); void InitVariables();

View File

@ -612,6 +612,7 @@ void DialogEditWrongFormula::ShowFunctions()
ui->tableWidget->setColumnHidden(ColumnFullName, true); ui->tableWidget->setColumnHidden(ColumnFullName, true);
ui->labelDescription->setText(QString()); ui->labelDescription->setText(QString());
const QMap<QString, qmu::QmuTranslation> functionsDescriptions = qApp->TrVars()->GetFunctionsDescriptions();
const QMap<QString, qmu::QmuTranslation> functions = qApp->TrVars()->GetFunctions(); const QMap<QString, qmu::QmuTranslation> functions = qApp->TrVars()->GetFunctions();
QMap<QString, qmu::QmuTranslation>::const_iterator i = functions.constBegin(); QMap<QString, qmu::QmuTranslation>::const_iterator i = functions.constBegin();
while (i != functions.constEnd()) while (i != functions.constEnd())
@ -622,7 +623,10 @@ void DialogEditWrongFormula::ShowFunctions()
font.setBold(true); font.setBold(true);
item->setFont(font); item->setFont(font);
ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, ColumnName, item); ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, ColumnName, item);
item->setToolTip(i.value().getMdisambiguation());
functionsDescriptions.contains(i.key())
? item->setToolTip(functionsDescriptions.value(i.key()).translate(qApp->Settings()->GetLocale()))
: item->setToolTip(i.value().getMdisambiguation());
++i; ++i;
} }

View File

@ -151,7 +151,7 @@ void DialogEndLine::EvalLength()
formulaData.labelEditFormula = ui->labelEditFormula; formulaData.labelEditFormula = ui->labelEditFormula;
formulaData.labelResult = ui->labelResultCalculation; formulaData.labelResult = ui->labelResultCalculation;
formulaData.postfix = UnitsToStr(qApp->patternUnit(), true); formulaData.postfix = UnitsToStr(qApp->patternUnit(), true);
formulaData.checkLessThanZero = true; formulaData.checkLessThanZero = false;
Eval(formulaData, flagFormula); Eval(formulaData, flagFormula);
} }

View File

@ -30,6 +30,7 @@
#include <QColor> #include <QColor>
#include <QComboBox> #include <QComboBox>
#include <QCompleter>
#include <QDialog> #include <QDialog>
#include <QLabel> #include <QLabel>
#include <QLineEdit> #include <QLineEdit>
@ -67,6 +68,7 @@ DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolI
stage1(true), stage1(true),
m_suffix(), m_suffix(),
flagName(true), flagName(true),
flagGroupName(true),
flagError(false) flagError(false)
{ {
ui->setupUi(this); ui->setupUi(this);
@ -81,6 +83,7 @@ DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolI
ui->comboBoxOriginPoint->setCurrentIndex(-1); ui->comboBoxOriginPoint->setCurrentIndex(-1);
connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogFlippingByAxis::SuffixChanged); connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogFlippingByAxis::SuffixChanged);
connect(ui->lineEditVisibilityGroup, &QLineEdit::textChanged, this, &DialogFlippingByAxis::GroupNameChanged);
connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged, connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged,
this, &DialogFlippingByAxis::PointChanged); this, &DialogFlippingByAxis::PointChanged);
@ -147,6 +150,49 @@ QVector<quint32> DialogFlippingByAxis::GetObjects() const
return ConvertToVector(objects); return ConvertToVector(objects);
} }
//---------------------------------------------------------------------------------------------------------------------
QString DialogFlippingByAxis::GetVisibilityGroupName() const
{
return ui->lineEditVisibilityGroup->text();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::SetVisibilityGroupName(const QString &name)
{
ui->lineEditVisibilityGroup->setText(name.isEmpty() ? tr("Rotation") : name);
}
//---------------------------------------------------------------------------------------------------------------------
bool DialogFlippingByAxis::HasLinkedVisibilityGroup() const
{
return ui->groupBoxVisibilityGroup->isChecked();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::SetHasLinkedVisibilityGroup(bool linked)
{
ui->groupBoxVisibilityGroup->setChecked(linked);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::SetVisibilityGroupTags(const QStringList &tags)
{
ui->lineEditGroupTags->setText(tags.join(", "));
}
//---------------------------------------------------------------------------------------------------------------------
QStringList DialogFlippingByAxis::GetVisibilityGroupTags() const
{
return ui->lineEditGroupTags->text().split(',');
}
//---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::SetGroupCategories(const QStringList &categories)
{
m_groupTags = categories;
ui->lineEditGroupTags->SetCompletion(m_groupTags);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::ShowDialog(bool click) void DialogFlippingByAxis::ShowDialog(bool click)
{ {
@ -277,6 +323,27 @@ void DialogFlippingByAxis::SuffixChanged()
CheckState(); CheckState();
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::GroupNameChanged()
{
QLineEdit* edit = qobject_cast<QLineEdit*>(sender());
if (edit)
{
const QString name = edit->text();
if (name.isEmpty())
{
flagGroupName = false;
ChangeColor(ui->labelGroupName, errorColor);
CheckState();
return;
}
flagGroupName = true;
ChangeColor(ui->labelGroupName, OkColor(this));
}
CheckState();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogFlippingByAxis::ShowVisualization() void DialogFlippingByAxis::ShowVisualization()
{ {
@ -295,6 +362,18 @@ void DialogFlippingByAxis::SaveData()
operation->SetOriginPointId(GetOriginPointId()); operation->SetOriginPointId(GetOriginPointId());
operation->SetAxisType(GetAxisType()); operation->SetAxisType(GetAxisType());
operation->RefreshGeometry(); operation->RefreshGeometry();
QStringList groupTags = ui->lineEditGroupTags->text().split(',');
for (auto &tag : groupTags)
{
tag = tag.trimmed();
if (not m_groupTags.contains(tag))
{
m_groupTags.append(tag);
}
}
ui->lineEditGroupTags->SetCompletion(m_groupTags);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -65,6 +65,17 @@ public:
QVector<quint32> GetObjects() const; QVector<quint32> GetObjects() const;
QString GetVisibilityGroupName() const;
void SetVisibilityGroupName(const QString &name);
bool HasLinkedVisibilityGroup() const;
void SetHasLinkedVisibilityGroup(bool linked);
void SetVisibilityGroupTags(const QStringList &tags);
QStringList GetVisibilityGroupTags() const;
virtual void SetGroupCategories(const QStringList &categories) override;
virtual void ShowDialog(bool click) override; virtual void ShowDialog(bool click) override;
public slots: public slots:
@ -73,6 +84,7 @@ public slots:
private slots: private slots:
void SuffixChanged(); void SuffixChanged();
void GroupNameChanged();
protected: protected:
virtual void ShowVisualization() override; virtual void ShowVisualization() override;
@ -96,15 +108,18 @@ private:
QString m_suffix; QString m_suffix;
bool flagName; bool flagName;
bool flagGroupName;
bool flagError; bool flagError;
QStringList m_groupTags{};
static void FillComboBoxAxisType(QComboBox *box); static void FillComboBoxAxisType(QComboBox *box);
}; };
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
inline bool DialogFlippingByAxis::IsValid() const inline bool DialogFlippingByAxis::IsValid() const
{ {
return flagError && flagName; return flagError && flagName && flagGroupName;
} }
#endif // DIALOGFLIPPINGBYAXIS_H #endif // DIALOGFLIPPINGBYAXIS_H

Some files were not shown because too many files have changed in this diff Show More