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*).vst*
# Valentina's backup file
*.bak
# KDE directory preferences
.directory

View File

@ -2,8 +2,9 @@
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
[valentina-project.valentina_ts]
[valentina-project.valentina-ts]
file_filter = share/translations/valentina_<lang>.ts
minimum_perc = 20
source_file = share/translations/valentina.ts
source_lang = en
type = QT

View File

@ -38,6 +38,15 @@
- Export tiled PDF with watermark.
- [#984] Issue with up to date list of unique names.
- 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)
- [#903] Bug in tool Cut Spline path.

View File

@ -933,5 +933,7 @@ MSVC_DEBUG_CXXFLAGS += \
-wd5026 \ # move constructor 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.
-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.
.\" 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
Valentina \- Pattern making program.
.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,"
.RE
.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."
.RE
.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."
.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."
.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"
.RB "Order detail to follow grainline direction (" "export mode" ").
.RB "Order detail to follow grainline direction (" "export mode" ")."
.IP "--manualPriority"
.RB "Follow manual priority over priority by square (" "export mode" ").
.RB "Follow manual priority over priority by square (" "export mode" ")."
.IP "--nestQuantity"
.RB "Nest quantity copies of each piece (" "export mode" ").
.IP "-c, --crop"
.RB "Auto crop unused length (" "export mode" ")."
.IP "--cropWidth"
.RB "Auto crop unused width (" "export mode" ")."
.IP "-u, --unite"
.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"
.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>"

View File

@ -1,6 +1,6 @@
.\" Manpage for valentina.
.\" 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
Valentina \- Pattern making program.
.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,"
.RE
.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."
.RE
.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."
.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."
.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"
.RB "Order detail to follow grainline direction (" "export mode" ").
.RB "Order detail to follow grainline direction (" "export mode" ")."
.IP "--manualPriority"
.RB "Follow manual priority over priority by square (" "export mode" ").
.RB "Follow manual priority over priority by square (" "export mode" ")."
.IP "--nestQuantity"
.RB "Nest quantity copies of each piece (" "export mode" ").
.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" ")."
.IP "-u, --unite"
.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"
.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>"

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2463,6 +2470,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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">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>
<name>DialogFlippingByLine</name>
@ -2502,6 +2537,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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">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>
<name>DialogGroup</name>
@ -2515,7 +2578,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation>
<translation type="vanished">Unique pattern piece name</translation>
</message>
<message>
<source>Choose group name</source>
@ -2525,6 +2588,18 @@
<source>New group</source>
<translation>New group</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>
<name>DialogHeight</name>
@ -3064,6 +3139,53 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3331,10 +3453,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3363,6 +3477,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3775,6 +3902,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation type="unfinished">Center point</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">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>
<name>DialogNewMeasurements</name>
@ -4720,10 +4875,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation type="unfinished">Length:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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">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>
<name>DialogSaveLAyout</name>
@ -5567,6 +5742,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9780,6 +9971,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10974,10 +11172,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source>
<translation type="unfinished">Formula wizard</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11697,6 +11911,18 @@ Do you want to save your changes?</translation>
<source>Length</source>
<translation type="unfinished">Length</translation>
</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>
<name>VAbstractPattern</name>
@ -11868,6 +12094,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -12370,6 +12611,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12463,7 +12724,7 @@ Do you want to save your changes?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
<translation type="vanished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
@ -12472,7 +12733,7 @@ Do you want to save your changes?</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>
<translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message>
<message>
<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>
<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>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -13428,6 +13697,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13439,6 +13712,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source>
<translation type="unfinished">Second line point</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13533,6 +13810,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -14133,6 +14414,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15662,6 +15947,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15723,6 +16193,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15732,7 +16214,7 @@ Do you want to save your changes?</translation>
</message>
<message>
<source>Rename</source>
<translation>Rename</translation>
<translation type="vanished">Rename</translation>
</message>
<message>
<source>Delete</source>
@ -15754,6 +16236,26 @@ Do you want to save your changes?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Přidat spojení jednotlivostí (dílů střihu)</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Převrácení podle osy</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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Převrácení podle čáry</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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<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>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>Nová skupina</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation>Koeficient účinnosti: %1%</translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3317,10 +3435,6 @@ Přesto použít nastavení?</translation>
<source>Time given for the algorithm to find best layout.</source>
<translation>Čas daný algoritmu k nalezení nejlepšího rozvržení.</translation>
</message>
<message>
<source> min</source>
<translation> min</translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation>%</translation>
</message>
<message>
<source>Manual priority</source>
<translation>Ruční přednost</translation>
@ -3349,6 +3459,19 @@ Přesto použít nastavení?</translation>
<source>Auto crop unused width</source>
<translation>Automaticky ořezat nepoužívanou šířku</translation>
</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>
<name>DialogLine</name>
@ -3761,6 +3884,34 @@ Přesto použít nastavení?</translation>
<source>Center point</source>
<translation>Středový bod</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>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>
<name>DialogNewMeasurements</name>
@ -4702,10 +4853,6 @@ Přesto použít nastavení?</translation>
<source>Length:</source>
<translation>Délka:</translation>
</message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message>
<source>U mark</source>
<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>
<translation>Tento bod nemůže být původní bod. Vyberte, prosím, jiný původní bod</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>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>
<name>DialogSaveLAyout</name>
@ -5538,6 +5709,22 @@ Přesto použít nastavení?</translation>
<source>Orientation:</source>
<translation>Natočení:</translation>
</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>
<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>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10692,10 +10886,6 @@ Chcete uložit změny?</translation>
<source>Formula wizard</source>
<translation>Průvodce vzorcem</translation>
</message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message>
<source>Value</source>
<translation>Hodnota</translation>
@ -11233,6 +11423,26 @@ Chcete uložit změny?</translation>
<source>Invalid version. Maximum supported format version is %1</source>
<translation>Neplatná verze. Nejvyšší podporovaná verze formátu je %1</translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11321,6 +11531,18 @@ Chcete uložit změny?</translation>
<source>Length</source>
<translation>Délka</translation>
</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>
<name>VAbstractPattern</name>
@ -11492,6 +11714,21 @@ Chcete uložit změny?</translation>
<translation>Neplatný zářez.</translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11994,6 +12231,26 @@ Chcete uložit změny?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12087,7 +12344,7 @@ Chcete uložit změny?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Nelze otevřít soubor se schématem %1:
<translation type="vanished">Nelze otevřít soubor se schématem %1:
%2.</translation>
</message>
<message>
@ -12096,7 +12353,7 @@ Chcete uložit změny?</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>
<translation type="vanished">Chyba při ověřování souboru %3 na řádku %1, ve sloupci %2</translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
@ -12124,7 +12381,7 @@ Chcete uložit změny?</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>
<translation type="vanished">Nepodařilo se nahrát soubor se schématem &apos;%1&apos;.</translation>
</message>
<message>
<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>
<translation>Nelze vytvořit záznam historie pro nástroj.</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>
</message>
</context>
<context>
<name>VPiece</name>
@ -13034,6 +13299,10 @@ Chcete uložit změny?</translation>
<source>Origin point</source>
<translation>Původní bod</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Převrácení podle osy</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13045,6 +13314,10 @@ Chcete uložit změny?</translation>
<source>Second line point</source>
<translation>Druhý bod čáry</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13139,6 +13412,10 @@ Chcete uložit změny?</translation>
<source>Rotation origin point</source>
<translation>Původní bod otočení</translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13739,6 +14016,10 @@ Chcete uložit změny?</translation>
<source>Rotation angle</source>
<translation>Úhel otáčení</translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15238,6 +15519,191 @@ Chcete uložit změny?</translation>
<comment>Left symbol _ in the name</comment>
<translation>OtočeníElOblouk_</translation>
</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>
<name>VVITConverter</name>
@ -15299,6 +15765,18 @@ Chcete uložit změny?</translation>
<source>Hide not in layout</source>
<translation>Skrýt ne v rozvržení</translation>
</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>
<name>VWidgetGroups</name>
@ -15308,7 +15786,7 @@ Chcete uložit změny?</translation>
</message>
<message>
<source>Rename</source>
<translation>Přejmenovat</translation>
<translation type="vanished">Přejmenovat</translation>
</message>
<message>
<source>Delete</source>
@ -15330,6 +15808,26 @@ Chcete uložit změny?</translation>
<source>Show All</source>
<translation>Ukázat vše</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>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>
<name>Valentina</name>

File diff suppressed because it is too large Load Diff

View File

@ -50,6 +50,13 @@
<translation type="vanished">προσθήκη λεπτομερειών συνένωσης</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2403,6 +2410,34 @@
<source>Flipping by axis</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>Όνομα:</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>
<name>DialogFlippingByLine</name>
@ -2442,6 +2477,34 @@
<source>Flipping by line</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>Όνομα:</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>
<name>DialogGroup</name>
@ -2455,7 +2518,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Μοναδικό όνομα κομματιού πατρόν</translation>
<translation type="vanished">Μοναδικό όνομα κομματιού πατρόν</translation>
</message>
<message>
<source>Choose group name</source>
@ -2465,6 +2528,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -2992,6 +3067,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3244,10 +3362,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3276,6 +3386,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3688,6 +3811,34 @@ Apply settings anyway?</source>
<source>Center point</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>Όνομα:</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>
<name>DialogNewMeasurements</name>
@ -4617,10 +4768,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Μήκος:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>Όνομα:</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>
<name>DialogSaveLAyout</name>
@ -5452,6 +5623,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9363,6 +9550,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10455,10 +10649,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation>Βοηθός φόρμουλας</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation>Τιμή</translation>
@ -10973,6 +11163,24 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11061,6 +11269,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">Μήκος</translation>
</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>
<name>VAbstractPattern</name>
@ -11228,6 +11448,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11614,6 +11849,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -11687,15 +11942,6 @@ Do you want to save your changes?</source>
%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>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<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>
<translation type="vanished">Δεν ήταν δυνατή η αντιγραφή του προσωρινού αρχείου στο αρχείο εγγράφου</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -12608,6 +12858,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Αναστροφή κατά άξονα</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -12619,6 +12873,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished">Δεύτερο σημείο γραμμής</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -12713,6 +12971,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13309,6 +13571,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -14734,6 +15000,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -14795,12 +15246,24 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation>Μετονομασία</translation>
<translation type="vanished">Μετονομασία</translation>
</message>
<message>
<source>Delete</source>
@ -14822,6 +15285,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Flipping by axis</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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Flipping by line</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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation>
<translation type="vanished">Unique pattern piece name</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>New group</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3759,6 +3882,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Center point</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>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>
<name>DialogNewMeasurements</name>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Length:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5535,6 +5706,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9560,6 +9747,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10683,10 +10877,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source>
<translation>Formula wizard</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11312,6 +11522,18 @@ Do you want to save your changes?</translation>
<source>Length</source>
<translation type="unfinished">Length</translation>
</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>
<name>VAbstractPattern</name>
@ -11483,6 +11705,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11985,6 +12222,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12078,7 +12335,7 @@ Do you want to save your changes?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
<translation type="vanished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
@ -12087,7 +12344,7 @@ Do you want to save your changes?</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>
<translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message>
<message>
<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>
<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>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -13025,6 +13290,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Flipping by axis</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13305,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source>
<translation type="unfinished">Second line point</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13130,6 +13403,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14007,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15229,6 +15510,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15290,6 +15756,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15299,7 +15777,7 @@ Do you want to save your changes?</translation>
</message>
<message>
<source>Rename</source>
<translation>Rename</translation>
<translation type="vanished">Rename</translation>
</message>
<message>
<source>Delete</source>
@ -15321,6 +15799,26 @@ Do you want to save your changes?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Flipping by axis</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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Flipping by line</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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation>
<translation type="vanished">Unique pattern piece name</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>New group</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3759,6 +3882,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Center point</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>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>
<name>DialogNewMeasurements</name>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Length:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5535,6 +5706,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9560,6 +9747,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10683,10 +10877,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source>
<translation>Formula wizard</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11312,6 +11522,18 @@ Do you want to save your changes?</translation>
<source>Length</source>
<translation type="unfinished">Length</translation>
</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>
<name>VAbstractPattern</name>
@ -11483,6 +11705,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11985,6 +12222,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12078,7 +12335,7 @@ Do you want to save your changes?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
<translation type="vanished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
@ -12087,7 +12344,7 @@ Do you want to save your changes?</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>
<translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message>
<message>
<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>
<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>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -13025,6 +13290,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Flipping by axis</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13305,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source>
<translation type="unfinished">Second line point</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13130,6 +13403,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14007,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15229,6 +15510,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15290,6 +15756,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15299,7 +15777,7 @@ Do you want to save your changes?</translation>
</message>
<message>
<source>Rename</source>
<translation>Rename</translation>
<translation type="vanished">Rename</translation>
</message>
<message>
<source>Delete</source>
@ -15321,6 +15799,26 @@ Do you want to save your changes?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">add union details</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Flipping by axis</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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Flipping by line</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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Unique pattern piece name</translation>
<translation type="vanished">Unique pattern piece name</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>New group</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3759,6 +3882,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Center point</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>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>
<name>DialogNewMeasurements</name>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Length:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5535,6 +5706,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9560,6 +9747,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10683,10 +10877,6 @@ Do you want to save your changes?</translation>
<source>Formula wizard</source>
<translation>Formula wizard</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11312,6 +11522,18 @@ Do you want to save your changes?</translation>
<source>Length</source>
<translation type="unfinished">Length</translation>
</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>
<name>VAbstractPattern</name>
@ -11483,6 +11705,21 @@ Do you want to save your changes?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11985,6 +12222,26 @@ Do you want to save your changes?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12078,7 +12335,7 @@ Do you want to save your changes?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Can&apos;t open schema file %1:
<translation type="vanished">Can&apos;t open schema file %1:
%2.</translation>
</message>
<message>
@ -12087,7 +12344,7 @@ Do you want to save your changes?</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>
<translation type="vanished">Validation error file %3 in line %1 column %2</translation>
</message>
<message>
<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>
<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>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -13025,6 +13290,10 @@ Do you want to save your changes?</translation>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Flipping by axis</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13305,10 @@ Do you want to save your changes?</translation>
<source>Second line point</source>
<translation type="unfinished">Second line point</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13130,6 +13403,10 @@ Do you want to save your changes?</translation>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14007,10 @@ Do you want to save your changes?</translation>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15229,6 +15510,191 @@ Do you want to save your changes?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15290,6 +15756,18 @@ Do you want to save your changes?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15299,7 +15777,7 @@ Do you want to save your changes?</translation>
</message>
<message>
<source>Rename</source>
<translation>Rename</translation>
<translation type="vanished">Rename</translation>
</message>
<message>
<source>Delete</source>
@ -15321,6 +15799,26 @@ Do you want to save your changes?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">añadir detalles de la unión</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation>renombrar grupo</translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Volteando por ejes</translation>
</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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Volteando por linea</translation>
</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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<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>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>Nuevo grupo</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation>Coeficiente de eficiencia: %1%</translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3316,10 +3434,6 @@ Aplicar características de todos modos?</translation>
<source>Time given for the algorithm to find best layout.</source>
<translation>Tiempo dado para que el algoritmo encuentre el mejor diseño.</translation>
</message>
<message>
<source> min</source>
<translation> min</translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<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>
<source>%</source>
<translation>%</translation>
</message>
<message>
<source>Manual priority</source>
<translation>Prioridad manual</translation>
@ -3348,6 +3458,19 @@ Aplicar características de todos modos?</translation>
<source>Auto crop unused width</source>
<translation>Recorte automático del ancho no utilizado</translation>
</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>
<name>DialogLine</name>
@ -3760,6 +3883,34 @@ Aplicar características de todos modos?</translation>
<source>Center point</source>
<translation>Punto central</translation>
</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>
<name>DialogNewMeasurements</name>
@ -4701,10 +4852,6 @@ Aplicar características de todos modos?</translation>
<source>Length:</source>
<translation>Longitud:</translation>
</message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message>
<source>U mark</source>
<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>
<translation>Este punto no puede ser punto de origen. Por favor, seleccione otro punto de origen</translation>
</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>
<name>DialogSaveLAyout</name>
@ -5536,6 +5707,22 @@ Aplicar características de todos modos?</translation>
<source>Orientation:</source>
<translation>Orientación:</translation>
</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>
<name>DialogSaveLayout</name>
@ -6295,7 +6482,7 @@ Aplicar características de todos modos?</translation>
</message>
<message numerus="yes">
<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>
</translation>
@ -8256,11 +8443,11 @@ el patrón.</translation>
</message>
<message>
<source>Watermark</source>
<translation type="unfinished"></translation>
<translation>Marca de Agua</translation>
</message>
<message>
<source>Load</source>
<translation type="unfinished"></translation>
<translation>Cargar</translation>
</message>
<message>
<source>Remove</source>
@ -8268,19 +8455,19 @@ el patrón.</translation>
</message>
<message>
<source>Edit current</source>
<translation type="unfinished"></translation>
<translation>Editar actual</translation>
</message>
<message>
<source>Editor</source>
<translation type="unfinished"></translation>
<translation>Editor</translation>
</message>
<message>
<source>Create or edit a watermark</source>
<translation type="unfinished"></translation>
<translation>Crear o editar una marca de agua</translation>
</message>
<message>
<source>Watermark files</source>
<translation type="unfinished"></translation>
<translation>Archivos de marca de agua</translation>
</message>
</context>
<context>
@ -8467,7 +8654,11 @@ el patrón.</translation>
%1
%2</source>
<translation type="unfinished"></translation>
<translation>Error archivo.
%1
%2</translation>
</message>
</context>
<context>
@ -9342,7 +9533,7 @@ Esta opción surtirá efecto después de reiniciar.</translation>
</message>
<message>
<source>Can&apos;t convert toInt parameter</source>
<translation type="unfinished"></translation>
<translation>No se puede convertir el parámetro toInt</translation>
</message>
</context>
<context>
@ -9563,6 +9754,13 @@ Esta opción surtirá efecto después de reiniciar.</translation>
<translation>Remover elemento del grupo</translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation>renombrar grupo</translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10686,10 +10884,6 @@ Quieres guardar los cambios?</translation>
<source>Formula wizard</source>
<translation>Asistente de formula</translation>
</message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message>
<source>Value</source>
<translation>Valor</translation>
@ -10712,7 +10906,7 @@ Quieres guardar los cambios?</translation>
</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>
<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>
</context>
<context>
@ -11227,6 +11421,26 @@ Quieres guardar los cambios?</translation>
<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>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11315,6 +11529,18 @@ Quieres guardar los cambios?</translation>
<source>Length</source>
<translation>Longitud</translation>
</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>
<name>VAbstractPattern</name>
@ -11486,6 +11712,21 @@ Quieres guardar los cambios?</translation>
<translation>Pique invalido.</translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11988,6 +12229,26 @@ Quieres guardar los cambios?</translation>
<source>Auto crop unused width (export mode).</source>
<translation>Auto cortar ancho sin uso (modo de exportación).</translation>
</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>
<name>VCommonSettings</name>
@ -12081,7 +12342,7 @@ Quieres guardar los cambios?</translation>
<message>
<source>Can&apos;t open schema file %1:
%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>
</message>
<message>
@ -12090,7 +12351,7 @@ Quieres guardar los cambios?</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>
<translation type="vanished">Error de validación en el archivo %3 en la línea %1 columna %2</translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
@ -12118,7 +12379,7 @@ Quieres guardar los cambios?</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>
<translation type="vanished">No se puede cargar el archivo de esquema &apos;%1&apos;.</translation>
</message>
<message>
<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>
<translation>No se puede crear un registro de historial para la herramienta.</translation>
</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>
<name>VPiece</name>
@ -12720,7 +12989,7 @@ Quieres guardar los cambios?</translation>
</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>
<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>
</context>
<context>
@ -12739,7 +13008,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<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>
<source>cm</source>
@ -12753,7 +13022,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>Cannot open the watermark image.</source>
<translation type="unfinished"></translation>
<translation>No se puede abrir la imagen de marca de agua.</translation>
</message>
</context>
<context>
@ -13028,6 +13297,10 @@ Quieres guardar los cambios?</translation>
<source>Origin point</source>
<translation>Punto origen</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Volteando por ejes</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13039,6 +13312,10 @@ Quieres guardar los cambios?</translation>
<source>Second line point</source>
<translation>Punto segunda linea</translation>
</message>
<message>
<source>flipping by line</source>
<translation>voltear por linea</translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13133,6 +13410,10 @@ Quieres guardar los cambios?</translation>
<source>Rotation origin point</source>
<translation>Punto de origen de rotación</translation>
</message>
<message>
<source>move</source>
<translation>mover</translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13733,6 +14014,10 @@ Quieres guardar los cambios?</translation>
<source>Rotation angle</source>
<translation>Angulo de rotación</translation>
</message>
<message>
<source>rotate</source>
<translation>rotar</translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15232,6 +15517,191 @@ Quieres guardar los cambios?</translation>
<comment>Left symbol _ in the name</comment>
<translation>RotaciónElArco_</translation>
</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>
<name>VVITConverter</name>
@ -15293,6 +15763,18 @@ Quieres guardar los cambios?</translation>
<source>Hide not in layout</source>
<translation>No ocultar en el diseño</translation>
</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>
<name>VWidgetGroups</name>
@ -15302,7 +15784,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>Rename</source>
<translation>Renombrar</translation>
<translation type="vanished">Renombrar</translation>
</message>
<message>
<source>Delete</source>
@ -15324,6 +15806,26 @@ Quieres guardar los cambios?</translation>
<source>Show All</source>
<translation>Mostrar Todo</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>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>
<name>Valentina</name>
@ -15452,11 +15954,11 @@ Quieres guardar los cambios?</translation>
<name>WatermarkWindow</name>
<message>
<source>Watermark</source>
<translation type="unfinished"></translation>
<translation>Marca de Agua</translation>
</message>
<message>
<source>Opacity:</source>
<translation type="unfinished"></translation>
<translation>Opacidad:</translation>
</message>
<message>
<source>Text</source>
@ -15468,7 +15970,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>watermark text</source>
<translation type="unfinished"></translation>
<translation>texto marca de agua</translation>
</message>
<message>
<source>Rotation:</source>
@ -15476,20 +15978,20 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>Font:</source>
<translation type="unfinished"></translation>
<translation>Fuente:</translation>
</message>
<message>
<source>The quick brown fox jumps over the lazy dog</source>
<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>
<source>Edit font</source>
<translation type="unfinished"></translation>
<translation>Editar fuente</translation>
</message>
<message>
<source>Image</source>
<translation type="unfinished"></translation>
<translation>Imagen</translation>
</message>
<message>
<source>Path:</source>
@ -15497,7 +15999,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>path to image</source>
<translation type="unfinished"></translation>
<translation>ruta a la imagen</translation>
</message>
<message>
<source>Browse</source>
@ -15505,7 +16007,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>Gray color</source>
<translation type="unfinished"></translation>
<translation>Color gris</translation>
</message>
<message>
<source>&amp;File</source>
@ -15541,7 +16043,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>Watermark image</source>
<translation type="unfinished"></translation>
<translation>Imagen Marca de agua</translation>
</message>
<message>
<source>File error.</source>
@ -15549,7 +16051,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>Watermark files</source>
<translation type="unfinished"></translation>
<translation>Archivos de marca de agua</translation>
</message>
<message>
<source>Save as</source>
@ -15557,7 +16059,7 @@ Quieres guardar los cambios?</translation>
</message>
<message>
<source>watermark</source>
<translation type="unfinished"></translation>
<translation>marca de agua</translation>
</message>
<message>
<source>Failed to lock. This file already opened in another window.</source>
@ -15598,7 +16100,8 @@ Quieres guardar los cambios?</translation>
<message>
<source>The watermark has been modified.
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>
<source>Don&apos;t Save</source>
@ -15610,15 +16113,15 @@ Do you want to save your changes?</source>
</message>
<message>
<source>untitled.vwm</source>
<translation type="unfinished"></translation>
<translation>sintítulo.vwm</translation>
</message>
<message>
<source>Confirm format rewriting</source>
<translation type="unfinished"></translation>
<translation>Confirmar reescritura de formato</translation>
</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>
<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>
<source>File saved</source>

View File

@ -36,6 +36,13 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2059,6 +2066,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -2094,6 +2129,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -2105,10 +2168,6 @@
<source>Group name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Choose group name</source>
<translation type="unfinished"></translation>
@ -2117,6 +2176,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -2628,6 +2699,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -2820,10 +2934,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -2852,6 +2958,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3260,6 +3379,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Keskipiste</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>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>
<name>DialogNewMeasurements</name>
@ -4141,10 +4288,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -4888,6 +5055,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -8519,6 +8702,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -9511,10 +9701,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -10085,6 +10291,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">Pituus</translation>
</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>
<name>VAbstractPattern</name>
@ -10252,6 +10470,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -10634,6 +10867,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -10727,7 +10980,7 @@ Do you want to save your changes?</source>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Skeematiedostoa %1 ei voitu avata.
<translation type="vanished">Skeematiedostoa %1 ei voitu avata.
%2.</translation>
</message>
<message>
@ -10736,7 +10989,7 @@ Do you want to save your changes?</source>
</message>
<message>
<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>
<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>
<translation type="vanished">Dokumenttitiedostoa ei voitu poistaa</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -11607,6 +11864,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -11618,6 +11879,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished">Viivan toinen piste</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -11712,6 +11977,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -12252,6 +12521,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -13712,6 +13985,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -13773,13 +14231,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished">Poista</translation>
@ -13800,6 +14266,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Ajouter des fusions de pièce de patron</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<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>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>Nouveau groupe</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3312,10 +3430,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3344,6 +3454,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3756,6 +3879,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Point central</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>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>
<name>DialogNewMeasurements</name>
@ -4697,10 +4848,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Longueur:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5532,6 +5703,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9545,6 +9732,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10668,10 +10862,6 @@ Voulez-vous enregistrer les changements?</translation>
<source>Formula wizard</source>
<translation>Assistant formule</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation>Valeur</translation>
@ -11205,6 +11395,25 @@ Voulez-vous enregistrer les changements?</translation>
<source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11293,6 +11502,18 @@ Voulez-vous enregistrer les changements?</translation>
<source>Length</source>
<translation type="unfinished">Longueur</translation>
</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>
<name>VAbstractPattern</name>
@ -11460,6 +11681,21 @@ Voulez-vous enregistrer les changements?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11962,6 +12198,26 @@ Voulez-vous enregistrer les changements?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12055,7 +12311,7 @@ Voulez-vous enregistrer les changements?</translation>
<message>
<source>Can&apos;t open schema file %1:
%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>
<source>Could not load schema file.</source>
@ -12063,7 +12319,7 @@ Voulez-vous enregistrer les changements?</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>
<translation type="vanished">Erreur de validation : fichier %3, ligne %1, colonne %2</translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
@ -12091,7 +12347,7 @@ Voulez-vous enregistrer les changements?</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>
<translation type="vanished">Impossible de lire le schéma de fichier &apos;%1&apos;.</translation>
</message>
<message>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -12993,6 +13257,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13004,6 +13272,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Second line point</source>
<translation type="unfinished">Point de deuxieme ligne</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13098,6 +13370,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13694,6 +13970,10 @@ Voulez-vous enregistrer les changements?</translation>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15193,6 +15473,191 @@ Voulez-vous enregistrer les changements?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15254,6 +15719,18 @@ Voulez-vous enregistrer les changements?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15263,7 +15740,7 @@ Voulez-vous enregistrer les changements?</translation>
</message>
<message>
<source>Rename</source>
<translation>Renommer</translation>
<translation type="vanished">Renommer</translation>
</message>
<message>
<source>Delete</source>
@ -15285,6 +15762,26 @@ Voulez-vous enregistrer les changements?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -36,6 +36,13 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -1668,6 +1675,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -1703,6 +1738,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -1714,10 +1777,6 @@
<source>Group name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Choose group name</source>
<translation type="unfinished"></translation>
@ -1726,6 +1785,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -2185,6 +2256,53 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -2349,10 +2467,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -2381,6 +2491,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -2757,6 +2880,34 @@ Apply settings anyway?</source>
<source>Center point</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>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>
<name>DialogNewMeasurements</name>
@ -3475,10 +3626,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -4174,6 +4345,26 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -7474,6 +7665,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -8434,10 +8632,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -8903,6 +9115,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">אורך</translation>
</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>
<name>VAbstractPattern</name>
@ -9070,6 +9294,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -9448,6 +9687,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -9521,15 +9780,6 @@ Do you want to save your changes?</source>
%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>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
@ -9538,10 +9788,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -10352,6 +10606,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -10363,6 +10621,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -10457,6 +10719,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -10961,6 +11227,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -12346,6 +12616,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VWidgetDetails</name>
@ -12385,13 +12840,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished">למחוק</translation>
@ -12412,6 +12875,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -36,6 +36,13 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -1939,6 +1946,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -1974,6 +2009,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -1985,10 +2048,6 @@
<source>Group name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Choose group name</source>
<translation type="unfinished"></translation>
@ -1997,6 +2056,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -2456,6 +2527,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -2620,10 +2734,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -2652,6 +2758,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3044,6 +3163,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>titik tengah</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>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>
<name>DialogNewMeasurements</name>
@ -3778,10 +3925,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -4500,6 +4667,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -7820,6 +8003,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -8772,10 +8962,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -9283,6 +9487,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">panjang</translation>
</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>
<name>VAbstractPattern</name>
@ -9450,6 +9666,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -9832,6 +10063,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -9905,15 +10156,6 @@ Do you want to save your changes?</source>
%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>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
@ -9922,10 +10164,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -10736,6 +10982,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -10747,6 +10997,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -10841,6 +11095,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -11357,6 +11615,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -12747,6 +13009,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VWidgetDetails</name>
@ -12786,13 +13233,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished">hapus</translation>
@ -12813,6 +13268,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Aggiungi dettagli di unione</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2439,6 +2446,34 @@
<source>Flipping by axis</source>
<translation>Ruotare sull&apos;asse</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>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>
<name>DialogFlippingByLine</name>
@ -2478,6 +2513,34 @@
<source>Flipping by line</source>
<translation>Ruota sulla linea</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>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>
<name>DialogGroup</name>
@ -2491,7 +2554,7 @@
</message>
<message>
<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>
<source>Choose group name</source>
@ -2501,6 +2564,18 @@
<source>New group</source>
<translation>Nuovo gruppo</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>
<name>DialogHeight</name>
@ -3040,6 +3115,49 @@
<translation>Coefficiente di efficienza: %1%</translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3309,10 +3427,6 @@ Applicare la configurazione comunque?</translation>
<source>Time given for the algorithm to find best layout.</source>
<translation>Tempo concesso allalgoritmo per trovare il miglior piazzamento.</translation>
</message>
<message>
<source> min</source>
<translation>min</translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<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>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3341,6 +3451,19 @@ Applicare la configurazione comunque?</translation>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3753,6 +3876,34 @@ Applicare la configurazione comunque?</translation>
<source>Center point</source>
<translation>Punto centrale</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>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>
<name>DialogNewMeasurements</name>
@ -4632,11 +4783,11 @@ Applicare la configurazione comunque?</translation>
</message>
<message>
<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>
<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>
<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>
<translation>Lunghezza:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5529,6 +5700,22 @@ Applicare la configurazione comunque?</translation>
<source>Orientation:</source>
<translation>Orientamento:</translation>
</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>
<name>DialogSaveLayout</name>
@ -8044,7 +8231,7 @@ Vuoi salvare i cambiamenti?</translation>
</message>
<message>
<source>Internal path tool</source>
<translation type="unfinished"></translation>
<translation>Strumento Tracciato Interno</translation>
</message>
<message>
<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>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -9594,7 +9788,7 @@ Questa opzione sarà effettiva dopo il riavvio del programma.</translation>
<name>SavePlaceLabelOptions</name>
<message>
<source>save place label options</source>
<translation type="unfinished"></translation>
<translation>Salva opzioni di posizionamento etichetta</translation>
</message>
</context>
<context>
@ -10678,10 +10872,6 @@ Vuoi salvare le tue modifiche?</translation>
<source>Formula wizard</source>
<translation>Formula magica</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation>Valore</translation>
@ -11215,6 +11405,25 @@ Vuoi salvare le tue modifiche?</translation>
<source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11303,6 +11512,18 @@ Vuoi salvare le tue modifiche?</translation>
<source>Length</source>
<translation type="unfinished">Lunghezza</translation>
</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>
<name>VAbstractPattern</name>
@ -11474,6 +11695,21 @@ Vuoi salvare le tue modifiche?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11944,6 +12180,26 @@ Vuoi salvare le tue modifiche?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12022,19 +12278,10 @@ Vuoi salvare le tue modifiche?</translation>
<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.</source>
<translation type="vanished">Impossibile caricare il file di schema</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
@ -12047,10 +12294,6 @@ Vuoi salvare le tue modifiche?</translation>
<source>This id is not unique.</source>
<translation type="vanished">Questo ID è già esistente.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -12955,6 +13206,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Origin point</source>
<translation>Punto d&apos;origine</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Ruotare sull&apos;asse</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -12966,6 +13221,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Second line point</source>
<translation type="unfinished">Secondo punto della linea</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13060,6 +13319,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Rotation origin point</source>
<translation>Ruota punto d&apos;origine</translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13652,6 +13915,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Rotation angle</source>
<translation>Angolo di rotazione</translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15106,6 +15373,191 @@ Vuoi salvare le tue modifiche?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15167,12 +15619,24 @@ Vuoi salvare le tue modifiche?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation>Rinomina</translation>
<translation type="vanished">Rinomina</translation>
</message>
<message>
<source>Delete</source>
@ -15194,6 +15658,26 @@ Vuoi salvare le tue modifiche?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">voeg een samengevoegd detail toe</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation>hernoem groep</translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Kantelen via de aslijn</translation>
</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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Kantelen via de lijn</translation>
</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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Unieke patroondeel naam</translation>
<translation type="vanished">Unieke patroondeel naam</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>Nieuwe groep</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation>Efficiëntie coëfficiënt: %1%</translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3317,10 +3435,6 @@ Toch de instellingen aanpassen?</translation>
<source>Time given for the algorithm to find best layout.</source>
<translation>Tijd toegekend aan het algoritme om de beste opmaak te vinden.</translation>
</message>
<message>
<source> min</source>
<translation>min</translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<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>
<source>%</source>
<translation>%</translation>
</message>
<message>
<source>Manual priority</source>
<translation>Manuele voorrang</translation>
@ -3349,6 +3459,19 @@ Toch de instellingen aanpassen?</translation>
<source>Auto crop unused width</source>
<translation>Automatisch inkorten van ongebruikte breedte</translation>
</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>
<name>DialogLine</name>
@ -3761,6 +3884,34 @@ Toch de instellingen aanpassen?</translation>
<source>Center point</source>
<translation>Middelpunt</translation>
</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>
<name>DialogNewMeasurements</name>
@ -4702,10 +4853,6 @@ Toch de instellingen aanpassen?</translation>
<source>Length:</source>
<translation>Lengte:</translation>
</message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message>
<source>U mark</source>
<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>
<translation>Dit punt kan geen startpunt zijn. Gelieve een ander startpunt te kiezen</translation>
</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>
<name>DialogSaveLAyout</name>
@ -5537,6 +5708,22 @@ Toch de instellingen aanpassen?</translation>
<source>Orientation:</source>
<translation>Orientatie:</translation>
</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>
<name>DialogSaveLayout</name>
@ -8131,7 +8318,7 @@ Do you want to save your changes?</source>
</message>
<message>
<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>
<source>Changes applied.</source>
@ -9139,7 +9326,7 @@ Deze optie wordt actief na een herstart..</translation>
<name>QObject</name>
<message>
<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>
<source>mm</source>
@ -9566,6 +9753,13 @@ Deze optie wordt actief na een herstart..</translation>
<translation>Verwijder item van groep</translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation>hernoem groep</translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10689,10 +10883,6 @@ Wil je deze veranderingen opslaan?</translation>
<source>Formula wizard</source>
<translation>Formule assistent</translation>
</message>
<message>
<source>=</source>
<translation>=</translation>
</message>
<message>
<source>Value</source>
<translation>Waarde</translation>
@ -11230,6 +11420,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Invalid version. Maximum supported format version is %1</source>
<translation>Ongeldige versie. Maximum ondersteund formaat is %1</translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11318,6 +11528,18 @@ Wil je deze veranderingen opslaan?</translation>
<source>Length</source>
<translation>Lengte</translation>
</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>
<name>VAbstractPattern</name>
@ -11489,6 +11711,21 @@ Wil je deze veranderingen opslaan?</translation>
<translation>Ongeldige inkeping.</translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11991,6 +12228,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Auto crop unused width (export mode).</source>
<translation>Automatisch inkorten van ongebruikte breedte (export modus).</translation>
</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>
<name>VCommonSettings</name>
@ -12084,7 +12341,7 @@ Wil je deze veranderingen opslaan?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Kan schema bestand niet openen %1:
<translation type="vanished">Kan schema bestand niet openen %1:
%2.</translation>
</message>
<message>
@ -12093,7 +12350,7 @@ Wil je deze veranderingen opslaan?</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>
<translation type="vanished">Validatie fout bestand %3 op lijn %1 kolom %2</translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
@ -12121,7 +12378,7 @@ Wil je deze veranderingen opslaan?</translation>
</message>
<message>
<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>
<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>
<translation>Kan geen geschiedenis item voor dit gereedschap aanmaken.</translation>
</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>
<name>VPiece</name>
@ -13031,6 +13296,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Origin point</source>
<translation>Startpunt</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Kantelen via de aslijn</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13042,6 +13311,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Second line point</source>
<translation>Tweede lijnpunt</translation>
</message>
<message>
<source>flipping by line</source>
<translation>Kantelen langs een lijn</translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13136,6 +13409,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Rotation origin point</source>
<translation>Rotatie startpunt</translation>
</message>
<message>
<source>move</source>
<translation>verplaats</translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13736,6 +14013,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Rotation angle</source>
<translation>Hoek van draaiing</translation>
</message>
<message>
<source>rotate</source>
<translation>draai</translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15235,6 +15516,191 @@ Wil je deze veranderingen opslaan?</translation>
<comment>Left symbol _ in the name</comment>
<translation>RotationElArc_</translation>
</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>
<name>VVITConverter</name>
@ -15296,6 +15762,18 @@ Wil je deze veranderingen opslaan?</translation>
<source>Hide not in layout</source>
<translation>Verberg niet in opmaak</translation>
</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>
<name>VWidgetGroups</name>
@ -15305,7 +15783,7 @@ Wil je deze veranderingen opslaan?</translation>
</message>
<message>
<source>Rename</source>
<translation>Hernoem</translation>
<translation type="vanished">Hernoem</translation>
</message>
<message>
<source>Delete</source>
@ -15327,6 +15805,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Show All</source>
<translation>Vertoon Alles</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">dodaj szczegóły połaczenia</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2263,6 +2270,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -2302,6 +2337,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -2315,7 +2378,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Unikalna nazwa formy</translation>
<translation type="vanished">Unikalna nazwa formy</translation>
</message>
<message>
<source>Choose group name</source>
@ -2325,6 +2388,18 @@
<source>New group</source>
<translation>Nowa grupa</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>
<name>DialogHeight</name>
@ -2816,6 +2891,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3004,10 +3122,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3036,6 +3146,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3440,6 +3563,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Punkt środkowy</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>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>
<name>DialogNewMeasurements</name>
@ -4269,10 +4420,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Długość:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5009,6 +5180,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -8598,6 +8785,13 @@ This option will take an affect after restart.</source>
<translation>Usuń element z grupy</translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -9657,10 +9851,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation>Kreator formuł</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -10267,6 +10475,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">Długość</translation>
</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>
<name>VAbstractPattern</name>
@ -10434,6 +10654,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -10816,6 +11051,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -10889,15 +11144,6 @@ Do you want to save your changes?</source>
%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>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
@ -10906,10 +11152,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -11747,6 +11997,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -11758,6 +12012,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -11852,6 +12110,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -12380,6 +12642,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -13815,6 +14081,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -13876,13 +14327,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation>Usuń</translation>
@ -13903,6 +14362,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">Adicionar detalhes de ligação</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</source>
<translation>Espelhar através do eixo</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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Espelhar através de linha</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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<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>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>Novo grupo</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3313,10 +3431,6 @@ Aplicar configurações de qualquer forma?</translation>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3345,6 +3455,19 @@ Aplicar configurações de qualquer forma?</translation>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3757,6 +3880,34 @@ Aplicar configurações de qualquer forma?</translation>
<source>Center point</source>
<translation>Ponto central</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>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>
<name>DialogNewMeasurements</name>
@ -4698,10 +4849,6 @@ Aplicar configurações de qualquer forma?</translation>
<source>Length:</source>
<translation>Comprimento:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>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>
<name>DialogSaveLAyout</name>
@ -5529,6 +5700,22 @@ Aplicar configurações de qualquer forma?</translation>
<source>Orientation:</source>
<translation>Orientação:</translation>
</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>
<name>DialogSaveLayout</name>
@ -9543,6 +9730,13 @@ Esta opção terá um efeito após o reinício.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10666,10 +10860,6 @@ Deseja salvar suas mudanças?</translation>
<source>Formula wizard</source>
<translation>Assistente de fórmulas</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation>Valor</translation>
@ -11203,6 +11393,26 @@ Deseja salvar suas mudanças?</translation>
<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>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11291,6 +11501,18 @@ Deseja salvar suas mudanças?</translation>
<source>Length</source>
<translation>Comprimento</translation>
</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>
<name>VAbstractPattern</name>
@ -11462,6 +11684,21 @@ Deseja salvar suas mudanças?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11932,6 +12169,26 @@ Deseja salvar suas mudanças?</translation>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12025,7 +12282,7 @@ Deseja salvar suas mudanças?</translation>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Impossível abrir o arquivo de esquema %1:
<translation type="vanished">Impossível abrir o arquivo de esquema %1:
%2.</translation>
</message>
<message>
@ -12034,7 +12291,7 @@ Deseja salvar suas mudanças?</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>
<translation type="vanished">Arquivo de erro de validação %3 na linha %1 coluna %2</translation>
</message>
<message>
<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>
<translation type="vanished">Obteve parâmetro de identidade errado. Permitido somente Identidade &gt; 0.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -12960,6 +13221,10 @@ Deseja salvar suas mudanças?</translation>
<source>Origin point</source>
<translation>Ponto de origem</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Espelhar através do eixo</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -12971,6 +13236,10 @@ Deseja salvar suas mudanças?</translation>
<source>Second line point</source>
<translation>Segundo ponto da linha</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13065,6 +13334,10 @@ Deseja salvar suas mudanças?</translation>
<source>Rotation origin point</source>
<translation>Rotação do ponto de origem</translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13665,6 +13938,10 @@ Deseja salvar suas mudanças?</translation>
<source>Rotation angle</source>
<translation>Ângulo de rotação</translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15119,6 +15396,191 @@ Deseja salvar suas mudanças?</translation>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15180,6 +15642,18 @@ Deseja salvar suas mudanças?</translation>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15189,7 +15663,7 @@ Deseja salvar suas mudanças?</translation>
</message>
<message>
<source>Rename</source>
<translation>Renomear</translation>
<translation type="vanished">Renomear</translation>
</message>
<message>
<source>Delete</source>
@ -15211,6 +15685,26 @@ Deseja salvar suas mudanças?</translation>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">adauga detalii ale Uniunii</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2228,6 +2235,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -2263,6 +2298,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -2274,10 +2337,6 @@
<source>Group name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Choose group name</source>
<translation type="unfinished"></translation>
@ -2286,6 +2345,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -2801,6 +2872,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -2993,10 +3107,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3025,6 +3131,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3433,6 +3552,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation>Punct central</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>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>
<name>DialogNewMeasurements</name>
@ -4230,10 +4377,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Lungime:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -4966,6 +5133,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -8486,6 +8669,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -9474,10 +9664,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation>Asistent Formulă</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -10020,6 +10224,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">Lungime</translation>
</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>
<name>VAbstractPattern</name>
@ -10187,6 +10403,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -10569,6 +10800,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -10642,15 +10893,6 @@ Do you want to save your changes?</source>
%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>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
@ -10659,10 +10901,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -11477,6 +11723,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -11488,6 +11738,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished">Al doilea Punct de linie</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -11582,6 +11836,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -12110,6 +12368,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -13535,6 +13797,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VWidgetDetails</name>
@ -13574,13 +14021,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished">Șterge</translation>
@ -13601,6 +14056,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished">добавить объединение деталей</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation>переименовать группу</translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</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>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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</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>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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Уникальное имя выкройки</translation>
<translation type="vanished">Уникальное имя выкройки</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation>Коэффициент эффективности: %1%</translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3317,10 +3435,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation>Время, данное алгоритму, чтобы найти лучшую раскладку.</translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation>Установите коэффициент эффективности раскладки. Коэффициент эффективности раскладки - это отношение площади, занимаемой деталями, к ограничивающему прямоугольнику всех деталей. Когда раскладка достигает установленного значения, процесс останавливается. Если значение равно 0, проверка не производится. </translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation>Ручной приоритет</translation>
</message>
<message>
<source>Nest quantity of copies according to piece settings.</source>
<translation type="unfinished"></translation>
<translation>Разложить согласно количеству копий в соответствии с настройками детали.</translation>
</message>
<message>
<source>Nest quantity</source>
@ -3349,6 +3459,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation>Автоматически обрезать неиспользуемую ширину</translation>
</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>
<name>DialogLine</name>
@ -3761,6 +3884,34 @@ Apply settings anyway?</source>
<source>Center 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>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>
<name>DialogNewMeasurements</name>
@ -4702,10 +4853,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Длина:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<translation>U метка</translation>
@ -5433,6 +5580,54 @@ Apply settings anyway?</source>
</message>
<message>
<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>
</message>
</context>
@ -5538,6 +5733,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation>Ориентация:</translation>
</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>
<name>DialogSaveLayout</name>
@ -8145,7 +8356,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Ctrl+O</source>
<translation type="unfinished"></translation>
<translation>Ctrl+O</translation>
</message>
<message>
<source>Cannot read settings from a malformed .INI file.</source>
@ -8153,7 +8364,7 @@ Do you want to save your changes?</source>
</message>
<message>
<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>
<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>
<source>Process has been stoped because of exception.</source>
<translation type="unfinished"></translation>
<translation>Процесс был остановлен из-за исключения.</translation>
</message>
<message>
<source>File error.
@ -9315,19 +9526,19 @@ This option will take an affect after restart.</source>
</message>
<message>
<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>
<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>
<source>Cannot calculate seam allowance after for point &apos;%1&apos;. Reason: </source>
<translation type="unfinished"></translation>
<translation>Невозможно рассчитать припуск на шов после точки &apos;%1&apos;. Причина: </translation>
</message>
<message>
<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>
<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>
<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>
<source>Can&apos;t convert toInt parameter</source>
@ -9568,6 +9779,13 @@ This option will take an affect after restart.</source>
<translation>Удалить объект из группы</translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation>переименовать группу</translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10691,10 +10909,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation>Мастер формул</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation>Значение</translation>
@ -10717,7 +10931,7 @@ Do you want to save your changes?</source>
</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>
<translation type="unfinished"></translation>
<translation>Список всех установленных надсечек. Чтобы поставить надсечку, вернитесь во вкладку «Главный контур», вызовите контекстное меню у нужной точки и поставьте галочку в строке &quot;Надсечка&quot;.</translation>
</message>
</context>
<context>
@ -11232,6 +11446,26 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source>
<translation>Недействительная версия. Максимально поддерживаемая версия формата %1</translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11307,7 +11541,7 @@ Do you want to save your changes?</source>
<name>VAbstractNode</name>
<message>
<source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation>
<translation>Этот идентификатор (%1) не является уникальным.</translation>
</message>
</context>
<context>
@ -11320,6 +11554,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation>Длина</translation>
</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>
<name>VAbstractPattern</name>
@ -11491,6 +11737,21 @@ Do you want to save your changes?</source>
<translation>Неправильная надсечка.</translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11955,7 +12216,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Order detail to follow grainline direction (export mode).</source>
<translation type="unfinished"></translation>
<translation>Получите детали в соответствии с направлением долевой (режим экспорта).</translation>
</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>
@ -11979,7 +12240,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Nest quantity copies of each piece (export mode).</source>
<translation type="unfinished"></translation>
<translation>Разложить согласно количеству копий каждой детали (режим экспорта).</translation>
</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>
@ -11993,6 +12254,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation>Автоматическая обрезка неиспользуемой ширины (режим экспорта).</translation>
</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>
<name>VCommonSettings</name>
@ -12086,7 +12367,7 @@ Do you want to save your changes?</source>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Невозможно открыть файл схемы %1:
<translation type="vanished">Невозможно открыть файл схемы %1:
%2.</translation>
</message>
<message>
@ -12095,7 +12376,7 @@ Do you want to save your changes?</source>
</message>
<message>
<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>
<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>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Не удалось открыть файл схемы &apos;%1&apos;.</translation>
<translation type="vanished">Не удалось открыть файл схемы &apos;%1&apos;.</translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
@ -12135,11 +12416,11 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Not unique id (%1)</source>
<translation type="unfinished"></translation>
<translation>Не уникальный идентификатор (%1)</translation>
</message>
<message>
<source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation>
<translation>Этот идентификатор (%1) не является уникальным.</translation>
</message>
<message>
<source>Couldn&apos;t get version information.</source>
@ -12174,7 +12455,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation>
<translation>Этот идентификатор (%1) не является уникальным.</translation>
</message>
<message>
<source>Add to group</source>
@ -12212,7 +12493,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Result is infinite</source>
<translation type="unfinished"></translation>
<translation>Результат бесконечен</translation>
</message>
<message>
<source>Result is NaN</source>
@ -12706,14 +12987,30 @@ Do you want to save your changes?</source>
<name>VPatternRecipe</name>
<message>
<source>Invalid tag %1</source>
<translation type="unfinished"></translation>
<translation>Неправильная категория %1</translation>
</message>
<message>
<source>Can&apos;t find element by id &apos;%1&apos;</source>
<translation type="unfinished"></translation>
<translation>Не удается найти элемент с идентификатором &apos;%1&apos;</translation>
</message>
<message>
<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>
</message>
</context>
@ -12758,7 +13055,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Cannot open the watermark image.</source>
<translation type="unfinished"></translation>
<translation>Не удается открыть изображение водяного знака.</translation>
</message>
</context>
<context>
@ -13033,6 +13330,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation>Исходная точка</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Отразить объект по оси</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13044,6 +13345,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation>Вторая точка линии</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13138,6 +13443,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation>Исходная точка вращения</translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13738,6 +14047,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation>Угол вращения</translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -13811,7 +14124,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation>
<translation>Этот идентификатор (%1) не является уникальным.</translation>
</message>
<message>
<source>Tool was used after deleting.</source>
@ -13852,7 +14165,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>This id (%1) is not unique.</source>
<translation type="unfinished"></translation>
<translation>Этот идентификатор (%1) не является уникальным.</translation>
</message>
</context>
<context>
@ -15242,6 +15555,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation>ВращениеЭлДуга_</translation>
</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>
<name>VVITConverter</name>
@ -15303,6 +15801,18 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation>Скрыть не в раскладке</translation>
</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>
<name>VWidgetGroups</name>
@ -15312,7 +15822,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Rename</source>
<translation>Переименовать</translation>
<translation type="vanished">Переименовать</translation>
</message>
<message>
<source>Delete</source>
@ -15334,6 +15844,26 @@ Do you want to save your changes?</source>
<source>Show All</source>
<translation>Показать все</translation>
</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>
<name>Valentina</name>
@ -15359,7 +15889,7 @@ Do you want to save your changes?</source>
</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>
<translation type="unfinished"></translation>
<translation>&lt;b&gt;Контур кривой&lt;/b&gt;: выберите семь или более точек, &lt;b&gt;%1&lt;/b&gt; - завершить создание</translation>
</message>
</context>
<context>
@ -15452,7 +15982,7 @@ Do you want to save your changes?</source>
</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>
<translation type="unfinished"></translation>
<translation>&lt;b&gt;Контур кривой&lt;/b&gt;: выберите три или более точек, &lt;b&gt;%1&lt;/b&gt; - завершить создание</translation>
</message>
<message>
<source>Use &lt;b&gt;%1&lt;/b&gt; for sticking angle!</source>

View File

@ -50,6 +50,13 @@
<translation type="vanished">додати об&apos;єднання деталей</translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -2447,6 +2454,34 @@
<source>Flipping by axis</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>Імя:</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>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</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>Імя:</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>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Унікальне ім&apos;я лекала</translation>
<translation type="vanished">Унікальне ім&apos;я лекала</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -3048,6 +3123,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -3315,10 +3433,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -3347,6 +3457,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -3759,6 +3882,34 @@ Apply settings anyway?</source>
<source>Center point</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>Імя:</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>
<name>DialogNewMeasurements</name>
@ -4700,10 +4851,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>Довжина:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>Імя:</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>
<name>DialogSaveLAyout</name>
@ -5536,6 +5707,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -9561,6 +9748,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -10684,10 +10878,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation>Мастер формул</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation>Значення</translation>
@ -11225,6 +11415,25 @@ Do you want to save your changes?</source>
<source>Invalid version. Maximum supported format version is %1</source>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -11313,6 +11522,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">Довжина</translation>
</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>
<name>VAbstractPattern</name>
@ -11484,6 +11705,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -11986,6 +12222,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -12079,7 +12335,7 @@ Do you want to save your changes?</source>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Не можу відкрити файл схеми %1:\n%2.</translation>
<translation type="vanished">Не можу відкрити файл схеми %1:\n%2.</translation>
</message>
<message>
<source>Could not load schema file.</source>
@ -12087,7 +12343,7 @@ Do you want to save your changes?</source>
</message>
<message>
<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>
<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>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Не вдалося завантажити файл схеми &apos;%1&apos;.</translation>
<translation type="vanished">Не вдалося завантажити файл схеми &apos;%1&apos;.</translation>
</message>
<message>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -13025,6 +13289,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation>Відзеркалити по вісі</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13304,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished">Друга точка лінії</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13130,6 +13402,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13730,6 +14006,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15229,6 +15509,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VVITConverter</name>
@ -15290,6 +15755,18 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
@ -15299,7 +15776,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Rename</source>
<translation>Перейменувати</translation>
<translation type="vanished">Перейменувати</translation>
</message>
<message>
<source>Delete</source>
@ -15321,6 +15798,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -50,6 +50,13 @@
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>ChangeGroupOptions</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChangeGroupVisibility</name>
<message>
@ -1820,6 +1827,34 @@
<source>Flipping by axis</source>
<translation type="unfinished"></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>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>
<name>DialogFlippingByLine</name>
@ -1855,6 +1890,34 @@
<source>Flipping by line</source>
<translation type="unfinished"></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>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>
<name>DialogGroup</name>
@ -1866,10 +1929,6 @@
<source>Group name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unique pattern piece name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Choose group name</source>
<translation type="unfinished"></translation>
@ -1878,6 +1937,18 @@
<source>New group</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>
<name>DialogHeight</name>
@ -2329,6 +2400,49 @@
<translation type="unfinished"></translation>
</message>
</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>
<name>DialogLayoutSettings</name>
<message>
@ -2501,10 +2615,6 @@ Apply settings anyway?</source>
<source>Time given for the algorithm to find best layout.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> min</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Efficiency:</source>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Manual priority</source>
<translation type="unfinished"></translation>
@ -2533,6 +2639,19 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</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>
<name>DialogLine</name>
@ -2909,6 +3028,34 @@ Apply settings anyway?</source>
<source>Center point</source>
<translation type="unfinished"></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>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>
<name>DialogNewMeasurements</name>
@ -3615,10 +3762,6 @@ Apply settings anyway?</source>
<source>Length:</source>
<translation>:</translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>U mark</source>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -4277,6 +4444,22 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSaveLayout</name>
@ -7606,6 +7789,13 @@ This option will take an affect after restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -8578,10 +8768,6 @@ Do you want to save your changes?</source>
<source>Formula wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>=</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>VAbstractCubicBezierPath</name>
@ -9104,6 +9308,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished"></translation>
</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>
<name>VAbstractPattern</name>
@ -9271,6 +9487,21 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>VCommandLine</name>
<message>
@ -9649,6 +9880,26 @@ Do you want to save your changes?</source>
<source>Auto crop unused width (export mode).</source>
<translation type="unfinished"></translation>
</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>
<name>VCommonSettings</name>
@ -9722,15 +9973,6 @@ Do you want to save your changes?</source>
%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>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
@ -9739,10 +9981,6 @@ Do you want to save your changes?</source>
<source>Couldn&apos;t get node</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
<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>
<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>
</message>
</context>
<context>
<name>VPiece</name>
@ -10549,6 +10795,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -10560,6 +10810,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -10654,6 +10908,10 @@ Do you want to save your changes?</source>
<source>Rotation origin point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -11158,6 +11416,10 @@ Do you want to save your changes?</source>
<source>Rotation angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -12543,6 +12805,191 @@ Do you want to save your changes?</source>
<comment>Left symbol _ in the name</comment>
<translation type="unfinished"></translation>
</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>
<name>VWidgetDetails</name>
@ -12582,13 +13029,21 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation type="unfinished"></translation>
</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>
<name>VWidgetGroups</name>
<message>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
@ -12609,6 +13064,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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>
<name>Valentina</name>

View File

@ -172,6 +172,10 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
vStdErr() << QApplication::translate("vNoisyHandler", "WARNING:") << logMsg << "\n";
break;
case QtCriticalMsg:
if (isPatternMessage)
{
qApp->PostPatternMessage(logMsg, type);
}
debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line)
.arg(context.function, context.category, logMsg);
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.SetUnitePages(IsOptionSet(LONG_OPTION_UNITE));
diag.SetSaveLength(IsOptionSet(LONG_OPTION_SAVELENGTH));
diag.SetPreferOneSheetSolution(IsOptionSet(LONG_OPTION_PREFER_ONE_SHEET_SOLUTION));
diag.SetGroup(OptGroup());
if (IsOptionSet(LONG_OPTION_IGNORE_MARGINS))
@ -408,6 +409,28 @@ bool VCommandLine::IsCSVWithHeader() const
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
{
@ -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 "
"used value from default printer. Or 0 if none printers was found."),
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,
translate("VCommandLine", "Order detail to follow grainline direction (export mode).")},
@ -678,6 +707,8 @@ void VCommandLine::InitCommandLineOptions()
{{SINGLE_OPTION_UNITE, LONG_OPTION_UNITE},
translate("VCommandLine", "Unite pages if possible (export mode). Maximum value limited by QImage that "
"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},
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 IsCSVWithHeader() const;
qreal ExportXScale() const;
qreal ExportYScale() const;
//@brief returns the piece name regex or empty string if not set
QString OptExportSuchDetails() const;

View File

@ -40,7 +40,10 @@
#include "../vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h"
#include "../xml/vpattern.h"
#include "../vmisc/diagnostic.h"
#include <QDebug>
#include <QtConcurrent>
#include <functional>
//---------------------------------------------------------------------------------------------------------------------
/**
@ -165,26 +168,30 @@ void DialogHistory::FillTable()
qint32 currentRow = -1;
qint32 count = 0;
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);
const QString historyRecord = Record(tool);
if (not historyRecord.isEmpty())
return Record(tool);
};
QVector<HistoryRecord> historyRecords = QtConcurrent::blockingMapped(history, CreateRecord);
for (auto &record : historyRecords)
{
if (not record.description.isEmpty())
{
currentRow++;
{
QTableWidgetItem *item = new QTableWidgetItem(QString());
item->setTextAlignment(Qt::AlignHCenter);
item->setData(Qt::UserRole, tool.getId());
item->setData(Qt::UserRole, record.id);
item->setFlags(item->flags() ^ Qt::ItemIsEditable);
ui->tableWidget->setItem(currentRow, 0, item);
}
QTableWidgetItem *item = new QTableWidgetItem(historyRecord);
QFont font = item->font();
font.setBold(true);
item->setFont(font);
QTableWidgetItem *item = new QTableWidgetItem(record.description);
item->setFont(QFont("Times", 12, QFont::Bold));
item->setFlags(item->flags() ^ Qt::ItemIsEditable);
ui->tableWidget->setItem(currentRow, 1, item);
++count;
@ -211,16 +218,20 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
* @param tool record data
* @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
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)
{
qDebug()<<"Can't find element by id"<<Q_FUNC_INFO;
return QString();
qDebug()<<"Can't find element by id" << record.id << Q_FUNC_INFO;
return record;
}
try
{
@ -238,110 +249,130 @@ QString DialogHistory::Record(const VToolRecord &tool)
Q_UNREACHABLE(); //-V501
break;
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:
return tr("%1_%2 - Line from point %1 to point %2")
.arg(PointName(AttrUInt(domElem, AttrBasePoint)), PointName(tool.getId()));
record.description = tr("%1_%2 - Line from point %1 to point %2")
.arg(PointName(AttrUInt(domElem, AttrBasePoint)), PointName(tool.getId()));
return record;
case Tool::Line:
return tr("%1_%2 - Line from point %1 to point %2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)));
record.description = tr("%1_%2 - Line from point %1 to point %2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)));
return record;
case Tool::AlongLine:
return tr("%3 - Point along line %1_%2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId()));
record.description = tr("%3 - Point along line %1_%2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId()));
return record;
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:
return tr("%3 - normal to line %1_%2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId()));
record.description = tr("%3 - normal to line %1_%2")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)), PointName(tool.getId()));
return record;
case Tool::Bisector:
return tr("%4 - bisector of angle %1_%2_%3")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)),
PointName(AttrUInt(domElem, AttrThirdPoint)), PointName(tool.getId()));
record.description = tr("%4 - bisector of angle %1_%2_%3")
.arg(PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)),
PointName(AttrUInt(domElem, AttrThirdPoint)), PointName(tool.getId()));
return record;
case Tool::LineIntersect:
return tr("%5 - intersection of lines %1_%2 and %3_%4")
.arg(PointName(AttrUInt(domElem, AttrP1Line1)),
PointName(AttrUInt(domElem, AttrP2Line1)),
PointName(AttrUInt(domElem, AttrP1Line2)),
PointName(AttrUInt(domElem, AttrP2Line2)),
PointName(tool.getId()));
record.description = tr("%5 - intersection of lines %1_%2 and %3_%4")
.arg(PointName(AttrUInt(domElem, AttrP1Line1)),
PointName(AttrUInt(domElem, AttrP2Line1)),
PointName(AttrUInt(domElem, AttrP1Line2)),
PointName(AttrUInt(domElem, AttrP2Line2)),
PointName(tool.getId()));
return record;
case Tool::Spline:
{
const QSharedPointer<VSpline> spl = data->GeometricObject<VSpline>(tool.getId());
SCASSERT(not spl.isNull())
return spl->NameForHistory(tr("Curve"));
record.description = spl->NameForHistory(tr("Curve"));
return record;
}
case Tool::CubicBezier:
{
const QSharedPointer<VCubicBezier> spl = data->GeometricObject<VCubicBezier>(tool.getId());
SCASSERT(not spl.isNull())
return spl->NameForHistory(tr("Cubic bezier curve"));
record.description = spl->NameForHistory(tr("Cubic bezier curve"));
return record;
}
case Tool::Arc:
{
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId());
SCASSERT(not arc.isNull())
return arc->NameForHistory(tr("Arc"));
record.description = arc->NameForHistory(tr("Arc"));
return record;
}
case Tool::ArcWithLength:
{
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(tool.getId());
SCASSERT(not arc.isNull())
return tr("%1 with length %2")
.arg(arc->NameForHistory(tr("Arc")))
.arg(arc->GetLength());
record.description = tr("%1 with length %2")
.arg(arc->NameForHistory(tr("Arc")))
.arg(arc->GetLength());
return record;
}
case Tool::SplinePath:
{
const QSharedPointer<VSplinePath> splPath = data->GeometricObject<VSplinePath>(tool.getId());
SCASSERT(not splPath.isNull())
return splPath->NameForHistory(tr("Spline path"));
record.description = splPath->NameForHistory(tr("Spline path"));
return record;
}
case Tool::CubicBezierPath:
{
const QSharedPointer<VCubicBezierPath> splPath = data->GeometricObject<VCubicBezierPath>(tool.getId());
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:
return tr("%4 - point of contact of arc with the center in point %1 and line %2_%3")
.arg(PointName(AttrUInt(domElem, AttrCenter)),
PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)),
PointName(tool.getId()));
record.description = tr("%4 - point of contact of arc with the center in point %1 and line %2_%3")
.arg(PointName(AttrUInt(domElem, AttrCenter)),
PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)),
PointName(tool.getId()));
return record;
case Tool::Height:
return tr("Point of perpendicular from point %1 to line %2_%3")
.arg(PointName(AttrUInt(domElem, AttrBasePoint)),
PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)));
record.description = tr("Point of perpendicular from point %1 to line %2_%3")
.arg(PointName(AttrUInt(domElem, AttrBasePoint)),
PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)));
return record;
case Tool::Triangle:
return tr("Triangle: axis %1_%2, points %3 and %4")
.arg(PointName(AttrUInt(domElem, AttrAxisP1)),
PointName(AttrUInt(domElem, AttrAxisP2)),
PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)));
record.description = tr("Triangle: axis %1_%2, points %3 and %4")
.arg(PointName(AttrUInt(domElem, AttrAxisP1)),
PointName(AttrUInt(domElem, AttrAxisP2)),
PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)));
return record;
case Tool::PointOfIntersection:
return tr("%1 - point of intersection %2 and %3")
.arg(PointName(tool.getId()),
PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)));
record.description = tr("%1 - point of intersection %2 and %3")
.arg(PointName(tool.getId()),
PointName(AttrUInt(domElem, AttrFirstPoint)),
PointName(AttrUInt(domElem, AttrSecondPoint)));
return record;
case Tool::CutArc:
{
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(AttrUInt(domElem, AttrArc));
SCASSERT(not arc.isNull())
return tr("%1 - cut %2")
.arg(PointName(tool.getId()), arc->NameForHistory(tr("arc")));
record.description = tr("%1 - cut %2")
.arg(PointName(tool.getId()), arc->NameForHistory(tr("arc")));
return record;
}
case Tool::CutSpline:
{
const quint32 splineId = AttrUInt(domElem, VToolCutSpline::AttrSpline);
const QSharedPointer<VAbstractCubicBezier> spl = data->GeometricObject<VAbstractCubicBezier>(splineId);
SCASSERT(not spl.isNull())
return tr("%1 - cut %2")
.arg(PointName(tool.getId()), spl->NameForHistory(tr("curve")));
record.description = tr("%1 - cut %2")
.arg(PointName(tool.getId()), spl->NameForHistory(tr("curve")));
return record;
}
case Tool::CutSplinePath:
{
@ -349,56 +380,71 @@ QString DialogHistory::Record(const VToolRecord &tool)
const QSharedPointer<VAbstractCubicBezierPath> splPath =
data->GeometricObject<VAbstractCubicBezierPath>(splinePathId);
SCASSERT(not splPath.isNull())
return tr("%1 - cut %2")
.arg(PointName(tool.getId()), splPath->NameForHistory(tr("curve path")));
record.description = tr("%1 - cut %2")
.arg(PointName(tool.getId()), splPath->NameForHistory(tr("curve path")));
return record;
}
case Tool::LineIntersectAxis:
return tr("%1 - point of intersection line %2_%3 and axis through point %4")
.arg(PointName(tool.getId()),
PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)),
PointName(AttrUInt(domElem, AttrBasePoint)));
record.description = tr("%1 - point of intersection line %2_%3 and axis through point %4")
.arg(PointName(tool.getId()),
PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)),
PointName(AttrUInt(domElem, AttrBasePoint)));
return record;
case Tool::CurveIntersectAxis:
return tr("%1 - point of intersection curve and axis through point %2")
.arg(PointName(tool.getId()), PointName(AttrUInt(domElem, AttrBasePoint)));
record.description = tr("%1 - point of intersection curve and axis through point %2")
.arg(PointName(tool.getId()), PointName(AttrUInt(domElem, AttrBasePoint)));
return record;
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:
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:
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:
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:
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:
return tr("Correction the dart %1_%2_%3")
.arg(PointName(AttrUInt(domElem, AttrDartP1)),
PointName(AttrUInt(domElem, AttrDartP2)),
PointName(AttrUInt(domElem, AttrDartP2)));
record.description = tr("Correction the dart %1_%2_%3")
.arg(PointName(AttrUInt(domElem, AttrDartP1)),
PointName(AttrUInt(domElem, AttrDartP2)),
PointName(AttrUInt(domElem, AttrDartP2)));
return record;
case Tool::EllipticalArc:
{
const QSharedPointer<VEllipticalArc> elArc = data->GeometricObject<VEllipticalArc>(tool.getId());
SCASSERT(not elArc.isNull())
return tr("%1 with length %2")
.arg(elArc->NameForHistory(tr("Elliptical arc")))
.arg(elArc->GetLength());
record.description = tr("%1 with length %2")
.arg(elArc->NameForHistory(tr("Elliptical arc")))
.arg(elArc->GetLength());
return record;
}
case Tool::Rotation:
return tr("Rotate objects around point %1. Suffix '%2'")
.arg(PointName(AttrUInt(domElem, AttrCenter)),
doc->GetParametrString(domElem, AttrSuffix, QString()));
record.description = tr("Rotate objects around point %1. Suffix '%2'")
.arg(PointName(AttrUInt(domElem, AttrCenter)),
doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
case Tool::FlippingByLine:
return tr("Flipping by line %1_%2. Suffix '%3'")
.arg(PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)),
doc->GetParametrString(domElem, AttrSuffix, QString()));
record.description = tr("Flipping by line %1_%2. Suffix '%3'")
.arg(PointName(AttrUInt(domElem, AttrP1Line)),
PointName(AttrUInt(domElem, AttrP2Line)),
doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
case Tool::FlippingByAxis:
return tr("Flipping by axis through %1 point. Suffix '%2'")
.arg(PointName(AttrUInt(domElem, AttrCenter)),
doc->GetParametrString(domElem, AttrSuffix, QString()));
record.description = tr("Flipping by axis through %1 point. Suffix '%2'")
.arg(PointName(AttrUInt(domElem, AttrCenter)),
doc->GetParametrString(domElem, AttrSuffix, QString()));
return record;
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
//piece, we need add record about details and nodes, but don't show them.
case Tool::Piece:
@ -414,16 +460,16 @@ QString DialogHistory::Record(const VToolRecord &tool)
case Tool::PlaceLabel:
case Tool::InsertNode:
case Tool::DuplicateDetail:
return QString();
return record;
}
}
catch (const VExceptionBadId &e)
{
qDebug()<<e.ErrorMessage()<<Q_FUNC_INFO;
return QString();
return record;
}
qDebug()<<"Can't create history record for the tool.";
return QString();
qDebug()<<"Can't create history record for the tool" << record.id;
return record;
}
QT_WARNING_POP
@ -465,13 +511,13 @@ void DialogHistory::ShowPoint()
* @param pointId point if in data.
* @return point name.
*/
QString DialogHistory::PointName(quint32 pointId)
QString DialogHistory::PointName(quint32 pointId) const
{
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'));
}

View File

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

View File

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

View File

@ -111,10 +111,10 @@ private:
void FillIncrementsTable(QTableWidget *table,
const QMap<QString, QSharedPointer<VIncrement> > &increments,
bool takePreviewCalculations, bool freshCall = false);
bool takePreviewCalculations);
void FillIncrements(bool freshCall = false);
void FillPreviewCalculations(bool freshCall = false);
void FillIncrements();
void FillPreviewCalculations();
void FillLengthsLines();
void FillLengthLinesAngles();
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>
** @date 14 7, 2019
** @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) 2019 Valentina project
** 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
@ -25,31 +25,50 @@
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef CHANGEGROUPVISIBILITY_H
#define CHANGEGROUPVISIBILITY_H
#ifndef DIALOGLAYOUTSCALE_H
#define DIALOGLAYOUTSCALE_H
#include "vundocommand.h"
#include <QDialog>
class ChangeGroupVisibility : public VUndoCommand
namespace Ui
{
class DialogLayoutScale;
}
class DialogLayoutScale : public QDialog
{
Q_OBJECT
public:
ChangeGroupVisibility(VAbstractPattern *doc, vidtype id, bool visible, QUndoCommand *parent = nullptr);
virtual ~ChangeGroupVisibility();
virtual void undo() override;
virtual void redo() override;
signals:
void UpdateGroup(vidtype id, bool visible);
public:
explicit DialogLayoutScale(bool printTiled, QWidget *parent = nullptr);
~DialogLayoutScale();
void SetTiledMargins(QMarginsF margins);
QMarginsF GetTiledMargins() const;
void SetXScale(qreal scale);
qreal GetXScale() const;
void SetYScale(qreal scale);
qreal GetYScale() const;
protected:
virtual void showEvent(QShowEvent *event) override;
private slots:
void Save();
void ToggleScaleConnection();
void HorizontalScaleChanged(double d);
void VerticalScaleChanged(double d);
private:
Q_DISABLE_COPY(ChangeGroupVisibility)
Q_DISABLE_COPY(DialogLayoutScale)
Ui::DialogLayoutScale *ui;
bool isInitialized{false};
bool m_scaleConnected{true};
bool m_oldVisibility{true};
bool m_newVisibility{true};
const QString m_nameActivDraw{};
void Do(bool visible);
void ReadSettings();
void WriteSettings() const;
};
#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);
}
//---------------------------------------------------------------------------------------------------------------------
bool DialogLayoutSettings::IsPreferOneSheetSolution() const
{
return ui->checkBoxOneSheetSolution->isChecked();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogLayoutSettings::SetPreferOneSheetSolution(bool prefer)
{
ui->checkBoxOneSheetSolution->setChecked(prefer);
}
//---------------------------------------------------------------------------------------------------------------------
bool DialogLayoutSettings::IsUnitePages() const
{
@ -600,6 +612,7 @@ void DialogLayoutSettings::DialogAccepted()
generator->SetAutoCropLength(GetAutoCropLength());
generator->SetAutoCropWidth(GetAutoCropWidth());
generator->SetSaveLength(IsSaveLength());
generator->SetPreferOneSheetSolution(IsPreferOneSheetSolution());
generator->SetUnitePages(IsUnitePages());
generator->SetStripOptimization(IsStripOptimization());
generator->SetMultiplier(GetMultiplier());
@ -695,6 +708,7 @@ void DialogLayoutSettings::RestoreDefaults()
SetNestingTime(VSettings::GetDefNestingTime());
SetEfficiencyCoefficient(VSettings::GetDefEfficiencyCoefficient());
SetNestQuantity(VSettings::GetDefLayoutNestQuantity());
SetPreferOneSheetSolution(VSettings::GetDefLayoutPreferOneSheetSolution());
CorrectMaxFileds();
IgnoreAllFields(ui->checkBoxIgnoreFileds->isChecked());
@ -1019,6 +1033,7 @@ void DialogLayoutSettings::ReadSettings()
SetAutoCropLength(settings->GetLayoutAutoCropLength());
SetAutoCropWidth(settings->GetLayoutAutoCropWidth());
SetSaveLength(settings->GetLayoutSaveLength());
SetPreferOneSheetSolution(settings->GetLayoutPreferOneSheetSolution());
SetUnitePages(settings->GetLayoutUnitePages());
SetFields(settings->GetFields(GetDefPrinterFields()));
SetIgnoreAllFields(settings->GetIgnoreAllFields());
@ -1046,6 +1061,7 @@ void DialogLayoutSettings::WriteSettings() const
settings->SetLayoutAutoCropLength(GetAutoCropLength());
settings->SetLayoutAutoCropWidth(GetAutoCropWidth());
settings->SetLayoutSaveLength(IsSaveLength());
settings->SetLayoutPreferOneSheetSolution(IsPreferOneSheetSolution());
settings->SetLayoutUnitePages(IsUnitePages());
settings->SetFields(GetFields());
settings->SetIgnoreAllFields(IsIgnoreAllFields());

View File

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

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>601</width>
<height>600</height>
<height>645</height>
</rect>
</property>
<property name="windowTitle">
@ -384,7 +384,7 @@
<string>Time given for the algorithm to find best layout.</string>
</property>
<property name="suffix">
<string> min</string>
<string comment="minutes"> min</string>
</property>
<property name="minimum">
<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>
</property>
<property name="suffix">
<string>%</string>
<string notr="true">%</string>
</property>
<property name="decimals">
<number>1</number>
@ -448,6 +448,16 @@
</property>
</widget>
</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>
<widget class="Line" name="line_7">
<property name="orientation">

View File

@ -36,5 +36,6 @@
#include "dialogaboutapp.h"
#include "dialogpreferences.h"
#include "dialogfinalmeasurements.h"
#include "dialoglayoutscale.h"
#endif // DIALOGS_H

View File

@ -2,6 +2,7 @@
# This need for corect working file translations.pro
HEADERS += \
$$PWD/dialoglayoutscale.h \
$$PWD/dialogs.h \
$$PWD/dialogincrements.h \
$$PWD/dialoghistory.h \
@ -26,6 +27,7 @@ HEADERS += \
SOURCES += \
$$PWD/dialogincrements.cpp \
$$PWD/dialoghistory.cpp \
$$PWD/dialoglayoutscale.cpp \
$$PWD/dialogpatternproperties.cpp \
$$PWD/dialognewpattern.cpp \
$$PWD/dialogaboutapp.cpp \
@ -47,6 +49,7 @@ SOURCES += \
FORMS += \
$$PWD/dialogincrements.ui \
$$PWD/dialoghistory.ui \
$$PWD/dialoglayoutscale.ui \
$$PWD/dialogpatternproperties.ui \
$$PWD/dialognewpattern.ui \
$$PWD/dialogaboutapp.ui \

View File

@ -151,26 +151,15 @@ DialogSaveLayout::DialogSaveLayout(int count, Draw mode, const QString &fileName
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();
// 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.
}
@ -520,6 +509,8 @@ LayoutExportFormats DialogSaveLayout::Format() const
//---------------------------------------------------------------------------------------------------------------------
void DialogSaveLayout::Save()
{
WriteSettings();
for (int i=0; i < count; ++i)
{
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
{
@ -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)
{
@ -810,16 +858,15 @@ QVector<std::pair<QString, LayoutExportFormats> > DialogSaveLayout::InitFormats(
InitFormat(LayoutExportFormats::DXF_AC1021_AAMA);
InitFormat(LayoutExportFormats::DXF_AC1024_AAMA);
InitFormat(LayoutExportFormats::DXF_AC1027_AAMA);
// We will support them anyway
// InitFormat(LayoutExportFormats::DXF_AC1006_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1009_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1012_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1014_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1015_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1018_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1021_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1024_ASTM);
// InitFormat(LayoutExportFormats::DXF_AC1027_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1006_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1009_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1012_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1014_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1015_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1018_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1021_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1024_ASTM);
InitFormat(LayoutExportFormats::DXF_AC1027_ASTM);
InitFormat(LayoutExportFormats::PDFTiled);
// InitFormat(LayoutExportFormats::NC);

View File

@ -86,6 +86,12 @@ public:
void SetTiledPageOrientation(PageOrientation orientation);
PageOrientation GetTiledPageOrientation() const;
void SetXScale(qreal scale);
qreal GetXScale() const;
void SetYScale(qreal scale);
qreal GetYScale() const;
protected:
virtual void showEvent(QShowEvent *event) override;
void InitTemplates(QComboBox *comboBoxTemplates);
@ -94,6 +100,9 @@ private slots:
void Save();
void PathChanged(const QString &text);
void ShowExample();
void ToggleScaleConnection();
void HorizontalScaleChanged(double d);
void VerticalScaleChanged(double d);
private:
Q_DISABLE_COPY(DialogSaveLayout)
Ui::DialogSaveLAyout *ui;
@ -101,6 +110,7 @@ private:
bool isInitialized;
Draw m_mode;
bool m_tiledExportMode;
bool m_scaleConnected{true};
static bool havePdf;
static bool tested;

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>719</width>
<height>314</height>
<width>493</width>
<height>391</height>
</rect>
</property>
<property name="windowTitle">
@ -17,20 +17,20 @@
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
</property>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Path:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Path:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEditPath">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -46,7 +46,7 @@
<item>
<widget class="QPushButton" name="pushButtonBrowse">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -61,44 +61,229 @@
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>File format:</string>
</property>
</widget>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<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 row="1" column="1">
<widget class="QComboBox" name="comboBoxFormat">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QGroupBox" name="groupBoxFormatOptions">
<property name="title">
<string>Options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="checkBoxBinaryDXF">
<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 row="2" column="1">
<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">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QGroupBox" name="groupBoxMargins">
@ -148,6 +333,9 @@
<property name="suffix">
<string>cm</string>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="0" column="1">
@ -164,6 +352,9 @@
<property name="suffix">
<string>cm</string>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
</layout>
@ -204,6 +395,9 @@
<property name="suffix">
<string>cm</string>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
@ -224,6 +418,9 @@
<property name="suffix">
<string>cm</string>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
</layout>
@ -239,79 +436,75 @@
<property name="title">
<string>Paper format</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QFormLayout" name="formLayout_4">
<item row="1" column="0">
<widget class="QLabel" name="labelTemplates">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="labelTemplates">
<property name="text">
<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">
<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>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBoxTemplates"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<item>
<widget class="QToolButton" name="toolButtonLandscape">
<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>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QToolButton" name="toolButtonPortrait">
<property name="text">
<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>
</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>
<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>
@ -320,19 +513,28 @@
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>File name:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<item>
<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>
<widget class="QLineEdit" name="lineEditFileName">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -347,6 +549,12 @@
</item>
<item>
<widget class="QLabel" name="labelExample">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>130</width>
@ -363,7 +571,7 @@
</item>
</layout>
</item>
<item row="6" column="0" colspan="2">
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>

View File

@ -263,12 +263,44 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
QAction *actionSelectAll = menu->addAction(tr("Select all"));
QAction *actionSelectNone = menu->addAction(tr("Select none"));
QAction *actionSeparator = new QAction(this);
actionSeparator->setSeparator(true);
menu->addAction(actionSeparator);
menu->addSeparator();
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();
if (allDetails->count() == 0)
{
@ -333,6 +365,23 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
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 "ui_vwidgetgroups.h"
#include "../vtools/dialogs/tools/dialoggroup.h"
#include "../vtools/undocommands/delgroup.h"
#include "../vtools/undocommands/changegroupvisibility.h"
#include "../vtools/undocommands/changemultiplegroupsvisibility.h"
#include "../vtools/undocommands/undogroup.h"
#include "../vpatterndb/vcontainer.h"
#include "../vmisc/compatibility.h"
#include <QCompleter>
#include <QMenu>
#include <QTableWidget>
@ -53,6 +53,7 @@ VWidgetGroups::VWidgetGroups(VAbstractPattern *doc, QWidget *parent)
connect(ui->tableWidget, &QTableWidget::cellClicked, this, &VWidgetGroups::GroupVisibilityChanged);
connect(ui->tableWidget, &QTableWidget::cellChanged, this, &VWidgetGroups::RenameGroup);
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);
}
//---------------------------------------------------------------------------------------------------------------------
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
{
@ -150,9 +177,9 @@ void VWidgetGroups::RenameGroup(int row, int column)
}
const quint32 id = ui->tableWidget->item(row, 0)->data(Qt::UserRole).toUInt();
doc->SetGroupName(id, ui->tableWidget->item(row, column)->text());
UpdateGroups();
::RenameGroup *renameGroup = new ::RenameGroup(doc, id, ui->tableWidget->item(row, column)->text());
connect(renameGroup, &RenameGroup::UpdateGroups, this, &VWidgetGroups::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/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"));
menu->addSeparator();
QAction *actionHideAll = menu->addAction(tr("Hide All"));
@ -201,19 +228,22 @@ void VWidgetGroups::CtxMenu(const QPoint &pos)
{
SetGroupVisibility(id, not doc->GetGroupVisibility(id));
}
else if (selectedAction == actionRename)
else if (selectedAction == actionPreferences)
{
QScopedPointer<VContainer> fackeContainer(new VContainer(qApp->TrVars(), qApp->patternUnitP(),
VContainer::UniqueNamespace()));
QScopedPointer<DialogGroup> dialog(new DialogGroup(fackeContainer.data(), NULL_ID, this));
dialog->SetName(doc->GetGroupName(id));
dialog->SetTags(doc->GetGroupTags(id));
dialog->SetGroupCategories(doc->GetGroupCategories());
const int result = dialog->exec();
if (result == QDialog::Accepted)
{
doc->SetGroupName(id, dialog->GetName());
item = ui->tableWidget->item(row, 1);
item->setText(dialog->GetName());
ChangeGroupOptions *changeGroupOptions = new ChangeGroupOptions(doc, id, dialog->GetName(),
dialog->GetTags());
connect(changeGroupOptions, &ChangeGroupOptions::UpdateGroups, this, &VWidgetGroups::UpdateGroups);
qApp->getUndoStack()->push(changeGroupOptions);
}
}
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->clear();
@ -291,12 +325,12 @@ void VWidgetGroups::FillTable(const QMap<quint32, QPair<QString, bool> > &groups
while (i != groups.constEnd())
{
++currentRow;
const QPair<QString, bool> data = i.value();
const VGroupData data = i.value();
QTableWidgetItem *item = new QTableWidgetItem();
item->setTextAlignment(Qt::AlignHCenter);
(data.second) ? item->setIcon(QIcon("://icon/16x16/open_eye.png"))
: item->setIcon(QIcon("://icon/16x16/closed_eye.png"));
(data.visible) ? item->setIcon(QIcon("://icon/16x16/open_eye.png"))
: item->setIcon(QIcon("://icon/16x16/closed_eye.png"));
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);
item = new QTableWidgetItem(data.first);
item = new QTableWidgetItem(data.name);
item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
item->setToolTip(tr("Categories: %1.").arg(data.tags.join(", ")));
if(doc->GroupIsEmpty(i.key()))
{

View File

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

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>371</width>
<height>279</height>
<height>438</height>
</rect>
</property>
<property name="windowTitle">
@ -18,6 +18,30 @@
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
</property>
<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>
<widget class="QTableWidget" name="tableWidget">
<property name="alternatingRowColors">
@ -47,16 +71,23 @@
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>10</number>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>false</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>VCompleterLineEdit</class>
<extends>QLineEdit</extends>
<header>vlineedit.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="../../../libs/vmisc/share/resources/icon.qrc"/>
</resources>

View File

@ -58,7 +58,7 @@
#include "tools/vtooluniondetails.h"
#include "dialogs/dialogs.h"
#include "dialogs/vwidgetgroups.h"
#include "../vtools/undocommands/addgroup.h"
#include "../vtools/undocommands/undogroup.h"
#include "dialogs/vwidgetdetails.h"
#include "../vpatterndb/vpiecepath.h"
#include "../qmuparser/qmuparsererror.h"
@ -648,6 +648,12 @@ void MainWindow::SetToolButton(bool checked, Tool t, const QString &cursor, cons
case Tool::PlaceLabel:
dialogTool->SetPiecesList(doc->GetActivePPPieces());
break;
case Tool::Rotation:
case Tool::Move:
case Tool::FlippingByAxis:
case Tool::FlippingByLine:
dialogTool->SetGroupCategories(doc->GetGroupCategories());
break;
default:
break;
}
@ -1241,7 +1247,8 @@ void MainWindow::ClosedDialogGroup(int result)
{
const QPointer<DialogGroup> dialog = qobject_cast<DialogGroup *>(dialogTool);
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())
{
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->SetBinaryDXFFormat(expParams->IsBinaryDXF());
m_dialogSaveLayout->SetTextAsPaths(expParams->IsTextAsPaths());
m_dialogSaveLayout->SetXScale(expParams->ExportXScale());
m_dialogSaveLayout->SetYScale(expParams->ExportYScale());
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->SelectFormat(static_cast<LayoutExportFormats>(expParams->OptExportType()));
m_dialogSaveLayout->SetBinaryDXFFormat(expParams->IsBinaryDXF());
m_dialogSaveLayout->SetXScale(expParams->ExportXScale());
m_dialogSaveLayout->SetYScale(expParams->ExportYScale());
if (static_cast<LayoutExportFormats>(expParams->OptExportType()) == LayoutExportFormats::PDFTiled)
{

View File

@ -41,6 +41,7 @@
#include "../vlayout/vlayoutgenerator.h"
#include "dialogs/dialoglayoutprogress.h"
#include "dialogs/dialogsavelayout.h"
#include "dialogs/dialoglayoutscale.h"
#include "../vlayout/vposter.h"
#include "../vpatterndb/floatItemData/vpiecelabeldata.h"
#include "../vpatterndb/floatItemData/vpatternlabeldata.h"
@ -312,7 +313,7 @@ bool MainWindowsNoGUI::GenerateLayout(VLayoutGenerator& lGenerator)
if (lGenerator.PapersCount() <= papersCount)
{
const qreal layoutEfficiency = lGenerator.LayoutEfficiency();
if (efficiency < layoutEfficiency)
if (efficiency < layoutEfficiency || lGenerator.PapersCount() < papersCount)
{
efficiency = layoutEfficiency;
if (VApplication::IsGUIMode())
@ -403,7 +404,10 @@ bool MainWindowsNoGUI::GenerateLayout(VLayoutGenerator& lGenerator)
|| (nestingState == LayoutErrors::NoError && not qFuzzyIsNull(lGenerator.GetEfficiencyCoefficient())
&& efficiency >= lGenerator.GetEfficiencyCoefficient()))
{
break;
if (not lGenerator.IsPreferOneSheetSolution() || lGenerator.PapersCount() == 1)
{
break;
}
}
if (IsTimeout())
@ -510,7 +514,16 @@ void MainWindowsNoGUI::ExportData(const QVector<VLayoutPiece> &listDetails)
format == LayoutExportFormats::DXF_AC1018_AAMA ||
format == LayoutExportFormats::DXF_AC1021_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)
{
@ -665,15 +678,31 @@ void MainWindowsNoGUI::ExportApparelLayout(const QVector<VLayoutPiece> &details,
switch (format)
{
case LayoutExportFormats::DXF_AC1006_ASTM:
ASTMDxfFile(name, DRW::AC1006, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1009_ASTM:
ASTMDxfFile(name, DRW::AC1009, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1012_ASTM:
ASTMDxfFile(name, DRW::AC1012, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1014_ASTM:
ASTMDxfFile(name, DRW::AC1014, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1015_ASTM:
ASTMDxfFile(name, DRW::AC1015, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1018_ASTM:
ASTMDxfFile(name, DRW::AC1018, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1021_ASTM:
ASTMDxfFile(name, DRW::AC1021, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1024_ASTM:
ASTMDxfFile(name, DRW::AC1024, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1027_ASTM:
Q_UNREACHABLE(); // For now not supported
ASTMDxfFile(name, DRW::AC1027, m_dialogSaveLayout->IsBinaryDXFFormat(), size, details);
break;
case LayoutExportFormats::DXF_AC1006_AAMA:
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));
const double xscale = printer->pageRect().width() / printerPageRect.width();
const double yscale = printer->pageRect().height() / printerPageRect.height();
const double scale = qMin(xscale, yscale);
QPainter painter;
if (not painter.begin(printer))
@ -844,7 +872,9 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
auto *paper = qgraphicsitem_cast<QGraphicsRectItem *>(papers.at(i));
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;
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));
y = qFloor(ToPixel(printerMargins.top(),Unit::Mm));
}
@ -958,7 +990,7 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
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);
@ -1187,10 +1219,10 @@ void MainWindowsNoGUI::SvgFile(const QString &name, QGraphicsRectItem *paper, QG
const QRectF r = paper->rect();
QSvgGenerator generator;
generator.setFileName(name);
generator.setSize(QSize(qFloor(r.width() + margins.left() + margins.right()),
qFloor(r.height() + margins.top() + margins.bottom())));
generator.setViewBox(QRectF(0, 0, r.width() + margins.left() + margins.right(),
r.height() + margins.top() + margins.bottom()));
generator.setSize(QSize(qFloor(r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right()),
qFloor(r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom())));
generator.setViewBox(QRectF(0, 0, r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right(),
r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom()));
generator.setTitle(tr("Pattern"));
generator.setDescription(doc->GetDescription().toHtmlEscaped());
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.setPen(QPen(Qt::black, qApp->Settings()->WidthHairLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
painter.end();
}
@ -1214,8 +1247,8 @@ void MainWindowsNoGUI::PngFile(const QString &name, QGraphicsRectItem *paper, QG
{
const QRectF r = paper->rect();
// Create the image with the exact size of the shrunk scene
QImage image(QSize(qFloor(r.width() + margins.left() + margins.right()),
qFloor(r.height() + margins.top() + margins.bottom())),
QImage image(QSize(qFloor(r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right()),
qFloor(r.height() * m_dialogSaveLayout->GetYScale() + margins.top() + margins.bottom())),
QImage::Format_ARGB32);
image.fill(Qt::white);
QPainter painter(&image);
@ -1223,6 +1256,7 @@ void MainWindowsNoGUI::PngFile(const QString &name, QGraphicsRectItem *paper, QG
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
image.save(name);
}
@ -1245,9 +1279,11 @@ void MainWindowsNoGUI::PdfFile(const QString &name, QGraphicsRectItem *paper, QG
printer.setResolution(static_cast<int>(PrintDPI));
printer.setOrientation(QPrinter::Portrait);
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)),
QPageSize::Millimeter)))
qreal width = FromPixel(r.width() * m_dialogSaveLayout->GetXScale() + margins.left() + margins.right(), Unit::Mm);
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");
}
@ -1272,6 +1308,7 @@ void MainWindowsNoGUI::PdfFile(const QString &name, QGraphicsRectItem *paper, QG
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->Settings()->WidthMainLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
scene->render(&painter, r, r, Qt::IgnoreAspectRatio);
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.");
}
m_xscale = m_dialogSaveLayout->GetXScale();
m_yscale = m_dialogSaveLayout->GetYScale();
printer.setOutputFileName(name);
printer.setResolution(static_cast<int>(PrintDPI));
PrintPages(&printer);
@ -1395,7 +1435,11 @@ void MainWindowsNoGUI::FlatDxfFile(const QString &name, int version, bool binary
PrepareTextForDXF(endStringPlaceholder, details);
VDxfPaintDevice generator;
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.SetVersion(static_cast<DRW::Version>(version));
generator.SetBinaryFormat(binary);
@ -1404,6 +1448,7 @@ void MainWindowsNoGUI::FlatDxfFile(const QString &name, int version, bool binary
QPainter painter;
if (painter.begin(&generator))
{
painter.scale(m_dialogSaveLayout->GetXScale(), m_dialogSaveLayout->GetYScale());
scene->render(&painter, paper->rect(), paper->rect(), Qt::IgnoreAspectRatio);
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,
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;
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.SetBinaryFormat(binary);
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
@ -1437,6 +1501,17 @@ void MainWindowsNoGUI::PreparePaper(int index) const
shadows.at(index)->setVisible(false);
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);
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;
}
{
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);
printer->setResolution(static_cast<int>(PrintDPI));
// display print preview dialog
QPrintPreviewDialog preview(printer.data());
connect(&preview, &QPrintPreviewDialog::paintRequested, this, &MainWindowsNoGUI::PrintPages);
@ -1573,6 +1670,16 @@ void MainWindowsNoGUI::LayoutPrint()
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);
QPrintDialog dialog(printer.data(), this );
// If only user couldn't change page margins we could use method setMinMax();

View File

@ -162,6 +162,9 @@ private:
QString layoutPrinterName;
qreal m_xscale{1};
qreal m_yscale{1};
static QList<QGraphicsItem *> CreateShadows(const QList<QGraphicsItem *> &papers);
static QList<QGraphicsScene *> CreateScenes(const QList<QGraphicsItem *> &papers,
const QList<QGraphicsItem *> &shadows,
@ -182,6 +185,8 @@ private:
const QList<QList<QGraphicsItem *> > &details)const;
void AAMADxfFile(const QString &name, int version, bool binary, const QSize &size,
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 RestorePaper(int index) const;

View File

@ -3450,6 +3450,22 @@ void VPattern::GarbageCollector(bool commit)
{
modElement.removeChild(modNode);
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.5.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.4.0.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::AttrManualPassmarkLength = QStringLiteral("manualPassmarkLength");
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");
@ -283,6 +284,17 @@ QMap<int, QString> AdjustMaterials(QMap<int, QString> 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);
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::UpdateVisiblityGroups()
{
emit UpdateGroups();
}
//---------------------------------------------------------------------------------------------------------------------
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())
{
return QDomElement();
}
const QString preparedTags = PrepareGroupTags(tags);
QDomElement group = createElement(TagGroup);
SetAttribute(group, AttrId, id);
SetAttribute(group, AttrName, name);
SetAttribute(group, AttrVisible, true);
SetAttributeOrRemoveIf(group, AttrTool, tool, tool == null_id);
SetAttributeOrRemoveIf(group, AttrTags, preparedTags, preparedTags.isEmpty());
auto i = groupData.constBegin();
while (i != groupData.constEnd())
@ -2446,73 +2469,102 @@ QDomElement VAbstractPattern::CreateGroup(quint32 id, const QString &name, const
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 name = tr("New group");
QDomElement groups = CreateGroups();
if (not groups.isNull())
QDomElement group = elementById(id, TagGroup);
if (group.isElement())
{
QDomElement group = elementById(id, TagGroup);
if (group.isElement())
{
name = GetParametrString(group, AttrName, name);
return name;
}
else
{
if (groups.childNodes().isEmpty())
{
QDomNode parent = groups.parentNode();
parent.removeChild(groups);
}
name = GetParametrString(group, AttrName, name);
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)
{
QDomElement groups = CreateGroups();
if (not groups.isNull())
QDomElement group = elementById(id, TagGroup);
if (group.isElement())
{
QDomElement group = elementById(id, TagGroup);
if (group.isElement())
{
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.");
group.setAttribute(AttrName, name);
modified = true;
emit patternChanged(false);
}
}
//---------------------------------------------------------------------------------------------------------------------
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
{
@ -2529,11 +2581,13 @@ QMap<quint32, QPair<QString, bool> > VAbstractPattern::GetGroups()
{
if (group.tagName() == TagGroup)
{
VGroupData groupData;
const quint32 id = GetParametrUInt(group, AttrId, QChar('0'));
const bool visible = GetParametrBool(group, AttrVisible, trueStr);
const QString name = GetParametrString(group, AttrName, tr("New group"));
groupData.visible = GetParametrBool(group, AttrVisible, trueStr);
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 &)
{
return QMap<quint32, QPair<QString, bool> >();
return QMap<quint32, VGroupData>();
}
return data;
@ -2804,3 +2858,22 @@ QString VAbstractPattern::PieceDrawName(quint32 id)
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;
};
struct VGroupData
{
QString name{};
bool visible{true};
QStringList tags{};
};
QT_WARNING_POP
class VAbstractPattern : public VDomDocument
@ -200,16 +207,27 @@ public:
void ParseGroups(const QDomElement &domElement);
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);
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);
QDomElement AddItemToGroup(quint32 toolId, quint32 objectId, quint32 groupId);
QDomElement RemoveItemFromGroup(quint32 toolId, quint32 objectId, quint32 groupId);
bool GroupIsEmpty(quint32 id);
bool GetGroupVisibility(quint32 id);
static QStringList FilterGroupTags(const QString &tags);
QString PieceDrawName(quint32 id);
static const QString TagPattern;
@ -288,6 +306,7 @@ public:
static const QString AttrManualPassmarkLength;
static const QString AttrPassmarkLength;
static const QString AttrOpacity;
static const QString AttrTags;
static const QString AttrAll;
@ -404,7 +423,8 @@ signals:
/**
* @brief UpdateGroups emit if the groups have been updated
*/
void UpdateGroups();
void UpdateGroups();
void UpdateToolTip();
public slots:
virtual void LiteParseTree(const Document &parse)=0;
@ -413,6 +433,7 @@ public slots:
void ClearScene();
void CheckInLayoutList();
void SelectedDetail(quint32 id);
void UpdateVisiblityGroups();
protected:
/** @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)
{
@ -273,16 +273,27 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
if (m_elementIdCache.contains(id))
{
const QDomElement e = m_elementIdCache.value(id);
if (e.parentNode().nodeType() != QDomNode::BaseNode)
{
return e;
}
m_elementIdCache.remove(id);
const QDomElement e = m_elementIdCache.value(id);
if (e.parentNode().nodeType() != QDomNode::BaseNode)
{
if (not tagName.isEmpty())
{
if (e.tagName() == tagName)
{
return e;
}
}
else
{
return e;
}
}
}
// Cached missed
RefreshElementIdCache();
if (updateCache)
{ // Cached missed
RefreshElementIdCache();
}
if (tagName.isEmpty())
{
@ -290,10 +301,8 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
QHash<quint32, QDomElement> tmpCache;
if (VDomDocument::find(tmpCache, this->documentElement(), id))
{
m_elementIdCache = tmpCache;
return m_elementIdCache.value(id);
return tmpCache.value(id);
}
m_elementIdCache = tmpCache;
}
else
{
@ -305,7 +314,6 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName)
{
const quint32 elementId = GetParametrUInt(domElement, AttrId, NULL_ID_STR);
m_elementIdCache.insert(elementId, domElement);
if (elementId == id)
{
return domElement;

View File

@ -96,7 +96,7 @@ public:
explicit VDomDocument(QObject *parent = nullptr);
virtual ~VDomDocument();
QDomElement elementById(quint32 id, const QString &tagName = QString());
QDomElement elementById(quint32 id, const QString &tagName = QString(), bool updateCache=true);
template <typename T>
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::PatternMaxVerStr = QStringLiteral("0.8.6");
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.8.6.xsd");
const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.8.7");
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.8.7.xsd");
//VPatternConverter::PatternMinVer; // <== 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, 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, 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))
@ -481,6 +482,10 @@ void VPatternConverter::ApplyPatches()
ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 6)));
Q_FALLTHROUGH();
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;
default:
InvalidVersion(m_ver);
@ -498,7 +503,7 @@ void VPatternConverter::DowngradeToCurrentMaxVersion()
bool VPatternConverter::IsReadOnly() const
{
// 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.");
// Possibly in future attribute readOnly will change position etc.
@ -1128,6 +1133,16 @@ void VPatternConverter::ToV0_8_6()
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()
{

View File

@ -53,7 +53,7 @@ public:
static const QString PatternMaxVerStr;
static const QString CurrentSchema;
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:
virtual int MinVer() const override;
@ -129,6 +129,7 @@ private:
void ToV0_8_4();
void ToV0_8_5();
void ToV0_8_6();
void ToV0_8_7();
void TagUnitToV0_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){
switch (e->eType) {
case DRW::POINT:
case DRW::POINT:
dxfW->writePoint(static_cast<DRW_Point*>(e));
break;
case DRW::ASTMNOTCH:
dxfW->writeASTMNotch(static_cast<DRW_ASTMNotch*>(e));
break;
case DRW::LINE:
dxfW->writeLine(static_cast<DRW_Line*>(e));
break;
@ -283,6 +286,107 @@ void dx_iface::AddAAMAHeaderData()
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()
{
DRW_Layer defLayer;

View File

@ -124,6 +124,7 @@ public:
void AddDefLayers();
void AddAAMALayers();
void AddAAMAHeaderData();
void AddASTMLayers();
private:
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){
switch (code) {
case 11:

View File

@ -80,6 +80,7 @@ namespace DRW {
VIEWPORT,
// WIPEOUT, //WIPEOUTVARIABLE
XLINE,
ASTMNOTCH, // ASTM NOTCH
UNKNOWN
};
@ -251,6 +252,22 @@ public:
// 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

View File

@ -553,6 +553,15 @@ bool dxfRW::writePoint(DRW_Point *ent) {
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) {
writer->writeString(0, "LINE");
writeEntity(ent);

View File

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

View File

@ -55,6 +55,23 @@
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()
{
@ -570,6 +587,30 @@ void VDxfEngine::setInsunits(const 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_DISABLE_GCC("-Wswitch-default")
@ -623,9 +664,9 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
}
input->AddAAMALayers();
ExportAAMAGlobalText(input, details);
ExportStyleSystemText(input, details);
for(auto &detail : details)
for(auto detail : details)
{
dx_ifaceBlock *detailBlock = new dx_ifaceBlock();
@ -638,12 +679,14 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
detailBlock->name = blockName.toStdString();
detailBlock->layer = '1';
detail.Scale(m_xscale, m_yscale);
ExportAAMAOutline(detailBlock, detail);
ExportAAMADraw(detailBlock, detail);
ExportAAMAIntcut(detailBlock, detail);
ExportAAMANotch(detailBlock, detail);
ExportAAMAGrainline(detailBlock, detail);
ExportAAMAText(detailBlock, detail);
ExportPieceText(detailBlock, detail);
ExportAAMADrill(detailBlock, detail);
input->AddBlock(detailBlock);
@ -661,17 +704,7 @@ bool VDxfEngine::ExportToAAMA(const QVector<VLayoutPiece> &details)
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::ExportAAMAOutline(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail)
{
QVector<QPointF> outline;
if (detail.IsSeamAllowance() && not detail.IsSeamAllowanceBuiltIn())
{
outline = detail.GetMappedSeamAllowancePoints();
}
else
{
outline = detail.GetMappedContourPoints();
}
DRW_Entity *e = AAMAPolygon(outline, QChar('1'), true);
DRW_Entity *e = AAMAPolygon(PieceOutline(detail), QChar('1'), true);
if (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 QPointF startPos = detail.GetPieceTextPosition();
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')));
}
}
//---------------------------------------------------------------------------------------------------------------------
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)
{
@ -783,7 +816,8 @@ void VDxfEngine::ExportAAMAGlobalText(const QSharedPointer<dx_iface> &input, con
{
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')));
}
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)
{

View File

@ -92,6 +92,12 @@ public:
void setMeasurement(const VarMeasurement &var);
void setInsunits(const VarInsunits &var);
qreal GetXScale() const;
void SetXScale(const qreal &xscale);
qreal GetYScale() const;
void SetYScale(const qreal &yscale);
private:
Q_DISABLE_COPY(VDxfEngine)
QSize size;
@ -104,6 +110,8 @@ private:
VarMeasurement varMeasurement;
VarInsunits varInsunits;
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 ToPixel(double val, const VarInsunits &unit) const;
@ -114,10 +122,19 @@ private:
void ExportAAMAIntcut(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMANotch(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMAGrainline(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMAText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportAAMAGlobalText(const QSharedPointer<dx_iface> &input, const QVector<VLayoutPiece> &details);
void ExportPieceText(dx_ifaceBlock *detailBlock, const VLayoutPiece &detail);
void ExportStyleSystemText(const QSharedPointer<dx_iface> &input, const QVector<VLayoutPiece> &details);
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 *AAMALine(const QLineF &line, 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);
}
//---------------------------------------------------------------------------------------------------------------------
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
{
@ -171,7 +205,16 @@ bool VDxfPaintDevice::ExportToAAMA(const QVector<VLayoutPiece> &details) const
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
{
switch (metric)

View File

@ -66,7 +66,14 @@ public:
void setMeasurement(const VarMeasurement &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 ExportToASTM(const QVector<VLayoutPiece> &details) const;
protected:
virtual int metric(PaintDeviceMetric metric) const override;

View File

@ -37,6 +37,7 @@
#include "../vgeometry/vsplinepath.h"
#include "../vgeometry/vcubicbezierpath.h"
#include "../vtools/tools/drawTools/drawtools.h"
#include "../vpatterndb/calculator.h"
namespace
{
@ -88,7 +89,7 @@ VPatternRecipe::VPatternRecipe(VContainer *data, VAbstractPattern *pattern, QObj
QDomElement recipeElement = createElement(QStringLiteral("recipe"));
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(Content());
@ -252,6 +253,8 @@ QDomElement VPatternRecipe::Content()
content.appendChild(Draft(draw));
}
content.appendChild(FinalMeasurements());
return content;
}
@ -402,6 +405,46 @@ QT_WARNING_POP
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)
{

View File

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

View File

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

View File

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

View File

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

View File

@ -278,8 +278,10 @@ QLineF VContour::GlobalEdge(int i) const
const QLineF emptyEdge = EmptySheetEdge();
const qreal nShift = emptyEdge.length()/GlobalEdgesCount();
edge = IsPortrait() ? QLineF(nShift*(i-1), emptyEdge.y1(), nShift*i, emptyEdge.y2()) :
QLineF(emptyEdge.x1(), nShift*(i-1), emptyEdge.x2(), nShift*i);
edge = IsPortrait() ? QLineF(nShift*(i-1) + emptyEdge.x1(), emptyEdge.y1(),
nShift*i + emptyEdge.x1(), emptyEdge.y2()) :
QLineF(emptyEdge.x1(), nShift*(i-1) + emptyEdge.y1(),
emptyEdge.x2(), nShift*i + emptyEdge.y1());
}
else
{
@ -445,7 +447,7 @@ bool VContour::IsPortrait() const
QLineF VContour::EmptySheetEdge() const
{
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) :
QLineF(-layoutOffset, offset, -layoutOffset, d->paperHeight-offset);
}

View File

@ -275,12 +275,7 @@ qreal VLayoutGenerator::LayoutEfficiency() const
qreal efficiency = 0;
if (not papers.isEmpty())
{
for(auto &paper : papers)
{
efficiency += paper.Efficiency();
}
efficiency /= papers.size();
efficiency = MasterPage().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())
{//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))
{
@ -656,6 +651,87 @@ QList<VLayoutPiece> VLayoutGenerator::MoveDetails(qreal length, const QVector<VL
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
{
@ -680,6 +756,18 @@ void VLayoutGenerator::SetSaveLength(bool value)
saveLength = value;
}
//---------------------------------------------------------------------------------------------------------------------
bool VLayoutGenerator::IsPreferOneSheetSolution() const
{
return preferOneSheetSolution;
}
//---------------------------------------------------------------------------------------------------------------------
void VLayoutGenerator::SetPreferOneSheetSolution(bool value)
{
preferOneSheetSolution = value;
}
//---------------------------------------------------------------------------------------------------------------------
bool VLayoutGenerator::GetAutoCropLength() const
{

View File

@ -117,6 +117,9 @@ public:
bool IsSaveLength() const;
void SetSaveLength(bool value);
bool IsPreferOneSheetSolution() const;
void SetPreferOneSheetSolution(bool value);
bool IsUnitePages() const;
void SetUnitePages(bool value);
@ -154,6 +157,7 @@ private:
bool autoCropLength;
bool autoCropWidth;
bool saveLength;
bool preferOneSheetSolution{false};
bool unitePages;
bool stripOptimizationEnabled;
quint8 multiplier;
@ -167,9 +171,10 @@ private:
void GatherPages();
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);
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

View File

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

View File

@ -126,6 +126,7 @@ public:
void SetMirror(bool value);
void Translate(qreal dx, qreal dy);
void Scale(qreal sx, qreal sy);
void Rotate(const QPointF &originPoint, qreal degrees);
void Mirror(const QLineF &edge);
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;
@ -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)
@ -431,7 +431,9 @@ QRect VPoster::PageRect() const
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);
const QRect pageRectFP(0, 0, qFloor(ToPixel(newRect.width())), qFloor(ToPixel(newRect.height())));
return pageRectFP;

View File

@ -68,7 +68,7 @@ class VPoster
public:
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,
const VWatermarkData &watermarkData, const QString &watermarkPath) const;
@ -84,7 +84,7 @@ private:
int CountRows(int height, 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;

View File

@ -45,7 +45,8 @@ unix {
# Key -isystem disable checking errors in system headers.
-isystem "$${OUT_PWD}/$${MOC_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
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_EXPORTONLYDETAILS = QStringLiteral("exportOnlyDetails");
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 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_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_EXPORTONLYDETAILS,
LONG_OPTION_EXPORTSUCHDETAILS,
LONG_OPTION_EXPXSCALE,
LONG_OPTION_EXPYSCALE,
LONG_OPTION_CROP_LENGTH, SINGLE_OPTION_CROP_LENGTH,
LONG_OPTION_CROP_WIDTH,
LONG_OPTION_UNITE, SINGLE_OPTION_UNITE,
@ -189,6 +194,7 @@ QStringList AllKeys()
LONG_OPTION_FOLLOW_GRAINLINE,
LONG_OPTION_MANUAL_PRIORITY,
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_EXPORTONLYDETAILS;
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 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_LANDSCAPE_ORIENTATION;
extern const QString LONG_OPTION_NEST_QUANTITY;
extern const QString LONG_OPTION_PREFER_ONE_SHEET_SOLUTION;
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)
}
//---------------------------------------------------------------------------------------------------------------------
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

View File

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

View File

@ -85,5 +85,9 @@
<file>icon/32x32/font_preferences.png</file>
<file>icon/24x24/font_preferences@2x.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>
</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)
{}
//---------------------------------------------------------------------------------------------------------------------
VCommonSettings::VCommonSettings(const QString &fileName, QSettings::Format format, QObject *parent)
:QSettings(fileName, format, parent)
{}
//---------------------------------------------------------------------------------------------------------------------
QString VCommonSettings::SharePath(const QString &shareItem)
{

View File

@ -44,6 +44,7 @@ class VCommonSettings : public QSettings
public:
VCommonSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(),
QObject *parent = nullptr);
VCommonSettings(const QString &fileName, Format format, QObject *parent = nullptr);
static QString SharePath(const QString &shareItem);
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, settingLayoutAutoCropWidth, (QLatin1String("layout/autoCropWidth")))
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, settingFields, (QLatin1String("layout/fields")))
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");
}
//---------------------------------------------------------------------------------------------------------------------
VSettings::VSettings(const QString &fileName, QSettings::Format format, QObject *parent)
:VCommonSettings(fileName, format, parent)
{
qRegisterMetaTypeStreamOperators<QMarginsF>("QMarginsF");
}
//---------------------------------------------------------------------------------------------------------------------
template <class T>
inline T VSettings::ValueOrDef(const QString &setting, const T &defValue) const
@ -419,6 +428,24 @@ void VSettings::SetLayoutSaveLength(bool 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
{

View File

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

View File

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

View File

@ -47,15 +47,7 @@
//---------------------------------------------------------------------------------------------------------------------
VTranslateVars::VTranslateVars()
: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>())
:VTranslateMeasurements()
{
InitPatternMakingSystems();
InitVariables();
@ -408,45 +400,140 @@ void VTranslateVars::InitVariables()
void VTranslateVars::InitFunctions()
{
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"));
functionsDescriptions.insert(radTodeg_F, translate("VTranslateVars", "converts radian to degrees",
"function radTodeg"));
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"));
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"));
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"));
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"));
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"));
functionsDescriptions.insert(atan_F, translate("VTranslateVars", "arcus tangens function working with radians",
"function atan"));
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"));
functionsDescriptions.insert(cosh_F, translate("VTranslateVars", "hyperbolic cosine", "function cosh"));
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"));
functionsDescriptions.insert(asinh_F, translate("VTranslateVars", "hyperbolic arcus sine function",
"function asinh"));
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"));
functionsDescriptions.insert(atanh_F, translate("VTranslateVars", "hyperbolic arcur tangens function",
"function atanh"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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...)"));
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"));
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"));
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"));
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"));
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"));
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"
" 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"
" 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"));
functionsDescriptions.insert(abs_F, translate("VTranslateVars", "absolute value", "function abs"));
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"));
functionsDescriptions.insert(max_F, translate("VTranslateVars", "max of all arguments", "function max"));
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"));
functionsDescriptions.insert(avg_F, translate("VTranslateVars", "mean value of all arguments", "function avg"));
functions.insert(fmod_F, translate("VTranslateVars", "fmod",
"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();
variables.clear();
functions.clear();
functionsDescriptions.clear();
stDescriptions.clear();
InitPatternMakingSystems();
@ -1115,3 +1203,9 @@ QMap<QString, qmu::QmuTranslation> VTranslateVars::GetFunctions() const
{
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, qmu::QmuTranslation> GetFunctions() const;
QMap<QString, qmu::QmuTranslation> GetFunctionsDescriptions() const;
static void BiasTokens(int position, int bias, QMap<int, QString> &tokens);
private:
Q_DISABLE_COPY(VTranslateVars)
QMap<QString, qmu::QmuTranslation> 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, QString> translatedFunctions;
QMap<QString, qmu::QmuTranslation> 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> functionsDescriptions{};
QMap<QString, qmu::QmuTranslation> placeholders{};
QMap<QString, qmu::QmuTranslation> stDescriptions{};
QMap<QString, QString> translatedFunctions{};
void InitPatternMakingSystems();
void InitVariables();

View File

@ -612,6 +612,7 @@ void DialogEditWrongFormula::ShowFunctions()
ui->tableWidget->setColumnHidden(ColumnFullName, true);
ui->labelDescription->setText(QString());
const QMap<QString, qmu::QmuTranslation> functionsDescriptions = qApp->TrVars()->GetFunctionsDescriptions();
const QMap<QString, qmu::QmuTranslation> functions = qApp->TrVars()->GetFunctions();
QMap<QString, qmu::QmuTranslation>::const_iterator i = functions.constBegin();
while (i != functions.constEnd())
@ -622,7 +623,10 @@ void DialogEditWrongFormula::ShowFunctions()
font.setBold(true);
item->setFont(font);
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;
}

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