Merge remote-tracking branch 'upstream/feature/manual-layout' into feature/manual-layout

merge upstream
This commit is contained in:
Ronan Le Tiec 2020-04-11 10:46:06 +02:00
commit 80226b7188
153 changed files with 17039 additions and 2645 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,53 @@
<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="obsolete">...</translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3331,10 +3453,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3343,10 +3461,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3363,6 +3477,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3775,6 +3902,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>
@ -4720,10 +4875,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation type="unfinished">Length:</translation> <translation type="unfinished">Length:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5460,6 +5611,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 +5742,22 @@ 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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9780,6 +9971,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>
@ -10974,10 +11172,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation type="unfinished">Formula wizard</translation> <translation type="unfinished">Formula wizard</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation type="unfinished">Value</translation> <translation type="unfinished">Value</translation>
@ -11565,6 +11759,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 +11911,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 +12094,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 +12611,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 +12724,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 +12733,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 +12761,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 +13365,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 +13697,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 +13712,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 +13810,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 +14414,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 +15947,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 +16193,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 +16214,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 +16236,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>Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Okraje</translation>
</message>
<message>
<source>Left:</source>
<translation>Levý:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Pravý:</translation>
</message>
<message>
<source>Top:</source>
<translation>Nahoře:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3317,10 +3435,6 @@ Přesto použít nastavení?</translation>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation>Čas daný algoritmu k nalezení nejlepšího rozvržení.</translation> <translation>Čas daný algoritmu k nalezení nejlepšího rozvržení.</translation>
</message> </message>
<message>
<source> min</source>
<translation> min</translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation>Účinnost:</translation> <translation>Účinnost:</translation>
@ -3329,10 +3443,6 @@ Přesto použít nastavení?</translation>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation>%</translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation>Ruční přednost</translation> <translation>Ruční přednost</translation>
@ -3349,6 +3459,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation> min</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3761,6 +3884,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>Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4702,10 +4853,6 @@ Přesto použít nastavení?</translation>
<source>Length:</source> <source>Length:</source>
<translation>Délka:</translation> <translation>Délka:</translation>
</message> </message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation>Značka U</translation> <translation>Značka U</translation>
@ -5435,6 +5582,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>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 +5709,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9569,6 +9756,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>
@ -10692,10 +10886,6 @@ Chcete uložit změny?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Průvodce vzorcem</translation> <translation>Průvodce vzorcem</translation>
</message> </message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Hodnota</translation> <translation>Hodnota</translation>
@ -11233,6 +11423,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>Nelze otevřít soubor %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Nelze otevřít soubor se schématem %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>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>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 +11531,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 +11714,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 +12231,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 +12344,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 +12353,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 +12381,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 +12974,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 +13299,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>Převrácení podle osy</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13045,6 +13314,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 +13412,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 +14016,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 +15519,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 +15765,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 +15786,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 +15808,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>Nastavení</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>

File diff suppressed because it is too large Load Diff

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>Όνομα:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Περιστροφή</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>Όνομα:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Περιστροφή</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,49 @@
<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>Περιθώρια</translation>
</message>
<message>
<source>Left:</source>
<translation>Αριστερά:</translation>
</message>
<message>
<source>cm</source>
<translation>εκ</translation>
</message>
<message>
<source>Right:</source>
<translation>Δεξιά:</translation>
</message>
<message>
<source>Top:</source>
<translation>Επάνω:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>Κάτω:</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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3244,10 +3362,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3256,10 +3370,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3276,6 +3386,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3688,6 +3811,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>Όνομα:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Περιστροφή</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>
@ -4617,10 +4768,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Μήκος:</translation> <translation>Μήκος:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5349,6 +5496,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>Όνομα:</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 +5623,22 @@ 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>Επιλογές</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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9363,6 +9550,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>
@ -10455,10 +10649,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Βοηθός φόρμουλας</translation> <translation>Βοηθός φόρμουλας</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Τιμή</translation> <translation>Τιμή</translation>
@ -10973,6 +11163,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 +11269,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 +11448,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 +11849,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 +11942,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 +11958,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 +12549,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 +12858,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>Αναστροφή κατά άξονα</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12619,6 +12873,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 +12971,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 +13571,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 +15000,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 +15246,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 +15285,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>Προτιμήσεις</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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Left:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Right:</translation>
</message>
<message>
<source>Top:</source>
<translation>Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3327,10 +3441,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3882,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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Length:</translation> <translation>Length:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5432,6 +5579,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>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 +5706,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9560,6 +9747,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>
@ -10683,10 +10877,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Formula wizard</translation> <translation>Formula wizard</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Value</translation> <translation>Value</translation>
@ -11224,6 +11414,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>Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11312,6 +11522,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 +11705,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 +12222,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 +12335,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 +12344,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 +12372,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 +12965,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 +13290,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>Flipping by axis</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13305,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 +13403,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 +14007,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 +15510,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>hyperbolic sine function</translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation>hyperbolic cosine</translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation>hyperbolic tangens function</translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation>hyperbolic arcus sine function</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>hyperbolic arcur tangens function</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>logarithm to the base 2</translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation>logarithm to the base 10</translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation>logarithm to the base 10</translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation>logarithm to base e (2.71828...)</translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation>e raised to the power of x</translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation>square root of a value</translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation>sign function -1 if x&lt;0; 1 if x&gt;0</translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation>round to nearest integer</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>absolute value</translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation>min of all arguments</translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation>max of all arguments</translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation>sum of all arguments</translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation>mean value of all arguments</translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation>Returns the floating-point remainder of numer/denom (rounded towards zero)</translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15290,6 +15756,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 +15777,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 +15799,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>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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Left:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Right:</translation>
</message>
<message>
<source>Top:</source>
<translation>Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3327,10 +3441,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3882,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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Length:</translation> <translation>Length:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5432,6 +5579,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>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 +5706,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9560,6 +9747,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>
@ -10683,10 +10877,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Formula wizard</translation> <translation>Formula wizard</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Value</translation> <translation>Value</translation>
@ -11224,6 +11414,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>Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11312,6 +11522,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 +11705,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 +12222,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 +12335,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 +12344,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 +12372,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 +12965,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 +13290,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>Flipping by axis</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13305,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 +13403,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 +14007,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 +15510,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 +15756,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 +15777,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 +15799,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>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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Left:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Right:</translation>
</message>
<message>
<source>Top:</source>
<translation>Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3327,10 +3441,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3882,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>Name:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Length:</translation> <translation>Length:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5432,6 +5579,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>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 +5706,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9560,6 +9747,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>
@ -10683,10 +10877,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Formula wizard</translation> <translation>Formula wizard</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Value</translation> <translation>Value</translation>
@ -11224,6 +11414,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>Can&apos;t open file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Could not load schema file &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation>Validation error file %3 in line %1 column %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11312,6 +11522,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 +11705,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 +12222,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 +12335,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 +12344,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 +12372,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 +12965,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 +13290,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>Flipping by axis</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13305,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 +13403,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 +14007,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 +15510,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 +15756,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 +15777,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 +15799,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>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>renombrar grupo</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>Habilitar para crear un grupo de visibilidad a partir de objetos originales</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Grupo de Visibilidad</translation>
</message>
<message>
<source>Name:</source>
<translation>Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiquetas:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Separar cada etiqueta con coma.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Agregar etiquetas</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>Habilitar para crear un grupo de visibilidad a partir de objetos originales</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Grupo de Visibilidad</translation>
</message>
<message>
<source>Name:</source>
<translation>Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiquetas:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Separar cada etiqueta con coma.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Agregar etiquetas</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>Etiquetas:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Separar cada etiqueta con coma.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Agregar etiquetas</translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<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>Escala del diseño</translation>
</message>
<message>
<source>Margins</source>
<translation>Margenes</translation>
</message>
<message>
<source>Left:</source>
<translation>Izquierda:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Derecha:</translation>
</message>
<message>
<source>Top:</source>
<translation>Superior:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>Inferior:</translation>
</message>
<message>
<source>Scale</source>
<translation>Escala</translation>
</message>
<message>
<source>Horizontal:</source>
<translation>Horizontal:</translation>
</message>
<message>
<source>Vertical:</source>
<translation>Vertical:</translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3316,10 +3434,6 @@ Aplicar características de todos modos?</translation>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation>Tiempo dado para que el algoritmo encuentre el mejor diseño.</translation> <translation>Tiempo dado para que el algoritmo encuentre el mejor diseño.</translation>
</message> </message>
<message>
<source> min</source>
<translation> min</translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation>Eficiencia:</translation> <translation>Eficiencia:</translation>
@ -3328,10 +3442,6 @@ Aplicar características de todos modos?</translation>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation>Establecer coeficiente de eficiencia del diseño. El coeficiente de eficiencia del diseño es el radio del área ocupada por las piezas al limite rectangular de todas las piezas. Si el anidamiento alcanza el nivel requerido, el proceso se detiene. Si el valor es 0 no se realizará ninguna comprobación. </translation> <translation>Establecer coeficiente de eficiencia del diseño. El coeficiente de eficiencia del diseño es el radio del área ocupada por las piezas al limite rectangular de todas las piezas. Si el anidamiento alcanza el nivel requerido, el proceso se detiene. Si el valor es 0 no se realizará ninguna comprobación. </translation>
</message> </message>
<message>
<source>%</source>
<translation>%</translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation>Prioridad manual</translation> <translation>Prioridad manual</translation>
@ -3348,6 +3458,19 @@ 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>Prefer one sheet solution</source>
<translation>Prefiere una solución de hoja</translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation> min</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation>Habilite esta opción para preferir obtener soluciones de una hoja.</translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3760,6 +3883,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>Habilitar para crear un grupo de visibilidad a partir de objetos originales</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Grupo de Visibilidad</translation>
</message>
<message>
<source>Name:</source>
<translation>Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiquetas:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Separar cada etiqueta con coma.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Agregar etiquetas</translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4701,10 +4852,6 @@ Aplicar características de todos modos?</translation>
<source>Length:</source> <source>Length:</source>
<translation>Longitud:</translation> <translation>Longitud:</translation>
</message> </message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation>Marca U</translation> <translation>Marca U</translation>
@ -5433,6 +5580,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>Habilitar para crear un grupo de visibilidad a partir de objetos originales</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Grupo de Visibilidad</translation>
</message>
<message>
<source>Name:</source>
<translation>Nombre:</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiquetas:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Separar cada etiqueta con coma.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Agregar etiquetas</translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5536,6 +5707,22 @@ 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>Opciones</translation>
</message>
<message>
<source>Scale</source>
<translation>Escala</translation>
</message>
<message>
<source>Horizontal:</source>
<translation>Horizontal:</translation>
</message>
<message>
<source>Vertical:</source>
<translation>Vertical:</translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -6295,7 +6482,7 @@ Aplicar características de todos modos?</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>Followed %n option(s) require restart to take effect: %1.</source> <source>Followed %n option(s) require restart to take effect: %1.</source>
<translation type="unfinished"> <translation>
<numerusform>Para seguir %n opción(es) se requiere re-inicializar el programa: %1.</numerusform> <numerusform>Para seguir %n opción(es) se requiere re-inicializar el programa: %1.</numerusform>
<numerusform>Para seguir %n opción(es) se requiere re-inicializar el programa: %1.</numerusform> <numerusform>Para seguir %n opción(es) se requiere re-inicializar el programa: %1.</numerusform>
</translation> </translation>
@ -8256,11 +8443,11 @@ el patrón.</translation>
</message> </message>
<message> <message>
<source>Watermark</source> <source>Watermark</source>
<translation type="unfinished"></translation> <translation>Marca de Agua</translation>
</message> </message>
<message> <message>
<source>Load</source> <source>Load</source>
<translation type="unfinished"></translation> <translation>Cargar</translation>
</message> </message>
<message> <message>
<source>Remove</source> <source>Remove</source>
@ -8268,19 +8455,19 @@ el patrón.</translation>
</message> </message>
<message> <message>
<source>Edit current</source> <source>Edit current</source>
<translation type="unfinished"></translation> <translation>Editar actual</translation>
</message> </message>
<message> <message>
<source>Editor</source> <source>Editor</source>
<translation type="unfinished"></translation> <translation>Editor</translation>
</message> </message>
<message> <message>
<source>Create or edit a watermark</source> <source>Create or edit a watermark</source>
<translation type="unfinished"></translation> <translation>Crear o editar una marca de agua</translation>
</message> </message>
<message> <message>
<source>Watermark files</source> <source>Watermark files</source>
<translation type="unfinished"></translation> <translation>Archivos de marca de agua</translation>
</message> </message>
</context> </context>
<context> <context>
@ -8467,7 +8654,11 @@ el patrón.</translation>
%1 %1
%2</source> %2</source>
<translation type="unfinished"></translation> <translation>Error archivo.
%1
%2</translation>
</message> </message>
</context> </context>
<context> <context>
@ -9342,7 +9533,7 @@ Esta opción surtirá efecto después de reiniciar.</translation>
</message> </message>
<message> <message>
<source>Can&apos;t convert toInt parameter</source> <source>Can&apos;t convert toInt parameter</source>
<translation type="unfinished"></translation> <translation>No se puede convertir el parámetro toInt</translation>
</message> </message>
</context> </context>
<context> <context>
@ -9563,6 +9754,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>renombrar grupo</translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -10686,10 +10884,6 @@ Quieres guardar los cambios?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Asistente de formula</translation> <translation>Asistente de formula</translation>
</message> </message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Valor</translation> <translation>Valor</translation>
@ -10712,7 +10906,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>List of all defined passmarks. To define a passmark return to the Main Path tab, call context menu for a point item and make it a passmark.</source> <source>List of all defined passmarks. To define a passmark return to the Main Path tab, call context menu for a point item and make it a passmark.</source>
<translation type="unfinished"></translation> <translation>Lista de todos los piques definidos. Para definir un pique regrese a la pestaña de Ruta Principal, llame al menú de contexto por un punto del articulo y hágalo un pique.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -11227,6 +11421,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>No se pudo abrir el archivo %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>No se pudo abrir el archivo de esquema %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>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>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 +11529,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>opciones de operacion</translation>
</message>
<message>
<source>delete operation</source>
<translation>borrar operacion</translation>
</message>
<message>
<source>Visibility group</source>
<translation>Grupo de visibilidad</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11486,6 +11712,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>Preparación de datos para error de diseño: Detalle &apos;%1&apos; cuadro &lt;= 0</translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation>Preparación de datos para el error de diseño: Hoja de papel del diseño &lt;= 0</translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation>Preparación de datos para el error de diseño: la lista de detalles está vacía</translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11988,6 +12229,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>Establecer factor de escala horizontal desde 0.01 hasta 3.0 (predeterminado = 1.0, modo exportación).</translation>
</message>
<message>
<source>Horizontal scale</source>
<translation>Escala horizontal</translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation>Establecer escala vertical desde 0.01 hasta 3.0 ( Predeterminado = 1.0, modo exportación).</translation>
</message>
<message>
<source>Vertical scale</source>
<translation>Escala vertical</translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation>Prefiere una solución de diseño de hoja (modo de exportación).</translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12081,7 +12342,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 +12351,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 +12379,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 +12972,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>Error de lectura de medidas finales.</translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation>Valor para medida final &apos;%1&apos; es infinito o no es un numero. Por favor, revise sus cálculos.</translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -12720,7 +12989,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Notch for point &apos;%1&apos; in piece &apos;%2&apos; will be disabled. Manual length is less than allowed value.</source> <source>Notch for point &apos;%1&apos; in piece &apos;%2&apos; will be disabled. Manual length is less than allowed value.</source>
<translation type="unfinished"></translation> <translation>Pique para el punto &apos;%1&apos; en la pieza &apos;%2&apos; será inhabilitado. La longitud manual es menor que el valor permitido.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -12739,7 +13008,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Not supported file suffix &apos;%1&apos;</source> <source>Not supported file suffix &apos;%1&apos;</source>
<translation type="unfinished"></translation> <translation>No soporta el archivo con sufijo &apos;%1&apos;</translation>
</message> </message>
<message> <message>
<source>cm</source> <source>cm</source>
@ -12753,7 +13022,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Cannot open the watermark image.</source> <source>Cannot open the watermark image.</source>
<translation type="unfinished"></translation> <translation>No se puede abrir la imagen de marca de agua.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -13028,6 +13297,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>Volteando por ejes</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13039,6 +13312,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>voltear por linea</translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13133,6 +13410,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>mover</translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13733,6 +14014,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>rotar</translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15232,6 +15517,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>convertir grados a radianes</translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation>convertir radianes a grados</translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation>función seno trabajando con radianes</translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation>función coseno trabajando con radianes</translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation>función tangente trabajando con radianes</translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation>función arcoseno trabajando con radianes</translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation>función arco coseno trabajando con radianes</translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation>función arco tangente trabajando con radianes</translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation>función seno hiperbolico</translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation>coseno hiperbolico</translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation>función tangente hiperbolico</translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation>función arco coseno hiperbolico</translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation>función arco coseno hiperbolico</translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation>función arco tangente hiperbolica</translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation>función seno trabajando con grados</translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation>función coseno trabajando con grados</translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation>función tangente trabajando con grados</translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation>función arco seno trabajando con grados</translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation>función arco coseno trabajando con grados</translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation>función arco tangente trabajando con grados</translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation>logaritmo de base 2</translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation>logaritmo de base 10</translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation>logaritmo de base 10</translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation>logaritmo base e (2.71828...)</translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation>e elevado a la potencia de x</translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation>raíz cuadrada de un valor</translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation>signo de la función -1 si x&lt;0; 1 si x&gt;0</translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation>redondear al entero mas cercano</translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation>redondear hasta 1 decimal</translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation>cortar, dividir y rotar la operación de modelado. Toma unidades cm.</translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation>cortar, dividir y rotar la operación de modelado. Toma unidades pulgadas.</translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation>valor absoluto</translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation>minimo de todos los argumentos</translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation>máximo de todos los argumentos</translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation>suma de todos los argumentos</translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation>significado del valor de todos los argumentos</translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation>Devuelve el resto de punto flotante de numerador/denominador (redondeado hacia cero)</translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15293,6 +15763,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>Opciones de pieza</translation>
</message>
<message>
<source>Delete piece</source>
<translation>Eliminar pieza</translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation>No se puede encontrar pieza con id &apos;%1&apos;</translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15302,7 +15784,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 +15806,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>Etiquetas:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Separar cada etiqueta con coma.</translation>
</message>
<message>
<source>Filter by tags</source>
<translation>Filtrar por etiquetas</translation>
</message>
<message>
<source>Preferences</source>
<translation>Preferencias</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation>Categoría: %1.</translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>
@ -15452,11 +15954,11 @@ Quieres guardar los cambios?</translation>
<name>WatermarkWindow</name> <name>WatermarkWindow</name>
<message> <message>
<source>Watermark</source> <source>Watermark</source>
<translation type="unfinished"></translation> <translation>Marca de Agua</translation>
</message> </message>
<message> <message>
<source>Opacity:</source> <source>Opacity:</source>
<translation type="unfinished"></translation> <translation>Opacidad:</translation>
</message> </message>
<message> <message>
<source>Text</source> <source>Text</source>
@ -15468,7 +15970,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>watermark text</source> <source>watermark text</source>
<translation type="unfinished"></translation> <translation>texto marca de agua</translation>
</message> </message>
<message> <message>
<source>Rotation:</source> <source>Rotation:</source>
@ -15476,20 +15978,20 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Font:</source> <source>Font:</source>
<translation type="unfinished"></translation> <translation>Fuente:</translation>
</message> </message>
<message> <message>
<source>The quick brown fox jumps over the lazy dog</source> <source>The quick brown fox jumps over the lazy dog</source>
<extracomment>Use native text to test a font options</extracomment> <extracomment>Use native text to test a font options</extracomment>
<translation type="unfinished"></translation> <translation>El que es perico, donde quiera es verde</translation>
</message> </message>
<message> <message>
<source>Edit font</source> <source>Edit font</source>
<translation type="unfinished"></translation> <translation>Editar fuente</translation>
</message> </message>
<message> <message>
<source>Image</source> <source>Image</source>
<translation type="unfinished"></translation> <translation>Imagen</translation>
</message> </message>
<message> <message>
<source>Path:</source> <source>Path:</source>
@ -15497,7 +15999,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>path to image</source> <source>path to image</source>
<translation type="unfinished"></translation> <translation>ruta a la imagen</translation>
</message> </message>
<message> <message>
<source>Browse</source> <source>Browse</source>
@ -15505,7 +16007,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Gray color</source> <source>Gray color</source>
<translation type="unfinished"></translation> <translation>Color gris</translation>
</message> </message>
<message> <message>
<source>&amp;File</source> <source>&amp;File</source>
@ -15541,7 +16043,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Watermark image</source> <source>Watermark image</source>
<translation type="unfinished"></translation> <translation>Imagen Marca de agua</translation>
</message> </message>
<message> <message>
<source>File error.</source> <source>File error.</source>
@ -15549,7 +16051,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Watermark files</source> <source>Watermark files</source>
<translation type="unfinished"></translation> <translation>Archivos de marca de agua</translation>
</message> </message>
<message> <message>
<source>Save as</source> <source>Save as</source>
@ -15557,7 +16059,7 @@ Quieres guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>watermark</source> <source>watermark</source>
<translation type="unfinished"></translation> <translation>marca de agua</translation>
</message> </message>
<message> <message>
<source>Failed to lock. This file already opened in another window.</source> <source>Failed to lock. This file already opened in another window.</source>
@ -15598,7 +16100,8 @@ Quieres guardar los cambios?</translation>
<message> <message>
<source>The watermark has been modified. <source>The watermark has been modified.
Do you want to save your changes?</source> Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation>La marca de agua ha sido modificada.
Quiere guardar los cambios?</translation>
</message> </message>
<message> <message>
<source>Don&apos;t Save</source> <source>Don&apos;t Save</source>
@ -15610,15 +16113,15 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>untitled.vwm</source> <source>untitled.vwm</source>
<translation type="unfinished"></translation> <translation>sintítulo.vwm</translation>
</message> </message>
<message> <message>
<source>Confirm format rewriting</source> <source>Confirm format rewriting</source>
<translation type="unfinished"></translation> <translation>Confirmar reescritura de formato</translation>
</message> </message>
<message> <message>
<source>This file is using previous format version v%1. The current is v%2. Saving the file with this app version will update the format version for this file. This may prevent you from be able to open the file with older app versions. Do you really want to continue?</source> <source>This file is using previous format version v%1. The current is v%2. Saving the file with this app version will update the format version for this file. This may prevent you from be able to open the file with older app versions. Do you really want to continue?</source>
<translation type="unfinished"></translation> <translation>Este archivo esta usando un formato de version previo v%1. El actual es v%2. Guardando el archivo con esta version de la aplicación actualizara el formato de version para este archivo. Esto puede impedir que pueda abrir el archivo con versiones anteriores de la aplicación. ¿Realmente quieres continuar?</translation>
</message> </message>
<message> <message>
<source>File saved</source> <source>File saved</source>

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>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>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,49 @@
<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>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2820,10 +2934,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2832,10 +2942,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2852,6 +2958,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3260,6 +3379,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>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>
@ -4141,10 +4288,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4805,6 +4948,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>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 +5055,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8519,6 +8702,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>
@ -9511,10 +9701,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Arvo</translation> <translation>Arvo</translation>
@ -9997,6 +10183,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>Tiedostoa %1 ei voitu avata:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>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>Tarkastus virhe tiedostossa %3 rivillä %1 kohdassa %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -10085,6 +10291,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 +10470,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 +10867,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 +10980,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 +10989,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 +11015,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 +11606,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 +11864,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 +11879,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 +11977,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 +12521,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 +13985,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 +14231,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 +14266,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>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>Nom:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Nom:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Gauche:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Droite:</translation>
</message>
<message>
<source>Top:</source>
<translation>Haut:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3312,10 +3430,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3324,10 +3438,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3344,6 +3454,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3756,6 +3879,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>Nom:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4697,10 +4848,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Longueur:</translation> <translation>Longueur:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5429,6 +5576,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>Nom:</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 +5703,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9545,6 +9732,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>
@ -10668,10 +10862,6 @@ Voulez-vous enregistrer les changements?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Assistant formule</translation> <translation>Assistant formule</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Valeur</translation> <translation>Valeur</translation>
@ -11205,6 +11395,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>impossible d&apos;ouvrir le fichier %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>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>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>Erreur de validation : fichier %3, ligne %1, colonne %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11293,6 +11502,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 +11681,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 +12198,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 +12311,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 +12319,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 +12347,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 +12940,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 +13257,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 +13272,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 +13370,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 +13970,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 +15473,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 +15719,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 +15740,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 +15762,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>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,53 @@
<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="obsolete">...</translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2349,10 +2467,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2361,10 +2475,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2381,6 +2491,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -2757,6 +2880,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>
@ -3475,10 +3626,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4091,6 +4238,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 +4345,26 @@ 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="obsolete">...</translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -7474,6 +7665,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>
@ -8434,10 +8632,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -8815,6 +9009,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 +9115,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 +9294,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 +9687,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 +9780,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 +9788,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 +10352,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 +10606,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 +10621,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 +10719,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 +11227,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 +12616,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 +12840,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 +12875,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,49 @@
<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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2620,10 +2734,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2632,10 +2742,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2652,6 +2758,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3044,6 +3163,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>
@ -3778,10 +3925,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4417,6 +4560,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 +4667,22 @@ 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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -7820,6 +8003,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>
@ -8772,10 +8962,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9195,6 +9381,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 +9487,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 +9666,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 +10063,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 +10156,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 +10164,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 +10728,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 +10982,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 +10997,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 +11095,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 +11615,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 +13009,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 +13233,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 +13268,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>Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Margini</translation>
</message>
<message>
<source>Left:</source>
<translation>Sinistra:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Destra:</translation>
</message>
<message>
<source>Top:</source>
<translation>Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3309,10 +3427,6 @@ Applicare la configurazione comunque?</translation>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation>Tempo concesso allalgoritmo per trovare il miglior piazzamento.</translation> <translation>Tempo concesso allalgoritmo per trovare il miglior piazzamento.</translation>
</message> </message>
<message>
<source> min</source>
<translation>min</translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation>Efficienza:</translation> <translation>Efficienza:</translation>
@ -3321,10 +3435,6 @@ Applicare la configurazione comunque?</translation>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation>Imposta coefficiente di efficienza del piazzamento. Il coefficiente di efficienza del piazzamento è la percentuale di area occupata dai pezzi allinterno dellarea delimitata. Se la loro disposizione raggiunge il livello richiesto, il processo si interrompe. Se il valore è impostato su 0 non viene effettuata nessuna verifica. </translation> <translation>Imposta coefficiente di efficienza del piazzamento. Il coefficiente di efficienza del piazzamento è la percentuale di area occupata dai pezzi allinterno dellarea delimitata. Se la loro disposizione raggiunge il livello richiesto, il processo si interrompe. Se il valore è impostato su 0 non viene effettuata nessuna verifica. </translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3341,6 +3451,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation>min</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3753,6 +3876,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>Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4632,11 +4783,11 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Continue the first point to the cutting contour</source> <source>Continue the first point to the cutting contour</source>
<translation type="unfinished"></translation> <translation>Prolunga il primo punto fino al contorno del pezzo</translation>
</message> </message>
<message> <message>
<source>Continue the last point to the cutting contour</source> <source>Continue the last point to the cutting contour</source>
<translation type="unfinished"></translation> <translation>Prolunga l&apos;ultimo punto fino al contorno del pezzo</translation>
</message> </message>
<message> <message>
<source>The path is a cut contour. Use to control export to DXF-AAMA</source> <source>The path is a cut contour. Use to control export to DXF-AAMA</source>
@ -4694,10 +4845,6 @@ Applicare la configurazione comunque?</translation>
<source>Length:</source> <source>Length:</source>
<translation>Lunghezza:</translation> <translation>Lunghezza:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5426,6 +5573,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>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 +5700,22 @@ Applicare la configurazione comunque?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientamento:</translation> <translation>Orientamento:</translation>
</message> </message>
<message>
<source>Options</source>
<translation>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8044,7 +8231,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Internal path tool</source> <source>Internal path tool</source>
<translation type="unfinished"></translation> <translation>Strumento Tracciato Interno</translation>
</message> </message>
<message> <message>
<source>Save &amp;As</source> <source>Save &amp;As</source>
@ -9555,6 +9742,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>
@ -9594,7 +9788,7 @@ Questa opzione sarà effettiva dopo il riavvio del programma.</translation>
<name>SavePlaceLabelOptions</name> <name>SavePlaceLabelOptions</name>
<message> <message>
<source>save place label options</source> <source>save place label options</source>
<translation type="unfinished"></translation> <translation>Salva opzioni di posizionamento etichetta</translation>
</message> </message>
</context> </context>
<context> <context>
@ -10678,10 +10872,6 @@ Vuoi salvare le tue modifiche?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Formula magica</translation> <translation>Formula magica</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Valore</translation> <translation>Valore</translation>
@ -11215,6 +11405,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>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 +11512,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 +11695,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 +12180,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 +12278,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 +12294,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 +12885,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 +13206,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>Ruotare sull&apos;asse</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12966,6 +13221,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 +13319,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 +13915,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 +15373,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 +15619,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 +15658,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>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>hernoem groep</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>Zet aan om een zichtbaarheidsgroep aan te maken vanuit de originele objecten</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Zichtbaarheid groep</translation>
</message>
<message>
<source>Name:</source>
<translation>Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiketten:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Plaats een komma tussen ieder etiket.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Etiket toevoegen</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>Zet aan om een zichtbaarheidsgroep aan te maken vanuit de originele objecten</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Zichtbaarheid groep</translation>
</message>
<message>
<source>Name:</source>
<translation>Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiketten:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Plaats een komma tussen ieder etiket.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Etiket toevoegen</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>Etiket:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Plaats een komma tussen ieder etiket.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Etiket toevoegen</translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<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>Schaal van de opmaak</translation>
</message>
<message>
<source>Margins</source>
<translation>Marges</translation>
</message>
<message>
<source>Left:</source>
<translation>Links:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Rechts:</translation>
</message>
<message>
<source>Top:</source>
<translation>Bovenaan:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>Onderaan:</translation>
</message>
<message>
<source>Scale</source>
<translation>Schaal</translation>
</message>
<message>
<source>Horizontal:</source>
<translation>Horizontaal:</translation>
</message>
<message>
<source>Vertical:</source>
<translation>Vertikaal:</translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3317,10 +3435,6 @@ Toch de instellingen aanpassen?</translation>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation>Tijd toegekend aan het algoritme om de beste opmaak te vinden.</translation> <translation>Tijd toegekend aan het algoritme om de beste opmaak te vinden.</translation>
</message> </message>
<message>
<source> min</source>
<translation>min</translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation>Efficiëntie:</translation> <translation>Efficiëntie:</translation>
@ -3329,10 +3443,6 @@ Toch de instellingen aanpassen?</translation>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation>Bepaal de opmaak efficiëntie coëfficiënt. De opmaak efficiëntie coëfficiënt is de verhouding van het gebied door de stukken ingenomen ten opzichte van de rechthoek die alle objecten bevat. Als het aantal inpassingen het verwachte niveau bereikt, wordt het proces gestopt. Als de waarde 0 is, wordt er niet gechecked. </translation> <translation>Bepaal de opmaak efficiëntie coëfficiënt. De opmaak efficiëntie coëfficiënt is de verhouding van het gebied door de stukken ingenomen ten opzichte van de rechthoek die alle objecten bevat. Als het aantal inpassingen het verwachte niveau bereikt, wordt het proces gestopt. Als de waarde 0 is, wordt er niet gechecked. </translation>
</message> </message>
<message>
<source>%</source>
<translation>%</translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation>Manuele voorrang</translation> <translation>Manuele voorrang</translation>
@ -3349,6 +3459,19 @@ 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>Prefer one sheet solution</source>
<translation>Verkies een 1-blad oplossing</translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation>min</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation>Deze optie aanzetten om 1-blad oplossingen te verkrijgen.</translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3761,6 +3884,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>Zet aan om een zichtbaarheidsgroep aan te maken vanuit de originele objecten</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Zichtbaarheid groep</translation>
</message>
<message>
<source>Name:</source>
<translation>Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiket:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Plaats een komma tussen ieder etiket.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Etiket toevoegen</translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4702,10 +4853,6 @@ Toch de instellingen aanpassen?</translation>
<source>Length:</source> <source>Length:</source>
<translation>Lengte:</translation> <translation>Lengte:</translation>
</message> </message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation>U markering</translation> <translation>U markering</translation>
@ -5434,6 +5581,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>Zet aan om een zichtbaarheidsgroep aan te maken vanuit de originele objecten</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Zichtbaarheid groep</translation>
</message>
<message>
<source>Name:</source>
<translation>Naam:</translation>
</message>
<message>
<source>Tags:</source>
<translation>Etiket:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Plaats een komma tussen ieder etiket.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Etiket toevoegen</translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -5537,6 +5708,22 @@ Toch de instellingen aanpassen?</translation>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientatie:</translation> <translation>Orientatie:</translation>
</message> </message>
<message>
<source>Options</source>
<translation>Opties</translation>
</message>
<message>
<source>Scale</source>
<translation>Schaal</translation>
</message>
<message>
<source>Horizontal:</source>
<translation>Horizontaal:</translation>
</message>
<message>
<source>Vertical:</source>
<translation>Vertikaal:</translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8131,7 +8318,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Create new pattern piece to start working.</source> <source>Create new pattern piece to start working.</source>
<translation>Maak een nieuw patroondeel om te gaan werken.</translation> <translation>Start een nieuw patroondeel op.</translation>
</message> </message>
<message> <message>
<source>Changes applied.</source> <source>Changes applied.</source>
@ -9139,7 +9326,7 @@ Deze optie wordt actief na een herstart..</translation>
<name>QObject</name> <name>QObject</name>
<message> <message>
<source>Create new pattern piece to start working.</source> <source>Create new pattern piece to start working.</source>
<translation type="vanished">Maak een nieuw patroondeel om te gaan werken.</translation> <translation type="vanished">Start een nieuw patroondeel op.</translation>
</message> </message>
<message> <message>
<source>mm</source> <source>mm</source>
@ -9566,6 +9753,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>hernoem groep</translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -10689,10 +10883,6 @@ Wil je deze veranderingen opslaan?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Formule assistent</translation> <translation>Formule assistent</translation>
</message> </message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Waarde</translation> <translation>Waarde</translation>
@ -11230,6 +11420,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>kan bestand niet openen %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Kan schema bestand niet openen %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Kan schema bestand niet laden &apos;%1&quot;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation>Validatie fout bestand %3 op lijn %1 kolom %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11318,6 +11528,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>bewerkingsopties</translation>
</message>
<message>
<source>delete operation</source>
<translation>verwijder bewerking</translation>
</message>
<message>
<source>Visibility group</source>
<translation>Zichtbaarheid groep</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11489,6 +11711,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>Fout bij het voorbereiden van gegevens voor lay-out: Detail &apos;%1&apos; vierkant &lt;= 0</translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation>Fout bij het voorbereiden van gegevens voor lay-out: Lay-out blad papier &lt;=0</translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation>Fout bij het voorbereiden van gegevens voor lay-out: Detail lijst is leeg</translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11991,6 +12228,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>Zet de horizontale schaal factor tussen 0.01 en 3.0 (standaard=1.0, export modus).</translation>
</message>
<message>
<source>Horizontal scale</source>
<translation>Horizontale schaal</translation>
</message>
<message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation>Zet de vertikale schaal factor tussen 0.01 en 3.0 (standaard=1.0, export modus).</translation>
</message>
<message>
<source>Vertical scale</source>
<translation>Vertikale schaal</translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation>Verkies 1-blad opmaak oplossing (export modus).</translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12084,7 +12341,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 +12350,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 +12378,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 +12971,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>Inlezen definitieve maten fout.</translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation>Waarde voor de definitieve maten &apos;%1&apos; is oneindig of NaN. Controlleer uw berekeningen.</translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -13031,6 +13296,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>Kantelen via de aslijn</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13042,6 +13311,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>Kantelen langs een lijn</translation>
</message>
</context> </context>
<context> <context>
<name>VToolHeight</name> <name>VToolHeight</name>
@ -13136,6 +13409,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>verplaats</translation>
</message>
</context> </context>
<context> <context>
<name>VToolOptionsPropertyBrowser</name> <name>VToolOptionsPropertyBrowser</name>
@ -13736,6 +14013,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>draai</translation>
</message>
</context> </context>
<context> <context>
<name>VToolSeamAllowance</name> <name>VToolSeamAllowance</name>
@ -15235,6 +15516,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>omzetten graden naar radialen</translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation>omzetten radialen naar graden</translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation>sinus gebruikt radialen</translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation>cosinus gebruikt radialen</translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation>tangens gebruikt radialen</translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation>boogsinus gebruikt radialen</translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation>boogcosinus gebruikt radialen</translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation>boogtanges gebruikt radialen</translation>
</message>
<message>
<source>hyperbolic sine function</source>
<comment>function sinh</comment>
<translation>hyperbolische sine functie</translation>
</message>
<message>
<source>hyperbolic cosine</source>
<comment>function cosh</comment>
<translation>hyperbolische cosinus</translation>
</message>
<message>
<source>hyperbolic tangens function</source>
<comment>function tanh</comment>
<translation>hyperbolische tangens functie</translation>
</message>
<message>
<source>hyperbolic arcus sine function</source>
<comment>function asinh</comment>
<translation>hyperbolische arcus sine functie</translation>
</message>
<message>
<source>hyperbolic arcus cosine function</source>
<comment>function acosh</comment>
<translation>hyperbolische boogcosinus</translation>
</message>
<message>
<source>hyperbolic arcur tangens function</source>
<comment>function atanh</comment>
<translation>hyperbolische arcus tangens functie</translation>
</message>
<message>
<source>sine function working with degrees</source>
<comment>function sinD</comment>
<translation>sinus gebruikt graden</translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation>cosinus gebruikt graden</translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation>tangens gebruikt graden</translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation>boogsinus gebruikt graden</translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation>boogcosinus gebruikt graden</translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation>boogtangens gebruikt graden</translation>
</message>
<message>
<source>logarithm to the base 2</source>
<comment>function log2</comment>
<translation>logaritme naar de basis 2</translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log10</comment>
<translation>logaritme naar de basis 10</translation>
</message>
<message>
<source>logarithm to the base 10</source>
<comment>function log</comment>
<translation>logaritme naar de basis 10</translation>
</message>
<message>
<source>logarithm to base e (2.71828...)</source>
<comment>function ln</comment>
<translation>logaritme naar basis e (2.71828...)</translation>
</message>
<message>
<source>e raised to the power of x</source>
<comment>function exp</comment>
<translation>e tot de macht van x</translation>
</message>
<message>
<source>square root of a value</source>
<comment>function sqrt</comment>
<translation>Kwadrant wortelgetal van een waarde</translation>
</message>
<message>
<source>sign function -1 if x&lt;0; 1 if x&gt;0</source>
<comment>function sign</comment>
<translation>Teken functie -1 als x&lt;0; 1 als x&gt;0</translation>
</message>
<message>
<source>round to nearest integer</source>
<comment>function rint</comment>
<translation>Rond het dichtbijzijnde gehele getal</translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation>afronden op 1 decimaal</translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation>model snijden, splitsen en draaien operatie. Gebruikt cm.</translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation>model snijden, splitsen en draaien operatie. Gebruikt inches.</translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation>absolute waarde</translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation>min van alle argumenten</translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation>max van alle argumenten</translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation>som van alle argumenten</translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation>Gemiddelde waarde van alle argumenten</translation>
</message>
<message>
<source>Returns the floating-point remainder of numer/denom (rounded towards zero)</source>
<comment>function fmod</comment>
<translation>Brengt het drijvende-punt restant van numerator/denominator terug ( afgerond naar nul)</translation>
</message>
</context> </context>
<context> <context>
<name>VVITConverter</name> <name>VVITConverter</name>
@ -15296,6 +15762,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>Werkstuk opties</translation>
</message>
<message>
<source>Delete piece</source>
<translation>Verwijder werkstuk</translation>
</message>
<message>
<source>Cannot find piece by id &apos;%1&apos;</source>
<translation>Kan werkstuk met id &apos;%1&apos; niet vinden</translation>
</message>
</context> </context>
<context> <context>
<name>VWidgetGroups</name> <name>VWidgetGroups</name>
@ -15305,7 +15783,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 +15805,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>Etiket:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Plaats een komma tussen ieder etiket.</translation>
</message>
<message>
<source>Filter by tags</source>
<translation>Filter per etiket</translation>
</message>
<message>
<source>Preferences</source>
<translation>Voorkeuren</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation>Categoriëen: %1.</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>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>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,49 @@
<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>Marginesy</translation>
</message>
<message>
<source>Left:</source>
<translation>Lewy:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3004,10 +3122,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3016,10 +3130,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3036,6 +3146,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3440,6 +3563,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>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>
@ -4269,10 +4420,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Długość:</translation> <translation>Długość:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4926,6 +5073,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>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 +5180,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8598,6 +8785,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>
@ -9657,10 +9851,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Kreator formuł</translation> <translation>Kreator formuł</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Wartość</translation> <translation>Wartość</translation>
@ -10179,6 +10369,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 +10475,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 +10654,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 +11051,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 +11144,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 +11152,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 +11731,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 +11997,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 +12012,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 +12110,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 +12642,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 +14081,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 +14327,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 +14362,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>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>Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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,49 @@
<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>Margens</translation>
</message>
<message>
<source>Left:</source>
<translation>Esquerda:</translation>
</message>
<message>
<source>cm</source>
<translation>cm</translation>
</message>
<message>
<source>Right:</source>
<translation>Direita:</translation>
</message>
<message>
<source>Top:</source>
<translation>Topo:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3313,10 +3431,6 @@ Aplicar configurações de qualquer forma?</translation>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3325,10 +3439,6 @@ Aplicar configurações de qualquer forma?</translation>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3345,6 +3455,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3757,6 +3880,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>Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation>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>
@ -4698,10 +4849,6 @@ Aplicar configurações de qualquer forma?</translation>
<source>Length:</source> <source>Length:</source>
<translation>Comprimento:</translation> <translation>Comprimento:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5430,6 +5577,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>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 +5700,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9543,6 +9730,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>
@ -10666,10 +10860,6 @@ Deseja salvar suas mudanças?</translation>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Assistente de fórmulas</translation> <translation>Assistente de fórmulas</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Valor</translation> <translation>Valor</translation>
@ -11203,6 +11393,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>Impossível abrir o arquivo %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>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>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 +11501,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 +11684,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 +12169,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 +12282,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 +12291,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 +12305,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 +12896,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 +13221,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>Espelhar através do eixo</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -12971,6 +13236,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 +13334,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 +13938,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 +15396,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 +15642,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 +15663,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 +15685,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>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,49 @@
<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>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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2993,10 +3107,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3005,10 +3115,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3025,6 +3131,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3433,6 +3552,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>
@ -4230,10 +4377,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Lungime:</translation> <translation>Lungime:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4883,6 +5026,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 +5133,22 @@ 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>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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8486,6 +8669,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>
@ -9474,10 +9664,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Asistent Formulă</translation> <translation>Asistent Formulă</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Valoare</translation> <translation>Valoare</translation>
@ -9932,6 +10118,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 +10224,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 +10403,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 +10800,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 +10893,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 +10901,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 +11469,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 +11723,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 +11738,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 +11836,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 +12368,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 +13797,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 +14021,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 +14056,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>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>переименовать группу</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>Позволяет создать группу видимости из исходных объектов</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Группа видимости</translation>
</message>
<message>
<source>Name:</source>
<translation>Название:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation>Категории:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Разделяйте каждую категорию запятой.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Добавить категории</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>Позволяет создать группу видимости из исходных объектов</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Группа видимости</translation>
</message>
<message>
<source>Name:</source>
<translation>Название:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation>Категории:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Разделяйте каждую категорию запятой.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Добавить категории</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>Категории:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Разделяйте каждую категорию запятой.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Добавить категории</translation>
</message>
</context> </context>
<context> <context>
<name>DialogHeight</name> <name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation>Коэффициент эффективности: %1%</translation> <translation>Коэффициент эффективности: %1%</translation>
</message> </message>
</context> </context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation>Масштаб раскладки</translation>
</message>
<message>
<source>Margins</source>
<translation>Поля</translation>
</message>
<message>
<source>Left:</source>
<translation>Левое:</translation>
</message>
<message>
<source>cm</source>
<translation>см</translation>
</message>
<message>
<source>Right:</source>
<translation>Правое:</translation>
</message>
<message>
<source>Top:</source>
<translation>Верхнее:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>Нижнее:</translation>
</message>
<message>
<source>Scale</source>
<translation>Масштаб</translation>
</message>
<message>
<source>Horizontal:</source>
<translation>По горизонтали:</translation>
</message>
<message>
<source>Vertical:</source>
<translation>По вертикали:</translation>
</message>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3317,10 +3435,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation>Время, данное алгоритму, чтобы найти лучшую раскладку.</translation> <translation>Время, данное алгоритму, чтобы найти лучшую раскладку.</translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation>Эффективность:</translation> <translation>Эффективность:</translation>
@ -3329,17 +3443,13 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation>Установите коэффициент эффективности раскладки. Коэффициент эффективности раскладки - это отношение площади, занимаемой деталями, к ограничивающему прямоугольнику всех деталей. Когда раскладка достигает установленного значения, процесс останавливается. Если значение равно 0, проверка не производится. </translation> <translation>Установите коэффициент эффективности раскладки. Коэффициент эффективности раскладки - это отношение площади, занимаемой деталями, к ограничивающему прямоугольнику всех деталей. Когда раскладка достигает установленного значения, процесс останавливается. Если значение равно 0, проверка не производится. </translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation>Ручной приоритет</translation> <translation>Ручной приоритет</translation>
</message> </message>
<message> <message>
<source>Nest quantity of copies according to piece settings.</source> <source>Nest quantity of copies according to piece settings.</source>
<translation type="unfinished"></translation> <translation>Разложить согласно количеству копий в соответствии с настройками детали.</translation>
</message> </message>
<message> <message>
<source>Nest quantity</source> <source>Nest quantity</source>
@ -3349,6 +3459,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source> <source>Auto crop unused width</source>
<translation>Автоматически обрезать неиспользуемую ширину</translation> <translation>Автоматически обрезать неиспользуемую ширину</translation>
</message> </message>
<message>
<source>Prefer one sheet solution</source>
<translation>Предпочесть решение с одним листом</translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3761,6 +3884,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>Позволяет создать группу видимости из исходных объектов</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Группа видимости</translation>
</message>
<message>
<source>Name:</source>
<translation>Название:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Поворот</translation>
</message>
<message>
<source>Tags:</source>
<translation>Категории:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Разделяйте каждую категорию запятой.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Добавить категории</translation>
</message>
</context> </context>
<context> <context>
<name>DialogNewMeasurements</name> <name>DialogNewMeasurements</name>
@ -4702,10 +4853,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Длина:</translation> <translation>Длина:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation>U метка</translation> <translation>U метка</translation>
@ -5433,6 +5580,54 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<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>Эта точка не может быть исходной точкой. Пожалуйста, выберите другую исходную точку</translation>
</message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation>Позволяет создать группу видимости из исходных объектов</translation>
</message>
<message>
<source>Visibility Group</source>
<translation>Группа видимости</translation>
</message>
<message>
<source>Name:</source>
<translation>Название:</translation>
</message>
<message>
<source>Tags:</source>
<translation>Категории:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Разделяйте каждую категорию запятой.</translation>
</message>
<message>
<source>Add tags</source>
<translation>Добавить категории</translation>
</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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -5538,6 +5733,22 @@ Apply settings anyway?</source>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Ориентация:</translation> <translation>Ориентация:</translation>
</message> </message>
<message>
<source>Options</source>
<translation>Опции</translation>
</message>
<message>
<source>Scale</source>
<translation>Масштаб</translation>
</message>
<message>
<source>Horizontal:</source>
<translation>По горизонтали:</translation>
</message>
<message>
<source>Vertical:</source>
<translation>По вертикали:</translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -8145,7 +8356,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Ctrl+O</source> <source>Ctrl+O</source>
<translation type="unfinished"></translation> <translation>Ctrl+O</translation>
</message> </message>
<message> <message>
<source>Cannot read settings from a malformed .INI file.</source> <source>Cannot read settings from a malformed .INI file.</source>
@ -8153,7 +8364,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Select path objects, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve</source> <source>Select path objects, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve</source>
<translation type="unfinished"></translation> <translation>Выберите объекты контура, &lt;b&gt;%1 &lt;/b&gt;- кривая обратного направления</translation>
</message> </message>
<message> <message>
<source>Select one or more objects, hold &lt;b&gt;%1&lt;/b&gt; - for multiple selection, &lt;b&gt;%2&lt;/b&gt; - finish creation</source> <source>Select one or more objects, hold &lt;b&gt;%1&lt;/b&gt; - for multiple selection, &lt;b&gt;%2&lt;/b&gt; - finish creation</source>
@ -8460,7 +8671,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Process has been stoped because of exception.</source> <source>Process has been stoped because of exception.</source>
<translation type="unfinished"></translation> <translation>Процесс был остановлен из-за исключения.</translation>
</message> </message>
<message> <message>
<source>File error. <source>File error.
@ -9315,19 +9526,19 @@ This option will take an affect after restart.</source>
</message> </message>
<message> <message>
<source>Cannot calculate seam allowance before for point &apos;%1&apos;. Reason: %2.</source> <source>Cannot calculate seam allowance before for point &apos;%1&apos;. Reason: %2.</source>
<translation type="unfinished"></translation> <translation>Невозможно рассчитать припуск на шов перед точкой &apos;%1&apos;. Причина: %2.</translation>
</message> </message>
<message> <message>
<source>Cannot calculate seam allowance after for point &apos;%1&apos;. Reason: %2.</source> <source>Cannot calculate seam allowance after for point &apos;%1&apos;. Reason: %2.</source>
<translation type="unfinished"></translation> <translation>Невозможно рассчитать припуск на шов после точки &apos;%1&apos;. Причина: %2.</translation>
</message> </message>
<message> <message>
<source>Cannot calculate seam allowance after for point &apos;%1&apos;. Reason: </source> <source>Cannot calculate seam allowance after for point &apos;%1&apos;. Reason: </source>
<translation type="unfinished"></translation> <translation>Невозможно рассчитать припуск на шов после точки &apos;%1&apos;. Причина: </translation>
</message> </message>
<message> <message>
<source>Cannot calculate passmark length for point &apos;%1&apos;. Reason: %2.</source> <source>Cannot calculate passmark length for point &apos;%1&apos;. Reason: %2.</source>
<translation type="unfinished"></translation> <translation>Невозможно рассчитать длину надсечки для точки &apos;%1&apos;. Причина: %2.</translation>
</message> </message>
<message> <message>
<source>Passmark &apos;%1&apos; is not part of piece &apos;%2&apos;.</source> <source>Passmark &apos;%1&apos; is not part of piece &apos;%2&apos;.</source>
@ -9343,7 +9554,7 @@ This option will take an affect after restart.</source>
</message> </message>
<message> <message>
<source>Invalid formula &apos;%1&apos; for tool with id &apos;%2&apos;. %3.</source> <source>Invalid formula &apos;%1&apos; for tool with id &apos;%2&apos;. %3.</source>
<translation type="unfinished"></translation> <translation>Неверная формула &apos;%1&apos; для инструмента с идентификатором &apos;%2&apos;. %3.</translation>
</message> </message>
<message> <message>
<source>Can&apos;t convert toInt parameter</source> <source>Can&apos;t convert toInt parameter</source>
@ -9568,6 +9779,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>переименовать группу</translation>
</message>
</context>
<context> <context>
<name>RenamePP</name> <name>RenamePP</name>
<message> <message>
@ -10691,10 +10909,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Мастер формул</translation> <translation>Мастер формул</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Значение</translation> <translation>Значение</translation>
@ -10717,7 +10931,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>List of all defined passmarks. To define a passmark return to the Main Path tab, call context menu for a point item and make it a passmark.</source> <source>List of all defined passmarks. To define a passmark return to the Main Path tab, call context menu for a point item and make it a passmark.</source>
<translation type="unfinished"></translation> <translation>Список всех установленных надсечек. Чтобы поставить надсечку, вернитесь во вкладку «Главный контур», вызовите контекстное меню у нужной точки и поставьте галочку в строке &quot;Надсечка&quot;.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -11232,6 +11446,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>Невозможно открыть файл %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Невозможно открыть файл схемы %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Не удалось открыть файл схемы &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation>Ошибка валидации файла %3 в строке %1 столбца %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11307,7 +11541,7 @@ Do you want to save your changes?</source>
<name>VAbstractNode</name> <name>VAbstractNode</name>
<message> <message>
<source>This id (%1) is not unique.</source> <source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation> <translation>Этот идентификатор (%1) не является уникальным.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -11320,6 +11554,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>параметры операции</translation>
</message>
<message>
<source>delete operation</source>
<translation>удалить операцию</translation>
</message>
<message>
<source>Visibility group</source>
<translation>Группа видимости</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractPattern</name> <name>VAbstractPattern</name>
@ -11491,6 +11737,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>Ошибка подготовки данных для раскладки: список деталей пуст</translation>
</message>
</context>
<context> <context>
<name>VCommandLine</name> <name>VCommandLine</name>
<message> <message>
@ -11955,7 +12216,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Order detail to follow grainline direction (export mode).</source> <source>Order detail to follow grainline direction (export mode).</source>
<translation type="unfinished"></translation> <translation>Получите детали в соответствии с направлением долевой (режим экспорта).</translation>
</message> </message>
<message> <message>
<source>&lt;Time&gt; in minutes given for the algorithm to find best layout. Time must be in range from 1 minute to 60 minutes. Default value 1 minute.</source> <source>&lt;Time&gt; in minutes given for the algorithm to find best layout. Time must be in range from 1 minute to 60 minutes. Default value 1 minute.</source>
@ -11979,7 +12240,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Nest quantity copies of each piece (export mode).</source> <source>Nest quantity copies of each piece (export mode).</source>
<translation type="unfinished"></translation> <translation>Разложить согласно количеству копий каждой детали (режим экспорта).</translation>
</message> </message>
<message> <message>
<source>Set layout efficiency &lt;coefficient&gt;. Layout efficiency coefficient is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. Coefficient must be in range from 0 to 100. Default value 0.</source> <source>Set layout efficiency &lt;coefficient&gt;. Layout efficiency coefficient is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. Coefficient must be in range from 0 to 100. Default value 0.</source>
@ -11993,6 +12254,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>Масштаб по горизонтали</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>Масштаб по вертикали</translation>
</message>
<message>
<source>Prefer one sheet layout solution (export mode).</source>
<translation>Предпочесть решение с одним листом раскладки (режим экспорта).</translation>
</message>
</context> </context>
<context> <context>
<name>VCommonSettings</name> <name>VCommonSettings</name>
@ -12086,7 +12367,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 +12376,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 +12404,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>
@ -12135,11 +12416,11 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Not unique id (%1)</source> <source>Not unique id (%1)</source>
<translation type="unfinished"></translation> <translation>Не уникальный идентификатор (%1)</translation>
</message> </message>
<message> <message>
<source>This id (%1) is not unique.</source> <source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation> <translation>Этот идентификатор (%1) не является уникальным.</translation>
</message> </message>
<message> <message>
<source>Couldn&apos;t get version information.</source> <source>Couldn&apos;t get version information.</source>
@ -12174,7 +12455,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>This id (%1) is not unique.</source> <source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation> <translation>Этот идентификатор (%1) не является уникальным.</translation>
</message> </message>
<message> <message>
<source>Add to group</source> <source>Add to group</source>
@ -12212,7 +12493,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Result is infinite</source> <source>Result is infinite</source>
<translation type="unfinished"></translation> <translation>Результат бесконечен</translation>
</message> </message>
<message> <message>
<source>Result is NaN</source> <source>Result is NaN</source>
@ -12706,14 +12987,30 @@ Do you want to save your changes?</source>
<name>VPatternRecipe</name> <name>VPatternRecipe</name>
<message> <message>
<source>Invalid tag %1</source> <source>Invalid tag %1</source>
<translation type="unfinished"></translation> <translation>Неправильная категория %1</translation>
</message> </message>
<message> <message>
<source>Can&apos;t find element by id &apos;%1&apos;</source> <source>Can&apos;t find element by id &apos;%1&apos;</source>
<translation type="unfinished"></translation> <translation>Не удается найти элемент с идентификатором &apos;%1&apos;</translation>
</message> </message>
<message> <message>
<source>Can&apos;t create history record for the tool.</source> <source>Can&apos;t create history record for the tool.</source>
<translation>Невозможно создать запись истории для инструмента.</translation>
</message>
<message>
<source>Reading final measurements error.</source>
<translation>Ошибка чтения финальных измерений.</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>
<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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -12758,7 +13055,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>Cannot open the watermark image.</source> <source>Cannot open the watermark image.</source>
<translation type="unfinished"></translation> <translation>Не удается открыть изображение водяного знака.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -13033,6 +13330,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>Отразить объект по оси</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13044,6 +13345,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 +13443,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 +14047,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>
@ -13811,7 +14124,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>This id (%1) is not unique.</source> <source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation> <translation>Этот идентификатор (%1) не является уникальным.</translation>
</message> </message>
<message> <message>
<source>Tool was used after deleting.</source> <source>Tool was used after deleting.</source>
@ -13852,7 +14165,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>This id (%1) is not unique.</source> <source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation> <translation>Этот идентификатор (%1) не является уникальным.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -15242,6 +15555,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>Преобразует градусы в радианы</translation>
</message>
<message>
<source>converts radian to degrees</source>
<comment>function radTodeg</comment>
<translation>Преобразует радианы в градусы</translation>
</message>
<message>
<source>sine function working with radians</source>
<comment>function sin</comment>
<translation>Функция синуса, работающая с радианами</translation>
</message>
<message>
<source>cosine function working with radians</source>
<comment>function cos</comment>
<translation>Функция косинуса, работающая с радианами</translation>
</message>
<message>
<source>tangens function working with radians</source>
<comment>function tan</comment>
<translation>Функция тангенса, работающая с радианами</translation>
</message>
<message>
<source>arcus sine function working with radians</source>
<comment>function asin</comment>
<translation>Функция арксинуса, работающая с радианами</translation>
</message>
<message>
<source>arcus cosine function working with radians</source>
<comment>function acos</comment>
<translation>Функция арккосинуса, работающая с радианами</translation>
</message>
<message>
<source>arcus tangens function working with radians</source>
<comment>function atan</comment>
<translation>Функция арктангенса, работающая с радианами</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>Функция синуса, работающая с градусами</translation>
</message>
<message>
<source>cosine function working with degrees</source>
<comment>function cosD</comment>
<translation>Функция косинуса, работающая с градусами</translation>
</message>
<message>
<source>tangens function working with degrees</source>
<comment>function tanD</comment>
<translation>Функция тангенса, работающая с градусами</translation>
</message>
<message>
<source>arcus sine function working with degrees</source>
<comment>function asinD</comment>
<translation>Функция арксинуса, работающая с градусами</translation>
</message>
<message>
<source>arcus cosine function working with degrees</source>
<comment>function acosD</comment>
<translation>Функция арккосинуса, работающая с градусами</translation>
</message>
<message>
<source>arcus tangens function working with degrees</source>
<comment>function atanD</comment>
<translation>Функция арктангенса, работающая с градусами</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>Квадратный корень из значения</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>Округление до целого числа</translation>
</message>
<message>
<source>round to up to 1 decimal</source>
<comment>function r2cm</comment>
<translation>Округление до 1 десятичного знака</translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes cm units.</source>
<comment>function csrCm</comment>
<translation>Вырезать, разделить и повернуть операцию моделирования. Взять единицу измерения - см.</translation>
</message>
<message>
<source>cut, split and rotate modeling operation. Takes inch units.</source>
<comment>function csrInch</comment>
<translation>Вырезать, разделить и повернуть операцию моделирования. Взять единицу измерения - дюйм.</translation>
</message>
<message>
<source>absolute value</source>
<comment>function abs</comment>
<translation>Абсолютная величина (модуль)</translation>
</message>
<message>
<source>min of all arguments</source>
<comment>function min</comment>
<translation>Минимальный из всех аргументов</translation>
</message>
<message>
<source>max of all arguments</source>
<comment>function max</comment>
<translation>Максимальный из всех аргументов</translation>
</message>
<message>
<source>sum of all arguments</source>
<comment>function sum</comment>
<translation>Сумма всех аргументов</translation>
</message>
<message>
<source>mean value of all arguments</source>
<comment>function avg</comment>
<translation>Среднее значение всех аргументов</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 +15801,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>Параметры детали</translation>
</message>
<message>
<source>Delete piece</source>
<translation>Удалить деталь</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 +15822,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 +15844,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>Категории:</translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation>Разделяйте каждую категорию запятой.</translation>
</message>
<message>
<source>Filter by tags</source>
<translation>Фильтр по категориям</translation>
</message>
<message>
<source>Preferences</source>
<translation>Свойства</translation>
</message>
<message>
<source>Categories: %1.</source>
<translation>Категории: %1.</translation>
</message>
</context> </context>
<context> <context>
<name>Valentina</name> <name>Valentina</name>
@ -15359,7 +15889,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>&lt;b&gt;Curved path&lt;/b&gt;: select seven or more points, &lt;b&gt;%1&lt;/b&gt; - finish creation</source> <source>&lt;b&gt;Curved path&lt;/b&gt;: select seven or more points, &lt;b&gt;%1&lt;/b&gt; - finish creation</source>
<translation type="unfinished"></translation> <translation>&lt;b&gt;Контур кривой&lt;/b&gt;: выберите семь или более точек, &lt;b&gt;%1&lt;/b&gt; - завершить создание</translation>
</message> </message>
</context> </context>
<context> <context>
@ -15452,7 +15982,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>&lt;b&gt;Curved path&lt;/b&gt;: select three or more points, &lt;b&gt;%1&lt;/b&gt; - finish creation</source> <source>&lt;b&gt;Curved path&lt;/b&gt;: select three or more points, &lt;b&gt;%1&lt;/b&gt; - finish creation</source>
<translation type="unfinished"></translation> <translation>&lt;b&gt;Контур кривой&lt;/b&gt;: выберите три или более точек, &lt;b&gt;%1&lt;/b&gt; - завершить создание</translation>
</message> </message>
<message> <message>
<source>Use &lt;b&gt;%1&lt;/b&gt; for sticking angle!</source> <source>Use &lt;b&gt;%1&lt;/b&gt; for sticking angle!</source>

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>Імя:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Поворот</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>Імя:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Поворот</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,49 @@
<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>Ліве:</translation>
</message>
<message>
<source>cm</source>
<translation>см</translation>
</message>
<message>
<source>Right:</source>
<translation>Праве:</translation>
</message>
<message>
<source>Top:</source>
<translation>Верхнє:</translation>
</message>
<message>
<source>Bottom:</source>
<translation>Нижнє:</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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3327,10 +3441,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -3759,6 +3882,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>Імя:</translation>
</message>
<message>
<source>Rotation</source>
<translation>Поворот</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>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>Довжина:</translation> <translation>Довжина:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -5433,6 +5580,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>Імя:</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 +5707,22 @@ 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>Параметри</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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -9561,6 +9748,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>
@ -10684,10 +10878,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation>Мастер формул</translation> <translation>Мастер формул</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation>Значення</translation> <translation>Значення</translation>
@ -11225,6 +11415,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>Не можу відкрити файл%1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Не можу відкрити файл схеми %1:\n%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Не вдалося завантажити файл схеми &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation>Помилка валідації файлу %3 в рядку %1 стовпця %2</translation>
</message>
</context> </context>
<context> <context>
<name>VAbstractCubicBezierPath</name> <name>VAbstractCubicBezierPath</name>
@ -11313,6 +11522,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 +11705,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 +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>
@ -12079,7 +12335,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 +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>Помилка валідації файлу %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 +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>Не вдалося завантажити файл схеми &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 +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>
@ -13025,6 +13289,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>Відзеркалити по вісі</translation>
</message>
</context> </context>
<context> <context>
<name>VToolFlippingByLine</name> <name>VToolFlippingByLine</name>
@ -13036,6 +13304,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 +13402,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 +14006,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 +15509,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 +15755,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 +15776,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 +15798,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>Властивості</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,49 @@
<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>
</context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
<message> <message>
@ -2501,10 +2615,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source> <source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Efficiency:</source> <source>Efficiency:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2513,10 +2623,6 @@ Apply settings anyway?</source>
<source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source> <source>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Manual priority</source> <source>Manual priority</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2533,6 +2639,19 @@ 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>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<comment>minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>
@ -2909,6 +3028,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>
@ -3615,10 +3762,6 @@ Apply settings anyway?</source>
<source>Length:</source> <source>Length:</source>
<translation>:</translation> <translation>:</translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>U mark</source> <source>U mark</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4194,6 +4337,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 +4444,22 @@ 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>
</context> </context>
<context> <context>
<name>DialogSaveLayout</name> <name>DialogSaveLayout</name>
@ -7606,6 +7789,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>
@ -8578,10 +8768,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source> <source>Formula wizard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Value</source> <source>Value</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9016,6 +9202,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 +9308,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 +9487,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 +9880,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 +9973,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 +9981,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 +10545,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 +10795,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 +10810,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 +10908,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 +11416,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 +12805,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 +13029,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 +13064,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

@ -95,9 +95,8 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par
qCDebug(vDialog, "Showing variables."); qCDebug(vDialog, "Showing variables.");
ShowUnits(); ShowUnits();
const bool freshCall = true; FillIncrements();
FillIncrements(freshCall); FillPreviewCalculations();
FillPreviewCalculations(freshCall);
FillLengthsLines(); FillLengthsLines();
FillLengthLinesAngles(); FillLengthLinesAngles();
FillLengthsCurves(); FillLengthsCurves();
@ -182,15 +181,15 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par
/** /**
* @brief FillIncrementTable fill data for increment table * @brief FillIncrementTable fill data for increment table
*/ */
void DialogIncrements::FillIncrements(bool freshCall) void DialogIncrements::FillIncrements()
{ {
FillIncrementsTable(ui->tableWidgetIncrement, data->DataIncrementsWithSeparators(), false, freshCall); FillIncrementsTable(ui->tableWidgetIncrement, data->DataIncrementsWithSeparators(), false);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogIncrements::FillPreviewCalculations(bool freshCall) void DialogIncrements::FillPreviewCalculations()
{ {
FillIncrementsTable(ui->tableWidgetPC, data->DataIncrementsWithSeparators(), true, freshCall); FillIncrementsTable(ui->tableWidgetPC, data->DataIncrementsWithSeparators(), true);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -302,6 +301,7 @@ QTableWidgetItem * DialogIncrements::AddCell(QTableWidget *table, const QString
QTableWidgetItem *item = new QTableWidgetItem(text); QTableWidgetItem *item = new QTableWidgetItem(text);
item->setTextAlignment(aligment); item->setTextAlignment(aligment);
item->setToolTip(text);
// set the item non-editable (view only), and non-selectable // set the item non-editable (view only), and non-selectable
Qt::ItemFlags flags = item->flags(); Qt::ItemFlags flags = item->flags();
@ -869,7 +869,7 @@ void DialogIncrements::RefreshPattern()
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogIncrements::FillIncrementsTable(QTableWidget *table, void DialogIncrements::FillIncrementsTable(QTableWidget *table,
const QMap<QString, QSharedPointer<VIncrement> > &increments, const QMap<QString, QSharedPointer<VIncrement> > &increments,
bool takePreviewCalculations, bool freshCall) bool takePreviewCalculations)
{ {
SCASSERT(table != nullptr) SCASSERT(table != nullptr)
@ -920,11 +920,6 @@ void DialogIncrements::FillIncrementsTable(QTableWidget *table,
} }
} }
if (freshCall)
{
table->resizeColumnsToContents();
table->resizeRowsToContents();
}
table->horizontalHeader()->setStretchLastSection(true); table->horizontalHeader()->setStretchLastSection(true);
table->blockSignals(false); table->blockSignals(false);
} }

View File

@ -111,10 +111,10 @@ private:
void FillIncrementsTable(QTableWidget *table, void FillIncrementsTable(QTableWidget *table,
const QMap<QString, QSharedPointer<VIncrement> > &increments, const QMap<QString, QSharedPointer<VIncrement> > &increments,
bool takePreviewCalculations, bool freshCall = false); bool takePreviewCalculations);
void FillIncrements(bool freshCall = false); void FillIncrements();
void FillPreviewCalculations(bool freshCall = false); void FillPreviewCalculations();
void FillLengthsLines(); void FillLengthsLines();
void FillLengthLinesAngles(); void FillLengthLinesAngles();
void FillLengthsCurves(); void FillLengthsCurves();

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 notr="true">%</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 notr="true">%</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 notr="true">&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 notr="true">&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">
@ -384,7 +384,7 @@
<string>Time given for the algorithm to find best layout.</string> <string>Time given for the algorithm to find best layout.</string>
</property> </property>
<property name="suffix"> <property name="suffix">
<string> min</string> <string comment="minutes"> min</string>
</property> </property>
<property name="minimum"> <property name="minimum">
<number>1</number> <number>1</number>
@ -429,7 +429,7 @@
<string>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </string> <string>Set layout efficiency coefficient. Layout efficiency coefficientt is the ratio of the area occupied by the pieces to the bounding rect of all pieces. If nesting reaches required level the process stops. If value is 0 no check will be made. </string>
</property> </property>
<property name="suffix"> <property name="suffix">
<string>%</string> <string notr="true">%</string>
</property> </property>
<property name="decimals"> <property name="decimals">
<number>1</number> <number>1</number>
@ -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>
<widget class="QLabel" name="label">
<property name="text">
<string>Path:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Path:</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QLineEdit" name="lineEditPath"> <widget class="QLineEdit" name="lineEditPath">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -46,7 +46,7 @@
<item> <item>
<widget class="QPushButton" name="pushButtonBrowse"> <widget class="QPushButton" name="pushButtonBrowse">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -61,44 +61,229 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item>
<widget class="QLabel" name="label_2"> <layout class="QHBoxLayout" name="horizontalLayout_9">
<property name="text"> <item>
<string>File format:</string> <widget class="QLabel" name="label_2">
</property> <property name="sizePolicy">
</widget> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>File format:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBoxFormat">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item> </item>
<item row="1" column="1"> <item>
<widget class="QComboBox" name="comboBoxFormat"> <layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="sizePolicy"> <item>
<sizepolicy hsizetype="Fixed" vsizetype="Preferred"> <widget class="QGroupBox" name="groupBoxFormatOptions">
<horstretch>0</horstretch> <property name="title">
<verstretch>0</verstretch> <string>Options</string>
</sizepolicy> </property>
</property> <layout class="QVBoxLayout" name="verticalLayout">
</widget> <item>
<widget class="QCheckBox" name="checkBoxBinaryDXF">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Binary form</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBoxTextAsPaths">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Text as paths</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QGroupBox" name="groupBoxScale">
<property name="title">
<string>Scale</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Horizontal:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Vertical:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBoxHorizontalScale">
<property name="suffix">
<string notr="true">%</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 notr="true">%</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 notr="true">&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 notr="true">&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>
<item row="2" column="1"> <item>
<widget class="QCheckBox" name="checkBoxBinaryDXF">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Binary form</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="checkBoxTextAsPaths">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Text as paths</string>
</property>
</widget>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_5"> <layout class="QHBoxLayout" name="horizontalLayout_5">
<item> <item>
<widget class="QGroupBox" name="groupBoxMargins"> <widget class="QGroupBox" name="groupBoxMargins">
@ -148,6 +333,9 @@
<property name="suffix"> <property name="suffix">
<string>cm</string> <string>cm</string>
</property> </property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
@ -164,6 +352,9 @@
<property name="suffix"> <property name="suffix">
<string>cm</string> <string>cm</string>
</property> </property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -204,6 +395,9 @@
<property name="suffix"> <property name="suffix">
<string>cm</string> <string>cm</string>
</property> </property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@ -224,6 +418,9 @@
<property name="suffix"> <property name="suffix">
<string>cm</string> <string>cm</string>
</property> </property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -239,79 +436,75 @@
<property name="title"> <property name="title">
<string>Paper format</string> <string>Paper format</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QGridLayout" name="gridLayout">
<item> <item row="0" column="0">
<layout class="QFormLayout" name="formLayout_4"> <widget class="QLabel" name="labelTemplates">
<item row="1" column="0"> <property name="text">
<widget class="QLabel" name="labelTemplates"> <string>Templates:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxTemplates"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Orientation:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QToolButton" name="toolButtonPortrait">
<property name="text"> <property name="text">
<string>Templates:</string> <string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/16x16/portrait.png</normaloff>:/icon/16x16/portrait.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item>
<widget class="QComboBox" name="comboBoxTemplates"/> <widget class="QToolButton" name="toolButtonLandscape">
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text"> <property name="text">
<string>Orientation:</string> <string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/16x16/landscape.png</normaloff>:/icon/16x16/landscape.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <spacer name="horizontalSpacer">
<item> <property name="orientation">
<widget class="QToolButton" name="toolButtonPortrait"> <enum>Qt::Horizontal</enum>
<property name="text"> </property>
<string notr="true">...</string> <property name="sizeHint" stdset="0">
</property> <size>
<property name="icon"> <width>40</width>
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc"> <height>20</height>
<normaloff>:/icon/16x16/portrait.png</normaloff>:/icon/16x16/portrait.png</iconset> </size>
</property> </property>
<property name="checkable"> </spacer>
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButtonLandscape">
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/16x16/landscape.png</normaloff>:/icon/16x16/landscape.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
@ -320,19 +513,28 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="5" column="0"> <item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>File name:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>File name:</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QLineEdit" name="lineEditFileName"> <widget class="QLineEdit" name="lineEditFileName">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -347,6 +549,12 @@
</item> </item>
<item> <item>
<widget class="QLabel" name="labelExample"> <widget class="QLabel" name="labelExample">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>130</width> <width>130</width>
@ -363,7 +571,7 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="6" column="0" colspan="2"> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>

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,12 @@ void VWidgetGroups::UpdateGroups()
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VWidgetGroups::FillTable(const QMap<quint32, QPair<QString, bool> > &groups) void VWidgetGroups::FillTable(QMap<quint32, VGroupData> groups)
{ {
ui->lineEditTags->SetCompletion(doc->GetGroupCategories());
groups = FilterGroups(groups);
ui->tableWidget->blockSignals(true); ui->tableWidget->blockSignals(true);
ui->tableWidget->clear(); ui->tableWidget->clear();
@ -291,12 +325,12 @@ 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 +341,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())
@ -403,7 +404,10 @@ bool MainWindowsNoGUI::GenerateLayout(VLayoutGenerator& lGenerator)
|| (nestingState == LayoutErrors::NoError && not qFuzzyIsNull(lGenerator.GetEfficiencyCoefficient()) || (nestingState == LayoutErrors::NoError && not qFuzzyIsNull(lGenerator.GetEfficiencyCoefficient())
&& efficiency >= lGenerator.GetEfficiencyCoefficient())) && efficiency >= lGenerator.GetEfficiencyCoefficient()))
{ {
break; if (not lGenerator.IsPreferOneSheetSolution() || lGenerator.PapersCount() == 1)
{
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

@ -135,7 +135,8 @@ const QString VAbstractPattern::AttrNumber = QStringLiteral("number")
const QString VAbstractPattern::AttrCheckUniqueness = QStringLiteral("checkUniqueness"); const QString VAbstractPattern::AttrCheckUniqueness = QStringLiteral("checkUniqueness");
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,73 +2469,102 @@ 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(); QDomElement group = elementById(id, TagGroup);
if (not groups.isNull()) if (group.isElement())
{ {
QDomElement group = elementById(id, TagGroup); name = GetParametrString(group, AttrName, name);
if (group.isElement())
{
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;
}
}
else
{
qDebug("Can't get tag Groups.");
return name;
} }
return name;
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetGroupName(quint32 id, const QString &name) void VAbstractPattern::SetGroupName(quint32 id, const QString &name)
{ {
QDomElement groups = CreateGroups(); QDomElement group = elementById(id, TagGroup);
if (not groups.isNull()) if (group.isElement())
{ {
QDomElement group = elementById(id, TagGroup); group.setAttribute(AttrName, name);
if (group.isElement()) modified = true;
{ emit patternChanged(false);
group.setAttribute(AttrName, name);
modified = true;
emit patternChanged(false);
}
else
{
if (groups.childNodes().isEmpty())
{
QDomNode parent = groups.parentNode();
parent.removeChild(groups);
}
qDebug("Can't get group by id = %u.", id);
}
}
else
{
qDebug("Can't get tag Groups.");
} }
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QMap<quint32, QPair<QString, bool> > VAbstractPattern::GetGroups() QStringList VAbstractPattern::GetGroupTags(vidtype id)
{ {
QMap<quint32, QPair<QString, bool> > data; 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);
}
}
//---------------------------------------------------------------------------------------------------------------------
QStringList VAbstractPattern::GetGroupCategories() const
{
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;
@ -404,7 +423,8 @@ 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)
{ {
@ -273,16 +273,27 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
if (m_elementIdCache.contains(id)) if (m_elementIdCache.contains(id))
{ {
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)
{ {
return e; if (not tagName.isEmpty())
} {
m_elementIdCache.remove(id); if (e.tagName() == tagName)
{
return e;
}
}
else
{
return e;
}
}
} }
// Cached missed if (updateCache)
RefreshElementIdCache(); { // Cached missed
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

@ -43,9 +43,12 @@ bool dx_iface::fileExport(bool binary)
void dx_iface::writeEntity(DRW_Entity* e){ void dx_iface::writeEntity(DRW_Entity* e){
switch (e->eType) { switch (e->eType) {
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,7 +205,16 @@ 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
{ {
switch (metric) switch (metric)

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

@ -107,8 +107,6 @@ private:
QtMsgType m_severity; QtMsgType m_severity;
}; };
#endif // CUSTOMEVENTS_H
inline QString PatternMessageEvent::Message() const inline QString PatternMessageEvent::Message() const
{ {
return m_message; return m_message;
@ -118,3 +116,5 @@ inline QtMsgType PatternMessageEvent::Severity() const
{ {
return m_severity; return m_severity;
} }
#endif // CUSTOMEVENTS_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;
} }

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