Command line options to export final measurements.
--HG-- branch : feature
This commit is contained in:
parent
d01edb53c3
commit
b673ec0fc7
364
dist/OBS_debian/debian.valentina.1
vendored
364
dist/OBS_debian/debian.valentina.1
vendored
|
@ -1,6 +1,6 @@
|
||||||
.\" Manpage for valentina.
|
.\" Manpage for valentina.
|
||||||
.\" Contact dismine@gmail.com to correct errors.
|
.\" Contact dismine@gmail.com to correct errors.
|
||||||
.TH valentina 1 "10 March, 2017" "valentina man page"
|
.TH valentina 1 "28 September, 2017" "valentina man page"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Valentina \- Pattern making program.
|
Valentina \- Pattern making program.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -106,6 +106,8 @@ The path to output destination folder. By default the directory at which the app
|
||||||
.RB "Export text as paths."
|
.RB "Export text as paths."
|
||||||
.IP "--exportOnlyDetails"
|
.IP "--exportOnlyDetails"
|
||||||
.RB "Export only details. Export details as they positioned in the details mode. Any layout related options will be ignored."
|
.RB "Export only details. Export details as they positioned in the details mode. Any layout related options will be ignored."
|
||||||
|
.IP "--exportSuchDetails <The name regex>"
|
||||||
|
.RB "Export only details that match a piece name regex."
|
||||||
.IP "-x, --gsize <The size value>"
|
.IP "-x, --gsize <The size value>"
|
||||||
.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."
|
.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 <The height value>"
|
.IP "-e, --gheight <The height value>"
|
||||||
|
@ -193,14 +195,366 @@ The path to output destination folder. By default the directory at which the app
|
||||||
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.
|
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"
|
.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."
|
.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 <Codec name>"
|
||||||
|
.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 <Separator character>"
|
||||||
|
.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 <Path to csv file>"
|
||||||
|
.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:
|
.IP Arguments:
|
||||||
.I filename
|
.I filename
|
||||||
\- a pattern file.
|
\- a pattern file.
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
.RI "This manual page was written by Roman Telezhynskyi <" dismine@gmail.com ">"
|
.RI "This manual page was written by Roman Telezhynskyi <" dismine@gmail.com ">"
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.RB "Full " "User Manual" " is availiable in"
|
|
||||||
.UR https://bitbucket.org/dismine/valentina/wiki/manual/Content
|
|
||||||
.UE
|
|
||||||
|
|
||||||
.BR tape (1)
|
.BR tape (1)
|
||||||
|
|
358
dist/debian/valentina.1
vendored
358
dist/debian/valentina.1
vendored
|
@ -1,6 +1,6 @@
|
||||||
.\" Manpage for valentina.
|
.\" Manpage for valentina.
|
||||||
.\" Contact dismine@gmail.com to correct errors.
|
.\" Contact dismine@gmail.com to correct errors.
|
||||||
.TH valentina 1 "22 September, 2017" "valentina man page"
|
.TH valentina 1 "28 September, 2017" "valentina man page"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Valentina \- Pattern making program.
|
Valentina \- Pattern making program.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -195,6 +195,362 @@ The path to output destination folder. By default the directory at which the app
|
||||||
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.
|
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"
|
.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."
|
.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 <Codec name>"
|
||||||
|
.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 <Separator character>"
|
||||||
|
.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 <Path to csv file>"
|
||||||
|
.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:
|
.IP Arguments:
|
||||||
.I filename
|
.I filename
|
||||||
\- a pattern file.
|
\- a pattern file.
|
||||||
|
|
|
@ -707,7 +707,8 @@ void TMainWindow::ExportToCSVData(const QString &fileName, bool withHeader, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
csv.toCSV(fileName, withHeader, separator, QTextCodec::codecForMib(mib));
|
QString error;
|
||||||
|
csv.toCSV(fileName, error, withHeader, separator, QTextCodec::codecForMib(mib));
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -33,8 +33,10 @@
|
||||||
#include "../vformat/vmeasurements.h"
|
#include "../vformat/vmeasurements.h"
|
||||||
#include "../vmisc/commandoptions.h"
|
#include "../vmisc/commandoptions.h"
|
||||||
#include "../vmisc/vsettings.h"
|
#include "../vmisc/vsettings.h"
|
||||||
|
#include "../vmisc/dialogs/dialogexporttocsv.h"
|
||||||
#include "../vlayout/vlayoutgenerator.h"
|
#include "../vlayout/vlayoutgenerator.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QTextCodec>
|
||||||
|
|
||||||
VCommandLinePtr VCommandLine::instance = nullptr;
|
VCommandLinePtr VCommandLine::instance = nullptr;
|
||||||
|
|
||||||
|
@ -278,6 +280,46 @@ void VCommandLine::InitOptions(VCommandLineOptions &options, QMap<QString, int>
|
||||||
"enabled). Alternatively you can use the "
|
"enabled). Alternatively you can use the "
|
||||||
"%1 environment variable.")
|
"%1 environment variable.")
|
||||||
.arg("QT_AUTO_SCREEN_SCALE_FACTOR=0")));
|
.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")));
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------
|
||||||
|
@ -499,7 +541,9 @@ VCommandLinePtr VCommandLine::Get(const QCoreApplication& app)
|
||||||
instance->parser.process(app);
|
instance->parser.process(app);
|
||||||
|
|
||||||
//fixme: in case of additional options/modes which will need to disable GUI - add it here too
|
//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;
|
return instance;
|
||||||
}
|
}
|
||||||
|
@ -547,6 +591,18 @@ bool VCommandLine::IsExportEnabled() const
|
||||||
return r;
|
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<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------
|
||||||
DialogLayoutSettings::PaperSizeTemplate VCommandLine::OptPaperSize() const
|
DialogLayoutSettings::PaperSizeTemplate VCommandLine::OptPaperSize() const
|
||||||
{
|
{
|
||||||
|
@ -655,6 +711,12 @@ int VCommandLine::IsExportOnlyDetails() const
|
||||||
return parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_EXPORTONLYDETAILS)));
|
return parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_EXPORTONLYDETAILS)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
int VCommandLine::IsCSVWithHeader() const
|
||||||
|
{
|
||||||
|
return parser.isSet(*optionsUsed.value(optionsIndex.value(LONG_OPTION_CSVWITHHEADER)));
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VCommandLine::OptExportSuchDetails() const
|
QString VCommandLine::OptExportSuchDetails() const
|
||||||
{
|
{
|
||||||
|
@ -667,6 +729,32 @@ QString VCommandLine::OptExportSuchDetails() const
|
||||||
return path;
|
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
|
QStringList VCommandLine::OptInputFileNames() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,6 +62,10 @@ public:
|
||||||
//export enabled
|
//export enabled
|
||||||
bool IsExportEnabled() const;
|
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
|
//@brief returns path to custom measure file or empty string
|
||||||
QString OptMeasurePath() const;
|
QString OptMeasurePath() const;
|
||||||
|
|
||||||
|
@ -78,10 +82,20 @@ public:
|
||||||
int IsBinaryDXF() const;
|
int IsBinaryDXF() const;
|
||||||
int IsTextAsPaths() const;
|
int IsTextAsPaths() const;
|
||||||
int IsExportOnlyDetails() const;
|
int IsExportOnlyDetails() const;
|
||||||
|
int IsCSVWithHeader() const;
|
||||||
|
|
||||||
//@brief returns the piece name regex or empty string if not set
|
//@brief returns the piece name regex or empty string if not set
|
||||||
QString OptExportSuchDetails() const;
|
QString OptExportSuchDetails() const;
|
||||||
|
|
||||||
|
//@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...
|
//generator creation is moved here ... because most options are for it only, so no need to create extra getters...
|
||||||
//@brief creates VLayoutGenerator
|
//@brief creates VLayoutGenerator
|
||||||
VLayoutGeneratorPtr DefaultGenerator() const;
|
VLayoutGeneratorPtr DefaultGenerator() const;
|
||||||
|
|
|
@ -1535,7 +1535,8 @@ void MainWindow::ExportToCSVData(const QString &fileName, bool withHeader, int m
|
||||||
SavePreviewCalculation(false);
|
SavePreviewCalculation(false);
|
||||||
SavePreviewCalculation(true);
|
SavePreviewCalculation(true);
|
||||||
|
|
||||||
csv.toCSV(fileName, withHeader, separator, QTextCodec::codecForMib(mib));
|
QString error;
|
||||||
|
csv.toCSV(fileName, error, withHeader, separator, QTextCodec::codecForMib(mib));
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -4841,7 +4842,7 @@ void MainWindow::ZoomFirstShow()
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void MainWindow::DoExport(const VCommandLinePtr &expParams)
|
bool MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
{
|
{
|
||||||
QHash<quint32, VPiece> details;
|
QHash<quint32, VPiece> details;
|
||||||
if(not qApp->getOpeningPattern())
|
if(not qApp->getOpeningPattern())
|
||||||
|
@ -4851,7 +4852,7 @@ void MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
{
|
{
|
||||||
qCCritical(vMainWindow, "%s", qUtf8Printable(tr("You can't export empty scene.")));
|
qCCritical(vMainWindow, "%s", qUtf8Printable(tr("You can't export empty scene.")));
|
||||||
qApp->exit(V_EX_DATAERR);
|
qApp->exit(V_EX_DATAERR);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -4887,7 +4888,7 @@ void MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
qCCritical(vMainWindow, "%s", qUtf8Printable(tr("You can't export empty scene. Please, "
|
qCCritical(vMainWindow, "%s", qUtf8Printable(tr("You can't export empty scene. Please, "
|
||||||
"include at least one detail in layout.")));
|
"include at least one detail in layout.")));
|
||||||
qApp->exit(V_EX_DATAERR);
|
qApp->exit(V_EX_DATAERR);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4910,7 +4911,7 @@ void MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
{
|
{
|
||||||
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);
|
qApp->exit(V_EX_DATAERR);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -4934,16 +4935,61 @@ void MainWindow::DoExport(const VCommandLinePtr &expParams)
|
||||||
qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Export error.")),
|
qCCritical(vMainWindow, "%s\n\n%s", qUtf8Printable(tr("Export error.")),
|
||||||
qUtf8Printable(e.ErrorMessage()));
|
qUtf8Printable(e.ErrorMessage()));
|
||||||
qApp->exit(V_EX_DATAERR);
|
qApp->exit(V_EX_DATAERR);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return;
|
qApp->exit(V_EX_DATAERR);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qApp->exit(V_EX_OK);
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QChar separator = expParams->OptCSVSeparator();
|
||||||
|
if (separator.isNull())
|
||||||
|
{
|
||||||
|
separator = VCommonSettings::GetDefCSVSeparator();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ExportFMeasurementsToCSVData(filePath, expParams->IsCSVWithHeader(), mib, separator);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -5043,6 +5089,11 @@ void MainWindow::ProcessCMD()
|
||||||
if (VApplication::IsGUIMode())
|
if (VApplication::IsGUIMode())
|
||||||
{
|
{
|
||||||
ReopenFilesAfterCrash(args);
|
ReopenFilesAfterCrash(args);
|
||||||
|
|
||||||
|
for (int i=0, sz = args.size(); i < sz; ++i)
|
||||||
|
{
|
||||||
|
LoadPattern(args.at(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -5052,21 +5103,16 @@ void MainWindow::ProcessCMD()
|
||||||
qApp->exit(V_EX_NOINPUT);
|
qApp->exit(V_EX_NOINPUT);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for (int i=0, sz = args.size(); i < sz; ++i)
|
const bool loaded = LoadPattern(args.first(), cmd->OptMeasurePath());
|
||||||
{
|
|
||||||
const bool loaded = LoadPattern(args.at(static_cast<int>(i)), cmd->OptMeasurePath());
|
|
||||||
|
|
||||||
if (not loaded && not VApplication::IsGUIMode())
|
if (not loaded)
|
||||||
{
|
{
|
||||||
return; // process only one input file
|
return; // process only one input file
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hSetted = true;
|
bool hSetted = true;
|
||||||
bool sSetted = true;
|
bool sSetted = true;
|
||||||
if (loaded && (cmd->IsTestModeEnabled() || cmd->IsExportEnabled()))
|
|
||||||
{
|
|
||||||
if (cmd->IsSetGradationSize())
|
if (cmd->IsSetGradationSize())
|
||||||
{
|
{
|
||||||
sSetted = SetSize(cmd->OptGradationSize());
|
sSetted = SetSize(cmd->OptGradationSize());
|
||||||
|
@ -5076,29 +5122,26 @@ void MainWindow::ProcessCMD()
|
||||||
{
|
{
|
||||||
hSetted = SetHeight(cmd->OptGradationHeight());
|
hSetted = SetHeight(cmd->OptGradationHeight());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (not cmd->IsTestModeEnabled())
|
if (not (hSetted && sSetted))
|
||||||
{
|
|
||||||
if (cmd->IsExportEnabled())
|
|
||||||
{
|
|
||||||
if (loaded && hSetted && sSetted)
|
|
||||||
{
|
|
||||||
DoExport(cmd);
|
|
||||||
return; // process only one input file
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
qApp->exit(V_EX_DATAERR);
|
qApp->exit(V_EX_DATAERR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
if (not cmd->IsTestModeEnabled())
|
||||||
|
{
|
||||||
|
if (cmd->IsExportEnabled() && not DoExport(cmd))
|
||||||
|
{
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cmd->IsExportFMEnabled() && not DoFMExport(cmd))
|
||||||
|
{
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not VApplication::IsGUIMode())
|
|
||||||
{
|
|
||||||
qApp->exit(V_EX_OK);// close program after processing in console mode
|
qApp->exit(V_EX_OK);// close program after processing in console mode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,7 +351,8 @@ private:
|
||||||
void CheckRequiredMeasurements(const VMeasurements *m);
|
void CheckRequiredMeasurements(const VMeasurements *m);
|
||||||
|
|
||||||
void ReopenFilesAfterCrash(QStringList &args);
|
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 SetSize(const QString &text);
|
||||||
bool SetHeight(const QString & text);
|
bool SetHeight(const QString & text);
|
||||||
|
|
|
@ -1572,7 +1572,7 @@ void MainWindowsNoGUI::SetSizeHeightForIndividualM() const
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void MainWindowsNoGUI::ExportFMeasurementsToCSVData(const QString &fileName, bool withHeader, int mib,
|
bool MainWindowsNoGUI::ExportFMeasurementsToCSVData(const QString &fileName, bool withHeader, int mib,
|
||||||
const QChar &separator) const
|
const QChar &separator) const
|
||||||
{
|
{
|
||||||
QxtCsvModel csv;
|
QxtCsvModel csv;
|
||||||
|
@ -1617,7 +1617,7 @@ void MainWindowsNoGUI::ExportFMeasurementsToCSVData(const QString &fileName, boo
|
||||||
{
|
{
|
||||||
qApp->exit(V_EX_DATAERR);
|
qApp->exit(V_EX_DATAERR);
|
||||||
}
|
}
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (qmu::QmuParserError &e)
|
catch (qmu::QmuParserError &e)
|
||||||
|
@ -1628,12 +1628,25 @@ void MainWindowsNoGUI::ExportFMeasurementsToCSVData(const QString &fileName, boo
|
||||||
{
|
{
|
||||||
qApp->exit(V_EX_DATAERR);
|
qApp->exit(V_EX_DATAERR);
|
||||||
}
|
}
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
csv.toCSV(fileName, withHeader, separator, QTextCodec::codecForMib(mib));
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -103,7 +103,7 @@ protected:
|
||||||
QString FileName() const;
|
QString FileName() const;
|
||||||
void SetSizeHeightForIndividualM() const;
|
void SetSizeHeightForIndividualM() const;
|
||||||
|
|
||||||
void ExportFMeasurementsToCSVData(const QString &fileName,
|
bool ExportFMeasurementsToCSVData(const QString &fileName,
|
||||||
bool withHeader, int mib, const QChar &separator) const;
|
bool withHeader, int mib, const QChar &separator) const;
|
||||||
private slots:
|
private slots:
|
||||||
void PrintPages (QPrinter *printer);
|
void PrintPages (QPrinter *printer);
|
||||||
|
|
|
@ -111,6 +111,11 @@ const QString SINGLE_OPTION_TOP_MARGIN = QStringLiteral("T");
|
||||||
const QString LONG_OPTION_BOTTOM_MARGIN = QStringLiteral("bmargin");
|
const QString LONG_OPTION_BOTTOM_MARGIN = QStringLiteral("bmargin");
|
||||||
const QString SINGLE_OPTION_BOTTOM_MARGIN = QStringLiteral("B");
|
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()
|
QStringList AllKeys()
|
||||||
{
|
{
|
||||||
|
@ -143,7 +148,11 @@ QStringList AllKeys()
|
||||||
<< LONG_OPTION_RIGHT_MARGIN << SINGLE_OPTION_RIGHT_MARGIN
|
<< LONG_OPTION_RIGHT_MARGIN << SINGLE_OPTION_RIGHT_MARGIN
|
||||||
<< LONG_OPTION_TOP_MARGIN << SINGLE_OPTION_TOP_MARGIN
|
<< LONG_OPTION_TOP_MARGIN << SINGLE_OPTION_TOP_MARGIN
|
||||||
<< LONG_OPTION_BOTTOM_MARGIN << SINGLE_OPTION_BOTTOM_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;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,6 +108,11 @@ extern const QString SINGLE_OPTION_TOP_MARGIN;
|
||||||
extern const QString LONG_OPTION_BOTTOM_MARGIN;
|
extern const QString LONG_OPTION_BOTTOM_MARGIN;
|
||||||
extern const QString SINGLE_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();
|
QStringList AllKeys();
|
||||||
|
|
||||||
#endif // COMMANDOPTIONS_H
|
#endif // COMMANDOPTIONS_H
|
||||||
|
|
|
@ -51,7 +51,7 @@ DialogExportToCSV::DialogExportToCSV(QWidget *parent)
|
||||||
|
|
||||||
ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec()));
|
ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec()));
|
||||||
|
|
||||||
SetSeparator(qApp->Settings()->GetDefCSVSeparator());
|
SetSeparator(VCommonSettings::GetDefCSVSeparator());
|
||||||
|
|
||||||
QPushButton *bDefaults = ui->buttonBox->button(QDialogButtonBox::RestoreDefaults);
|
QPushButton *bDefaults = ui->buttonBox->button(QDialogButtonBox::RestoreDefaults);
|
||||||
SCASSERT(bDefaults != nullptr)
|
SCASSERT(bDefaults != nullptr)
|
||||||
|
@ -60,7 +60,7 @@ DialogExportToCSV::DialogExportToCSV(QWidget *parent)
|
||||||
ui->checkBoxWithHeader->setChecked(qApp->Settings()->GetDefCSVWithHeader());
|
ui->checkBoxWithHeader->setChecked(qApp->Settings()->GetDefCSVWithHeader());
|
||||||
ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec()));
|
ui->comboBoxCodec->setCurrentIndex(ui->comboBoxCodec->findData(VCommonSettings::GetDefCSVCodec()));
|
||||||
|
|
||||||
SetSeparator(qApp->Settings()->GetDefCSVSeparator());
|
SetSeparator(VCommonSettings::GetDefCSVSeparator());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ QChar DialogExportToCSV::GetSeparator() const
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return QChar(',');
|
return VCommonSettings::GetDefCSVSeparator();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,3 +184,34 @@ void DialogExportToCSV::SetSeparator(const QChar &separator)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString DialogExportToCSV::MakeHelpCodecsList()
|
||||||
|
{
|
||||||
|
QString out("\n");
|
||||||
|
const QList<int> 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;
|
||||||
|
}
|
||||||
|
|
|
@ -53,6 +53,9 @@ public:
|
||||||
QChar GetSeparator() const;
|
QChar GetSeparator() const;
|
||||||
void SetSeparator(const QChar &separator);
|
void SetSeparator(const QChar &separator);
|
||||||
|
|
||||||
|
static QString MakeHelpCodecsList();
|
||||||
|
static QString MakeHelpSeparatorList();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void changeEvent(QEvent* event) Q_DECL_OVERRIDE;
|
virtual void changeEvent(QEvent* event) Q_DECL_OVERRIDE;
|
||||||
virtual void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
|
virtual void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
|
||||||
|
|
|
@ -591,7 +591,7 @@ static QString qxt_addCsvQuotes(QxtCsvModel::QuoteMode mode, QString field)
|
||||||
to output a row of headers at the top of the file.
|
to output a row of headers at the top of the file.
|
||||||
*/
|
*/
|
||||||
// cppcheck-suppress funcArgNamesDifferent
|
// 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();
|
const QxtCsvModelPrivate& d_ptr = qxt_d();
|
||||||
int row, col, rows, cols;
|
int row, col, rows, cols;
|
||||||
|
@ -600,7 +600,11 @@ void QxtCsvModel::toCSV(QIODevice* dest, bool withHeader, QChar separator, QText
|
||||||
QString data;
|
QString data;
|
||||||
if (not dest->isOpen())
|
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);
|
QTextStream stream(dest);
|
||||||
if (codec)
|
if (codec)
|
||||||
|
@ -643,6 +647,7 @@ void QxtCsvModel::toCSV(QIODevice* dest, bool withHeader, QChar separator, QText
|
||||||
}
|
}
|
||||||
stream << flush;
|
stream << flush;
|
||||||
dest->close();
|
dest->close();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -653,10 +658,11 @@ void QxtCsvModel::toCSV(QIODevice* dest, bool withHeader, QChar separator, QText
|
||||||
Fields in the output file will be separated by \a separator. Set \a withHeader to true
|
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.
|
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);
|
QFile dest(filename);
|
||||||
toCSV(&dest, withHeader, separator, codec);
|
return toCSV(&dest, error, withHeader, separator, codec);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -93,8 +93,9 @@ public:
|
||||||
void setSource(const QString &filename, bool withHeader = false, QChar separator = ',',
|
void setSource(const QString &filename, bool withHeader = false, QChar separator = ',',
|
||||||
QTextCodec* codec = nullptr);
|
QTextCodec* codec = nullptr);
|
||||||
|
|
||||||
void toCSV(QIODevice *file, bool withHeader = false, QChar separator = ',', QTextCodec* codec = nullptr) const;
|
bool toCSV(QIODevice *file, QString &error, bool withHeader = false, QChar separator = ',',
|
||||||
void toCSV(const QString &filename, 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;
|
QTextCodec* codec = nullptr) const;
|
||||||
|
|
||||||
enum QuoteOption { NoQuotes = 0,
|
enum QuoteOption { NoQuotes = 0,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user