diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/ChangeLog.txt valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/ChangeLog.txt --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/ChangeLog.txt 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/ChangeLog.txt 2017-10-02 06:21:34.000000000 +0000 @@ -19,6 +19,10 @@ - Added new language Polish (Poland). - [#755] New feature. Toggle point label. - Fixed bug. After full parse undocommand Move labe losts connection to tool. +- [#756] New feature. Select pieces from command line. +- [#761] New feature. Export final measurements. +- [#758] Intersection Passmark - select which side is shown. +- New math parser function "r2cm". Round to up to 1 decimal. # Version 0.5.1 - [#683] Tool Seam allowance's dialog is off screen on small resolutions. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/common.pri valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/common.pri --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/common.pri 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/common.pri 2017-10-02 06:21:34.000000000 +0000 @@ -290,6 +290,7 @@ -Wpointer-arith \ -Wstrict-null-sentinel \ -Wstrict-overflow=5 \ + -Wno-error=strict-overflow \ -Wundef \ -Wno-unused \ -ftrapv @@ -730,6 +731,7 @@ GCC_DEBUG_CXXFLAGS += \ -O0 \ -Wall \ + -Wno-error=strict-overflow \ -Wextra \ -fno-omit-frame-pointer # Need for exchndl.dll diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/debian/changelog valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/debian/changelog --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/debian/changelog 2017-09-25 06:19:38.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/debian/changelog 2017-10-02 06:21:38.000000000 +0000 @@ -1,8 +1,8 @@ -valentina (0.5.999+60+3+201709250619~ubuntu15.04.1) vivid; urgency=low +valentina (0.5.999+60+3+201710020621~ubuntu15.04.1) vivid; urgency=low * Auto build. - -- Roman Mon, 25 Sep 2017 06:19:38 +0000 + -- Roman Mon, 02 Oct 2017 06:21:38 +0000 valentina (0.5.999) trusty; urgency=low diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/debian/git-build-recipe.manifest valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/debian/git-build-recipe.manifest --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/debian/git-build-recipe.manifest 2017-09-25 06:19:38.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/debian/git-build-recipe.manifest 2017-10-02 06:21:38.000000000 +0000 @@ -1,3 +1,3 @@ -# git-build-recipe format 0.4 deb-version {debupstream}+60+3+201709250619 -lp:valentina git-commit:29972118fff2e817bb48329cbd1ad3454eb604b4 +# git-build-recipe format 0.4 deb-version {debupstream}+60+3+201710020621 +lp:valentina git-commit:da2cc857dffe342b38a99197313ce6a0ea13b6f5 merge packaging lp:~dismine/valentina/+git/debian git-commit:860f4eedc32d315d47bba464de0793767275714b diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/dist/debian/valentina.1 valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/dist/debian/valentina.1 --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/dist/debian/valentina.1 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/dist/debian/valentina.1 2017-10-02 06:21:34.000000000 +0000 @@ -1,6 +1,6 @@ .\" Manpage for valentina. .\" Contact dismine@gmail.com to correct errors. -.TH valentina 1 "10 March, 2017" "valentina man page" +.TH valentina 1 "28 September, 2017" "valentina man page" .SH NAME Valentina \- Pattern making program. .SH SYNOPSIS @@ -106,6 +106,8 @@ .RB "Export text as paths." .IP "--exportOnlyDetails" .RB "Export only details. Export details as they positioned in the details mode. Any layout related options will be ignored." +.IP "--exportSuchDetails " +.RB "Export only details that match a piece name regex." .IP "-x, --gsize " .RB "Set size value a pattern file, that was opened with multisize measurements " "(export mode)" ". Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm." .IP "-e, --gheight " @@ -193,14 +195,366 @@ Run the program in a test mode. The program in this mode loads a single pattern file and silently quit without showing the main window. The key have priority before key \*(lqbasename\*(rq. .IP "--no-scaling" .RB "Disable high dpi scaling. Call this option if has problem with scaling (by default scaling enabled). Alternatively you can use the QT_AUTO_SCREEN_SCALE_FACTOR=0 environment variable." +.IP "--csvWithHeader" +.RB "Export to csv with header. By default disabled." +.IP "--csvCodec " +.RB "Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values usually these:" +.RS +.BR "*" " US-ASCII," +.RE +.RS +.BR "*" " US-ASCII," +.RE +.RS +.BR "*" " ISO-8859-1," +.RE +.RS +.BR "*" " ISO-8859-2," +.RE +.RS +.BR "*" " ISO-8859-3," +.RE +.RS +.BR "*" " ISO-8859-4," +.RE +.RS +.BR "*" " ISO-8859-5," +.RE +.RS +.BR "*" " ISO-8859-6," +.RE +.RS +.BR "*" " ISO-8859-7," +.RE +.RS +.BR "*" " ISO-8859-8," +.RE +.RS +.BR "*" " ISO-8859-9," +.RE +.RS +.BR "*" " ISO-8859-10," +.RE +.RS +.BR "*" " ISO-2022-JP-1," +.RE +.RS +.BR "*" " Shift_JIS," +.RE +.RS +.BR "*" " EUC-JP," +.RE +.RS +.BR "*" " US-ASCII," +.RE +.RS +.BR "*" " windows-949," +.RE +.RS +.BR "*" " ISO-2022-KR," +.RE +.RS +.BR "*" " windows-949," +.RE +.RS +.BR "*" " ISO-2022-JP," +.RE +.RS +.BR "*" " ISO-2022-JP-2," +.RE +.RS +.BR "*" " GBK," +.RE +.RS +.BR "*" " ISO-8859-6," +.RE +.RS +.BR "*" " ISO-8859-6," +.RE +.RS +.BR "*" " ISO-8859-8," +.RE +.RS +.BR "*" " ISO-8859-8," +.RE +.RS +.BR "*" " ISO-2022-CN," +.RE +.RS +.BR "*" " ISO-2022-CN-EXT," +.RE +.RS +.BR "*" " UTF-8," +.RE +.RS +.BR "*" " ISO-8859-13," +.RE +.RS +.BR "*" " ISO-8859-14," +.RE +.RS +.BR "*" " ISO-8859-15," +.RE +.RS +.BR "*" " GBK," +.RE +.RS +.BR "*" " GB18030," +.RE +.RS +.BR "*" " UTF-16," +.RE +.RS +.BR "*" " UTF-32," +.RE +.RS +.BR "*" " SCSU," +.RE +.RS +.BR "*" " UTF-7," +.RE +.RS +.BR "*" " UTF-16BE," +.RE +.RS +.BR "*" " UTF-16LE," +.RE +.RS +.BR "*" " UTF-16," +.RE +.RS +.BR "*" " CESU-8," +.RE +.RS +.BR "*" " UTF-32," +.RE +.RS +.BR "*" " UTF-32BE," +.RE +.RS +.BR "*" " UTF-32LE," +.RE +.RS +.BR "*" " BOCU-1," +.RE +.RS +.BR "*" " hp-roman8," +.RE +.RS +.BR "*" " Adobe-Standard-Encoding," +.RE +.RS +.BR "*" " IBM850," +.RE +.RS +.BR "*" " IBM862," +.RE +.RS +.BR "*" " IBM-Thai," +.RE +.RS +.BR "*" " Shift_JIS," +.RE +.RS +.BR "*" " GBK," +.RE +.RS +.BR "*" " Big5," +.RE +.RS +.BR "*" " macintosh," +.RE +.RS +.BR "*" " IBM037," +.RE +.RS +.BR "*" " IBM273," +.RE +.RS +.BR "*" " IBM277," +.RE +.RS +.BR "*" " IBM278," +.RE +.RS +.BR "*" " IBM280," +.RE +.RS +.BR "*" " IBM284," +.RE +.RS +.BR "*" " IBM285," +.RE +.RS +.BR "*" " IBM290," +.RE +.RS +.BR "*" " IBM297," +.RE +.RS +.BR "*" " IBM420," +.RE +.RS +.BR "*" " IBM424," +.RE +.RS +.BR "*" " IBM437," +.RE +.RS +.BR "*" " IBM500," +.RE +.RS +.BR "*" " cp851," +.RE +.RS +.BR "*" " IBM852," +.RE +.RS +.BR "*" " IBM855," +.RE +.RS +.BR "*" " IBM857," +.RE +.RS +.BR "*" " IBM860," +.RE +.RS +.BR "*" " IBM861," +.RE +.RS +.BR "*" " IBM863," +.RE +.RS +.BR "*" " IBM864," +.RE +.RS +.BR "*" " IBM865," +.RE +.RS +.BR "*" " IBM868," +.RE +.RS +.BR "*" " IBM869," +.RE +.RS +.BR "*" " IBM870," +.RE +.RS +.BR "*" " IBM871," +.RE +.RS +.BR "*" " IBM918," +.RE +.RS +.BR "*" " IBM1026," +.RE +.RS +.BR "*" " KOI8-R," +.RE +.RS +.BR "*" " HZ-GB-2312," +.RE +.RS +.BR "*" " IBM866," +.RE +.RS +.BR "*" " IBM775," +.RE +.RS +.BR "*" " KOI8-U," +.RE +.RS +.BR "*" " IBM00858," +.RE +.RS +.BR "*" " IBM01140," +.RE +.RS +.BR "*" " IBM01141," +.RE +.RS +.BR "*" " IBM01142," +.RE +.RS +.BR "*" " IBM01143," +.RE +.RS +.BR "*" " IBM01144," +.RE +.RS +.BR "*" " IBM01145," +.RE +.RS +.BR "*" " IBM01146," +.RE +.RS +.BR "*" " IBM01147," +.RE +.RS +.BR "*" " IBM01148," +.RE +.RS +.BR "*" " IBM01149," +.RE +.RS +.BR "*" " Big5-HKSCS," +.RE +.RS +.BR "*" " IBM1047," +.RE +.RS +.BR "*" " windows-1250," +.RE +.RS +.BR "*" " windows-1251," +.RE +.RS +.BR "*" " windows-1252," +.RE +.RS +.BR "*" " windows-1253," +.RE +.RS +.BR "*" " windows-1254," +.RE +.RS +.BR "*" " windows-1255," +.RE +.RS +.BR "*" " windows-1256," +.RE +.RS +.BR "*" " windows-1257," +.RE +.RS +.BR "*" " windows-1258," +.RE +.RS +.BR "*" " TIS-620," +.RE +.RS +.BR "*" " TSCII." +.RE +.IP "--csvSeparator " +.RB "Specify csv separator character. Default value is ','. Valid characters:" +.RS +.BR "*" " 'Tab'," +.RE +.RS +.BR "*" " ';'," +.RE +.RS +.BR "*" " 'Space'," +.RE +.RS +.BR "*" " ','." +.RE +.IP "--csvExportFM " +.RB "Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path." .IP Arguments: .I filename \- a pattern file. .SH AUTHOR .RI "This manual page was written by Roman Telezhynskyi <" dismine@gmail.com ">" .SH "SEE ALSO" -.RB "Full " "User Manual" " is availiable in" -.UR https://bitbucket.org/dismine/valentina/wiki/manual/Content -.UE - .BR tape (1) diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/dist/OBS_debian/debian.valentina.1 valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/dist/OBS_debian/debian.valentina.1 --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/dist/OBS_debian/debian.valentina.1 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/dist/OBS_debian/debian.valentina.1 2017-10-02 06:21:34.000000000 +0000 @@ -1,6 +1,6 @@ .\" Manpage for valentina. .\" Contact dismine@gmail.com to correct errors. -.TH valentina 1 "10 March, 2017" "valentina man page" +.TH valentina 1 "28 September, 2017" "valentina man page" .SH NAME Valentina \- Pattern making program. .SH SYNOPSIS @@ -106,6 +106,8 @@ .RB "Export text as paths." .IP "--exportOnlyDetails" .RB "Export only details. Export details as they positioned in the details mode. Any layout related options will be ignored." +.IP "--exportSuchDetails " +.RB "Export only details that match a piece name regex." .IP "-x, --gsize " .RB "Set size value a pattern file, that was opened with multisize measurements " "(export mode)" ". Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm." .IP "-e, --gheight " @@ -193,14 +195,366 @@ Run the program in a test mode. The program in this mode loads a single pattern file and silently quit without showing the main window. The key have priority before key \*(lqbasename\*(rq. .IP "--no-scaling" .RB "Disable high dpi scaling. Call this option if has problem with scaling (by default scaling enabled). Alternatively you can use the QT_AUTO_SCREEN_SCALE_FACTOR=0 environment variable." +.IP "--csvWithHeader" +.RB "Export to csv with header. By default disabled." +.IP "--csvCodec " +.RB "Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values usually these:" +.RS +.BR "*" " US-ASCII," +.RE +.RS +.BR "*" " US-ASCII," +.RE +.RS +.BR "*" " ISO-8859-1," +.RE +.RS +.BR "*" " ISO-8859-2," +.RE +.RS +.BR "*" " ISO-8859-3," +.RE +.RS +.BR "*" " ISO-8859-4," +.RE +.RS +.BR "*" " ISO-8859-5," +.RE +.RS +.BR "*" " ISO-8859-6," +.RE +.RS +.BR "*" " ISO-8859-7," +.RE +.RS +.BR "*" " ISO-8859-8," +.RE +.RS +.BR "*" " ISO-8859-9," +.RE +.RS +.BR "*" " ISO-8859-10," +.RE +.RS +.BR "*" " ISO-2022-JP-1," +.RE +.RS +.BR "*" " Shift_JIS," +.RE +.RS +.BR "*" " EUC-JP," +.RE +.RS +.BR "*" " US-ASCII," +.RE +.RS +.BR "*" " windows-949," +.RE +.RS +.BR "*" " ISO-2022-KR," +.RE +.RS +.BR "*" " windows-949," +.RE +.RS +.BR "*" " ISO-2022-JP," +.RE +.RS +.BR "*" " ISO-2022-JP-2," +.RE +.RS +.BR "*" " GBK," +.RE +.RS +.BR "*" " ISO-8859-6," +.RE +.RS +.BR "*" " ISO-8859-6," +.RE +.RS +.BR "*" " ISO-8859-8," +.RE +.RS +.BR "*" " ISO-8859-8," +.RE +.RS +.BR "*" " ISO-2022-CN," +.RE +.RS +.BR "*" " ISO-2022-CN-EXT," +.RE +.RS +.BR "*" " UTF-8," +.RE +.RS +.BR "*" " ISO-8859-13," +.RE +.RS +.BR "*" " ISO-8859-14," +.RE +.RS +.BR "*" " ISO-8859-15," +.RE +.RS +.BR "*" " GBK," +.RE +.RS +.BR "*" " GB18030," +.RE +.RS +.BR "*" " UTF-16," +.RE +.RS +.BR "*" " UTF-32," +.RE +.RS +.BR "*" " SCSU," +.RE +.RS +.BR "*" " UTF-7," +.RE +.RS +.BR "*" " UTF-16BE," +.RE +.RS +.BR "*" " UTF-16LE," +.RE +.RS +.BR "*" " UTF-16," +.RE +.RS +.BR "*" " CESU-8," +.RE +.RS +.BR "*" " UTF-32," +.RE +.RS +.BR "*" " UTF-32BE," +.RE +.RS +.BR "*" " UTF-32LE," +.RE +.RS +.BR "*" " BOCU-1," +.RE +.RS +.BR "*" " hp-roman8," +.RE +.RS +.BR "*" " Adobe-Standard-Encoding," +.RE +.RS +.BR "*" " IBM850," +.RE +.RS +.BR "*" " IBM862," +.RE +.RS +.BR "*" " IBM-Thai," +.RE +.RS +.BR "*" " Shift_JIS," +.RE +.RS +.BR "*" " GBK," +.RE +.RS +.BR "*" " Big5," +.RE +.RS +.BR "*" " macintosh," +.RE +.RS +.BR "*" " IBM037," +.RE +.RS +.BR "*" " IBM273," +.RE +.RS +.BR "*" " IBM277," +.RE +.RS +.BR "*" " IBM278," +.RE +.RS +.BR "*" " IBM280," +.RE +.RS +.BR "*" " IBM284," +.RE +.RS +.BR "*" " IBM285," +.RE +.RS +.BR "*" " IBM290," +.RE +.RS +.BR "*" " IBM297," +.RE +.RS +.BR "*" " IBM420," +.RE +.RS +.BR "*" " IBM424," +.RE +.RS +.BR "*" " IBM437," +.RE +.RS +.BR "*" " IBM500," +.RE +.RS +.BR "*" " cp851," +.RE +.RS +.BR "*" " IBM852," +.RE +.RS +.BR "*" " IBM855," +.RE +.RS +.BR "*" " IBM857," +.RE +.RS +.BR "*" " IBM860," +.RE +.RS +.BR "*" " IBM861," +.RE +.RS +.BR "*" " IBM863," +.RE +.RS +.BR "*" " IBM864," +.RE +.RS +.BR "*" " IBM865," +.RE +.RS +.BR "*" " IBM868," +.RE +.RS +.BR "*" " IBM869," +.RE +.RS +.BR "*" " IBM870," +.RE +.RS +.BR "*" " IBM871," +.RE +.RS +.BR "*" " IBM918," +.RE +.RS +.BR "*" " IBM1026," +.RE +.RS +.BR "*" " KOI8-R," +.RE +.RS +.BR "*" " HZ-GB-2312," +.RE +.RS +.BR "*" " IBM866," +.RE +.RS +.BR "*" " IBM775," +.RE +.RS +.BR "*" " KOI8-U," +.RE +.RS +.BR "*" " IBM00858," +.RE +.RS +.BR "*" " IBM01140," +.RE +.RS +.BR "*" " IBM01141," +.RE +.RS +.BR "*" " IBM01142," +.RE +.RS +.BR "*" " IBM01143," +.RE +.RS +.BR "*" " IBM01144," +.RE +.RS +.BR "*" " IBM01145," +.RE +.RS +.BR "*" " IBM01146," +.RE +.RS +.BR "*" " IBM01147," +.RE +.RS +.BR "*" " IBM01148," +.RE +.RS +.BR "*" " IBM01149," +.RE +.RS +.BR "*" " Big5-HKSCS," +.RE +.RS +.BR "*" " IBM1047," +.RE +.RS +.BR "*" " windows-1250," +.RE +.RS +.BR "*" " windows-1251," +.RE +.RS +.BR "*" " windows-1252," +.RE +.RS +.BR "*" " windows-1253," +.RE +.RS +.BR "*" " windows-1254," +.RE +.RS +.BR "*" " windows-1255," +.RE +.RS +.BR "*" " windows-1256," +.RE +.RS +.BR "*" " windows-1257," +.RE +.RS +.BR "*" " windows-1258," +.RE +.RS +.BR "*" " TIS-620," +.RE +.RS +.BR "*" " TSCII." +.RE +.IP "--csvSeparator " +.RB "Specify csv separator character. Default value is ','. Valid characters:" +.RS +.BR "*" " 'Tab'," +.RE +.RS +.BR "*" " ';'," +.RE +.RS +.BR "*" " 'Space'," +.RE +.RS +.BR "*" " ','." +.RE +.IP "--csvExportFM " +.RB "Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path." .IP Arguments: .I filename \- a pattern file. .SH AUTHOR .RI "This manual page was written by Roman Telezhynskyi <" dismine@gmail.com ">" .SH "SEE ALSO" -.RB "Full " "User Manual" " is availiable in" -.UR https://bitbucket.org/dismine/valentina/wiki/manual/Content -.UE - .BR tape (1) diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p0_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p0_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p0_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p0_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p10_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p10_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p10_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p10_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p11_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p11_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p11_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p11_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p12_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p12_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p12_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p12_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p13_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p13_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p13_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p13_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p14_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p14_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p14_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p14_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p15_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p15_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p15_es_ES.ts 2017-09-25 06:19:31.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p15_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p16_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p16_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p16_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p16_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p17_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p17_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p17_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p17_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p18_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p18_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p18_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p18_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p19_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p19_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p19_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p19_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p1_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p1_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p1_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p1_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p20_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p20_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p20_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p20_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p21_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p21_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p21_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p21_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p22_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p22_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p22_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p22_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p23_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p23_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p23_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p23_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p24_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p24_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p24_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p24_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p25_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p25_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p25_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p25_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p26_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p26_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p26_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p26_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p27_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p27_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p27_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p27_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p28_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p28_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p28_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p28_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p29_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p29_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p29_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p29_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p2_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p2_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p2_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p2_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p30_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p30_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p30_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p30_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p31_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p31_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p31_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p31_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p32_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p32_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p32_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p32_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p33_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p33_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p33_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p33_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p34_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p34_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p34_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p34_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p35_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p35_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p35_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p35_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p36_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p36_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p36_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p36_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p37_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p37_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p37_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p37_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p38_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p38_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p38_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p38_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p39_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p39_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p39_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p39_es_ES.ts 2017-10-02 06:21:34.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p3_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p3_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p3_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p3_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p40_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p40_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p40_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p40_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p41_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p41_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p41_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p41_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p42_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p42_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p42_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p42_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p43_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p43_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p43_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p43_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p44_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p44_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p44_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p44_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p45_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p45_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p45_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p45_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p46_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p46_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p46_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p46_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p47_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p47_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p47_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p47_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p48_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p48_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p48_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p48_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p49_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p49_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p49_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p49_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p4_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p4_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p4_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p4_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p50_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p50_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p50_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p50_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p51_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p51_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p51_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p51_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p52_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p52_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p52_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p52_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p53_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p53_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p53_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p53_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p54_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p54_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p54_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p54_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p5_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p5_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p5_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p5_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p6_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p6_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p6_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p6_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p7_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p7_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p7_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p7_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p8_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p8_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p8_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p8_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p998_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p998_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p998_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p998_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -564,7 +564,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p9_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p9_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/measurements_p9_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/measurements_p9_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -972,7 +972,7 @@ Horizontal Distance between a flat stick, placed perpendicular to Heel, and the greatest indentation of Ankle. Full measurement description. - + Distancia horizontal entre un palo plano, situado perpendicularmente al talón y el punto de mayor hendidura del tobillo. diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_cs_CZ.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_cs_CZ.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_cs_CZ.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_cs_CZ.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1865,6 +1865,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + Název + + + The calculated value + Vypočítaná hodnota + + + Formula + Vzorec + + + Details + Detaily + + + Name: + Název: + + + Calculated value: + + + + Formula: + + + + Calculation + Výpočet + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Ukázat celý výpočet v okně se zprávami</p></body></html> + + + Formula wizard + + + + Description: + + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + Chyba + + + Empty field. + + + + Edit measurement + + + + Empty field + Prázdné pole + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Hodnota + + + Parser error: %1 + Chyba zpracování: %1 + + + DialogFlippingByAxis Origin point: @@ -3780,6 +3879,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -6622,6 +6737,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -6689,6 +6824,30 @@ Pattern Střih + + Name + Název + + + Value + Hodnota + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -8238,6 +8397,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -8634,6 +8809,10 @@ New group + + measurement + + VAbstractPieceData @@ -9020,6 +9199,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -11701,6 +11916,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_de_DE.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_de_DE.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_de_DE.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_de_DE.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1593,10 +1593,6 @@ - Insert... - Einfügen... - - Preview Vorschau @@ -2162,6 +2158,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Finden: + + + Search + Suche + + + Name + + + + The calculated value + Berechneter Wert + + + Formula + Formel + + + Details + Details + + + Name: + Name: + + + Calculated value: + Berechneter Wert: + + + Formula: + Formel: + + + Calculation + Berechnung + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + Beschreibung: + + + Move measurement up + Maß nach oben bewegen + + + Move measurement down + Maß nach unten bewegen + + + measurement + + + + Error + Fehler + + + Empty field. + Leeres Eingabefeld. + + + Edit measurement + Maß bearbeiten + + + Empty field + Leeres Eingabefeld + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Wert + + + Parser error: %1 + Auswertungsfehler: %1 + + + DialogFlippingByAxis Dialog @@ -4189,6 +4284,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7292,6 +7403,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7391,6 +7522,30 @@ Pattern Schnittmuster + + Name + + + + Value + Wert + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9077,6 +9232,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9521,6 +9692,10 @@ New group Neue Gruppe + + measurement + + VAbstractPieceData @@ -9991,6 +10166,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12755,6 +12966,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_el_GR.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_el_GR.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_el_GR.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_el_GR.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2178,6 +2178,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Εύρεση: + + + Search + Αναζήτηση + + + Name + Όνομα + + + The calculated value + Η υπολογισμένη τιμή + + + Formula + Φόρμουλα + + + Details + Λεπτομέρειες + + + Name: + Όνομα: + + + Calculated value: + Υπολογισμένη τιμή: + + + Formula: + Φόρμουλα: + + + Calculation + Υπολογισμός + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + Βοηθός φόρμουλας + + + Description: + Περιγραφή: + + + Move measurement up + Μετακίνηση μέτρησης προς τα πάνω + + + Move measurement down + Μετακίνηση μέτρησης προς τα κάτω + + + measurement + + + + Error + Σφάλμα + + + Empty field. + Κενό πεδίο. + + + Edit measurement + Επεξεργασία μέτρησης + + + Empty field + Κενό πεδίο + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Μη έγκυρο αποτέλεσμα. Η τιμή είναι άπειρη ή NaN. Παρακαλώ, ελέγξτε τους υπολογισμούς σας. + + + Value + Τιμή + + + Parser error: %1 + + + + DialogFlippingByAxis Dialog @@ -4179,6 +4278,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7254,6 +7369,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7353,6 +7488,30 @@ Pattern Πατρόν + + Name + Όνομα + + + Value + Τιμή + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -8982,6 +9141,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9418,6 +9593,10 @@ New group Νέα ομάδα + + measurement + + VAbstractPieceData @@ -9808,6 +9987,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12521,6 +12736,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_en_CA.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_en_CA.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_en_CA.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_en_CA.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2222,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Find: + + + Search + Search + + + Name + Name + + + The calculated value + The calculated value + + + Formula + Formula + + + Details + Details + + + Name: + Name: + + + Calculated value: + Calculated value: + + + Formula: + Formula: + + + Calculation + Calculation + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + Formula wizard + Formula wizard + + + Description: + Description: + + + Move measurement up + Move measurement up + + + Move measurement down + Move measurement down + + + measurement + + + + Error + Error + + + Empty field. + Empty field. + + + Edit measurement + Edit measurement + + + Empty field + Empty field + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + Value + Value + + + Parser error: %1 + Parser error: %1 + + + DialogFlippingByAxis Dialog @@ -4262,6 +4361,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7373,6 +7488,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7472,6 +7607,30 @@ Pattern Pattern + + Name + Name + + + Value + Value + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9206,6 +9365,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9661,6 +9836,10 @@ New group New group + + measurement + + VAbstractPieceData @@ -10135,6 +10314,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12972,6 +13187,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_en_IN.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_en_IN.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_en_IN.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_en_IN.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2222,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Find: + + + Search + Search + + + Name + Name + + + The calculated value + The calculated value + + + Formula + Formula + + + Details + Details + + + Name: + Name: + + + Calculated value: + Calculated value: + + + Formula: + Formula: + + + Calculation + Calculation + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + Formula wizard + Formula wizard + + + Description: + Description: + + + Move measurement up + Move measurement up + + + Move measurement down + Move measurement down + + + measurement + + + + Error + Error + + + Empty field. + Empty field. + + + Edit measurement + Edit measurement + + + Empty field + Empty field + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + Value + Value + + + Parser error: %1 + Parser error: %1 + + + DialogFlippingByAxis Dialog @@ -4262,6 +4361,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7373,6 +7488,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7472,6 +7607,30 @@ Pattern Pattern + + Name + Name + + + Value + Value + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9206,6 +9365,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9661,6 +9836,10 @@ New group New group + + measurement + + VAbstractPieceData @@ -10135,6 +10314,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12972,6 +13187,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_en_US.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_en_US.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_en_US.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_en_US.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2222,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Find: + + + Search + Search + + + Name + Name + + + The calculated value + The calculated value + + + Formula + Formula + + + Details + Details + + + Name: + Name: + + + Calculated value: + Calculated value: + + + Formula: + Formula: + + + Calculation + Calculation + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + Formula wizard + Formula wizard + + + Description: + Description: + + + Move measurement up + Move measurement up + + + Move measurement down + Move measurement down + + + measurement + + + + Error + Error + + + Empty field. + Empty field. + + + Edit measurement + Edit measurement + + + Empty field + Empty field + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + Value + Value + + + Parser error: %1 + Parser error: %1 + + + DialogFlippingByAxis Dialog @@ -4262,6 +4361,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7373,6 +7488,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7472,6 +7607,30 @@ Pattern Pattern + + Name + Name + + + Value + Value + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9206,6 +9365,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9661,6 +9836,10 @@ New group New group + + measurement + + VAbstractPieceData @@ -10135,6 +10314,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12972,6 +13187,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_es_ES.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_es_ES.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_es_ES.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_es_ES.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2223,6 +2223,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Buscar: + + + Search + Buscar + + + Name + Nombre + + + The calculated value + El valor calculado + + + Formula + Fórmula + + + Details + Detalles + + + Name: + Nombre: + + + Calculated value: + Valor calculado: + + + Formula: + Fórmula: + + + Calculation + Cálculo + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + Descripción: + + + Move measurement up + Mover medida arriba + + + Move measurement down + Mover medida abajo + + + measurement + + + + Error + Error + + + Empty field. + Campo vacío. + + + Edit measurement + Editar medida + + + Empty field + Campo vacío + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + + + + Parser error: %1 + Error en análisis: %1 + + + DialogFlippingByAxis Dialog @@ -4262,6 +4361,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7373,6 +7488,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7472,6 +7607,30 @@ Pattern Patrón + + Name + Nombre + + + Value + + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9205,6 +9364,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9660,6 +9835,10 @@ New group Nuevo grupo + + measurement + + VAbstractPieceData @@ -10134,6 +10313,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12971,6 +13186,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_fi_FI.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_fi_FI.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_fi_FI.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_fi_FI.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1850,6 +1850,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + Nimi + + + The calculated value + Laskettu arvo + + + Formula + Matemaattinen kaava + + + Details + Yksityiskohdat + + + Name: + Nmi: + + + Calculated value: + + + + Formula: + + + + Calculation + + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Näytä koko laskenta ikkunassa</p></body></html> + + + Formula wizard + + + + Description: + + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + Virhe + + + Empty field. + + + + Edit measurement + + + + Empty field + Tyhjä sarake + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Arvo + + + Parser error: %1 + Jäsentämis virhe: %1 + + + DialogFlippingByAxis Origin point: @@ -3761,6 +3860,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -6575,6 +6690,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -6642,6 +6777,30 @@ Pattern Kaava + + Name + Nimi + + + Value + Arvo + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -8156,6 +8315,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -8556,6 +8731,10 @@ New group + + measurement + + VAbstractPieceData @@ -8942,6 +9121,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -11613,6 +11828,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_fr_FR.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_fr_FR.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_fr_FR.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_fr_FR.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2222,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + Rechercher + + + Name + Nom + + + The calculated value + Valeur calculée + + + Formula + + + + Details + + + + Name: + + + + Calculated value: + Valeur calculée: + + + Formula: + Formule: + + + Calculation + + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + Description: + + + Move measurement up + Déplacer la mesure vers le haut + + + Move measurement down + Déplacer la mesure vers le bas + + + measurement + + + + Error + Erreur + + + Empty field. + Champ vide. + + + Edit measurement + Editer les mesures + + + Empty field + Champ vide + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Valeur + + + Parser error: %1 + Erreur d'analyse : %1 + + + DialogFlippingByAxis Dialog @@ -4259,6 +4358,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7370,6 +7485,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7469,6 +7604,30 @@ Pattern Patron + + Name + Nom + + + Value + Valeur + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9191,6 +9350,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9642,6 +9817,10 @@ New group Nouveau groupe + + measurement + + VAbstractPieceData @@ -10112,6 +10291,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12932,6 +13147,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_he_IL.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_he_IL.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_he_IL.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_he_IL.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1475,6 +1475,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + + + + The calculated value + הערך המחושב + + + Formula + + + + Details + + + + Name: + + + + Calculated value: + + + + Formula: + + + + Calculation + + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + + + + Empty field. + + + + Edit measurement + + + + Empty field + + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + + + + Parser error: %1 + + + + DialogFlippingByAxis Origin point: @@ -3135,6 +3234,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -5692,6 +5807,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -5759,6 +5894,30 @@ Pattern + + Name + + + + Value + + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -7171,6 +7330,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -7490,6 +7665,10 @@ New group + + measurement + + VAbstractPieceData @@ -7876,6 +8055,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -10382,6 +10597,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VWidgetDetails diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_id_ID.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_id_ID.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_id_ID.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_id_ID.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1742,6 +1742,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + Nama + + + The calculated value + + + + Formula + rumus + + + Details + + + + Name: + + + + Calculated value: + + + + Formula: + + + + Calculation + + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + + + + Empty field. + + + + Edit measurement + + + + Empty field + + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + + + + Parser error: %1 + + + + DialogFlippingByAxis Origin point: @@ -3434,6 +3533,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -6036,6 +6151,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -6103,6 +6238,30 @@ Pattern Pola + + Name + Nama + + + Value + + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -7515,6 +7674,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -7876,6 +8051,10 @@ New group + + measurement + + VAbstractPieceData @@ -8262,6 +8441,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -10780,6 +10995,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VWidgetDetails diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_it_IT.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_it_IT.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_it_IT.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_it_IT.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2146,6 +2146,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Trova: + + + Search + Cerca + + + Name + + + + The calculated value + Valore calcolato + + + Formula + Formula + + + Details + Dettagli + + + Name: + Nome: + + + Calculated value: + Valore calcolato: + + + Formula: + Formula: + + + Calculation + + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + Formula magica + + + Description: + Descrizione: + + + Move measurement up + Sposta la misura sopra + + + Move measurement down + Sposta la misura sotto + + + measurement + + + + Error + Errore + + + Empty field. + Campo vuoto. + + + Edit measurement + Modifica misure + + + Empty field + Campo vuoto + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + + + + Parser error: %1 + + + + DialogFlippingByAxis Origin point: @@ -4166,6 +4265,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7273,6 +7388,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7368,6 +7503,30 @@ Pattern Modello + + Name + + + + Value + + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9086,6 +9245,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9537,6 +9712,10 @@ New group Nuovo gruppo + + measurement + + VAbstractPieceData @@ -10003,6 +10182,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12653,6 +12868,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_nl_NL.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_nl_NL.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_nl_NL.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_nl_NL.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1657,10 +1657,6 @@ Voeg tijdelijke aanduidingen toe - Insert... - Voeg toe.... - - Preview Voorbeeld @@ -2226,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Vind: + + + Search + Zoek + + + Name + Naam + + + The calculated value + + + + Formula + Formule + + + Details + Details + + + Name: + Naam: + + + Calculated value: + + + + Formula: + Formule: + + + Calculation + Berekening + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + Formule wizard + + + Description: + Beschrijving: + + + Move measurement up + Verplaats maten omhoog + + + Move measurement down + Verplaats maten omlaag + + + measurement + + + + Error + Fout + + + Empty field. + Leeg veld. + + + Edit measurement + Verander maten + + + Empty field + Leeg veld + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Ongeldig resultaat. Waarde is oneindig of NaN. Controleer uw berekeningen. + + + Value + Waarde + + + Parser error: %1 + + + + DialogFlippingByAxis Dialog @@ -4266,6 +4361,22 @@ Cut on fabric Knip in stof + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7376,6 +7487,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7475,6 +7606,30 @@ Pattern Patroon + + Name + Naam + + + Value + Waarde + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -8945,10 +9100,6 @@ Leeg - Open multisize ... - Open meerdere maten... - - Export from multisize measurements is not supported. Exporteren van meerdere maten metingen wordt niet ondersteunt. @@ -9213,6 +9364,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. Deze optie heeft alleen effect als de optie om een tweede knipje te laten zien op de zoomlijn aangevinkt is in de algemene opties. Deze optie staat het vervolgens toe om het tweede knipje voor dit specifieke knipje, uit te zetten. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9668,6 +9835,10 @@ New group Nieuwe naam + + measurement + + VAbstractPieceData @@ -10142,6 +10313,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. Stel hoogte waarde van een patroon bestand vast, welke geopend zijn met meerdere maten metingen (exporteer modus). Geldige waarde: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -10754,13 +10961,6 @@ - VToolCut - - Length - Lengte - - - VToolCutArc Arc @@ -12986,6 +13186,11 @@ placeholder gebruikersMateriaal + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_pl_PL.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_pl_PL.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_pl_PL.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_pl_PL.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1932,6 +1932,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + + + + The calculated value + + + + Formula + Formuła + + + Details + Detale + + + Name: + + + + Calculated value: + + + + Formula: + + + + Calculation + Obliczenia + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Pokaż pełną kalkulację w oknie wiadomości</p></body></html> + + + Formula wizard + Kreator formuły + + + Description: + + + + Move measurement up + Przesuń wymiar wyżej + + + Move measurement down + Przesuń wymiar niżej + + + measurement + + + + Error + Błąd + + + Empty field. + + + + Edit measurement + Edytuj pomiar + + + Empty field + + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Wartość + + + Parser error: %1 + + + + DialogFlippingByAxis Dialog @@ -3671,6 +3770,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -6372,6 +6487,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -6439,6 +6574,30 @@ Pattern Wykrój + + Name + + + + Value + Wartość + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -7996,6 +8155,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -8432,6 +8607,10 @@ New group Nowa grupa + + measurement + + VAbstractPieceData @@ -8818,6 +8997,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -11382,6 +11597,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VWidgetDetails diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_pt_BR.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_pt_BR.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_pt_BR.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_pt_BR.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2190,6 +2190,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Pesquisar: + + + Search + Buscar + + + Name + Nome + + + The calculated value + O valor calculado + + + Formula + Fórmula + + + Details + Detalhes + + + Name: + Nome: + + + Calculated value: + Valor calculado: + + + Formula: + Fórmula: + + + Calculation + Cálculo + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Mostrar cálculo completo na caixa de mensagem</p></body></html> + + + Formula wizard + Auxiliar de fórmula + + + Description: + Descrição: + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + Erro + + + Empty field. + Campo vazio. + + + Edit measurement + + + + Empty field + Campo vazio + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Resultado inválido. Valor é infinito ou não é um número. Por favor, verifique seus cálculos. + + + Value + Valor + + + Parser error: %1 + + + + DialogFlippingByAxis Dialog @@ -4137,6 +4236,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -6882,6 +6997,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -6949,6 +7084,30 @@ Pattern Molde + + Name + Nome + + + Value + Valor + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -8403,6 +8562,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -8811,6 +8986,10 @@ New group Novo grupo + + measurement + + VAbstractPieceData @@ -9197,6 +9376,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -11803,6 +12018,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_ro_RO.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_ro_RO.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_ro_RO.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_ro_RO.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2015,6 +2015,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + Nume + + + The calculated value + Valoarea calculată + + + Formula + Formula + + + Details + Detalii + + + Name: + + + + Calculated value: + + + + Formula: + + + + Calculation + Calcul + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p> Arată calcul complet în message box </p></body></html> + + + Formula wizard + Asistent Formulă + + + Description: + + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + Eroare + + + Empty field. + + + + Edit measurement + + + + Empty field + Câmp gol + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Valoare + + + Parser error: %1 + Eroare Parser: %1 + + + DialogFlippingByAxis Origin point: @@ -3846,6 +3945,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -6615,6 +6730,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -6682,6 +6817,30 @@ Pattern Model + + Name + Nume + + + Value + Valoare + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -8125,6 +8284,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -8521,6 +8696,10 @@ New group + + measurement + + VAbstractPieceData @@ -8907,6 +9086,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -11476,6 +11691,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VWidgetDetails diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_ru_RU.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_ru_RU.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_ru_RU.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_ru_RU.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2222,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Найти: + + + Search + Поиск + + + Name + + + + The calculated value + Рассчитанное значение + + + Formula + Формула + + + Details + Детали + + + Name: + + + + Calculated value: + + + + Formula: + Формула: + + + Calculation + Расчёт + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + Мастер формул + + + Description: + Описание: + + + Move measurement up + Переместить мерку выше + + + Move measurement down + Переместить мерку ниже + + + measurement + + + + Error + Ошибка + + + Empty field. + Пустое поле. + + + Edit measurement + Изменить мерку + + + Empty field + Пустое поле + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Недопустимый результат. Значение бесконечность или NaN. Пожалуйста, проверьте расчеты. + + + Value + Значение + + + Parser error: %1 + + + + DialogFlippingByAxis Dialog @@ -4262,6 +4361,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7373,6 +7488,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7472,6 +7607,30 @@ Pattern Выкройка + + Name + + + + Value + Значение + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9206,6 +9365,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. Эта опция имеет эффект только если вторая надсечка на линии шва включена в глобальных настройках. Опция позволяет отключать вторую надсечку только для этой надсечки. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9661,6 +9836,10 @@ New group Новая группа + + measurement + + VAbstractPieceData @@ -10135,6 +10314,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12977,6 +13192,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2226,6 +2226,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Find: + + + Search + Search + + + Name + Name + + + The calculated value + The calculated value + + + Formula + Formula + + + Details + Details + + + Name: + Name: + + + Calculated value: + Calculated value: + + + Formula: + Formula: + + + Calculation + Calculation + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + Formula wizard + Formula wizard + + + Description: + Description: + + + Move measurement up + Move measurement up + + + Move measurement down + Move measurement down + + + measurement + + + + Error + Error + + + Empty field. + Empty field. + + + Edit measurement + Edit measurement + + + Empty field + Empty field + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + Value + + + Parser error: %1 + Parser error: %1 + + + DialogFlippingByAxis Dialog @@ -4270,6 +4369,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7537,6 +7652,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7636,6 +7771,30 @@ Pattern Pattern + + Name + Name + + + Value + Value + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9446,6 +9605,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9912,6 +10087,10 @@ New group New group + + measurement + + VAbstractPieceData @@ -10386,6 +10565,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -13260,6 +13475,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_uk_UA.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_uk_UA.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_uk_UA.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_uk_UA.ts 2017-10-02 06:21:35.000000000 +0000 @@ -2222,6 +2222,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + Знайти: + + + Search + Пошук + + + Name + + + + The calculated value + Розраховане значення + + + Formula + Формула + + + Details + Деталь + + + Name: + Імя: + + + Calculated value: + Розраховане значення: + + + Formula: + Формула: + + + Calculation + Розрахунок + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + Опис: + + + Move measurement up + Перемістити мірку вгору + + + Move measurement down + Перемістити мірку вниз + + + measurement + + + + Error + Помилка + + + Empty field. + Порожнє поле. + + + Edit measurement + Редагувати мірки + + + Empty field + Пусте поле + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + Недійсний результат. Значення безкінечність чи NaN, перевірте ваші розрахунки. + + + Value + Значення + + + Parser error: %1 + Помилка синтаксичного аналізу: %1 + + + DialogFlippingByAxis Dialog @@ -4262,6 +4361,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -7372,6 +7487,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -7471,6 +7606,30 @@ Pattern Лекало + + Name + + + + Value + Значення + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -9205,6 +9364,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. Ця опція має ефект тільки коли друга надсічка на лінії шву включена в глобальних налаштуваннях. Ця опція допомагає віключати другу надсічку для цієї надсічки. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -9660,6 +9835,10 @@ New group Нова група + + measurement + + VAbstractPieceData @@ -10134,6 +10313,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -12970,6 +13185,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VVITConverter diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_zh_CN.ts valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_zh_CN.ts --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/share/translations/valentina_zh_CN.ts 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/share/translations/valentina_zh_CN.ts 2017-10-02 06:21:35.000000000 +0000 @@ -1589,6 +1589,105 @@ + DialogFinalMeasurements + + Final measurements + + + + Find: + + + + Search + + + + Name + + + + The calculated value + + + + Formula + + + + Details + + + + Name: + + + + Calculated value: + + + + Formula: + + + + Calculation + 打算 + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + Formula wizard + + + + Description: + + + + Move measurement up + + + + Move measurement down + + + + measurement + + + + Error + 错误 + + + Empty field. + + + + Edit measurement + + + + Empty field + + + + Invalid result. Value is infinite or NaN. Please, check your calculations. + + + + Value + + + + Parser error: %1 + + + + DialogFlippingByAxis Origin point: @@ -3233,6 +3332,22 @@ Cut on fabric + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + DialogPin @@ -5762,6 +5877,26 @@ Save… + + Final measurements + + + + Export Final Measurements to CSV + + + + You can't export empty scene. Please, include at least one detail in layout. + + + + Export final measurements error. + + + + Destination path is empty. + + MainWindowsNoGUI @@ -5829,6 +5964,30 @@ Pattern 样板 + + Name + + + + Value + + + + Export final measurements error. + + + + Value in line %1 is infinite or NaN. Please, check your calculations. + + + + Parser error at line %1: %2. + + + + File error %1. + + MoveDoubleLabel @@ -7271,6 +7430,22 @@ This option has effect only if the second passmark on seam line enabled in global preferences. The option helps disable the second passmark for this passmark only. + + Select if need designate the corner point as a passmark. Show only left passmark. + + + + Intersection (only left) + + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + + Intersection (only right) + + TabPaths @@ -7647,6 +7822,10 @@ New group + + measurement + + VAbstractPieceData @@ -8033,6 +8212,42 @@ Set height value a pattern file, that was opened with multisize measurements (export mode). Valid values: %1cm. + + Export only details that match a piece name regex. + + + + The name regex + + + + Export to csv with header. By default disabled. + + + + Specify codec that will be used to save data. List of supported codecs provided by Qt. Default value depend from system. On Windows, the codec will be based on a system locale. On Unix systems, the codec will might fall back to using the iconv library if no builtin codec for the locale can be found. Valid values for this installation: + + + + Codec name + + + + Specify csv separator character. Default value is '%1'. Valid characters: + + + + Separator character + + + + Calling this command enable exporting final measurements. Specify path to csv file with final measurements. The path must contain path to directory and name of file. It can be absolute or relatetive. In case of relative path will be used current working directory to calc a destination path. + + + + Path to csv file + + VCommonSettings @@ -10535,6 +10750,11 @@ placeholder + + r2cm + round to up to 1 decimal + + VWidgetDetails diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/tape/tmainwindow.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/tape/tmainwindow.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/tape/tmainwindow.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/tape/tmainwindow.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -32,7 +32,6 @@ #include "dialogs/dialognewmeasurements.h" #include "dialogs/dialogmdatabase.h" #include "dialogs/dialogtapepreferences.h" -#include "dialogs/dialogexporttocsv.h" #include "../vpatterndb/calculator.h" #include "../vpatterndb/pmsystems.h" #include "../ifc/ifcdef.h" @@ -663,7 +662,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void TMainWindow::ExportToCSVData(const QString &fileName, const DialogExportToCSV &dialog) +void TMainWindow::ExportToCSVData(const QString &fileName, bool withHeader, int mib, const QChar &separator) { QxtCsvModel csv; const int columns = ui->tableWidget->columnCount(); @@ -678,7 +677,7 @@ } } - if (dialog.WithHeader()) + if (withHeader) { int colCount = 0; for (int column = 0; column < columns; ++column) @@ -708,7 +707,8 @@ } } - csv.toCSV(fileName, dialog.WithHeader(), dialog.Separator(), QTextCodec::codecForMib(dialog.SelectedMib())); + QString error; + csv.toCSV(fileName, error, withHeader, separator, QTextCodec::codecForMib(mib)); } //--------------------------------------------------------------------------------------------------------------------- @@ -1506,16 +1506,7 @@ ui->plainTextEditFormula->blockSignals(true); - QString formula; - try - { - formula = qApp->TrVars()->FormulaToUser(meash->GetFormula(), qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - formula = meash->GetFormula(); - } + QString formula = VTranslateVars::TryFormulaToUser(meash->GetFormula(), qApp->Settings()->GetOsSeparator()); ui->plainTextEditFormula->setPlainText(formula); ui->plainTextEditFormula->blockSignals(false); @@ -1895,7 +1886,7 @@ connect(ui->actionSaveAs, &QAction::triggered, this, &TMainWindow::FileSaveAs); ui->actionSaveAs->setShortcuts(QKeySequence::SaveAs); - connect(ui->actionExportToCSV, &QAction::triggered, this, &TMainWindow::ExportToCSV); + connect(ui->actionExportToCSV, &QAction::triggered, this, &TMainWindow::ExportDataToCSV); connect(ui->actionReadOnly, &QAction::triggered, this, [this](bool ro) { if (not mIsReadOnly) @@ -2416,16 +2407,7 @@ AddCell(locale().toString(value), currentRow, ColumnCalcValue, Qt::AlignHCenter | Qt::AlignVCenter, meash->IsFormulaOk()); // calculated value - QString formula; - try - { - formula = qApp->TrVars()->FormulaToUser(meash->GetFormula(), qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - formula = meash->GetFormula(); - } + QString formula = VTranslateVars::TryFormulaToUser(meash->GetFormula(), qApp->Settings()->GetOsSeparator()); AddCell(formula, currentRow, ColumnFormula, Qt::AlignVCenter); // formula } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/tape/tmainwindow.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/tape/tmainwindow.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/tape/tmainwindow.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/tape/tmainwindow.h 2017-10-02 06:21:35.000000000 +0000 @@ -70,7 +70,8 @@ virtual void changeEvent(QEvent* event) Q_DECL_OVERRIDE; virtual void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; virtual bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE; - virtual void ExportToCSVData(const QString &fileName, const DialogExportToCSV &dialog) Q_DECL_FINAL; + virtual void ExportToCSVData(const QString &fileName, bool withHeader, int mib, + const QChar &separator) Q_DECL_FINAL; private slots: void FileNew(); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/core/vapplication.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/core/vapplication.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/core/vapplication.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/core/vapplication.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -504,6 +504,7 @@ //--------------------------------------------------------------------------------------------------------------------- void VApplication::ClearOldLogs() const { + const QString workingDirectory = QDir::currentPath();// Save the app working directory QDir logsDir(LogDirPath()); logsDir.setNameFilters(QStringList("*.log")); logsDir.setCurrent(LogDirPath()); @@ -541,6 +542,8 @@ { qCDebug(vApp, "There are no old logs."); } + + QDir::setCurrent(workingDirectory); // Restore working directory } //--------------------------------------------------------------------------------------------------------------------- diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/core/vcmdexport.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/core/vcmdexport.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/core/vcmdexport.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/core/vcmdexport.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -33,8 +33,10 @@ #include "../vformat/vmeasurements.h" #include "../vmisc/commandoptions.h" #include "../vmisc/vsettings.h" +#include "../vmisc/dialogs/dialogexporttocsv.h" #include "../vlayout/vlayoutgenerator.h" #include +#include VCommandLinePtr VCommandLine::instance = nullptr; @@ -114,6 +116,12 @@ "positioned in the details mode. Any layout related" " options will be ignored."))); + optionsIndex.insert(LONG_OPTION_EXPORTSUCHDETAILS, index++); + options.append(new QCommandLineOption(QStringList() << LONG_OPTION_EXPORTSUCHDETAILS, + translate("VCommandLine", "Export only details that match a piece name " + "regex."), + translate("VCommandLine", "The name regex"))); + optionsIndex.insert(LONG_OPTION_GRADATIONSIZE, index++); options.append(new QCommandLineOption(QStringList() << SINGLE_OPTION_GRADATIONSIZE << LONG_OPTION_GRADATIONSIZE, translate("VCommandLine", "Set size value a pattern file, that was opened " @@ -272,6 +280,46 @@ "enabled). Alternatively you can use the " "%1 environment variable.") .arg("QT_AUTO_SCREEN_SCALE_FACTOR=0"))); + + //================================================================================================================= + optionsIndex.insert(LONG_OPTION_CSVWITHHEADER, index++); + options.append(new QCommandLineOption(QStringList() << LONG_OPTION_CSVWITHHEADER, + translate("VCommandLine", "Export to csv with header. By default " + "disabled."))); + + optionsIndex.insert(LONG_OPTION_CSVCODEC, index++); + options.append(new QCommandLineOption(QStringList() << LONG_OPTION_CSVCODEC, + translate("VCommandLine", "Specify codec that will be used to save data. List" + " of supported codecs provided by Qt. Default " + "value depend from system. On Windows, the codec " + "will be based on a system locale. On Unix " + "systems, the codec will might fall back to using " + "the iconv library if no builtin codec for the " + "locale can be found. Valid values for this " + "installation:") + + DialogExportToCSV::MakeHelpCodecsList(), + translate("VCommandLine", "Codec name"), QString("%1") + .arg(QString(QTextCodec::codecForLocale()->name())))); + + optionsIndex.insert(LONG_OPTION_CSVSEPARATOR, index++); + options.append(new QCommandLineOption(QStringList() << LONG_OPTION_CSVSEPARATOR, + translate("VCommandLine", "Specify csv separator character. Default value " + "is '%1'. Valid characters:") + .arg(VCommonSettings::GetDefCSVSeparator()) + + DialogExportToCSV::MakeHelpSeparatorList(), + translate("VCommandLine", "Separator character"), QString("%1") + .arg(VCommonSettings::GetDefCSVSeparator()))); + + optionsIndex.insert(LONG_OPTION_CSVEXPORTFM, index++); + options.append(new QCommandLineOption(QStringList() << LONG_OPTION_CSVEXPORTFM, + translate("VCommandLine", "Calling this command enable exporting final " + "measurements. Specify path to csv file with " + "final measurements. The path must contain path " + "to directory and name of file. It can be " + "absolute or relatetive. In case of " + "relative path will be used current working " + "directory to calc a destination path."), + translate("VCommandLine", "Path to csv file"))); } //------------------------------------------------------------------------------------------------------ @@ -493,7 +541,9 @@ instance->parser.process(app); //fixme: in case of additional options/modes which will need to disable GUI - add it here too - instance->isGuiEnabled = not (instance->IsExportEnabled() || instance->IsTestModeEnabled()); + instance->isGuiEnabled = not (instance->IsExportEnabled() + || instance->IsTestModeEnabled() + || instance->IsExportFMEnabled()); return instance; } @@ -541,6 +591,18 @@ return r; } +//--------------------------------------------------------------------------------------------------------------------- +bool VCommandLine::IsExportFMEnabled() const +{ + const bool r = parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVEXPORTFM))); + if (r && parser.positionalArguments().size() != 1) + { + qCritical() << translate("VCommandLine", "Export options can be used with single input file only.") << "/n"; + const_cast(this)->parser.showHelp(V_EX_USAGE); + } + return r; +} + //------------------------------------------------------------------------------------------------------ DialogLayoutSettings::PaperSizeTemplate VCommandLine::OptPaperSize() const { @@ -650,6 +712,50 @@ } //--------------------------------------------------------------------------------------------------------------------- +int VCommandLine::IsCSVWithHeader() const +{ + return parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVWITHHEADER))); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VCommandLine::OptExportSuchDetails() const +{ + QString path; + if (IsExportEnabled()) + { + path = parser.value(*optionsUsed.value(optionsIndex.value(LONG_OPTION_EXPORTSUCHDETAILS))); + } + + return path; +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VCommandLine::OptCSVCodecName() const +{ + return parser.value(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVCODEC))); +} + +//--------------------------------------------------------------------------------------------------------------------- +QChar VCommandLine::OptCSVSeparator() const +{ + const QString value = parser.value(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVSEPARATOR))); + if (not value.isEmpty()) + { + return value.at(0); + } + else + { + return QChar(); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VCommandLine::OptExportFMTo() const +{ + return parser.value(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVEXPORTFM))); +} + +//--------------------------------------------------------------------------------------------------------------------- QStringList VCommandLine::OptInputFileNames() const { return parser.positionalArguments(); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/core/vcmdexport.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/core/vcmdexport.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/core/vcmdexport.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/core/vcmdexport.h 2017-10-02 06:21:35.000000000 +0000 @@ -62,6 +62,10 @@ //export enabled bool IsExportEnabled() const; + //@brief tests if user enabled export final measurements from cmd, throws exception if not exactly 1 input VAL + //file supplied in case export enabled + bool IsExportFMEnabled() const; + //@brief returns path to custom measure file or empty string QString OptMeasurePath() const; @@ -78,6 +82,19 @@ int IsBinaryDXF() const; int IsTextAsPaths() const; int IsExportOnlyDetails() const; + int IsCSVWithHeader() const; + + //@brief returns the piece name regex or empty string if not set + QString OptExportSuchDetails() const; + + //@brief returns user selected csv codec or empty string if not set + QString OptCSVCodecName() const; + + //@brief returns user selected csv separator or empty string if not set + QChar OptCSVSeparator() const; + + //@brief returns the destination path for export final measurements or empty string if not set + QString OptExportFMTo() const; //generator creation is moved here ... because most options are for it only, so no need to create extra getters... //@brief creates VLayoutGenerator diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.cpp 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -0,0 +1,743 @@ +/************************************************************************ + ** + ** @file dialogfinalmeasurements.cpp + ** @author Roman Telezhynskyi + ** @date 26 9, 2017 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2017 Valentina project + ** 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 . + ** + *************************************************************************/ + +#include "dialogfinalmeasurements.h" +#include "ui_dialogfinalmeasurements.h" +#include "../vmisc/vsettings.h" +#include "../qmuparser/qmudef.h" +#include "../qmuparser/qmutokenparser.h" +#include "../vpatterndb/vtranslatevars.h" +#include "../vpatterndb/calculator.h" +#include "../vtools/dialogs/support/dialogeditwrongformula.h" + +#define DIALOG_MAX_FORMULA_HEIGHT 64 + +namespace +{ +#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0) +template +void Move(QVector &vector, int from, int to) +{ + Q_ASSERT_X(from >= 0 && from < vector.size(), "QVector::move(int,int)", "'from' is out-of-range"); + Q_ASSERT_X(to >= 0 && to < vector.size(), "QVector::move(int,int)", "'to' is out-of-range"); + if (from == to) // don't detach when no-op + { + return; + } + T * const b = vector.begin(); + if (from < to) + { + std::rotate(b + from, b + from + 1, b + to + 1); + } + else + { + std::rotate(b + to, b + from, b + from + 1); + } +} +#endif // QT_VERSION < QT_VERSION_CHECK(5, 6, 0) +} + +//--------------------------------------------------------------------------------------------------------------------- +DialogFinalMeasurements::DialogFinalMeasurements(VPattern *doc, QWidget *parent) + : QDialog(parent), + ui(new Ui::DialogFinalMeasurements), + m_doc(doc), + m_data(doc->GetCompleteData()), + m_measurements(doc->GetFinalMeasurements()), + m_search(), + formulaBaseHeight(0), + m_isInitialized(false) +{ + ui->setupUi(this); + + ui->lineEditName->setClearButtonEnabled(true); + ui->lineEditFind->setClearButtonEnabled(true); + + ui->lineEditFind->installEventFilter(this); + + m_search = QSharedPointer(new VTableSearch(ui->tableWidget)); + + formulaBaseHeight = ui->plainTextEditFormula->height(); + ui->plainTextEditFormula->installEventFilter(this); + + qApp->Settings()->GetOsSeparator() ? setLocale(QLocale()) : setLocale(QLocale::c()); + + qCDebug(vDialog, "Showing variables."); + ShowUnits(); + + const bool freshCall = true; + FillFinalMeasurements(freshCall); + + connect(m_doc, &VPattern::FullUpdateFromFile, this, &DialogFinalMeasurements::FullUpdateFromFile); + + ui->lineEditName->setValidator( new QRegularExpressionValidator(QRegularExpression( + QLatin1String("^$|")+NameRegExp()), this)); + + connect(ui->tableWidget, &QTableWidget::itemSelectionChanged, this, + &DialogFinalMeasurements::ShowFinalMeasurementDetails); + + connect(ui->toolButtonAdd, &QToolButton::clicked, this, &DialogFinalMeasurements::Add); + connect(ui->toolButtonRemove, &QToolButton::clicked, this, &DialogFinalMeasurements::Remove); + connect(ui->toolButtonUp, &QToolButton::clicked, this, &DialogFinalMeasurements::MoveUp); + connect(ui->toolButtonDown, &QToolButton::clicked, this, &DialogFinalMeasurements::MoveDown); + connect(ui->pushButtonGrow, &QPushButton::clicked, this, &DialogFinalMeasurements::DeployFormula); + connect(ui->toolButtonExpr, &QToolButton::clicked, this, &DialogFinalMeasurements::Fx); + connect(ui->lineEditName, &QLineEdit::textEdited, this, &DialogFinalMeasurements::SaveName); + connect(ui->plainTextEditDescription, &QPlainTextEdit::textChanged, this, + &DialogFinalMeasurements::SaveDescription); + connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, &DialogFinalMeasurements::SaveFormula); + connect(ui->lineEditFind, &QLineEdit::textEdited, this, [this](const QString &term){m_search->Find(term);}); + connect(ui->toolButtonFindPrevious, &QToolButton::clicked, this, [this](){m_search->FindPrevious();}); + connect(ui->toolButtonFindNext, &QToolButton::clicked, this, [this](){m_search->FindNext();}); + + connect(m_search.data(), &VTableSearch::HasResult, this, [this] (bool state) + { + ui->toolButtonFindPrevious->setEnabled(state); + }); + + connect(m_search.data(), &VTableSearch::HasResult, this, [this] (bool state) + { + ui->toolButtonFindNext->setEnabled(state); + }); + + if (ui->tableWidget->rowCount() > 0) + { + ui->tableWidget->selectRow(0); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +DialogFinalMeasurements::~DialogFinalMeasurements() +{ + delete ui; +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::closeEvent(QCloseEvent *event) +{ + ui->plainTextEditFormula->blockSignals(true); + ui->lineEditName->blockSignals(true); + ui->plainTextEditDescription->blockSignals(true); + + QDialog::closeEvent(event); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + { + // retranslate designer form (single inheritance approach) + ui->retranslateUi(this); + FullUpdateFromFile(); + } + // remember to call base class implementation + QDialog::changeEvent(event); +} + +//--------------------------------------------------------------------------------------------------------------------- +bool DialogFinalMeasurements::eventFilter(QObject *object, QEvent *event) +{ + if (QLineEdit *textEdit = qobject_cast(object)) + { + if (event->type() == QEvent::KeyPress) + { + QKeyEvent *keyEvent = static_cast(event); + if ((keyEvent->key() == Qt::Key_Period) && (keyEvent->modifiers() & Qt::KeypadModifier)) + { + if (qApp->Settings()->GetOsSeparator()) + { + textEdit->insert(QLocale().decimalPoint()); + } + else + { + textEdit->insert(QLocale::c().decimalPoint()); + } + return true; + } + } + } + else + { + // pass the event on to the parent class + return QDialog::eventFilter(object, event); + } + return false;// pass the event to the widget +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::showEvent(QShowEvent *event) +{ + QDialog::showEvent(event); + if ( event->spontaneous() ) + { + return; + } + + if (m_isInitialized) + { + return; + } + // do your init stuff here + + const QSize sz = qApp->Settings()->GetFinalMeasurementsDialogSize(); + if (not sz.isEmpty()) + { + resize(sz); + } + + m_isInitialized = true;//first show windows are held +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::resizeEvent(QResizeEvent *event) +{ + // remember the size for the next time this dialog is opened, but only + // if widget was already initialized, which rules out the resize at + // dialog creating, which would + if (m_isInitialized) + { + qApp->Settings()->SetFinalMeasurementsDialogSize(size()); + } + QDialog::resizeEvent(event); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::ShowFinalMeasurementDetails() +{ + if (ui->tableWidget->rowCount() > 0 && m_measurements.size() == ui->tableWidget->rowCount()) + { + EnableDetails(true); + + const VFinalMeasurement &m = m_measurements.at(ui->tableWidget->currentRow()); + + ui->lineEditName->blockSignals(true); + ui->lineEditName->setText(m.name); + ui->lineEditName->blockSignals(false); + + ui->plainTextEditDescription->blockSignals(true); + ui->plainTextEditDescription->setPlainText(m.description); + ui->plainTextEditDescription->blockSignals(false); + + EvalUserFormula(m.formula, false); + ui->plainTextEditFormula->blockSignals(true); + + const QString formula = VTranslateVars::TryFormulaToUser(m.formula, qApp->Settings()->GetOsSeparator()); + + ui->plainTextEditFormula->setPlainText(formula); + ui->plainTextEditFormula->blockSignals(false); + } + else + { + EnableDetails(false); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::Add() +{ + const int currentRow = ui->tableWidget->currentRow()+1; + + VFinalMeasurement m; + m.name = tr("measurement"); + m.formula = "0"; + + m_measurements.append(m); + + UpdateTree(); + ui->tableWidget->selectRow(currentRow); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::Remove() +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row >= m_measurements.size()) + { + return; + } + + m_measurements.remove(row); + + UpdateTree(); + + if (ui->tableWidget->rowCount() > 0) + { + ui->tableWidget->selectRow(0); + } + else + { + EnableDetails(false); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::MoveUp() +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row == 0 || row >= m_measurements.size()) + { + return; + } + +#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0) + Move(m_measurements, row, row-1); +#else + m_measurements.move(row, row-1); +#endif + + UpdateTree(); + + ui->tableWidget->selectRow(row-1); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::MoveDown() +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row == ui->tableWidget->rowCount()-1 || row >= m_measurements.size()) + { + return; + } + +#if QT_VERSION < QT_VERSION_CHECK(5, 6, 0) + Move(m_measurements, row, row+1); +#else + m_measurements.move(row, row+1); +#endif + + UpdateTree(); + + ui->tableWidget->selectRow(row+1); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::SaveName(const QString &text) +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row >= m_measurements.size()) + { + return; + } + + m_measurements[row].name = text.isEmpty() ? tr("measurement") : text; + + UpdateTree(); + + ui->tableWidget->blockSignals(true); + ui->tableWidget->selectRow(row); + ui->tableWidget->blockSignals(false); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::SaveDescription() +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row >= m_measurements.size()) + { + return; + } + + const QTextCursor cursor = ui->plainTextEditDescription->textCursor(); + + m_measurements[row].description = ui->plainTextEditDescription->toPlainText(); + + UpdateTree(); + + ui->tableWidget->blockSignals(true); + ui->tableWidget->selectRow(row); + ui->tableWidget->blockSignals(false); + ui->plainTextEditDescription->setTextCursor(cursor); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::SaveFormula() +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row >= m_measurements.size()) + { + return; + } + + // Replace line return character with spaces for calc if exist + QString text = ui->plainTextEditFormula->toPlainText(); + text.replace("\n", " "); + + QTableWidgetItem *formulaField = ui->tableWidget->item(row, 2); + if (formulaField->text() == text) + { + QTableWidgetItem *result = ui->tableWidget->item(row, 1); + //Show unit in dialog lable (cm, mm or inch) + const QString postfix = UnitsToStr(qApp->patternUnit()); + ui->labelCalculatedValue->setText(result->text() + " " +postfix); + return; + } + + if (text.isEmpty()) + { + //Show unit in dialog lable (cm, mm or inch) + const QString postfix = UnitsToStr(qApp->patternUnit()); + ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field.")); + return; + } + + if (not EvalUserFormula(text, true)) + { + return; + } + + try + { + m_measurements[row].formula = qApp->TrVars()->FormulaFromUser(text, qApp->Settings()->GetOsSeparator()); + } + catch (qmu::QmuParserError &e) // Just in case something bad will happen + { + Q_UNUSED(e) + return; + } + + const QTextCursor cursor = ui->plainTextEditFormula->textCursor(); + + UpdateTree(); + + ui->tableWidget->blockSignals(true); + ui->tableWidget->selectRow(row); + ui->tableWidget->blockSignals(false); + ui->plainTextEditFormula->setTextCursor(cursor); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::DeployFormula() +{ + const QTextCursor cursor = ui->plainTextEditFormula->textCursor(); + + if (ui->plainTextEditFormula->height() < DIALOG_MAX_FORMULA_HEIGHT) + { + ui->plainTextEditFormula->setFixedHeight(DIALOG_MAX_FORMULA_HEIGHT); + //Set icon from theme (internal for Windows system) + ui->pushButtonGrow->setIcon(QIcon::fromTheme("go-next", + QIcon(":/icons/win.icon.theme/16x16/actions/go-next.png"))); + } + else + { + ui->plainTextEditFormula->setFixedHeight(formulaBaseHeight); + //Set icon from theme (internal for Windows system) + ui->pushButtonGrow->setIcon(QIcon::fromTheme("go-down", + QIcon(":/icons/win.icon.theme/16x16/actions/go-down.png"))); + } + + // I found that after change size of formula field, it was filed for angle formula, field for formula became black. + // This code prevent this. + setUpdatesEnabled(false); + repaint(); + setUpdatesEnabled(true); + + ui->plainTextEditFormula->setFocus(); + ui->plainTextEditFormula->setTextCursor(cursor); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::Fx() +{ + const int row = ui->tableWidget->currentRow(); + + if (row == -1 || row >= m_measurements.size()) + { + return; + } + + QScopedPointer dialog(new DialogEditWrongFormula(&m_data, NULL_ID, this)); + dialog->setWindowTitle(tr("Edit measurement")); + dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditFormula->toPlainText().replace("\n", " "), + qApp->Settings()->GetOsSeparator())); + const QString postfix = UnitsToStr(qApp->patternUnit(), true); + dialog->setPostfix(postfix);//Show unit in dialog lable (cm, mm or inch) + + if (dialog->exec() == QDialog::Accepted) + { + m_measurements[row].formula = dialog->GetFormula(); + UpdateTree(); + + ui->tableWidget->selectRow(row); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::FullUpdateFromFile() +{ + m_data = m_doc->GetCompleteData(); + m_measurements = m_doc->GetFinalMeasurements(); + + FillFinalMeasurements(); + + m_search->RefreshList(ui->lineEditFind->text()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::FillFinalMeasurements(bool freshCall) +{ + ui->tableWidget->blockSignals(true); + ui->tableWidget->clearContents(); + + ui->tableWidget->setRowCount(m_measurements.size()); + for (int i=0; i < m_measurements.size(); ++i) + { + const VFinalMeasurement &m = m_measurements.at(i); + + AddCell(m.name, i, 0, Qt::AlignVCenter); // name + + bool ok = true; + const qreal result = EvalFormula(m.formula, ok); + AddCell(qApp->LocaleToString(result), i, 1, Qt::AlignHCenter | Qt::AlignVCenter, ok); // calculated value + + const QString formula = VTranslateVars::TryFormulaFromUser(m.formula, qApp->Settings()->GetOsSeparator()); + AddCell(formula, i, 2, Qt::AlignVCenter); // formula + + } + + if (freshCall) + { + ui->tableWidget->resizeColumnsToContents(); + ui->tableWidget->resizeRowsToContents(); + } + ui->tableWidget->horizontalHeader()->setStretchLastSection(true); + ui->tableWidget->blockSignals(false); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::ShowUnits() +{ + const QString unit = UnitsToStr(qApp->patternUnit()); + + { + // calculated value + const QString header = ui->tableWidget->horizontalHeaderItem(1)->text(); + const QString unitHeader = QString("%1 (%2)").arg(header).arg(unit); + ui->tableWidget->horizontalHeaderItem(1)->setText(unitHeader); + } + + { + // formula + const QString header = ui->tableWidget->horizontalHeaderItem(2)->text(); + const QString unitHeader = QString("%1 (%2)").arg(header).arg(unit); + ui->tableWidget->horizontalHeaderItem(2)->setText(unitHeader); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::AddCell(const QString &text, int row, int column, int aligment, bool ok) +{ + QTableWidgetItem *item = new QTableWidgetItem(text); + item->setTextAlignment(aligment); + + // set the item non-editable (view only), and non-selectable + Qt::ItemFlags flags = item->flags(); + flags &= ~(Qt::ItemIsEditable); // reset/clear the flag + item->setFlags(flags); + + if (not ok) + { + QBrush brush = item->foreground(); + brush.setColor(Qt::red); + item->setForeground(brush); + } + + ui->tableWidget->setItem(row, column, item); +} + +//--------------------------------------------------------------------------------------------------------------------- +bool DialogFinalMeasurements::EvalUserFormula(const QString &formula, bool fromUser) +{ + const QString postfix = UnitsToStr(qApp->patternUnit());//Show unit in dialog lable (cm, mm or inch) + if (formula.isEmpty()) + { + ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field.")); + ui->labelCalculatedValue->setToolTip(tr("Empty field")); + return false; + } + else + { + try + { + QString f; + // Replace line return character with spaces for calc if exist + if (fromUser) + { + f = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + } + else + { + f = formula; + } + f.replace("\n", " "); + QScopedPointer cal(new Calculator()); + const qreal result = cal->EvalFormula(m_data.DataVariables(), f); + + if (qIsInf(result) || qIsNaN(result)) + { + ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + ")."); + ui->labelCalculatedValue->setToolTip(tr("Invalid result. Value is infinite or NaN. Please, check your " + "calculations.")); + return false; + } + + ui->labelCalculatedValue->setText(qApp->LocaleToString(result) + " " + postfix); + ui->labelCalculatedValue->setToolTip(tr("Value")); + return true; + } + catch (qmu::QmuParserError &e) + { + ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + + tr("Parser error: %1").arg(e.GetMsg())); + ui->labelCalculatedValue->setToolTip(tr("Parser error: %1").arg(e.GetMsg())); + return false; + } + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::Controls() +{ + ui->toolButtonRemove->setEnabled(ui->tableWidget->rowCount() > 0); + + if (ui->tableWidget->rowCount() >= 2) + { + if (ui->tableWidget->currentRow() == 0) + { + ui->toolButtonUp->setEnabled(false); + ui->toolButtonDown->setEnabled(true); + } + else if (ui->tableWidget->currentRow() == ui->tableWidget->rowCount()-1) + { + ui->toolButtonUp->setEnabled(true); + ui->toolButtonDown->setEnabled(false); + } + else + { + ui->toolButtonUp->setEnabled(true); + ui->toolButtonDown->setEnabled(true); + } + } + else + { + ui->toolButtonUp->setEnabled(false); + ui->toolButtonDown->setEnabled(false); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::EnableDetails(bool enabled) +{ + if (enabled) + { + Controls(); + } + else + { + ui->toolButtonRemove->setEnabled(enabled); + ui->toolButtonUp->setEnabled(enabled); + ui->toolButtonDown->setEnabled(enabled); + } + + if (not enabled) + { // Clear + ui->lineEditName->blockSignals(true); + ui->lineEditName->clear(); + ui->lineEditName->blockSignals(false); + + ui->plainTextEditDescription->blockSignals(true); + ui->plainTextEditDescription->clear(); + ui->plainTextEditDescription->blockSignals(false); + + ui->labelCalculatedValue->blockSignals(true); + ui->labelCalculatedValue->clear(); + ui->labelCalculatedValue->blockSignals(false); + + ui->plainTextEditFormula->blockSignals(true); + ui->plainTextEditFormula->clear(); + ui->plainTextEditFormula->blockSignals(false); + } + + ui->pushButtonGrow->setEnabled(enabled); + ui->toolButtonExpr->setEnabled(enabled); + ui->lineEditName->setEnabled(enabled); + ui->plainTextEditDescription->setEnabled(enabled); + ui->plainTextEditFormula->setEnabled(enabled); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFinalMeasurements::UpdateTree() +{ + int row = ui->tableWidget->currentRow(); + FillFinalMeasurements(); + ui->tableWidget->selectRow(row); + + m_search->RefreshList(ui->lineEditFind->text()); +} + +//--------------------------------------------------------------------------------------------------------------------- +qreal DialogFinalMeasurements::EvalFormula(const QString &formula, bool &ok) +{ + qreal result = 0; + if (formula.isEmpty()) + { + ok = false; + return result; + } + else + { + try + { + QString f = formula; + // Replace line return character with spaces for calc if exist + f.replace("\n", " "); + QScopedPointer cal(new Calculator()); + result = cal->EvalFormula(m_data.DataVariables(), f); + + if (qIsInf(result) || qIsNaN(result)) + { + ok = false; + return 0; + } + } + catch (qmu::QmuParserError &) + { + ok = false; + return 0; + } + } + + ok = true; + return result; +} diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.h 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.h 2017-10-02 06:21:35.000000000 +0000 @@ -0,0 +1,102 @@ +/************************************************************************ + ** + ** @file dialogfinalmeasurements.h + ** @author Roman Telezhynskyi + ** @date 26 9, 2017 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2017 Valentina project + ** 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 . + ** + *************************************************************************/ + +#ifndef DIALOGFINALMEASUREMENTS_H +#define DIALOGFINALMEASUREMENTS_H + +#include + +#include "../vmisc/vtablesearch.h" +#include "../vpatterndb/vcontainer.h" +#include "../xml/vpattern.h" + +namespace Ui +{ + class DialogFinalMeasurements; +} + +class DialogFinalMeasurements : public QDialog +{ + Q_OBJECT + +public: + DialogFinalMeasurements(VPattern *doc, QWidget *parent = nullptr); + virtual ~DialogFinalMeasurements(); + + QVector FinalMeasurements() const; + +protected: + virtual void closeEvent ( QCloseEvent * event ) Q_DECL_OVERRIDE; + virtual void changeEvent ( QEvent * event) Q_DECL_OVERRIDE; + virtual bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE; + virtual void showEvent( QShowEvent *event ) Q_DECL_OVERRIDE; + virtual void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; +private slots: + void ShowFinalMeasurementDetails(); + void Add(); + void Remove(); + void MoveUp(); + void MoveDown(); + void SaveName(const QString &text); + void SaveDescription(); + void SaveFormula(); + void DeployFormula(); + void Fx(); + void FullUpdateFromFile(); +private: + Q_DISABLE_COPY(DialogFinalMeasurements) + Ui::DialogFinalMeasurements *ui; + /** @brief doc dom document container */ + VPattern *m_doc; + VContainer m_data; + QVector m_measurements; + QSharedPointer m_search; + int formulaBaseHeight; + bool m_isInitialized; + + void FillFinalMeasurements(bool freshCall = false); + + void ShowUnits(); + + void AddCell(const QString &text, int row, int column, int aligment, bool ok = true); + bool EvalUserFormula(const QString &formula, bool fromUser); + void Controls(); + void EnableDetails(bool enabled); + + void UpdateTree(); + + qreal EvalFormula(const QString &formula, bool &ok); +}; + +//--------------------------------------------------------------------------------------------------------------------- +inline QVector DialogFinalMeasurements::FinalMeasurements() const +{ + return m_measurements; +} + +#endif // DIALOGFINALMEASUREMENTS_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.ui valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.ui --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.ui 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogfinalmeasurements.ui 2017-10-02 06:21:35.000000000 +0000 @@ -0,0 +1,473 @@ + + + DialogFinalMeasurements + + + + 0 + 0 + 717 + 518 + + + + Final measurements + + + + :/icon/64x64/icon64x64.png:/icon/64x64/icon64x64.png + + + + + + 0 + + + + + Find: + + + + + + + Search + + + + + + + ... + + + + :/icons/win.icon.theme/16x16/actions/go-previous.png:/icons/win.icon.theme/16x16/actions/go-previous.png + + + + + + + ... + + + + :/icons/win.icon.theme/16x16/actions/go-next.png:/icons/win.icon.theme/16x16/actions/go-next.png + + + + + + + + + + 0 + 8 + + + + + 0 + 150 + + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + true + + + false + + + 120 + + + 70 + + + false + + + true + + + false + + + false + + + 25 + + + 8 + + + false + + + + Name + + + + + The calculated value + + + + + Formula + + + + + + + + + 0 + 4 + + + + + 0 + 236 + + + + Details + + + Details + + + + + + 6 + + + + + Qt::Horizontal + + + + 5000 + 20 + + + + + + + + + 0 + 0 + + + + ... + + + + .. + + + + + + + false + + + ... + + + + .. + + + + + + + + + Name: + + + + + + + false + + + + + + + Calculated value: + + + + + + + + + + + + + + Formula: + + + + + + + + + false + + + + 0 + 0 + + + + + 16777215 + 28 + + + + Calculation + + + true + + + + + + + false + + + + 18 + 18 + + + + + 0 + 0 + + + + Qt::StrongFocus + + + <html><head/><body><p>Show full calculation in message box</p></body></html> + + + + + + + ../../../libs/vtools/dialogs/support../../../libs/vtools/dialogs/support + + + + 16 + 16 + + + + false + + + true + + + + + + + false + + + + 24 + 24 + + + + Formula wizard + + + ... + + + + :/icon/24x24/fx.png:/icon/24x24/fx.png + + + + 24 + 24 + + + + + + + + + + Description: + + + + + + + false + + + + 0 + 1 + + + + + + + + + + false + + + Move measurement up + + + ... + + + + ../../tape../../tape + + + + + + + false + + + Move measurement down + + + ... + + + + ../../tape../../tape + + + + + + + Qt::Horizontal + + + + 5000 + 20 + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + + buttonBox + accepted() + DialogFinalMeasurements + accept() + + + 227 + 523 + + + 157 + 274 + + + + + buttonBox + rejected() + DialogFinalMeasurements + reject() + + + 295 + 529 + + + 286 + 274 + + + + + diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -59,6 +59,7 @@ ui(new Ui::DialogIncrements), data(data), doc(doc), + m_completeData(doc->GetCompleteData()), formulaBaseHeight(0), formulaBaseHeightPC(0), search(), @@ -220,13 +221,13 @@ */ void DialogIncrements::FillLengthsLines() { - FillTable(data->DataLengthLines(), ui->tableWidgetLines); + FillTable(m_completeData.DataLengthLines(), ui->tableWidgetLines); } //--------------------------------------------------------------------------------------------------------------------- void DialogIncrements::FillLengthLinesAngles() { - FillTable(data->DataAngleLines(), ui->tableWidgetLinesAngles); + FillTable(m_completeData.DataAngleLines(), ui->tableWidgetLinesAngles); } //--------------------------------------------------------------------------------------------------------------------- @@ -235,25 +236,25 @@ */ void DialogIncrements::FillLengthsCurves() { - FillTable(data->DataLengthCurves(), ui->tableWidgetSplines); + FillTable(m_completeData.DataLengthCurves(), ui->tableWidgetSplines); } //--------------------------------------------------------------------------------------------------------------------- void DialogIncrements::FillCurvesCLengths() { - FillTable(data->DataCurvesCLength(), ui->tableWidgetCLength); + FillTable(m_completeData.DataCurvesCLength(), ui->tableWidgetCLength); } //--------------------------------------------------------------------------------------------------------------------- void DialogIncrements::FillRadiusesArcs() { - FillTable(data->DataRadiusesArcs(), ui->tableWidgetRadiusesArcs); + FillTable(m_completeData.DataRadiusesArcs(), ui->tableWidgetRadiusesArcs); } //--------------------------------------------------------------------------------------------------------------------- void DialogIncrements::FillAnglesCurves() { - FillTable(data->DataAnglesCurves(), ui->tableWidgetAnglesCurves); + FillTable(m_completeData.DataAnglesCurves(), ui->tableWidgetAnglesCurves); } //--------------------------------------------------------------------------------------------------------------------- @@ -633,6 +634,8 @@ ui->tableWidgetLinesAngles->clearContents(); ui->tableWidgetRadiusesArcs->clearContents(); + m_completeData = doc->GetCompleteData(); + FillIncrements(); FillPreviewCalculations(); FillLengthsLines(); @@ -710,16 +713,7 @@ AddCell(table, qApp->LocaleToString(*incr->GetValue()), currentRow, 1, Qt::AlignHCenter | Qt::AlignVCenter, incr->IsFormulaOk()); // calculated value - QString formula; - try - { - formula = qApp->TrVars()->FormulaToUser(incr->GetFormula(), qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - formula = incr->GetFormula(); - } + QString formula = VTranslateVars::TryFormulaToUser(incr->GetFormula(), qApp->Settings()->GetOsSeparator()); AddCell(table, formula, currentRow, 2, Qt::AlignVCenter); // formula } @@ -1391,16 +1385,7 @@ EvalIncrementFormula(incr->GetFormula(), false, incr->GetData(), labelCalculatedValue); plainTextEditFormula->blockSignals(true); - QString formula; - try - { - formula = qApp->TrVars()->FormulaToUser(incr->GetFormula(), qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - formula = incr->GetFormula(); - } + QString formula = VTranslateVars::TryFormulaToUser(incr->GetFormula(), qApp->Settings()->GetOsSeparator()); plainTextEditFormula->setPlainText(formula); plainTextEditFormula->blockSignals(false); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogincrements.h 2017-10-02 06:21:35.000000000 +0000 @@ -87,6 +87,9 @@ /** @brief doc dom document container */ VPattern *doc; + /** @brief m_completeData need to show all internal variables */ + VContainer m_completeData; + int formulaBaseHeight; int formulaBaseHeightPC; diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialoglayoutsettings.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialoglayoutsettings.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialoglayoutsettings.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialoglayoutsettings.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -825,11 +825,20 @@ QString out = "\n"; auto cntr = static_cast(PaperSizeTemplate::A0); - foreach(const auto& v, pageFormatNames) + for (int i = 0; i < pageFormatNames.size(); ++i) { if (cntr <= static_cast(PaperSizeTemplate::Roll44in))// Don't include custom template { - out += "\t"+v+" = "+ QString::number(cntr++)+"\n"; + out += "\t* "+pageFormatNames.at(i)+" = "+ QString::number(cntr++); + + if (i < pageFormatNames.size() - 1) + { + out += ",\n"; + } + else + { + out += ".\n"; + } } } return out; diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogsavelayout.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogsavelayout.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogsavelayout.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogsavelayout.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -250,10 +250,20 @@ QString DialogSaveLayout::MakeHelpFormatList() { QString out("\n"); - foreach(auto& v, InitFormats()) + const auto formats = InitFormats(); + for(int i = 0; i < formats.size(); ++i) { - out += QLatin1String("\t") + v.first + QLatin1String(" = ") + QString::number(static_cast(v.second)) - + QLatin1String("\n"); + out += QLatin1String("\t* ") + formats.at(i).first + QLatin1String(" = ") + + QString::number(static_cast(formats.at(i).second)); + + if (i < formats.size() - 1) + { + out += QLatin1String(",\n"); + } + else + { + out += QLatin1String(".\n"); + } } return out; } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.h 2017-10-02 06:21:35.000000000 +0000 @@ -35,5 +35,6 @@ #include "dialognewpattern.h" #include "dialogaboutapp.h" #include "dialogpreferences.h" +#include "dialogfinalmeasurements.h" #endif // DIALOGS_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.pri valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.pri --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.pri 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/dialogs/dialogs.pri 2017-10-02 06:21:35.000000000 +0000 @@ -19,7 +19,8 @@ $$PWD/configpages/preferencespathpage.h \ $$PWD/dialogdatetimeformats.h \ $$PWD/dialogknownmaterials.h \ - $$PWD/dialogpatternmaterials.h + $$PWD/dialogpatternmaterials.h \ + $$PWD/dialogfinalmeasurements.h SOURCES += \ $$PWD/dialogincrements.cpp \ @@ -38,7 +39,8 @@ $$PWD/configpages/preferencespathpage.cpp \ $$PWD/dialogdatetimeformats.cpp \ $$PWD/dialogknownmaterials.cpp \ - $$PWD/dialogpatternmaterials.cpp + $$PWD/dialogpatternmaterials.cpp \ + $$PWD/dialogfinalmeasurements.cpp FORMS += \ $$PWD/dialogincrements.ui \ @@ -57,4 +59,5 @@ $$PWD/configpages/preferencespathpage.ui \ $$PWD/dialogdatetimeformats.ui \ $$PWD/dialogknownmaterials.ui \ - $$PWD/dialogpatternmaterials.ui + $$PWD/dialogpatternmaterials.ui \ + $$PWD/dialogfinalmeasurements.ui diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindow.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindow.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindow.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindow.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -40,7 +40,6 @@ #include "../vmisc/vsettings.h" #include "../vmisc/def.h" #include "../vmisc/qxtcsvmodel.h" -#include "../vmisc/dialogs/dialogexporttocsv.h" #include "undocommands/renamepp.h" #include "core/vtooloptionspropertybrowser.h" #include "options.h" @@ -117,7 +116,9 @@ patternReadOnly(false), dialogTable(nullptr), dialogTool(), - dialogHistory(nullptr), comboBoxDraws(nullptr), patternPieceLabel(nullptr), mode(Draw::Calculation), + dialogHistory(nullptr), + dialogFMeasurements(nullptr), + comboBoxDraws(nullptr), patternPieceLabel(nullptr), mode(Draw::Calculation), currentDrawIndex(0), currentToolBoxIndex(0), isDockToolOptionsVisible(true), isDockGroupsVisible(true), @@ -294,7 +295,8 @@ // Show best for new PP VMainGraphicsView::NewSceneRect(ui->view->scene(), ui->view); - ZoomFitBestCurrent(); + //ZoomFitBestCurrent(); + QApplication::postEvent(this, new FitBestCurrentEvent()); ui->actionNewDraw->setEnabled(true); helpLabel->setText(""); @@ -1446,6 +1448,10 @@ { qApp->getUndoStack()->undo(); } + else if (event->type() == FIT_BEST_CURRENT_EVENT) + { + ZoomFitBestCurrent(); + } } //--------------------------------------------------------------------------------------------------------------------- @@ -1476,7 +1482,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void MainWindow::ExportToCSVData(const QString &fileName, const DialogExportToCSV &dialog) +void MainWindow::ExportToCSVData(const QString &fileName, bool withHeader, int mib, const QChar &separator) { QxtCsvModel csv; @@ -1484,7 +1490,7 @@ csv.insertColumn(1); csv.insertColumn(2); - if (dialog.WithHeader()) + if (withHeader) { csv.setHeaderText(0, tr("Name")); csv.setHeaderText(1, tr("The calculated value")); @@ -1492,42 +1498,45 @@ } const QMap > increments = pattern->DataIncrements(); - QMap >::const_iterator i; - QMap map; - //Sorting QHash by id - for (i = increments.constBegin(); i != increments.constEnd(); ++i) - { - QSharedPointer incr = i.value(); - map.insert(incr->getIndex(), i.key()); - } qint32 currentRow = -1; - QMapIterator iMap(map); - while (iMap.hasNext()) - { - iMap.next(); - QSharedPointer incr = increments.value(iMap.value()); - currentRow++; - - csv.insertRow(currentRow); - csv.setText(currentRow, 0, incr->GetName()); // name - csv.setText(currentRow, 1, qApp->LocaleToString(*incr->GetValue())); // calculated value - QString formula; - try + auto SavePreviewCalculation = [¤tRow, &csv, increments](bool save) + { + QMap >::const_iterator i; + QMap map; + //Sorting QHash by id + for (i = increments.constBegin(); i != increments.constEnd(); ++i) { - formula = qApp->TrVars()->FormulaToUser(incr->GetFormula(), qApp->Settings()->GetOsSeparator()); + const QSharedPointer incr = i.value(); + if (incr->IsPreviewCalculation() == save) + { + map.insert(incr->getIndex(), i.key()); + } } - catch (qmu::QmuParserError &e) + + QMapIterator iMap(map); + while (iMap.hasNext()) { - Q_UNUSED(e) - formula = incr->GetFormula(); + iMap.next(); + QSharedPointer incr = increments.value(iMap.value()); + currentRow++; + + csv.insertRow(currentRow); + csv.setText(currentRow, 0, incr->GetName()); // name + csv.setText(currentRow, 1, qApp->LocaleToString(*incr->GetValue())); // calculated value + + QString formula = VTranslateVars::TryFormulaToUser(incr->GetFormula(), + qApp->Settings()->GetOsSeparator()); + csv.setText(currentRow, 2, formula); // formula } + }; - csv.setText(currentRow, 2, formula); // formula - } + SavePreviewCalculation(false); + SavePreviewCalculation(true); - csv.toCSV(fileName, dialog.WithHeader(), dialog.Separator(), QTextCodec::codecForMib(dialog.SelectedMib())); + QString error; + csv.toCSV(fileName, error, withHeader, separator, QTextCodec::codecForMib(mib)); } //--------------------------------------------------------------------------------------------------------------------- @@ -2828,6 +2837,9 @@ ui->actionZoomOriginal->setEnabled(false); ui->actionHistory->setEnabled(false); ui->actionTable->setEnabled(false); + ui->actionExportIncrementsToCSV->setEnabled(false); + ui->actionExportFinalMeasurementsToCSV->setEnabled(false); + ui->actionFinalMeasurements->setEnabled(false); ui->actionLast_tool->setEnabled(false); ui->actionShowCurveDetails->setEnabled(false); ui->actionLoadIndividual->setEnabled(false); @@ -3073,6 +3085,9 @@ ui->actionDetails->setEnabled(enable); ui->actionLayout->setEnabled(enable); ui->actionTable->setEnabled(enable && drawStage); + ui->actionExportIncrementsToCSV->setEnabled(enable); + ui->actionExportFinalMeasurementsToCSV->setEnabled(enable); + ui->actionFinalMeasurements->setEnabled(enable); ui->actionZoomFitBest->setEnabled(enable); ui->actionZoomFitBestCurrent->setEnabled(enable && drawStage); ui->actionZoomOriginal->setEnabled(enable); @@ -3965,7 +3980,8 @@ connect(ui->actionSave, &QAction::triggered, this, &MainWindow::Save); connect(ui->actionOpen, &QAction::triggered, this, &MainWindow::Open); connect(ui->actionNew, &QAction::triggered, this, &MainWindow::New); - connect(ui->actionExportIncrementsToCSV, &QAction::triggered, this, &MainWindow::ExportToCSV); + connect(ui->actionExportIncrementsToCSV, &QAction::triggered, this, &MainWindow::ExportDataToCSV); + connect(ui->actionExportFinalMeasurementsToCSV, &QAction::triggered, this, &MainWindow::ExportFMeasurementsToCSV); connect(ui->actionTable, &QAction::triggered, this, [this](bool checked) { @@ -3988,6 +4004,27 @@ } }); + connect(ui->actionFinalMeasurements, &QAction::triggered, this, [this]() + { + if (dialogFMeasurements.isNull()) + { + dialogFMeasurements = new DialogFinalMeasurements(doc, this); + connect(dialogFMeasurements.data(), &DialogFinalMeasurements::finished, this, [this](int result) + { + if (result == QDialog::Accepted) + { + doc->SetFinalMeasurements(dialogFMeasurements->FinalMeasurements()); + } + delete dialogFMeasurements; + }); + dialogFMeasurements->show(); + } + else + { + dialogFMeasurements->activateWindow(); + } + }); + connect(ui->actionAbout_Qt, &QAction::triggered, this, [this]() { QMessageBox::aboutQt(this, tr("About Qt")); @@ -4168,10 +4205,18 @@ * @brief LoadPattern open pattern file. * @param fileName name of file. */ -bool MainWindow::LoadPattern(const QString &fileName, const QString& customMeasureFile) +bool MainWindow::LoadPattern(QString fileName, const QString& customMeasureFile) { qCDebug(vMainWindow, "Loading new file %s.", qUtf8Printable(fileName)); + { // Convert to absolute path if need + QFileInfo info(fileName); + if (info.exists() && info.isRelative()) + { + fileName = QFileInfo(QDir::currentPath() + QLatin1Char('/') + fileName).canonicalFilePath(); + } + } + //We have unsaved changes or load more then one file per time if (OpenNewValentina(fileName)) { @@ -4797,19 +4842,57 @@ } //--------------------------------------------------------------------------------------------------------------------- -void MainWindow::DoExport(const VCommandLinePtr &expParams) +bool MainWindow::DoExport(const VCommandLinePtr &expParams) { - const QHash *details = pattern->DataPieces(); + QHash details; if(not qApp->getOpeningPattern()) { - if (details->count() == 0) + const QHash *allDetails = pattern->DataPieces(); + if (allDetails->count() == 0) { qCCritical(vMainWindow, "%s", qUtf8Printable(tr("You can't export empty scene."))); qApp->exit(V_EX_DATAERR); - return; + return false; + } + else + { + const QString nameRegex = expParams->OptExportSuchDetails(); + if (nameRegex.isEmpty()) + { + QHash::const_iterator i = allDetails->constBegin(); + while (i != allDetails->constEnd()) + { + if (i.value().IsInLayout()) + { + details.insert(i.key(), i.value()); + } + ++i; + } + } + else + { + const QRegularExpression nameRe(nameRegex); + QHash::const_iterator i = allDetails->constBegin(); + while (i != allDetails->constEnd()) + { + if (nameRe.match(i.value().GetName()).hasMatch()) + { + details.insert(i.key(), i.value()); + } + ++i; + } + } + + if (details.count() == 0) + { + qCCritical(vMainWindow, "%s", qUtf8Printable(tr("You can't export empty scene. Please, " + "include at least one detail in layout."))); + qApp->exit(V_EX_DATAERR); + return false; + } } } - listDetails = PrepareDetailsForLayout(*details); + listDetails = PrepareDetailsForLayout(details); const bool exportOnlyDetails = expParams->IsExportOnlyDetails(); if (exportOnlyDetails) @@ -4828,7 +4911,7 @@ { qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Export error.")), qUtf8Printable(e.ErrorMessage())); qApp->exit(V_EX_DATAERR); - return; + return false; } } else @@ -4849,18 +4932,64 @@ } catch (const VException &e) { - qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Export error.")), qUtf8Printable(e.ErrorMessage())); + qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Export error.")), + qUtf8Printable(e.ErrorMessage())); qApp->exit(V_EX_DATAERR); - return; + return false; } } else { - return; + qApp->exit(V_EX_DATAERR); + return false; + } + } + + return true; +} + +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief DoFMExport process export final measurements + * @param expParams command line options + * @return true if succesfull + */ +bool MainWindow::DoFMExport(const VCommandLinePtr &expParams) +{ + QString filePath = expParams->OptExportFMTo(); + + if (filePath.isEmpty()) + { + qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Export final measurements error.")), + qUtf8Printable(tr("Destination path is empty."))); + qApp->exit(V_EX_DATAERR); + return false; + } + + QFileInfo info(filePath); + if (info.isRelative()) + { + filePath = QDir::currentPath() + QLatin1Char('/') + filePath; + } + + const QString codecName = expParams->OptCSVCodecName(); + int mib = QTextCodec::codecForLocale()->mibEnum(); + if (not codecName.isEmpty()) + { + if (QTextCodec *codec = QTextCodec::codecForName(codecName.toLatin1())) + { + mib = codec->mibEnum(); } } - qApp->exit(V_EX_OK); + QChar separator = expParams->OptCSVSeparator(); + if (separator.isNull()) + { + separator = VCommonSettings::GetDefCSVSeparator(); + } + + return ExportFMeasurementsToCSVData(filePath, expParams->IsCSVWithHeader(), mib, separator); + } //--------------------------------------------------------------------------------------------------------------------- @@ -4960,6 +5089,11 @@ if (VApplication::IsGUIMode()) { ReopenFilesAfterCrash(args); + + for (int i=0, sz = args.size(); i < sz; ++i) + { + LoadPattern(args.at(i)); + } } else { @@ -4969,53 +5103,45 @@ qApp->exit(V_EX_NOINPUT); return; } - } - for (int i=0, sz = args.size(); i < sz; ++i) - { - const bool loaded = LoadPattern(args.at(static_cast(i)), cmd->OptMeasurePath()); + const bool loaded = LoadPattern(args.first(), cmd->OptMeasurePath()); - if (not loaded && not VApplication::IsGUIMode()) + if (not loaded) { return; // process only one input file } bool hSetted = true; bool sSetted = true; - if (loaded && (cmd->IsTestModeEnabled() || cmd->IsExportEnabled())) + if (cmd->IsSetGradationSize()) { - if (cmd->IsSetGradationSize()) - { - sSetted = SetSize(cmd->OptGradationSize()); - } + sSetted = SetSize(cmd->OptGradationSize()); + } - if (cmd->IsSetGradationHeight()) - { - hSetted = SetHeight(cmd->OptGradationHeight()); - } + if (cmd->IsSetGradationHeight()) + { + hSetted = SetHeight(cmd->OptGradationHeight()); + } + + if (not (hSetted && sSetted)) + { + qApp->exit(V_EX_DATAERR); + return; } if (not cmd->IsTestModeEnabled()) { - if (cmd->IsExportEnabled()) + if (cmd->IsExportEnabled() && not DoExport(cmd)) { - if (loaded && hSetted && sSetted) - { - DoExport(cmd); - return; // process only one input file - } - else - { - qApp->exit(V_EX_DATAERR); - return; - } - break; + return; + } + + if (cmd->IsExportFMEnabled() && not DoFMExport(cmd)) + { + return; } } - } - if (not VApplication::IsGUIMode()) - { qApp->exit(V_EX_OK);// close program after processing in console mode } } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindow.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindow.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindow.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindow.h 2017-10-02 06:21:35.000000000 +0000 @@ -47,6 +47,7 @@ class DialogIncrements; class DialogTool; class DialogHistory; +class DialogFinalMeasurements; class VWidgetGroups; class VWidgetDetails; class QToolButton; @@ -61,7 +62,7 @@ explicit MainWindow(QWidget *parent = nullptr); virtual ~MainWindow() Q_DECL_OVERRIDE; - bool LoadPattern(const QString &fileName, const QString &customMeasureFile = QString()); + bool LoadPattern(QString fileName, const QString &customMeasureFile = QString()); public slots: void ProcessCMD(); @@ -102,7 +103,8 @@ virtual void customEvent(QEvent * event) Q_DECL_OVERRIDE; virtual void CleanLayout() Q_DECL_OVERRIDE; virtual void PrepareSceneList() Q_DECL_OVERRIDE; - virtual void ExportToCSVData(const QString &fileName, const DialogExportToCSV &dialog) Q_DECL_FINAL; + virtual void ExportToCSVData(const QString &fileName, bool withHeader, int mib, + const QChar &separator) Q_DECL_FINAL; private slots: void MouseMove(const QPointF &scenePos); void Clear(); @@ -226,9 +228,10 @@ bool patternReadOnly; - QPointer dialogTable; - QSharedPointer dialogTool; - QPointer dialogHistory; + QPointer dialogTable; + QSharedPointer dialogTool; + QPointer dialogHistory; + QPointer dialogFMeasurements; /** @brief comboBoxDraws comboc who show name of pattern peaces. */ QComboBox *comboBoxDraws; @@ -348,7 +351,8 @@ void CheckRequiredMeasurements(const VMeasurements *m); void ReopenFilesAfterCrash(QStringList &args); - void DoExport(const VCommandLinePtr& expParams); + bool DoExport(const VCommandLinePtr& expParams); + bool DoFMExport(const VCommandLinePtr& expParams); bool SetSize(const QString &text); bool SetHeight(const QString & text); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -33,6 +33,8 @@ #include "../vdxf/vdxfpaintdevice.h" #include "dialogs/dialoglayoutsettings.h" #include "../vwidgets/vmaingraphicsscene.h" +#include "../vmisc/dialogs/dialogexporttocsv.h" +#include "../vmisc/qxtcsvmodel.h" #include "../vlayout/vlayoutgenerator.h" #include "dialogs/dialoglayoutprogress.h" #include "dialogs/dialogsavelayout.h" @@ -41,6 +43,7 @@ #include "../vpatterndb/floatItemData/vpatternlabeldata.h" #include "../vpatterndb/floatItemData/vgrainlinedata.h" #include "../vpatterndb/measurements.h" +#include "../vpatterndb/calculator.h" #include "../vtools/tools/vabstracttool.h" #include "../vtools/tools/vtoolseamallowance.h" @@ -225,6 +228,31 @@ } //--------------------------------------------------------------------------------------------------------------------- +void MainWindowsNoGUI::ExportFMeasurementsToCSV() +{ + QString fileName = CSVFilePath(); + + if (fileName.isEmpty()) + { + return; + } + + DialogExportToCSV dialog(this); + dialog.SetWithHeader(qApp->Settings()->GetCSVWithHeader()); + dialog.SetSelectedMib(qApp->Settings()->GetCSVCodec()); + dialog.SetSeparator(qApp->Settings()->GetCSVSeparator()); + + if (dialog.exec() == QDialog::Accepted) + { + ExportFMeasurementsToCSVData(fileName, dialog.IsWithHeader(), dialog.GetSelectedMib(), dialog.GetSeparator()); + + qApp->Settings()->SetCSVSeparator(dialog.GetSeparator()); + qApp->Settings()->SetCSVCodec(dialog.GetSelectedMib()); + qApp->Settings()->SetCSVWithHeader(dialog.IsWithHeader()); + } +} + +//--------------------------------------------------------------------------------------------------------------------- void MainWindowsNoGUI::ExportData(const QVector &listDetails, const DialogSaveLayout &dialog) { const LayoutExportFormats format = dialog.Format(); @@ -1544,6 +1572,84 @@ } //--------------------------------------------------------------------------------------------------------------------- +bool MainWindowsNoGUI::ExportFMeasurementsToCSVData(const QString &fileName, bool withHeader, int mib, + const QChar &separator) const +{ + QxtCsvModel csv; + + csv.insertColumn(0); + csv.insertColumn(1); + + if (withHeader) + { + csv.setHeaderText(0, tr("Name")); + csv.setHeaderText(1, tr("Value")); + } + + const QVector measurements = doc->GetFinalMeasurements(); + const VContainer completeData = doc->GetCompleteData(); + + for (int i=0; i < measurements.size(); ++i) + { + const VFinalMeasurement &m = measurements.at(i); + + csv.insertRow(i); + csv.setText(i, 0, m.name); // name + + if (not m.formula.isEmpty()) + { + try + { + QString f = m.formula; + // Replace line return character with spaces for calc if exist + f.replace("\n", " "); + QScopedPointer cal(new Calculator()); + const qreal result = cal->EvalFormula(completeData.DataVariables(), f); + + csv.setText(i, 1, qApp->LocaleToString(result)); // value + + if (qIsInf(result) || qIsNaN(result)) + { + qCritical("%s\n\n%s", qUtf8Printable(tr("Export final measurements error.")), + qUtf8Printable(tr("Value in line %1 is infinite or NaN. Please, check your calculations.") + .arg(i+1))); + if (not VApplication::IsGUIMode()) + { + qApp->exit(V_EX_DATAERR); + } + return false; + } + } + catch (qmu::QmuParserError &e) + { + qCritical("%s\n\n%s", qUtf8Printable(tr("Export final measurements error.")), + qUtf8Printable(tr("Parser error at line %1: %2.").arg(i+1).arg(e.GetMsg()))); + if (not VApplication::IsGUIMode()) + { + qApp->exit(V_EX_DATAERR); + } + return false; + } + } + } + + QString error; + const bool success = csv.toCSV(fileName, error, withHeader, separator, QTextCodec::codecForMib(mib)); + + if (not success) + { + qCritical("%s\n\n%s", qUtf8Printable(tr("Export final measurements error.")), + qUtf8Printable(tr("File error %1.").arg(error))); + if (not VApplication::IsGUIMode()) + { + qApp->exit(V_EX_CANTCREAT); + } + } + + return success; +} + +//--------------------------------------------------------------------------------------------------------------------- int MainWindowsNoGUI::ContinueIfLayoutStale() { QMessageBox msgBox(this); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindowsnogui.h 2017-10-02 06:21:35.000000000 +0000 @@ -56,6 +56,8 @@ void PrintOrigin(); void PrintTiled(); void RefreshDetailsLabel(); +protected slots: + void ExportFMeasurementsToCSV(); protected: QVector listDetails; @@ -100,6 +102,9 @@ int ContinueIfLayoutStale(); QString FileName() const; void SetSizeHeightForIndividualM() const; + + bool ExportFMeasurementsToCSVData(const QString &fileName, + bool withHeader, int mib, const QChar &separator) const; private slots: void PrintPages (QPrinter *printer); void ErrorConsoleMode(const LayoutErrors &state); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindow.ui valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindow.ui --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/mainwindow.ui 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/mainwindow.ui 2017-10-02 06:21:35.000000000 +0000 @@ -1699,12 +1699,17 @@ + + + + + @@ -2649,6 +2654,9 @@ + + false + Export increments to CSV @@ -2657,6 +2665,9 @@ + + false + Zoom fit best current @@ -2675,6 +2686,22 @@ Label template editor + + + false + + + Final measurements + + + + + false + + + Export Final Measurements to CSV + + diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/xml/vpattern.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/xml/vpattern.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/xml/vpattern.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/xml/vpattern.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -152,7 +152,8 @@ QStringList tags = QStringList() << TagDraw << TagIncrements << TagDescription << TagNotes << TagMeasurements << TagVersion << TagGradation << TagImage << TagUnit << TagPatternName << TagPatternNum << TagCompanyName << TagCustomerName - << TagPatternLabel << TagPatternMaterials << TagPreviewCalculations; + << TagPatternLabel << TagPatternMaterials << TagPreviewCalculations + << TagFinalMeasurements; PrepareForParse(parse); QDomNode domNode = documentElement().firstChild(); while (domNode.isNull() == false) @@ -231,6 +232,9 @@ qCDebug(vXML, "Tag prewiew calculations."); ParseIncrementsElement(domElement); break; + case 16: // TagFinalMeasurements + qCDebug(vXML, "Tag final measurements."); + break; default: qCDebug(vXML, "Wrong tag name %s", qUtf8Printable(domElement.tagName())); break; @@ -254,41 +258,23 @@ { if (*mode == Draw::Calculation) { - if (CountPP() > 1)//don't need upadate data if we have only one pattern piece + const int countPP = CountPP(); + if (countPP > 1)//don't need upadate data if we have only one pattern piece { qCDebug(vXML, "Setting current data"); qCDebug(vXML, "Current PP name %s", qUtf8Printable(nameActivPP)); - qCDebug(vXML, "PP count %d", CountPP()); + qCDebug(vXML, "PP count %d", countPP); - quint32 id = 0; - if (history.size() == 0) + const QVector localHistory = getLocalHistory(); + if (localHistory.size() == 0) { qCDebug(vXML, "History is empty!"); return; } - for (qint32 i = 0; i < history.size(); ++i) - { - const VToolRecord tool = history.at(i); - if (tool.getNameDraw() == nameActivPP) - { - id = tool.getId(); - } - } + + const quint32 id = localHistory.last().getId(); qCDebug(vXML, "Resoring data from tool with id %u", id); - if (id == NULL_ID) - { - qCDebug(vXML, "Could not find record for this current pattern piece %s", - qUtf8Printable(nameActivPP)); - const VToolRecord tool = history.at(history.size()-1); - id = tool.getId(); - qCDebug(vXML, "Taking record with id %u from PP %s", id, qUtf8Printable(tool.getNameDraw())); - if (id == NULL_ID) - { - qCDebug(vXML, "Bad id for last record in history."); - return; - } - } if (tools.size() > 0) { try @@ -334,6 +320,40 @@ } //--------------------------------------------------------------------------------------------------------------------- +VContainer VPattern::GetCompleteData() const +{ + const int countPP = CountPP(); + if (countPP <= 0 || history.isEmpty() || tools.isEmpty()) + { + return (data != nullptr ? *data : VContainer(nullptr, nullptr)); + } + + const quint32 id = (countPP == 1 ? history.last().getId() : LastToolId()); + + if (id == NULL_ID) + { + return (data != nullptr ? *data : VContainer(nullptr, nullptr)); + } + + try + { + ToolExists(id); + } + catch (VExceptionBadId &e) + { + Q_UNUSED(e) + return (data != nullptr ? *data : VContainer(nullptr, nullptr)); + } + + const VDataTool *vTool = tools.value(id); + VContainer lastData = vTool->getData(); + //Delete special variables if exist + lastData.RemoveVariable(currentLength); + lastData.RemoveVariable(currentSeamAllowance); + return lastData; +} + +//--------------------------------------------------------------------------------------------------------------------- /** * @brief SPointActiveDraw return id base point current pattern peace. * @return id base point. @@ -3112,9 +3132,9 @@ QDomElement VPattern::MakeEmptyIncrement(const QString &name) { QDomElement element = createElement(TagIncrement); - SetAttribute(element, IncrementName, name); - SetAttribute(element, IncrementFormula, QString("0")); - SetAttribute(element, IncrementDescription, QString("")); + SetAttribute(element, AttrName, name); + SetAttribute(element, AttrFormula, QString("0")); + SetAttribute(element, AttrDescription, QString("")); return element; } @@ -3128,7 +3148,7 @@ const QDomElement domElement = list.at(i).toElement(); if (domElement.isNull() == false) { - const QString parameter = domElement.attribute(IncrementName); + const QString parameter = domElement.attribute(AttrName); if (parameter == name) { return domElement; @@ -3258,6 +3278,38 @@ } //--------------------------------------------------------------------------------------------------------------------- +QString VPattern::LastDrawName() const +{ + const QDomNodeList elements = this->documentElement().elementsByTagName(TagDraw); + if (elements.size() == 0) + { + return QString(); + } + + const QDomElement &elem = elements.at(elements.size()-1).toElement(); + if (not elem.isNull()) + { + return GetParametrString(elem, AttrName); + } + + return QString(); +} + +//--------------------------------------------------------------------------------------------------------------------- +quint32 VPattern::LastToolId() const +{ + const QString name = LastDrawName(); + if (name.isEmpty()) + { + return NULL_ID; + } + + const QVector localHistory = getLocalHistory(name); + + return (not localHistory.isEmpty() ? localHistory.last().getId() : NULL_ID); +} + +//--------------------------------------------------------------------------------------------------------------------- /** * @brief ParseSplineElement parse spline tag. * @param scene scene. @@ -3525,19 +3577,19 @@ { if (domElement.tagName() == TagIncrement) { - const QString name = GetParametrString(domElement, IncrementName, ""); + const QString name = GetParametrString(domElement, AttrName, ""); QString desc; try { - desc = GetParametrString(domElement, IncrementDescription); + desc = GetParametrString(domElement, AttrDescription); } catch (VExceptionEmptyParameter &e) { Q_UNUSED(e) } - const QString formula = GetParametrString(domElement, IncrementFormula, "0"); + const QString formula = GetParametrString(domElement, AttrFormula, "0"); bool ok = false; const qreal value = EvalFormula(data, formula, &ok); @@ -3616,19 +3668,19 @@ //--------------------------------------------------------------------------------------------------------------------- void VPattern::SetIncrementName(const QString &name, const QString &text) { - SetIncrementAttribute(name, IncrementName, text); + SetIncrementAttribute(name, AttrName, text); } //--------------------------------------------------------------------------------------------------------------------- void VPattern::SetIncrementFormula(const QString &name, const QString &text) { - SetIncrementAttribute(name, IncrementFormula, text); + SetIncrementAttribute(name, AttrFormula, text); } //--------------------------------------------------------------------------------------------------------------------- void VPattern::SetIncrementDescription(const QString &name, const QString &text) { - SetIncrementAttribute(name, IncrementDescription, text); + SetIncrementAttribute(name, AttrDescription, text); } //--------------------------------------------------------------------------------------------------------------------- diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/xml/vpattern.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/xml/vpattern.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/app/valentina/xml/vpattern.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/app/valentina/xml/vpattern.h 2017-10-02 06:21:35.000000000 +0000 @@ -55,6 +55,7 @@ void setCurrentData(); virtual void UpdateToolData(const quint32 &id, VContainer *data) Q_DECL_OVERRIDE; + VContainer GetCompleteData() const; virtual void IncrementReferens(quint32 id) const Q_DECL_OVERRIDE; virtual void DecrementReferens(quint32 id) const Q_DECL_OVERRIDE; @@ -239,6 +240,9 @@ void MoveDownIncrement(const QString &type, const QString &name); void SetIncrementAttribute(const QString &name, const QString &attr, const QString &text); + + QString LastDrawName() const; + quint32 LastToolId() const; }; #endif // VPATTERN_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.4.xsd valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.4.xsd --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.4.xsd 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.4.xsd 2017-10-02 06:21:35.000000000 +0000 @@ -0,0 +1,985 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.5.xsd valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.5.xsd --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.5.xsd 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/schema/pattern/v0.6.5.xsd 2017-10-02 06:21:35.000000000 +0000 @@ -0,0 +1,987 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/schema.qrc valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/schema.qrc --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/schema.qrc 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/schema.qrc 2017-10-02 06:21:35.000000000 +0000 @@ -38,6 +38,8 @@ schema/pattern/v0.6.1.xsd schema/pattern/v0.6.2.xsd schema/pattern/v0.6.3.xsd + schema/pattern/v0.6.4.xsd + schema/pattern/v0.6.5.xsd schema/standard_measurements/v0.3.0.xsd schema/standard_measurements/v0.4.0.xsd schema/standard_measurements/v0.4.1.xsd diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -88,7 +88,9 @@ const QString VAbstractPattern::TagCompanyName = QStringLiteral("company"); const QString VAbstractPattern::TagPatternLabel = QStringLiteral("patternLabel"); const QString VAbstractPattern::TagPatternMaterials = QStringLiteral("patternMaterials"); +const QString VAbstractPattern::TagFinalMeasurements= QStringLiteral("finalMeasurements"); const QString VAbstractPattern::TagMaterial = QStringLiteral("material"); +const QString VAbstractPattern::TagFMeasurement = QStringLiteral("finalMeasurment"); const QString VAbstractPattern::TagGrainline = QStringLiteral("grainline"); const QString VAbstractPattern::TagPath = QStringLiteral("path"); const QString VAbstractPattern::TagNodes = QStringLiteral("nodes"); @@ -187,9 +189,8 @@ const QString VAbstractPattern::AttrDefSize = QStringLiteral("defSize"); const QString VAbstractPattern::AttrExtension = QStringLiteral("extension"); -const QString VAbstractPattern::IncrementName = QStringLiteral("name"); -const QString VAbstractPattern::IncrementFormula = QStringLiteral("formula"); -const QString VAbstractPattern::IncrementDescription = QStringLiteral("description"); +const QString VAbstractPattern::AttrFormula = QStringLiteral("formula"); +const QString VAbstractPattern::AttrDescription = QStringLiteral("description"); const QString VAbstractPattern::NodeArc = QStringLiteral("NodeArc"); const QString VAbstractPattern::NodeElArc = QStringLiteral("NodeElArc"); @@ -309,16 +310,6 @@ //--------------------------------------------------------------------------------------------------------------------- /** - * @brief GetNameActivPP return current pattern piece name. - * @return pattern piece name. - */ -QString VAbstractPattern::GetNameActivPP() const -{ - return nameActivPP; -} - -//--------------------------------------------------------------------------------------------------------------------- -/** * @brief GetActivDrawElement return draw tag for current pattern peace. * @param element draw tag. * @return true if found. @@ -350,6 +341,21 @@ } //--------------------------------------------------------------------------------------------------------------------- +QVector VAbstractPattern::getLocalHistory(const QString &draw) const +{ + QVector historyPP; + for (qint32 i = 0; i< history.size(); ++i) + { + const VToolRecord &tool = history.at(i); + if (tool.getNameDraw() == draw) + { + historyPP.append(tool); + } + } + return historyPP; +} + +//--------------------------------------------------------------------------------------------------------------------- /** * @brief CheckNameDraw check if exist pattern peace with this name. * @param name pattern peace name. @@ -777,17 +783,7 @@ //--------------------------------------------------------------------------------------------------------------------- QVector VAbstractPattern::getLocalHistory() const { - QVector historyPP; - for (qint32 i = 0; i< history.size(); ++i) - { - const VToolRecord tool = history.at(i); - if (tool.getNameDraw() != GetNameActivPP()) - { - continue; - } - historyPP.append(tool); - } - return historyPP; + return getLocalHistory(GetNameActivPP()); } //--------------------------------------------------------------------------------------------------------------------- @@ -1450,6 +1446,28 @@ } //--------------------------------------------------------------------------------------------------------------------- +QVector VAbstractPattern::GetFinalMeasurements() const +{ + const QDomNodeList list = elementsByTagName(TagFinalMeasurements); + if (list.isEmpty() || list.at(0).childNodes().count() == 0) + { + return QVector(); + } + + return GetFMeasurements(list.at(0).toElement()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractPattern::SetFinalMeasurements(const QVector &measurements) +{ + QDomElement tag = CheckTagExists(TagFinalMeasurements); + RemoveAllChildren(tag); + SetFMeasurements(tag, measurements); + modified = true; + emit patternChanged(false); +} + +//--------------------------------------------------------------------------------------------------------------------- void VAbstractPattern::SetPatternWasChanged(bool changed) { patternLabelWasChanged = changed; @@ -1603,7 +1621,8 @@ { const QStringList tags = QStringList() << TagUnit << TagImage << TagDescription << TagNotes << TagGradation << TagPatternName << TagPatternNum << TagCompanyName - << TagCustomerName << TagPatternLabel << TagPatternMaterials; + << TagCustomerName << TagPatternLabel << TagPatternMaterials + << TagFinalMeasurements; switch (tags.indexOf(tag)) { case 1: //TagImage @@ -1646,6 +1665,9 @@ case 10: // TagPatternMaterials element = createElement(TagPatternMaterials); break; + case 11: // TagFinalMeasurements + element = createElement(TagFinalMeasurements); + break; case 0: //TagUnit (Mandatory tag) default: return QDomElement(); @@ -1708,7 +1730,7 @@ try { - increments.append(GetParametrString(dom, IncrementName)); + increments.append(GetParametrString(dom, AttrName)); } catch (VExceptionEmptyParameter &e) { @@ -1739,6 +1761,7 @@ list << ListOperationExpressions(); list << ListPathExpressions(); list << ListPieceExpressions(); + list << ListFinalMeasurementsExpressions(); return list; } @@ -1858,7 +1881,7 @@ { const QDomElement dom = list.at(i).toElement(); - ReadExpressionAttribute(expressions, dom, IncrementFormula); + ReadExpressionAttribute(expressions, dom, AttrFormula); } return expressions; @@ -1976,6 +1999,26 @@ } //--------------------------------------------------------------------------------------------------------------------- +QVector VAbstractPattern::ListFinalMeasurementsExpressions() const +{ + QVector expressions; + const QDomNodeList list = elementsByTagName(TagFMeasurement); + for (int i=0; i < list.size(); ++i) + { + const QDomElement dom = list.at(i).toElement(); + if (dom.isNull()) + { + continue; + } + + // Each tag can contains several attributes. + ReadExpressionAttribute(expressions, dom, AttrFormula); + } + + return expressions; +} + +//--------------------------------------------------------------------------------------------------------------------- bool VAbstractPattern::IsVariable(const QString &token) const { for (int i = 0; i < builInVariables.size(); ++i) @@ -2107,6 +2150,51 @@ } } } + +//--------------------------------------------------------------------------------------------------------------------- +QVector VAbstractPattern::GetFMeasurements(const QDomElement &element) const +{ + QVector measurements; + + if (not element.isNull()) + { + QDomElement tagFMeasurement = element.firstChildElement(); + while (not tagFMeasurement.isNull()) + { + if (tagFMeasurement.tagName() == TagFMeasurement) + { + VFinalMeasurement m; + + m.name = GetParametrString(tagFMeasurement, AttrName, tr("measurement")); + m.formula = GetParametrString(tagFMeasurement, AttrFormula, "0"); + m.description = GetParametrEmptyString(tagFMeasurement, AttrDescription); + + measurements.append(m); + } + tagFMeasurement = tagFMeasurement.nextSiblingElement(TagFMeasurement); + } + } + + return measurements; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractPattern::SetFMeasurements(QDomElement &element, const QVector &measurements) +{ + if (not element.isNull()) + { + for (int i=0; i < measurements.size(); ++i) + { + QDomElement tagFMeasurement = createElement(TagFMeasurement); + + SetAttribute(tagFMeasurement, AttrName, measurements.at(i).name); + SetAttribute(tagFMeasurement, AttrFormula, measurements.at(i).formula); + SetAttribute(tagFMeasurement, AttrDescription, measurements.at(i).description); + + element.appendChild(tagFMeasurement); + } + } +} //--------------------------------------------------------------------------------------------------------------------- /** diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vabstractpattern.h 2017-10-02 06:21:35.000000000 +0000 @@ -70,6 +70,13 @@ QString attribute; }; +struct VFinalMeasurement +{ + QString name; + QString formula; + QString description; +}; + QT_WARNING_POP class VAbstractPattern : public QObject, public VDomDocument @@ -163,6 +170,9 @@ void SetPatternMaterials(const QMap &materials); QMap GetPatternMaterials() const; + QVector GetFinalMeasurements() const; + void SetFinalMeasurements(const QVector &measurements); + void SetPatternWasChanged(bool changed); bool GetPatternWasChanged() const; @@ -221,7 +231,9 @@ static const QString TagCustomerName; static const QString TagPatternLabel; static const QString TagPatternMaterials; + static const QString TagFinalMeasurements; static const QString TagMaterial; + static const QString TagFMeasurement; static const QString TagGrainline; static const QString TagPath; static const QString TagNodes; @@ -320,9 +332,8 @@ static const QString AttrDefSize; static const QString AttrExtension; - static const QString IncrementName; - static const QString IncrementFormula; - static const QString IncrementDescription; + static const QString AttrFormula; + static const QString AttrDescription; static const QString NodeArc; static const QString NodeElArc; @@ -419,6 +430,8 @@ int GetIndexActivPP() const; bool GetActivDrawElement(QDomElement &element) const; + + QVector getLocalHistory(const QString &draw) const; private: Q_DISABLE_COPY(VAbstractPattern) @@ -433,6 +446,7 @@ QVector ListPathExpressions() const; QVector ListGrainlineExpressions(const QDomElement &element) const; QVector ListPieceExpressions() const; + QVector ListFinalMeasurementsExpressions() const; bool IsVariable(const QString& token) const; bool IsPostfixOperator(const QString& token) const; @@ -442,6 +456,19 @@ QMap GetMaterials(const QDomElement &element) const; void SetMaterials(QDomElement &element, const QMap &materials); + + QVector GetFMeasurements(const QDomElement &element) const; + void SetFMeasurements(QDomElement &element, const QVector &measurements); }; +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetNameActivPP return current pattern piece name. + * @return pattern piece name. + */ +inline QString VAbstractPattern::GetNameActivPP() const +{ + return nameActivPP; +} + #endif // VABSTRACTPATTERN_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -58,8 +58,8 @@ */ const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.0"); -const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.6.3"); -const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.6.3.xsd"); +const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.6.5"); +const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.6.5.xsd"); //VPatternConverter::PatternMinVer; // <== DON'T FORGET TO UPDATE TOO!!!! //VPatternConverter::PatternMaxVer; // <== DON'T FORGET TO UPDATE TOO!!!! @@ -250,6 +250,10 @@ case (0x000602): return QStringLiteral("://schema/pattern/v0.6.2.xsd"); case (0x000603): + return QStringLiteral("://schema/pattern/v0.6.3.xsd"); + case (0x000604): + return QStringLiteral("://schema/pattern/v0.6.4.xsd"); + case (0x000605): return CurrentSchema; default: InvalidVersion(ver); @@ -412,6 +416,14 @@ ValidateXML(XSDSchema(0x000603), m_convertedFileName); V_FALLTHROUGH case (0x000603): + ToV0_6_4(); + ValidateXML(XSDSchema(0x000604), m_convertedFileName); + V_FALLTHROUGH + case (0x000604): + ToV0_6_5(); + ValidateXML(XSDSchema(0x000605), m_convertedFileName); + V_FALLTHROUGH + case (0x000605): break; default: InvalidVersion(m_ver); @@ -430,7 +442,7 @@ bool VPatternConverter::IsReadOnly() const { // Check if attribute readOnly was not changed in file format - Q_STATIC_ASSERT_X(VPatternConverter::PatternMaxVer == CONVERTER_VERSION_CHECK(0, 6, 3), + Q_STATIC_ASSERT_X(VPatternConverter::PatternMaxVer == CONVERTER_VERSION_CHECK(0, 6, 5), "Check attribute readOnly."); // Possibly in future attribute readOnly will change position etc. @@ -864,6 +876,26 @@ Save(); } +//--------------------------------------------------------------------------------------------------------------------- +void VPatternConverter::ToV0_6_4() +{ + // TODO. Delete if minimal supported version is 0.6.4 + Q_STATIC_ASSERT_X(VPatternConverter::PatternMinVer < CONVERTER_VERSION_CHECK(0, 6, 4), + "Time to refactor the code."); + SetVersion(QStringLiteral("0.6.4")); + Save(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VPatternConverter::ToV0_6_5() +{ + // TODO. Delete if minimal supported version is 0.6.5 + Q_STATIC_ASSERT_X(VPatternConverter::PatternMinVer < CONVERTER_VERSION_CHECK(0, 6, 5), + "Time to refactor the code."); + SetVersion(QStringLiteral("0.6.5")); + Save(); +} + //--------------------------------------------------------------------------------------------------------------------- void VPatternConverter::TagUnitToV0_2_0() { diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/ifc/xml/vpatternconverter.h 2017-10-02 06:21:35.000000000 +0000 @@ -53,7 +53,7 @@ static const QString PatternMaxVerStr; static const QString CurrentSchema; static Q_DECL_CONSTEXPR const int PatternMinVer = CONVERTER_VERSION_CHECK(0, 1, 0); - static Q_DECL_CONSTEXPR const int PatternMaxVer = CONVERTER_VERSION_CHECK(0, 6, 3); + static Q_DECL_CONSTEXPR const int PatternMaxVer = CONVERTER_VERSION_CHECK(0, 6, 5); protected: virtual int MinVer() const Q_DECL_OVERRIDE; @@ -109,6 +109,8 @@ void ToV0_6_1(); void ToV0_6_2(); void ToV0_6_3(); + void ToV0_6_4(); + void ToV0_6_5(); void TagUnitToV0_2_0(); void TagIncrementToV0_2_0(); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/qmuparser/qmuparser.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/qmuparser/qmuparser.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/qmuparser/qmuparser.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/qmuparser/qmuparser.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -171,6 +171,12 @@ } //--------------------------------------------------------------------------------------------------------------------- +qreal QmuParser::R2CM(qreal v) +{ + return Rint(v*10.0)/10.0; +} + +//--------------------------------------------------------------------------------------------------------------------- qreal QmuParser::Sign(qreal v) { return ((v<0) ? -1 : (v>0) ? 1 : 0); @@ -365,6 +371,7 @@ DefineFun("sqrt", qSqrt); DefineFun("sign", Sign); DefineFun("rint", Rint); + DefineFun("r2cm", R2CM); DefineFun("abs", Abs); DefineFun("fmod", FMod); // Functions with variable number of arguments diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/qmuparser/qmuparser.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/qmuparser/qmuparser.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/qmuparser/qmuparser.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/qmuparser/qmuparser.h 2017-10-02 06:21:35.000000000 +0000 @@ -84,6 +84,7 @@ // misc static qreal Abs(qreal); static qreal Rint(qreal); + static qreal R2CM(qreal); static qreal Sign(qreal); static qreal FMod(qreal, qreal); // Prefix operators diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/commandoptions.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/commandoptions.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/commandoptions.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/commandoptions.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -52,6 +52,7 @@ 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_ROTATE = QStringLiteral("rotate"); const QString SINGLE_OPTION_ROTATE = QStringLiteral("r"); @@ -110,6 +111,11 @@ const QString LONG_OPTION_BOTTOM_MARGIN = QStringLiteral("bmargin"); const QString SINGLE_OPTION_BOTTOM_MARGIN = QStringLiteral("B"); +const QString LONG_OPTION_CSVWITHHEADER = QStringLiteral("csvWithHeader"); +const QString LONG_OPTION_CSVCODEC = QStringLiteral("csvCodec"); +const QString LONG_OPTION_CSVSEPARATOR = QStringLiteral("csvSeparator"); +const QString LONG_OPTION_CSVEXPORTFM = QStringLiteral("csvExportFM"); + //--------------------------------------------------------------------------------------------------------------------- QStringList AllKeys() { @@ -120,6 +126,9 @@ << LONG_OPTION_PAGETEMPLATE << SINGLE_OPTION_PAGETEMPLATE << LONG_OPTION_EXP2FORMAT << SINGLE_OPTION_EXP2FORMAT << LONG_OPTION_BINARYDXF + << LONG_OPTION_TEXT2PATHS + << LONG_OPTION_EXPORTONLYDETAILS + << LONG_OPTION_EXPORTSUCHDETAILS << LONG_OPTION_ROTATE << SINGLE_OPTION_ROTATE << LONG_OPTION_CROP << SINGLE_OPTION_CROP << LONG_OPTION_UNITE << SINGLE_OPTION_UNITE @@ -139,7 +148,11 @@ << LONG_OPTION_RIGHT_MARGIN << SINGLE_OPTION_RIGHT_MARGIN << LONG_OPTION_TOP_MARGIN << SINGLE_OPTION_TOP_MARGIN << LONG_OPTION_BOTTOM_MARGIN << SINGLE_OPTION_BOTTOM_MARGIN - << LONG_OPTION_NO_HDPI_SCALING; + << LONG_OPTION_NO_HDPI_SCALING + << LONG_OPTION_CSVWITHHEADER + << LONG_OPTION_CSVCODEC + << LONG_OPTION_CSVSEPARATOR + << LONG_OPTION_CSVEXPORTFM; return list; } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/commandoptions.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/commandoptions.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/commandoptions.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/commandoptions.h 2017-10-02 06:21:35.000000000 +0000 @@ -49,6 +49,7 @@ 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_ROTATE; extern const QString SINGLE_OPTION_ROTATE; @@ -107,6 +108,11 @@ extern const QString LONG_OPTION_BOTTOM_MARGIN; extern const QString SINGLE_OPTION_BOTTOM_MARGIN; +extern const QString LONG_OPTION_CSVWITHHEADER; +extern const QString LONG_OPTION_CSVCODEC; +extern const QString LONG_OPTION_CSVSEPARATOR; +extern const QString LONG_OPTION_CSVEXPORTFM; + QStringList AllKeys(); #endif // COMMANDOPTIONS_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/customevents.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/customevents.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/customevents.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/customevents.h 2017-10-02 06:21:35.000000000 +0000 @@ -32,7 +32,7 @@ #include #include -enum CustomEventType { UndoEventType = 1, LiteParseEventType = 2 }; +enum CustomEventType { UndoEventType = 1, LiteParseEventType = 2, FitBestCurrentEventType = 3 }; // Define undo event identifier const QEvent::Type UNDO_EVENT = static_cast(QEvent::User + CustomEventType::UndoEventType); @@ -59,4 +59,17 @@ virtual ~LiteParseEvent() =default; }; +const QEvent::Type FIT_BEST_CURRENT_EVENT = static_cast(QEvent::User + + CustomEventType::FitBestCurrentEventType); + +class FitBestCurrentEvent : public QEvent +{ +public: + FitBestCurrentEvent() + : QEvent(FIT_BEST_CURRENT_EVENT) + {} + + virtual ~FitBestCurrentEvent() =default; +}; + #endif // CUSTOMEVENTS_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/def.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/def.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/def.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/def.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -85,6 +85,7 @@ const QString sqrt_F = QStringLiteral("sqrt"); const QString sign_F = QStringLiteral("sign"); const QString rint_F = QStringLiteral("rint"); +const QString r2cm_F = QStringLiteral("r2cm"); const QString abs_F = QStringLiteral("abs"); const QString min_F = QStringLiteral("min"); const QString max_F = QStringLiteral("max"); @@ -92,13 +93,41 @@ const QString avg_F = QStringLiteral("avg"); const QString fmod_F = QStringLiteral("fmod"); -const QStringList builInFunctions = QStringList() << degTorad_F << radTodeg_F - << sin_F << cos_F << tan_F << asin_F << acos_F << atan_F - << sinh_F << cosh_F << tanh_F << asinh_F << acosh_F << atanh_F - << sinD_F << cosD_F << tanD_F << asinD_F << acosD_F << atanD_F - << log2_F << log10_F << log_F << ln_F << exp_F << sqrt_F - << sign_F << rint_F << abs_F << min_F << max_F << sum_F - << avg_F << fmod_F; +const QStringList builInFunctions = QStringList() << degTorad_F + << radTodeg_F + << sin_F + << cos_F + << tan_F + << asin_F + << acos_F + << atan_F + << sinh_F + << cosh_F + << tanh_F + << asinh_F + << acosh_F + << atanh_F + << sinD_F + << cosD_F + << tanD_F + << asinD_F + << acosD_F + << atanD_F + << log2_F + << log10_F + << log_F + << ln_F + << exp_F + << sqrt_F + << sign_F + << rint_F + << r2cm_F + << abs_F + << min_F + << max_F + << sum_F + << avg_F + << fmod_F; // Postfix operators const QString cm_Oprt = QStringLiteral("cm"); @@ -623,9 +652,11 @@ return PassmarkLineType::OneLine; } -const QString strStraightforward = QStringLiteral("straightforward"); -const QString strBisector = QStringLiteral("bisector"); -const QString strIntersection = QStringLiteral("intersection"); +const QString strStraightforward = QStringLiteral("straightforward"); +const QString strBisector = QStringLiteral("bisector"); +const QString strIntersection = QStringLiteral("intersection"); +const QString strIntersectionOnlyLeft = QStringLiteral("intersectionLeft"); +const QString strIntersectionOnlyRight = QStringLiteral("intersectionRight"); //--------------------------------------------------------------------------------------------------------------------- QString PassmarkAngleTypeToString(PassmarkAngleType type) @@ -638,6 +669,10 @@ return strBisector; case PassmarkAngleType::Intersection: return strIntersection; + case PassmarkAngleType::IntersectionOnlyLeft: + return strIntersectionOnlyLeft; + case PassmarkAngleType::IntersectionOnlyRight: + return strIntersectionOnlyRight; default: break; } @@ -648,7 +683,11 @@ //--------------------------------------------------------------------------------------------------------------------- PassmarkAngleType StringToPassmarkAngleType(const QString &value) { - const QStringList values = QStringList() << strStraightforward << strBisector << strIntersection; + const QStringList values = QStringList() << strStraightforward + << strBisector + << strIntersection + << strIntersectionOnlyLeft + << strIntersectionOnlyRight; switch(values.indexOf(value)) { @@ -658,6 +697,10 @@ return PassmarkAngleType::Bisector; case 2: return PassmarkAngleType::Intersection; + case 3: + return PassmarkAngleType::IntersectionOnlyLeft; + case 4: + return PassmarkAngleType::IntersectionOnlyRight; default: break; } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/def.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/def.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/def.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/def.h 2017-10-02 06:21:35.000000000 +0000 @@ -89,7 +89,9 @@ { Straightforward = 0, // Default Bisector, - Intersection + Intersection, + IntersectionOnlyLeft, + IntersectionOnlyRight }; QString PassmarkAngleTypeToString(PassmarkAngleType type); @@ -334,6 +336,7 @@ extern const QString sqrt_F; extern const QString sign_F; extern const QString rint_F; +extern const QString r2cm_F; extern const QString abs_F; extern const QString min_F; extern const QString max_F; @@ -379,7 +382,7 @@ extern const QString pl_wCut; extern const QString pl_wOnFold; -const int userMaterialPlaceholdersQuantity = 9; +const int userMaterialPlaceholdersQuantity = 20; extern const QStringList labelTemplatePlaceholders; @@ -397,6 +400,8 @@ extern const QString strStraightforward; extern const QString strBisector; extern const QString strIntersection; +extern const QString strIntersectionOnlyLeft; +extern const QString strIntersectionOnlyRight; extern const QString unitMM; extern const QString unitCM; diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/diagnostic.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/diagnostic.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/diagnostic.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/diagnostic.h 2017-10-02 06:21:35.000000000 +0000 @@ -29,6 +29,8 @@ #ifndef DIAGNOSTIC_H #define DIAGNOSTIC_H +#include + #if QT_VERSION < QT_VERSION_CHECK(5, 5, 0) /* @@ -85,6 +87,10 @@ # define QT_WARNING_DISABLE_GCC(text) #endif +#else + +#include + #endif // QT_VERSION < QT_VERSION_CHECK(5, 5, 0) #endif // DIAGNOSTIC_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.cpp 2017-10-02 06:21:35.000000000 +0000 @@ -44,25 +44,23 @@ { ui->setupUi(this); - ui->checkBoxWithHeader->setChecked(qApp->Settings()->GetCSVWithHeader()); - foreach (int mib, QTextCodec::availableMibs()) { ui->comboBoxCodec->addItem(QTextCodec::codecForMib(mib)->name(), mib); } - ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(qApp->Settings()->GetCSVCodec())); + ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec())); - SetSeparator(qApp->Settings()->GetCSVSeparator()); + SetSeparator(VCommonSettings::GetDefCSVSeparator()); QPushButton *bDefaults = ui->buttonBox->button(QDialogButtonBox::RestoreDefaults); SCASSERT(bDefaults != nullptr) connect(bDefaults, &QPushButton::clicked, this, [this]() { ui->checkBoxWithHeader->setChecked(qApp->Settings()->GetDefCSVWithHeader()); - ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(qApp->Settings()->GetDefCSVCodec())); + ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec())); - SetSeparator(qApp->Settings()->GetDefCSVSeparator()); + SetSeparator(VCommonSettings::GetDefCSVSeparator()); }); } @@ -73,19 +71,46 @@ } //--------------------------------------------------------------------------------------------------------------------- -bool DialogExportToCSV::WithHeader() const +bool DialogExportToCSV::IsWithHeader() const { return ui->checkBoxWithHeader->isChecked(); } //--------------------------------------------------------------------------------------------------------------------- -int DialogExportToCSV::SelectedMib() const +void DialogExportToCSV::SetWithHeader(bool value) +{ + ui->checkBoxWithHeader->setChecked(value); +} + +//--------------------------------------------------------------------------------------------------------------------- +int DialogExportToCSV::GetSelectedMib() const +{ + if (ui->comboBoxCodec->currentIndex() != -1) + { + return ui->comboBoxCodec->currentData().toInt(); + } + else + { + return VCommonSettings::GetDefCSVCodec(); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogExportToCSV::SetSelectedMib(int value) { - return ui->comboBoxCodec->currentData().toInt(); + const int index = ui->comboBoxCodec->findData(value); + if (index != -1) + { + ui->comboBoxCodec->setCurrentIndex(index); + } + else + { + ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec())); + } } //--------------------------------------------------------------------------------------------------------------------- -QChar DialogExportToCSV::Separator() const +QChar DialogExportToCSV::GetSeparator() const { if (ui->radioButtonTab->isChecked()) { @@ -101,7 +126,7 @@ } else { - return QChar(','); + return VCommonSettings::GetDefCSVSeparator(); } } @@ -159,3 +184,34 @@ break; } } + +//--------------------------------------------------------------------------------------------------------------------- +QString DialogExportToCSV::MakeHelpCodecsList() +{ + QString out("\n"); + const QList list = QTextCodec::availableMibs(); + for (int i = 0; i < list.size(); ++i) + { + out += QLatin1String("\t* ") + QTextCodec::codecForMib(list.at(i))->name(); + if (i < list.size()-1) + { + out += QLatin1String(",\n"); + } + else + { + out += QLatin1String(".\n"); + } + } + return out; +} + +//--------------------------------------------------------------------------------------------------------------------- +QString DialogExportToCSV::MakeHelpSeparatorList() +{ + QString out("\n"); + out += QLatin1String("\t* 'Tab',\n"); + out += QLatin1String("\t* ';',\n"); + out += QLatin1String("\t* 'Space',\n"); + out += QLatin1String("\t* ','.\n"); + return out; +} diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/dialogs/dialogexporttocsv.h 2017-10-02 06:21:36.000000000 +0000 @@ -31,8 +31,9 @@ #include -namespace Ui { -class DialogExportToCSV; +namespace Ui +{ + class DialogExportToCSV; } class DialogExportToCSV : public QDialog @@ -43,9 +44,17 @@ explicit DialogExportToCSV(QWidget *parent = nullptr); virtual ~DialogExportToCSV(); - bool WithHeader() const; - int SelectedMib() const; - QChar Separator() const; + bool IsWithHeader() const; + void SetWithHeader(bool value); + + int GetSelectedMib() const; + void SetSelectedMib(int value); + + QChar GetSeparator() const; + void SetSeparator(const QChar &separator); + + static QString MakeHelpCodecsList(); + static QString MakeHelpSeparatorList(); protected: virtual void changeEvent(QEvent* event) Q_DECL_OVERRIDE; @@ -55,8 +64,6 @@ Q_DISABLE_COPY(DialogExportToCSV) Ui::DialogExportToCSV *ui; bool isInitialized; - - void SetSeparator(const QChar &separator); }; #endif // DIALOGEXPORTTOCSV_H diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -591,7 +591,7 @@ to output a row of headers at the top of the file. */ // cppcheck-suppress funcArgNamesDifferent -void QxtCsvModel::toCSV(QIODevice* dest, bool withHeader, QChar separator, QTextCodec* codec) const +bool QxtCsvModel::toCSV(QIODevice* dest, QString &error, bool withHeader, QChar separator, QTextCodec* codec) const { const QxtCsvModelPrivate& d_ptr = qxt_d(); int row, col, rows, cols; @@ -600,7 +600,11 @@ QString data; if (not dest->isOpen()) { - dest->open(QIODevice::WriteOnly | QIODevice::Truncate); + if ( not dest->open(QIODevice::WriteOnly | QIODevice::Truncate)) + { + error = dest->errorString(); + return false; + } } QTextStream stream(dest); if (codec) @@ -643,6 +647,7 @@ } stream << flush; dest->close(); + return true; } /*! @@ -653,10 +658,11 @@ Fields in the output file will be separated by \a separator. Set \a withHeader to true to output a row of headers at the top of the file. */ -void QxtCsvModel::toCSV(const QString &filename, bool withHeader, QChar separator, QTextCodec* codec) const +bool QxtCsvModel::toCSV(const QString &filename, QString &error, bool withHeader, QChar separator, + QTextCodec* codec) const { QFile dest(filename); - toCSV(&dest, withHeader, separator, codec); + return toCSV(&dest, error, withHeader, separator, codec); } /*! diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/qxtcsvmodel.h 2017-10-02 06:21:36.000000000 +0000 @@ -93,8 +93,9 @@ void setSource(const QString &filename, bool withHeader = false, QChar separator = ',', QTextCodec* codec = nullptr); - void toCSV(QIODevice *file, bool withHeader = false, QChar separator = ',', QTextCodec* codec = nullptr) const; - void toCSV(const QString &filename, bool withHeader = false, QChar separator = ',', + bool toCSV(QIODevice *file, QString &error, bool withHeader = false, QChar separator = ',', + QTextCodec* codec = nullptr) const; + bool toCSV(const QString &filename, QString &error, bool withHeader = false, QChar separator = ',', QTextCodec* codec = nullptr) const; enum QuoteOption { NoQuotes = 0, diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -78,6 +78,7 @@ const QString settingToolSeamAllowanceDialogSize = QStringLiteral("toolSeamAllowanceDialogSize"); const QString settingIncrementsDialogSize = QStringLiteral("toolIncrementsDialogSize"); const QString settingFormulaWizardDialogSize = QStringLiteral("formulaWizardDialogSize"); +const QString settingFinalMeasurementsDialogSize = QStringLiteral("finalMeasurementsDialogSize"); const QString settingLatestSkippedVersion = QStringLiteral("lastestSkippedVersion"); const QString settingDateOfLastRemind = QStringLiteral("dateOfLastRemind"); @@ -617,6 +618,18 @@ } //--------------------------------------------------------------------------------------------------------------------- +QSize VCommonSettings::GetFinalMeasurementsDialogSize() const +{ + return value(settingFinalMeasurementsDialogSize, QSize(0, 0)).toSize(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VCommonSettings::SetFinalMeasurementsDialogSize(const QSize &sz) +{ + setValue(settingFinalMeasurementsDialogSize, sz); +} + +//--------------------------------------------------------------------------------------------------------------------- int VCommonSettings::GetLatestSkippedVersion() const { QSettings settings(this->format(), this->scope(), this->organizationName(), commonIniFilename); @@ -697,7 +710,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -bool VCommonSettings::GetDefCSVWithHeader() const +bool VCommonSettings::GetDefCSVWithHeader() { return false; } @@ -717,7 +730,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -int VCommonSettings::GetDefCSVCodec() const +int VCommonSettings::GetDefCSVCodec() { return QTextCodec::codecForLocale()->mibEnum(); } @@ -762,7 +775,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -QChar VCommonSettings::GetDefCSVSeparator() const +QChar VCommonSettings::GetDefCSVSeparator() { return QChar(','); } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vmisc/vcommonsettings.h 2017-10-02 06:21:36.000000000 +0000 @@ -129,6 +129,9 @@ QSize GetIncrementsDialogSize() const; void SetIncrementsDialogSize(const QSize& sz); + QSize GetFinalMeasurementsDialogSize() const; + void SetFinalMeasurementsDialogSize(const QSize& sz); + int GetLatestSkippedVersion() const; void SetLatestSkippedVersion(int value); @@ -146,15 +149,15 @@ void SetCSVWithHeader(bool withHeader); bool GetCSVWithHeader() const; - bool GetDefCSVWithHeader() const; + static bool GetDefCSVWithHeader(); void SetCSVCodec(int mib); int GetCSVCodec() const; - int GetDefCSVCodec() const; + static int GetDefCSVCodec(); void SetCSVSeparator(const QChar &separator); QChar GetCSVSeparator() const; - QChar GetDefCSVSeparator() const; + static QChar GetDefCSVSeparator(); void SetDefaultSeamAllowance(double value); double GetDefaultSeamAllowance(); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/variables/vincrement.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/variables/vincrement.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/variables/vincrement.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/variables/vincrement.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -80,7 +80,8 @@ //--------------------------------------------------------------------------------------------------------------------- /** - * @brief getIndex return index of row + * @brief getIndex return index of row. Row index for increments and preview calucalations is unique. Check type before + * using. * @return index */ quint32 VIncrement::getIndex() const diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/vpiece.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/vpiece.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/vpiece.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/vpiece.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -201,7 +201,10 @@ { QVector passmarksLines; - if (angleType == PassmarkAngleType::Straightforward || angleType == PassmarkAngleType::Intersection) + if (angleType == PassmarkAngleType::Straightforward + || angleType == PassmarkAngleType::Intersection + || angleType == PassmarkAngleType::IntersectionOnlyLeft + || angleType == PassmarkAngleType::IntersectionOnlyRight) { switch (lineType) { @@ -1090,6 +1093,8 @@ && not IsHideMainPath() && path.at(passmarkIndex).IsMainPathNode() && path.at(passmarkIndex).GetPassmarkAngleType() != PassmarkAngleType::Intersection + && path.at(passmarkIndex).GetPassmarkAngleType() != PassmarkAngleType::IntersectionOnlyLeft + && path.at(passmarkIndex).GetPassmarkAngleType() != PassmarkAngleType::IntersectionOnlyRight && path.at(passmarkIndex).IsShowSecondPassmark()) { lines += BuiltInSAPassmark(path, previousSAPoint, passmarkSAPoint, nextSAPoint, data, passmarkIndex); @@ -1139,11 +1144,15 @@ passmarksLines += CreatePassmarkLines(node.GetPassmarkLineType(), node.GetPassmarkAngleType(), edge1); } - else if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection) + else if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection + || node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyLeft + || node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyRight) { QVector seamPoints; seamAllowance.isEmpty() ? seamPoints = SeamAllowancePoints(data) : seamPoints = seamAllowance; + if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection + || node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyRight) { // first passmark QLineF line(previousSAPoint, passmarkSAPoint); @@ -1161,6 +1170,8 @@ passmarksLines += CreatePassmarkLines(node.GetPassmarkLineType(), node.GetPassmarkAngleType(), line); } + if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection + || node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyLeft) { // second passmark QLineF line(nextSAPoint, passmarkSAPoint); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -437,6 +437,7 @@ functions.insert(sqrt_F, translate("VTranslateVars", "sqrt", "square root of a value")); functions.insert(sign_F, translate("VTranslateVars", "sign", "sign function -1 if x<0; 1 if x>0")); functions.insert(rint_F, translate("VTranslateVars", "rint", "round to nearest integer")); + functions.insert(r2cm_F, translate("VTranslateVars", "r2cm", "round to up to 1 decimal")); functions.insert(abs_F, translate("VTranslateVars", "abs", "absolute value")); functions.insert(min_F, translate("VTranslateVars", "min", "min of all arguments")); functions.insert(max_F, translate("VTranslateVars", "max", "max of all arguments")); @@ -929,6 +930,7 @@ { try { + SCASSERT(qApp->TrVars() != nullptr) return qApp->TrVars()->FormulaFromUser(formula, osSeparator); } catch (qmu::QmuParserError &e)// In case something bad will happen @@ -1070,6 +1072,20 @@ } //--------------------------------------------------------------------------------------------------------------------- +QString VTranslateVars::TryFormulaToUser(const QString &formula, bool osSeparator) +{ + try + { + return qApp->TrVars()->FormulaToUser(formula, osSeparator); + } + catch (qmu::QmuParserError &e)// In case something bad will happen + { + Q_UNUSED(e) + return formula; + } +} + +//--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::Retranslate() { VTranslateMeasurements::Retranslate(); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vpatterndb/vtranslatevars.h 2017-10-02 06:21:36.000000000 +0000 @@ -62,7 +62,9 @@ QString FormulaFromUser(const QString &formula, bool osSeparator) const; static QString TryFormulaFromUser(const QString &formula, bool osSeparator); + QString FormulaToUser(const QString &formula, bool osSeparator) const; + static QString TryFormulaToUser(const QString &formula, bool osSeparator); virtual void Retranslate() Q_DECL_OVERRIDE; diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/support/dialogeditlabel.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/support/dialogeditlabel.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/support/dialogeditlabel.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/support/dialogeditlabel.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -500,7 +500,7 @@ const QMap materials = m_doc->GetPatternMaterials(); for (int i = 0; i < userMaterialPlaceholdersQuantity; ++i) { - const QString number = QString::number(i + 1); + const QString number = QString(" %1").arg(i + 1, 2, 10, QLatin1Char('0')); QString value; if (materials.contains(i + 1)) diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -326,16 +326,7 @@ const QString angle1F = ui->plainTextEditAngle1F->toPlainText().replace("\n", " "); const qreal angle1 = Visualization::FindVal(angle1F, data->DataVariables()); - - try - { - p.SetAngle1(angle1, qApp->TrVars()->FormulaFromUser(angle1F, qApp->Settings()->GetOsSeparator())); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - p.SetAngle1(angle1, angle1F); - } + p.SetAngle1(angle1, VTranslateVars::TryFormulaFromUser(angle1F, qApp->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -369,16 +360,7 @@ const QString angle2F = ui->plainTextEditAngle2F->toPlainText().replace("\n", " "); const qreal angle2 = Visualization::FindVal(angle2F, data->DataVariables()); - - try - { - p.SetAngle2(angle2, qApp->TrVars()->FormulaFromUser(angle2F, qApp->Settings()->GetOsSeparator())); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - p.SetAngle2(angle2, angle2F); - } + p.SetAngle2(angle2, VTranslateVars::TryFormulaFromUser(angle2F, qApp->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -412,16 +394,7 @@ const QString length1F = ui->plainTextEditLength1F->toPlainText().replace("\n", " "); const qreal length1 = Visualization::FindLength(length1F, data->DataVariables()); - - try - { - p.SetLength1(length1, qApp->TrVars()->FormulaFromUser(length1F, qApp->Settings()->GetOsSeparator())); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - p.SetLength1(length1, length1F); - } + p.SetLength1(length1, VTranslateVars::TryFormulaFromUser(length1F, qApp->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -446,16 +419,7 @@ const QString length2F = ui->plainTextEditLength2F->toPlainText().replace("\n", " "); const qreal length2 = Visualization::FindLength(length2F, data->DataVariables()); - - try - { - p.SetLength2(length2, qApp->TrVars()->FormulaFromUser(length2F, qApp->Settings()->GetOsSeparator())); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - p.SetLength2(length2, length2F); - } + p.SetLength2(length2, VTranslateVars::TryFormulaFromUser(length2F, qApp->Settings()->GetOsSeparator())); item->setData(Qt::UserRole, QVariant::fromValue(p)); @@ -469,14 +433,14 @@ auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point angle")); - QString angle1F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditAngle1F->toPlainText().replace("\n", " "), + QString angle1F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditAngle1F->toPlainText().replace("\n", " "), qApp->Settings()->GetOsSeparator()); dialog->SetFormula(angle1F); dialog->setPostfix(degreeSymbol); if (dialog->exec() == QDialog::Accepted) { - angle1F = qApp->TrVars()->FormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); + angle1F = VTranslateVars::TryFormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); // increase height if needed. if (angle1F.length() > 80) { @@ -494,14 +458,14 @@ auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point angle")); - QString angle2F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditAngle2F->toPlainText().replace("\n", " "), + QString angle2F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditAngle2F->toPlainText().replace("\n", " "), qApp->Settings()->GetOsSeparator()); dialog->SetFormula(angle2F); dialog->setPostfix(degreeSymbol); if (dialog->exec() == QDialog::Accepted) { - angle2F = qApp->TrVars()->FormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); + angle2F = VTranslateVars::TryFormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); // increase height if needed. if (angle2F.length() > 80) { @@ -519,14 +483,14 @@ auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point length")); - QString length1F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditLength1F->toPlainText().replace("\n", " "), + QString length1F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditLength1F->toPlainText().replace("\n", " "), qApp->Settings()->GetOsSeparator()); dialog->SetFormula(length1F); dialog->setPostfix(UnitsToStr(qApp->patternUnit(), true)); if (dialog->exec() == QDialog::Accepted) { - length1F = qApp->TrVars()->FormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); + length1F = VTranslateVars::TryFormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); // increase height if needed. if (length1F.length() > 80) { @@ -544,14 +508,14 @@ auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point length")); - QString length2F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditLength2F->toPlainText().replace("\n", " "), + QString length2F = VTranslateVars::TryFormulaFromUser(ui->plainTextEditLength2F->toPlainText().replace("\n", " "), qApp->Settings()->GetOsSeparator()); dialog->SetFormula(length2F); dialog->setPostfix(UnitsToStr(qApp->patternUnit(), true)); if (dialog->exec() == QDialog::Accepted) { - length2F = qApp->TrVars()->FormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); + length2F = VTranslateVars::TryFormulaToUser(dialog->GetFormula(), qApp->Settings()->GetOsSeparator()); // increase height if needed. if (length2F.length() > 80) { diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -389,6 +389,8 @@ ui->radioButtonStraightforward->setDisabled(true); ui->radioButtonBisector->setDisabled(true); ui->radioButtonIntersection->setDisabled(true); + ui->radioButtonIntersectionOnlyLeft->setDisabled(true); + ui->radioButtonIntersectionOnlyRight->setDisabled(true); ui->groupBoxMarkType->blockSignals(true); ui->groupBoxAngleType->blockSignals(true); @@ -433,6 +435,8 @@ ui->radioButtonStraightforward->setEnabled(true); ui->radioButtonBisector->setEnabled(true); ui->radioButtonIntersection->setEnabled(true); + ui->radioButtonIntersectionOnlyLeft->setEnabled(true); + ui->radioButtonIntersectionOnlyRight->setEnabled(true); switch(node.GetPassmarkAngleType()) { @@ -445,6 +449,12 @@ case PassmarkAngleType::Intersection: ui->radioButtonIntersection->setChecked(true); break; + case PassmarkAngleType::IntersectionOnlyLeft: + ui->radioButtonIntersectionOnlyLeft->setChecked(true); + break; + case PassmarkAngleType::IntersectionOnlyRight: + ui->radioButtonIntersectionOnlyRight->setChecked(true); + break; default: break; } @@ -540,6 +550,14 @@ { angleType = PassmarkAngleType::Intersection; } + else if (id == ui->buttonGroupAngleType->id(ui->radioButtonIntersectionOnlyLeft)) + { + angleType = PassmarkAngleType::IntersectionOnlyLeft; + } + else if (id == ui->buttonGroupAngleType->id(ui->radioButtonIntersectionOnlyRight)) + { + angleType = PassmarkAngleType::IntersectionOnlyRight; + } rowNode.SetPassmarkAngleType(angleType); rowItem->setData(Qt::UserRole, QVariant::fromValue(rowNode)); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogpiecepath.ui 2017-10-02 06:21:36.000000000 +0000 @@ -7,7 +7,7 @@ 0 0 480 - 437 + 490 @@ -952,6 +952,38 @@ + + + + false + + + Select if need designate the corner point as a passmark. Show only left passmark. + + + Intersection (only left) + + + buttonGroupAngleType + + + + + + + false + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + Intersection (only right) + + + buttonGroupAngleType + + + @@ -1022,7 +1054,7 @@ - + diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -765,6 +765,8 @@ uiTabPassmarks->radioButtonStraightforward->setDisabled(true); uiTabPassmarks->radioButtonBisector->setDisabled(true); uiTabPassmarks->radioButtonIntersection->setDisabled(true); + uiTabPassmarks->radioButtonIntersectionOnlyLeft->setDisabled(true); + uiTabPassmarks->radioButtonIntersectionOnlyRight->setDisabled(true); uiTabPassmarks->checkBoxShowSecondPassmark->setDisabled(true); uiTabPassmarks->checkBoxShowSecondPassmark->blockSignals(true); @@ -812,6 +814,8 @@ uiTabPassmarks->radioButtonStraightforward->setEnabled(true); uiTabPassmarks->radioButtonBisector->setEnabled(true); uiTabPassmarks->radioButtonIntersection->setEnabled(true); + uiTabPassmarks->radioButtonIntersectionOnlyLeft->setEnabled(true); + uiTabPassmarks->radioButtonIntersectionOnlyRight->setEnabled(true); switch(node.GetPassmarkAngleType()) { @@ -824,6 +828,12 @@ case PassmarkAngleType::Intersection: uiTabPassmarks->radioButtonIntersection->setChecked(true); break; + case PassmarkAngleType::IntersectionOnlyLeft: + uiTabPassmarks->radioButtonIntersectionOnlyLeft->setChecked(true); + break; + case PassmarkAngleType::IntersectionOnlyRight: + uiTabPassmarks->radioButtonIntersectionOnlyRight->setChecked(true); + break; default: break; } @@ -1151,6 +1161,14 @@ { angleType = PassmarkAngleType::Intersection; } + else if (id == uiTabPassmarks->buttonGroupAngleType->id(uiTabPassmarks->radioButtonIntersectionOnlyLeft)) + { + angleType = PassmarkAngleType::IntersectionOnlyLeft; + } + else if (id == uiTabPassmarks->buttonGroupAngleType->id(uiTabPassmarks->radioButtonIntersectionOnlyRight)) + { + angleType = PassmarkAngleType::IntersectionOnlyRight; + } rowNode.SetPassmarkAngleType(angleType); rowItem->setData(Qt::UserRole, QVariant::fromValue(rowNode)); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vtools/dialogs/tools/piece/tabs/tabpassmarks.ui 2017-10-02 06:21:36.000000000 +0000 @@ -7,7 +7,7 @@ 0 0 352 - 411 + 482 @@ -25,7 +25,7 @@ 0 0 332 - 391 + 462 @@ -168,6 +168,38 @@ buttonGroupAngleType + + + + + + + false + + + Select if need designate the corner point as a passmark. Show only left passmark. + + + Intersection (only left) + + + buttonGroupAngleType + + + + + + + false + + + Select if need designate the corner point as a passmark. Show only right passmark. + + + Intersection (only right) + + + buttonGroupAngleType diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/global.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/global.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/global.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/global.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -82,7 +82,7 @@ qreal scaledRadius = defPointRadiusPixel; if (scale > 1) { - scaledRadius = qMax(defPointRadiusPixel/12, defPointRadiusPixel/scale); + scaledRadius = qMax(defPointRadiusPixel/96, defPointRadiusPixel/scale); } return scaledRadius; } @@ -100,7 +100,7 @@ { if (scale > 1) { - width = qMax(0.1, width/scale); + width = qMax(0.01, width/scale); } return width; } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -87,13 +87,7 @@ } //--------------------------------------------------------------------------------------------------------------------- -void VAbstractMainWindow::WindowsLocale() -{ - qApp->Settings()->GetOsSeparator() ? setLocale(QLocale()) : setLocale(QLocale::c()); -} - -//--------------------------------------------------------------------------------------------------------------------- -void VAbstractMainWindow::ExportToCSV() +QString VAbstractMainWindow::CSVFilePath() { const QString filters = tr("Comma-Separated Values") + QLatin1String(" (*.csv)"); const QString suffix("csv"); @@ -104,7 +98,7 @@ if (fileName.isEmpty()) { - return; + return fileName; } QFileInfo f( fileName ); @@ -113,13 +107,36 @@ fileName += QLatin1String(".") + suffix; } + return fileName; +} + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractMainWindow::WindowsLocale() +{ + qApp->Settings()->GetOsSeparator() ? setLocale(QLocale()) : setLocale(QLocale::c()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractMainWindow::ExportDataToCSV() +{ + QString fileName = CSVFilePath(); + + if (fileName.isEmpty()) + { + return; + } + DialogExportToCSV dialog(this); + dialog.SetWithHeader(qApp->Settings()->GetCSVWithHeader()); + dialog.SetSelectedMib(qApp->Settings()->GetCSVCodec()); + dialog.SetSeparator(qApp->Settings()->GetCSVSeparator()); + if (dialog.exec() == QDialog::Accepted) { - ExportToCSVData(fileName, dialog); + ExportToCSVData(fileName, dialog.IsWithHeader(), dialog.GetSelectedMib(), dialog.GetSeparator()); - qApp->Settings()->SetCSVSeparator(dialog.Separator()); - qApp->Settings()->SetCSVCodec(dialog.SelectedMib()); - qApp->Settings()->SetCSVWithHeader(dialog.WithHeader()); + qApp->Settings()->SetCSVSeparator(dialog.GetSeparator()); + qApp->Settings()->SetCSVCodec(dialog.GetSelectedMib()); + qApp->Settings()->SetCSVWithHeader(dialog.IsWithHeader()); } } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.h 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vabstractmainwindow.h 2017-10-02 06:21:36.000000000 +0000 @@ -35,7 +35,7 @@ #include #include -class DialogExportToCSV; +struct VFinalMeasurement; class VAbstractMainWindow : public QMainWindow { @@ -49,7 +49,7 @@ protected slots: void WindowsLocale(); - void ExportToCSV(); + void ExportDataToCSV(); protected: int m_curFileFormatVersion; @@ -58,7 +58,10 @@ bool ContinueFormatRewrite(const QString ¤tFormatVersion, const QString &maxFormatVersion); void ToolBarStyle(QToolBar *bar); - virtual void ExportToCSVData(const QString &fileName, const DialogExportToCSV &dialog)=0; + QString CSVFilePath(); + + virtual void ExportToCSVData(const QString &fileName, bool withHeader, int mib, const QChar &separator)=0; + private: Q_DISABLE_COPY(VAbstractMainWindow) }; diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vgraphicssimpletextitem.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -85,16 +85,11 @@ void VGraphicsSimpleTextItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { const qreal scale = SceneScale(scene()); - qreal fontSize = BaseFontSize(); if (scale > 1) { - fontSize = qMax(0.1, fontSize/scale); + setScale(1/scale); } - QFont font = this->font(); - font.setPointSizeF(fontSize); - setFont(font); - QGraphicsSimpleTextItem::paint(painter, option, widget); } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vscenepoint.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vscenepoint.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/libs/vwidgets/vscenepoint.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/libs/vwidgets/vscenepoint.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -63,7 +63,7 @@ { const qreal scale = SceneScale(scene()); - if (m_namePoint->BaseFontSize()*scale < 1) + if (m_namePoint->BaseFontSize()*scale < 5) { m_namePoint->setVisible(false); m_lineName->setVisible(false); diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/qttestmainlambda.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/qttestmainlambda.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/qttestmainlambda.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/qttestmainlambda.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -53,48 +53,7 @@ #include "../vmisc/def.h" #include "../qmuparser/qmudef.h" -#include "../vmisc/vabstractapplication.h" - -class TestVApplication : public VAbstractApplication -{ -public: - - TestVApplication(int &argc, char ** argv); - virtual ~TestVApplication() Q_DECL_EQ_DEFAULT; - - virtual const VTranslateVars *TrVars(); - virtual void OpenSettings(); - virtual bool IsAppInGUIMode() const; - virtual void InitTrVars(); -}; - -//--------------------------------------------------------------------------------------------------------------------- -TestVApplication::TestVApplication(int &argc, char **argv) - : VAbstractApplication(argc, argv) -{ -} - -//--------------------------------------------------------------------------------------------------------------------- -const VTranslateVars *TestVApplication::TrVars() -{ - return nullptr; -} - -//--------------------------------------------------------------------------------------------------------------------- -void TestVApplication::OpenSettings() -{ -} - -//--------------------------------------------------------------------------------------------------------------------- -bool TestVApplication::IsAppInGUIMode() const -{ - return false; -} - -//--------------------------------------------------------------------------------------------------------------------- -void TestVApplication::InitTrVars() -{ -} +#include "testvapplication.h" //--------------------------------------------------------------------------------------------------------------------- int main(int argc, char** argv) diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/testvapplication.h valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/testvapplication.h --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/testvapplication.h 1970-01-01 00:00:00.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/testvapplication.h 2017-10-02 06:21:36.000000000 +0000 @@ -0,0 +1,75 @@ +/************************************************************************ + ** + ** @file + ** @author Roman Telezhynskyi + ** @date 30 9, 2017 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2017 Valentina project + ** 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 . + ** + *************************************************************************/ + +#ifndef TESTVAPPLICATION_H +#define TESTVAPPLICATION_H + +#include "../vmisc/vabstractapplication.h" + +#if defined(qApp) +#undef qApp +#endif +#define qApp (static_cast(QCoreApplication::instance())) + +class TestVApplication : public VAbstractApplication +{ +public: + TestVApplication(int &argc, char ** argv) + : VAbstractApplication(argc, argv), + m_trVars(nullptr) + {} + + virtual ~TestVApplication() Q_DECL_EQ_DEFAULT; + + virtual const VTranslateVars *TrVars() Q_DECL_OVERRIDE + { + return m_trVars; + } + + virtual void OpenSettings() Q_DECL_OVERRIDE + {} + + virtual bool IsAppInGUIMode() const Q_DECL_OVERRIDE + { + return false; + } + + virtual void InitTrVars() Q_DECL_OVERRIDE + {} + + void SetTrVars(VTranslateVars *trVars) + { + m_trVars = trVars; + } +private: + Q_DISABLE_COPY(TestVApplication) + VTranslateVars *m_trVars; +}; + +#endif // TESTVAPPLICATION_H + diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/tst_vtranslatevars.cpp valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/tst_vtranslatevars.cpp --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/tst_vtranslatevars.cpp 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/tst_vtranslatevars.cpp 2017-10-02 06:21:36.000000000 +0000 @@ -30,6 +30,7 @@ #include "../vmisc/logging.h" #include "../vpatterndb/vtranslatevars.h" #include "../qmuparser/qmuparsererror.h" +#include "testvapplication.h" #include @@ -45,6 +46,7 @@ void TST_VTranslateVars::initTestCase() { m_trMs = new VTranslateVars(); + qApp->SetTrVars(m_trMs); } //--------------------------------------------------------------------------------------------------------------------- @@ -72,16 +74,7 @@ QLocale::setDefault(locale); - QString result; - try - { - result = m_trMs->FormulaFromUser(input, true); - } - catch (qmu::QmuParserError &e)// In case something bad will happen - { - Q_UNUSED(e) - result = input; - } + const QString result = VTranslateVars::TryFormulaFromUser(input, true); QCOMPARE(result, output); } @@ -111,16 +104,7 @@ QLocale::setDefault(locale); - QString result; - try - { - result = m_trMs->FormulaToUser(input, true); - } - catch (qmu::QmuParserError &e)// In case something bad will happen - { - Q_UNUSED(e) - result = input; - } + const QString result = VTranslateVars::TryFormulaToUser(input, true); QCOMPARE(result, output); } diff -Nru valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/ValentinaTest.pro valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/ValentinaTest.pro --- valentina-0.5.999+60+3+201709250619~ubuntu15.04.1/src/test/ValentinaTest/ValentinaTest.pro 2017-09-25 06:19:32.000000000 +0000 +++ valentina-0.5.999+60+3+201710020621~ubuntu15.04.1/src/test/ValentinaTest/ValentinaTest.pro 2017-10-02 06:21:36.000000000 +0000 @@ -90,7 +90,8 @@ tst_readval.h \ tst_vtranslatevars.h \ tst_vabstractpiece.h \ - tst_vtooluniondetails.h + tst_vtooluniondetails.h \ + testvapplication.h # Set using ccache. Function enable_ccache() defined in common.pri. $$enable_ccache()