Merge branch 'develop' into feature/manual-layout

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

3
.gitignore vendored
View File

@ -12,6 +12,9 @@
*(v*).vit*
*(v*).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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3363,6 +3497,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3775,6 +3917,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>
@ -5460,6 +5630,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 +5761,34 @@ 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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9780,6 +10002,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>
@ -11565,6 +11794,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 +11946,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 +12129,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 +12646,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 +12759,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 +12768,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 +12796,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 +13400,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 +13732,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 +13747,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 +13845,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 +14449,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 +15982,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 +16228,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 +16249,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 +16271,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 type="unfinished">Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Otáčení</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished">Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Otáčení</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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,65 @@
<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 type="unfinished">Okraje</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Levý:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Pravý:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Nahoře:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Dole:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3349,6 +3483,14 @@ Přesto použít nastavení?</translation>
<source>Auto crop unused width</source>
<translation>Automaticky ořezat nepoužívanou šířku</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3761,6 +3903,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 type="unfinished">Název:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Otáčení</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5435,6 +5605,30 @@ Přesto použít nastavení?</translation>
<source>This point cannot be origin point. Please, select another origin point</source>
<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 type="unfinished">Název:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -5538,6 +5732,38 @@ Přesto použít nastavení?</translation>
<source>Orientation:</source>
<translation>Natočení:</translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Volby</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9569,6 +9795,13 @@ Tato volba se projeví po opětovném spuštění.</translation>
<translation>Odstranit položku ze skupiny</translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -11233,6 +11466,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 type="unfinished">Nelze otevřít soubor %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Nelze otevřít soubor se schématem %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Nepodařilo se nahrát soubor se schématem &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Chyba při ověřování souboru %3 na řádku %1, ve sloupci %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11321,6 +11574,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 +11757,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 +12274,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 +12387,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 +12396,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 +12424,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 +13017,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 +13342,10 @@ Chcete uložit změny?</translation>
<source>Origin point</source>
<translation>Původní bod</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Převrácení podle osy</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13045,6 +13357,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 +13455,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 +14059,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 +15562,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 +15808,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 +15829,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 +15851,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 type="unfinished">Nastavení</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">Verbindungsdetail hinzufügen</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>Über Achse spiegeln</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">Drehung</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogFlippingByLine</name>
@ -2486,6 +2521,34 @@
<source>Flipping by line</source>
<translation>Über Linie spiegeln</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">Drehung</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogGroup</name>
@ -2499,7 +2562,7 @@
</message>
<message>
<source>Unique pattern piece name</source>
<translation>Eindeutiger Name des Schnittteils</translation>
<translation type="vanished">Eindeutiger Name des Schnittteils</translation>
</message>
<message>
<source>Choose group name</source>
@ -2509,6 +2572,18 @@
<source>New group</source>
<translation>Neue Gruppe</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,65 @@
<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">Links:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Rechts:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Oben:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Unten:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3348,6 +3482,14 @@ Einstellungen trotzdem anwenden?</translation>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3760,6 +3902,34 @@ Einstellungen trotzdem anwenden?</translation>
<source>Center point</source>
<translation>Mittelpunkt</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">Drehung</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5433,6 +5603,30 @@ Einstellungen trotzdem anwenden?</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 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>
@ -5536,6 +5730,38 @@ Einstellungen trotzdem anwenden?</translation>
<source>Orientation:</source>
<translation>Ausrichtung:</translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Optionen</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9549,6 +9775,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>
@ -11190,6 +11423,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 type="unfinished">Konnte Datei %1 nicht öffnen: %2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Konnte Schemadatei %1 nicht öffnen:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Konnte Schemadatei %1 nicht öffnen.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Fehler bei der Gültigkeitsprüfung in Datei %3, Zeile %1, Spalte %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11278,6 +11530,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation type="unfinished">Länge</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>
@ -11445,6 +11709,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>
@ -11943,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>
@ -12035,7 +12334,7 @@ Do you want to save your changes?</source>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation>Konnte Schemadatei %1 nicht öffnen:
<translation type="vanished">Konnte Schemadatei %1 nicht öffnen:
%2.</translation>
</message>
<message>
@ -12044,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>Fehler bei der Gültigkeitsprüfung in Datei %3, Zeile %1, Spalte %2</translation>
<translation type="vanished">Fehler bei der Gültigkeitsprüfung in Datei %3, Zeile %1, Spalte %2</translation>
</message>
<message>
<source>Parsing error file %3 in line %1 column %2</source>
@ -12072,7 +12371,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation>Konnte Schemadatei %1 nicht öffnen.</translation>
<translation type="vanished">Konnte Schemadatei %1 nicht öffnen.</translation>
</message>
<message>
<source>Fail to write Canonical XML.</source>
@ -12665,6 +12964,14 @@ Do you want to save your changes?</source>
<source>Can&apos;t create history record for the tool.</source>
<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>
@ -12954,6 +13261,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">Über Achse spiegeln</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -12965,6 +13276,10 @@ Do you want to save your changes?</source>
<source>Second line point</source>
<translation type="unfinished">Punkt 2 der Linie</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13059,6 +13374,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>
@ -13651,6 +13970,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>
@ -15146,6 +15469,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>
@ -15207,6 +15715,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>
@ -15216,7 +15736,7 @@ Do you want to save your changes?</source>
</message>
<message>
<source>Rename</source>
<translation>Umbenennen</translation>
<translation type="vanished">Umbenennen</translation>
</message>
<message>
<source>Delete</source>
@ -15238,6 +15758,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">Einstellungen</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>
@ -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 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>
@ -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 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>
@ -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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3276,6 +3410,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3688,6 +3830,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>
@ -5349,6 +5519,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>
@ -5452,6 +5646,38 @@ 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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9363,6 +9589,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>
@ -10973,6 +11206,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 +11312,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 +11491,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 +11892,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 +11985,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 +12001,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 +12592,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 +12901,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>
@ -12619,6 +12916,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 +13014,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 +13614,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 +15043,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 +15289,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 +15328,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">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 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>
@ -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 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>
@ -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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3759,6 +3901,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 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>
@ -5432,6 +5602,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>
@ -5535,6 +5729,38 @@ 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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9560,6 +9786,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>
@ -11224,6 +11457,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>
@ -11312,6 +11565,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 +11748,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 +12265,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 +12378,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 +12387,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 +12415,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 +13008,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 +13333,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">Flipping by axis</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13348,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 +13446,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 +14050,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 +15553,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 +15799,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 +15820,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 +15842,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">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 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>
@ -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 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>
@ -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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3759,6 +3901,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 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>
@ -5432,6 +5602,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>
@ -5535,6 +5729,38 @@ 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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9560,6 +9786,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>
@ -11224,6 +11457,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>
@ -11312,6 +11565,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 +11748,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 +12265,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 +12378,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 +12387,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 +12415,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 +13008,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 +13333,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">Flipping by axis</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13348,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 +13446,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 +14050,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 +15553,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 +15799,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 +15820,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 +15842,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">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 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>
@ -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 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>
@ -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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3759,6 +3901,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 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>
@ -5432,6 +5602,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>
@ -5535,6 +5729,38 @@ 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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9560,6 +9786,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>
@ -11224,6 +11457,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>
@ -11312,6 +11565,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 +11748,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 +12265,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 +12378,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 +12387,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 +12415,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 +13008,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 +13333,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">Flipping by axis</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13036,6 +13348,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 +13446,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 +14050,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 +15553,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 +15799,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 +15820,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 +15842,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">añadir detalles de la unión</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>Volteando por ejes</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">Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished"></translation>
</message>
<message>
<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,65 @@
<translation>Coeficiente de eficiencia: %1%</translation>
</message>
</context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Margenes</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Izquierda:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Derecha:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3348,6 +3482,14 @@ 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>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3760,6 +3902,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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotación</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5433,6 +5603,30 @@ Aplicar características de todos modos?</translation>
<source>This point cannot be origin point. Please, select another origin point</source>
<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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Nombre:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -5536,6 +5730,38 @@ Aplicar características de todos modos?</translation>
<source>Orientation:</source>
<translation>Orientación:</translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Opciones</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9563,6 +9789,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 type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -11227,6 +11460,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 type="unfinished">No se pudo abrir el archivo %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">No se pudo abrir el archivo de esquema %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">No se puede cargar el archivo de esquema &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Error de validación en el archivo %3 en la línea %1 columna %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11315,6 +11568,18 @@ Quieres guardar los cambios?</translation>
<source>Length</source>
<translation>Longitud</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>
@ -11486,6 +11751,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 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>
@ -11988,6 +12268,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 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>
@ -12081,7 +12381,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 +12390,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 +12418,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 +13011,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 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>
@ -13028,6 +13336,10 @@ Quieres guardar los cambios?</translation>
<source>Origin point</source>
<translation>Punto origen</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Volteando por ejes</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13039,6 +13351,10 @@ Quieres guardar los cambios?</translation>
<source>Second line point</source>
<translation>Punto segunda linea</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13133,6 +13449,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 type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13733,6 +14053,10 @@ Quieres guardar los cambios?</translation>
<source>Rotation angle</source>
<translation>Angulo de rotación</translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15232,6 +15556,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 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>
@ -15293,6 +15802,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 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>
@ -15302,7 +15823,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 +15845,26 @@ Quieres guardar los cambios?</translation>
<source>Show All</source>
<translation>Mostrar Todo</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">Preferencias</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>
@ -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 type="unfinished">Nmi:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished">Nmi:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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,65 @@
<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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -2852,6 +2982,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3260,6 +3398,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 type="unfinished">Nmi:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -4805,6 +4971,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">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 +5078,38 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Asetukset</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -8519,6 +8741,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>
@ -9997,6 +10226,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 type="unfinished">Tiedostoa %1 ei voitu avata:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Skeematiedostoa %1 ei voitu avata.
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Tarkastus virhe tiedostossa %3 rivillä %1 kohdassa %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -10085,6 +10334,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 +10513,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 +10910,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 +11023,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 +11032,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 +11058,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 +11649,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 +11907,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 +11922,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 +12020,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 +12564,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 +14028,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 +14274,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 +14309,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">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 type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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,65 @@
<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">Gauche:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Droite:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Haut:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Bas:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3344,6 +3478,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3756,6 +3898,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 type="unfinished"></translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotation</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5429,6 +5599,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>
@ -5532,6 +5726,38 @@ 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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9545,6 +9771,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>
@ -11205,6 +11438,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 type="unfinished">impossible d&apos;ouvrir le fichier %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Erreur d&apos;ouverture du fichier de schéma %1: %2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Impossible de lire le schéma de fichier &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Erreur de validation : fichier %3, ligne %1, colonne %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11293,6 +11545,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 +11724,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 +12241,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 +12354,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 +12362,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 +12390,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 +12983,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 +13300,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 +13315,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 +13413,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 +14013,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 +15516,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 +15762,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 +15783,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 +15805,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 type="unfinished">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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -2381,6 +2511,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -2757,6 +2895,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>
@ -4091,6 +4257,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 +4364,38 @@ 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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -7474,6 +7696,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>
@ -8815,6 +9044,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 +9150,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 +9329,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 +9722,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 +9815,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 +9823,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 +10387,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 +10641,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 +10656,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 +10754,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 +11262,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 +12651,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 +12875,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 +12910,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,61 @@
<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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -2652,6 +2778,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3044,6 +3178,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>
@ -4417,6 +4579,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 +4686,34 @@ 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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -7820,6 +8034,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>
@ -9195,6 +9416,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 +9522,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 +9701,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 +10098,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 +10191,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 +10199,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 +10763,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 +11017,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 +11032,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 +11130,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 +11650,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 +13044,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 +13268,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 +13303,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 type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotazione</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotazione</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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,65 @@
<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 type="unfinished">Margini</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Sinistra:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Destra:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Top:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Fondo:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3341,6 +3475,14 @@ Applicare la configurazione comunque?</translation>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3753,6 +3895,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 type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotazione</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5426,6 +5596,30 @@ Applicare la configurazione comunque?</translation>
<source>This point cannot be origin point. Please, select another origin point</source>
<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">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 +5723,38 @@ Applicare la configurazione comunque?</translation>
<source>Orientation:</source>
<translation>Orientamento:</translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Opzioni</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9555,6 +9781,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>
@ -11215,6 +11448,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 type="unfinished">Impossibile aprire file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11303,6 +11555,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 +11738,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 +12223,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 +12321,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 +12337,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 +12928,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 +13249,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 type="unfinished">Ruotare sull&apos;asse</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -12966,6 +13264,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 +13362,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 +13958,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 +15416,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 +15662,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 +15701,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 type="unfinished">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 type="unfinished"></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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished"></translation>
</message>
<message>
<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,65 @@
<translation>Efficiëntie coëfficiënt: %1%</translation>
</message>
</context>
<context>
<name>DialogLayoutScale</name>
<message>
<source>Layout scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Margins</source>
<translation type="unfinished">Marges</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Links:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Rechts:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Bovenaan:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Onderaan:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3349,6 +3483,14 @@ Toch de instellingen aanpassen?</translation>
<source>Auto crop unused width</source>
<translation>Automatisch inkorten van ongebruikte breedte</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3761,6 +3903,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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotatie</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5434,6 +5604,30 @@ Toch de instellingen aanpassen?</translation>
<source>This point cannot be origin point. Please, select another origin point</source>
<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 type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished">Naam:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLAyout</name>
@ -5537,6 +5731,38 @@ Toch de instellingen aanpassen?</translation>
<source>Orientation:</source>
<translation>Orientatie:</translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Opties</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished">%</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9566,6 +9792,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 type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -11230,6 +11463,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 type="unfinished">kan bestand niet openen %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Kan schema bestand niet openen %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Kan schema bestand niet laden &apos;%1&quot;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Validatie fout bestand %3 op lijn %1 kolom %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11318,6 +11571,18 @@ Wil je deze veranderingen opslaan?</translation>
<source>Length</source>
<translation>Lengte</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>
@ -11489,6 +11754,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 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>
@ -11991,6 +12271,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 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>
@ -12084,7 +12384,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 +12393,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 +12421,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 +13014,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 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>
@ -13031,6 +13339,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Origin point</source>
<translation>Startpunt</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Kantelen via de aslijn</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13042,6 +13354,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Second line point</source>
<translation>Tweede lijnpunt</translation>
</message>
<message>
<source>flipping by line</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolHeight</name>
@ -13136,6 +13452,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Rotation origin point</source>
<translation>Rotatie startpunt</translation>
</message>
<message>
<source>move</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolOptionsPropertyBrowser</name>
@ -13736,6 +14056,10 @@ Wil je deze veranderingen opslaan?</translation>
<source>Rotation angle</source>
<translation>Hoek van draaiing</translation>
</message>
<message>
<source>rotate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VToolSeamAllowance</name>
@ -15235,6 +15559,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 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>
@ -15296,6 +15805,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 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>
@ -15305,7 +15826,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 +15848,26 @@ Wil je deze veranderingen opslaan?</translation>
<source>Show All</source>
<translation>Vertoon Alles</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">Voorkeuren</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">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 type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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,65 @@
<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">Marginesy</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Lewy:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Prawy:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3036,6 +3170,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3440,6 +3582,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 type="unfinished">Nazwa:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -4926,6 +5096,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">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 +5203,38 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Opcje</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -8598,6 +8824,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>
@ -10179,6 +10412,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 +10518,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 +10697,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 +11094,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 +11187,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 +11195,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 +11774,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 +12040,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 +12055,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 +12153,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 +12685,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 +14124,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 +14370,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 +14405,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">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 type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotação</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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 type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotação</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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,65 @@
<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">Margens</translation>
</message>
<message>
<source>Left:</source>
<translation type="unfinished">Esquerda:</translation>
</message>
<message>
<source>cm</source>
<translation type="unfinished">cm</translation>
</message>
<message>
<source>Right:</source>
<translation type="unfinished">Direita:</translation>
</message>
<message>
<source>Top:</source>
<translation type="unfinished">Topo:</translation>
</message>
<message>
<source>Bottom:</source>
<translation type="unfinished">Base:</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3345,6 +3479,14 @@ Aplicar configurações de qualquer forma?</translation>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3757,6 +3899,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 type="unfinished">Nome:</translation>
</message>
<message>
<source>Rotation</source>
<translation type="unfinished">Rotação</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogNewMeasurements</name>
@ -5430,6 +5600,30 @@ Aplicar configurações de qualquer forma?</translation>
<source>This point cannot be origin point. Please, select another origin point</source>
<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">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 +5723,38 @@ Aplicar configurações de qualquer forma?</translation>
<source>Orientation:</source>
<translation>Orientação:</translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Opções</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9543,6 +9769,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>
@ -11203,6 +11436,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 type="unfinished">Impossível abrir o arquivo %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Impossível abrir o arquivo de esquema %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Arquivo de erro de validação %3 na linha %1 coluna %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11291,6 +11544,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 +11727,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 +12212,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 +12325,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 +12334,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 +12348,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 +12939,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 +13264,10 @@ Deseja salvar suas mudanças?</translation>
<source>Origin point</source>
<translation>Ponto de origem</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Espelhar através do eixo</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -12971,6 +13279,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 +13377,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 +13981,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 +15439,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 +15685,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 +15706,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 +15728,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 type="unfinished">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,65 @@
<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>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3025,6 +3155,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3433,6 +3571,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>
@ -4883,6 +5049,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 +5156,38 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Options</source>
<translation type="unfinished">Opțiuni</translation>
</message>
<message>
<source>Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Horizontal:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vertical:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -8486,6 +8708,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>
@ -9932,6 +10161,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 +10267,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 +10446,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 +10843,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 +10936,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 +10944,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 +11512,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 +11766,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 +11781,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 +11879,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 +12411,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 +13840,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 +14064,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 +14099,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">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 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 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>
@ -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 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>
@ -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 type="unfinished"></translation>
</message>
<message>
<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,65 @@
<translation>Коэффициент эффективности: %1%</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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3349,6 +3483,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation>Автоматически обрезать неиспользуемую ширину</translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3761,6 +3903,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>
@ -5435,6 +5605,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>
@ -5538,6 +5732,38 @@ Apply settings anyway?</source>
<source>Orientation:</source>
<translation>Ориентация:</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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9568,6 +9794,13 @@ This option will take an affect after restart.</source>
<translation>Удалить объект из группы</translation>
</message>
</context>
<context>
<name>RenameGroup</name>
<message>
<source>rename group</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenamePP</name>
<message>
@ -11232,6 +11465,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 type="unfinished">Невозможно открыть файл %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Невозможно открыть файл схемы %1:
%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Не удалось открыть файл схемы &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Ошибка валидации файла %3 в строке %1 столбца %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11320,6 +11573,18 @@ Do you want to save your changes?</source>
<source>Length</source>
<translation>Длина</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>
@ -11491,6 +11756,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 type="unfinished"></translation>
</message>
</context>
<context>
<name>VCommandLine</name>
<message>
@ -11993,6 +12273,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 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>
@ -12086,7 +12386,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 +12395,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 +12423,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>
@ -12716,6 +13016,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>
@ -13033,6 +13341,10 @@ Do you want to save your changes?</source>
<source>Origin point</source>
<translation>Исходная точка</translation>
</message>
<message>
<source>Flipping by axis</source>
<translation type="unfinished">Отразить объект по оси</translation>
</message>
</context>
<context>
<name>VToolFlippingByLine</name>
@ -13044,6 +13356,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 +13454,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 +14058,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>
@ -15242,6 +15566,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 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>
@ -15303,6 +15812,18 @@ Do you want to save your changes?</source>
<source>Hide not in layout</source>
<translation>Скрыть не в раскладке</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>
@ -15312,7 +15833,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 +15855,26 @@ Do you want to save your changes?</source>
<source>Show All</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>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">додати об&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 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>
@ -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 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>
@ -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,65 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -3347,6 +3481,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -3759,6 +3901,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>
@ -5433,6 +5603,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>
@ -5536,6 +5730,38 @@ 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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -9561,6 +9787,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>
@ -11225,6 +11458,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 type="unfinished">Не можу відкрити файл%1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished">Не можу відкрити файл схеми %1:\n%2.</translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished">Не вдалося завантажити файл схеми &apos;%1&apos;.</translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished">Помилка валідації файлу %3 в рядку %1 стовпця %2</translation>
</message>
</context>
<context>
<name>VAbstractCubicBezierPath</name>
@ -11313,6 +11565,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 +11748,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 +12265,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 +12378,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 +12386,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 +12414,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 +13007,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 +13332,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>
@ -13036,6 +13347,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 +13445,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 +14049,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 +15552,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 +15798,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 +15819,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 +15841,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"></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,61 @@
<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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLayoutSettings</name>
<message>
@ -2533,6 +2659,14 @@ Apply settings anyway?</source>
<source>Auto crop unused width</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Prefer one sheet solution</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogLine</name>
@ -2909,6 +3043,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>
@ -4194,6 +4356,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 +4463,34 @@ 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="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogSaveLayout</name>
@ -7606,6 +7820,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>
@ -9016,6 +9237,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 +9343,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 +9522,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 +9915,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 +10008,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 +10016,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 +10580,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 +10830,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 +10845,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 +10943,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 +11451,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 +12840,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 +13064,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 +13099,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

@ -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>%</string>
</property>
<property name="decimals">
<number>1</number>
</property>
<property name="minimum">
<double>1.000000000000000</double>
</property>
<property name="maximum">
<double>300.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>100.000000000000000</double>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBoxVerticalScale">
<property name="suffix">
<string>%</string>
</property>
<property name="decimals">
<number>1</number>
</property>
<property name="minimum">
<double>1.000000000000000</double>
</property>
<property name="maximum">
<double>300.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>100.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>1</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_7">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;┐&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QToolButton" name="toolButtonScaleConnected">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/32x32/link.png</normaloff>:/icon/32x32/link.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="popupMode">
<enum>QToolButton::DelayedPopup</enum>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_8">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;┘&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../../../libs/vmisc/share/resources/icon.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DialogLayoutScale</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DialogLayoutScale</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -292,6 +292,18 @@ void DialogLayoutSettings::SetSaveLength(bool save)
ui->checkBoxSaveLength->setChecked(save);
}
//---------------------------------------------------------------------------------------------------------------------
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">
@ -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>%</string>
</property>
<property name="decimals">
<number>1</number>
</property>
<property name="minimum">
<double>1.000000000000000</double>
</property>
<property name="maximum">
<double>300.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>100.000000000000000</double>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBoxVerticalScale">
<property name="suffix">
<string>%</string>
</property>
<property name="decimals">
<number>1</number>
</property>
<property name="minimum">
<double>1.000000000000000</double>
</property>
<property name="maximum">
<double>300.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>100.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>1</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_7">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;┐&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QToolButton" name="toolButtonScaleConnected">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/32x32/link.png</normaloff>:/icon/32x32/link.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="popupMode">
<enum>QToolButton::DelayedPopup</enum>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label_8">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;┘&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item 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,13 @@ void VWidgetGroups::UpdateGroups()
}
//---------------------------------------------------------------------------------------------------------------------
void VWidgetGroups::FillTable(const QMap<quint32, QPair<QString, bool> > &groups)
void VWidgetGroups::FillTable(QMap<quint32, VGroupData> groups)
{
emit doc->UpdateToolTip();
ui->lineEditTags->SetCompletion(doc->GetGroupCategories());
groups = FilterGroups(groups);
ui->tableWidget->blockSignals(true);
ui->tableWidget->clear();
@ -291,12 +326,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 +342,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

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

View File

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

View File

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

View File

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

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