Merge remote-tracking branch 'origin/develop' into feature/manual-layout

This commit is contained in:
Roman Telezhynskyi 2020-11-10 16:00:01 +02:00
commit 0371905c0d
464 changed files with 59348 additions and 21838 deletions

View File

@ -4,53 +4,31 @@ jobs:
- stage: main test - stage: main test
os: linux os: linux
dist: xenial dist: xenial
sudo: required
compiler: clang compiler: clang
env: env:
- DEPLOY=false - DEPLOY=false
- CCACHE_CPP2=yes - CCACHE_CPP2=yes
- RUN_TESTS=true - RUN_TESTS=true
cache: cache:
- ccache ccache: true
directories: directories:
- "$HOME/.sonar/cache" - "$HOME/.sonar/cache"
- os: linux - os: linux
dist: bionic dist: bionic
sudo: required
compiler: clang compiler: clang
env: env:
- DEPLOY=false - DEPLOY=false
- CCACHE_CPP2=yes - CCACHE_CPP2=yes
- RUN_TESTS=true - RUN_TESTS=true
cache: cache:
- ccache ccache: true
directories: directories:
- "$HOME/.sonar/cache" - "$HOME/.sonar/cache"
- os: osx - os: osx
compiler: clang compiler: clang
env: env:
- DEPLOY=true - DEPLOY=true
- LEGACY=false
osx_image: xcode11 osx_image: xcode11
- os: osx
compiler: clang
env:
- DEPLOY=true
- LEGACY=true
osx_image: xcode8
- stage: sonarcloud
os: linux
dist: xenial
sudo: required
compiler: clang
env:
- DEPLOY=false
- CCACHE_CPP2=yes
- RUN_TESTS=false
cache:
- ccache
directories:
- "$HOME/.sonar/cache"
before_install: before_install:
- | - |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
@ -73,12 +51,7 @@ before_install:
sudo dpkg -i ccache_3.3.4-1_amd64.deb; sudo dpkg -i ccache_3.3.4-1_amd64.deb;
else else
brew update > /dev/null; brew update > /dev/null;
if [[ "$LEGACY" = false ]]; then
brew install qt5; brew install qt5;
else
unset SSL_CERT_FILE;
brew install https://gist.githubusercontent.com/dismine/c3ac01de38e12edcf22d9e05791adf82/raw/20544ac8e68ef3523f92e15f432bbaf9a6aa2c22/qt5.rb;
fi
chmod -R 755 /usr/local/opt/qt5/* chmod -R 755 /usr/local/opt/qt5/*
fi fi
before_script: before_script:
@ -111,14 +84,10 @@ script:
- "$CXX --version" - "$CXX --version"
- | - |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
if [[ "$RUN_TESTS" == "true" ]]; then
make -j$(nproc); make -j$(nproc);
if [[ "$RUN_TESTS" == "true" ]]; then
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$TRAVIS_BUILD_DIR/build/src/libs/vpropertyexplorer/bin:$TRAVIS_BUILD_DIR/build/src/libs/qmuparser/bin"; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$TRAVIS_BUILD_DIR/build/src/libs/vpropertyexplorer/bin:$TRAVIS_BUILD_DIR/build/src/libs/qmuparser/bin";
xvfb-run -a make --silent check TESTARGS="-silent"; xvfb-run -a make --silent check TESTARGS="-silent";
else
build-wrapper-linux-x86-64 --out-dir ../bw-outputs make -j$(nproc);
cd ..;
sonar-scanner;
fi fi
else else
make -j1; make -j1;
@ -133,27 +102,15 @@ before_deploy:
- | - |
if [[ "$DEPLOY" == "true" ]]; then if [[ "$DEPLOY" == "true" ]]; then
../scripts/macfixqtdylibrpath.py $TRAVIS_BUILD_DIR/build/src/app/valentina/bin/Valentina.app; ../scripts/macfixqtdylibrpath.py $TRAVIS_BUILD_DIR/build/src/app/valentina/bin/Valentina.app;
if [[ "$LEGACY" = false ]]; then
tar -C $TRAVIS_BUILD_DIR/build/src/app/valentina/bin --exclude "*.DS_Store" -cvzf valentina-osx-${TRAVIS_COMMIT}.tar.gz Valentina.app/; tar -C $TRAVIS_BUILD_DIR/build/src/app/valentina/bin --exclude "*.DS_Store" -cvzf valentina-osx-${TRAVIS_COMMIT}.tar.gz Valentina.app/;
else
tar -C $TRAVIS_BUILD_DIR/build/src/app/valentina/bin --exclude "*.DS_Store" -cvzf valentina-osx-${TRAVIS_COMMIT}-legacy.tar.gz Valentina.app/;
fi
fi fi
deploy: deploy:
edge:
branch: v1.8.47
provider: bintray provider: bintray
skip_cleanup: true skip_cleanup: true
file: "../share/bintray.json" file: "../share/bintray.json"
user: dismine user: dismine
key: key:
secure: q9rcswyUyOqHAnxL0FLEQ8tdFkE21kNlv/TUpZgk0MbcsWRhBWaKJVv5kz6ABkjeLMB7c7eS7KfYRui0RFBKHI7ZnpzHBZN4f1aGd/rf9m5qaZdKFFBlpz4tXPHvXOVyXRwOReqFj7brAz6NB+oqJN8HFA4Q1y039yZOaHt28JkwYSDqS5lRvbwegYS8kaJupGZcm8NaNeB8tuXuZ/8DIQpZdVKmBUwpgpPAewCEqYP4z9DUpsmMZ5h63g7mJKm9di91cQr65eS24io6m1ZfAx8M6kTaKwyR5nz8a8bnqR48AAnbNoM8Xj1sgJqnT40DZKPCNr7KL3JSNRglKNgHVMFBOj0v9F5YxsDs8twWuqFVbywB+lNSHDyvGVgmS2+EdwKLQT0YBxYfIL1nh34ed7GffZZmBcAJGfxo8ieAMRgyylSyQIHJ0ZBl6X6DzOvLpvFlcva9yhqZfkx3P/Dgarqklnj3DdvzTDW2vxCT4yVLpMySlBXW2I3s7m8xpOjZbM7eZfMZkwjd/e8IYp8jxdQnxlzNe15mzxSXnZjLz3Rwi1qzhJZyZf4OGVxuQuR9oW+c5q55OOY5hImtZELlJyu1K0zKTd85g0D+WwKj4J30J0QWl1pxZlln59Q5cMmpyQ7sc8zN1WPoWAEyavwPrf4028TpEJqaUw/0cQGg9I4= secure: q9rcswyUyOqHAnxL0FLEQ8tdFkE21kNlv/TUpZgk0MbcsWRhBWaKJVv5kz6ABkjeLMB7c7eS7KfYRui0RFBKHI7ZnpzHBZN4f1aGd/rf9m5qaZdKFFBlpz4tXPHvXOVyXRwOReqFj7brAz6NB+oqJN8HFA4Q1y039yZOaHt28JkwYSDqS5lRvbwegYS8kaJupGZcm8NaNeB8tuXuZ/8DIQpZdVKmBUwpgpPAewCEqYP4z9DUpsmMZ5h63g7mJKm9di91cQr65eS24io6m1ZfAx8M6kTaKwyR5nz8a8bnqR48AAnbNoM8Xj1sgJqnT40DZKPCNr7KL3JSNRglKNgHVMFBOj0v9F5YxsDs8twWuqFVbywB+lNSHDyvGVgmS2+EdwKLQT0YBxYfIL1nh34ed7GffZZmBcAJGfxo8ieAMRgyylSyQIHJ0ZBl6X6DzOvLpvFlcva9yhqZfkx3P/Dgarqklnj3DdvzTDW2vxCT4yVLpMySlBXW2I3s7m8xpOjZbM7eZfMZkwjd/e8IYp8jxdQnxlzNe15mzxSXnZjLz3Rwi1qzhJZyZf4OGVxuQuR9oW+c5q55OOY5hImtZELlJyu1K0zKTd85g0D+WwKj4J30J0QWl1pxZlln59Q5cMmpyQ7sc8zN1WPoWAEyavwPrf4028TpEJqaUw/0cQGg9I4=
dry-run: false
on: on:
all_branches: true all_branches: true
condition: "$DEPLOY = true" condition: "$DEPLOY = true"
addons:
sonarcloud:
organization: "dismine"
token:
secure: L8uC9uH9d+coVwndZ+UzDpMFS+fxk8dCSEcoAIXC22xg4PhHACbZJqrSANRNy8UC7LZHdFlGDozeHLqw6FPanKIoNy6yX7ngGjuR2azLOdqNhBvlhH6Knc0ua7zSpQuHDkkv3vwdJHS4MNXvAwTr+ErLXmEBvuekiM2HEHGRA8MtdEo9naq+m65/ZTkn3iiA654HT2gh3afYDONyTbEa6WkGmoI1Z597PoIJ/0HaKf9TqO/FahXhLYmLL9UW7rPCwj8rUyLiJ39lRrmo2JAPdRT/QoxAA5l97OI+IMjv5ut5p1KZUozuAedxj8kx43QAw+YuRqBZAuZOy5meFSHV62WG5CbqCuZPE79+JyLTYSKxuuzK6v8F6jnQRXC79EdYEIRbXtC86ZftFDgHTt1LP4JaBoPV9ee3DiY7PHO65oSjey7831Ou18UcjmV0BqtQfVVAWsRKYTqjFCBKa9hNDbzIKHLbmj5/K5TitBMTBpjSYnLYJdkDWY3DPGpWDFyT2oo2bRrSl9/UsuT27hi5psMTQSlrYqIGezVz0KDf3TjWPS5RhHjMr+Lt4Ykh5YxKw9zmvH9gvPwOQbfTtPNZHGOMt1Q8aZhovruYDlBleBFuDaHnKV8U9lJr2BOb44nvx+BBURo/Xq1cNew9UNitjTvtEmPeocOLMb2lFMkXAbs=

View File

@ -1,4 +1,14 @@
# Version 0.7.0 (unreleased) # Version 0.7.37 (unreleased)
- Fix Tape crash on Mac OS X.
- Fix issue in VAbstractCurve::CurveIntersectAxis.
- Improve editing a spline path through control points for locked angles.
- [smart-pattern/valentina#73] Notes for tools.
- Fix crash while synchronize measurements.
- Object alias.
- Change value for an uninitialized local variable to NAN.
- Independent pen style and color after a group operation.
# Version 0.7.36 October 24, 2020
- [#892] Show tooltip for piece node point. - [#892] Show tooltip for piece node point.
- [#894] Quick way to disable a passmark. - [#894] Quick way to disable a passmark.
- [#895] Improve path validation. Do not allow repeat the same curve twice. - [#895] Improve path validation. Do not allow repeat the same curve twice.
@ -50,6 +60,10 @@
- Improve the property browser. Show full arc name. - Improve the property browser. Show full arc name.
- [smart-pattern/valentina#45] Optimize tool box position for big screen resolutions. - [smart-pattern/valentina#45] Optimize tool box position for big screen resolutions.
- [smart-pattern/valentina#40] Invalid name of arc in modeling mode. - [smart-pattern/valentina#40] Invalid name of arc in modeling mode.
- New warning. Error calculating segment of curve.
- Improve searching lost measurements. Additional case with underscores instead of regular spaces.
- Redesign multisize measurements.
- [smart-pattern/valentina#5] New versioning schema.
# Version 0.6.2 (unreleased) # Version 0.6.2 (unreleased)
- [#903] Bug in tool Cut Spline path. - [#903] Bug in tool Cut Spline path.
@ -89,6 +103,9 @@
- Fix crash after uniting three pieces in sequence. - Fix crash after uniting three pieces in sequence.
- Incorrect conversion to newer curve format. - Incorrect conversion to newer curve format.
- Elide a variable description in the formula wizard. - Elide a variable description in the formula wizard.
- Fix removing a pin in the Seam Allowance tool dialog.
- Fix label size for case with two pins.
- Fix crash while synchronize measurements.
# Version 0.6.1 October 23, 2018 # Version 0.6.1 October 23, 2018
- [#885] Regression. Broken support for multi size measurements. - [#885] Regression. Broken support for multi size measurements.

View File

@ -39,10 +39,10 @@ shallow_clone: false # default is "false"
environment: environment:
matrix: matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
QT5: Qt\5.14\mingw73_32 QT5: Qt\5.15\mingw81_32
QT_VERSION: Qt5.14 QT_VERSION: Qt5.15
QMAKE_GENERATOR: "MinGW Makefiles" QMAKE_GENERATOR: "MinGW Makefiles"
MINGW_PATH: C:\Qt\Tools\mingw730_32\bin MINGW_PATH: C:\Qt\Tools\mingw810_32\bin
PLATFORM: x86 PLATFORM: x86
DEPLOY: true DEPLOY: true
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
@ -52,6 +52,26 @@ environment:
MINGW_PATH: C:\Qt\Tools\mingw492_32\bin MINGW_PATH: C:\Qt\Tools\mingw492_32\bin
PLATFORM: x86 PLATFORM: x86
DEPLOY: true DEPLOY: true
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
QT5: Qt\5.15\mingw81_64
QT_VERSION: Qt5.15
QMAKE_GENERATOR: "MinGW Makefiles"
MINGW_PATH: C:\Qt\Tools\mingw810_64\bin
PLATFORM: x64
DEPLOY: false
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
QT5: Qt\5.15\msvc2019_64
QMAKE_GENERATOR: "NMake Makefiles JOM"
VSVER: 16
PLATFORM: x64
DEPLOY: false
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
QT5: Qt\5.14\mingw73_32
QT_VERSION: Qt5.14
QMAKE_GENERATOR: "MinGW Makefiles"
MINGW_PATH: C:\Qt\Tools\mingw730_32\bin
PLATFORM: x86
DEPLOY: false
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
QT5: Qt\5.14\mingw73_64 QT5: Qt\5.14\mingw73_64
QT_VERSION: Qt5.14 QT_VERSION: Qt5.14
@ -238,7 +258,7 @@ deploy:
package: valentina-win_auto-upload package: valentina-win_auto-upload
publish: true publish: true
override: true override: true
version: 0.7.0a version: 0.7.36
on: on:
DEPLOY: true DEPLOY: true
artifact: valentina-win-$(QT_VERSION)-$(APPVEYOR_REPO_BRANCH)-$(APPVEYOR_REPO_COMMIT) artifact: valentina-win-$(QT_VERSION)-$(APPVEYOR_REPO_BRANCH)-$(APPVEYOR_REPO_COMMIT)

View File

@ -19,6 +19,19 @@ unix{
} else { } else {
VCOPY = $$QMAKE_COPY -u VCOPY = $$QMAKE_COPY -u
} }
# Default prefix. Use for creation install path.
DEFAULT_PREFIX = /usr
# Prefix for binary file.
isEmpty(PREFIX){
PREFIX = $$DEFAULT_PREFIX
}
BINDIR = $$PREFIX/bin
DATADIR = $$PREFIX/share
PKGDATADIR = $$DATADIR/valentina
DEFINES += BINDIR=\\\"$$BINDIR\\\" DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
} }
win32{ win32{
@ -310,9 +323,6 @@ defineReplace(FindLatestTagDistance){
} }
} }
# Default prefix. Use for creation install path.
DEFAULT_PREFIX = /usr
# In debug mode on Unix system we use all usefull for us compilers keys for checking errors. # In debug mode on Unix system we use all usefull for us compilers keys for checking errors.
# Also trying make all possible for speed up build time. # Also trying make all possible for speed up build time.
unix { unix {
@ -934,6 +944,7 @@ MSVC_DEBUG_CXXFLAGS += \
-wd5027 \ # move assignment operator was implicitly defined as deleted -wd5027 \ # move assignment operator was implicitly defined as deleted
-wd5039 \ # pointer or reference to potentially throwing function passed to extern C function under -EHc. -wd5039 \ # pointer or reference to potentially throwing function passed to extern C function under -EHc.
-wd4774 \ # format string expected in argument 3 is not a string literal -wd4774 \ # format string expected in argument 3 is not a string literal
-wd5204 # class has virtual functions, but its trivial destructor is not virtual; instances of objects derived -wd5204 \ # class has virtual functions, but its trivial destructor is not virtual; instances of objects derived
# from this class may not be destructed correctly # from this class may not be destructed correctly
-wd5219 # implicit conversion from '<type>' to '<type>', possible loss of data
} }

View File

@ -1,5 +1,5 @@
valentina (0.7.0) trusty; urgency=low valentina (0.7.36) trusty; urgency=low
* Auto build. * Auto build.
-- dismine <dismine@dismine-To-be-filled-by-O-E-M> Mon, 12 Oct 2018 12:27:00 +0300 -- dismine <dismine@dismine-To-be-filled-by-O-E-M> Sat, 24 Oct 2020 12:27:00 +0300

View File

@ -16,8 +16,7 @@ Vcs-Browser: https://gitlab.com/smart-pattern/valentina
Package: valentina Package: valentina
Architecture: i386 amd64 Architecture: i386 amd64
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8) Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8), poppler-utils
Suggests: xpdf
Conflicts: seamly2d Conflicts: seamly2d
Description: Pattern making program. Description: Pattern making program.
Valentina is a cross-platform patternmaking program which allows designers Valentina is a cross-platform patternmaking program which allows designers

View File

@ -1,6 +1,6 @@
.\" Manpage for tape. .\" Manpage for tape.
.\" Contact dismine@gmail.com to correct errors. .\" Contact dismine@gmail.com to correct errors.
.TH tape 1 "10 March, 2017" "tape man page" .TH tape 1 "3 October, 2020" "tape man page"
.SH NAME .SH NAME
Tape \- Valentina's measurements editor. Tape \- Valentina's measurements editor.
.SH SYNOPSIS .SH SYNOPSIS
@ -20,12 +20,14 @@ is a part of Valentina. And used for creating and editing measurement files.
Displays this help. Displays this help.
.IP "-v, --version" .IP "-v, --version"
Displays version information. Displays version information.
.IP "-e, --height <The base height>" .IP "-a, --dimensionA <The dimension A base>"
Open with the base height. Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm. Set base for dimension A in the table units.
.IP "-s, --size <The base size>" .IP "-b, --dimensionB <The dimension B base>"
Open with the base size. Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm. Set base for dimension B in the table units.
.IP "-u, --unit <The pattern unit>" .IP "-c, --dimensionA <The dimension C base>"
Set pattern file unit: cm, mm, inch. Set base for dimension C in the table units.
.IP "-u, --units <The pattern units>"
Set pattern file units: cm, mm, inch.
.IP "--test" .IP "--test"
Use for unit testing. Run the program and open a file without showing the main window. Use for unit testing. Run the program and open a file without showing the main window.
.IP "--no-scaling" .IP "--no-scaling"
@ -35,9 +37,5 @@ Disable high dpi scaling. Call this option if has problem with scaling (by defau
\- the measurement file. \- the measurement 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"
.RB "Full " "User Manual" " is availiable in"
.UR https://bitbucket.org/dismine/valentina/wiki/manual/Content
.UE
.BR valentina (1) .BR valentina (1)

View File

@ -139,10 +139,12 @@ The path to output destination folder. By default the directory at which the app
.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>" .IP "--exportSuchDetails <The name regex>"
.RB "Export only details that match a piece name regex." .RB "Export only details that match a piece name regex."
.IP "-x, --gsize <The size value>" .IP "--dimensionA <The dimension A base>"
.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 base for dimension A in the multisize measurements units " "(export mode)" "."
.IP "-e, --gheight <The height value>" .IP "--dimensionB <The dimension B base>"
.RB "Set height value a pattern file, that was opened with multisize measurements (" "export mode" "). Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm." .RB "Set base for dimension B in the multisize measurements units " "(export mode)" "."
.IP "--dimensionC <The dimension C base>"
.RB "Set base for dimension C in the multisize measurements units " "(export mode)" "."
.IP "--userMaterial <User material>" .IP "--userMaterial <User material>"
.RB "Use this option to override user material defined in pattern. The value must be in form <number>@<user matrial name>. The number should be in range from 1 to 20. For example, 1@Fabric2. The key can be used multiple times. Has no effect in GUI mode." .RB "Use this option to override user material defined in pattern. The value must be in form <number>@<user matrial name>. The number should be in range from 1 to 20. For example, 1@Fabric2. The key can be used multiple times. Has no effect in GUI mode."
.IP "-p, --pageformat <Template number>" .IP "-p, --pageformat <Template number>"

View File

@ -1,5 +1,5 @@
valentina (0.7.0) trusty; urgency=low valentina (0.7.36) trusty; urgency=low
* Auto build. * Auto build.
-- dismine <dismine@dismine-To-be-filled-by-O-E-M> Mon, 12 Oct 2018 12:27:00 +0300 -- dismine <dismine@dismine-To-be-filled-by-O-E-M> Sat, 24 Oct 2020 12:27:00 +0300

3
dist/debian/control vendored
View File

@ -16,8 +16,7 @@ Vcs-Browser: https://gitlab.com/smart-pattern/valentina
Package: valentina Package: valentina
Architecture: i386 amd64 Architecture: i386 amd64
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8) Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libqt5core5a (>= 5.4.0) | libqt5core5 (>= 5.4.0), libqt5gui5 (>= 5.4.0) | libqt5gui5-gles (>= 5.4.0), libqt5printsupport5 (>= 5.4.0), libqt5svg5 (>= 5.4.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0), libqt5xmlpatterns5 (>= 5.4.0), libqt5concurrent5(>= 5.4.0), libqt5opengl5 (>= 5.4.0), libstdc++6 (>= 4.8), poppler-utils
Suggests: xpdf
Conflicts: seamly2d Conflicts: seamly2d
Description: Pattern making program. Description: Pattern making program.
Valentina is a cross-platform patternmaking program which allows designers Valentina is a cross-platform patternmaking program which allows designers

20
dist/debian/tape.1 vendored
View File

@ -1,6 +1,6 @@
.\" Manpage for tape. .\" Manpage for tape.
.\" Contact dismine@gmail.com to correct errors. .\" Contact dismine@gmail.com to correct errors.
.TH tape 1 "10 March, 2017" "tape man page" .TH tape 1 "3 October, 2020" "tape man page"
.SH NAME .SH NAME
Tape \- Valentina's measurements editor. Tape \- Valentina's measurements editor.
.SH SYNOPSIS .SH SYNOPSIS
@ -20,12 +20,14 @@ is a part of Valentina. And used for creating and editing measurement files.
Displays this help. Displays this help.
.IP "-v, --version" .IP "-v, --version"
Displays version information. Displays version information.
.IP "-e, --height <The base height>" .IP "-a, --dimensionA <The dimension A base>"
Open with the base height. Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm. Set base for dimension A in the table units.
.IP "-s, --size <The base size>" .IP "-b, --dimensionB <The dimension B base>"
Open with the base size. Valid values: 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56cm. Set base for dimension B in the table units.
.IP "-u, --unit <The pattern unit>" .IP "-c, --dimensionA <The dimension C base>"
Set pattern file unit: cm, mm, inch. Set base for dimension C in the table units.
.IP "-u, --units <The pattern units>"
Set pattern file units: cm, mm, inch.
.IP "--test" .IP "--test"
Use for unit testing. Run the program and open a file without showing the main window. Use for unit testing. Run the program and open a file without showing the main window.
.IP "--no-scaling" .IP "--no-scaling"
@ -35,9 +37,5 @@ Disable high dpi scaling. Call this option if has problem with scaling (by defau
\- the measurement file. \- the measurement 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"
.RB "Full " "User Manual" " is availiable in"
.UR https://bitbucket.org/dismine/valentina/wiki/manual/Content
.UE
.BR valentina (1) .BR valentina (1)

View File

@ -139,10 +139,12 @@ The path to output destination folder. By default the directory at which the app
.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>" .IP "--exportSuchDetails <The name regex>"
.RB "Export only details that match a piece name regex." .RB "Export only details that match a piece name regex."
.IP "-x, --gsize <The size value>" .IP "--dimensionA <The dimension A base>"
.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 base for dimension A in the multisize measurements units " "(export mode)" "."
.IP "-e, --gheight <The height value>" .IP "--dimensionB <The dimension B base>"
.RB "Set height value a pattern file, that was opened with multisize measurements (" "export mode" "). Valid values: 92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182, 188, 194, 200cm." .RB "Set base for dimension B in the multisize measurements units " "(export mode)" "."
.IP "--dimensionC <The dimension C base>"
.RB "Set base for dimension C in the multisize measurements units " "(export mode)" "."
.IP "--userMaterial <User material>" .IP "--userMaterial <User material>"
.RB "Use this option to override user material defined in pattern. The value must be in form <number>@<user matrial name>. The number should be in range from 1 to 20. For example, 1@Fabric2. The key can be used multiple times. Has no effect in GUI mode." .RB "Use this option to override user material defined in pattern. The value must be in form <number>@<user matrial name>. The number should be in range from 1 to 20. For example, 1@Fabric2. The key can be used multiple times. Has no effect in GUI mode."
.IP "-p, --pageformat <Template number>" .IP "-p, --pageformat <Template number>"

View File

@ -9,9 +9,9 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.6</string> <string>10.7</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>© 2013-2018, Valentina project</string> <string>© 2013-2020, Valentina project</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>@TYPEINFO@</string> <string>@TYPEINFO@</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -19,9 +19,9 @@
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>io.bitbucket.valentinaproject.@EXECUTABLE@</string> <string>io.bitbucket.valentinaproject.@EXECUTABLE@</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.7.0</string> <string>0.7.36</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.7.0.0</string> <string>0.7.36.0</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>

View File

@ -9,9 +9,9 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.6</string> <string>10.7</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>© 2013-2018, Valentina project</string> <string>© 2013-2020, Valentina project</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>@TYPEINFO@</string> <string>@TYPEINFO@</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -19,9 +19,9 @@
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>io.bitbucket.valentinaproject.@EXECUTABLE@</string> <string>io.bitbucket.valentinaproject.@EXECUTABLE@</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.7.0</string> <string>0.7.36</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.7.0.0</string> <string>0.7.36.0</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>

2
dist/rpm/_service vendored
View File

@ -1,7 +1,7 @@
<services> <services>
<service name="tar_scm"> <service name="tar_scm">
<param name="url">git://github.com/dismine/Valentina_git.git</param> <param name="url">git://github.com/dismine/Valentina_git.git</param>
<param name="versionprefix">0.6.999</param> <param name="versionprefix">0.7.36</param>
<param name="filename">valentina</param> <param name="filename">valentina</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="exclude">.git</param> <param name="exclude">.git</param>

View File

@ -79,9 +79,19 @@ BuildRequires: libqt5-qtxmlpatterns-devel
#BuildRequires: clang-libs #BuildRequires: clang-libs
#%endif #%endif
Requires: poppler-utils %if 0%{?mageia} > 0
Requires: poppler
%endif
Version: 0.7.0 %if 0%{?suse_version} > 0
Requires: poppler-tools
%endif
%if 0%{?fedora_version} > 0 || 0%{?rhel_version} > 0 || 0%{?centos_version} > 0
Requires: poppler-utils
%endif
Version: 0.7.36
Release: 0 Release: 0
URL: https://gitlab.com/smart-pattern/valentina URL: https://gitlab.com/smart-pattern/valentina
License: GPL-3.0+ License: GPL-3.0+
@ -233,6 +243,6 @@ rm -f dist/debian/%{name}.1.gz dist/debian/tape.1.gz dist/debian/%{name}.xml dis
%changelog %changelog
* Mon Jun 11 2018 Roman Telezhynskyi * Sat Oct 24 2020 Roman Telezhynskyi
- Auto build - Auto build

19
dist/valentina.dsc vendored
View File

@ -2,17 +2,24 @@ Format: 3.0 (native)
Source: valentina Source: valentina
Binary: valentina Binary: valentina
Architecture: i386 amd64 Architecture: i386 amd64
Version: 0.3.3 Version: 0.7.36
Maintainer: Roman Telezhynskyi <dismine@gmail.com> Maintainer: Roman Telezhynskyi <dismine@gmail.com>
Homepage: http://www.valentina-project.org/ Homepage: https://valentinaproject.bitbucket.io
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Vcs-Browser: https://bitbucket.org/dismine/valentina Vcs-Browser: https://bitbucket.org/dismine/valentina
Build-Depends: debhelper (>= 8.0.0), qtbase5-dev (>= 5.0.0), libqt5svg5-dev (>= 5.0.0), g++ (>= 4.6.0), qt5-default (>= 5.0.0), qttools5-dev-tools (>= 5.0.0), libqt5xmlpatterns5-dev (>= 5.0.0) Build-Depends: debhelper (>= 8.0.0),
qtbase5-dev (>= 5.4.0),
libqt5svg5-dev (>= 5.4.0),
g++ (>= 4.8.0),
qt5-default (>= 5.4.0),
qttools5-dev-tools (>= 5.4.0),
libqt5xmlpatterns5-dev (>= 5.4.0),
libqt5opengl5-dev (>= 5.4.0)
Package-List: Package-List:
valentina deb graphics optional valentina deb graphics optional
Checksums-Sha1: Checksums-Sha1:
581eb1bf36b4ab7126b5983d809130f15396859e 24838101 valentina_0.3.3.tar 581eb1bf36b4ab7126b5983d809130f15396859e 24838101 valentina_0.7.36.tar
Checksums-Sha256: Checksums-Sha256:
9b156c7120a69b90373efb8ca9998c3e0563a60ad337210166cfd41b00b0f13c 24838101 valentina_0.3.3.tar 9b156c7120a69b90373efb8ca9998c3e0563a60ad337210166cfd41b00b0f13c 24838101 valentina_0.7.36.tar
Files: Files:
95677e29d3a59cf5b064f7be236a4b78 24838101 valentina_0.3.3.tar 95677e29d3a59cf5b064f7be236a4b78 24838101 valentina_0.7.36.tar

View File

@ -6,11 +6,11 @@
#define MyAppPublisher "Roman Telezhynskyi" #define MyAppPublisher "Roman Telezhynskyi"
#define MyAppURL "http://valentinaproject.bitbucket.io/" #define MyAppURL "http://valentinaproject.bitbucket.io/"
#define MyAppExeName "valentina.exe" #define MyAppExeName "valentina.exe"
#define MyAppCopyright "(C) 2013-2018 Valentina project" #define MyAppCopyright "(C) 2013-2020 Valentina project"
#define MyDateTimeString GetDateTimeString('yyyymmddhhnnss', '', ''); #define MyDateTimeString GetDateTimeString('yyyymmddhhnnss', '', '');
; Appstatus: "" = release, "b" = beta, "a" = alpha ; Appstatus: "" = release, "b" = beta, "a" = alpha
; this only modifies the resulting exe name of the installer package ;-) ; this only modifies the resulting exe name of the installer package ;-)
#define MyAppStatus "a" #define MyAppStatus ""
[Setup] [Setup]
; NOTE: The value of AppId uniquely identifies this application. ; NOTE: The value of AppId uniquely identifies this application.
@ -226,8 +226,6 @@ Source: ".\valentina\*.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\valentina\*.rcc"; DestDir: "{app}"; Flags: ignoreversion Source: ".\valentina\*.rcc"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\valentina\*.ico"; DestDir: "{app}"; Flags: ignoreversion Source: ".\valentina\*.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\valentina\*.ini"; DestDir: "{app}"; Flags: ignoreversion Source: ".\valentina\*.ini"; DestDir: "{app}"; Flags: ignoreversion
; Only for test versions
;Source: ".\valentina\VERSION"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; DLL used to check if the target program is running at install time ; DLL used to check if the target program is running at install time

View File

@ -4,9 +4,9 @@
"repo": "Valentina", "repo": "Valentina",
"subject": "dismine", "subject": "dismine",
"desc": "Was pushed completely automatically", "desc": "Was pushed completely automatically",
"website_url": "http://valentina-project.org/", "website_url": "https://valentinaproject.bitbucket.io",
"issue_tracker_url": "https://bitbucket.org/dismine/valentina/issues?status=new&status=open", "issue_tracker_url": "https://gitlab.com/smart-pattern/valentina/-/issues",
"vcs_url": "https://bitbucket.org/dismine/valentina", "vcs_url": "https://gitlab.com/smart-pattern/valentina",
"github_use_tag_release_notes": false, "github_use_tag_release_notes": false,
"licenses": ["GPL-3.0"], "licenses": ["GPL-3.0"],
"labels": ["patternmaking"], "labels": ["patternmaking"],
@ -15,10 +15,10 @@
}, },
"version": { "version": {
"name": "0.6.2rc", "name": "0.7.36",
"desc": "Fake release", "desc": "Test branch release",
"released": "2019-06-24", "released": "2020-10-24",
"vcs_tag": "0.6.2", "vcs_tag": "v0.7.36",
"gpgSign": false "gpgSign": false
}, },

View File

@ -163,7 +163,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/>
<source>Vertical distance from the widest point of the calf to the floor.</source> <source>Vertical distance from the widest point of the calf to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от широкой части икры ноги до пола</translation> <translation>Вертикальное расстояние от широкой части икры ноги до пола.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/>
@ -362,7 +362,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/>
<source>Vertical distance from the Waist Side to the Hip level.</source> <source>Vertical distance from the Waist Side to the Hip level.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от линии талии до віступающей точки ягодицы</translation> <translation>Расстояние от линии талии до выступающей точки ягодицы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/>
@ -458,7 +458,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="398"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="398"/>
<source>Horizontal distance from Waist Side to Waist Side.</source> <source>Horizontal distance from Waist Side to Waist Side.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от одной стороны талии до другой</translation> <translation>Горизонтальное расстояние от одной стороны талии до другой.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="402"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="402"/>
@ -476,7 +476,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="405"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="405"/>
<source>Horizontal distance from Hip Side to Hip Side.</source> <source>Horizontal distance from Hip Side to Hip Side.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от бедра до бедра</translation> <translation>Горизонтальное расстояние от бедра до бедра.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="409"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="409"/>
@ -512,7 +512,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/>
<source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source> <source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак в стандарте 74.Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной паиболее выступающих назад точек обеих лопаток.</translation> <translation>Размерный признак в стандарте 74. Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной наиболее выступающих назад точек обеих лопаток.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/>
@ -565,7 +565,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/>
<source>Length from Wrist line to base of middle finger.</source> <source>Length from Wrist line to base of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до основания среднего пальца</translation> <translation>Размер от запястья до основания среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/>
@ -583,7 +583,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/>
<source>Length from Wrist line to end of middle finger.</source> <source>Length from Wrist line to end of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до конца среднего пальца</translation> <translation>Размер от запястья до конца среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/>
@ -619,7 +619,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/>
<source>Circumference where Palm is widest.</source> <source>Circumference where Palm is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват ладони в максимально широком месте</translation> <translation>Обхват ладони в максимально широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/>
@ -655,7 +655,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/>
<source>Measure at widest part of foot.</source> <source>Measure at widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ширина стопы в самом широком месте</translation> <translation>Ширина стопы в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/>
@ -691,7 +691,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/>
<source>Measure circumference around widest part of foot.</source> <source>Measure circumference around widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Измерьте окружность самой широкой части стопы</translation> <translation>Измерьте окружность самой широкой части стопы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/>
@ -781,7 +781,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="569"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="569"/>
<source>Horizontal distance from Head Side to Head Side, where Head is widest.</source> <source>Horizontal distance from Head Side to Head Side, where Head is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от одной стороны головы до другой в самом широком месте</translation> <translation>Горизонтальное расстояние от одной стороны головы до другой в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="573"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="573"/>
@ -835,7 +835,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/>
<source>Circumference of Neck midsection, about halfway between jaw and torso.</source> <source>Circumference of Neck midsection, about halfway between jaw and torso.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Окружность средней части шеи, примерно на посередине между челюстью и туловищем.</translation> <translation>Окружность средней части шеи, примерно посередине между челюстью и туловищем.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/>
@ -853,7 +853,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/>
<source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source> <source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/>
@ -984,7 +984,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/>
<source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source> <source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват бёдер сверху, через саму выступающую точку живота, параллельно полу.</translation> <translation>Обхват бёдер сверху, через самую выступающую точку живота, параллельно полу.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/>
@ -1020,7 +1020,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/>
<source>From Neck Side to Neck Side through Neck Front.</source> <source>From Neck Side to Neck Side through Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты. Мерка записывается в половинном размере.</translation> <translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты. Мерка записывается в половинном размере.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/>
@ -1165,7 +1165,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="727"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="727"/>
<source>From Hip Side to Hip Side across Front.</source> <source>From Hip Side to Hip Side across Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак 20. Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища и замыкаться на правой стороне туловища</translation> <translation>Размерный признак 20. Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища и замыкаться на правой стороне туловища.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="731"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="731"/>
@ -1615,8 +1615,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/>
<source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source> <source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища <translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища.</translation>
</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/>
@ -1724,7 +1723,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/>
<source>From Neck Front down between breasts to Waist Front.</source> <source>From Neck Front down between breasts to Waist Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от основания шеи спереди между грудью до лини талии спереди</translation> <translation>Расстояние от основания шеи спереди между грудью до линии талии спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/>
@ -3020,7 +3019,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/>
<source>From Neck Side diagonal to Armfold Front.</source> <source>From Neck Side diagonal to Armfold Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди</translation> <translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/>
@ -3548,7 +3547,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/>
@ -4400,7 +4399,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/>

View File

@ -43,7 +43,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/>
<source>height_scapula</source> <source>height_scapula</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Влоп</translation> <translation>height_scapula</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/>
@ -61,7 +61,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/>
<source>height_armpit</source> <source>height_armpit</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Взу</translation> <translation>height_armpit</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/>
@ -115,7 +115,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/>
<source>height_gluteal_fold</source> <source>height_gluteal_fold</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впс</translation> <translation>height_gluteal_fold</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/>
@ -163,7 +163,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/>
<source>Vertical distance from the widest point of the calf to the floor.</source> <source>Vertical distance from the widest point of the calf to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от широкой части икры ноги до пола</translation> <translation>Вертикальное расстояние от широкой части икры ноги до пола.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/>
@ -205,7 +205,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="284"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="284"/>
<source>height_highhip</source> <source>height_highhip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вопт</translation> <translation>height_highhip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="286"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="286"/>
@ -242,7 +242,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="298"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="298"/>
<source>height_bustpoint</source> <source>height_bustpoint</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вст</translation> <translation>height_bustpoint</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="300"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="300"/>
@ -260,7 +260,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="305"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="305"/>
<source>height_shoulder_tip</source> <source>height_shoulder_tip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впт</translation> <translation>height_shoulder_tip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="307"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="307"/>
@ -314,7 +314,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="326"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="326"/>
<source>height_neck_back_to_knee</source> <source>height_neck_back_to_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дшк</translation> <translation>height_neck_back_to_knee</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="328"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="328"/>
@ -362,7 +362,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/>
<source>Vertical distance from the Waist Side to the Hip level.</source> <source>Vertical distance from the Waist Side to the Hip level.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от линии талии до віступающей точки ягодицы</translation> <translation>Расстояние от линии талии до выступающей точки ягодицы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/>
@ -500,7 +500,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="428"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="428"/>
<source>indent_neck_back</source> <source>indent_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Пкор</translation> <translation>indent_neck_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="430"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="430"/>
@ -530,7 +530,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/>
<source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source> <source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади</translation> <translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/>
@ -565,7 +565,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/>
<source>Length from Wrist line to base of middle finger.</source> <source>Length from Wrist line to base of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до основания среднего пальца</translation> <translation>Размер от запястья до основания среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/>
@ -619,13 +619,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/>
<source>Circumference where Palm is widest.</source> <source>Circumference where Palm is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват ладони в максимально широком месте</translation> <translation>Обхват ладони в максимально широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/>
<source>hand_circ</source> <source>hand_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Окис</translation> <translation>hand_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="489"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="489"/>
@ -655,7 +655,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/>
<source>Measure at widest part of foot.</source> <source>Measure at widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ширина стопы в самом широком месте</translation> <translation>Ширина стопы в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/>
@ -697,7 +697,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/>
<source>foot_instep_circ</source> <source>foot_instep_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ос</translation> <translation>foot_instep_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="528"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="528"/>
@ -715,7 +715,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="545"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="545"/>
<source>head_circ</source> <source>head_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Огол</translation> <translation>head_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="547"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="547"/>
@ -733,7 +733,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="552"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="552"/>
<source>head_length</source> <source>head_length</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вгол</translation> <translation>head_length</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="554"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="554"/>
@ -781,7 +781,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="569"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="569"/>
<source>Horizontal distance from Head Side to Head Side, where Head is widest.</source> <source>Horizontal distance from Head Side to Head Side, where Head is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от одной стороны головы до другой в самом широком месте</translation> <translation>Горизонтальное расстояние от одной стороны головы до другой в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="573"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="573"/>
@ -805,7 +805,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="580"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="580"/>
<source>head_chin_to_neck_back</source> <source>head_chin_to_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дшош</translation> <translation>head_chin_to_neck_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="582"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="582"/>
@ -823,7 +823,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="600"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="600"/>
<source>neck_mid_circ</source> <source>neck_mid_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сш1</translation> <translation>neck_mid_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="602"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="602"/>
@ -835,7 +835,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/>
<source>Circumference of Neck midsection, about halfway between jaw and torso.</source> <source>Circumference of Neck midsection, about halfway between jaw and torso.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Окружность средней части шеи, примерно на посередине между челюстью и туловищем.</translation> <translation>Окружность средней части шеи, примерно посередине между челюстью и туловищем.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/>
@ -853,13 +853,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/>
<source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source> <source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/>
<source>highbust_circ</source> <source>highbust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгI</translation> <translation>highbust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="617"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="617"/>
@ -877,7 +877,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="622"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="622"/>
<source>bust_circ</source> <source>bust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгII</translation> <translation>bust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="624"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="624"/>
@ -895,7 +895,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="629"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="629"/>
<source>lowbust_circ</source> <source>lowbust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгIII</translation> <translation>lowbust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="631"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="631"/>
@ -1008,7 +1008,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="668"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="668"/>
<source>neck_arc_f</source> <source>neck_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сш</translation> <translation>neck_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="670"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="670"/>
@ -1020,13 +1020,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/>
<source>From Neck Side to Neck Side through Neck Front.</source> <source>From Neck Side to Neck Side through Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/>
<source>highbust_arc_f</source> <source>highbust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгI</translation> <translation>highbust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="677"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="677"/>
@ -1045,7 +1045,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="682"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="682"/>
<source>bust_arc_f</source> <source>bust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгII</translation> <translation>bust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="684"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="684"/>
@ -1081,7 +1081,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="696"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="696"/>
<source>lowbust_arc_f</source> <source>lowbust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгIII</translation> <translation>lowbust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="698"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="698"/>
@ -1117,7 +1117,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="710"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="710"/>
<source>waist_arc_f</source> <source>waist_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ст</translation> <translation>waist_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="712"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="712"/>
@ -1153,7 +1153,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="724"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="724"/>
<source>hip_arc_f</source> <source>hip_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СбI</translation> <translation>hip_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="726"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="726"/>
@ -1165,7 +1165,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="727"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="727"/>
<source>From Hip Side to Hip Side across Front.</source> <source>From Hip Side to Hip Side across Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак 20. Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища и замыкаться на правой стороне туловища</translation> <translation>Размерный признак 20. Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища и замыкаться на правой стороне туловища.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="731"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="731"/>
@ -1225,7 +1225,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="753"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="753"/>
<source>lowbust_arc_half_f</source> <source>lowbust_arc_half_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг3_пол</translation> <translation>lowbust_arc_half_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="755"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="755"/>
@ -1279,7 +1279,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="774"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="774"/>
<source>highhip_arc_half_f</source> <source>highhip_arc_half_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>бедро_щирина_половина</translation> <translation>бедро_ширина_половина</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="776"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="776"/>
@ -1603,7 +1603,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="909"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="909"/>
<source>hip_with_abdomen_arc_f</source> <source>hip_with_abdomen_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сб</translation> <translation>hip_with_abdomen_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="911"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="911"/>
@ -1615,8 +1615,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/>
<source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source> <source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища <translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища.</translation>
</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/>
@ -1724,13 +1723,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/>
<source>From Neck Front down between breasts to Waist Front.</source> <source>From Neck Front down between breasts to Waist Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от основания шеи спереди между грудью до лини талии спереди</translation> <translation>Расстояние от основания шеи спереди между грудью до лини талии спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/>
<source>armpit_to_waist_side</source> <source>armpit_to_waist_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дб</translation> <translation>armpit_to_waist_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="975"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="975"/>
@ -1766,7 +1765,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="986"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="986"/>
<source>neck_side_to_waist_f</source> <source>neck_side_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ДтсI</translation> <translation>neck_side_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="988"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="988"/>
@ -1802,7 +1801,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1000"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1000"/>
<source>neck_front_to_highbust_f</source> <source>neck_front_to_highbust_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрп</translation> <translation>neck_front_to_highbust_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1002"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1002"/>
@ -1820,7 +1819,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1006"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1006"/>
<source>highbust_to_waist_f</source> <source>highbust_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпер</translation> <translation>highbust_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1008"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1008"/>
@ -1874,7 +1873,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1030"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1030"/>
<source>lowbust_to_waist_f</source> <source>lowbust_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпг</translation> <translation>lowbust_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1032"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1032"/>
@ -2000,7 +1999,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1078"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1078"/>
<source>neck_side_to_waist_b</source> <source>neck_side_to_waist_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтс1</translation> <translation>neck_side_to_waist_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1080"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1080"/>
@ -2018,7 +2017,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1085"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1085"/>
<source>neck_back_to_waist_b</source> <source>neck_back_to_waist_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтс</translation> <translation>neck_back_to_waist_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1087"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1087"/>
@ -2054,7 +2053,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1099"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1099"/>
<source>neck_back_to_highbust_b</source> <source>neck_back_to_highbust_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрз</translation> <translation>neck_back_to_highbust_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1101"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1101"/>
@ -2216,7 +2215,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1161"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1161"/>
<source>waist_to_highhip_f</source> <source>waist_to_highhip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Гт1</translation> <translation>waist_to_highhip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1163"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1163"/>
@ -2234,7 +2233,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1167"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1167"/>
<source>waist_to_hip_f</source> <source>waist_to_hip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ГтII</translation> <translation>waist_to_hip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1169"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1169"/>
@ -2450,7 +2449,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1264"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1264"/>
<source>shoulder_length</source> <source>shoulder_length</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шп</translation> <translation>shoulder_length</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1266"/>
@ -2468,7 +2467,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1270"/>
<source>shoulder_tip_to_shoulder_tip_f</source> <source>shoulder_tip_to_shoulder_tip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>dпл</translation> <translation>shoulder_tip_to_shoulder_tip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1272"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1272"/>
@ -2486,7 +2485,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1277"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1277"/>
<source>across_chest_f</source> <source>across_chest_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг1</translation> <translation>across_chest_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1279"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1279"/>
@ -2504,7 +2503,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1284"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1284"/>
<source>armfold_to_armfold_f</source> <source>armfold_to_armfold_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг</translation> <translation>armfold_to_armfold_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1286"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1286"/>
@ -2558,7 +2557,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1307"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1307"/>
<source>shoulder_tip_to_shoulder_tip_b</source> <source>shoulder_tip_to_shoulder_tip_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпз</translation> <translation>shoulder_tip_to_shoulder_tip_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1309"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1309"/>
@ -2594,7 +2593,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1321"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1321"/>
<source>armfold_to_armfold_b</source> <source>armfold_to_armfold_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шс</translation> <translation>armfold_to_armfold_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1323"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1323"/>
@ -2684,7 +2683,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1355"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1355"/>
<source>neck_width</source> <source>neck_width</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation></translation> <translation>neck_width</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1357"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1357"/>
@ -2702,7 +2701,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1375"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1375"/>
<source>bustpoint_to_bustpoint</source> <source>bustpoint_to_bustpoint</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Цг</translation> <translation>bustpoint_to_bustpoint</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1377"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1377"/>
@ -2720,7 +2719,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1381"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1381"/>
<source>bustpoint_to_neck_side</source> <source>bustpoint_to_neck_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вг</translation> <translation>bustpoint_to_neck_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1383"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1383"/>
@ -2882,7 +2881,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1456"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1456"/>
<source>shoulder_tip_to_waist_front</source> <source>shoulder_tip_to_waist_front</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впкп</translation> <translation>shoulder_tip_to_waist_front</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1458"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1458"/>
@ -2936,7 +2935,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1477"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1477"/>
<source>shoulder_tip_to_waist_back</source> <source>shoulder_tip_to_waist_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впк</translation> <translation>shoulder_tip_to_waist_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1479"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1479"/>
@ -3008,7 +3007,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1506"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1506"/>
<source>neck_side_to_armfold_f</source> <source>neck_side_to_armfold_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрк</translation> <translation>neck_side_to_armfold_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1508"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1508"/>
@ -3020,7 +3019,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/>
<source>From Neck Side diagonal to Armfold Front.</source> <source>From Neck Side diagonal to Armfold Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди</translation> <translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/>
@ -3188,7 +3187,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1589"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1589"/>
<source>arm_shoulder_tip_to_wrist</source> <source>arm_shoulder_tip_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дрзап</translation> <translation>arm_shoulder_tip_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1591"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1591"/>
@ -3206,7 +3205,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1596"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1596"/>
<source>arm_shoulder_tip_to_elbow</source> <source>arm_shoulder_tip_to_elbow</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дрлок</translation> <translation>arm_shoulder_tip_to_elbow</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1598"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1598"/>
@ -3242,7 +3241,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1611"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1611"/>
<source>arm_armpit_to_wrist</source> <source>arm_armpit_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Втр</translation> <translation>arm_armpit_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1613"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1613"/>
@ -3296,7 +3295,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1633"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1633"/>
<source>arm_upper_circ</source> <source>arm_upper_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Оп</translation> <translation>arm_upper_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1635"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1635"/>
@ -3332,7 +3331,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1645"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1645"/>
<source>arm_elbow_circ</source> <source>arm_elbow_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Олк</translation> <translation>arm_elbow_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1647"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1647"/>
@ -3368,7 +3367,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1658"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1658"/>
<source>arm_wrist_circ</source> <source>arm_wrist_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Озап</translation> <translation>arm_wrist_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1660"/>
@ -3404,7 +3403,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1670"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1670"/>
<source>arm_neck_side_to_wrist</source> <source>arm_neck_side_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Длуч</translation> <translation>arm_neck_side_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1672"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1672"/>
@ -3422,7 +3421,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1678"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1678"/>
<source>arm_neck_side_to_finger_tip</source> <source>arm_neck_side_to_finger_tip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ДIIIп</translation> <translation>arm_neck_side_to_finger_tip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1680"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1680"/>
@ -3476,7 +3475,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1702"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1702"/>
<source>armscye_width</source> <source>armscye_width</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>dпзр</translation> <translation>armscye_width</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1704"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1704"/>
@ -3512,7 +3511,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1728"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1728"/>
<source>leg_crotch_to_floor</source> <source>leg_crotch_to_floor</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дн</translation> <translation>leg_crotch_to_floor</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1730"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1730"/>
@ -3548,13 +3547,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/>
<source>leg_waist_side_to_floor</source> <source>leg_waist_side_to_floor</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дсб</translation> <translation>leg_waist_side_to_floor</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1738"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1738"/>
@ -3572,7 +3571,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1743"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1743"/>
<source>leg_thigh_upper_circ</source> <source>leg_thigh_upper_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Обед</translation> <translation>leg_thigh_upper_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1745"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1745"/>
@ -3680,7 +3679,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1785"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1785"/>
<source>leg_ankle_circ</source> <source>leg_ankle_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ощ</translation> <translation>leg_ankle_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1787"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1787"/>
@ -3698,7 +3697,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1792"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1792"/>
<source>leg_knee_circ_bent</source> <source>leg_knee_circ_bent</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Окс</translation> <translation>leg_knee_circ_bent</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1794"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1794"/>
@ -3770,7 +3769,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1819"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1819"/>
<source>leg_waist_side_to_knee</source> <source>leg_waist_side_to_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтк</translation> <translation>leg_waist_side_to_knee</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1821"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1821"/>
@ -3860,7 +3859,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1892"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1892"/>
<source>rise_length_side</source> <source>rise_length_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпс</translation> <translation>rise_length_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1894"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1894"/>
@ -3937,7 +3936,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1918"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1918"/>
<source>waist_to_waist_halter</source> <source>waist_to_waist_halter</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Двчт</translation> <translation>waist_to_waist_halter</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1920"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1920"/>
@ -4351,7 +4350,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2101"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2101"/>
<source>highbust_b_over_shoulder_to_highbust_f</source> <source>highbust_b_over_shoulder_to_highbust_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дбр</translation> <translation>highbust_b_over_shoulder_to_highbust_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2103"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2103"/>
@ -4369,7 +4368,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2110"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2110"/>
<source>armscye_arc</source> <source>armscye_arc</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дп</translation> <translation>armscye_arc</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2112"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2112"/>
@ -4400,7 +4399,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/>

View File

@ -43,7 +43,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/>
<source>height_scapula</source> <source>height_scapula</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Влоп</translation> <translation>height_scapula</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/>
@ -61,7 +61,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/>
<source>height_armpit</source> <source>height_armpit</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Взу</translation> <translation>height_armpit</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/>
@ -115,7 +115,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/>
<source>height_gluteal_fold</source> <source>height_gluteal_fold</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впс</translation> <translation>height_gluteal_fold</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/>
@ -205,7 +205,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="284"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="284"/>
<source>height_highhip</source> <source>height_highhip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вопт</translation> <translation>height_highhip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="286"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="286"/>
@ -242,7 +242,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="298"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="298"/>
<source>height_bustpoint</source> <source>height_bustpoint</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вст</translation> <translation>height_bustpoint</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="300"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="300"/>
@ -260,7 +260,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="305"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="305"/>
<source>height_shoulder_tip</source> <source>height_shoulder_tip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впт</translation> <translation>height_shoulder_tip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="307"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="307"/>
@ -314,7 +314,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="326"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="326"/>
<source>height_neck_back_to_knee</source> <source>height_neck_back_to_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дшк</translation> <translation>height_neck_back_to_knee</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="328"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="328"/>
@ -362,7 +362,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/>
<source>Vertical distance from the Waist Side to the Hip level.</source> <source>Vertical distance from the Waist Side to the Hip level.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от линии талии до віступающей точки ягодицы</translation> <translation>Расстояние от линии талии до выступающей точки ягодицы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/>
@ -476,7 +476,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="405"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="405"/>
<source>Horizontal distance from Hip Side to Hip Side.</source> <source>Horizontal distance from Hip Side to Hip Side.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от бедра до бедра</translation> <translation>Горизонтальное расстояние от бедра до бедра.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="409"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="409"/>
@ -500,7 +500,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="428"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="428"/>
<source>indent_neck_back</source> <source>indent_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Пкор</translation> <translation>indent_neck_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="430"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="430"/>
@ -512,7 +512,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/>
<source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source> <source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак в стандарте 74.Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной паиболее выступающих назад точек обеих лопаток.</translation> <translation>Размерный признак в стандарте 74.Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной наиболее выступающих назад точек обеих лопаток.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/>
@ -530,7 +530,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/>
<source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source> <source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади</translation> <translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/>
@ -565,7 +565,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/>
<source>Length from Wrist line to base of middle finger.</source> <source>Length from Wrist line to base of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до основания среднего пальца</translation> <translation>Размер от запястья до основания среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/>
@ -583,7 +583,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/>
<source>Length from Wrist line to end of middle finger.</source> <source>Length from Wrist line to end of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до конца среднего пальца</translation> <translation>Размер от запястья до конца среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/>
@ -619,13 +619,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/>
<source>Circumference where Palm is widest.</source> <source>Circumference where Palm is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват ладони в максимально широком месте</translation> <translation>Обхват ладони в максимально широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/>
<source>hand_circ</source> <source>hand_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Окис</translation> <translation>hand_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="489"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="489"/>
@ -637,7 +637,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="490"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="490"/>
<source>Tuck thumb toward smallest finger, bring fingers close together. Measure circumference around widest part of hand.</source> <source>Tuck thumb toward smallest finger, bring fingers close together. Measure circumference around widest part of hand.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Прижмите большой палец к ладони и максимально наклоните в сторону мизинца. Измеряется охват ладони в самом широком месте.</translation> <translation>Прижмите большой палец к ладони и максимально наклоните в сторону мизинца. Охват ладони измеряют в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="506"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="506"/>
@ -655,7 +655,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/>
<source>Measure at widest part of foot.</source> <source>Measure at widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ширина стопы в самом широком месте</translation> <translation>Ширина стопы в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/>
@ -691,13 +691,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/>
<source>Measure circumference around widest part of foot.</source> <source>Measure circumference around widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Измерьте окружность самой широкой части стопы</translation> <translation>Измерьте окружность самой широкой части стопы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/>
<source>foot_instep_circ</source> <source>foot_instep_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ос</translation> <translation>foot_instep_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="528"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="528"/>
@ -715,7 +715,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="545"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="545"/>
<source>head_circ</source> <source>head_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Огол</translation> <translation>head_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="547"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="547"/>
@ -733,7 +733,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="552"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="552"/>
<source>head_length</source> <source>head_length</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вгол</translation> <translation>head_length</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="554"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="554"/>
@ -781,7 +781,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="569"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="569"/>
<source>Horizontal distance from Head Side to Head Side, where Head is widest.</source> <source>Horizontal distance from Head Side to Head Side, where Head is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от одной стороны головы до другой в самом широком месте</translation> <translation>Горизонтальное расстояние от одной стороны головы до другой в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="573"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="573"/>
@ -805,7 +805,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="580"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="580"/>
<source>head_chin_to_neck_back</source> <source>head_chin_to_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дшош</translation> <translation>head_chin_to_neck_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="582"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="582"/>
@ -823,7 +823,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="600"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="600"/>
<source>neck_mid_circ</source> <source>neck_mid_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сш1</translation> <translation>neck_mid_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="602"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="602"/>
@ -835,7 +835,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/>
<source>Circumference of Neck midsection, about halfway between jaw and torso.</source> <source>Circumference of Neck midsection, about halfway between jaw and torso.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Окружность средней части шеи, примерно на посередине между челюстью и туловищем.</translation> <translation>Окружность средней части шеи, примерно посередине между челюстью и туловищем.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/>
@ -853,13 +853,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/>
<source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source> <source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/>
<source>highbust_circ</source> <source>highbust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгI</translation> <translation>highbust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="617"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="617"/>
@ -877,7 +877,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="622"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="622"/>
<source>bust_circ</source> <source>bust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгII</translation> <translation>bust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="624"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="624"/>
@ -895,7 +895,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="629"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="629"/>
<source>lowbust_circ</source> <source>lowbust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгIII</translation> <translation>lowbust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="631"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="631"/>
@ -984,7 +984,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/>
<source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source> <source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват бёдер сверху, через саму выступающую точку живота, параллельно полу.</translation> <translation>Обхват бёдер сверху, через самую выступающую точку живота, параллельно полу.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/>
@ -1008,7 +1008,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="668"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="668"/>
<source>neck_arc_f</source> <source>neck_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сш</translation> <translation>neck_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="670"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="670"/>
@ -1020,13 +1020,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/>
<source>From Neck Side to Neck Side through Neck Front.</source> <source>From Neck Side to Neck Side through Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/>
<source>highbust_arc_f</source> <source>highbust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгI</translation> <translation>highbust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="677"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="677"/>
@ -1045,7 +1045,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="682"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="682"/>
<source>bust_arc_f</source> <source>bust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгII</translation> <translation>bust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="684"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="684"/>
@ -1081,7 +1081,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="696"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="696"/>
<source>lowbust_arc_f</source> <source>lowbust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгIII</translation> <translation>lowbust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="698"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="698"/>
@ -1117,7 +1117,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="710"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="710"/>
<source>waist_arc_f</source> <source>waist_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ст</translation> <translation>waist_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="712"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="712"/>
@ -1153,7 +1153,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="724"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="724"/>
<source>hip_arc_f</source> <source>hip_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СбI</translation> <translation>hip_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="726"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="726"/>
@ -1165,7 +1165,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="727"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="727"/>
<source>From Hip Side to Hip Side across Front.</source> <source>From Hip Side to Hip Side across Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак 20. Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища и замыкаться на правой стороне туловища</translation> <translation>Размерный признак 20. Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища и замыкаться на правой стороне туловища.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="731"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="731"/>
@ -1225,7 +1225,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="753"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="753"/>
<source>lowbust_arc_half_f</source> <source>lowbust_arc_half_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг3_пол</translation> <translation>lowbust_arc_half_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="755"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="755"/>
@ -1603,7 +1603,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="909"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="909"/>
<source>hip_with_abdomen_arc_f</source> <source>hip_with_abdomen_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сб</translation> <translation>hip_with_abdomen_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="911"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="911"/>
@ -1615,8 +1615,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/>
<source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source> <source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища <translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища.</translation>
</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/>
@ -1730,7 +1729,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/>
<source>armpit_to_waist_side</source> <source>armpit_to_waist_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дб</translation> <translation>armpit_to_waist_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="975"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="975"/>
@ -1766,7 +1765,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="986"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="986"/>
<source>neck_side_to_waist_f</source> <source>neck_side_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ДтсI</translation> <translation>neck_side_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="988"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="988"/>
@ -1802,7 +1801,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1000"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1000"/>
<source>neck_front_to_highbust_f</source> <source>neck_front_to_highbust_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрп</translation> <translation>neck_front_to_highbust_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1002"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1002"/>
@ -1820,7 +1819,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1006"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1006"/>
<source>highbust_to_waist_f</source> <source>highbust_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпер</translation> <translation>highbust_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1008"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1008"/>
@ -1874,7 +1873,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1030"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1030"/>
<source>lowbust_to_waist_f</source> <source>lowbust_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпг</translation> <translation>lowbust_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1032"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1032"/>
@ -2000,7 +1999,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1078"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1078"/>
<source>neck_side_to_waist_b</source> <source>neck_side_to_waist_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтс1</translation> <translation>neck_side_to_waist_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1080"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1080"/>
@ -2018,7 +2017,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1085"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1085"/>
<source>neck_back_to_waist_b</source> <source>neck_back_to_waist_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтс</translation> <translation>neck_back_to_waist_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1087"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1087"/>
@ -2054,7 +2053,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1099"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1099"/>
<source>neck_back_to_highbust_b</source> <source>neck_back_to_highbust_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрз</translation> <translation>neck_back_to_highbust_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1101"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1101"/>
@ -2216,7 +2215,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1161"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1161"/>
<source>waist_to_highhip_f</source> <source>waist_to_highhip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Гт1</translation> <translation>waist_to_highhip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1163"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1163"/>
@ -2234,7 +2233,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1167"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1167"/>
<source>waist_to_hip_f</source> <source>waist_to_hip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ГтII</translation> <translation>waist_to_hip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1169"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1169"/>
@ -2450,7 +2449,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1264"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1264"/>
<source>shoulder_length</source> <source>shoulder_length</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шп</translation> <translation>shoulder_length</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1266"/>
@ -2468,7 +2467,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1270"/>
<source>shoulder_tip_to_shoulder_tip_f</source> <source>shoulder_tip_to_shoulder_tip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>dпл</translation> <translation>shoulder_tip_to_shoulder_tip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1272"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1272"/>
@ -2486,7 +2485,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1277"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1277"/>
<source>across_chest_f</source> <source>across_chest_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг1</translation> <translation>across_chest_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1279"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1279"/>
@ -2504,7 +2503,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1284"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1284"/>
<source>armfold_to_armfold_f</source> <source>armfold_to_armfold_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг</translation> <translation>armfold_to_armfold_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1286"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1286"/>
@ -2558,7 +2557,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1307"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1307"/>
<source>shoulder_tip_to_shoulder_tip_b</source> <source>shoulder_tip_to_shoulder_tip_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпз</translation> <translation>shoulder_tip_to_shoulder_tip_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1309"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1309"/>
@ -2594,7 +2593,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1321"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1321"/>
<source>armfold_to_armfold_b</source> <source>armfold_to_armfold_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шс</translation> <translation>armfold_to_armfold_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1323"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1323"/>
@ -2684,7 +2683,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1355"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1355"/>
<source>neck_width</source> <source>neck_width</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation></translation> <translation>neck_width</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1357"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1357"/>
@ -2702,7 +2701,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1375"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1375"/>
<source>bustpoint_to_bustpoint</source> <source>bustpoint_to_bustpoint</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Цг</translation> <translation>bustpoint_to_bustpoint</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1377"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1377"/>
@ -2720,7 +2719,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1381"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1381"/>
<source>bustpoint_to_neck_side</source> <source>bustpoint_to_neck_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вг</translation> <translation>bustpoint_to_neck_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1383"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1383"/>
@ -2882,7 +2881,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1456"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1456"/>
<source>shoulder_tip_to_waist_front</source> <source>shoulder_tip_to_waist_front</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впкп</translation> <translation>shoulder_tip_to_waist_front</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1458"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1458"/>
@ -2936,7 +2935,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1477"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1477"/>
<source>shoulder_tip_to_waist_back</source> <source>shoulder_tip_to_waist_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впк</translation> <translation>shoulder_tip_to_waist_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1479"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1479"/>
@ -3008,7 +3007,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1506"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1506"/>
<source>neck_side_to_armfold_f</source> <source>neck_side_to_armfold_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрк</translation> <translation>neck_side_to_armfold_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1508"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1508"/>
@ -3020,7 +3019,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/>
<source>From Neck Side diagonal to Armfold Front.</source> <source>From Neck Side diagonal to Armfold Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди</translation> <translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/>
@ -3188,7 +3187,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1589"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1589"/>
<source>arm_shoulder_tip_to_wrist</source> <source>arm_shoulder_tip_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дрзап</translation> <translation>arm_shoulder_tip_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1591"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1591"/>
@ -3206,7 +3205,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1596"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1596"/>
<source>arm_shoulder_tip_to_elbow</source> <source>arm_shoulder_tip_to_elbow</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дрлок</translation> <translation>arm_shoulder_tip_to_elbow</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1598"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1598"/>
@ -3242,7 +3241,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1611"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1611"/>
<source>arm_armpit_to_wrist</source> <source>arm_armpit_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Втр</translation> <translation>arm_armpit_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1613"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1613"/>
@ -3296,7 +3295,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1633"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1633"/>
<source>arm_upper_circ</source> <source>arm_upper_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Оп</translation> <translation>arm_upper_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1635"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1635"/>
@ -3332,7 +3331,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1645"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1645"/>
<source>arm_elbow_circ</source> <source>arm_elbow_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Олк</translation> <translation>arm_elbow_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1647"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1647"/>
@ -3368,7 +3367,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1658"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1658"/>
<source>arm_wrist_circ</source> <source>arm_wrist_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Озап</translation> <translation>arm_wrist_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1660"/>
@ -3404,7 +3403,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1670"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1670"/>
<source>arm_neck_side_to_wrist</source> <source>arm_neck_side_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Длуч</translation> <translation>arm_neck_side_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1672"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1672"/>
@ -3422,7 +3421,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1678"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1678"/>
<source>arm_neck_side_to_finger_tip</source> <source>arm_neck_side_to_finger_tip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ДIIIп</translation> <translation>arm_neck_side_to_finger_tip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1680"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1680"/>
@ -3476,7 +3475,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1702"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1702"/>
<source>armscye_width</source> <source>armscye_width</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>dпзр</translation> <translation>armscye_width</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1704"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1704"/>
@ -3512,7 +3511,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1728"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1728"/>
<source>leg_crotch_to_floor</source> <source>leg_crotch_to_floor</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дн</translation> <translation>leg_crotch_to_floor</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1730"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1730"/>
@ -3548,13 +3547,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/>
<source>leg_waist_side_to_floor</source> <source>leg_waist_side_to_floor</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дсб</translation> <translation>leg_waist_side_to_floor</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1738"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1738"/>
@ -3572,7 +3571,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1743"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1743"/>
<source>leg_thigh_upper_circ</source> <source>leg_thigh_upper_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Обед</translation> <translation>leg_thigh_upper_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1745"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1745"/>
@ -3680,7 +3679,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1785"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1785"/>
<source>leg_ankle_circ</source> <source>leg_ankle_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ощ</translation> <translation>leg_ankle_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1787"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1787"/>
@ -3698,7 +3697,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1792"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1792"/>
<source>leg_knee_circ_bent</source> <source>leg_knee_circ_bent</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Окс</translation> <translation>leg_knee_circ_bent</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1794"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1794"/>
@ -3770,7 +3769,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1819"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1819"/>
<source>leg_waist_side_to_knee</source> <source>leg_waist_side_to_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтк</translation> <translation>leg_waist_side_to_knee</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1821"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1821"/>
@ -3860,7 +3859,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1892"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1892"/>
<source>rise_length_side</source> <source>rise_length_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпс</translation> <translation>rise_length_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1894"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1894"/>
@ -3937,7 +3936,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1918"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1918"/>
<source>waist_to_waist_halter</source> <source>waist_to_waist_halter</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Двчт</translation> <translation>waist_to_waist_halter</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1920"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1920"/>
@ -4351,7 +4350,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2101"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2101"/>
<source>highbust_b_over_shoulder_to_highbust_f</source> <source>highbust_b_over_shoulder_to_highbust_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дбр</translation> <translation>highbust_b_over_shoulder_to_highbust_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2103"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2103"/>
@ -4369,7 +4368,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2110"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2110"/>
<source>armscye_arc</source> <source>armscye_arc</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дп</translation> <translation>armscye_arc</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2112"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2112"/>
@ -4400,7 +4399,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/>

View File

@ -43,7 +43,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/>
<source>height_scapula</source> <source>height_scapula</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Влоп</translation> <translation>height_scapula</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/>
@ -61,7 +61,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/>
<source>height_armpit</source> <source>height_armpit</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Взу</translation> <translation>height_armpit</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/>
@ -73,7 +73,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="231"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="231"/>
<source>Vertical distance from the Armpit to the floor.</source> <source>Vertical distance from the Armpit to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 11. Расстояние по вертикали от пола до заднего угла подмышечной впадины. Уровень заднего угла подмышечной впадины переносят отметкой на позвоночник с помощью антропометра.</translation> <translation>Номер размерного признака в стандарте 11. Расстояние по вертикали от пола до заднего угла подмышечной впадины. Уровень заднего угла подмышечной впадины переносят отметкой на позвоночнике с помощью антропометра.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="235"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="235"/>
@ -115,7 +115,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/>
<source>height_gluteal_fold</source> <source>height_gluteal_fold</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впс</translation> <translation>height_gluteal_fold</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/>
@ -163,7 +163,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/>
<source>Vertical distance from the widest point of the calf to the floor.</source> <source>Vertical distance from the widest point of the calf to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от широкой части икры ноги до пола</translation> <translation>Вертикальное расстояние от широкой части икры ноги до пола.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/>
@ -205,7 +205,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="284"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="284"/>
<source>height_highhip</source> <source>height_highhip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вопт</translation> <translation>height_highhip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="286"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="286"/>
@ -242,7 +242,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="298"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="298"/>
<source>height_bustpoint</source> <source>height_bustpoint</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вст</translation> <translation>height_bustpoint</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="300"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="300"/>
@ -260,7 +260,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="305"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="305"/>
<source>height_shoulder_tip</source> <source>height_shoulder_tip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впт</translation> <translation>height_shoulder_tip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="307"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="307"/>
@ -314,7 +314,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="326"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="326"/>
<source>height_neck_back_to_knee</source> <source>height_neck_back_to_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дшк</translation> <translation>height_neck_back_to_knee</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="328"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="328"/>
@ -362,7 +362,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/>
<source>Vertical distance from the Waist Side to the Hip level.</source> <source>Vertical distance from the Waist Side to the Hip level.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от линии талии до віступающей точки ягодицы</translation> <translation>Расстояние от линии талии до выступающей точки ягодицы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/>
@ -458,7 +458,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="398"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="398"/>
<source>Horizontal distance from Waist Side to Waist Side.</source> <source>Horizontal distance from Waist Side to Waist Side.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от одной стороны талии до другой</translation> <translation>Горизонтальное расстояние от одной стороны талии до другой.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="402"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="402"/>
@ -476,7 +476,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="405"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="405"/>
<source>Horizontal distance from Hip Side to Hip Side.</source> <source>Horizontal distance from Hip Side to Hip Side.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние от бедра до бедра</translation> <translation>Горизонтальное расстояние от бедра до бедра.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="409"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="409"/>
@ -500,7 +500,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="428"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="428"/>
<source>indent_neck_back</source> <source>indent_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Пкор</translation> <translation>indent_neck_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="430"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="430"/>
@ -512,7 +512,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/>
<source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source> <source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак в стандарте 74.Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной паиболее выступающих назад точек обеих лопаток.</translation> <translation>Размерный признак в стандарте 74. Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной наиболее выступающих назад точек обеих лопаток.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/>
@ -530,7 +530,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/>
<source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source> <source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади</translation> <translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/>
@ -565,7 +565,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/>
<source>Length from Wrist line to base of middle finger.</source> <source>Length from Wrist line to base of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до основания среднего пальца</translation> <translation>Размер от запястья до основания среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/>
@ -583,7 +583,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/>
<source>Length from Wrist line to end of middle finger.</source> <source>Length from Wrist line to end of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до конца среднего пальца</translation> <translation>Размер от запястья до конца среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/>
@ -625,7 +625,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/>
<source>hand_circ</source> <source>hand_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Окис</translation> <translation>hand_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="489"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="489"/>
@ -655,7 +655,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="509"/>
<source>Measure at widest part of foot.</source> <source>Measure at widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ширина стопы в самом широком месте</translation> <translation>Ширина стопы в самом широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="512"/>
@ -691,13 +691,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/>
<source>Measure circumference around widest part of foot.</source> <source>Measure circumference around widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Измерьте окружность самой широкой части стопы</translation> <translation>Измерьте окружность самой широкой части стопы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/>
<source>foot_instep_circ</source> <source>foot_instep_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ос</translation> <translation>foot_instep_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="528"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="528"/>
@ -715,7 +715,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="545"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="545"/>
<source>head_circ</source> <source>head_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Огол</translation> <translation>head_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="547"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="547"/>
@ -733,7 +733,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="552"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="552"/>
<source>head_length</source> <source>head_length</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вгол</translation> <translation>head_length</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="554"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="554"/>
@ -805,7 +805,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="580"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="580"/>
<source>head_chin_to_neck_back</source> <source>head_chin_to_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дшош</translation> <translation>head_chin_to_neck_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="582"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="582"/>
@ -823,7 +823,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="600"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="600"/>
<source>neck_mid_circ</source> <source>neck_mid_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сш1</translation> <translation>neck_mid_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="602"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="602"/>
@ -835,7 +835,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="603"/>
<source>Circumference of Neck midsection, about halfway between jaw and torso.</source> <source>Circumference of Neck midsection, about halfway between jaw and torso.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Окружность средней части шеи, примерно на посередине между челюстью и туловищем.</translation> <translation>Окружность средней части шеи, примерно посередине между челюстью и туловищем.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="607"/>
@ -853,13 +853,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/>
<source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source> <source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/>
<source>highbust_circ</source> <source>highbust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгI</translation> <translation>highbust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="617"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="617"/>
@ -877,7 +877,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="622"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="622"/>
<source>bust_circ</source> <source>bust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгII</translation> <translation>bust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="624"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="624"/>
@ -895,7 +895,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="629"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="629"/>
<source>lowbust_circ</source> <source>lowbust_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ОгIII</translation> <translation>lowbust_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="631"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="631"/>
@ -984,7 +984,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/>
<source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source> <source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват бёдер сверху, через саму выступающую точку живота, параллельно полу.</translation> <translation>Обхват бёдер сверху, через самую выступающую точку живота, параллельно полу.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/>
@ -1008,7 +1008,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="668"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="668"/>
<source>neck_arc_f</source> <source>neck_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сш</translation> <translation>neck_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="670"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="670"/>
@ -1020,13 +1020,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/>
<source>From Neck Side to Neck Side through Neck Front.</source> <source>From Neck Side to Neck Side through Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/>
<source>highbust_arc_f</source> <source>highbust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгI</translation> <translation>highbust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="677"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="677"/>
@ -1045,7 +1045,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="682"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="682"/>
<source>bust_arc_f</source> <source>bust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгII</translation> <translation>bust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="684"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="684"/>
@ -1081,7 +1081,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="696"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="696"/>
<source>lowbust_arc_f</source> <source>lowbust_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СгIII</translation> <translation>lowbust_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="698"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="698"/>
@ -1117,7 +1117,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="710"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="710"/>
<source>waist_arc_f</source> <source>waist_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ст</translation> <translation>waist_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="712"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="712"/>
@ -1153,7 +1153,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="724"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="724"/>
<source>hip_arc_f</source> <source>hip_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>СбI</translation> <translation>hip_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="726"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="726"/>
@ -1225,7 +1225,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="753"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="753"/>
<source>lowbust_arc_half_f</source> <source>lowbust_arc_half_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг3_пол</translation> <translation>lowbust_arc_half_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="755"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="755"/>
@ -1279,7 +1279,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="774"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="774"/>
<source>highhip_arc_half_f</source> <source>highhip_arc_half_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>бедро_щирина_половина</translation> <translation>бедро_ширина_половина</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="776"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="776"/>
@ -1603,7 +1603,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="909"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="909"/>
<source>hip_with_abdomen_arc_f</source> <source>hip_with_abdomen_arc_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Сб</translation> <translation>hip_with_abdomen_arc_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="911"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="911"/>
@ -1724,13 +1724,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/>
<source>From Neck Front down between breasts to Waist Front.</source> <source>From Neck Front down between breasts to Waist Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от основания шеи спереди между грудью до лини талии спереди</translation> <translation>Расстояние от основания шеи спереди между грудью до линии талии спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/>
<source>armpit_to_waist_side</source> <source>armpit_to_waist_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дб</translation> <translation>armpit_to_waist_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="975"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="975"/>
@ -1766,7 +1766,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="986"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="986"/>
<source>neck_side_to_waist_f</source> <source>neck_side_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ДтсI</translation> <translation>neck_side_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="988"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="988"/>
@ -1802,7 +1802,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1000"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1000"/>
<source>neck_front_to_highbust_f</source> <source>neck_front_to_highbust_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрп</translation> <translation>neck_front_to_highbust_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1002"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1002"/>
@ -1820,7 +1820,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1006"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1006"/>
<source>highbust_to_waist_f</source> <source>highbust_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпер</translation> <translation>highbust_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1008"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1008"/>
@ -1874,7 +1874,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1030"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1030"/>
<source>lowbust_to_waist_f</source> <source>lowbust_to_waist_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпг</translation> <translation>lowbust_to_waist_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1032"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1032"/>
@ -2000,7 +2000,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1078"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1078"/>
<source>neck_side_to_waist_b</source> <source>neck_side_to_waist_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтс1</translation> <translation>neck_side_to_waist_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1080"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1080"/>
@ -2018,7 +2018,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1085"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1085"/>
<source>neck_back_to_waist_b</source> <source>neck_back_to_waist_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтс</translation> <translation>neck_back_to_waist_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1087"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1087"/>
@ -2054,7 +2054,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1099"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1099"/>
<source>neck_back_to_highbust_b</source> <source>neck_back_to_highbust_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрз</translation> <translation>neck_back_to_highbust_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1101"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1101"/>
@ -2216,7 +2216,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1161"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1161"/>
<source>waist_to_highhip_f</source> <source>waist_to_highhip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Гт1</translation> <translation>waist_to_highhip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1163"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1163"/>
@ -2234,7 +2234,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1167"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1167"/>
<source>waist_to_hip_f</source> <source>waist_to_hip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ГтII</translation> <translation>waist_to_hip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1169"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1169"/>
@ -2450,7 +2450,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1264"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1264"/>
<source>shoulder_length</source> <source>shoulder_length</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шп</translation> <translation>shoulder_length</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1266"/>
@ -2468,7 +2468,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1270"/>
<source>shoulder_tip_to_shoulder_tip_f</source> <source>shoulder_tip_to_shoulder_tip_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>dпл</translation> <translation>shoulder_tip_to_shoulder_tip_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1272"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1272"/>
@ -2486,7 +2486,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1277"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1277"/>
<source>across_chest_f</source> <source>across_chest_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг1</translation> <translation>across_chest_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1279"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1279"/>
@ -2504,7 +2504,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1284"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1284"/>
<source>armfold_to_armfold_f</source> <source>armfold_to_armfold_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шг</translation> <translation>armfold_to_armfold_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1286"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1286"/>
@ -2558,7 +2558,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1307"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1307"/>
<source>shoulder_tip_to_shoulder_tip_b</source> <source>shoulder_tip_to_shoulder_tip_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпз</translation> <translation>shoulder_tip_to_shoulder_tip_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1309"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1309"/>
@ -2594,7 +2594,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1321"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1321"/>
<source>armfold_to_armfold_b</source> <source>armfold_to_armfold_b</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Шс</translation> <translation>armfold_to_armfold_b</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1323"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1323"/>
@ -2606,7 +2606,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1324"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1324"/>
<source>From Armfold to Armfold across the back.</source> <source>From Armfold to Armfold across the back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 47. Измеряют по поверхности тела ресстояние между задними углами подмышечных впадин. Нижний край ленты должен быть расположен на уровне отметки заднего угла подмышечной впадины на позвоночнике.</translation> <translation>Номер размерного признака в стандарте 47. Измеряют по поверхности тела расстояние между задними углами подмышечных впадин. Нижний край ленты должен быть расположен на уровне отметки заднего угла подмышечной впадины на позвоночнике.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1328"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1328"/>
@ -2684,7 +2684,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1355"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1355"/>
<source>neck_width</source> <source>neck_width</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation></translation> <translation>neck_width</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1357"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1357"/>
@ -2702,7 +2702,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1375"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1375"/>
<source>bustpoint_to_bustpoint</source> <source>bustpoint_to_bustpoint</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Цг</translation> <translation>bustpoint_to_bustpoint</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1377"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1377"/>
@ -2720,7 +2720,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1381"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1381"/>
<source>bustpoint_to_neck_side</source> <source>bustpoint_to_neck_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Вг</translation> <translation>bustpoint_to_neck_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1383"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1383"/>
@ -2882,7 +2882,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1456"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1456"/>
<source>shoulder_tip_to_waist_front</source> <source>shoulder_tip_to_waist_front</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впкп</translation> <translation>shoulder_tip_to_waist_front</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1458"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1458"/>
@ -2936,7 +2936,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1477"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1477"/>
<source>shoulder_tip_to_waist_back</source> <source>shoulder_tip_to_waist_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впк</translation> <translation>shoulder_tip_to_waist_back</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1479"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1479"/>
@ -3008,7 +3008,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1506"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1506"/>
<source>neck_side_to_armfold_f</source> <source>neck_side_to_armfold_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Впрк</translation> <translation>neck_side_to_armfold_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1508"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1508"/>
@ -3020,7 +3020,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/>
<source>From Neck Side diagonal to Armfold Front.</source> <source>From Neck Side diagonal to Armfold Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди</translation> <translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/>
@ -3188,7 +3188,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1589"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1589"/>
<source>arm_shoulder_tip_to_wrist</source> <source>arm_shoulder_tip_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дрзап</translation> <translation>arm_shoulder_tip_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1591"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1591"/>
@ -3206,7 +3206,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1596"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1596"/>
<source>arm_shoulder_tip_to_elbow</source> <source>arm_shoulder_tip_to_elbow</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дрлок</translation> <translation>arm_shoulder_tip_to_elbow</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1598"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1598"/>
@ -3242,7 +3242,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1611"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1611"/>
<source>arm_armpit_to_wrist</source> <source>arm_armpit_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Втр</translation> <translation>arm_armpit_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1613"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1613"/>
@ -3296,7 +3296,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1633"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1633"/>
<source>arm_upper_circ</source> <source>arm_upper_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Оп</translation> <translation>arm_upper_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1635"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1635"/>
@ -3332,7 +3332,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1645"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1645"/>
<source>arm_elbow_circ</source> <source>arm_elbow_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Олк</translation> <translation>arm_elbow_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1647"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1647"/>
@ -3368,7 +3368,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1658"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1658"/>
<source>arm_wrist_circ</source> <source>arm_wrist_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Озап</translation> <translation>arm_wrist_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1660"/>
@ -3404,7 +3404,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1670"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1670"/>
<source>arm_neck_side_to_wrist</source> <source>arm_neck_side_to_wrist</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Длуч</translation> <translation>arm_neck_side_to_wrist</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1672"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1672"/>
@ -3422,7 +3422,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1678"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1678"/>
<source>arm_neck_side_to_finger_tip</source> <source>arm_neck_side_to_finger_tip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ДIIIп</translation> <translation>arm_neck_side_to_finger_tip</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1680"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1680"/>
@ -3476,7 +3476,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1702"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1702"/>
<source>armscye_width</source> <source>armscye_width</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>dпзр</translation> <translation>armscye_width</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1704"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1704"/>
@ -3512,7 +3512,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1728"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1728"/>
<source>leg_crotch_to_floor</source> <source>leg_crotch_to_floor</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дн</translation> <translation>leg_crotch_to_floor</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1730"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1730"/>
@ -3548,13 +3548,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/>
<source>leg_waist_side_to_floor</source> <source>leg_waist_side_to_floor</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дсб</translation> <translation>leg_waist_side_to_floor</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1738"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1738"/>
@ -3572,7 +3572,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1743"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1743"/>
<source>leg_thigh_upper_circ</source> <source>leg_thigh_upper_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Обед</translation> <translation>leg_thigh_upper_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1745"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1745"/>
@ -3680,7 +3680,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1785"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1785"/>
<source>leg_ankle_circ</source> <source>leg_ankle_circ</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Ощ</translation> <translation>leg_ankle_circ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1787"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1787"/>
@ -3698,7 +3698,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1792"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1792"/>
<source>leg_knee_circ_bent</source> <source>leg_knee_circ_bent</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Окс</translation> <translation>leg_knee_circ_bent</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1794"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1794"/>
@ -3770,7 +3770,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1819"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1819"/>
<source>leg_waist_side_to_knee</source> <source>leg_waist_side_to_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дтк</translation> <translation>leg_waist_side_to_knee</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1821"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1821"/>
@ -3860,7 +3860,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1892"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1892"/>
<source>rise_length_side</source> <source>rise_length_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дпс</translation> <translation>rise_length_side</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1894"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1894"/>
@ -3937,7 +3937,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1918"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1918"/>
<source>waist_to_waist_halter</source> <source>waist_to_waist_halter</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Двчт</translation> <translation>waist_to_waist_halter</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1920"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1920"/>
@ -4351,7 +4351,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2101"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2101"/>
<source>highbust_b_over_shoulder_to_highbust_f</source> <source>highbust_b_over_shoulder_to_highbust_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дбр</translation> <translation>highbust_b_over_shoulder_to_highbust_f</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2103"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2103"/>
@ -4369,7 +4369,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2110"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2110"/>
<source>armscye_arc</source> <source>armscye_arc</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>Дп</translation> <translation>armscye_arc</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2112"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2112"/>
@ -4400,7 +4400,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/>

View File

@ -7,49 +7,49 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="207"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="207"/>
<source>height</source> <source>height</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>рост</translation> <translation>Р</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="209"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="209"/>
<source>Height: Total</source> <source>Height: Total</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: общий</translation> <translation>Рост</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="210"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="210"/>
<source>Vertical distance from crown of head to floor.</source> <source>Vertical distance from crown of head to floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от темени до пола.</translation> <translation>Высота верхушечной точки - длина тела. Размерный признак 1. Расстояние по вертикали от пола до верхушечной точки. Измеряют спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="214"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="214"/>
<source>height_neck_back</source> <source>height_neck_back</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ростея_сзади</translation> <translation>Вштс</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="216"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="216"/>
<source>Height: Neck Back</source> <source>Height: Neck Back</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: шея сзади</translation> <translation>Высота точки основания шеи сзади</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="217"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="217"/>
<source>Vertical distance from the Neck Back (cervicale vertebra) to the floor.</source> <source>Vertical distance from the Neck Back (cervicale vertebra) to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от шеи сзади (шейный позвонок) до пола.</translation> <translation>Размерный признак 10. Расстояние по вертикали от пола до точки основания шеи сзади</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="221"/>
<source>height_scapula</source> <source>height_scapula</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ростопаточной_точки</translation> <translation>Влоп</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="223"/>
<source>Height: Scapula</source> <source>Height: Scapula</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: лопаточной точки</translation> <translation>Высота лопаточной точки</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="224"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="224"/>
@ -61,13 +61,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="228"/>
<source>height_armpit</source> <source>height_armpit</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>рост_подмышки_сзади</translation> <translation>Взу</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="230"/>
<source>Height: Armpit</source> <source>Height: Armpit</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: заднего угла подмышечной впадины</translation> <translation>Высота заднего угла подмышечной впадины</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="231"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="231"/>
@ -79,13 +79,13 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="235"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="235"/>
<source>height_waist_side</source> <source>height_waist_side</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>росталии_сбоку</translation> <translation>Влт</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="237"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="237"/>
<source>Height: Waist Side</source> <source>Height: Waist Side</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: до линии талии</translation> <translation>Высота линии талии</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="238"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="238"/>
@ -97,85 +97,85 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="242"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="242"/>
<source>height_hip</source> <source>height_hip</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>рост_бедра</translation> <translation>Вбед</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="244"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="244"/>
<source>Height: Hip</source> <source>Height: Hip</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: до бедра</translation> <translation>Высота бедра</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="245"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="245"/>
<source>Vertical distance from the Hip level to the floor.</source> <source>Vertical distance from the Hip level to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от бедра до пола.</translation> <translation>Размерный признак 216. Вертикальное расстояние от бедра до пола.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="249"/>
<source>height_gluteal_fold</source> <source>height_gluteal_fold</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ростогодиц</translation> <translation>Впс</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="251"/>
<source>Height: Gluteal Fold</source> <source>Height: Gluteal Fold</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: до складки между ягодицами и бедром</translation> <translation>Высота подъягодичной складки</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="252"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="252"/>
<source>Vertical distance from the Gluteal fold, where the Gluteal muscle meets the top of the back thigh, to the floor.</source> <source>Vertical distance from the Gluteal fold, where the Gluteal muscle meets the top of the back thigh, to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 12. Вертикальное расстояние от складки.между ягодицами и бедром до пола</translation> <translation>Номер размерного признака в стандарте 12. Расстояние но вертикали от пола до середины подъягодичной складки </translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="256"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="256"/>
<source>height_knee</source> <source>height_knee</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ростоолена</translation> <translation>Вк</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="258"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="258"/>
<source>Height: Knee</source> <source>Height: Knee</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: коленной точки</translation> <translation>Высота коленной точки</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="259"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="259"/>
<source>Vertical distance from the fold at the back of the Knee to the floor.</source> <source>Vertical distance from the fold at the back of the Knee to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от сгиба колена сзади до пола.</translation> <translation>Размерный признак 9. Вертикальное расстояние от сгиба колена сзади до пола.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="263"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="263"/>
<source>height_calf</source> <source>height_calf</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>рост_икры</translation> <translation>Викр</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="265"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="265"/>
<source>Height: Calf</source> <source>Height: Calf</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>рост: икры</translation> <translation>Высота икры</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/>
<source>Vertical distance from the widest point of the calf to the floor.</source> <source>Vertical distance from the widest point of the calf to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от широкой части икры ноги до пола</translation> <translation>Размерный признак 218. Вертикальное расстояние от широкой части икры ноги до пола</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/>
<source>height_ankle_high</source> <source>height_ankle_high</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>ростодыжки_сверху</translation> <translation>Вщ</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="272"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="272"/>
<source>Height: Ankle High</source> <source>Height: Ankle High</source>
<comment>Full measurement name.</comment> <comment>Full measurement name.</comment>
<translation>Рост: щиколотка</translation> <translation>Высота щиколотки</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="273"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="273"/>

View File

@ -163,7 +163,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="266"/>
<source>Vertical distance from the widest point of the calf to the floor.</source> <source>Vertical distance from the widest point of the calf to the floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Вертикальное расстояние от широкой части икры ноги до пола</translation> <translation>Вертикальное расстояние от широкой части икры ноги до пола.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="270"/>
@ -362,7 +362,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="344"/>
<source>Vertical distance from the Waist Side to the Hip level.</source> <source>Vertical distance from the Waist Side to the Hip level.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от линии талии до віступающей точки ягодицы</translation> <translation>Расстояние от линии талии до выступающей точки ягодицы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="348"/>
@ -512,7 +512,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="431"/>
<source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source> <source>Horizontal distance from Scapula (Blade point) to the Neck Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размерный признак в стандарте 74.Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной паиболее выступающих назад точек обеих лопаток.</translation> <translation>Размерный признак в стандарте 74. Измеряют по горизонтали расстояние от шейной точки до вертикальной плоскости, касательной наиболее выступающих назад точек обеих лопаток.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="435"/>
@ -530,7 +530,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="438"/>
<source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source> <source>Horizontal distance between a flat stick, placed to touch Hip and Scapula, and Waist Back.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади</translation> <translation>Горизонтальное расстояние между плоской палочкой, размещенной так, чтобы она касалась бедра и лопатки, и поясницей сзади.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="442"/>
@ -565,7 +565,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="464"/>
<source>Length from Wrist line to base of middle finger.</source> <source>Length from Wrist line to base of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до основания среднего пальца</translation> <translation>Размер от запястья до основания среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="468"/>
@ -583,7 +583,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="471"/>
<source>Length from Wrist line to end of middle finger.</source> <source>Length from Wrist line to end of middle finger.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Размер от запястья до конца среднего пальца</translation> <translation>Размер от запястья до конца среднего пальца.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="475"/>
@ -619,7 +619,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="484"/>
<source>Circumference where Palm is widest.</source> <source>Circumference where Palm is widest.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват ладони в максимально широком месте</translation> <translation>Обхват ладони в максимально широком месте.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="487"/>
@ -691,7 +691,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="522"/>
<source>Measure circumference around widest part of foot.</source> <source>Measure circumference around widest part of foot.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Измерьте окружность самой широкой части стопы</translation> <translation>Измерьте окружность самой широкой части стопы.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="526"/>
@ -853,7 +853,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="610"/>
<source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source> <source>Neck circumference at base of Neck, touching Neck Back, Neck Sides, and Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Номер размерного признака в стандарте 13. Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="615"/>
@ -984,7 +984,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="655"/>
<source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source> <source>Circumference around Highhip, where Abdomen protrusion is greatest, parallel to floor.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Обхват бёдер сверху, через саму выступающую точку живота, параллельно полу.</translation> <translation>Обхват бёдер сверху, через самую выступающую точку живота, параллельно полу.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="660"/>
@ -1020,7 +1020,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="671"/>
<source>From Neck Side to Neck Side through Neck Front.</source> <source>From Neck Side to Neck Side through Neck Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной вырезкой. Размер читают по нижнему краю ленты.</translation> <translation>Ленту накладывают на основание шеи так, чтобы оба края ленты плотно прилегали к ее поверхности, и замыкают спереди над яремной веной. Размер читают по нижнему краю ленты.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="675"/>
@ -1279,7 +1279,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="774"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="774"/>
<source>highhip_arc_half_f</source> <source>highhip_arc_half_f</source>
<comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment> <comment>Name in a formula. Don&apos;t use math symbols and space in name!!!!</comment>
<translation>бедро_щирина_половина</translation> <translation>бедро_ширина_половина</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="776"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="776"/>
@ -1615,8 +1615,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="912"/>
<source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source> <source>Curve stiff paper around front of abdomen, tape at sides. Measure from Hip Side to Hip Side over paper across front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища <translation>Ленту накладывают на ягодичные точки. Лента должна проходить горизонтально вокруг туловища, спереди - по гибкой пластине, приложенной вертикально к животу для учета выступа живота, и замыкаться на правой стороне туловища.</translation>
</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="917"/>
@ -1724,7 +1723,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="969"/>
<source>From Neck Front down between breasts to Waist Front.</source> <source>From Neck Front down between breasts to Waist Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от основания шеи спереди между грудью до лини талии спереди</translation> <translation>Расстояние от основания шеи спереди между грудью до линии талии спереди</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="973"/>
@ -3020,7 +3019,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1509"/>
<source>From Neck Side diagonal to Armfold Front.</source> <source>From Neck Side diagonal to Armfold Front.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди</translation> <translation>Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1513"/>
@ -3548,7 +3547,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2148"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация использована из шаблона в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="1736"/>
@ -4400,7 +4399,7 @@
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2140"/>
<source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source> <source>This information is pulled from pattern charts in some patternmaking systems, e.g. Winifred P. Aldrich&apos;s &quot;Metric Pattern Cutting&quot;.</source>
<comment>Full measurement description.</comment> <comment>Full measurement description.</comment>
<translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;</translation> <translation>Эта информация взята для выкроек в таких системах раскроя, как Уилфред Алдрич &quot;Метод конструирования и моделирования&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/> <location filename="../../src/libs/vpatterndb/vtranslatemeasurements.cpp" line="2137"/>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -67,17 +67,6 @@ int main(int argc, char *argv[])
VPApplication app(argc, argv); VPApplication app(argc, argv);
app.InitOptions(); app.InitOptions();
if (FvUpdater::IsStaledTestBuild())
{
qWarning() << QApplication::translate("Puzzle",
"This test build is older than %1 days. To provide you with better "
"quality service we restrict the lifetime you can use a test build. "
"To continue using Puzzle please update to newer test build. The "
"application will be shut down.")
.arg(FvUpdater::testBuildLifetime);
return V_EX_UNAVAILABLE;
}
QTimer::singleShot(0, &app, &VPApplication::ProcessCMD); QTimer::singleShot(0, &app, &VPApplication::ProcessCMD);
#if defined(APPIMAGE) && defined(Q_OS_LINUX) #if defined(APPIMAGE) && defined(Q_OS_LINUX)

View File

@ -202,7 +202,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
{ {
if (topWinAllowsPop) if (topWinAllowsPop)
{ {
messageBox.setText(VAbstractApplication::ClearMessage(msg)); messageBox.setText(msg);
messageBox.setStandardButtons(QMessageBox::Ok); messageBox.setStandardButtons(QMessageBox::Ok);
messageBox.setWindowModality(Qt::ApplicationModal); messageBox.setWindowModality(Qt::ApplicationModal);
messageBox.setModal(true); messageBox.setModal(true);

View File

@ -11,7 +11,11 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>PuzzleMainWindow</string> <string>Puzzle</string>
</property>
<property name="windowIcon">
<iconset resource="share/resources/puzzleicon.qrc">
<normaloff>:/puzzleicon/64x64/logo.png</normaloff>:/puzzleicon/64x64/logo.png</iconset>
</property> </property>
<widget class="QWidget" name="centralWidget"> <widget class="QWidget" name="centralWidget">
<property name="enabled"> <property name="enabled">
@ -32,7 +36,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1427</width> <width>1427</width>
<height>22</height> <height>21</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuFile"> <widget class="QMenu" name="menuFile">
@ -230,7 +234,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>342</width> <width>342</width>
<height>1264</height> <height>1252</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
@ -505,7 +509,7 @@
<attribute name="toolTip"> <attribute name="toolTip">
<string>Layout properties</string> <string>Layout properties</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayoutLayoutProperty"> <layout class="QVBoxLayout" name="verticalLayoutSheetProperty">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@ -538,7 +542,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>356</width> <width>356</width>
<height>760</height> <height>761</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
@ -954,7 +958,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>356</width> <width>356</width>
<height>760</height> <height>761</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
@ -1027,7 +1031,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>356</width> <width>356</width>
<height>760</height> <height>761</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">

View File

@ -38,8 +38,7 @@ TapePreferencesConfigurationPage::TapePreferencesConfigurationPage(QWidget *pare
: QWidget(parent), : QWidget(parent),
ui(new Ui::TapePreferencesConfigurationPage), ui(new Ui::TapePreferencesConfigurationPage),
m_langChanged(false), m_langChanged(false),
m_systemChanged(false), m_systemChanged(false)
m_defGradationChanged(false)
{ {
ui->setupUi(this); ui->setupUi(this);
RetranslateUi(); RetranslateUi();
@ -84,31 +83,6 @@ TapePreferencesConfigurationPage::TapePreferencesConfigurationPage(QWidget *pare
//----------------------- Toolbar //----------------------- Toolbar
ui->toolBarStyleCheck->setChecked(qApp->TapeSettings()->GetToolBarStyle()); ui->toolBarStyleCheck->setChecked(qApp->TapeSettings()->GetToolBarStyle());
//---------------------------Default height and size
// If change units don't forget about the label
ui->defHeightCombo->addItems(VMeasurement::WholeListHeights(Unit::Cm));
index = ui->defHeightCombo->findText(QString().setNum(qApp->TapeSettings()->GetDefHeight()));
if (index != -1)
{
ui->defHeightCombo->setCurrentIndex(index);
}
auto DefGradationChanged = [this]()
{
m_defGradationChanged = true;
};
connect(ui->defHeightCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, DefGradationChanged);
// If change units don't forget about the label
ui->defSizeCombo->addItems(VMeasurement::WholeListSizes(Unit::Cm));
index = ui->defSizeCombo->findText(QString().setNum(qApp->TapeSettings()->GetDefSize()));
if (index != -1)
{
ui->defSizeCombo->setCurrentIndex(index);
}
connect(ui->defSizeCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, DefGradationChanged);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -150,13 +124,6 @@ QStringList TapePreferencesConfigurationPage::Apply()
qApp->RetranslateGroups(); qApp->RetranslateGroups();
} }
if (m_defGradationChanged)
{
settings->SetDefHeight(ui->defHeightCombo->currentText().toInt());
settings->SetDefSize(ui->defSizeCombo->currentText().toInt());
m_defGradationChanged = false;
}
return preferences; return preferences;
} }
@ -187,7 +154,4 @@ void TapePreferencesConfigurationPage::RetranslateUi()
ui->systemCombo->blockSignals(false); ui->systemCombo->blockSignals(false);
ui->systemCombo->setCurrentIndex(ui->systemCombo->findData(code)); ui->systemCombo->setCurrentIndex(ui->systemCombo->findData(code));
} }
ui->labelHeightUnit->setText(UnitsToStr(Unit::Cm, true));
ui->labelSizeUnit->setText(UnitsToStr(Unit::Cm, true));
} }

View File

@ -52,7 +52,6 @@ private:
Ui::TapePreferencesConfigurationPage *ui; Ui::TapePreferencesConfigurationPage *ui;
bool m_langChanged; bool m_langChanged;
bool m_systemChanged; bool m_systemChanged;
bool m_defGradationChanged;
void RetranslateUi(); void RetranslateUi();
}; };

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>544</width> <width>544</width>
<height>750</height> <height>648</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -25,7 +25,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>524</width> <width>524</width>
<height>730</height> <height>628</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
@ -165,89 +165,6 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Default height and size</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Default height:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="defSizeCombo">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="labelHeightUnit">
<property name="text">
<string notr="true">Height unit</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="defHeightCombo">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="labelSizeUnit">
<property name="text">
<string notr="true">Size unit</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Default size:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="3">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QGroupBox" name="groupBox_4"> <widget class="QGroupBox" name="groupBox_4">
<property name="title"> <property name="title">

View File

@ -0,0 +1,223 @@
/************************************************************************
**
** @file dialogdimensionlabels.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 8 10, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "dialogdimensionlabels.h"
#include "ui_dialogdimensionlabels.h"
//---------------------------------------------------------------------------------------------------------------------
DialogDimensionLabels::DialogDimensionLabels(const QMap<MeasurementDimension, MeasurementDimension_p> &dimensions, bool fullCircumference,
QWidget *parent)
: QDialog(parent),
ui(new Ui::DialogDimensionLabels),
m_dimensions(dimensions),
m_fullCircumference(fullCircumference)
{
ui->setupUi(this);
InitLabels();
InitDimensions();
InitTable();
connect(ui->comboBoxDimensionLabels, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&DialogDimensionLabels::DimensionChanged);
connect(ui->tableWidget, &QTableWidget::itemChanged, this, &DialogDimensionLabels::LabelChanged);
}
//---------------------------------------------------------------------------------------------------------------------
DialogDimensionLabels::~DialogDimensionLabels()
{
delete ui;
}
//---------------------------------------------------------------------------------------------------------------------
void DialogDimensionLabels::changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange)
{
// retranslate designer form (single inheritance approach)
ui->retranslateUi(this);
MeasurementDimension type =
static_cast<MeasurementDimension>(ui->comboBoxDimensionLabels->currentData().toInt());
InitDimensions();
int index = ui->comboBoxDimensionLabels->findData(static_cast<int>(type));
if (index != -1)
{
ui->comboBoxDimensionLabels->blockSignals(true);
ui->comboBoxDimensionLabels->setCurrentIndex(index);
ui->comboBoxDimensionLabels->blockSignals(false);
}
const int row = ui->tableWidget->currentRow();
InitTable();
ui->tableWidget->blockSignals(true);
ui->tableWidget->selectRow(row);
ui->tableWidget->blockSignals(false);
}
// remember to call base class implementation
QDialog::changeEvent(event);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogDimensionLabels::DimensionChanged()
{
InitTable();
ui->tableWidget->selectRow(0);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogDimensionLabels::LabelChanged(QTableWidgetItem *item)
{
if (item)
{
MeasurementDimension type =
static_cast<MeasurementDimension>(ui->comboBoxDimensionLabels->currentData().toInt());
int value = item->data(Qt::UserRole).toInt();
DimesionLabels labels = m_labels.value(type);
labels.insert(value, item->text());
m_labels.insert(type, labels);
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogDimensionLabels::InitLabels()
{
m_labels.clear();
const QList<MeasurementDimension_p> dimensions = m_dimensions.values();
for(auto &dimension : dimensions)
{
m_labels.insert(dimension->Type(), dimension->Labels());
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogDimensionLabels::InitDimensions()
{
ui->comboBoxDimensionLabels->blockSignals(true);
ui->comboBoxDimensionLabels->clear();
for(auto &dimension : m_dimensions)
{
ui->comboBoxDimensionLabels->addItem(VAbstartMeasurementDimension::DimensionName(dimension->Type()),
static_cast<int>(dimension->Type()));
}
ui->comboBoxDimensionLabels->blockSignals(false);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogDimensionLabels::InitTable()
{
ui->tableWidget->blockSignals(true);
ui->tableWidget->clearContents();
const MeasurementDimension type =
static_cast<MeasurementDimension>(ui->comboBoxDimensionLabels->currentData().toInt());
MeasurementDimension_p dimension;
if (m_dimensions.contains(type))
{
dimension = m_dimensions.value(type);
}
if (dimension.isNull())
{
return;
}
const QVector<int> bases = dimension->ValidBases();
ui->tableWidget->setRowCount(bases.size());
const DimesionLabels labels = m_labels.value(type);
for(int row = 0; row < bases.size(); ++row)
{
const int base = bases.at(row);
{
auto *itemValue = new QTableWidgetItem(DimensionValue(dimension, base));
itemValue->setData(Qt::UserRole, base);
itemValue->setTextAlignment(Qt::AlignHCenter | Qt::AlignCenter);
// set the item non-editable (view only), and non-selectable
Qt::ItemFlags flags = itemValue->flags();
flags &= ~(Qt::ItemIsEditable); // reset/clear the flag
itemValue->setFlags(flags);
ui->tableWidget->setItem(row, 0, itemValue);
}
{
auto *itemLabel = new QTableWidgetItem(labels.value(base));
itemLabel->setData(Qt::UserRole, base);
itemLabel->setTextAlignment(Qt::AlignHCenter | Qt::AlignCenter);
ui->tableWidget->setItem(row, 1, itemLabel);
}
}
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->blockSignals(false);
}
//---------------------------------------------------------------------------------------------------------------------
QString DialogDimensionLabels::DimensionValue(const MeasurementDimension_p &dimension, int value)
{
QStringList labels;
if (dimension->Type() == MeasurementDimension::X)
{
return QString::number(value);
}
else if (dimension->Type() == MeasurementDimension::Y)
{
if (dimension->IsCircumference())
{
return QString::number(m_fullCircumference ? value*2 : value);
}
else
{
return QString::number(value);
}
}
else if (dimension->Type() == MeasurementDimension::W || dimension->Type() == MeasurementDimension::Z)
{
return QString::number(m_fullCircumference ? value*2 : value);
}
return QString::number(value);
}

View File

@ -0,0 +1,82 @@
/************************************************************************
**
** @file dialogdimensionlabels.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 8 10, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef DIALOGDIMENSIONLABELS_H
#define DIALOGDIMENSIONLABELS_H
#include <QDialog>
#include <QMap>
#include "../vformat/vdimensions.h"
namespace Ui
{
class DialogDimensionLabels;
}
class QTableWidgetItem;
class DialogDimensionLabels : public QDialog
{
Q_OBJECT
public:
explicit DialogDimensionLabels(const QMap<MeasurementDimension, MeasurementDimension_p > &dimensions,
bool fullCircumference, QWidget *parent = nullptr);
virtual ~DialogDimensionLabels();
QMap<MeasurementDimension, DimesionLabels> Labels() const;
protected:
virtual void changeEvent(QEvent* event) override;
private slots:
void DimensionChanged();
void LabelChanged(QTableWidgetItem *item);
private:
Q_DISABLE_COPY(DialogDimensionLabels)
Ui::DialogDimensionLabels *ui;
QMap<MeasurementDimension, MeasurementDimension_p > m_dimensions;
QMap<MeasurementDimension, DimesionLabels> m_labels{};
bool m_fullCircumference;
void InitLabels();
void InitDimensions();
void InitTable();
QString DimensionValue(const MeasurementDimension_p &dimension, int value);
};
//---------------------------------------------------------------------------------------------------------------------
inline QMap<MeasurementDimension, DimesionLabels> DialogDimensionLabels::Labels() const
{
return m_labels;
}
#endif // DIALOGDIMENSIONLABELS_H

View File

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DialogDimensionLabels</class>
<widget class="QDialog" name="DialogDimensionLabels">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>345</width>
<height>424</height>
</rect>
</property>
<property name="windowTitle">
<string>Dimension labels</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>:/tapeicon/64x64/logo.png</normaloff>:/tapeicon/64x64/logo.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="labelDimension">
<property name="text">
<string>Dimension:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBoxDimensionLabels"/>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Value</string>
</property>
</column>
<column>
<property name="text">
<string>Label</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DialogDimensionLabels</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DialogDimensionLabels</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -0,0 +1,929 @@
/************************************************************************
**
** @file dialogmeasurementscsvcolumns.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 9 10, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "dialogmeasurementscsvcolumns.h"
#include "ui_dialogmeasurementscsvcolumns.h"
#include "../vmisc/qxtcsvmodel.h"
#include "../vtools/dialogs/dialogtoolbox.h"
#include <QPushButton>
#include <QShowEvent>
//---------------------------------------------------------------------------------------------------------------------
DialogMeasurementsCSVColumns::DialogMeasurementsCSVColumns(const QString &filename, MeasurementsType type,
QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogMeasurementsCSVColumns),
m_fileName{filename},
m_type(type)
{
ui->setupUi(this);
HackColumnControls();
}
//---------------------------------------------------------------------------------------------------------------------
DialogMeasurementsCSVColumns::DialogMeasurementsCSVColumns(const QString &filename, MeasurementsType type,
const QList<MeasurementDimension_p> &dimensions,
QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogMeasurementsCSVColumns),
m_fileName{filename},
m_type(type),
m_dimensions{dimensions}
{
ui->setupUi(this);
HackColumnControls();
}
//---------------------------------------------------------------------------------------------------------------------
DialogMeasurementsCSVColumns::~DialogMeasurementsCSVColumns()
{
qDeleteAll(m_hackedWidgets);
delete ui;
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange)
{
// retranslate designer form (single inheritance approach)
ui->retranslateUi(this);
RetranslateLabels();
InitColumnsControls();
InitImportHeaders();
ShowImportPreview();
CheckStatus();
}
// remember to call base class implementation
QDialog::changeEvent(event);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::showEvent(QShowEvent *event)
{
QDialog::showEvent( event );
if ( event->spontaneous() )
{
return;
}
if (m_isInitialized)
{
return;
}
// do your init stuff here
if (not m_fileName.isEmpty())
{
InitColumnsMap();
ShowInputPreview();
InitColumnsControls();
RetranslateLabels();
SetDefaultColumns();
InitImportHeaders();
ShowImportPreview();
connect(ui->comboBoxName, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
connect(ui->comboBoxValue, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
if (m_type == MeasurementsType::Multisize)
{
if (m_dimensions.size() > 0)
{
connect(ui->comboBoxShiftA, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
}
if (m_dimensions.size() > 1)
{
connect(ui->comboBoxShiftB, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
}
if (m_dimensions.size() > 2)
{
connect(ui->comboBoxShiftC, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
}
}
connect(ui->comboBoxFullName, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
connect(ui->comboBoxDescription, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DialogMeasurementsCSVColumns::ColumnChanged);
CheckStatus();
}
m_isInitialized = true;//first show windows are held
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::ColumnChanged()
{
auto *control = qobject_cast<QComboBox*>(sender());
auto SaveColum = [this, control](int column)
{
m_columnsMap[column] = control->currentData().toInt();
ShowImportPreview();
CheckStatus();
};
if (control == ui->comboBoxName)
{
if (m_type == MeasurementsType::Individual)
{
SaveColum(static_cast<int>(IndividualMeasurementsColumns::Name));
}
else
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::Name));
}
}
else if (control == ui->comboBoxValue)
{
if (m_type == MeasurementsType::Individual)
{
SaveColum(static_cast<int>(IndividualMeasurementsColumns::Value));
}
else
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::BaseValue));
}
}
else if (control == ui->comboBoxShiftA)
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::ShiftA));
}
else if (control == ui->comboBoxShiftB)
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::ShiftB));
}
else if (control == ui->comboBoxShiftC)
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::ShiftC));
}
else if (control == ui->comboBoxFullName)
{
if (m_type == MeasurementsType::Individual)
{
SaveColum(static_cast<int>(IndividualMeasurementsColumns::FullName));
}
else
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::FullName));
}
}
else if (control == ui->comboBoxDescription)
{
if (m_type == MeasurementsType::Individual)
{
SaveColum(static_cast<int>(IndividualMeasurementsColumns::Description));
}
else
{
SaveColum(static_cast<int>(MultisizeMeasurementsColumns::Description));
}
}
}
//---------------------------------------------------------------------------------------------------------------------
bool DialogMeasurementsCSVColumns::ColumnMandatory(int column) const
{
if (m_type == MeasurementsType::Individual)
{
return column < static_cast<int>(IndividualMeasurementsColumns::FullName);
}
else
{
int mandatory = 3;
if (m_dimensions.size() > 1)
{
mandatory += qMin(m_dimensions.size(), 2);
}
return static_cast<int>(column) < mandatory;
}
}
//---------------------------------------------------------------------------------------------------------------------
QString DialogMeasurementsCSVColumns::ColumnHeader(int column) const
{
if (m_type == MeasurementsType::Individual)
{
const auto individualColumn = static_cast<IndividualMeasurementsColumns>(column);
switch(individualColumn)
{
case IndividualMeasurementsColumns::Name:
return tr("Name", "measurement column");
case IndividualMeasurementsColumns::Value:
return tr("Value", "measurement column");
case IndividualMeasurementsColumns::FullName:
return tr("Full name", "measurement column");
case IndividualMeasurementsColumns::Description:
return tr("Description", "measurement column");
default:
return QString();
}
}
else
{
const auto multisizeColumn = static_cast<MultisizeMeasurementsColumns>(column);
switch(multisizeColumn)
{
case MultisizeMeasurementsColumns::Name:
return tr("Name", "measurement column");
case MultisizeMeasurementsColumns::BaseValue:
return tr("Base value", "measurement column");
case MultisizeMeasurementsColumns::ShiftA:
if (m_dimensions.size() > 0)
{
MeasurementDimension_p dimension = m_dimensions.at(0);
return tr("Shift (%1):", "measurement column")
.arg(VAbstartMeasurementDimension::DimensionName(dimension->Type()));
}
else
{
return "Shift A";
}
case MultisizeMeasurementsColumns::ShiftB:
if (m_dimensions.size() > 1)
{
MeasurementDimension_p dimension = m_dimensions.at(1);
return tr("Shift (%1):", "measurement column")
.arg(VAbstartMeasurementDimension::DimensionName(dimension->Type()));
}
else
{
return "Shift B";
}
case MultisizeMeasurementsColumns::ShiftC:
if (m_dimensions.size() > 2)
{
MeasurementDimension_p dimension = m_dimensions.at(2);
return tr("Shift (%1):", "measurement column")
.arg(VAbstartMeasurementDimension::DimensionName(dimension->Type()));
}
else
{
return "Shift C";
}
case MultisizeMeasurementsColumns::FullName:
return tr("Full name", "measurement column");
case MultisizeMeasurementsColumns::Description:
return tr("Description", "measurement column");
default:
return QString();
}
}
}
//---------------------------------------------------------------------------------------------------------------------
int DialogMeasurementsCSVColumns::ImportColumnCount() const
{
if (m_type == MeasurementsType::Individual)
{
return static_cast<int>(IndividualMeasurementsColumns::LAST_DO_NOT_USE);
}
else
{
return static_cast<int>(MultisizeMeasurementsColumns::LAST_DO_NOT_USE);
}
}
//---------------------------------------------------------------------------------------------------------------------
int DialogMeasurementsCSVColumns::MinimumColumns() const
{
if (m_type == MeasurementsType::Individual)
{
return 2;
}
else
{
int mandatory = 3;
if (m_dimensions.size() > 1)
{
mandatory += qMin(m_dimensions.size(), 2);
}
return mandatory;
}
}
//---------------------------------------------------------------------------------------------------------------------
bool DialogMeasurementsCSVColumns::ColumnsValid()
{
ChangeColor(ui->labelName, OkColor(this));
ChangeColor(ui->labelValue, OkColor(this));
if (m_type == MeasurementsType::Multisize)
{
if (m_dimensions.size() > 0)
{
ChangeColor(ui->labelShiftA, OkColor(this));
}
if (m_dimensions.size() > 1)
{
ChangeColor(ui->labelShiftB, OkColor(this));
}
if (m_dimensions.size() > 2)
{
ChangeColor(ui->labelShiftC, OkColor(this));
}
}
ChangeColor(ui->labelFullName, OkColor(this));
ChangeColor(ui->labelDescription, OkColor(this));
auto ColumnValid = [this](int column)
{
int value = m_columnsMap.at(column);
if (value == -1 && not ColumnMandatory(column))
{
return true;
}
for (int c=0; c < m_columnsMap.size(); ++c)
{
if (c == column)
{
continue;
}
if (value == m_columnsMap.at(c))
{
return false;
}
}
return true;
};
bool columnNameFlag = true;
bool columnValueFlag = true;
bool columnShiftAFlag = true;
bool columnShiftBFlag = true;
bool columnShiftCFlag = true;
bool columnFullNameFlag = true;
bool columnDescriptionFlag = true;
const QColor errorColor = Qt::red;
if (m_type == MeasurementsType::Multisize)
{
if (not ColumnValid(static_cast<int>(MultisizeMeasurementsColumns::Name)))
{
ChangeColor(ui->labelName, errorColor);
columnNameFlag = false;
}
}
else
{
if (not ColumnValid(static_cast<int>(IndividualMeasurementsColumns::Name)))
{
ChangeColor(ui->labelName, errorColor);
columnNameFlag = false;
}
}
if (m_type == MeasurementsType::Multisize)
{
if (not ColumnValid(static_cast<int>(MultisizeMeasurementsColumns::BaseValue)))
{
ChangeColor(ui->labelValue, errorColor);
columnValueFlag = false;
}
}
else
{
if (not ColumnValid(static_cast<int>(IndividualMeasurementsColumns::Value)))
{
ChangeColor(ui->labelValue, errorColor);
columnValueFlag = false;
}
}
if (m_type == MeasurementsType::Multisize)
{
if (m_dimensions.size() > 0)
{
if (not ColumnValid(static_cast<int>(MultisizeMeasurementsColumns::ShiftA)))
{
ChangeColor(ui->labelShiftA, errorColor);
columnShiftAFlag = false;
}
}
if (m_dimensions.size() > 1)
{
if (not ColumnValid(static_cast<int>(MultisizeMeasurementsColumns::ShiftB)))
{
ChangeColor(ui->labelShiftB, errorColor);
columnShiftBFlag = false;
}
}
if (m_dimensions.size() > 2)
{
if (not ColumnValid(static_cast<int>(MultisizeMeasurementsColumns::ShiftC)))
{
ChangeColor(ui->labelShiftC, errorColor);
columnShiftCFlag = false;
}
}
}
if (not ColumnValid(m_type == MeasurementsType::Multisize
? static_cast<int>(MultisizeMeasurementsColumns::FullName)
: static_cast<int>(IndividualMeasurementsColumns::FullName)))
{
ChangeColor(ui->labelFullName, errorColor);
columnFullNameFlag = false;
}
if (not ColumnValid(m_type == MeasurementsType::Multisize
? static_cast<int>(MultisizeMeasurementsColumns::Description)
: static_cast<int>(IndividualMeasurementsColumns::Description)))
{
ChangeColor(ui->labelDescription, errorColor);
columnDescriptionFlag = false;
}
return columnNameFlag && columnValueFlag && columnShiftAFlag && columnShiftBFlag && columnShiftCFlag &&
columnFullNameFlag && columnDescriptionFlag;
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::InitColumnsMap()
{
QSharedPointer<QxtCsvModel> csv = DialogMeasurementsCSVColumns::CSVModel();
m_columnsMap.clear();
auto InitColumn = [this, csv](int column, int &index, bool forceSkip=false)
{
if (forceSkip)
{
m_columnsMap[column] = -1;
}
else
{
++index;
if (ColumnMandatory(column))
{
m_columnsMap[column] = index;
}
else
{
m_columnsMap[column] = csv->columnCount() >= index ? index : -1;
}
}
};
if (m_type == MeasurementsType::Individual)
{
m_columnsMap.resize(static_cast<int>(IndividualMeasurementsColumns::LAST_DO_NOT_USE));
int index = -1;
for(int column = 0; column < static_cast<int>(IndividualMeasurementsColumns::LAST_DO_NOT_USE); ++column)
{
InitColumn(column, index);
}
}
else
{
m_columnsMap.resize(static_cast<int>(MultisizeMeasurementsColumns::LAST_DO_NOT_USE));
int index = -1;
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::Name), index);
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::BaseValue), index);
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::ShiftA), index);
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::ShiftB), index, m_dimensions.size() < 2);
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::ShiftC), index, m_dimensions.size() < 3);
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::FullName), index);
InitColumn(static_cast<int>(MultisizeMeasurementsColumns::Description), index);
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::InitColumnsControls()
{
const int inputColumnCount = CSVModel()->columnCount();
auto InitControl = [this, inputColumnCount](QComboBox *control, int column)
{
SCASSERT(control != nullptr)
int currentColumn = -2;
int index = control->currentIndex();
if (index != -1)
{
currentColumn = control->currentData().toInt();
}
control->blockSignals(true);
control->clear();
for(int i=0; i < inputColumnCount; ++i)
{
control->addItem(QString::number(i+1), i);
}
if (not ColumnMandatory(column))
{
control->addItem(tr("Skip"), -1);
}
control->setCurrentIndex(-1);
index = control->findData(currentColumn);
if (index != -1)
{
control->setCurrentIndex(index);
control->blockSignals(false);
}
else
{
control->blockSignals(false);
if (not ColumnMandatory(column))
{
control->setCurrentIndex(control->findData(-1));
}
else
{
control->setCurrentIndex(0);
}
}
};
if (m_type == MeasurementsType::Individual)
{
InitControl(ui->comboBoxName, static_cast<int>(IndividualMeasurementsColumns::Name));
InitControl(ui->comboBoxValue, static_cast<int>(IndividualMeasurementsColumns::Value));
InitControl(ui->comboBoxFullName, static_cast<int>(IndividualMeasurementsColumns::FullName));
InitControl(ui->comboBoxDescription, static_cast<int>(IndividualMeasurementsColumns::Description));
}
else
{
InitControl(ui->comboBoxName, static_cast<int>(MultisizeMeasurementsColumns::Name));
InitControl(ui->comboBoxValue, static_cast<int>(MultisizeMeasurementsColumns::BaseValue));
if (m_dimensions.size() > 0)
{
InitControl(ui->comboBoxShiftA, static_cast<int>(MultisizeMeasurementsColumns::ShiftA));
}
if (m_dimensions.size() > 1)
{
InitControl(ui->comboBoxShiftB, static_cast<int>(MultisizeMeasurementsColumns::ShiftB));
}
if (m_dimensions.size() > 2)
{
InitControl(ui->comboBoxShiftC, static_cast<int>(MultisizeMeasurementsColumns::ShiftC));
}
InitControl(ui->comboBoxFullName, static_cast<int>(MultisizeMeasurementsColumns::FullName));
InitControl(ui->comboBoxDescription, static_cast<int>(MultisizeMeasurementsColumns::Description));
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::InitImportHeaders()
{
if (m_fileName.isEmpty())
{
return;
}
const int columns = ImportColumnCount();
ui->tableWidgetImport->clear();
ui->tableWidgetImport->setColumnCount(columns);
auto AddHeader = [this](int column, bool visible=true)
{
QTableWidgetItem *header = new QTableWidgetItem(ColumnHeader(column));
ui->tableWidgetImport->setHorizontalHeaderItem(column, header);
ui->tableWidgetImport->setColumnHidden(column, not visible);
};
if (m_type == MeasurementsType::Individual)
{
AddHeader(static_cast<int>(IndividualMeasurementsColumns::Name));
AddHeader(static_cast<int>(IndividualMeasurementsColumns::Value));
AddHeader(static_cast<int>(IndividualMeasurementsColumns::FullName));
AddHeader(static_cast<int>(IndividualMeasurementsColumns::Description));
}
else
{
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::Name));
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::BaseValue));
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::ShiftA), m_dimensions.size() > 0);
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::ShiftB), m_dimensions.size() > 1);
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::ShiftC), m_dimensions.size() > 2);
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::FullName));
AddHeader(static_cast<int>(MultisizeMeasurementsColumns::Description));
}
}
//---------------------------------------------------------------------------------------------------------------------
QSharedPointer<QxtCsvModel> DialogMeasurementsCSVColumns::CSVModel() const
{
return QSharedPointer<QxtCsvModel>::create(m_fileName, nullptr, m_withHeader, m_separator, m_codec);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::ShowInputPreview()
{
if (m_fileName.isEmpty())
{
return;
}
QSharedPointer<QxtCsvModel> csv = DialogMeasurementsCSVColumns::CSVModel();
const int columns = csv->columnCount();
const int rows = csv->rowCount();
ui->tableWidgetInput->clear();
ui->tableWidgetInput->setColumnCount(columns);
ui->tableWidgetInput->setRowCount(rows);
ui->tableWidgetInput->horizontalHeader()->setVisible(m_withHeader);
if (m_withHeader)
{
for(int column=0; column<columns; ++column)
{
QTableWidgetItem *header = new QTableWidgetItem(csv->headerText(column));
header->setToolTip(QString::number(column+1));
ui->tableWidgetInput->setHorizontalHeaderItem(column, header);
}
}
for (int row=0; row < rows; ++row)
{
for(int column=0; column<columns; ++column)
{
const QString text = csv->text(row, column);
QTableWidgetItem *item = new QTableWidgetItem(text);
item->setToolTip(text);
// 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);
ui->tableWidgetInput->setItem(row, column, item);
}
}
ui->tableWidgetInput->resizeColumnsToContents();
ui->tableWidgetInput->resizeRowsToContents();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::ShowImportPreview()
{
if (m_fileName.isEmpty())
{
return;
}
QSharedPointer<QxtCsvModel> csv = DialogMeasurementsCSVColumns::CSVModel();
const int importColumns = ImportColumnCount();
const int columns = csv->columnCount();
const int rows = csv->rowCount();
ui->tableWidgetImport->clearContents();
ui->tableWidgetImport->setRowCount(rows);
for (int row=0; row < rows; ++row)
{
for(int column=0; column < importColumns; ++column)
{
const int tableColumn = m_columnsMap.at(column);
if (tableColumn >= 0 && tableColumn < columns)
{
const QString text = csv->text(row, tableColumn);
QTableWidgetItem *item = new QTableWidgetItem(text);
item->setToolTip(text);
// 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);
ui->tableWidgetImport->setItem(row, column, item);
}
}
}
ui->tableWidgetImport->resizeColumnsToContents();
ui->tableWidgetImport->resizeRowsToContents();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::HackColumnControls()
{
if (m_type == MeasurementsType::Individual)
{
HackWidget(&ui->labelShiftA);
HackWidget(&ui->labelShiftB);
HackWidget(&ui->labelShiftC);
HackWidget(&ui->comboBoxShiftA);
HackWidget(&ui->comboBoxShiftB);
HackWidget(&ui->comboBoxShiftC);
}
else
{
if (m_dimensions.size() < 2)
{
HackWidget(&ui->labelShiftB);
HackWidget(&ui->comboBoxShiftB);
}
if (m_dimensions.size() < 3)
{
HackWidget(&ui->labelShiftC);
HackWidget(&ui->comboBoxShiftC);
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::RetranslateLabels()
{
ui->labelName->setText(tr("Name") + "*:");
if (m_type == MeasurementsType::Individual)
{
ui->labelValue->setText(tr("Value") + "*:");
}
else
{
ui->labelValue->setText(tr("Base value") + "*:");
if (m_dimensions.size() > 0)
{
MeasurementDimension_p dimension = m_dimensions.at(0);
ui->labelShiftA->setText(tr("Shift (%1)*:")
.arg(VAbstartMeasurementDimension::DimensionName(dimension->Type())));
}
if (m_dimensions.size() > 1)
{
MeasurementDimension_p dimension = m_dimensions.at(1);
ui->labelShiftB->setText(tr("Shift (%1)*:")
.arg(VAbstartMeasurementDimension::DimensionName(dimension->Type())));
}
if (m_dimensions.size() > 2)
{
MeasurementDimension_p dimension = m_dimensions.at(2);
ui->labelShiftC->setText(tr("Shift (%1)*:")
.arg(VAbstartMeasurementDimension::DimensionName(dimension->Type())));
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::SetDefaultColumns()
{
auto SetDefault = [this](QComboBox *control, int column)
{
SCASSERT(control != nullptr)
int index = control->findData(m_columnsMap.at(column));
if (index != -1)
{
control->setCurrentIndex(index);
}
};
if (m_type == MeasurementsType::Individual)
{
SetDefault(ui->comboBoxName, static_cast<int>(IndividualMeasurementsColumns::Name));
SetDefault(ui->comboBoxValue, static_cast<int>(IndividualMeasurementsColumns::Value));
SetDefault(ui->comboBoxFullName, static_cast<int>(IndividualMeasurementsColumns::FullName));
SetDefault(ui->comboBoxDescription, static_cast<int>(IndividualMeasurementsColumns::Description));
}
else
{
SetDefault(ui->comboBoxName, static_cast<int>(MultisizeMeasurementsColumns::Name));
SetDefault(ui->comboBoxValue, static_cast<int>(MultisizeMeasurementsColumns::BaseValue));
if (m_dimensions.size() > 0)
{
SetDefault(ui->comboBoxShiftA, static_cast<int>(MultisizeMeasurementsColumns::ShiftA));
}
if (m_dimensions.size() > 1)
{
SetDefault(ui->comboBoxShiftB, static_cast<int>(MultisizeMeasurementsColumns::ShiftB));
}
if (m_dimensions.size() > 2)
{
SetDefault(ui->comboBoxShiftC, static_cast<int>(MultisizeMeasurementsColumns::ShiftC));
}
SetDefault(ui->comboBoxFullName, static_cast<int>(MultisizeMeasurementsColumns::FullName));
SetDefault(ui->comboBoxDescription, static_cast<int>(MultisizeMeasurementsColumns::Description));
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogMeasurementsCSVColumns::CheckStatus()
{
auto SetStatus = [this](bool status)
{
QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
SCASSERT(bOk != nullptr)
bOk->setEnabled(status);
};
if (m_fileName.isEmpty())
{
SetStatus(false);
ui->labelStatus->setText(tr("File path is empty"));
return;
}
QSharedPointer<QxtCsvModel> csv = DialogMeasurementsCSVColumns::CSVModel();
const int columns = csv->columnCount();
if (columns < MinimumColumns())
{
SetStatus(false);
ui->labelStatus->setText(tr("Not enough columns"));
return;
}
const int rows = csv->rowCount();
if (rows < 1)
{
SetStatus(false);
ui->labelStatus->setText(tr("Not enough data to import"));
return;
}
if (not ColumnsValid())
{
SetStatus(false);
ui->labelStatus->setText(tr("Please, select unique number for each column"));
return;
}
SetStatus(true);
ui->labelStatus->setText(tr("Ready"));
}
//---------------------------------------------------------------------------------------------------------------------
template<class T>
void DialogMeasurementsCSVColumns::HackWidget(T **widget)
{
delete *widget;
*widget = new T();
m_hackedWidgets.append(*widget);
}

View File

@ -0,0 +1,149 @@
/************************************************************************
**
** @file dialogmeasurementscsvcolumns.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 9 10, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef DIALOGMEASUREMENTSCSVCOLUMNS_H
#define DIALOGMEASUREMENTSCSVCOLUMNS_H
#include <QDialog>
#include "../vformat/vdimensions.h"
class QxtCsvModel;
enum class IndividualMeasurementsColumns: qint8
{
Name = 0,
Value = 1,
FullName = 2, // optional
Description = 3, // optional
LAST_DO_NOT_USE = 4
};
enum class MultisizeMeasurementsColumns: qint8
{
Name = 0,
BaseValue = 1,
ShiftA = 2,
ShiftB = 3, // optional if not required
ShiftC = 4, // optional if not required
FullName = 5, // optional
Description = 6, // optional
LAST_DO_NOT_USE = 7
};
namespace Ui {
class DialogMeasurementsCSVColumns;
}
class DialogMeasurementsCSVColumns : public QDialog
{
Q_OBJECT
public:
DialogMeasurementsCSVColumns(const QString &filename, MeasurementsType type, QWidget *parent = nullptr);
DialogMeasurementsCSVColumns(const QString &filename, MeasurementsType type,
const QList<MeasurementDimension_p> &dimensions, QWidget *parent = nullptr);
virtual ~DialogMeasurementsCSVColumns();
QVector<int> ColumnsMap() const;
void SetWithHeader(bool withHeader);
void SetSeparator(const QChar &separator);
void SetCodec(QTextCodec *codec);
protected:
virtual void changeEvent(QEvent* event) override;
virtual void showEvent(QShowEvent *event) override;
private slots:
void ColumnChanged();
private:
Q_DISABLE_COPY(DialogMeasurementsCSVColumns)
Ui::DialogMeasurementsCSVColumns *ui;
bool m_isInitialized{false};
QString m_fileName;
bool m_withHeader{false};
QChar m_separator{','};
QTextCodec *m_codec{nullptr};
QVector<int> m_columnsMap{};
MeasurementsType m_type;
QList<MeasurementDimension_p> m_dimensions{};
QVector<QObject *> m_hackedWidgets{};
bool ColumnMandatory(int column) const;
QString ColumnHeader(int column) const;
int ImportColumnCount() const;
int MinimumColumns() const;
bool ColumnsValid();
void InitColumnsMap();
void InitColumnsControls();
void InitImportHeaders();
QSharedPointer<QxtCsvModel> CSVModel() const;
void ShowInputPreview();
void ShowImportPreview();
template <class T>
void HackWidget(T **widget);
void HackColumnControls();
void RetranslateLabels();
void SetDefaultColumns();
void CheckStatus();
};
//---------------------------------------------------------------------------------------------------------------------
inline QVector<int> DialogMeasurementsCSVColumns::ColumnsMap() const
{
return m_columnsMap;
}
//---------------------------------------------------------------------------------------------------------------------
inline void DialogMeasurementsCSVColumns::SetWithHeader(bool withHeader)
{
m_withHeader = withHeader;
}
//---------------------------------------------------------------------------------------------------------------------
inline void DialogMeasurementsCSVColumns::SetSeparator(const QChar &separator)
{
m_separator = separator;
}
//---------------------------------------------------------------------------------------------------------------------
inline void DialogMeasurementsCSVColumns::SetCodec(QTextCodec *codec)
{
m_codec = codec;
}
#endif // DIALOGMEASUREMENTSCSVCOLUMNS_H

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DialogMeasurementsCSVColumns</class>
<widget class="QDialog" name="DialogMeasurementsCSVColumns">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>908</width>
<height>703</height>
</rect>
</property>
<property name="windowTitle">
<string>Setup columns</string>
</property>
<property name="windowIcon">
<iconset resource="../share/resources/tapeicon.qrc">
<normaloff>:/tapeicon/64x64/logo.png</normaloff>:/tapeicon/64x64/logo.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Preview</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Input</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QTableWidget" name="tableWidgetInput">
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Import</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableWidget" name="tableWidgetImport">
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Columns</string>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="horizontalSpacing">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="labelName">
<property name="text">
<string notr="true">Name:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxName"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelValue">
<property name="text">
<string notr="true">Value:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBoxValue"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="labelShiftA">
<property name="text">
<string notr="true">ShiftA:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxShiftA"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="labelShiftB">
<property name="text">
<string notr="true">ShiftB:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxShiftB"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="labelShiftC">
<property name="text">
<string notr="true">ShiftC:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="comboBoxShiftC"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="labelFullName">
<property name="text">
<string>Full name:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="comboBoxFullName"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="labelDescription">
<property name="text">
<string>Description:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QComboBox" name="comboBoxDescription"/>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="labelStatus">
<property name="text">
<string>Ready</string>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../share/resources/tapeicon.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DialogMeasurementsCSVColumns</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DialogMeasurementsCSVColumns</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -44,31 +44,7 @@ DialogNewMeasurements::DialogNewMeasurements(QWidget *parent)
ui->setupUi(this); ui->setupUi(this);
InitMTypes(); InitMTypes();
InitUnits(MeasurementsType::Individual); InitUnits();
InitHeightsList();
InitSizesList();
const VTapeSettings *settings = qApp->TapeSettings();
const int height = static_cast<int>(UnitConvertor(settings->GetDefHeight(), Unit::Cm, MUnit()));
int index = ui->comboBoxBaseHeight->findText(QString().setNum(height));
if (index != -1)
{
ui->comboBoxBaseHeight->setCurrentIndex(index);
}
const int size = static_cast<int>(UnitConvertor(settings->GetDefSize(), Unit::Cm, MUnit()));
index = ui->comboBoxBaseSize->findText(QString().setNum(size));
if (index != -1)
{
ui->comboBoxBaseSize->setCurrentIndex(index);
}
connect(ui->comboBoxMType, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&DialogNewMeasurements::CurrentTypeChanged);
connect(ui->comboBoxUnit, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&DialogNewMeasurements::CurrentUnitChanged);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -89,18 +65,6 @@ Unit DialogNewMeasurements::MUnit() const
return static_cast<Unit>(ui->comboBoxUnit->currentData().toInt()); return static_cast<Unit>(ui->comboBoxUnit->currentData().toInt());
} }
//---------------------------------------------------------------------------------------------------------------------
int DialogNewMeasurements::BaseSize() const
{
return ui->comboBoxBaseSize->currentText().toInt();
}
//---------------------------------------------------------------------------------------------------------------------
int DialogNewMeasurements::BaseHeight() const
{
return ui->comboBoxBaseHeight->currentText().toInt();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::changeEvent(QEvent *event) void DialogNewMeasurements::changeEvent(QEvent *event)
{ {
@ -109,7 +73,7 @@ void DialogNewMeasurements::changeEvent(QEvent *event)
// retranslate designer form (single inheritance approach) // retranslate designer form (single inheritance approach)
ui->retranslateUi(this); ui->retranslateUi(this);
InitMTypes(); InitMTypes();
InitUnits(static_cast<MeasurementsType>(ui->comboBoxMType->currentData().toInt())); InitUnits();
} }
// remember to call base class implementation // remember to call base class implementation
@ -137,40 +101,6 @@ void DialogNewMeasurements::showEvent(QShowEvent *event)
isInitialized = true;//first show windows are held isInitialized = true;//first show windows are held
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::CurrentTypeChanged(int index)
{
const MeasurementsType type = static_cast<MeasurementsType>(ui->comboBoxMType->itemData(index).toInt());
if (type == MeasurementsType::Multisize)
{
ui->comboBoxBaseSize->setEnabled(true);
ui->comboBoxBaseHeight->setEnabled(true);
}
else
{
ui->comboBoxBaseSize->setEnabled(false);
ui->comboBoxBaseHeight->setEnabled(false);
}
InitUnits(type);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::CurrentUnitChanged(int index)
{
Q_UNUSED(index)
if (MUnit() != Unit::Inch)
{
int i = ui->comboBoxBaseHeight->currentIndex();
InitHeightsList();
ui->comboBoxBaseHeight->setCurrentIndex(i);
i = ui->comboBoxBaseSize->currentIndex();
InitSizesList();
ui->comboBoxBaseSize->setCurrentIndex(i);
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::InitMTypes() void DialogNewMeasurements::InitMTypes()
{ {
@ -194,23 +124,7 @@ void DialogNewMeasurements::InitMTypes()
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::InitHeightsList() void DialogNewMeasurements::InitUnits()
{
const QStringList list = VMeasurement::WholeListHeights(MUnit());
ui->comboBoxBaseHeight->clear();
ui->comboBoxBaseHeight->addItems(list);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::InitSizesList()
{
const QStringList list = VMeasurement::WholeListSizes(MUnit());
ui->comboBoxBaseSize->clear();
ui->comboBoxBaseSize->addItems(list);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogNewMeasurements::InitUnits(const MeasurementsType &type)
{ {
int val = static_cast<int>(Unit::Cm); int val = static_cast<int>(Unit::Cm);
if (ui->comboBoxUnit->currentIndex() != -1) if (ui->comboBoxUnit->currentIndex() != -1)
@ -220,12 +134,11 @@ void DialogNewMeasurements::InitUnits(const MeasurementsType &type)
ui->comboBoxUnit->blockSignals(true); ui->comboBoxUnit->blockSignals(true);
ui->comboBoxUnit->clear(); ui->comboBoxUnit->clear();
ui->comboBoxUnit->addItem(tr("Centimeters"), static_cast<int>(Unit::Cm)); ui->comboBoxUnit->addItem(tr("Centimeters"), static_cast<int>(Unit::Cm));
ui->comboBoxUnit->addItem(tr("Millimiters"), static_cast<int>(Unit::Mm)); ui->comboBoxUnit->addItem(tr("Millimiters"), static_cast<int>(Unit::Mm));
if (type == MeasurementsType::Individual)
{
ui->comboBoxUnit->addItem(tr("Inches"), static_cast<int>(Unit::Inch)); ui->comboBoxUnit->addItem(tr("Inches"), static_cast<int>(Unit::Inch));
}
ui->comboBoxUnit->setCurrentIndex(-1); ui->comboBoxUnit->setCurrentIndex(-1);
ui->comboBoxUnit->blockSignals(false); ui->comboBoxUnit->blockSignals(false);

View File

@ -48,26 +48,18 @@ public:
MeasurementsType Type() const; MeasurementsType Type() const;
Unit MUnit() const; Unit MUnit() const;
int BaseSize() const;
int BaseHeight() const;
protected: protected:
virtual void changeEvent(QEvent* event) override; virtual void changeEvent(QEvent* event) override;
virtual void showEvent(QShowEvent *event) override; virtual void showEvent(QShowEvent *event) override;
private slots:
void CurrentTypeChanged(int index);
void CurrentUnitChanged(int index);
private: private:
Q_DISABLE_COPY(DialogNewMeasurements) Q_DISABLE_COPY(DialogNewMeasurements)
Ui::DialogNewMeasurements *ui; Ui::DialogNewMeasurements *ui;
bool isInitialized; bool isInitialized;
void InitMTypes(); void InitMTypes();
void InitHeightsList(); void InitUnits();
void InitSizesList();
void InitUnits(const MeasurementsType &type);
}; };
#endif // DIALOGNEWMEASUREMENTS_H #endif // DIALOGNEWMEASUREMENTS_H

View File

@ -9,8 +9,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>244</width> <width>220</width>
<height>185</height> <height>104</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -60,64 +60,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Base size:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxBaseSize">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="minimumContentsLength">
<number>3</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Base height:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxBaseHeight">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="minimumContentsLength">
<number>4</number>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>

View File

@ -0,0 +1,655 @@
/************************************************************************
**
** @file dialogrestrictdimension.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 5 10, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "dialogrestrictdimension.h"
#include "ui_dialogrestrictdimension.h"
#include <QTableWidgetItem>
#include "../vpatterndb/variables/vmeasurement.h"
#include "../vwidgets/vdecorationaligningdelegate.h"
namespace
{
//---------------------------------------------------------------------------------------------------------------------
QVector<int> FilterByMinimum(const QVector<int> &base, int restriction)
{
if (restriction <= 0)
{
return base;
}
QVector<int> filtered;
filtered.reserve(base.size());
for(auto &b : base)
{
if (b >= restriction)
{
filtered.append(b);
}
}
return filtered;
}
//---------------------------------------------------------------------------------------------------------------------
QVector<int> FilterByMaximum(const QVector<int> &base, int restriction)
{
if (restriction <= 0)
{
return base;
}
QVector<int> filtered;
filtered.reserve(base.size());
for(auto &b : base)
{
if (b <= restriction)
{
filtered.append(b);
}
}
return filtered;
}
}
//---------------------------------------------------------------------------------------------------------------------
DialogRestrictDimension::DialogRestrictDimension(const QList<MeasurementDimension_p> &dimensions,
const QMap<QString, QPair<int, int>> &restrictions,
bool oneDimesionRestriction, bool fullCircumference,
QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogRestrictDimension),
m_oneDimesionRestriction(oneDimesionRestriction),
m_fullCircumference(fullCircumference),
m_dimensions(dimensions),
m_restrictions(restrictions)
{
ui->setupUi(this);
ui->tableWidget->setItemDelegate(
new VDecorationAligningDelegate(Qt::AlignHCenter | Qt::AlignCenter, ui->tableWidget));
connect(ui->tableWidget, &QTableWidget::itemSelectionChanged, this, &DialogRestrictDimension::RowSelected);
connect(ui->comboBoxDimensionA, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&DialogRestrictDimension::DimensionAChanged);
connect(ui->comboBoxMin, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&DialogRestrictDimension::MinRestrictionChanged);
connect(ui->comboBoxMax, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&DialogRestrictDimension::MaxRestrictionChanged);
InitDimensionsBaseValues();
InitTable();
}
//---------------------------------------------------------------------------------------------------------------------
DialogRestrictDimension::~DialogRestrictDimension()
{
delete ui;
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange)
{
// retranslate designer form (single inheritance approach)
ui->retranslateUi(this);
auto RetranslateControls = [this](int index, QLabel *name, QComboBox *control)
{
SCASSERT(name != nullptr)
SCASSERT(control != nullptr)
if (m_dimensions.size() > index)
{
MeasurementDimension_p dimension = m_dimensions.at(index);
name->setText(VAbstartMeasurementDimension::DimensionName(dimension->Type())+QChar(':'));
name->setToolTip(VAbstartMeasurementDimension::DimensionToolTip(dimension->Type(),
dimension->IsCircumference(),
m_fullCircumference));
InitDimensionGradation(dimension, control);
}
};
if (not m_oneDimesionRestriction)
{
RetranslateControls(0, ui->labelDimensionA, ui->comboBoxDimensionA);
}
}
// remember to call base class implementation
QDialog::changeEvent(event);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::RowSelected()
{
EnableRestrictionControls(false);
QTableWidgetItem *item = ui->tableWidget->currentItem();
if (item)
{
int base1 = 0;
int base2 = 0;
MeasurementDimension_p dimension;
if (m_oneDimesionRestriction)
{
base1 = item->data(Qt::UserRole).toInt();
if (m_dimensions.size() > 1)
{
dimension = m_dimensions.at(1);
}
}
else
{
base1 = ui->comboBoxDimensionA->currentData().toInt();
base2 = item->data(Qt::UserRole).toInt();
if (m_dimensions.size() > 2)
{
dimension = m_dimensions.at(2);
}
}
QPair<int, int> restriction = m_restrictions.value(VMeasurement::CorrectionHash(base1, base2),
QPair<int, int>(0, 0));
if (dimension.isNull())
{
return;
}
const QVector<int> bases = dimension->ValidBases();
ui->comboBoxMin->blockSignals(true);
ui->comboBoxMin->clear();
QVector<int> filtered = FilterByMaximum(bases, restriction.second);
FillBases(filtered, dimension, ui->comboBoxMin);
int index = ui->comboBoxMin->findData(restriction.first);
ui->comboBoxMin->setCurrentIndex(index != -1 ? index : 0);
ui->comboBoxMin->blockSignals(false);
ui->comboBoxMax->blockSignals(true);
ui->comboBoxMax->clear();
filtered = FilterByMinimum(bases, restriction.first);
FillBases(FilterByMinimum(bases, restriction.first), dimension, ui->comboBoxMax);
index = ui->comboBoxMax->findData(restriction.second);
ui->comboBoxMax->setCurrentIndex(index != -1 ? index : ui->comboBoxMax->count() - 1);
ui->comboBoxMax->blockSignals(false);
EnableRestrictionControls(true);
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::DimensionAChanged()
{
InitTable();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::MinRestrictionChanged()
{
QTableWidgetItem *item = ui->tableWidget->currentItem();
if (item)
{
int base1 = 0;
int base2 = 0;
if (m_oneDimesionRestriction)
{
base1 = item->data(Qt::UserRole).toInt();
}
else
{
base1 = ui->comboBoxDimensionA->currentData().toInt();
base2 = item->data(Qt::UserRole).toInt();
}
const QString coordinates = VMeasurement::CorrectionHash(base1, base2);
QPair<int, int> restriction = m_restrictions.value(coordinates, QPair<int, int>(0, 0));
restriction.first = ui->comboBoxMin->currentData().toInt();
m_restrictions.insert(coordinates, restriction);
const int currentRow = ui->tableWidget->currentRow();
RefreshTable();
ui->tableWidget->blockSignals(true);
ui->tableWidget->selectRow(currentRow);
ui->tableWidget->blockSignals(false);
RowSelected();
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::MaxRestrictionChanged()
{
QTableWidgetItem *item = ui->tableWidget->currentItem();
if (item)
{
int base1 = 0;
int base2 = 0;
if (m_oneDimesionRestriction)
{
base1 = item->data(Qt::UserRole).toInt();
}
else
{
base1 = ui->comboBoxDimensionA->currentData().toInt();
base2 = item->data(Qt::UserRole).toInt();
}
const QString coordinates = VMeasurement::CorrectionHash(base1, base2);
QPair<int, int> restriction = m_restrictions.value(coordinates, QPair<int, int>(0, 0));
restriction.second = ui->comboBoxMax->currentData().toInt();
m_restrictions.insert(coordinates, restriction);
const int currentRow = ui->tableWidget->currentRow();
RefreshTable();
ui->tableWidget->blockSignals(true);
ui->tableWidget->selectRow(currentRow);
ui->tableWidget->blockSignals(false);
RowSelected();
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::InitDimensionsBaseValues()
{
auto DimensionsBaseValue = [this](int index, QLabel *name, QComboBox *control)
{
SCASSERT(name != nullptr)
SCASSERT(control != nullptr)
if (m_dimensions.size() > index)
{
MeasurementDimension_p dimension = m_dimensions.at(index);
const QString unit = UnitsToStr(dimension->Units(), true);
name->setText(VAbstartMeasurementDimension::DimensionName(dimension->Type())+QChar(':'));
name->setToolTip(VAbstartMeasurementDimension::DimensionToolTip(dimension->Type(),
dimension->IsCircumference(),
m_fullCircumference));
InitDimensionGradation(dimension, control);
}
};
if (not m_oneDimesionRestriction)
{
if (m_dimensions.size() > 0)
{
DimensionsBaseValue(0, ui->labelDimensionA, ui->comboBoxDimensionA);
}
else
{
ui->labelDimensionA->setVisible(false);
ui->comboBoxDimensionA->setVisible(false);
}
}
else
{
ui->labelDimensionA->setVisible(false);
ui->comboBoxDimensionA->setVisible(false);
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::InitDimensionGradation(const MeasurementDimension_p &dimension, QComboBox *control)
{
SCASSERT(control != nullptr)
int current = -1;
if (control->currentIndex() != -1)
{
current = control->currentData().toInt();
}
control->blockSignals(true);
control->clear();
FillBases(dimension->ValidBases(), dimension, control);
int i = control->findData(current);
if (i != -1)
{
control->setCurrentIndex(i);
control->blockSignals(false);
}
else
{
control->blockSignals(false);
control->setCurrentIndex(0);
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::InitTable()
{
ui->tableWidget->blockSignals(true);
ui->tableWidget->clear();
auto InitHeaders = [this](int index)
{
if (m_dimensions.size() > index)
{
MeasurementDimension_p dimensionA = m_dimensions.at(index-1);
const QVector<int> basesA = dimensionA->ValidBases();
ui->tableWidget->setRowCount(basesA.size());
ui->tableWidget->setVerticalHeaderLabels(DimensionLabels(basesA, dimensionA));
MeasurementDimension_p dimensionB = m_dimensions.at(index);
const QVector<int> basesB = dimensionB->ValidBases();
ui->tableWidget->setColumnCount(basesB.size());
ui->tableWidget->setHorizontalHeaderLabels(DimensionLabels(basesB, dimensionB));
}
};
InitHeaders(m_oneDimesionRestriction ? 1 : 2);
ui->tableWidget->blockSignals(false);
RefreshTable();
ui->tableWidget->selectRow(0);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::RefreshTable()
{
QVector<int> basesRow;
QVector<int> basesColumn;
if (m_oneDimesionRestriction)
{
if (m_dimensions.size() >= 2)
{
MeasurementDimension_p dimensionA = m_dimensions.at(0);
basesRow = dimensionA->ValidBases();
MeasurementDimension_p dimensionB = m_dimensions.at(1);
basesColumn = dimensionB->ValidBases();
}
else
{
return;
}
}
else
{
if (m_dimensions.size() >= 3)
{
MeasurementDimension_p dimensionA = m_dimensions.at(1);
basesRow = dimensionA->ValidBases();
MeasurementDimension_p dimensionB = m_dimensions.at(2);
basesColumn = dimensionB->ValidBases();
}
else
{
return;
}
}
ui->tableWidget->blockSignals(true);
ui->tableWidget->clearContents();
for(int row=0; row < basesRow.size(); ++row)
{
for(int column=0; column < basesColumn.size(); ++column)
{
AddCell(row, column, basesRow.at(row), basesColumn.at(column));
}
}
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->blockSignals(false);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::AddCell(int row, int column, int rowValue, int columnValue)
{
auto *item = new QTableWidgetItem();
item->setData(Qt::UserRole, rowValue);
int base1 = 0;
int base2 = 0;
MeasurementDimension_p dimension;
QVector<int> bases;
if (m_oneDimesionRestriction)
{
base1 = rowValue;
if (m_dimensions.size() >= 2)
{
dimension = m_dimensions.at(1);
bases = dimension->ValidBases();
}
}
else
{
base1 = ui->comboBoxDimensionA->currentData().toInt();
base2 = rowValue;
if (m_dimensions.size() >= 3)
{
dimension = m_dimensions.at(2);
bases = dimension->ValidBases();
}
}
QPair<int, int> restriction = m_restrictions.value(VMeasurement::CorrectionHash(base1, base2),
QPair<int, int>(0, 0));
int min = INT32_MIN;
int max = INT32_MAX;
if (not dimension.isNull())
{
min = bases.indexOf(restriction.first) != -1 ? restriction.first : dimension->MinValue();
max = bases.indexOf(restriction.second) != -1 ? restriction.second : dimension->MaxValue();
if (max < min)
{
min = dimension->MinValue();
max = dimension->MaxValue();
}
}
const bool leftRestriction = columnValue >= min;
const bool rightRestriction = columnValue <= max;
if (leftRestriction && rightRestriction)
{
item->setIcon(QIcon("://icon/24x24/star.png"));
}
else
{
item->setIcon(QIcon("://icon/24x24/close.png"));
}
// 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);
ui->tableWidget->setItem(row, column, item);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::EnableRestrictionControls(bool enable)
{
if (not enable)
{
ui->comboBoxMin->blockSignals(true);
ui->comboBoxMin->setCurrentIndex(-1);
ui->comboBoxMin->blockSignals(false);
ui->comboBoxMax->blockSignals(true);
ui->comboBoxMax->setCurrentIndex(-1);
ui->comboBoxMax->blockSignals(false);
}
ui->groupBoxRestriction->setEnabled(enable);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogRestrictDimension::FillBases(const QVector<int> &bases, const MeasurementDimension_p &dimension,
QComboBox *control)
{
SCASSERT(control != nullptr)
const DimesionLabels labels = dimension->Labels();
const QString units = UnitsToStr(dimension->Units(), true);
if (dimension->Type() == MeasurementDimension::X)
{
for(auto base : bases)
{
if (labels.contains(base) && not labels.value(base).isEmpty())
{
control->addItem(labels.value(base), base);
}
else
{
control->addItem(QString("%1 %2").arg(base).arg(units), base);
}
}
}
else if (dimension->Type() == MeasurementDimension::Y)
{
for(auto base : bases)
{
if (labels.contains(base) && not labels.value(base).isEmpty())
{
control->addItem(labels.value(base), base);
}
else
{
if (dimension->IsCircumference())
{
control->addItem(QString("%1 %2").arg(m_fullCircumference ? base*2 : base).arg(units), base);
}
else
{
control->addItem(QString::number(base), base);
}
}
}
}
else if (dimension->Type() == MeasurementDimension::W || dimension->Type() == MeasurementDimension::Z)
{
for(auto base : bases)
{
if (labels.contains(base) && not labels.value(base).isEmpty())
{
control->addItem(labels.value(base), base);
}
else
{
control->addItem(QString("%1 %2").arg(m_fullCircumference ? base*2 : base).arg(units), base);
}
}
}
}
//---------------------------------------------------------------------------------------------------------------------
QStringList DialogRestrictDimension::DimensionLabels(const QVector<int> &bases, const MeasurementDimension_p &dimension)
{
const bool showUnits = dimension->IsCircumference() || dimension->Type() == MeasurementDimension::X;
const QString units = showUnits ? UnitsToStr(dimension->Units(), true) : QString();
const DimesionLabels dimensionLabels = dimension->Labels();
QStringList labels;
if (dimension->Type() == MeasurementDimension::X)
{
for(auto base : bases)
{
if (dimensionLabels.contains(base) && not dimensionLabels.value(base).isEmpty())
{
labels.append(dimensionLabels.value(base));
}
else
{
labels.append(QString("%1 %2").arg(base).arg(units));
}
}
}
else if (dimension->Type() == MeasurementDimension::Y)
{
for(auto base : bases)
{
if (dimensionLabels.contains(base) && not dimensionLabels.value(base).isEmpty())
{
labels.append(dimensionLabels.value(base));
}
else
{
if (dimension->IsCircumference())
{
labels.append(QString("%1 %2").arg(m_fullCircumference ? base*2 : base).arg(units));
}
else
{
labels.append(QString::number(base));
}
}
}
}
else if (dimension->Type() == MeasurementDimension::W || dimension->Type() == MeasurementDimension::Z)
{
for(auto base : bases)
{
if (dimensionLabels.contains(base) && not dimensionLabels.value(base).isEmpty())
{
labels.append(dimensionLabels.value(base));
}
else
{
labels.append(QString("%1 %2").arg(m_fullCircumference ? base*2 : base).arg(units));
}
}
}
return labels;
}

View File

@ -0,0 +1,95 @@
/************************************************************************
**
** @file dialogrestrictdimension.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 5 10, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef DIALOGRESTRICTDIMENSION_H
#define DIALOGRESTRICTDIMENSION_H
#include <QDialog>
#include <QMap>
#include "../vformat/vdimensions.h"
namespace Ui
{
class DialogRestrictDimension;
}
class QTableWidgetItem;
class DialogRestrictDimension : public QDialog
{
Q_OBJECT
public:
DialogRestrictDimension(const QList<MeasurementDimension_p> &dimensions,
const QMap<QString, QPair<int, int>> &restrictions, bool oneDimesionRestriction,
bool fullCircumference, QWidget *parent = nullptr);
virtual ~DialogRestrictDimension();
QMap<QString, QPair<int, int> > Restrictions() const;
protected:
virtual void changeEvent(QEvent* event) override;
protected slots:
void RowSelected();
void DimensionAChanged();
void MinRestrictionChanged();
void MaxRestrictionChanged();
private:
Q_DISABLE_COPY(DialogRestrictDimension)
Ui::DialogRestrictDimension *ui;
bool m_oneDimesionRestriction;
bool m_fullCircumference;
QList<MeasurementDimension_p> m_dimensions;
QMap<QString, QPair<int, int>> m_restrictions;
void InitDimensionsBaseValues();
void InitDimensionGradation(const MeasurementDimension_p &dimension, QComboBox *control);
void InitTable();
void RefreshTable();
void AddCell(int row, int column, int rowValue, int columnValue);
void EnableRestrictionControls(bool enable);
void FillBases(const QVector<int> &bases, const MeasurementDimension_p &dimension, QComboBox *control);
QStringList DimensionLabels(const QVector<int> &bases, const MeasurementDimension_p &dimension);
};
//---------------------------------------------------------------------------------------------------------------------
inline QMap<QString, QPair<int, int> > DialogRestrictDimension::Restrictions() const
{
return m_restrictions;
}
#endif // DIALOGRESTRICTDIMENSION_H

View File

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DialogRestrictDimension</class>
<widget class="QDialog" name="DialogRestrictDimension">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>699</width>
<height>566</height>
</rect>
</property>
<property name="windowTitle">
<string>Restrict dimension</string>
</property>
<property name="windowIcon">
<iconset resource="../share/resources/tapeicon.qrc">
<normaloff>:/tapeicon/64x64/logo.png</normaloff>:/tapeicon/64x64/logo.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QLabel" name="labelDimensionA">
<property name="text">
<string>Dimension A:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="comboBoxDimensionA"/>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>4</verstretch>
</sizepolicy>
</property>
<property name="editTriggers">
<set>QAbstractItemView::CurrentChanged|QAbstractItemView::SelectedClicked</set>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBoxRestriction">
<property name="enabled">
<bool>false</bool>
</property>
<property name="title">
<string>Restriction</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Min:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxMin"/>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Max:</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QComboBox" name="comboBoxMax"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../share/resources/tapeicon.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DialogRestrictDimension</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DialogRestrictDimension</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -0,0 +1,604 @@
/************************************************************************
**
** @file dialogsetupmultisize.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 26 9, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "dialogsetupmultisize.h"
#include "ui_dialogsetupmultisize.h"
#include <QPushButton>
#include <QShowEvent>
#include "../mapplication.h"
#include "../vmisc/backport/qoverload.h"
//---------------------------------------------------------------------------------------------------------------------
DialogSetupMultisize::DialogSetupMultisize(Unit unit, QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogSetupMultisize),
m_xDimension(QSharedPointer<VXMeasurementDimension>::create(unit)),
m_yDimension(QSharedPointer<VYMeasurementDimension>::create(unit)),
m_wDimension(QSharedPointer<VWMeasurementDimension>::create(unit)),
m_zDimension(QSharedPointer<VZMeasurementDimension>::create(unit))
{
ui->setupUi(this);
ui->labelError->clear();
ui->checkBoxYDimensionCircumference->setChecked(m_yDimension->IsCircumference());
InitXDimension();
InitYDimension();
InitWDimension();
InitZDimension();
// height
connect(ui->spinBoxXDimensionMinValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMinValueChanged(value, ui->spinBoxXDimensionMaxValue, ui->comboBoxXDimensionStep,
ui->comboBoxXDimensionBase, m_xDimension);
});
connect(ui->spinBoxXDimensionMaxValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMaxValueChanged(value, ui->spinBoxXDimensionMinValue, ui->comboBoxXDimensionStep,
ui->comboBoxXDimensionBase, m_xDimension);
});
connect(ui->comboBoxXDimensionStep, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionStepChanged(index, ui->comboBoxXDimensionStep, ui->comboBoxXDimensionBase, m_xDimension);
});
connect(ui->comboBoxXDimensionBase, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionBaseChanged(index, ui->comboBoxXDimensionBase, m_xDimension);
});
// size
connect(ui->spinBoxYDimensionMinValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMinValueChanged(value, ui->spinBoxYDimensionMaxValue, ui->comboBoxYDimensionStep,
ui->comboBoxYDimensionBase, m_yDimension);
});
connect(ui->spinBoxYDimensionMaxValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMaxValueChanged(value, ui->spinBoxYDimensionMinValue, ui->comboBoxYDimensionStep,
ui->comboBoxYDimensionBase, m_yDimension);
});
connect(ui->comboBoxYDimensionStep, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionStepChanged(index, ui->comboBoxYDimensionStep, ui->comboBoxYDimensionBase, m_yDimension);
});
connect(ui->comboBoxYDimensionBase, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionBaseChanged(index, ui->comboBoxYDimensionBase, m_yDimension);
});
// hip
connect(ui->spinBoxWDimensionMinValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMinValueChanged(value, ui->spinBoxWDimensionMaxValue, ui->comboBoxWDimensionStep,
ui->comboBoxWDimensionBase, m_wDimension);
});
connect(ui->spinBoxWDimensionMaxValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMaxValueChanged(value, ui->spinBoxWDimensionMinValue, ui->comboBoxWDimensionStep,
ui->comboBoxWDimensionBase, m_wDimension);
});
connect(ui->comboBoxWDimensionStep, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionStepChanged(index, ui->comboBoxWDimensionStep, ui->comboBoxWDimensionBase, m_wDimension);
});
connect(ui->comboBoxWDimensionBase, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionBaseChanged(index, ui->comboBoxWDimensionBase, m_wDimension);
});
// waist
connect(ui->spinBoxZDimensionMinValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMinValueChanged(value, ui->spinBoxZDimensionMaxValue, ui->comboBoxZDimensionStep,
ui->comboBoxZDimensionBase, m_zDimension);
});
connect(ui->spinBoxZDimensionMaxValue, QOverload<int>::of(&QSpinBox::valueChanged),
this, [this](int value)
{
DimensionMaxValueChanged(value, ui->spinBoxZDimensionMinValue, ui->comboBoxZDimensionStep,
ui->comboBoxZDimensionBase, m_zDimension);
});
connect(ui->comboBoxZDimensionStep, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionStepChanged(index, ui->comboBoxZDimensionStep, ui->comboBoxZDimensionBase, m_zDimension);
});
connect(ui->comboBoxZDimensionBase, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, [this](int index)
{
DimensionBaseChanged(index, ui->comboBoxZDimensionBase, m_zDimension);
});
connect(ui->groupBoxXDimension, &QGroupBox::clicked, this, [this](){CheckState();});
connect(ui->groupBoxYDimension, &QGroupBox::clicked, this, [this](){CheckState();});
connect(ui->groupBoxWDimension, &QGroupBox::clicked, this, [this](){CheckState();});
connect(ui->groupBoxZDimension, &QGroupBox::clicked, this, [this](){CheckState();});
connect(ui->checkBoxFullCircumference, &QCheckBox::stateChanged,
this, &DialogSetupMultisize::ShowFullCircumference);
connect(ui->checkBoxYDimensionCircumference, &QCheckBox::stateChanged,
this, &DialogSetupMultisize::YDimensionCircumferenceChanged);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
DialogSetupMultisize::~DialogSetupMultisize()
{
delete ui;
}
//---------------------------------------------------------------------------------------------------------------------
QVector<MeasurementDimension_p> DialogSetupMultisize::Dimensions() const
{
QVector<MeasurementDimension_p> dimensions;
if (ui->groupBoxXDimension->isChecked())
{
dimensions.append(m_xDimension);
}
if (ui->groupBoxYDimension->isChecked())
{
dimensions.append(m_yDimension);
}
if (ui->groupBoxWDimension->isChecked())
{
dimensions.append(m_wDimension);
}
if (ui->groupBoxZDimension->isChecked())
{
dimensions.append(m_zDimension);
}
return dimensions;
}
//---------------------------------------------------------------------------------------------------------------------
bool DialogSetupMultisize::FullCircumference() const
{
return ui->checkBoxFullCircumference->isChecked();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange)
{
// retranslate designer form (single inheritance approach)
ui->retranslateUi(this);
}
// remember to call base class implementation
QDialog::changeEvent(event);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::showEvent(QShowEvent *event)
{
QDialog::showEvent( event );
if ( event->spontaneous() )
{
return;
}
if (m_isInitialized)
{
return;
}
// do your init stuff here
setMaximumSize(size());
setMinimumSize(size());
m_isInitialized = true;//first show windows are held
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::ShowFullCircumference()
{
auto ShowDimensionFullCircumference = [this](QSpinBox *spinboxMinValue, QSpinBox *spinboxMaxValue,
QComboBox *comboBoxStep, QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension)
{
SCASSERT(spinboxMinValue != nullptr)
SCASSERT(spinboxMaxValue != nullptr)
SCASSERT(comboBoxStep != nullptr)
SCASSERT(comboBoxBase != nullptr)
InitDimension(spinboxMinValue, spinboxMaxValue, comboBoxStep, dimension);
UpdateBase(comboBoxBase, dimension);
comboBoxBase->blockSignals(true);
comboBoxBase->setCurrentIndex(-1);
comboBoxBase->blockSignals(false);
};
ShowDimensionFullCircumference(ui->spinBoxYDimensionMinValue, ui->spinBoxYDimensionMaxValue,
ui->comboBoxYDimensionStep, ui->comboBoxYDimensionBase, m_yDimension);
ShowDimensionFullCircumference(ui->spinBoxWDimensionMinValue, ui->spinBoxWDimensionMaxValue,
ui->comboBoxWDimensionStep, ui->comboBoxWDimensionBase, m_wDimension);
ShowDimensionFullCircumference(ui->spinBoxZDimensionMinValue, ui->spinBoxZDimensionMaxValue,
ui->comboBoxZDimensionStep, ui->comboBoxZDimensionBase, m_zDimension);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::YDimensionCircumferenceChanged()
{
bool checked = ui->checkBoxYDimensionCircumference->isChecked();
m_yDimension->SetCircumference(checked);
const bool c = m_yDimension->IsCircumference();
const QString unitStr = c ? " " + UnitsToStr(m_yDimension->Units()) : QString();
ui->spinBoxYDimensionMinValue->setSuffix(unitStr);
ui->spinBoxYDimensionMaxValue->setSuffix(unitStr);
InitDimension(ui->spinBoxYDimensionMinValue, ui->spinBoxYDimensionMaxValue, ui->comboBoxYDimensionStep,
m_yDimension);
UpdateBase(ui->comboBoxYDimensionBase, m_yDimension);
ui->comboBoxYDimensionBase->blockSignals(true);
ui->comboBoxYDimensionBase->setCurrentIndex(-1);
ui->comboBoxYDimensionBase->blockSignals(false);
bool ok = false;
const int base = ui->comboBoxYDimensionBase->currentData().toInt(&ok);
m_yDimension->SetBaseValue(ok ? base : -1);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::CheckState()
{
ui->labelError->clear();
bool xDimensionValid = true;
bool yDimensionValid = true;
bool wDimensionValid = true;
bool zDimensionValid = true;
int dimensions = 0;
auto CheckDimension = [this](QGroupBox *group, bool &dimensionValid, int &dimensions,
const MeasurementDimension_p &dimension)
{
SCASSERT(group != nullptr)
if (group->isChecked())
{
dimensionValid = dimension->IsValid();
++dimensions;
if (ui->labelError->text().isEmpty() && not dimensionValid)
{
ui->labelError->setText(tr("Please, provide correct data for dimensions"));
}
}
};
CheckDimension(ui->groupBoxXDimension, xDimensionValid, dimensions, m_xDimension);
CheckDimension(ui->groupBoxYDimension, yDimensionValid, dimensions, m_yDimension);
CheckDimension(ui->groupBoxWDimension, wDimensionValid, dimensions, m_wDimension);
CheckDimension(ui->groupBoxZDimension, zDimensionValid, dimensions, m_zDimension);
if (ui->labelError->text().isEmpty() && dimensions == 0)
{
ui->labelError->setText(tr("Please, select at least one dimension"));
}
else if (ui->labelError->text().isEmpty() && dimensions > 3)
{
ui->labelError->setText(tr("No more than 3 dimensions allowed"));
}
const bool enough = dimensions > 0 && dimensions <= 3;
QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
SCASSERT(bOk != nullptr)
bOk->setEnabled(enough && xDimensionValid && yDimensionValid && wDimensionValid && zDimensionValid);
if (ui->labelError->text().isEmpty())
{
ui->labelError->setText(tr("Ready"));
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitDimensionMinMax(QSpinBox *spinboxMinValue, QSpinBox *spinboxMaxValue,
const MeasurementDimension_p &dimension)
{
SCASSERT(spinboxMinValue != nullptr)
SCASSERT(spinboxMaxValue != nullptr)
dimension->SetMinValue(dimension->RangeMin());
dimension->SetMaxValue(dimension->RangeMax());
const bool fc = ui->checkBoxFullCircumference->isChecked();
const bool c = dimension->IsCircumference();
spinboxMinValue->blockSignals(true);
const QString unitStr = " " + UnitsToStr(dimension->Units());
if (c || dimension->Type() == MeasurementDimension::X)
{
spinboxMinValue->setSuffix(unitStr);
}
spinboxMinValue->setMinimum(c && fc ? dimension->RangeMin()*2 : dimension->RangeMin());
spinboxMinValue->setMaximum(c && fc ? dimension->MaxValue()*2 : dimension->MaxValue());
spinboxMinValue->setValue(c && fc ? dimension->MinValue()*2 : dimension->MinValue());
spinboxMinValue->blockSignals(false);
spinboxMaxValue->blockSignals(true);
if (c || dimension->Type() == MeasurementDimension::X)
{
spinboxMaxValue->setSuffix(unitStr);
}
spinboxMaxValue->setMinimum(c && fc ? dimension->MinValue()*2 : dimension->MinValue());
spinboxMaxValue->setMaximum(c && fc ? dimension->RangeMax()*2 : dimension->RangeMax());
spinboxMaxValue->setValue(c && fc ? dimension->RangeMax()*2 : dimension->RangeMax());
spinboxMaxValue->setValue(c && fc ? dimension->MaxValue()*2 : dimension->MaxValue());
spinboxMaxValue->blockSignals(false);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitDimensionStep(QComboBox *comboBoxStep,
const MeasurementDimension_p &dimension)
{
SCASSERT(comboBoxStep != nullptr)
const bool fc = ui->checkBoxFullCircumference->isChecked();
const bool c = dimension->IsCircumference();
const QString unitStr = " " + UnitsToStr(dimension->Units());
dimension->SetStep(-1);
comboBoxStep->blockSignals(true);
const QVector<int> steps = dimension->ValidSteps();
comboBoxStep->clear();
for(auto step : steps)
{
comboBoxStep->addItem(QString("%1%2").arg(c && fc ? step*2 : step)
.arg(c || dimension->Type() == MeasurementDimension::X ? unitStr : QString()), step);
}
comboBoxStep->setCurrentIndex(-1); // force a user to select
comboBoxStep->blockSignals(false);
bool ok = false;
const int step = comboBoxStep->currentData().toInt(&ok);
dimension->SetStep(ok ? step : -1);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitDimension(QSpinBox *spinboxMinValue, QSpinBox *spinboxMaxValue, QComboBox *comboBoxStep,
const MeasurementDimension_p &dimension)
{
InitDimensionMinMax(spinboxMinValue, spinboxMaxValue, dimension);
InitDimensionStep(comboBoxStep, dimension);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitXDimension()
{
InitDimension(ui->spinBoxXDimensionMinValue, ui->spinBoxXDimensionMaxValue, ui->comboBoxXDimensionStep,
m_xDimension);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitYDimension()
{
InitDimension(ui->spinBoxYDimensionMinValue, ui->spinBoxYDimensionMaxValue, ui->comboBoxYDimensionStep,
m_yDimension);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitWDimension()
{
InitDimension(ui->spinBoxWDimensionMinValue, ui->spinBoxWDimensionMaxValue, ui->comboBoxWDimensionStep,
m_wDimension);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::InitZDimension()
{
InitDimension(ui->spinBoxZDimensionMinValue, ui->spinBoxZDimensionMaxValue, ui->comboBoxZDimensionStep,
m_zDimension);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::DimensionMinValueChanged(int value, QSpinBox *spinboxMaxValue, QComboBox *comboBoxStep,
QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension)
{
SCASSERT(spinboxMaxValue != nullptr)
SCASSERT(comboBoxStep != nullptr)
SCASSERT(comboBoxBase != nullptr)
const bool fc = ui->checkBoxFullCircumference->isChecked();
const bool c = dimension->IsCircumference();
dimension->SetMinValue(c && fc ? value / 2 : value);
spinboxMaxValue->blockSignals(true);
spinboxMaxValue->setMinimum(value);
spinboxMaxValue->blockSignals(false);
dimension->SetMaxValue(c && fc ? spinboxMaxValue->value() / 2 : spinboxMaxValue->value());
UpdateSteps(comboBoxStep, dimension);
UpdateBase(comboBoxBase, dimension);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::DimensionMaxValueChanged(int value, QSpinBox *spinboxMinValue, QComboBox *comboBoxStep,
QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension)
{
SCASSERT(spinboxMinValue != nullptr)
SCASSERT(comboBoxStep != nullptr)
SCASSERT(comboBoxBase != nullptr)
const bool fc = ui->checkBoxFullCircumference->isChecked();
const bool c = dimension->IsCircumference();
dimension->SetMaxValue(c && fc ? value / 2 : value);
spinboxMinValue->blockSignals(true);
spinboxMinValue->setMaximum(value);
spinboxMinValue->blockSignals(false);
dimension->SetMinValue(c && fc ? spinboxMinValue->value() / 2 : spinboxMinValue->value());
UpdateSteps(comboBoxStep, dimension);
UpdateBase(comboBoxBase, dimension);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::DimensionStepChanged(int index, QComboBox *comboBoxStep, QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension)
{
SCASSERT(comboBoxStep != nullptr)
SCASSERT(comboBoxBase != nullptr)
bool ok = false;
const int step = comboBoxStep->itemData(index).toInt(&ok);
dimension->SetStep(ok ? step : -1);
UpdateBase(comboBoxBase, dimension);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::DimensionBaseChanged(int index, QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension)
{
SCASSERT(comboBoxBase != nullptr)
bool ok = false;
const int base = comboBoxBase->itemData(index).toInt(&ok);
dimension->SetBaseValue(ok ? base : -1);
CheckState();
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::UpdateSteps(QComboBox *comboBoxStep,
const MeasurementDimension_p &dimension)
{
SCASSERT(comboBoxStep != nullptr)
int oldStep = -1;
if (comboBoxStep->currentIndex() != -1)
{
oldStep = comboBoxStep->currentData().toInt();
}
comboBoxStep->blockSignals(true);
const QString unitStr = " " + UnitsToStr(dimension->Units());
const QVector<int> steps = dimension->ValidSteps();
comboBoxStep->clear();
const bool fc = ui->checkBoxFullCircumference->isChecked();
const bool c = dimension->IsCircumference();
for(auto step : steps)
{
comboBoxStep->addItem(QString("%1%2").arg(c && fc ? step * 2 : step)
.arg(c ? unitStr : QString()), step);
}
comboBoxStep->setCurrentIndex(comboBoxStep->findData(oldStep));
comboBoxStep->blockSignals(false);
bool ok = false;
const int step = comboBoxStep->currentData().toInt(&ok);
dimension->SetStep(ok ? step : -1);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogSetupMultisize::UpdateBase(QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension)
{
SCASSERT(comboBoxBase != nullptr)
int oldBase = -1;
if (comboBoxBase->currentIndex() != -1)
{
oldBase = comboBoxBase->currentData().toInt();
}
comboBoxBase->blockSignals(true);
const QString unitStr = " " + UnitsToStr(dimension->Units());
const QVector<int> bases = dimension->ValidBases();
comboBoxBase->clear();
const bool fc = ui->checkBoxFullCircumference->isChecked();
const bool c = dimension->IsCircumference();
for(auto base : bases)
{
comboBoxBase->addItem(QString("%1%2").arg(c && fc ? base * 2 : base)
.arg(c || dimension->Type() == MeasurementDimension::X ? unitStr : QString()), base);
}
comboBoxBase->setCurrentIndex(comboBoxBase->findData(oldBase));
comboBoxBase->blockSignals(false);
bool ok = false;
const int base = comboBoxBase->currentData().toInt(&ok);
dimension->SetBaseValue(ok ? base : -1);
}

View File

@ -0,0 +1,101 @@
/************************************************************************
**
** @file dialogsetupmultisize.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 26 9, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef DIALOGSETUPMULTISIZE_H
#define DIALOGSETUPMULTISIZE_H
#include <QDialog>
#include "../vformat/vdimensions.h"
#include "../vmisc/def.h"
class QSpinBox;
namespace Ui
{
class DialogSetupMultisize;
}
class DialogSetupMultisize : public QDialog
{
Q_OBJECT
public:
explicit DialogSetupMultisize(Unit unit, QWidget *parent = nullptr);
~DialogSetupMultisize();
QVector<MeasurementDimension_p> Dimensions() const;
bool FullCircumference() const;
protected:
virtual void changeEvent(QEvent* event) override;
virtual void showEvent(QShowEvent *event) override;
private slots:
void ShowFullCircumference();
void YDimensionCircumferenceChanged();
private:
Q_DISABLE_COPY(DialogSetupMultisize)
Ui::DialogSetupMultisize *ui;
bool m_isInitialized{false};
QSharedPointer<VXMeasurementDimension> m_xDimension;
QSharedPointer<VYMeasurementDimension> m_yDimension;
QSharedPointer<VWMeasurementDimension> m_wDimension;
QSharedPointer<VZMeasurementDimension> m_zDimension;
void CheckState();
void InitDimensionMinMax(QSpinBox *spinboxMinValue, QSpinBox *spinboxMaxValue,
const MeasurementDimension_p &dimension);
void InitDimensionStep(QComboBox *comboBoxStep,const MeasurementDimension_p &dimension);
void InitDimension(QSpinBox *spinboxMinValue, QSpinBox *spinboxMaxValue, QComboBox *comboBoxStep,
const MeasurementDimension_p &dimension);
void InitXDimension();
void InitYDimension();
void InitWDimension();
void InitZDimension();
void DimensionMinValueChanged(int value, QSpinBox *spinboxMaxValue, QComboBox *comboBoxStep,
QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension);
void DimensionMaxValueChanged(int value, QSpinBox *spinboxMinValue, QComboBox *comboBoxStep,
QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension);
void DimensionStepChanged(int index, QComboBox *comboBoxStep, QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension);
void DimensionBaseChanged(int index, QComboBox *comboBoxBase,
const MeasurementDimension_p &dimension);
void UpdateSteps(QComboBox *comboBoxStep, const MeasurementDimension_p &dimension);
void UpdateBase(QComboBox *comboBoxBase, const MeasurementDimension_p &dimension);
};
#endif // DIALOGSETUPMULTISIZE_H

View File

@ -0,0 +1,480 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DialogSetupMultisize</class>
<widget class="QDialog" name="DialogSetupMultisize">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>734</width>
<height>289</height>
</rect>
</property>
<property name="windowTitle">
<string>Setup multisize measurements</string>
</property>
<property name="windowIcon">
<iconset resource="../share/resources/tapeicon.qrc">
<normaloff>:/tapeicon/64x64/logo.png</normaloff>:/tapeicon/64x64/logo.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QCheckBox" name="checkBoxFullCircumference">
<property name="text">
<string>Use full circumference</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="groupBoxXDimension">
<property name="title">
<string comment="dimension">Height</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Min value:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBoxXDimensionMinValue">
<property name="toolTip">
<string>Minimal value described in the column</string>
</property>
<property name="suffix">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Max value:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxXDimensionMaxValue">
<property name="toolTip">
<string>Maximal value described in the column</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Step:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxXDimensionStep">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Single-step between the column values</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Base:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxXDimensionBase">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>The base value for the column</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBoxYDimension">
<property name="title">
<string comment="dimension">Size</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout_3">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Min value:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBoxYDimensionMinValue">
<property name="toolTip">
<string>Minimal value described in the column</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Max value:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxYDimensionMaxValue">
<property name="toolTip">
<string>Maximal value described in the column</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Step:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxYDimensionStep">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Single-step between the column values</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Base:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxYDimensionBase">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>The base value for the column</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="checkBoxYDimensionCircumference">
<property name="text">
<string>Circumference</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBoxWDimension">
<property name="title">
<string comment="dimension">Waist</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QFormLayout" name="formLayout_5">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Min value:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBoxWDimensionMinValue">
<property name="toolTip">
<string>Minimal value described in the column</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Max value:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxWDimensionMaxValue">
<property name="toolTip">
<string>Maximal value described in the column</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Step:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxWDimensionStep">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Single-step between the column values</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Base:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxWDimensionBase">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>The base value for the column</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBoxZDimension">
<property name="title">
<string comment="dimension">Hip</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QFormLayout" name="formLayout_4">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Min value:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBoxZDimensionMinValue">
<property name="toolTip">
<string>Minimal value described in the column</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Max value:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxZDimensionMaxValue">
<property name="toolTip">
<string>Maximal value described in the column</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Step:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxZDimensionStep">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Single-step between the column values</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Base:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxZDimensionBase">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>The base value for the column</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="labelError">
<property name="text">
<string notr="true">_</string>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>groupBoxXDimension</tabstop>
<tabstop>spinBoxXDimensionMinValue</tabstop>
<tabstop>spinBoxXDimensionMaxValue</tabstop>
<tabstop>comboBoxXDimensionStep</tabstop>
<tabstop>comboBoxXDimensionBase</tabstop>
<tabstop>groupBoxYDimension</tabstop>
<tabstop>spinBoxYDimensionMinValue</tabstop>
<tabstop>spinBoxYDimensionMaxValue</tabstop>
<tabstop>comboBoxYDimensionStep</tabstop>
<tabstop>comboBoxYDimensionBase</tabstop>
<tabstop>groupBoxWDimension</tabstop>
<tabstop>spinBoxWDimensionMinValue</tabstop>
<tabstop>spinBoxWDimensionMaxValue</tabstop>
<tabstop>comboBoxWDimensionStep</tabstop>
<tabstop>comboBoxWDimensionBase</tabstop>
<tabstop>groupBoxZDimension</tabstop>
<tabstop>spinBoxZDimensionMinValue</tabstop>
<tabstop>spinBoxZDimensionMaxValue</tabstop>
<tabstop>comboBoxZDimensionStep</tabstop>
<tabstop>comboBoxZDimensionBase</tabstop>
</tabstops>
<resources>
<include location="../share/resources/tapeicon.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DialogSetupMultisize</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>746</x>
<y>383</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DialogSetupMultisize</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>746</x>
<y>383</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -71,17 +71,6 @@ int main(int argc, char *argv[])
MApplication app(argc, argv); MApplication app(argc, argv);
app.InitOptions(); app.InitOptions();
if (FvUpdater::IsStaledTestBuild())
{
qWarning() << QApplication::translate("Tape",
"This test build is older than %1 days. To provide you with better "
"quality service we restrict the lifetime you can use a test build. "
"To continue using Tape please update to newer test build. The "
"application will be shut down.")
.arg(FvUpdater::testBuildLifetime);
return V_EX_UNAVAILABLE;
}
QTimer::singleShot(0, &app, &MApplication::ProcessCMD); QTimer::singleShot(0, &app, &MApplication::ProcessCMD);
#if defined(APPIMAGE) && defined(Q_OS_LINUX) #if defined(APPIMAGE) && defined(Q_OS_LINUX)

View File

@ -53,6 +53,10 @@
#include <QSpacerItem> #include <QSpacerItem>
#include <QThread> #include <QThread>
#if defined(APPIMAGE) && defined(Q_OS_LINUX)
# include "../vmisc/appimage.h"
#endif // defined(APPIMAGE) && defined(Q_OS_LINUX)
QT_WARNING_PUSH QT_WARNING_PUSH
QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes") QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes")
QT_WARNING_DISABLE_INTEL(1418) QT_WARNING_DISABLE_INTEL(1418)
@ -212,7 +216,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
{ {
if (topWinAllowsPop) if (topWinAllowsPop)
{ {
messageBox.setText(VAbstractApplication::ClearMessage(msg)); messageBox.setText(msg);
messageBox.setStandardButtons(QMessageBox::Ok); messageBox.setStandardButtons(QMessageBox::Ok);
messageBox.setWindowModality(Qt::ApplicationModal); messageBox.setWindowModality(Qt::ApplicationModal);
messageBox.setModal(true); messageBox.setModal(true);
@ -532,7 +536,7 @@ QString MApplication::diagramsPath() const
} }
else else
{ {
return QStringLiteral("/usr/share/valentina") + dPath; return PKGDATADIR + dPath;
} }
} }
#else // Unix #else // Unix
@ -543,7 +547,12 @@ QString MApplication::diagramsPath() const
} }
else else
{ {
return QStringLiteral("/usr/share/valentina") + dPath; #if defined(APPIMAGE) && defined(Q_OS_LINUX)
/* Fix path to diagrams when run inside AppImage. */
return AppImageRoot() + PKGDATADIR + dPath;
#else
return PKGDATADIR + dPath;
#endif // defined(APPIMAGE) && defined(Q_OS_LINUX)
} }
#endif #endif
} }
@ -591,96 +600,46 @@ void MApplication::ParseCommandLine(const SocketConnection &connection, const QS
parser.addHelpOption(); parser.addHelpOption();
parser.addVersionOption(); parser.addVersionOption();
parser.addPositionalArgument("filename", tr("The measurement file.")); parser.addPositionalArgument("filename", tr("The measurement file."));
//-----
QCommandLineOption heightOption(QStringList() << "e" << "height", const QString LONG_OPTION_DIMENSION_A = QStringLiteral("dimensionA");
tr("Open with the base height. Valid values: %1cm.") const QString SINGLE_OPTION_DIMENSION_A = QChar('a');
.arg(VMeasurement::WholeListHeights(Unit::Cm).join(", ")),
tr("The base height")); const QString LONG_OPTION_DIMENSION_B = QStringLiteral("dimensionB");
parser.addOption(heightOption); const QString SINGLE_OPTION_DIMENSION_B = QChar('b');
//-----
QCommandLineOption sizeOption(QStringList() << "s" << "size", const QString LONG_OPTION_DIMENSION_C = QStringLiteral("dimensionC");
tr("Open with the base size. Valid values: %1cm.").arg(VMeasurement::WholeListSizes(Unit::Cm).join(", ")), const QString SINGLE_OPTION_DIMENSION_C = QChar('c');
tr("The base size"));
parser.addOption(sizeOption); const QString LONG_OPTION_UNITS = QStringLiteral("units");
//----- const QString SINGLE_OPTION_UNITS = QChar('u');
QCommandLineOption unitOption(QStringList() << "u" << "unit",
tr("Set pattern file unit: cm, mm, inch."), const QString LONG_OPTION_TEST = QStringLiteral("test");
tr("The pattern unit"));
parser.addOption(unitOption); parser.addOptions(
//----- {
QCommandLineOption testOption(QStringList() << "test", {{SINGLE_OPTION_DIMENSION_A, LONG_OPTION_DIMENSION_A}, tr("Set base for dimension A in the table units."),
tr("Use for unit testing. Run the program and open a file without showing the main window.")); tr("The dimension A base")},
parser.addOption(testOption);
//----- {{SINGLE_OPTION_DIMENSION_B, LONG_OPTION_DIMENSION_B}, tr("Set base for dimension B in the table units."),
QCommandLineOption scalingOption(QStringList() << LONG_OPTION_NO_HDPI_SCALING, tr("The dimension B base")},
{{SINGLE_OPTION_DIMENSION_C, LONG_OPTION_DIMENSION_C}, tr("Set base for dimension C in the table units."),
tr("The dimension C base")},
{{SINGLE_OPTION_UNITS, LONG_OPTION_UNITS}, tr("Set pattern file units: cm, mm, inch."),
tr("The pattern units")},
{LONG_OPTION_TEST,
tr("Use for unit testing. Run the program and open a file without showing the main window.")},
{LONG_OPTION_NO_HDPI_SCALING,
tr("Disable high dpi scaling. Call this option if has problem with scaling (by default scaling enabled). " tr("Disable high dpi scaling. Call this option if has problem with scaling (by default scaling enabled). "
"Alternatively you can use the %1 environment variable.").arg("QT_AUTO_SCREEN_SCALE_FACTOR=0")); "Alternatively you can use the %1 environment variable.").arg("QT_AUTO_SCREEN_SCALE_FACTOR=0")},
parser.addOption(scalingOption); });
//-----
parser.process(arguments); parser.process(arguments);
bool flagHeight = false; testMode = parser.isSet(LONG_OPTION_TEST);
bool flagSize = false;
bool flagUnit = false;
int size = 0;
int height = 0;
Unit unit = Unit::Cm;
if (parser.isSet(heightOption))
{
const QString heightValue = parser.value(heightOption);
if (VMeasurement::IsGradationHeightValid(heightValue))
{
flagHeight = true;
height = heightValue.toInt();
}
else
{
qCCritical(mApp, "%s\n",
qPrintable(tr("Invalid base height argument. Must be %1cm.")
.arg(VMeasurement::WholeListHeights(Unit::Cm).join(", "))));
parser.showHelp(V_EX_USAGE);
}
}
if (parser.isSet(sizeOption))
{
const QString sizeValue = parser.value(sizeOption);
if (VMeasurement::IsGradationSizeValid(sizeValue))
{
flagSize = true;
size = sizeValue.toInt();
}
else
{
qCCritical(mApp, "%s\n",
qPrintable(tr("Invalid base size argument. Must be %1cm.")
.arg(VMeasurement::WholeListSizes(Unit::Cm).join(", "))));
parser.showHelp(V_EX_USAGE);
}
}
{
const QString unitValue = parser.value(unitOption);
if (not unitValue.isEmpty())
{
const QStringList units = QStringList() << unitMM << unitCM << unitINCH;
if (units.contains(unitValue))
{
flagUnit = true;
unit = StrToUnits(unitValue);
}
else
{
qCCritical(mApp, "%s\n", qPrintable(tr("Invalid base size argument. Must be cm, mm or inch.")));
parser.showHelp(V_EX_USAGE);
}
}
}
testMode = parser.isSet(testOption);
if (not testMode && connection == SocketConnection::Client) if (not testMode && connection == SocketConnection::Client)
{ {
@ -729,6 +688,84 @@ void MApplication::ParseCommandLine(const SocketConnection &connection, const QS
parser.showHelp(V_EX_USAGE); parser.showHelp(V_EX_USAGE);
} }
bool flagDimensionA = false;
bool flagDimensionB = false;
bool flagDimensionC = false;
bool flagUnits = false;
int dimensionAValue = 0;
int dimensionBValue = 0;
int dimensionCValue = 0;
Unit unit = Unit::Cm;
if (parser.isSet(LONG_OPTION_DIMENSION_A))
{
const QString value = parser.value(LONG_OPTION_DIMENSION_A);
bool ok = false;
dimensionAValue = value.toInt(&ok);
if(ok && dimensionAValue > 0)
{
flagDimensionA = true;
}
else
{
qCCritical(mApp, "%s\n", qPrintable(tr("Invalid dimension A base value.")));
parser.showHelp(V_EX_USAGE);
}
}
if (parser.isSet(LONG_OPTION_DIMENSION_B))
{
const QString value = parser.value(LONG_OPTION_DIMENSION_B);
bool ok = false;
dimensionBValue = value.toInt(&ok);
if(ok && dimensionBValue > 0)
{
flagDimensionB = true;
}
else
{
qCCritical(mApp, "%s\n", qPrintable(tr("Invalid dimension B base value.")));
parser.showHelp(V_EX_USAGE);
}
}
if (parser.isSet(LONG_OPTION_DIMENSION_C))
{
const QString value = parser.value(LONG_OPTION_DIMENSION_C);
bool ok = false;
dimensionCValue = value.toInt(&ok);
if(ok && dimensionCValue > 0)
{
flagDimensionC = true;
}
else
{
qCCritical(mApp, "%s\n", qPrintable(tr("Invalid dimension C base value.")));
parser.showHelp(V_EX_USAGE);
}
}
{
const QString unitValue = parser.value(LONG_OPTION_UNITS);
if (not unitValue.isEmpty())
{
if (QStringList{unitMM, unitCM, unitINCH}.contains(unitValue))
{
flagUnits = true;
unit = StrToUnits(unitValue);
}
else
{
qCCritical(mApp, "%s\n", qPrintable(tr("Invalid base size argument. Must be cm, mm or inch.")));
parser.showHelp(V_EX_USAGE);
}
}
}
for (auto &arg : args) for (auto &arg : args)
{ {
NewMainWindow(); NewMainWindow();
@ -742,17 +779,31 @@ void MApplication::ParseCommandLine(const SocketConnection &connection, const QS
continue; continue;
} }
if (flagSize) if (flagDimensionA)
{ {
MainWindow()->SetBaseMSize(size); if (not MainWindow()->SetDimensionABase(dimensionAValue))
{
parser.showHelp(V_EX_USAGE);
}
} }
if (flagHeight) if (flagDimensionB)
{ {
MainWindow()->SetBaseMHeight(height); if (not MainWindow()->SetDimensionBBase(dimensionBValue))
{
parser.showHelp(V_EX_USAGE);
}
} }
if (flagUnit) if (flagDimensionC)
{
if (not MainWindow()->SetDimensionCBase(dimensionCValue))
{
parser.showHelp(V_EX_USAGE);
}
}
if (flagUnits)
{ {
MainWindow()->SetPUnit(unit); MainWindow()->SetPUnit(unit);
} }

View File

@ -2,6 +2,9 @@
# This need for corect working file translations.pro # This need for corect working file translations.pro
SOURCES += \ SOURCES += \
$$PWD/dialogs/dialogdimensionlabels.cpp \
$$PWD/dialogs/dialogmeasurementscsvcolumns.cpp \
$$PWD/dialogs/dialogrestrictdimension.cpp \
$$PWD/main.cpp \ $$PWD/main.cpp \
$$PWD/tmainwindow.cpp \ $$PWD/tmainwindow.cpp \
$$PWD/mapplication.cpp \ $$PWD/mapplication.cpp \
@ -12,11 +15,15 @@ SOURCES += \
$$PWD/dialogs/dialogtapepreferences.cpp \ $$PWD/dialogs/dialogtapepreferences.cpp \
$$PWD/dialogs/configpages/tapepreferencesconfigurationpage.cpp \ $$PWD/dialogs/configpages/tapepreferencesconfigurationpage.cpp \
$$PWD/dialogs/configpages/tapepreferencespathpage.cpp \ $$PWD/dialogs/configpages/tapepreferencespathpage.cpp \
$$PWD/vtapesettings.cpp $$PWD/vtapesettings.cpp \
$$PWD/dialogs/dialogsetupmultisize.cpp
*msvc*:SOURCES += $$PWD/stable.cpp *msvc*:SOURCES += $$PWD/stable.cpp
HEADERS += \ HEADERS += \
$$PWD/dialogs/dialogdimensionlabels.h \
$$PWD/dialogs/dialogmeasurementscsvcolumns.h \
$$PWD/dialogs/dialogrestrictdimension.h \
$$PWD/tmainwindow.h \ $$PWD/tmainwindow.h \
$$PWD/stable.h \ $$PWD/stable.h \
$$PWD/mapplication.h \ $$PWD/mapplication.h \
@ -28,13 +35,18 @@ HEADERS += \
$$PWD/dialogs/dialogtapepreferences.h \ $$PWD/dialogs/dialogtapepreferences.h \
$$PWD/dialogs/configpages/tapepreferencesconfigurationpage.h \ $$PWD/dialogs/configpages/tapepreferencesconfigurationpage.h \
$$PWD/dialogs/configpages/tapepreferencespathpage.h \ $$PWD/dialogs/configpages/tapepreferencespathpage.h \
$$PWD/vtapesettings.h $$PWD/vtapesettings.h \
$$PWD/dialogs/dialogsetupmultisize.h
FORMS += \ FORMS += \
$$PWD/dialogs/dialogdimensionlabels.ui \
$$PWD/dialogs/dialogmeasurementscsvcolumns.ui \
$$PWD/dialogs/dialogrestrictdimension.ui \
$$PWD/tmainwindow.ui \ $$PWD/tmainwindow.ui \
$$PWD/dialogs/dialogabouttape.ui \ $$PWD/dialogs/dialogabouttape.ui \
$$PWD/dialogs/dialognewmeasurements.ui \ $$PWD/dialogs/dialognewmeasurements.ui \
$$PWD/dialogs/dialogmdatabase.ui \ $$PWD/dialogs/dialogmdatabase.ui \
$$PWD/dialogs/dialogtapepreferences.ui \ $$PWD/dialogs/dialogtapepreferences.ui \
$$PWD/dialogs/configpages/tapepreferencesconfigurationpage.ui \ $$PWD/dialogs/configpages/tapepreferencesconfigurationpage.ui \
$$PWD/dialogs/configpages/tapepreferencespathpage.ui $$PWD/dialogs/configpages/tapepreferencespathpage.ui \
$$PWD/dialogs/dialogsetupmultisize.ui

View File

@ -191,19 +191,11 @@ include(../translations.pri)
# Set "make install" command for Unix-like systems. # Set "make install" command for Unix-like systems.
unix{ unix{
# Prefix for binary file. !macx{
isEmpty(PREFIX){
PREFIX = $$DEFAULT_PREFIX
}
unix:!macx{
DATADIR =$$PREFIX/share
DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
# Path to bin file after installation # Path to bin file after installation
target.path = $$PREFIX/bin target.path = $$BINDIR
rcc_diagrams.path = $$PREFIX/share/valentina/ rcc_diagrams.path = $$PKGDATADIR
rcc_diagrams.files = $${OUT_PWD}/$${DESTDIR}/diagrams.rcc rcc_diagrams.files = $${OUT_PWD}/$${DESTDIR}/diagrams.rcc
rcc_diagrams.CONFIG = no_check_exist rcc_diagrams.CONFIG = no_check_exist
@ -360,7 +352,16 @@ DEPENDPATH += $$PWD/../../libs/vformat
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/vformat.lib win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/vformat.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/libvformat.a else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/libvformat.a
#VPatternDB static library (depend on vgeometry, vmisc, VLayout) # VLayout static library (depend on IFC, VGeometry, VPatternDB)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vlayout/$${DESTDIR}/ -lvlayout
INCLUDEPATH += $$PWD/../../libs/vlayout
DEPENDPATH += $$PWD/../../libs/vlayout
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/vlayout.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/libvlayout.a
#VPatternDB static library (depend on vgeometry, vmisc)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vpatterndb/$${DESTDIR} -lvpatterndb unix|win32: LIBS += -L$$OUT_PWD/../../libs/vpatterndb/$${DESTDIR} -lvpatterndb
INCLUDEPATH += $$PWD/../../libs/vpatterndb INCLUDEPATH += $$PWD/../../libs/vpatterndb
@ -396,15 +397,6 @@ DEPENDPATH += $$PWD/../../libs/vmisc
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
# VLayout static library (depend on VGeometry)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vlayout/$${DESTDIR}/ -lvlayout
INCLUDEPATH += $$PWD/../../libs/vlayout
DEPENDPATH += $$PWD/../../libs/vlayout
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/vlayout.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/libvlayout.a
# VGeometry static library (depend on ifc) # VGeometry static library (depend on ifc)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry

File diff suppressed because it is too large Load Diff

View File

@ -44,6 +44,7 @@ namespace Ui
class QLabel; class QLabel;
class QxtCsvModel; class QxtCsvModel;
class VMeasurement;
class TMainWindow : public VAbstractMainWindow class TMainWindow : public VAbstractMainWindow
{ {
@ -57,8 +58,9 @@ public:
void RetranslateTable(); void RetranslateTable();
void SetBaseMHeight(int height); bool SetDimensionABase(int base);
void SetBaseMSize(int size); bool SetDimensionBBase(int base);
bool SetDimensionCBase(int base);
void SetPUnit(Unit unit); void SetPUnit(Unit unit);
bool LoadFile(const QString &path); bool LoadFile(const QString &path);
@ -112,8 +114,11 @@ private slots:
void AddKnown(); void AddKnown();
void ImportFromPattern(); void ImportFromPattern();
void ChangedSize(const QString &text); void DimensionABaseChanged();
void ChangedHeight(const QString & text); void DimensionBBaseChanged();
void DimensionCBaseChanged();
void GradationChanged();
void ShowMData(); void ShowMData();
@ -122,43 +127,67 @@ private slots:
void SaveMName(const QString &text); void SaveMName(const QString &text);
void SaveMValue(); void SaveMValue();
void SaveMBaseValue(double value); void SaveMBaseValue(double value);
void SaveMSizeIncrease(double value); void SaveMShiftA(double value);
void SaveMHeightIncrease(double value); void SaveMShiftB(double value);
void SaveMShiftC(double value);
void SaveMCorrectionValue(double value);
void SaveMDescription(); void SaveMDescription();
void SaveMFullName(); void SaveMFullName();
void SaveMUnits();
void SaveMDimension();
void FullCircumferenceChanged(bool checked);
void ExportToIndividual();
void RestrictSecondDimesion();
void RestrictThirdDimesion();
void EditDimensionLabels();
private: private:
Q_DISABLE_COPY(TMainWindow) Q_DISABLE_COPY(TMainWindow)
Ui::TMainWindow *ui; Ui::TMainWindow *ui;
VMeasurements *m; VMeasurements *m{nullptr};
VContainer *data; VContainer *data{nullptr};
Unit mUnit; Unit mUnit{Unit::Cm};
Unit pUnit; Unit pUnit{Unit::Cm};
MeasurementsType mType; MeasurementsType mType{MeasurementsType::Individual};
qreal currentSize; int currentDimensionA{0};
qreal currentHeight; int currentDimensionB{0};
QString curFile; int currentDimensionC{0};
QComboBox *gradationHeights; QString curFile{};
QComboBox *gradationSizes; QComboBox *gradationDimensionA{nullptr};
QComboBox *comboBoxUnits; QComboBox *gradationDimensionB{nullptr};
QComboBox *gradationDimensionC{nullptr};
QComboBox *comboBoxUnits{nullptr};
int formulaBaseHeight; int formulaBaseHeight;
QSharedPointer<VLockGuard<char>> lock; QSharedPointer<VLockGuard<char>> lock{nullptr};
QSharedPointer<VTableSearch> search; QSharedPointer<VTableSearch> search{};
QLabel *labelGradationHeights; QLabel *labelGradationDimensionA{nullptr};
QLabel *labelGradationSizes; QLabel *labelGradationDimensionB{nullptr};
QLabel *labelPatternUnit; QLabel *labelGradationDimensionC{nullptr};
bool isInitialized; QLabel *labelPatternUnit{nullptr};
bool mIsReadOnly; bool isInitialized{false};
bool mIsReadOnly{false};
QTimer *gradation;
QVector<QObject *> hackedWidgets; QVector<QObject *> hackedWidgets{};
void SetupMenu(); void SetupMenu();
void InitWindow(); void InitWindow();
void InitMenu();
void InitDimensionsBaseValue();
void InitDimensionGradation(int index, const MeasurementDimension_p &dimension, QComboBox *control);
void InitDimensionControls();
void InitDimesionShifts();
void InitTable(); void InitTable();
void SetDecimals(); void SetDecimals();
void InitUnits(); void InitPatternUnits();
void InitComboBoxUnits(); void InitComboBoxUnits();
void InitMeasurementUnits();
void InitGender(QComboBox *gender); void InitGender(QComboBox *gender);
void InitMeasurementDimension();
void ShowNewMData(bool fresh); void ShowNewMData(bool fresh);
void ShowUnits(); void ShowUnits();
@ -172,18 +201,13 @@ private:
QTableWidgetItem *AddCell(const QString &text, int row, int column, int aligment, bool ok = true); QTableWidgetItem *AddCell(const QString &text, int row, int column, int aligment, bool ok = true);
Q_REQUIRED_RESULT QComboBox *SetGradationList(QLabel *label, const QStringList &list);
void SetDefaultHeight(int value);
void SetDefaultSize(int value);
void RefreshData(bool freshCall = false); void RefreshData(bool freshCall = false);
void RefreshTable(bool freshCall = false); void RefreshTable(bool freshCall = false);
QString GetCustomName() const; QString GetCustomName() const;
QString ClearCustomName(const QString &name) const; QString ClearCustomName(const QString &name) const;
bool EvalFormula(const QString &formula, bool fromUser, VContainer *data, QLabel *label); bool EvalFormula(const QString &formula, bool fromUser, VContainer *data, QLabel *label, bool specialUnits);
void ShowMDiagram(const QString &name); void ShowMDiagram(const QString &name);
void Open(const QString &pathTo, const QString &filter); void Open(const QString &pathTo, const QString &filter);
@ -208,15 +232,25 @@ private:
template <class T> template <class T>
void HackWidget(T **widget); void HackWidget(T **widget);
void HackDimensionBaseValue();
void HackDimensionShifts();
QString CheckMName(const QString &name, const QSet<QString> &importedNames) const; QString CheckMName(const QString &name, const QSet<QString> &importedNames) const;
void ShowError(const QString &text); void ShowError(const QString &text);
void RefreshDataAfterImport(); void RefreshDataAfterImport();
void ImportIndividualMeasurements(const QxtCsvModel &csv); void ImportIndividualMeasurements(const QxtCsvModel &csv, const QVector<int> &map);
void ImportMultisizeMeasurements(const QxtCsvModel &csv); void ImportMultisizeMeasurements(const QxtCsvModel &csv, const QVector<int> &map);
void SetCurrentPatternUnit(); void SetCurrentPatternUnit();
void ShowDimensionControls();
void SetDimensionBases();
void SetCurrentDimensionValues();
QVector<int> DimensionRestrictedValues(int index, const MeasurementDimension_p &dimension);
QMap<int, QSharedPointer<VMeasurement> > OrderedMeasurments() const;
}; };
#endif // TMAINWINDOW_H #endif // TMAINWINDOW_H

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>835</width> <width>1188</width>
<height>726</height> <height>836</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -24,7 +24,7 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout_5">
<item> <item>
<widget class="QLabel" name="labelToolTip"> <widget class="QLabel" name="labelToolTip">
<property name="sizePolicy"> <property name="sizePolicy">
@ -148,37 +148,47 @@
</attribute> </attribute>
<column> <column>
<property name="text"> <property name="text">
<string>Name</string> <string comment="measurement column">Name</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Full name</string> <string comment="measurement column">Full name</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Calculated value</string> <string comment="measurement column">Calculated value</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Formula</string> <string comment="measurement column">Formula</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Base value</string> <string comment="measurement column">Base value</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>In sizes</string> <string notr="true" comment="measurement column">Shift A</string>
</property> </property>
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>In heights</string> <string notr="true" comment="measurement column">Shift B</string>
</property>
</column>
<column>
<property name="text">
<string notr="true" comment="measurement column">Shift C</string>
</property>
</column>
<column>
<property name="text">
<string comment="measurement column">Correction</string>
</property> </property>
</column> </column>
</widget> </widget>
@ -198,10 +208,137 @@
<property name="title"> <property name="title">
<string>Details</string> <string>Details</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>9</number>
</property>
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonTop">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move measurement top</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="go-top">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonUp">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move measurement up</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="go-up">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonDown">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move measurement down</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="go-down">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonBottom">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move measurement bottom</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="go-bottom">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="toolButtonRemove">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Delete measurement</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="list-remove">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout"> <layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy"> <property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum> <enum>QFormLayout::ExpandingFieldsGrow</enum>
</property> </property>
<item row="0" column="0">
<widget class="QLabel" name="labelMUnits">
<property name="text">
<string>Units:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxMUnits">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
@ -222,14 +359,31 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="0"> <item row="3" column="0">
<widget class="QLabel" name="labelCalculated">
<property name="text">
<string>Calculated value:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="labelCalculatedValue">
<property name="toolTip">
<string>Calculated value</string>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="labelFormula"> <widget class="QLabel" name="labelFormula">
<property name="text"> <property name="text">
<string>Formula:</string> <string>Formula:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1"> <item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayoutValue"> <layout class="QHBoxLayout" name="horizontalLayoutValue">
<item> <item>
<widget class="VPlainTextEdit" name="plainTextEditFormula"> <widget class="VPlainTextEdit" name="plainTextEditFormula">
@ -316,35 +470,134 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="6" column="0"> <item row="5" column="0">
<widget class="QLabel" name="labelBaseValue"> <widget class="QLabel" name="labelBaseValue">
<property name="text"> <property name="text">
<string>Base value:</string> <string>Base value:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="0"> <item row="5" column="1">
<widget class="QLabel" name="labelInSizes"> <widget class="QDoubleSpinBox" name="doubleSpinBoxBaseValue">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="labelShiftA">
<property name="text"> <property name="text">
<string>In sizes:</string> <string notr="true">Shift A</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxShiftA">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="labelShiftB">
<property name="text">
<string>Shift B</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxShiftB">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="0"> <item row="8" column="0">
<widget class="QLabel" name="labelInHeights"> <widget class="QLabel" name="labelShiftC">
<property name="text"> <property name="text">
<string>In heights:</string> <string>Shift C</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxShiftC">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="labelCorrection">
<property name="text">
<string>Correction:</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxCorrection">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
<item row="10" column="0"> <item row="10" column="0">
<widget class="QLabel" name="labelFullName">
<property name="text">
<string>Full name:</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QLineEdit" name="lineEditFullName">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string/>
</property>
<property name="placeholderText">
<string>Measurement's human-readable name.</string>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="label_7">
<property name="text"> <property name="text">
<string>Description:</string> <string>Description:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="10" column="1"> <item row="11" column="1">
<widget class="VPlainTextEdit" name="plainTextEditDescription"> <widget class="VPlainTextEdit" name="plainTextEditDescription">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -363,201 +616,31 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QLabel" name="labelDimension">
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonTop">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move measurement top</string>
</property>
<property name="text"> <property name="text">
<string notr="true">...</string> <string>Dimension:</string>
</property>
<property name="icon">
<iconset theme="go-top">
<normaloff>.</normaloff>.</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item alignment="Qt::AlignLeft"> <item row="1" column="1">
<widget class="QToolButton" name="toolButtonUp"> <widget class="QComboBox" name="comboBoxDimension">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="toolTip"> <property name="sizePolicy">
<string>Move measurement up</string> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
</property> <horstretch>0</horstretch>
<property name="text"> <verstretch>0</verstretch>
<string notr="true">...</string> </sizepolicy>
</property>
<property name="icon">
<iconset theme="go-up">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonDown">
<property name="enabled">
<bool>false</bool>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Move measurement down</string> <string>Select one of the dimensions to later use the measurement value in piece label</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="go-down">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item alignment="Qt::AlignLeft">
<widget class="QToolButton" name="toolButtonBottom">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move measurement bottom</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="go-bottom">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5000</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5000</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item alignment="Qt::AlignRight">
<widget class="QToolButton" name="toolButtonRemove">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Delete measurement</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset theme="list-remove">
<normaloff>.</normaloff>.</iconset>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="4" column="0">
<widget class="QLabel" name="labelCalculated">
<property name="text">
<string>Calculated value:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="labelCalculatedValue">
<property name="toolTip">
<string>Calculated value</string>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxBaseValue">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxInSizes">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxInHeights">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<double>-10000.000000000000000</double>
</property>
<property name="maximum">
<double>10000.000000000000000</double>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="labelFullName">
<property name="text">
<string>Full name:</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLineEdit" name="lineEditFullName">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string/>
</property>
<property name="placeholderText">
<string>Measurement's human-readable name.</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
@ -572,7 +655,12 @@
<attribute name="title"> <attribute name="title">
<string>Information</string> <string>Information</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout_2"> <layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_21"> <widget class="QLabel" name="label_21">
<property name="text"> <property name="text">
@ -666,41 +754,29 @@
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="labelBaseSize"> <widget class="QLabel" name="labelBaseValues">
<property name="text"> <property name="sizePolicy">
<string>Base size:</string> <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="labelBaseSizeValue">
<property name="text"> <property name="text">
<string>Base size value</string> <string>Base Values:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item row="4" column="0">
<widget class="QLabel" name="labelBaseHeight">
<property name="text">
<string>Base height:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="labelBaseHeightValue">
<property name="text">
<string>Base height value</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="labelCustomerName"> <widget class="QLabel" name="labelCustomerName">
<property name="text"> <property name="text">
<string>Customer name:</string> <string>Customer name:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1"> <item row="4" column="1">
<widget class="QLineEdit" name="lineEditCustomerName"> <widget class="QLineEdit" name="lineEditCustomerName">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -716,20 +792,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0"> <item row="5" column="0">
<widget class="QLabel" name="labelBirthDate"> <widget class="QLabel" name="labelBirthDate">
<property name="text"> <property name="text">
<string>Birth date:</string> <string>Birth date:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="1"> <item row="5" column="1">
<widget class="QDateEdit" name="dateEditBirthDate"> <widget class="QDateEdit" name="dateEditBirthDate">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -758,14 +834,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="0"> <item row="6" column="0">
<widget class="QLabel" name="labelGender"> <widget class="QLabel" name="labelGender">
<property name="text"> <property name="text">
<string>Gender:</string> <string>Gender:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1"> <item row="6" column="1">
<widget class="QComboBox" name="comboBoxGender"> <widget class="QComboBox" name="comboBoxGender">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -776,22 +852,16 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget> </widget>
</item> </item>
<item row="8" column="0"> <item row="7" column="0">
<widget class="QLabel" name="labelEmail"> <widget class="QLabel" name="labelEmail">
<property name="text"> <property name="text">
<string>Email:</string> <string>Email:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="1"> <item row="7" column="1">
<widget class="QLineEdit" name="lineEditEmail"> <widget class="QLineEdit" name="lineEditEmail">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -807,14 +877,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="0"> <item row="8" column="0">
<widget class="QLabel" name="labelNotes"> <widget class="QLabel" name="labelNotes">
<property name="text"> <property name="text">
<string>Notes:</string> <string>Notes:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="1"> <item row="8" column="1">
<widget class="VPlainTextEdit" name="plainTextEditNotes"> <widget class="VPlainTextEdit" name="plainTextEditNotes">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -827,6 +897,65 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QFrame" name="frameBaseValue">
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<layout class="QFormLayout" name="formLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="labelDimensionA">
<property name="text">
<string notr="true">A</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="labelDimensionABase">
<property name="text">
<string notr="true">Base</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelDimensionB">
<property name="text">
<string notr="true">B</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="labelDimensionBBase">
<property name="text">
<string notr="true">Base</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="labelDimensionC">
<property name="text">
<string notr="true">C</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="labelDimensionCBase">
<property name="text">
<string notr="true">Base</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
@ -838,8 +967,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>835</width> <width>1188</width>
<height>22</height> <height>21</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuFile"> <widget class="QMenu" name="menuFile">
@ -857,6 +986,7 @@
<addaction name="actionSaveAs"/> <addaction name="actionSaveAs"/>
<addaction name="actionExportToCSV"/> <addaction name="actionExportToCSV"/>
<addaction name="actionImportFromCSV"/> <addaction name="actionImportFromCSV"/>
<addaction name="actionExportToIndividual"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="actionReadOnly"/> <addaction name="actionReadOnly"/>
<addaction name="separator"/> <addaction name="separator"/>
@ -885,6 +1015,10 @@
<addaction name="actionDatabase"/> <addaction name="actionDatabase"/>
<addaction name="actionImportFromPattern"/> <addaction name="actionImportFromPattern"/>
<addaction name="actionMeasurementDiagram"/> <addaction name="actionMeasurementDiagram"/>
<addaction name="actionUseFullCircumference"/>
<addaction name="actionRestrictSecondDimension"/>
<addaction name="actionRestrictThirdDimension"/>
<addaction name="actionDimensionLabels"/>
</widget> </widget>
<addaction name="menuFile"/> <addaction name="menuFile"/>
<addaction name="menuMeasurements"/> <addaction name="menuMeasurements"/>
@ -1226,6 +1360,70 @@
<enum>QAction::NoRole</enum> <enum>QAction::NoRole</enum>
</property> </property>
</action> </action>
<action name="actionExportToIndividual">
<property name="checkable">
<bool>false</bool>
</property>
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Export to individual</string>
</property>
<property name="toolTip">
<string>Export to individual measurements</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="menuRole">
<enum>QAction::NoRole</enum>
</property>
</action>
<action name="actionUseFullCircumference">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Use full circumference</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionRestrictSecondDimension">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Restrict second dimension</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionRestrictThirdDimension">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Restrict third dimension</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionDimensionLabels">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Dimension labels</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets> <customwidgets>

View File

@ -37,9 +37,6 @@
namespace namespace
{ {
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingDataBaseGeometry, (QLatin1String("database/geometry"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingDataBaseGeometry, (QLatin1String("database/geometry")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingDefHeight, (QLatin1String("gradation/defHeight")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingDefSize, (QLatin1String("gradation/defSize")))
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -60,27 +57,3 @@ void VTapeSettings::SetDataBaseGeometry(const QByteArray &value)
{ {
setValue(*settingDataBaseGeometry, value); setValue(*settingDataBaseGeometry, value);
} }
//---------------------------------------------------------------------------------------------------------------------
void VTapeSettings::SetDefHeight(int value)
{
setValue(*settingDefHeight, value);
}
//---------------------------------------------------------------------------------------------------------------------
int VTapeSettings::GetDefHeight() const
{
return value(*settingDefHeight, 176).toInt();
}
//---------------------------------------------------------------------------------------------------------------------
void VTapeSettings::SetDefSize(int value)
{
setValue(*settingDefSize, value);
}
//---------------------------------------------------------------------------------------------------------------------
int VTapeSettings::GetDefSize() const
{
return value(*settingDefSize, 50).toInt();
}

View File

@ -49,12 +49,6 @@ public:
QByteArray GetDataBaseGeometry() const; QByteArray GetDataBaseGeometry() const;
void SetDataBaseGeometry(const QByteArray &value); void SetDataBaseGeometry(const QByteArray &value);
void SetDefHeight(int value);
int GetDefHeight() const;
void SetDefSize(int value);
int GetDefSize() const;
private: private:
Q_DISABLE_COPY(VTapeSettings) Q_DISABLE_COPY(VTapeSettings)
}; };

View File

@ -51,6 +51,7 @@
#include <QDateTime> #include <QDateTime>
#include <QtXmlPatterns> #include <QtXmlPatterns>
#include <QIcon> #include <QIcon>
#include <Qt>
QT_WARNING_PUSH QT_WARNING_PUSH
QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes") QT_WARNING_DISABLE_CLANG("-Wmissing-prototypes")
@ -171,7 +172,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
const bool isPatternMessage = qApp->IsPatternMessage(msg); const bool isPatternMessage = qApp->IsPatternMessage(msg);
if (isPatternMessage) if (isPatternMessage)
{ {
logMsg = logMsg.remove(VAbstractApplication::patternMessageSignature); logMsg = logMsg.remove(VAbstractValApplication::patternMessageSignature);
} }
{ {
@ -224,7 +225,11 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
vStdOut().flush(); vStdOut().flush();
vStdErr().flush(); vStdErr().flush();
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
(*qApp->LogFile()) << debugdate << endl; (*qApp->LogFile()) << debugdate << endl;
#else
(*qApp->LogFile()) << debugdate << Qt::endl;
#endif
} }
if (isGuiThread) if (isGuiThread)
@ -266,7 +271,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
break; break;
} }
messageBox.setText(VAbstractApplication::ClearMessage(logMsg)); messageBox.setText(VAbstractValApplication::ClearMessage(logMsg));
messageBox.setStandardButtons(QMessageBox::Ok); messageBox.setStandardButtons(QMessageBox::Ok);
messageBox.setWindowModality(Qt::ApplicationModal); messageBox.setWindowModality(Qt::ApplicationModal);
messageBox.setModal(true); messageBox.setModal(true);
@ -304,7 +309,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con
* @param argv command line. * @param argv command line.
*/ */
VApplication::VApplication(int &argc, char **argv) VApplication::VApplication(int &argc, char **argv)
: VAbstractApplication(argc, argv), : VAbstractValApplication(argc, argv),
trVars(nullptr), trVars(nullptr),
autoSaveTimer(nullptr), autoSaveTimer(nullptr),
lockLog(), lockLog(),
@ -342,7 +347,7 @@ void VApplication::NewValentina(const QString &fileName)
qCDebug(vApp, "New process without arguments. program = %s", qCDebug(vApp, "New process without arguments. program = %s",
qUtf8Printable(QCoreApplication::applicationFilePath())); qUtf8Printable(QCoreApplication::applicationFilePath()));
// Path can contain spaces. // Path can contain spaces.
if (QProcess::startDetached("\""+QCoreApplication::applicationFilePath()+"\"")) if (QProcess::startDetached(QCoreApplication::applicationFilePath(), QStringList()))
{ {
qCDebug(vApp, "The process was started successfully."); qCDebug(vApp, "The process was started successfully.");
} }
@ -355,7 +360,7 @@ void VApplication::NewValentina(const QString &fileName)
{ {
const QString run = QStringLiteral("\"%1\" \"%2\"").arg(QCoreApplication::applicationFilePath(), fileName); const QString run = QStringLiteral("\"%1\" \"%2\"").arg(QCoreApplication::applicationFilePath(), fileName);
qCDebug(vApp, "New process with arguments. program = %s", qUtf8Printable(run)); qCDebug(vApp, "New process with arguments. program = %s", qUtf8Printable(run));
if (QProcess::startDetached(run)) if (QProcess::startDetached(QCoreApplication::applicationFilePath(), QStringList{fileName}))
{ {
qCDebug(vApp, "The process was started successfully."); qCDebug(vApp, "The process was started successfully.");
} }

View File

@ -29,11 +29,12 @@
#ifndef VAPPLICATION_H #ifndef VAPPLICATION_H
#define VAPPLICATION_H #define VAPPLICATION_H
#include "../vmisc/vabstractapplication.h" #include "../vmisc/vabstractvalapplication.h"
#include "../vwidgets/vmaingraphicsview.h" #include "../vwidgets/vmaingraphicsview.h"
#include "../vpatterndb/vtranslatevars.h" #include "../vpatterndb/vtranslatevars.h"
#include "vvalentinasettings.h" #include "vvalentinasettings.h"
#include "vcmdexport.h" #include "vcmdexport.h"
#include "vlockguard.h"
class VApplication;// use in define class VApplication;// use in define
@ -45,7 +46,7 @@ class VApplication;// use in define
/** /**
* @brief The VApplication class reimplamentation QApplication class. * @brief The VApplication class reimplamentation QApplication class.
*/ */
class VApplication : public VAbstractApplication class VApplication : public VAbstractValApplication
{ {
Q_OBJECT Q_OBJECT
public: public:
@ -115,7 +116,5 @@ inline void VApplication::setAutoSaveTimer(QTimer *value)
{ {
autoSaveTimer = value; autoSaveTimer = value;
} }
//---------------------------------------------------------------------------------------------------------------------
#endif // VAPPLICATION_H #endif // VAPPLICATION_H

View File

@ -506,40 +506,68 @@ bool VCommandLine::IsGuiEnabled() const
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VCommandLine::IsSetGradationSize() const bool VCommandLine::IsSetDimensionA() const
{ {
return IsOptionSet(LONG_OPTION_GRADATIONSIZE); return IsOptionSet(LONG_OPTION_DIMENSION_A);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VCommandLine::IsSetGradationHeight() const bool VCommandLine::IsSetDimensionB() const
{ {
return IsOptionSet(LONG_OPTION_GRADATIONHEIGHT); return IsOptionSet(LONG_OPTION_DIMENSION_B);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString VCommandLine::OptGradationSize() const bool VCommandLine::IsSetDimensionC() const
{ {
const QString size = OptionValue(LONG_OPTION_GRADATIONSIZE); return IsOptionSet(LONG_OPTION_DIMENSION_C);
if (VMeasurement::IsGradationSizeValid(size))
{
return size;
} }
qCritical() << translate("VCommandLine", "Invalid gradation size value.") << "\n"; //---------------------------------------------------------------------------------------------------------------------
int VCommandLine::OptDimensionA() const
{
const QString value = OptionValue(LONG_OPTION_DIMENSION_A);
bool ok = false;
int dimensionAValue = value.toInt(&ok);
if(ok && dimensionAValue > 0)
{
return dimensionAValue;
}
qCritical() << translate("VCommandLine", "Invalid dimension A value.") << "\n";
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE); const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString VCommandLine::OptGradationHeight() const int VCommandLine::OptDimensionB() const
{ {
const QString height = OptionValue(LONG_OPTION_GRADATIONHEIGHT); const QString value = OptionValue(LONG_OPTION_DIMENSION_B);
if (VMeasurement::IsGradationHeightValid(height))
bool ok = false;
int dimensionBValue = value.toInt(&ok);
if(ok && dimensionBValue > 0)
{ {
return height; return dimensionBValue;
} }
qCritical() << translate("VCommandLine", "Invalid gradation height value.") << "\n"; qCritical() << translate("VCommandLine", "Invalid dimension B value.") << "\n";
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
}
//---------------------------------------------------------------------------------------------------------------------
int VCommandLine::OptDimensionC() const
{
const QString value = OptionValue(LONG_OPTION_DIMENSION_C);
bool ok = false;
int dimensionCValue = value.toInt(&ok);
if(ok && dimensionCValue > 0)
{
return dimensionCValue;
}
qCritical() << translate("VCommandLine", "Invalid dimension C value.") << "\n";
const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE); const_cast<VCommandLine*>(this)->parser.showHelp(V_EX_USAGE);
} }
@ -635,14 +663,19 @@ void VCommandLine::InitCommandLineOptions()
{LONG_OPTION_EXPORTSUCHDETAILS, {LONG_OPTION_EXPORTSUCHDETAILS,
translate("VCommandLine", "Export only details that match a piece name regex."), translate("VCommandLine", "Export only details that match a piece name regex."),
translate("VCommandLine", "The name regex")}, translate("VCommandLine", "The name regex")},
{{SINGLE_OPTION_GRADATIONSIZE, LONG_OPTION_GRADATIONSIZE},
translate("VCommandLine", "Set size value for pattern file, that was opened with multisize measurements " {LONG_OPTION_DIMENSION_A,
"(export mode). Valid values: %1cm.").arg(VMeasurement::WholeListSizes(Unit::Cm) .join(QStringLiteral(", "))), translate("VCommandLine", "Set base for dimension A in the multisize measurements units (export mode)."),
translate("VCommandLine", "The size value")}, translate("VCommandLine", "The dimension A base")},
{{SINGLE_OPTION_GRADATIONHEIGHT, LONG_OPTION_GRADATIONHEIGHT},
translate("VCommandLine", "Set height value for pattern file, that was opened with multisize measurements " {LONG_OPTION_DIMENSION_B,
"(export mode). Valid values: %1cm.").arg(VMeasurement::WholeListHeights(Unit::Cm).join(QStringLiteral(", "))), translate("VCommandLine", "Set base for dimension B in the multisize measurements units (export mode)."),
translate("VCommandLine", "The height value")}, translate("VCommandLine", "The dimension B base")},
{LONG_OPTION_DIMENSION_C,
translate("VCommandLine", "Set base for dimension C in the multisize measurements units (export mode)."),
translate("VCommandLine", "The dimension C base")},
{LONG_OPTION_USER_MATERIAL, {LONG_OPTION_USER_MATERIAL,
translate("VCommandLine", "Use this option to override user material defined in pattern. The value must be in " translate("VCommandLine", "Use this option to override user material defined in pattern. The value must be in "
"form <number>@<user matrial name>. The number should be in range from 1 to %1. For example, 1@Fabric2. The " "form <number>@<user matrial name>. The number should be in range from 1 to %1. For example, 1@Fabric2. The "

View File

@ -115,11 +115,13 @@ public:
bool IsGuiEnabled()const; bool IsGuiEnabled()const;
bool IsSetGradationSize() const; bool IsSetDimensionA() const;
bool IsSetGradationHeight() const; bool IsSetDimensionB() const;
bool IsSetDimensionC() const;
QString OptGradationSize() const; int OptDimensionA() const;
QString OptGradationHeight() const; int OptDimensionB() const;
int OptDimensionC() const;
QMarginsF TiledPageMargins() const; QMarginsF TiledPageMargins() const;
VAbstractLayoutDialog::PaperSizeTemplate OptTiledPaperSize() const; VAbstractLayoutDialog::PaperSizeTemplate OptTiledPaperSize() const;

View File

@ -49,10 +49,11 @@ VFormulaPropertyEditor::VFormulaPropertyEditor(QWidget *parent)
// Create the tool button // Create the tool button
ToolButton = new QToolButton(this); ToolButton = new QToolButton(this);
ToolButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum); ToolButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
ToolButton->setText("..."); ToolButton->setText("...");
ToolButton->setIcon(QIcon("://icon/16x16/fx.png")); ToolButton->setIcon(QIcon("://icon/16x16/fx.png"));
ToolButton->setFixedWidth(20); ToolButton->setIconSize(QSize(16, 16));
ToolButton->setFixedSize(24, 24);
ToolButton->installEventFilter(this); ToolButton->installEventFilter(this);
setFocusProxy(ToolButton); // Make the ToolButton the focus proxy setFocusProxy(ToolButton); // Make the ToolButton the focus proxy
setFocusPolicy(ToolButton->focusPolicy()); setFocusPolicy(ToolButton->focusPolicy());
@ -60,6 +61,7 @@ VFormulaPropertyEditor::VFormulaPropertyEditor(QWidget *parent)
// Create the text label // Create the text label
TextLabel = new QLabel(this); TextLabel = new QLabel(this);
TextLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
TextLabel->setText(formula.getStringValue()); TextLabel->setText(formula.getStringValue());
// The layout (a horizontal layout) // The layout (a horizontal layout)
@ -68,7 +70,7 @@ VFormulaPropertyEditor::VFormulaPropertyEditor(QWidget *parent)
layout->setMargin(0); layout->setMargin(0);
layout->addWidget(TextLabel); layout->addWidget(TextLabel);
// Spacer (this is needed for proper display of the label and button) // Spacer (this is needed for proper display of the label and button)
layout->addSpacerItem(new QSpacerItem(1000000000, 0, QSizePolicy::Expanding, QSizePolicy::Expanding)); layout->addSpacerItem(new QSpacerItem(1000000000, 0, QSizePolicy::Expanding, QSizePolicy::Preferred));
layout->addWidget(ToolButton); layout->addWidget(ToolButton);
} }

File diff suppressed because it is too large Load Diff

View File

@ -67,35 +67,86 @@ private:
void ShowItemOptions(QGraphicsItem *item); void ShowItemOptions(QGraphicsItem *item);
template<class Tool> template<class Tool>
void SetPointName(const QString &name); void SetPointName(VPE::VProperty *property);
template<class Tool> template<class Tool>
void SetPointName1(const QString &name); void SetPointName1(VPE::VProperty *property);
template<class Tool> template<class Tool>
void SetPointName2(const QString &name); void SetPointName2(VPE::VProperty *property);
template<class Tool> template<class Tool>
void SetOperationSuffix(const QString &suffix); void SetOperationSuffix(VPE::VProperty *property);
template<class Type> template<class Type>
Type GetCrossPoint(const QVariant &value); Type GetCrossPoint(const QVariant &value);
template<class Tool> template<class Tool>
void SetCrossCirclesPoint(const QVariant &value); void SetCrossCirclesPoint(VPE::VProperty *property);
template<class Tool> template<class Tool>
void SetVCrossCurvesPoint(const QVariant &value); void SetVCrossCurvesPoint(VPE::VProperty *property);
template<class Tool> template<class Tool>
void SetHCrossCurvesPoint(const QVariant &value); void SetHCrossCurvesPoint(VPE::VProperty *property);
template<class Tool> template<class Tool>
void SetAxisType(const QVariant &value); void SetAxisType(VPE::VProperty *property);
template<class Tool>
void SetNotes(VPE::VProperty *property);
template<class Tool>
void SetAlias(VPE::VProperty *property);
template<class Tool>
void SetAlias1(VPE::VProperty *property);
template<class Tool>
void SetAlias2(VPE::VProperty *property);
template<class Tool>
void SetLineType(VPE::VProperty *property);
template<class Tool>
void SetLineColor(VPE::VProperty *property);
template<class Tool>
void SetFormulaLength(VPE::VProperty *property);
template<class Tool>
void SetFormulaAngle(VPE::VProperty *property);
template<class Tool>
void SetFormulaRadius(VPE::VProperty *property);
template<class Tool>
void SetFormulaF1(VPE::VProperty *property);
template<class Tool>
void SetFormulaF2(VPE::VProperty *property);
template<class Tool>
void SetPenStyle(VPE::VProperty *property);
template<class Tool>
void SetFormulaRotationAngle(VPE::VProperty *property);
template<class Tool>
void SetApproximationScale(VPE::VProperty *property);
template<class Tool> template<class Tool>
void AddPropertyObjectName(Tool *i, const QString &propertyName, bool readOnly = false); void AddPropertyObjectName(Tool *i, const QString &propertyName, bool readOnly = false);
template<class Tool>
void AddPropertyAlias(Tool *i, const QString &propertyName);
template<class Tool>
void AddPropertyAlias1(Tool *i, const QString &propertyName);
template<class Tool>
void AddPropertyAlias2(Tool *i, const QString &propertyName);
template<class Tool> template<class Tool>
void AddPropertyPointName1(Tool *i, const QString &propertyName); void AddPropertyPointName1(Tool *i, const QString &propertyName);
@ -131,6 +182,7 @@ private:
void AddPropertyFormula(const QString &propertyName, const VFormula &formula, const QString &attrName); void AddPropertyFormula(const QString &propertyName, const VFormula &formula, const QString &attrName);
void AddPropertyParentPointName(const QString &pointName, const QString &propertyName, void AddPropertyParentPointName(const QString &pointName, const QString &propertyName,
const QString &propertyAttribure); const QString &propertyAttribure);
void AddPropertyText(const QString &propertyName, const QString &text, const QString &attrName);
QStringList PropertiesList() const; QStringList PropertiesList() const;

View File

@ -373,7 +373,7 @@ void DialogFinalMeasurements::SaveFormula()
{ {
QTableWidgetItem *result = ui->tableWidget->item(row, 1); QTableWidgetItem *result = ui->tableWidget->item(row, 1);
//Show unit in dialog lable (cm, mm or inch) //Show unit in dialog lable (cm, mm or inch)
const QString postfix = UnitsToStr(qApp->patternUnit()); const QString postfix = UnitsToStr(qApp->patternUnits());
ui->labelCalculatedValue->setText(result->text() + QChar(QChar::Space) +postfix); ui->labelCalculatedValue->setText(result->text() + QChar(QChar::Space) +postfix);
return; return;
} }
@ -381,7 +381,7 @@ void DialogFinalMeasurements::SaveFormula()
if (text.isEmpty()) if (text.isEmpty())
{ {
//Show unit in dialog lable (cm, mm or inch) //Show unit in dialog lable (cm, mm or inch)
const QString postfix = UnitsToStr(qApp->patternUnit()); const QString postfix = UnitsToStr(qApp->patternUnits());
ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field.")); ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field."));
return; return;
} }
@ -455,7 +455,7 @@ void DialogFinalMeasurements::Fx()
dialog->setWindowTitle(tr("Edit measurement")); dialog->setWindowTitle(tr("Edit measurement"));
dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditFormula->toPlainText(), dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditFormula->toPlainText(),
qApp->Settings()->GetOsSeparator())); qApp->Settings()->GetOsSeparator()));
const QString postfix = UnitsToStr(qApp->patternUnit(), true); const QString postfix = UnitsToStr(qApp->patternUnits(), true);
dialog->setPostfix(postfix);//Show unit in dialog lable (cm, mm or inch) dialog->setPostfix(postfix);//Show unit in dialog lable (cm, mm or inch)
if (dialog->exec() == QDialog::Accepted) if (dialog->exec() == QDialog::Accepted)
@ -513,7 +513,7 @@ void DialogFinalMeasurements::FillFinalMeasurements(bool freshCall)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogFinalMeasurements::ShowUnits() void DialogFinalMeasurements::ShowUnits()
{ {
const QString unit = UnitsToStr(qApp->patternUnit()); const QString unit = UnitsToStr(qApp->patternUnits());
{ {
// calculated value // calculated value
@ -554,7 +554,7 @@ void DialogFinalMeasurements::AddCell(const QString &text, int row, int column,
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool DialogFinalMeasurements::EvalUserFormula(const QString &formula, bool fromUser) bool DialogFinalMeasurements::EvalUserFormula(const QString &formula, bool fromUser)
{ {
const QString postfix = UnitsToStr(qApp->patternUnit());//Show unit in dialog lable (cm, mm or inch) const QString postfix = UnitsToStr(qApp->patternUnits());//Show unit in dialog lable (cm, mm or inch)
if (formula.isEmpty()) if (formula.isEmpty())
{ {
ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field.")); ui->labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field."));

View File

@ -268,7 +268,7 @@ void DialogIncrements::FillAnglesCurves()
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogIncrements::ShowUnits() void DialogIncrements::ShowUnits()
{ {
const QString unit = UnitsToStr(qApp->patternUnit()); const QString unit = UnitsToStr(qApp->patternUnits());
ShowHeaderUnits(ui->tableWidgetIncrement, 1, unit);// calculated value ShowHeaderUnits(ui->tableWidgetIncrement, 1, unit);// calculated value
ShowHeaderUnits(ui->tableWidgetIncrement, 2, unit);// formula ShowHeaderUnits(ui->tableWidgetIncrement, 2, unit);// formula
@ -361,7 +361,7 @@ QString DialogIncrements::ClearIncrementName(const QString &name) const
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool DialogIncrements::EvalIncrementFormula(const QString &formula, bool fromUser, VContainer *data, QLabel *label) bool DialogIncrements::EvalIncrementFormula(const QString &formula, bool fromUser, VContainer *data, QLabel *label)
{ {
const QString postfix = UnitsToStr(qApp->patternUnit());//Show unit in dialog lable (cm, mm or inch) const QString postfix = UnitsToStr(qApp->patternUnits());//Show unit in dialog lable (cm, mm or inch)
if (formula.isEmpty()) if (formula.isEmpty())
{ {
label->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field.")); label->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field."));
@ -816,6 +816,9 @@ void DialogIncrements::FullUpdateFromFile()
{ {
hasChanges = false; hasChanges = false;
const int incrementRow = ui->tableWidgetIncrement->currentRow();
const int pcRow = ui->tableWidgetPC->currentRow();
ui->tableWidgetLines->clearContents(); ui->tableWidgetLines->clearContents();
ui->tableWidgetSplines->clearContents(); ui->tableWidgetSplines->clearContents();
ui->tableWidgetAnglesCurves->clearContents(); ui->tableWidgetAnglesCurves->clearContents();
@ -835,6 +838,9 @@ void DialogIncrements::FullUpdateFromFile()
search->RefreshList(ui->lineEditFind->text()); search->RefreshList(ui->lineEditFind->text());
searchPC->RefreshList(ui->lineEditFindPC->text()); searchPC->RefreshList(ui->lineEditFindPC->text());
ui->tableWidgetIncrement->selectRow(incrementRow);
ui->tableWidgetPC->selectRow(pcRow);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -1222,7 +1228,7 @@ void DialogIncrements::SaveIncrFormula()
{ {
QTableWidgetItem *result = table->item(row, 1); QTableWidgetItem *result = table->item(row, 1);
//Show unit in dialog lable (cm, mm or inch) //Show unit in dialog lable (cm, mm or inch)
const QString postfix = UnitsToStr(qApp->patternUnit()); const QString postfix = UnitsToStr(qApp->patternUnits());
labelCalculatedValue->setText(result->text() + QChar(QChar::Space) +postfix); labelCalculatedValue->setText(result->text() + QChar(QChar::Space) +postfix);
return; return;
} }
@ -1230,7 +1236,7 @@ void DialogIncrements::SaveIncrFormula()
if (text.isEmpty()) if (text.isEmpty())
{ {
//Show unit in dialog lable (cm, mm or inch) //Show unit in dialog lable (cm, mm or inch)
const QString postfix = UnitsToStr(qApp->patternUnit()); const QString postfix = UnitsToStr(qApp->patternUnits());
labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field.")); labelCalculatedValue->setText(tr("Error") + " (" + postfix + "). " + tr("Empty field."));
return; return;
} }
@ -1368,7 +1374,7 @@ void DialogIncrements::Fx()
dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(plainTextEditFormula->toPlainText(), dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(plainTextEditFormula->toPlainText(),
qApp->Settings()->GetOsSeparator())); qApp->Settings()->GetOsSeparator()));
const QString postfix = UnitsToStr(qApp->patternUnit(), true); const QString postfix = UnitsToStr(qApp->patternUnits(), true);
dialog->setPostfix(postfix);//Show unit in dialog lable (cm, mm or inch) dialog->setPostfix(postfix);//Show unit in dialog lable (cm, mm or inch)
if (dialog->exec() == QDialog::Accepted) if (dialog->exec() == QDialog::Accepted)

View File

@ -71,7 +71,7 @@ DialogLayoutScale::~DialogLayoutScale()
void DialogLayoutScale::SetTiledMargins(QMarginsF margins) void DialogLayoutScale::SetTiledMargins(QMarginsF margins)
{ {
// read Margins top, right, bottom, left // read Margins top, right, bottom, left
margins = UnitConvertor(margins, Unit::Mm, qApp->patternUnit()); margins = UnitConvertor(margins, Unit::Mm, qApp->patternUnits());
ui->doubleSpinBoxLeftField->setValue(margins.left()); ui->doubleSpinBoxLeftField->setValue(margins.left());
ui->doubleSpinBoxTopField->setValue(margins.top()); ui->doubleSpinBoxTopField->setValue(margins.top());
@ -89,7 +89,7 @@ QMarginsF DialogLayoutScale::GetTiledMargins() const
ui->doubleSpinBoxBottomField->value() ui->doubleSpinBoxBottomField->value()
); );
return UnitConvertor(margins, qApp->patternUnit(), Unit::Mm); return UnitConvertor(margins, qApp->patternUnits(), Unit::Mm);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -181,7 +181,7 @@ void DialogLayoutScale::VerticalScaleChanged(double d)
void DialogLayoutScale::ReadSettings() void DialogLayoutScale::ReadSettings()
{ {
VValentinaSettings *settings = qApp->ValentinaSettings(); VValentinaSettings *settings = qApp->ValentinaSettings();
const Unit unit = qApp->patternUnit(); const Unit unit = qApp->patternUnits();
// read Margins top, right, bottom, left // read Margins top, right, bottom, left
const QMarginsF margins = settings->GetTiledPDFMargins(unit); const QMarginsF margins = settings->GetTiledPDFMargins(unit);
@ -201,7 +201,7 @@ void DialogLayoutScale::ReadSettings()
void DialogLayoutScale::WriteSettings() const void DialogLayoutScale::WriteSettings() const
{ {
VValentinaSettings *settings = qApp->ValentinaSettings(); VValentinaSettings *settings = qApp->ValentinaSettings();
const Unit unit = qApp->patternUnit(); const Unit unit = qApp->patternUnits();
// write Margins top, right, bottom, left // write Margins top, right, bottom, left
QMarginsF margins = QMarginsF( QMarginsF margins = QMarginsF(

View File

@ -82,8 +82,7 @@ void DialogPatternMaterials::SetPatternMaterials(const QMap<int, QString> &list)
for (int i = 0; i < userMaterialPlaceholdersQuantity; ++i) for (int i = 0; i < userMaterialPlaceholdersQuantity; ++i)
{ {
const QString translated = qApp->TrVars()->PlaceholderToUser(pl_userMaterial + QString::number(i + 1)); QTableWidgetItem *item = new QTableWidgetItem(per + pl_userMaterial + QString::number(i + 1) + per);
QTableWidgetItem *item = new QTableWidgetItem(per + translated + per);
item->setFlags(item->flags() ^ Qt::ItemIsEditable); item->setFlags(item->flags() ^ Qt::ItemIsEditable);
item->setTextAlignment(Qt::AlignLeft); item->setTextAlignment(Qt::AlignLeft);

View File

@ -34,6 +34,7 @@
#include <QMenu> #include <QMenu>
#include <QDate> #include <QDate>
#include <QMessageBox> #include <QMessageBox>
#include <QRadioButton>
#include "../xml/vpattern.h" #include "../xml/vpattern.h"
#include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vcontainer.h"
@ -42,21 +43,12 @@
#include "dialogknownmaterials.h" #include "dialogknownmaterials.h"
#include "dialogpatternmaterials.h" #include "dialogpatternmaterials.h"
// calc how many combinations we have
static const int heightsCount = (static_cast<int>(GHeights::H200) -
(static_cast<int>(GHeights::H50) - heightStep))/heightStep;
static const int sizesCount = (static_cast<int>(GSizes::S72) - (static_cast<int>(GSizes::S22) - sizeStep))/sizeStep;
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pattern, QWidget *parent) DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pattern, QWidget *parent)
: QDialog(parent), : QDialog(parent),
ui(new Ui::DialogPatternProperties), ui(new Ui::DialogPatternProperties),
doc(doc), doc(doc),
pattern(pattern), pattern(pattern),
heightsChecked(heightsCount),
sizesChecked(sizesCount),
heights (QMap<GHeights, bool>()),
sizes(QMap<GSizes, bool>()),
data(QMap<QCheckBox *, int>()), data(QMap<QCheckBox *, int>()),
descriptionChanged(false), descriptionChanged(false),
gradationChanged(false), gradationChanged(false),
@ -79,6 +71,8 @@ DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pat
setWindowFlags(Qt::Window); setWindowFlags(Qt::Window);
#endif #endif
ui->lineEditCustomerEmail->setClearButtonEnabled(true);
SCASSERT(doc != nullptr) SCASSERT(doc != nullptr)
VValentinaSettings *settings = qApp->ValentinaSettings(); VValentinaSettings *settings = qApp->ValentinaSettings();
@ -140,44 +134,11 @@ DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pat
connect(bCancel, &QPushButton::clicked, this, &DialogPatternProperties::close); connect(bCancel, &QPushButton::clicked, this, &DialogPatternProperties::close);
ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setCurrentIndex(0);
if (qApp->patternType() != MeasurementsType::Multisize) if (qApp->GetMeasurementsType() != MeasurementsType::Multisize)
{ {
ui->tabWidget->setTabEnabled(1, false); ui->tabWidget->setTabEnabled(1, false);
} }
InitHeights();
InitSizes();
heights = doc->GetGradationHeights();
sizes = doc->GetGradationSizes();
SetOptions(heights);
SetOptions(sizes);
InitComboBox(ui->comboBoxHeight, heights);
InitComboBox(ui->comboBoxSize, sizes);
const QString height = QString().setNum(doc->GetDefCustomHeight());
SetDefaultHeight(height);
const QString size = QString().setNum(doc->GetDefCustomSize());
SetDefaultSize(size);
connect(ui->radioButtonDefFromP, &QRadioButton::toggled, this, [this]()
{
ui->comboBoxHeight->setEnabled(ui->radioButtonDefFromP->isChecked());
ui->comboBoxSize->setEnabled(ui->radioButtonDefFromP->isChecked());
});
auto DefValueChanged = [this](){defaultChanged = true;};
connect(ui->radioButtonDefFromP, &QRadioButton::toggled, this, DefValueChanged);
ui->radioButtonDefFromP->setChecked(doc->IsDefCustom());
connect(ui->comboBoxHeight, QOverload<int>::of(&QComboBox::currentIndexChanged), this, DefValueChanged);
connect(ui->comboBoxSize, QOverload<int>::of(&QComboBox::currentIndexChanged), this, DefValueChanged);
const bool readOnly = doc->IsReadOnly(); const bool readOnly = doc->IsReadOnly();
ui->checkBoxPatternReadOnly->setChecked(readOnly); ui->checkBoxPatternReadOnly->setChecked(readOnly);
if (not readOnly) if (not readOnly)
@ -198,21 +159,29 @@ DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pat
ui->lineEditPatternNumber->setText(doc->GetPatternNumber()); ui->lineEditPatternNumber->setText(doc->GetPatternNumber());
ui->lineEditCompanyName->setText(doc->GetCompanyName()); ui->lineEditCompanyName->setText(doc->GetCompanyName());
if (qApp->patternType() == MeasurementsType::Individual)
{
ui->lineEditCustomerName->setText(qApp->GetCustomerName()); ui->lineEditCustomerName->setText(qApp->GetCustomerName());
ui->lineEditCustomerEmail->setText(qApp->CustomerEmail());
ui->dateEditCustomerBirthDate->setDate(qApp->GetCustomerBirthDate());
if (qApp->GetMeasurementsType() == MeasurementsType::Individual)
{
ui->lineEditCustomerName->setReadOnly(true); ui->lineEditCustomerName->setReadOnly(true);
ui->lineEditCustomerName->setToolTip(tr("The customer name from individual measurements")); ui->lineEditCustomerName->setToolTip(tr("The customer name from individual measurements"));
}
else ui->lineEditCustomerEmail->setReadOnly(true);
{ ui->lineEditCustomerEmail->setToolTip(tr("The customer email from individual measurements"));
ui->lineEditCustomerName->setText(doc->GetCustomerName());
ui->dateEditCustomerBirthDate->setReadOnly(true);
ui->dateEditCustomerBirthDate->setToolTip(tr("The customer birth date from individual measurements"));
} }
connect(ui->lineEditPatternName, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged); connect(ui->lineEditPatternName, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged);
connect(ui->lineEditPatternNumber, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged); connect(ui->lineEditPatternNumber, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged);
connect(ui->lineEditCompanyName, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged); connect(ui->lineEditCompanyName, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged);
connect(ui->lineEditCustomerName, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged); connect(ui->lineEditCustomerName, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged);
connect(ui->lineEditCustomerEmail, &QLineEdit::editingFinished, this, &DialogPatternProperties::LabelDataChanged);
connect(ui->dateEditCustomerBirthDate, &QDateEdit::editingFinished, this,
&DialogPatternProperties::LabelDataChanged);
connect(ui->pushButtonEditPatternLabel, &QPushButton::clicked, this, &DialogPatternProperties::EditLabel); connect(ui->pushButtonEditPatternLabel, &QPushButton::clicked, this, &DialogPatternProperties::EditLabel);
connect(ui->pushButtonPatternMaterials, &QPushButton::clicked, this, connect(ui->pushButtonPatternMaterials, &QPushButton::clicked, this,
&DialogPatternProperties::ManagePatternMaterials); &DialogPatternProperties::ManagePatternMaterials);
@ -245,13 +214,9 @@ void DialogPatternProperties::Apply()
SaveDescription(); SaveDescription();
break; break;
case 1: case 1:
SaveGradation();
SaveDefValues();
break;
case 2:
SaveReadOnlyState(); SaveReadOnlyState();
break; break;
case 3: case 2:
SaveLabelData(); SaveLabelData();
SaveTemplateData(); SaveTemplateData();
SaveMaterialData(); SaveMaterialData();
@ -266,8 +231,6 @@ void DialogPatternProperties::Apply()
void DialogPatternProperties::Ok() void DialogPatternProperties::Ok()
{ {
SaveDescription(); SaveDescription();
SaveGradation();
SaveDefValues();
SaveReadOnlyState(); SaveReadOnlyState();
SaveLabelData(); SaveLabelData();
SaveTemplateData(); SaveTemplateData();
@ -278,143 +241,12 @@ void DialogPatternProperties::Ok()
close(); close();
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SelectAll(int state)
{
QCheckBox* box = qobject_cast<QCheckBox*>(sender());
if (box)
{
if (box == ui->checkBoxAllHeights)
{
if (state == Qt::Checked)
{
SetHeightsChecked(true);
}
else if (state == Qt::Unchecked)
{
SetHeightsChecked(false);
}
if (data.contains(box))
{
heights.insert(static_cast<GHeights>(data.value(box)), box->isChecked());
}
}
if (box == ui->checkBoxAllSizes)
{
if (state == Qt::Checked)
{
SetSizesChecked(true);
}
else if (state == Qt::Unchecked)
{
SetSizesChecked(false);
}
if (data.contains(box))
{
sizes.insert(static_cast<GSizes>(data.value(box)), box->isChecked());
}
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::CheckStateHeight(int state)
{
QCheckBox* box = qobject_cast<QCheckBox*>(sender());
if (box)
{
if (state == Qt::Checked)
{
++heightsChecked;
if (heightsChecked == heightsCount)
{
ui->checkBoxAllHeights->blockSignals(true);//don't touch anothers checkboxes
ui->checkBoxAllHeights->setCheckState(Qt::Checked);
heights.insert(GHeights::ALL, true);
ui->checkBoxAllHeights->blockSignals(false);
}
}
else if (state == Qt::Unchecked)
{
if (heightsChecked == heightsCount)
{
ui->checkBoxAllHeights->blockSignals(true);//don't touch anothers checkboxes
ui->checkBoxAllHeights->setCheckState(Qt::Unchecked);
heights.insert(GHeights::ALL, false);
ui->checkBoxAllHeights->blockSignals(false);
}
--heightsChecked;
}
if (data.contains(box))
{
heights.insert(static_cast<GHeights>(data.value(box)), box->isChecked());
}
UpdateDefHeight();
CheckApplyOk();
gradationChanged = true;
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::CheckStateSize(int state)
{
QCheckBox* box = qobject_cast<QCheckBox*>(sender());
if (box)
{
if (state == Qt::Checked)
{
++sizesChecked;
if (sizesChecked == sizesCount)
{
ui->checkBoxAllSizes->blockSignals(true);//don't touch anothers checkboxes
ui->checkBoxAllSizes->setCheckState(Qt::Checked);
sizes.insert(GSizes::ALL, true);
ui->checkBoxAllSizes->blockSignals(false);
}
}
else if (state == Qt::Unchecked)
{
if (sizesChecked == sizesCount)
{
ui->checkBoxAllSizes->blockSignals(true);//don't touch anothers checkboxes
ui->checkBoxAllSizes->setCheckState(Qt::Unchecked);
sizes.insert(GSizes::ALL, false);
ui->checkBoxAllSizes->blockSignals(false);
}
--sizesChecked;
}
if (data.contains(box))
{
sizes.insert(static_cast<GSizes>(data.value(box)), box->isChecked());
}
UpdateDefSize();
CheckApplyOk();
gradationChanged = true;
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::DescEdited() void DialogPatternProperties::DescEdited()
{ {
descriptionChanged = true; descriptionChanged = true;
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::DefValueChanged()
{
defaultChanged = true;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::LabelDataChanged() void DialogPatternProperties::LabelDataChanged()
{ {
@ -422,134 +254,6 @@ void DialogPatternProperties::LabelDataChanged()
askSaveLabelData = true; askSaveLabelData = true;
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SetHeightsChecked(bool enabled)
{
ui->checkBoxH50->setChecked(enabled);
ui->checkBoxH56->setChecked(enabled);
ui->checkBoxH62->setChecked(enabled);
ui->checkBoxH68->setChecked(enabled);
ui->checkBoxH74->setChecked(enabled);
ui->checkBoxH80->setChecked(enabled);
ui->checkBoxH86->setChecked(enabled);
ui->checkBoxH92->setChecked(enabled);
ui->checkBoxH98->setChecked(enabled);
ui->checkBoxH104->setChecked(enabled);
ui->checkBoxH110->setChecked(enabled);
ui->checkBoxH116->setChecked(enabled);
ui->checkBoxH122->setChecked(enabled);
ui->checkBoxH128->setChecked(enabled);
ui->checkBoxH134->setChecked(enabled);
ui->checkBoxH140->setChecked(enabled);
ui->checkBoxH146->setChecked(enabled);
ui->checkBoxH152->setChecked(enabled);
ui->checkBoxH158->setChecked(enabled);
ui->checkBoxH164->setChecked(enabled);
ui->checkBoxH170->setChecked(enabled);
ui->checkBoxH176->setChecked(enabled);
ui->checkBoxH182->setChecked(enabled);
ui->checkBoxH188->setChecked(enabled);
ui->checkBoxH194->setChecked(enabled);
ui->checkBoxH200->setChecked(enabled);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SetSizesChecked(bool enabled)
{
ui->checkBoxS22->setChecked(enabled);
ui->checkBoxS24->setChecked(enabled);
ui->checkBoxS26->setChecked(enabled);
ui->checkBoxS28->setChecked(enabled);
ui->checkBoxS30->setChecked(enabled);
ui->checkBoxS32->setChecked(enabled);
ui->checkBoxS34->setChecked(enabled);
ui->checkBoxS36->setChecked(enabled);
ui->checkBoxS38->setChecked(enabled);
ui->checkBoxS40->setChecked(enabled);
ui->checkBoxS42->setChecked(enabled);
ui->checkBoxS44->setChecked(enabled);
ui->checkBoxS46->setChecked(enabled);
ui->checkBoxS48->setChecked(enabled);
ui->checkBoxS50->setChecked(enabled);
ui->checkBoxS52->setChecked(enabled);
ui->checkBoxS54->setChecked(enabled);
ui->checkBoxS56->setChecked(enabled);
ui->checkBoxS58->setChecked(enabled);
ui->checkBoxS60->setChecked(enabled);
ui->checkBoxS62->setChecked(enabled);
ui->checkBoxS64->setChecked(enabled);
ui->checkBoxS66->setChecked(enabled);
ui->checkBoxS68->setChecked(enabled);
ui->checkBoxS70->setChecked(enabled);
ui->checkBoxS72->setChecked(enabled);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::InitHeights()
{
Init(ui->checkBoxAllHeights, static_cast<int>(GHeights::ALL), &DialogPatternProperties::SelectAll);
Init(ui->checkBoxH50, static_cast<int>(GHeights::H50), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH56, static_cast<int>(GHeights::H56), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH62, static_cast<int>(GHeights::H62), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH68, static_cast<int>(GHeights::H68), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH74, static_cast<int>(GHeights::H74), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH80, static_cast<int>(GHeights::H80), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH86, static_cast<int>(GHeights::H86), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH92, static_cast<int>(GHeights::H92), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH98, static_cast<int>(GHeights::H98), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH104, static_cast<int>(GHeights::H104), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH110, static_cast<int>(GHeights::H110), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH116, static_cast<int>(GHeights::H116), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH122, static_cast<int>(GHeights::H122), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH128, static_cast<int>(GHeights::H128), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH134, static_cast<int>(GHeights::H134), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH140, static_cast<int>(GHeights::H140), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH146, static_cast<int>(GHeights::H146), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH152, static_cast<int>(GHeights::H152), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH158, static_cast<int>(GHeights::H158), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH164, static_cast<int>(GHeights::H164), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH170, static_cast<int>(GHeights::H170), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH176, static_cast<int>(GHeights::H176), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH182, static_cast<int>(GHeights::H182), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH188, static_cast<int>(GHeights::H188), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH194, static_cast<int>(GHeights::H194), &DialogPatternProperties::CheckStateHeight);
Init(ui->checkBoxH200, static_cast<int>(GHeights::H200), &DialogPatternProperties::CheckStateHeight);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::InitSizes()
{
Init(ui->checkBoxAllSizes, static_cast<int>(GSizes::ALL), &DialogPatternProperties::SelectAll);
Init(ui->checkBoxS22, static_cast<int>(GSizes::S22), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS24, static_cast<int>(GSizes::S24), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS26, static_cast<int>(GSizes::S26), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS28, static_cast<int>(GSizes::S28), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS30, static_cast<int>(GSizes::S30), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS32, static_cast<int>(GSizes::S32), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS34, static_cast<int>(GSizes::S34), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS36, static_cast<int>(GSizes::S36), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS38, static_cast<int>(GSizes::S38), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS40, static_cast<int>(GSizes::S40), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS42, static_cast<int>(GSizes::S42), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS44, static_cast<int>(GSizes::S44), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS46, static_cast<int>(GSizes::S46), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS48, static_cast<int>(GSizes::S48), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS50, static_cast<int>(GSizes::S50), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS52, static_cast<int>(GSizes::S52), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS54, static_cast<int>(GSizes::S54), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS56, static_cast<int>(GSizes::S56), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS58, static_cast<int>(GSizes::S58), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS60, static_cast<int>(GSizes::S60), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS62, static_cast<int>(GSizes::S62), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS64, static_cast<int>(GSizes::S64), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS66, static_cast<int>(GSizes::S66), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS68, static_cast<int>(GSizes::S68), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS70, static_cast<int>(GSizes::S70), &DialogPatternProperties::CheckStateSize);
Init(ui->checkBoxS72, static_cast<int>(GSizes::S72), &DialogPatternProperties::CheckStateSize);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::InitComboBoxFormats(QComboBox *box, const QStringList &items, void DialogPatternProperties::InitComboBoxFormats(QComboBox *box, const QStringList &items,
const QString &currentFormat) const QString &currentFormat)
@ -568,14 +272,6 @@ void DialogPatternProperties::InitComboBoxFormats(QComboBox *box, const QStringL
} }
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::CheckApplyOk()
{
bool enable = !(heightsChecked == 0 || sizesChecked == 0);
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(enable);
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(enable);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SaveDescription() void DialogPatternProperties::SaveDescription()
{ {
@ -589,38 +285,6 @@ void DialogPatternProperties::SaveDescription()
} }
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SaveGradation()
{
if (gradationChanged)
{
doc->SetGradationHeights(heights);
doc->SetGradationSizes(sizes);
emit UpdateGradation();
gradationChanged = false;
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SaveDefValues()
{
if (defaultChanged)
{
if (ui->radioButtonDefFromM->isChecked())
{
doc->SetDefCustom(false);
}
else
{
doc->SetDefCustom(true);
doc->SetDefCustomHeight(ui->comboBoxHeight->currentText().toInt());
doc->SetDefCustomSize(ui->comboBoxSize->currentText().toInt());
}
defaultChanged = false;
emit doc->patternChanged(false);
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SaveLabelData() void DialogPatternProperties::SaveLabelData()
{ {
@ -629,9 +293,11 @@ void DialogPatternProperties::SaveLabelData()
doc->SetPatternName(ui->lineEditPatternName->text()); doc->SetPatternName(ui->lineEditPatternName->text());
doc->SetPatternNumber(ui->lineEditPatternNumber->text()); doc->SetPatternNumber(ui->lineEditPatternNumber->text());
doc->SetCompanyName(ui->lineEditCompanyName->text()); doc->SetCompanyName(ui->lineEditCompanyName->text());
if (qApp->patternType() != MeasurementsType::Individual) if (qApp->GetMeasurementsType() != MeasurementsType::Individual)
{ {
doc->SetCustomerName(ui->lineEditCustomerName->text()); doc->SetCustomerName(ui->lineEditCustomerName->text());
doc->SetCustomerBirthDate(ui->dateEditCustomerBirthDate->date());
doc->SetCustomerEmail(ui->lineEditCustomerEmail->text());
} }
doc->SetLabelDateFormat(ui->comboBoxDateFormat->currentText()); doc->SetLabelDateFormat(ui->comboBoxDateFormat->currentText());
doc->SetLabelTimeFormat(ui->comboBoxTimeFormat->currentText()); doc->SetLabelTimeFormat(ui->comboBoxTimeFormat->currentText());
@ -672,114 +338,6 @@ void DialogPatternProperties::SaveReadOnlyState()
} }
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SetDefaultHeight(const QString &def)
{
int index = ui->comboBoxHeight->findText(def);
if (index != -1)
{
ui->comboBoxHeight->setCurrentIndex(index);
defaultChanged = true;
}
else
{
const int height = static_cast<int>(pattern->height());
index = ui->comboBoxHeight->findText(QString().setNum(height));
if (index != -1)
{
ui->comboBoxHeight->setCurrentIndex(index);
defaultChanged = true;
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::SetDefaultSize(const QString &def)
{
int index = ui->comboBoxSize->findText(def);
if (index != -1)
{
ui->comboBoxSize->setCurrentIndex(index);
defaultChanged = true;
}
else
{
const int size = static_cast<int>(pattern->size());
index = ui->comboBoxSize->findText(QString().setNum(size));
if (index != -1)
{
ui->comboBoxSize->setCurrentIndex(index);
defaultChanged = true;
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::UpdateDefHeight()
{
const QString def = ui->comboBoxHeight->currentText();
InitComboBox(ui->comboBoxHeight, heights);
SetDefaultHeight(def);
}
//---------------------------------------------------------------------------------------------------------------------
void DialogPatternProperties::UpdateDefSize()
{
const QString def = ui->comboBoxSize->currentText();
InitComboBox(ui->comboBoxSize, sizes);
SetDefaultSize(def);
}
//---------------------------------------------------------------------------------------------------------------------
template<typename Func>
void DialogPatternProperties::Init(QCheckBox *check, int val, Func slot)
{
connect(check, &QCheckBox::stateChanged, this, slot);
data.insert(check, val);
}
//---------------------------------------------------------------------------------------------------------------------
template<typename GVal>
void DialogPatternProperties::SetOptions(const QMap<GVal, bool> &option)
{
if (option.value(GVal::ALL) == false)
{
QMapIterator<GVal, bool> i(option);
while (i.hasNext())
{
i.next();
if (i.value() == false && i.key() != GVal::ALL)
{
QCheckBox *box = data.key(static_cast<int>(i.key()));
if (box != nullptr)
{
box->setCheckState(Qt::Unchecked);
}
}
}
}
}
//---------------------------------------------------------------------------------------------------------------------
template<typename GVal>
void DialogPatternProperties::InitComboBox(QComboBox *box, const QMap<GVal, bool> &option)
{
SCASSERT(box != nullptr)
box->clear();
QMapIterator<GVal, bool> i(option);
while (i.hasNext())
{
i.next();
if (i.value() && i.key() != GVal::ALL)
{
box->addItem(QString().setNum(static_cast<int>(UnitConvertor(static_cast<int>(i.key()), Unit::Cm,
*pattern->GetPatternUnit()))));
}
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QImage DialogPatternProperties::GetImage() QImage DialogPatternProperties::GetImage()
{ {
@ -937,7 +495,7 @@ void DialogPatternProperties::EditLabel()
} }
} }
DialogEditLabel editor(doc); DialogEditLabel editor(doc, pattern);
templateDataChanged ? editor.SetTemplate(templateLines) : editor.SetTemplate(doc->GetPatternLabelTemplate()); templateDataChanged ? editor.SetTemplate(templateLines) : editor.SetTemplate(doc->GetPatternLabelTemplate());

View File

@ -50,16 +50,10 @@ class DialogPatternProperties : public QDialog
public: public:
explicit DialogPatternProperties(VPattern *doc, VContainer *pattern, QWidget *parent = nullptr); explicit DialogPatternProperties(VPattern *doc, VContainer *pattern, QWidget *parent = nullptr);
virtual ~DialogPatternProperties() override; virtual ~DialogPatternProperties() override;
signals:
void UpdateGradation();
private slots: private slots:
void DefValueChanged();
void LabelDataChanged(); void LabelDataChanged();
void Apply(); void Apply();
void Ok(); void Ok();
void SelectAll(int state);
void CheckStateHeight(int state);
void CheckStateSize(int state);
void DescEdited(); void DescEdited();
void ChangeImage(); void ChangeImage();
void SaveImage(); void SaveImage();
@ -70,10 +64,6 @@ private:
Ui::DialogPatternProperties *ui; Ui::DialogPatternProperties *ui;
VPattern *doc; VPattern *doc;
VContainer *pattern; VContainer *pattern;
int heightsChecked;
int sizesChecked;
QMap<GHeights, bool> heights;
QMap<GSizes, bool> sizes;
QMap<QCheckBox *, int> data; QMap<QCheckBox *, int> data;
bool descriptionChanged; bool descriptionChanged;
bool gradationChanged; bool gradationChanged;
@ -91,31 +81,13 @@ private:
QVector<VLabelTemplateLine> templateLines; QVector<VLabelTemplateLine> templateLines;
QMap<int, QString> patternMaterials; QMap<int, QString> patternMaterials;
void SetHeightsChecked(bool enabled);
void SetSizesChecked(bool enabled);
void InitHeights();
void InitSizes();
template<typename Func>
void Init(QCheckBox *check, int val, Func slot);
template<typename GVal>
void SetOptions(const QMap<GVal, bool> &option);
template<typename GVal>
void InitComboBox(QComboBox *box, const QMap<GVal, bool> &option);
void InitComboBoxFormats(QComboBox *box, const QStringList &items, const QString &currentFormat); void InitComboBoxFormats(QComboBox *box, const QStringList &items, const QString &currentFormat);
void CheckApplyOk();
void SaveDescription(); void SaveDescription();
void SaveGradation();
void SaveDefValues();
void SaveLabelData(); void SaveLabelData();
void SaveTemplateData(); void SaveTemplateData();
void SaveMaterialData(); void SaveMaterialData();
void SaveReadOnlyState(); void SaveReadOnlyState();
void SetDefaultHeight(const QString &def);
void SetDefaultSize(const QString &def);
void UpdateDefHeight();
void UpdateDefSize();
void InitImage(); void InitImage();
QImage GetImage(); QImage GetImage();
}; };

File diff suppressed because it is too large Load Diff

View File

@ -687,7 +687,7 @@ void DialogSaveLayout::SetTiledExportMode(bool tiledExportMode)
void DialogSaveLayout::SetTiledMargins(QMarginsF margins) void DialogSaveLayout::SetTiledMargins(QMarginsF margins)
{ {
// read Margins top, right, bottom, left // read Margins top, right, bottom, left
margins = UnitConvertor(margins, Unit::Mm, qApp->patternUnit()); margins = UnitConvertor(margins, Unit::Mm, qApp->patternUnits());
ui->doubleSpinBoxLeftField->setValue(margins.left()); ui->doubleSpinBoxLeftField->setValue(margins.left());
ui->doubleSpinBoxTopField->setValue(margins.top()); ui->doubleSpinBoxTopField->setValue(margins.top());
@ -705,7 +705,7 @@ QMarginsF DialogSaveLayout::GetTiledMargins() const
ui->doubleSpinBoxBottomField->value() ui->doubleSpinBoxBottomField->value()
); );
return UnitConvertor(margins, qApp->patternUnit(), Unit::Mm); return UnitConvertor(margins, qApp->patternUnits(), Unit::Mm);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -817,9 +817,9 @@ bool DialogSaveLayout::TestPdf()
QProcess proc; QProcess proc;
#if defined(Q_OS_WIN) || defined(Q_OS_OSX) #if defined(Q_OS_WIN) || defined(Q_OS_OSX)
// Seek pdftops in app bundle or near valentin.exe // Seek pdftops in app bundle or near valentin.exe
proc.start(qApp->applicationDirPath() + QLatin1String("/")+ PDFTOPS); proc.start(qApp->applicationDirPath() + QLatin1String("/")+ PDFTOPS, QStringList());
#else #else
proc.start(PDFTOPS); // Seek pdftops in standard path proc.start(PDFTOPS, QStringList()); // Seek pdftops in standard path
#endif #endif
if (proc.waitForStarted(15000) && (proc.waitForFinished(15000) || proc.state() == QProcess::NotRunning)) if (proc.waitForStarted(15000) && (proc.waitForFinished(15000) || proc.state() == QProcess::NotRunning))
{ {
@ -904,7 +904,7 @@ void DialogSaveLayout::RemoveFormatFromList(LayoutExportFormats format)
void DialogSaveLayout::ReadSettings() void DialogSaveLayout::ReadSettings()
{ {
VValentinaSettings *settings = qApp->ValentinaSettings(); VValentinaSettings *settings = qApp->ValentinaSettings();
const Unit unit = qApp->patternUnit(); const Unit unit = qApp->patternUnits();
// read Margins top, right, bottom, left // read Margins top, right, bottom, left
const QMarginsF margins = settings->GetTiledPDFMargins(unit); const QMarginsF margins = settings->GetTiledPDFMargins(unit);
@ -958,7 +958,7 @@ void DialogSaveLayout::WriteSettings() const
} }
VValentinaSettings *settings = qApp->ValentinaSettings(); VValentinaSettings *settings = qApp->ValentinaSettings();
const Unit unit = qApp->patternUnit(); const Unit unit = qApp->patternUnits();
// write Margins top, right, bottom, left // write Margins top, right, bottom, left
QMarginsF margins = QMarginsF( QMarginsF margins = QMarginsF(

View File

@ -297,7 +297,7 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos)
catch (const VExceptionBadId &) catch (const VExceptionBadId &)
{ {
const QString errorMsg = tr("Cannot find piece by id '%1'").arg(id); const QString errorMsg = tr("Cannot find piece by id '%1'").arg(id);
qWarning() << VAbstractApplication::patternMessageSignature + errorMsg; qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
} }
} }

View File

@ -230,7 +230,7 @@ void VWidgetGroups::CtxMenu(const QPoint &pos)
} }
else if (selectedAction == actionPreferences) else if (selectedAction == actionPreferences)
{ {
QScopedPointer<VContainer> fackeContainer(new VContainer(qApp->TrVars(), qApp->patternUnitP(), QScopedPointer<VContainer> fackeContainer(new VContainer(qApp->TrVars(), qApp->patternUnitsP(),
VContainer::UniqueNamespace())); VContainer::UniqueNamespace()));
QScopedPointer<DialogGroup> dialog(new DialogGroup(fackeContainer.data(), NULL_ID, this)); QScopedPointer<DialogGroup> dialog(new DialogGroup(fackeContainer.data(), NULL_ID, this));
dialog->SetName(doc->GetGroupName(id)); dialog->SetName(doc->GetGroupName(id));

View File

@ -80,17 +80,6 @@ int main(int argc, char *argv[])
VApplication app(argc, argv); VApplication app(argc, argv);
app.InitOptions(); app.InitOptions();
if (FvUpdater::IsStaledTestBuild())
{
qWarning() << QApplication::translate("Valentina",
"This test build is older than %1 days. To provide you with better "
"quality service we restrict the lifetime you can use a test build. "
"To continue using Valentina please update to newer test build. The "
"application will be shut down.")
.arg(FvUpdater::testBuildLifetime);
return V_EX_UNAVAILABLE;
}
if (VApplication::IsGUIMode()) if (VApplication::IsGUIMode())
{ {
// Set feed URL before doing anything else // Set feed URL before doing anything else

File diff suppressed because it is too large Load Diff

View File

@ -32,7 +32,9 @@
#include "mainwindowsnogui.h" #include "mainwindowsnogui.h"
#include "core/vcmdexport.h" #include "core/vcmdexport.h"
#include "../vmisc/vlockguard.h" #include "../vmisc/vlockguard.h"
#include "../vformat/vdimensions.h"
#include <QDoubleSpinBox>
#include <QPointer> #include <QPointer>
namespace Ui namespace Ui
@ -51,7 +53,6 @@ class DialogFinalMeasurements;
class VWidgetGroups; class VWidgetGroups;
class VWidgetDetails; class VWidgetDetails;
class QToolButton; class QToolButton;
class QDoubleSpinBox;
class QProgressBar; class QProgressBar;
class WatermarkWindow; class WatermarkWindow;
@ -110,6 +111,7 @@ protected:
virtual void PrepareSceneList(PreviewQuatilty quality) override; virtual void PrepareSceneList(PreviewQuatilty quality) override;
virtual void ExportToCSVData(const QString &fileName, bool withHeader, int mib, virtual void ExportToCSVData(const QString &fileName, bool withHeader, int mib,
const QChar &separator) final; const QChar &separator) final;
virtual void ToolBarStyle(QToolBar *bar) const override;
private slots: private slots:
void ScaleChanged(qreal scale); void ScaleChanged(qreal scale);
void MouseMove(const QPointF &scenePos); void MouseMove(const QPointF &scenePos);
@ -212,8 +214,11 @@ private slots:
void OpenAt(QAction *where); void OpenAt(QAction *where);
#endif //defined(Q_OS_MAC) #endif //defined(Q_OS_MAC)
void ChangedSize(const QString &text); void DimensionABaseChanged();
void ChangedHeight(const QString &text); void DimensionBBaseChanged();
void DimensionCBaseChanged();
void GradationChanged();
void ShowProgress(); void ShowProgress();
void ClearPatternMessages(); void ClearPatternMessages();
@ -270,13 +275,16 @@ private:
QLabel *leftGoToStage; QLabel *leftGoToStage;
QLabel *rightGoToStage; QLabel *rightGoToStage;
QTimer *autoSaveTimer; QTimer *autoSaveTimer;
QTimer *measurementsSyncTimer;
bool guiEnabled; bool guiEnabled;
QPointer<QComboBox> gradationHeights; QPointer<QComboBox> dimensionA{nullptr};
QPointer<QComboBox> gradationSizes; QPointer<QComboBox> dimensionB{nullptr};
QPointer<QLabel> gradationHeightsLabel; QPointer<QComboBox> dimensionC{nullptr};
QPointer<QLabel> gradationSizesLabel; QPointer<QLabel> dimensionALabel{nullptr};
QPointer<QLabel> zoomScale; QPointer<QLabel> dimensionBLabel{nullptr};
QPointer<QDoubleSpinBox> doubleSpinBoxScale; QPointer<QLabel> dimensionCLabel{nullptr};
QPointer<QLabel> zoomScale{nullptr};
QPointer<QDoubleSpinBox> doubleSpinBoxScale{nullptr};
VToolOptionsPropertyBrowser *toolOptions; VToolOptionsPropertyBrowser *toolOptions;
VWidgetGroups *groupsWidget; VWidgetGroups *groupsWidget;
VWidgetDetails *detailsWidget; VWidgetDetails *detailsWidget;
@ -289,8 +297,16 @@ private:
QList<QPointer<WatermarkWindow>> m_watermarkEditors{}; QList<QPointer<WatermarkWindow>> m_watermarkEditors{};
void SetDefaultHeight(); int m_currentDimensionA{0};
void SetDefaultSize(); int m_currentDimensionB{0};
int m_currentDimensionC{0};
QSharedPointer<VMeasurements> m{};
QTimer *m_gradation;
void InitDimensionControls();
void InitDimensionGradation(int index, const MeasurementDimension_p &dimension, QPointer<QComboBox> control);
void ToolBarOption(); void ToolBarOption();
void ToolBarStages(); void ToolBarStages();
@ -342,15 +358,12 @@ private:
void InitAutoSave(); void InitAutoSave();
bool PatternPieceName(QString &name); bool PatternPieceName(QString &name);
QString CheckPathToMeasurements(const QString &patternPath, const QString &path); QString CheckPathToMeasurements(const QString &patternPath, const QString &path);
QComboBox *SetGradationList(QLabel *label, const QStringList &list);
void ChangePP(int index, bool zoomBestFit = true); void ChangePP(int index, bool zoomBestFit = true);
/** /**
* @brief EndVisualization try show dialog after and working with tool visualization. * @brief EndVisualization try show dialog after and working with tool visualization.
*/ */
void EndVisualization(bool click = false); void EndVisualization(bool click = false);
void ZoomFirstShow(); void ZoomFirstShow();
void UpdateHeightsList(const QStringList &list);
void UpdateSizesList(const QStringList &list);
void AddDocks(); void AddDocks();
void InitDocksContain(); void InitDocksContain();
@ -364,14 +377,15 @@ private:
void InitScenes(); void InitScenes();
bool LoadMeasurements(const QString &path); bool LoadMeasurements(const QString &path);
bool UpdateMeasurements(const QString &path, int size, int height); bool UpdateMeasurements(const QString &path, int baseA, int baseB, int baseC);
void ReopenFilesAfterCrash(QStringList &args); void ReopenFilesAfterCrash(QStringList &args);
bool DoExport(const VCommandLinePtr& expParams); bool DoExport(const VCommandLinePtr& expParams);
bool DoFMExport(const VCommandLinePtr& expParams); bool DoFMExport(const VCommandLinePtr& expParams);
bool SetSize(const QString &text); bool SetDimensionA(int value);
bool SetHeight(const QString & text); bool SetDimensionB(int value);
bool SetDimensionC(int value);
QString GetPatternFileName(); QString GetPatternFileName();
QString GetMeasurementFileName(); QString GetMeasurementFileName();
@ -397,6 +411,12 @@ private:
void OpenWatermark(const QString &path = QString()); void OpenWatermark(const QString &path = QString());
void CleanWaterkmarkEditors(); void CleanWaterkmarkEditors();
void StoreMultisizeMDimensions();
void StoreIndividualMDimensions();
QVector<int> DimensionRestrictedValues(int index, const MeasurementDimension_p &dimension);
void SetDimensionBases();
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

View File

@ -68,6 +68,7 @@
#include <QtConcurrent> #include <QtConcurrent>
#include <functional> #include <functional>
#include <QPageSize> #include <QPageSize>
#include <QDebug>
#if defined(Q_OS_WIN32) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) #if defined(Q_OS_WIN32) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
#include <QWinTaskbarButton> #include <QWinTaskbarButton>
@ -137,7 +138,7 @@ MainWindowsNoGUI::MainWindowsNoGUI(QWidget *parent)
listDetails(), listDetails(),
currentScene(nullptr), currentScene(nullptr),
tempSceneLayout(nullptr), tempSceneLayout(nullptr),
pattern(new VContainer(qApp->TrVars(), qApp->patternUnitP(), valentinaNamespace)), pattern(new VContainer(qApp->TrVars(), qApp->patternUnitsP(), valentinaNamespace)),
doc(nullptr), doc(nullptr),
papers(), papers(),
shadows(), shadows(),
@ -156,7 +157,6 @@ MainWindowsNoGUI::MainWindowsNoGUI(QWidget *parent)
margins(), margins(),
paperSize(), paperSize(),
m_dialogSaveLayout(), m_dialogSaveLayout(),
m_mouseCoordinate(),
#if defined(Q_OS_WIN32) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) #if defined(Q_OS_WIN32) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
m_taskbarButton(new QWinTaskbarButton(this)), m_taskbarButton(new QWinTaskbarButton(this)),
m_taskbarProgress(nullptr), m_taskbarProgress(nullptr),
@ -836,7 +836,7 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
QPainter painter; QPainter painter;
if (not painter.begin(printer)) if (not painter.begin(printer))
{ // failed to open file { // failed to open file
qWarning("failed to open file, is it writable?"); qCritical() << tr("Failed to open file, is it writable?");
return; return;
} }
@ -935,7 +935,7 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer)
{ {
const QString errorMsg = tr("File error.\n\n%1\n\n%2").arg(e.ErrorMessage(), e.DetailedInformation()); const QString errorMsg = tr("File error.\n\n%1\n\n%2").arg(e.ErrorMessage(), e.DetailedInformation());
qApp->IsPedantic() ? throw VException(errorMsg) : qApp->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::patternMessageSignature + errorMsg; qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg;
} }
} }
@ -2071,33 +2071,6 @@ QString MainWindowsNoGUI::FileName() const
return QFileInfo(fileName).baseName(); return QFileInfo(fileName).baseName();
} }
//---------------------------------------------------------------------------------------------------------------------
void MainWindowsNoGUI::SetSizeHeightForIndividualM() const
{
const QHash<QString, QSharedPointer<VInternalVariable> > * vars = pattern->DataVariables();
if (vars->contains(size_M))
{
pattern->SetSize(*vars->value(size_M)->GetValue());
}
else
{
pattern->SetSize(0);
}
if (vars->contains(height_M))
{
pattern->SetHeight(*vars->value(height_M)->GetValue());
}
else
{
pattern->SetHeight(0);
}
doc->SetPatternWasChanged(true);
emit doc->UpdatePatternLabel();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool 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
@ -2215,21 +2188,6 @@ QSharedPointer<VMeasurements> MainWindowsNoGUI::OpenMeasurementFile(const QStrin
} }
CheckRequiredMeasurements(m.data()); CheckRequiredMeasurements(m.data());
if (m->Type() == MeasurementsType::Multisize)
{
if (m->MUnit() == Unit::Inch)
{
qCCritical(vMainNoGUIWindow, "%s\n\n%s", qUtf8Printable(tr("Wrong units.")),
qUtf8Printable(tr("Application doesn't support multisize table with inches.")));
m->clear();
if (not VApplication::IsGUIMode())
{
qApp->exit(V_EX_DATAERR);
}
return m;
}
}
} }
catch (VException &e) catch (VException &e)
{ {

View File

@ -122,8 +122,8 @@ protected:
QSharedPointer<DialogSaveLayout> m_dialogSaveLayout; QSharedPointer<DialogSaveLayout> m_dialogSaveLayout;
/** @brief mouseCoordinate pointer to label who show mouse coordinate. */ /** @brief mouseCoordinate pointer to label who show mouse coordinate. */
QPointer<QLabel> m_mouseCoordinate; QPointer<QLabel> m_mouseCoordinate{nullptr};
QPointer<QLabel> m_unreadPatternMessage{}; QPointer<QLabel> m_unreadPatternMessage{nullptr};
#if defined(Q_OS_WIN) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) #if defined(Q_OS_WIN) && QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
QWinTaskbarButton *m_taskbarButton; QWinTaskbarButton *m_taskbarButton;
@ -142,7 +142,6 @@ protected:
bool GenerateLayout(VLayoutGenerator& lGenerator); bool GenerateLayout(VLayoutGenerator& lGenerator);
int ContinueIfLayoutStale(); int ContinueIfLayoutStale();
QString FileName() const; QString FileName() const;
void SetSizeHeightForIndividualM() const;
bool 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;

View File

@ -142,96 +142,88 @@ include(../translations.pri)
# Set "make install" command for Unix-like systems. # Set "make install" command for Unix-like systems.
unix{ unix{
# Prefix for binary file. !macx{
isEmpty(PREFIX){
PREFIX = $$DEFAULT_PREFIX
}
unix:!macx{
DATADIR =$$PREFIX/share
DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
# Path to bin file after installation # Path to bin file after installation
target.path = $$PREFIX/bin target.path = $$BINDIR
tape.path = $$PREFIX/bin tape.path = $$BINDIR
tape.files += $${OUT_PWD}/../tape/$${DESTDIR}/tape tape.files += $${OUT_PWD}/../tape/$${DESTDIR}/tape
# .desktop file # .desktop file
desktop.path = $$PREFIX/share/applications/ desktop.path = $$DATADIR/applications/
desktop.files += ../../../dist/$${TARGET}.desktop \ desktop.files += ../../../dist/$${TARGET}.desktop \
desktop.files += ../../../dist/tape.desktop desktop.files += ../../../dist/tape.desktop
# logo # logo
hicolor_48_apps.path = $$PREFIX/share/icons/hicolor/48x48/apps/ hicolor_48_apps.path = $$DATADIR/icons/hicolor/48x48/apps/
hicolor_48_apps.files += \ hicolor_48_apps.files += \
../../../share/icons/48x48/apps/$${TARGET}.png \ ../../../share/icons/48x48/apps/$${TARGET}.png \
../../../share/icons/48x48/apps/tape.png ../../../share/icons/48x48/apps/tape.png
hicolor_48_mimetypes.path = $$PREFIX/share/icons/hicolor/48x48/mimetypes/ hicolor_48_mimetypes.path = $$DATADIR/icons/hicolor/48x48/mimetypes/
hicolor_48_mimetypes.files += \ hicolor_48_mimetypes.files += \
../../../share/icons/48x48/mimetypes/application-x-valentina-pattern.png \ ../../../share/icons/48x48/mimetypes/application-x-valentina-pattern.png \
../../../share/icons/48x48/mimetypes/application-x-valentina-i-measurements.png \ ../../../share/icons/48x48/mimetypes/application-x-valentina-i-measurements.png \
../../../share/icons/48x48/mimetypes/application-x-valentina-s-measurements.png ../../../share/icons/48x48/mimetypes/application-x-valentina-s-measurements.png
hicolor_64_apps.path = $$PREFIX/share/icons/hicolor/64x64/apps/ hicolor_64_apps.path = $$DATADIR/icons/hicolor/64x64/apps/
hicolor_64_apps.files += \ hicolor_64_apps.files += \
../../../share/icons/64x64/apps/$${TARGET}.png \ ../../../share/icons/64x64/apps/$${TARGET}.png \
../../../share/icons/64x64/apps/tape.png ../../../share/icons/64x64/apps/tape.png
hicolor_64_mimetypes.path = $$PREFIX/share/icons/hicolor/64x64/mimetypes/ hicolor_64_mimetypes.path = $$DATADIR/icons/hicolor/64x64/mimetypes/
hicolor_64_mimetypes.files += \ hicolor_64_mimetypes.files += \
../../../share/icons/64x64/mimetypes/application-x-valentina-pattern.png \ ../../../share/icons/64x64/mimetypes/application-x-valentina-pattern.png \
../../../share/icons/64x64/mimetypes/application-x-valentina-i-measurements.png \ ../../../share/icons/64x64/mimetypes/application-x-valentina-i-measurements.png \
../../../share/icons/64x64/mimetypes/application-x-valentina-s-measurements.png ../../../share/icons/64x64/mimetypes/application-x-valentina-s-measurements.png
hicolor_128_apps.path = $$PREFIX/share/icons/hicolor/128x128/apps/ hicolor_128_apps.path = $$DATADIR/icons/hicolor/128x128/apps/
hicolor_128_apps.files += \ hicolor_128_apps.files += \
../../../share/icons/128x128/apps/$${TARGET}.png \ ../../../share/icons/128x128/apps/$${TARGET}.png \
../../../share/icons/128x128/apps/tape.png ../../../share/icons/128x128/apps/tape.png
hicolor_128_mimetypes.path = $$PREFIX/share/icons/hicolor/128x128/mimetypes/ hicolor_128_mimetypes.path = $$DATADIR/icons/hicolor/128x128/mimetypes/
hicolor_128_mimetypes.files += \ hicolor_128_mimetypes.files += \
../../../share/icons/128x128/mimetypes/application-x-valentina-pattern.png \ ../../../share/icons/128x128/mimetypes/application-x-valentina-pattern.png \
../../../share/icons/128x128/mimetypes/application-x-valentina-i-measurements.png \ ../../../share/icons/128x128/mimetypes/application-x-valentina-i-measurements.png \
../../../share/icons/128x128/mimetypes/application-x-valentina-s-measurements.png ../../../share/icons/128x128/mimetypes/application-x-valentina-s-measurements.png
hicolor_256_apps.path = $$PREFIX/share/icons/hicolor/256x256/apps/ hicolor_256_apps.path = $$DATADIR/icons/hicolor/256x256/apps/
hicolor_256_apps.files += \ hicolor_256_apps.files += \
../../../share/icons/256x256/apps/$${TARGET}.png \ ../../../share/icons/256x256/apps/$${TARGET}.png \
../../../share/icons/256x256/apps/tape.png ../../../share/icons/256x256/apps/tape.png
hicolor_256_mimetypes.path = $$PREFIX/share/icons/hicolor/256x256/mimetypes/ hicolor_256_mimetypes.path = $$DATADIR/icons/hicolor/256x256/mimetypes/
hicolor_256_mimetypes.files += \ hicolor_256_mimetypes.files += \
../../../share/icons/256x256/mimetypes/application-x-valentina-pattern.png \ ../../../share/icons/256x256/mimetypes/application-x-valentina-pattern.png \
../../../share/icons/256x256/mimetypes/application-x-valentina-i-measurements.png \ ../../../share/icons/256x256/mimetypes/application-x-valentina-i-measurements.png \
../../../share/icons/256x256/mimetypes/application-x-valentina-s-measurements.png ../../../share/icons/256x256/mimetypes/application-x-valentina-s-measurements.png
hicolor_512_apps.path = $$PREFIX/share/icons/hicolor/512x512/apps/ hicolor_512_apps.path = $$DATADIR/icons/hicolor/512x512/apps/
hicolor_512_apps.files += \ hicolor_512_apps.files += \
../../../share/icons/512x512/apps/$${TARGET}.png \ ../../../share/icons/512x512/apps/$${TARGET}.png \
../../../share/icons/512x512/apps/tape.png ../../../share/icons/512x512/apps/tape.png
hicolor_512_mimetypes.path = $$PREFIX/share/icons/hicolor/512x512/mimetypes/ hicolor_512_mimetypes.path = $$DATADIR/icons/hicolor/512x512/mimetypes/
hicolor_512_mimetypes.files += \ hicolor_512_mimetypes.files += \
../../../share/icons/512x512/mimetypes/application-x-valentina-pattern.png \ ../../../share/icons/512x512/mimetypes/application-x-valentina-pattern.png \
../../../share/icons/512x512/mimetypes/application-x-valentina-i-measurements.png \ ../../../share/icons/512x512/mimetypes/application-x-valentina-i-measurements.png \
../../../share/icons/512x512/mimetypes/application-x-valentina-s-measurements.png ../../../share/icons/512x512/mimetypes/application-x-valentina-s-measurements.png
# Path to translation files after installation # Path to translation files after installation
translations.path = $$PREFIX/share/$${TARGET}/translations/ translations.path = $$PKGDATADIR/translations/
translations.files = $$INSTALL_TRANSLATIONS translations.files = $$INSTALL_TRANSLATIONS
# Path to multisize measurement after installation # Path to multisize measurement after installation
multisize.path = $$PREFIX/share/$${TARGET}/tables/multisize/ multisize.path = $$PKGDATADIR/tables/multisize/
multisize.files = $$INSTALL_MULTISIZE_MEASUREMENTS multisize.files = $$INSTALL_MULTISIZE_MEASUREMENTS
# Path to templates after installation # Path to templates after installation
templates.path = $$PREFIX/share/$${TARGET}/tables/templates/ templates.path = $$PKGDATADIR/tables/templates/
templates.files = $$INSTALL_STANDARD_TEMPLATES templates.files = $$INSTALL_STANDARD_TEMPLATES
# Path to label templates after installation # Path to label templates after installation
label.path = $$PREFIX/share/$${TARGET}/labels/ label.path = $$PKGDATADIR/labels/
label.files = $$INSTALL_LABEL_TEMPLATES label.files = $$INSTALL_LABEL_TEMPLATES
INSTALLS += \ INSTALLS += \
@ -591,16 +583,7 @@ DEPENDPATH += $$PWD/../../libs/vformat
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/vformat.lib win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/vformat.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/libvformat.a else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/libvformat.a
#VPatternDB static library (depend on vgeometry, vmisc, VLayout) # VLayout static library (depend on IFC, VGeometry, VPatternDB)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vpatterndb/$${DESTDIR} -lvpatterndb
INCLUDEPATH += $$PWD/../../libs/vpatterndb
DEPENDPATH += $$PWD/../../libs/vpatterndb
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
# VLayout static library (depend on IFC, VGeometry)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vlayout/$${DESTDIR}/ -lvlayout unix|win32: LIBS += -L$$OUT_PWD/../../libs/vlayout/$${DESTDIR}/ -lvlayout
INCLUDEPATH += $$PWD/../../libs/vlayout INCLUDEPATH += $$PWD/../../libs/vlayout
@ -609,6 +592,15 @@ DEPENDPATH += $$PWD/../../libs/vlayout
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/vlayout.lib win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/vlayout.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/libvlayout.a else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/libvlayout.a
#VPatternDB static library (depend on vgeometry, vmisc)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vpatterndb/$${DESTDIR} -lvpatterndb
INCLUDEPATH += $$PWD/../../libs/vpatterndb
DEPENDPATH += $$PWD/../../libs/vpatterndb
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
# VGeometry static library (depend on ifc) # VGeometry static library (depend on ifc)
unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry

View File

@ -127,7 +127,7 @@ void VPattern::CreateEmptyFile()
patternElement.appendChild(createComment(FileComment())); patternElement.appendChild(createComment(FileComment()));
patternElement.appendChild(CreateElementWithText(TagVersion, VPatternConverter::PatternMaxVerStr)); patternElement.appendChild(CreateElementWithText(TagVersion, VPatternConverter::PatternMaxVerStr));
patternElement.appendChild(CreateElementWithText(TagUnit, UnitsToStr(qApp->patternUnit()))); patternElement.appendChild(CreateElementWithText(TagUnit, UnitsToStr(qApp->patternUnits())));
patternElement.appendChild(createElement(TagDescription)); patternElement.appendChild(createElement(TagDescription));
patternElement.appendChild(createElement(TagNotes)); patternElement.appendChild(createElement(TagNotes));
@ -1167,7 +1167,7 @@ void VPattern::PointsWithLineCommonAttributes(const QDomElement &domElement, VTo
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VPattern::PointsCommonAttributes(const QDomElement &domElement, VToolSinglePointInitData &initData) void VPattern::PointsCommonAttributes(const QDomElement &domElement, VToolSinglePointInitData &initData)
{ {
PointsCommonAttributes(domElement, initData.id, initData.mx, initData.my); DrawPointsCommonAttributes(domElement, initData.id, initData.mx, initData.my, initData.notes);
initData.name = GetParametrString(domElement, AttrName, QChar('A')); initData.name = GetParametrString(domElement, AttrName, QChar('A'));
initData.showLabel = GetParametrBool(domElement, AttrShowLabel, trueStr); initData.showLabel = GetParametrBool(domElement, AttrShowLabel, trueStr);
} }
@ -1180,6 +1180,15 @@ void VPattern::PointsCommonAttributes(const QDomElement &domElement, quint32 &id
my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QStringLiteral("15.0"))); my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QStringLiteral("15.0")));
} }
//---------------------------------------------------------------------------------------------------------------------
void VPattern::DrawPointsCommonAttributes(const QDomElement &domElement, quint32 &id, qreal &mx, qreal &my,
QString &notes)
{
DrawToolsCommonAttributes(domElement, id, notes);
mx = qApp->toPixel(GetParametrDouble(domElement, AttrMx, QStringLiteral("10.0")));
my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QStringLiteral("15.0")));
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
/** /**
* @brief ParsePointElement parse point tag. * @brief ParsePointElement parse point tag.
@ -2022,7 +2031,7 @@ void VPattern::ParseToolCutSpline(VMainGraphicsScene *scene, QDomElement &domEle
try try
{ {
VToolCutSplineInitData initData; VToolCutInitData initData;
initData.scene = scene; initData.scene = scene;
initData.doc = this; initData.doc = this;
initData.data = data; initData.data = data;
@ -2032,7 +2041,9 @@ void VPattern::ParseToolCutSpline(VMainGraphicsScene *scene, QDomElement &domEle
PointsCommonAttributes(domElement, initData); PointsCommonAttributes(domElement, initData);
initData.formula = GetParametrString(domElement, AttrLength, QChar('0')); initData.formula = GetParametrString(domElement, AttrLength, QChar('0'));
const QString f = initData.formula;//need for saving fixed formula; const QString f = initData.formula;//need for saving fixed formula;
initData.splineId = GetParametrUInt(domElement, VToolCutSpline::AttrSpline, NULL_ID_STR); initData.baseCurveId = GetParametrUInt(domElement, VToolCutSpline::AttrSpline, NULL_ID_STR);
initData.aliasSuffix1 = GetParametrEmptyString(domElement, AttrAlias1);
initData.aliasSuffix2 = GetParametrEmptyString(domElement, AttrAlias2);
VToolCutSpline::Create(initData); VToolCutSpline::Create(initData);
//Rewrite attribute formula. Need for situation when we have wrong formula. //Rewrite attribute formula. Need for situation when we have wrong formula.
@ -2065,7 +2076,7 @@ void VPattern::ParseToolCutSplinePath(VMainGraphicsScene *scene, QDomElement &do
try try
{ {
VToolCutSplinePathInitData initData; VToolCutInitData initData;
initData.scene = scene; initData.scene = scene;
initData.doc = this; initData.doc = this;
initData.data = data; initData.data = data;
@ -2075,7 +2086,9 @@ void VPattern::ParseToolCutSplinePath(VMainGraphicsScene *scene, QDomElement &do
PointsCommonAttributes(domElement, initData); PointsCommonAttributes(domElement, initData);
initData.formula = GetParametrString(domElement, AttrLength, QChar('0')); initData.formula = GetParametrString(domElement, AttrLength, QChar('0'));
const QString f = initData.formula;//need for saving fixed formula; const QString f = initData.formula;//need for saving fixed formula;
initData.splinePathId = GetParametrUInt(domElement, VToolCutSplinePath::AttrSplinePath, NULL_ID_STR); initData.baseCurveId = GetParametrUInt(domElement, VToolCutSplinePath::AttrSplinePath, NULL_ID_STR);
initData.aliasSuffix1 = GetParametrEmptyString(domElement, AttrAlias1);
initData.aliasSuffix2 = GetParametrEmptyString(domElement, AttrAlias2);
VToolCutSplinePath::Create(initData); VToolCutSplinePath::Create(initData);
//Rewrite attribute formula. Need for situation when we have wrong formula. //Rewrite attribute formula. Need for situation when we have wrong formula.
@ -2108,7 +2121,7 @@ void VPattern::ParseToolCutArc(VMainGraphicsScene *scene, QDomElement &domElemen
try try
{ {
VToolCutArcInitData initData; VToolCutInitData initData;
initData.scene = scene; initData.scene = scene;
initData.doc = this; initData.doc = this;
initData.data = data; initData.data = data;
@ -2118,7 +2131,9 @@ void VPattern::ParseToolCutArc(VMainGraphicsScene *scene, QDomElement &domElemen
PointsCommonAttributes(domElement, initData); PointsCommonAttributes(domElement, initData);
initData.formula = GetParametrString(domElement, AttrLength, QChar('0')); initData.formula = GetParametrString(domElement, AttrLength, QChar('0'));
const QString f = initData.formula;//need for saving fixed formula; const QString f = initData.formula;//need for saving fixed formula;
initData.arcId = GetParametrUInt(domElement, AttrArc, NULL_ID_STR); initData.baseCurveId = GetParametrUInt(domElement, AttrArc, NULL_ID_STR);
initData.aliasSuffix1 = GetParametrEmptyString(domElement, AttrAlias1);
initData.aliasSuffix2 = GetParametrEmptyString(domElement, AttrAlias2);
VToolCutArc::Create(initData); VToolCutArc::Create(initData);
//Rewrite attribute formula. Need for situation when we have wrong formula. //Rewrite attribute formula. Need for situation when we have wrong formula.
@ -2549,6 +2564,7 @@ void VPattern::ParseToolSpline(VMainGraphicsScene *scene, QDomElement &domElemen
initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
initData.duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0')); initData.duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0'));
initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
initData.aliasSuffix = GetParametrEmptyString(domElement, AttrAlias);
VToolSpline *spl = VToolSpline::Create(initData); VToolSpline *spl = VToolSpline::Create(initData);
@ -2610,6 +2626,7 @@ void VPattern::ParseToolCubicBezier(VMainGraphicsScene *scene, const QDomElement
const QString penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); const QString penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
const quint32 duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0')); const quint32 duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0'));
const qreal approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); const qreal approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
const QString alias = GetParametrEmptyString(domElement, AttrAlias);
auto p1 = data->GeometricObject<VPointF>(point1); auto p1 = data->GeometricObject<VPointF>(point1);
auto p2 = data->GeometricObject<VPointF>(point2); auto p2 = data->GeometricObject<VPointF>(point2);
@ -2625,6 +2642,7 @@ void VPattern::ParseToolCubicBezier(VMainGraphicsScene *scene, const QDomElement
initData.spline->SetPenStyle(penStyle); initData.spline->SetPenStyle(penStyle);
initData.spline->SetPenStyle(penStyle); initData.spline->SetPenStyle(penStyle);
initData.spline->SetApproximationScale(approximationScale); initData.spline->SetApproximationScale(approximationScale);
initData.spline->SetAliasSuffix(alias);
VToolCubicBezier::Create(initData); VToolCubicBezier::Create(initData);
} }
@ -2728,6 +2746,7 @@ void VPattern::ParseToolSplinePath(VMainGraphicsScene *scene, const QDomElement
initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
initData.duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0')); initData.duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0'));
initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
initData.aliasSuffix = GetParametrEmptyString(domElement, AttrAlias);
const QDomNodeList nodeList = domElement.childNodes(); const QDomNodeList nodeList = domElement.childNodes();
const qint32 num = nodeList.size(); const qint32 num = nodeList.size();
@ -2820,6 +2839,7 @@ void VPattern::ParseToolCubicBezierPath(VMainGraphicsScene *scene, const QDomEle
const QString penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); const QString penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
const quint32 duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0')); const quint32 duplicate = GetParametrUInt(domElement, AttrDuplicate, QChar('0'));
const qreal approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); const qreal approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
const QString alias = GetParametrEmptyString(domElement, AttrAlias);
QVector<VPointF> points; QVector<VPointF> points;
@ -2851,6 +2871,7 @@ void VPattern::ParseToolCubicBezierPath(VMainGraphicsScene *scene, const QDomEle
initData.path->SetColor(color); initData.path->SetColor(color);
initData.path->SetPenStyle(penStyle); initData.path->SetPenStyle(penStyle);
initData.path->SetApproximationScale(approximationScale); initData.path->SetApproximationScale(approximationScale);
initData.path->SetAliasSuffix(alias);
VToolCubicBezierPath::Create(initData); VToolCubicBezierPath::Create(initData);
} }
@ -2984,6 +3005,7 @@ void VPattern::ParseToolArc(VMainGraphicsScene *scene, QDomElement &domElement,
initData.color = GetParametrString(domElement, AttrColor, ColorBlack); initData.color = GetParametrString(domElement, AttrColor, ColorBlack);
initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
initData.aliasSuffix = GetParametrEmptyString(domElement, AttrAlias);
VToolArc::Create(initData); VToolArc::Create(initData);
//Rewrite attribute formula. Need for situation when we have wrong formula. //Rewrite attribute formula. Need for situation when we have wrong formula.
@ -3040,6 +3062,7 @@ void VPattern::ParseToolEllipticalArc(VMainGraphicsScene *scene, QDomElement &do
initData.color = GetParametrString(domElement, AttrColor, ColorBlack); initData.color = GetParametrString(domElement, AttrColor, ColorBlack);
initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
initData.aliasSuffix = GetParametrEmptyString(domElement, AttrAlias);
VToolEllipticalArc::Create(initData); VToolEllipticalArc::Create(initData);
//Rewrite attribute formula. Need for situation when we have wrong formula. //Rewrite attribute formula. Need for situation when we have wrong formula.
@ -3173,6 +3196,7 @@ void VPattern::ParseToolArcWithLength(VMainGraphicsScene *scene, QDomElement &do
initData.color = GetParametrString(domElement, AttrColor, ColorBlack); initData.color = GetParametrString(domElement, AttrColor, ColorBlack);
initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine); initData.penStyle = GetParametrString(domElement, AttrPenStyle, TypeLineLine);
initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0')); initData.approximationScale = GetParametrDouble(domElement, AttrAScale, QChar('0'));
initData.aliasSuffix = GetParametrEmptyString(domElement, AttrAlias);
VToolArcWithLength::Create(initData); VToolArcWithLength::Create(initData);
//Rewrite attribute formula. Need for situation when we have wrong formula. //Rewrite attribute formula. Need for situation when we have wrong formula.
@ -3260,7 +3284,7 @@ void VPattern::ParseToolFlippingByLine(VMainGraphicsScene *scene, QDomElement &d
initData.parse = parse; initData.parse = parse;
initData.typeCreation = Source::FromFile; initData.typeCreation = Source::FromFile;
ToolsCommonAttributes(domElement, initData.id); DrawToolsCommonAttributes(domElement, initData.id, initData.notes);
initData.firstLinePointId = GetParametrUInt(domElement, AttrP1Line, NULL_ID_STR); initData.firstLinePointId = GetParametrUInt(domElement, AttrP1Line, NULL_ID_STR);
initData.secondLinePointId = GetParametrUInt(domElement, AttrP2Line, NULL_ID_STR); initData.secondLinePointId = GetParametrUInt(domElement, AttrP2Line, NULL_ID_STR);
initData.suffix = GetParametrString(domElement, AttrSuffix, QString()); initData.suffix = GetParametrString(domElement, AttrSuffix, QString());
@ -3292,7 +3316,7 @@ void VPattern::ParseToolFlippingByAxis(VMainGraphicsScene *scene, QDomElement &d
initData.parse = parse; initData.parse = parse;
initData.typeCreation = Source::FromFile; initData.typeCreation = Source::FromFile;
ToolsCommonAttributes(domElement, initData.id); DrawToolsCommonAttributes(domElement, initData.id, initData.notes);
initData.originPointId = GetParametrUInt(domElement, AttrCenter, NULL_ID_STR); initData.originPointId = GetParametrUInt(domElement, AttrCenter, NULL_ID_STR);
initData.axisType = static_cast<AxisType>(GetParametrUInt(domElement, AttrAxisType, QChar('1'))); initData.axisType = static_cast<AxisType>(GetParametrUInt(domElement, AttrAxisType, QChar('1')));
initData.suffix = GetParametrString(domElement, AttrSuffix, QString()); initData.suffix = GetParametrString(domElement, AttrSuffix, QString());
@ -4197,164 +4221,6 @@ QString VPattern::GenerateSuffix() const
return QString(); return QString();
} }
//---------------------------------------------------------------------------------------------------------------------
bool VPattern::IsDefCustom() const
{
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
return false;
}
const QDomNode domNode = tags.at(0);
const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
return GetParametrBool(domElement, AttrCustom, falseStr);
}
else
{
return false;
}
}
//---------------------------------------------------------------------------------------------------------------------
void VPattern::SetDefCustom(bool value)
{
CheckTagExists(TagGradation);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.isEmpty())
{
qDebug()<<"Can't save attribute "<<AttrCustom<<Q_FUNC_INFO;
return;
}
QDomNode domNode = tags.at(0);
QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
if (value == false)
{
domElement.removeAttribute(AttrDefHeight);
SetDefCustomHeight(0);
SetDefCustomSize(0);
}
else
{
SetAttribute(domElement, AttrCustom, value);
}
modified = true;
}
else
{
qDebug()<<"Can't save attribute "<<AttrCustom<<Q_FUNC_INFO;
}
}
//---------------------------------------------------------------------------------------------------------------------
int VPattern::GetDefCustomHeight() const
{
if (IsDefCustom())
{
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
return 0;
}
const QDomNode domNode = tags.at(0);
const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
return static_cast<int>(GetParametrUInt(domElement, AttrDefHeight, QChar('0')));
}
else
{
return 0;
}
}
else
{
return 0;
}
}
//---------------------------------------------------------------------------------------------------------------------
void VPattern::SetDefCustomHeight(int value)
{
CheckTagExists(TagGradation);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.isEmpty())
{
qDebug()<<"Can't save attribute "<<AttrDefHeight<<Q_FUNC_INFO;
return;
}
QDomNode domNode = tags.at(0);
QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
SetAttributeOrRemoveIf(domElement, AttrDefHeight, value, value == 0);
modified = true;
}
else
{
qDebug()<<"Can't save attribute "<<AttrDefHeight<<Q_FUNC_INFO;
}
}
//---------------------------------------------------------------------------------------------------------------------
int VPattern::GetDefCustomSize() const
{
if (IsDefCustom())
{
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
return 0;
}
const QDomNode domNode = tags.at(0);
const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
return static_cast<int>(GetParametrUInt(domElement, AttrDefSize, QChar('0')));
}
else
{
return 0;
}
}
else
{
return 0;
}
}
//---------------------------------------------------------------------------------------------------------------------
void VPattern::SetDefCustomSize(int value)
{
CheckTagExists(TagGradation);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.isEmpty())
{
qDebug()<<"Can't save attribute "<<AttrDefSize<<Q_FUNC_INFO;
return;
}
QDomNode domNode = tags.at(0);
QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
SetAttributeOrRemoveIf(domElement, AttrDefSize, value, value == 0);
modified = true;
}
else
{
qDebug()<<"Can't save attribute "<<AttrDefSize<<Q_FUNC_INFO;
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VPattern::IsReadOnly() const bool VPattern::IsReadOnly() const
{ {
@ -4457,6 +4323,13 @@ void VPattern::ToolsCommonAttributes(const QDomElement &domElement, quint32 &id)
id = GetParametrId(domElement); id = GetParametrId(domElement);
} }
//---------------------------------------------------------------------------------------------------------------------
void VPattern::DrawToolsCommonAttributes(const QDomElement &domElement, quint32 &id, QString &notes)
{
ToolsCommonAttributes(domElement, id);
notes = GetParametrEmptyString(domElement, AttrNotes);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QT_WARNING_PUSH QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wswitch-default") QT_WARNING_DISABLE_GCC("-Wswitch-default")

View File

@ -97,15 +97,6 @@ public:
virtual QString GenerateLabel(const LabelType &type, const QString &reservedName = QString())const override; virtual QString GenerateLabel(const LabelType &type, const QString &reservedName = QString())const override;
virtual QString GenerateSuffix() const override; virtual QString GenerateSuffix() const override;
bool IsDefCustom() const;
void SetDefCustom(bool value);
int GetDefCustomHeight() const;
void SetDefCustomHeight(int value);
int GetDefCustomSize() const;
void SetDefCustomSize(int value);
bool IsReadOnly() const; bool IsReadOnly() const;
void SetReadOnly(bool rOnly); void SetReadOnly(bool rOnly);
@ -178,9 +169,12 @@ private:
void ParseIncrementsElement(const QDomNode& node, const Document &parse); void ParseIncrementsElement(const QDomNode& node, const Document &parse);
void PrepareForParse(const Document &parse); void PrepareForParse(const Document &parse);
void ToolsCommonAttributes(const QDomElement &domElement, quint32 &id); void ToolsCommonAttributes(const QDomElement &domElement, quint32 &id);
void DrawToolsCommonAttributes(const QDomElement &domElement, quint32 &id, QString &notes);
void PointsWithLineCommonAttributes(const QDomElement &domElement, VToolLinePointInitData &initData); void PointsWithLineCommonAttributes(const QDomElement &domElement, VToolLinePointInitData &initData);
void PointsCommonAttributes(const QDomElement &domElement, VToolSinglePointInitData &initData); void PointsCommonAttributes(const QDomElement &domElement, VToolSinglePointInitData &initData);
void PointsCommonAttributes(const QDomElement &domElement, quint32 &id, qreal &mx, qreal &my); void PointsCommonAttributes(const QDomElement &domElement, quint32 &id, qreal &mx, qreal &my);
void DrawPointsCommonAttributes(const QDomElement &domElement, quint32 &id, qreal &mx, qreal &my,
QString &notes);
void SplinesCommonAttributes(const QDomElement &domElement, quint32 &id, quint32 &idObject, void SplinesCommonAttributes(const QDomElement &domElement, quint32 &id, quint32 &idObject,
quint32 &idTool); quint32 &idTool);
template <typename T> template <typename T>

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