Merge branch 'develop' into feature/manual-layout

This commit is contained in:
Roman Telezhynskyi 2021-07-26 16:47:54 +03:00
commit e5105e4eed
110 changed files with 2479 additions and 863 deletions

View File

@ -1,6 +1,23 @@
# Valentina 0.7.48 (unreleased) # Valentina 0.7.50 (unreleased)
- Fix regression. Minimal seam allowance width is less than the point accuracy values.
- Call autosave only in GUI mode.
- Warn about stale layout only in GUI mode.
- Fix regression. Set default value for detail labels size and grainline length to 10 cm.
- [smart-pattern/valentina#136] 2 decimals for entering values in multi measurements tables.
- New warnings. Warn a user about incorrect cut curve segment length.
- Fix finding point of intersection curve and axis. Case when the axis's point lies on the curve.
- Fix visualization for tool point of intersection line and axis. Case when the axis's point lies on the line.
# Valentina 0.7.49 July 1, 2021
- Fix crash.
- Add tooltip for Export draw feature.
# Valentina 0.7.48 June 29, 2021
- [smart-pattern/valentina#129] Incorrect behavior of empty arc and elliptical arc. - [smart-pattern/valentina#129] Incorrect behavior of empty arc and elliptical arc.
- Parsing formulas with not canonical math symbols. - Parsing formulas with not canonical math symbols.
- [smart-pattern/valentina#133] Incorrect seam allowance.
- Fix regression. Fix correct handle export format for exporting details in the Detail mode.
- [smart-pattern/valentina#83] Export the Draw mode.
# Version 0.7.47 May 13, 2021 # Version 0.7.47 May 13, 2021
- [smart-pattern/valentina#118] Incorrect seam allowance. - [smart-pattern/valentina#118] Incorrect seam allowance.

View File

@ -1,10 +1,9 @@
Pattern making program Pattern making program
Author Roman Telezhynskyi <dismine(at)gmail.com> Author Roman Telezhynskyi <dismine(at)gmail.com>
Copyright (C) 2013-2019 Valentina project Copyright (C) 2013-2021 Valentina project
Valentina Web page: https://valentinaproject.bitbucket.io/ Valentina Web page: https://smart-pattern.com.ua/
Wiki: https://wiki.valentinaproject.org Wiki: https://wiki.valentinaproject.org
Valentina main repository: https://bitbucket.org/dismine/valentina/overview Valentina main repository: https://gitlab.com/smart-pattern/valentina
Forum http://valentinaproject.forumotion.me/
PPA for Ubuntu (develop): https://launchpad.net/~dismine/+archive/valentina-dev PPA for Ubuntu (develop): https://launchpad.net/~dismine/+archive/valentina-dev
Help translate https://www.transifex.com/organization/valentina Help translate https://www.transifex.com/organization/valentina

View File

@ -923,5 +923,7 @@ MSVC_DEBUG_CXXFLAGS += \
-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 -wd5219 \ # implicit conversion from '<type>' to '<type>', possible loss of data
-wd5243 # 'type-name': using incomplete class 'class-name' can cause potential one definition rule violation due
# to ABI limitation
} }

View File

@ -1,5 +1,5 @@
valentina (0.7.47) trusty; urgency=low valentina (0.7.49) trusty; urgency=low
* Auto build. * Auto build.
-- dismine <dismine@dismine-To-be-filled-by-O-E-M> Fri, 13 May 2021 14:17:00 +0300 -- dismine <dismine@dismine-To-be-filled-by-O-E-M> Tue, 1 July 2021 17:08:00 +0300

View File

@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 8.0.0),
libqt5xmlpatterns5-dev (>= 5.4.0), libqt5xmlpatterns5-dev (>= 5.4.0),
libqt5opengl5-dev (>= 5.4.0) libqt5opengl5-dev (>= 5.4.0)
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Homepage: https://valentinaproject.bitbucket.io/ Homepage: https://smart-pattern.com.ua/
Vcs-Browser: https://gitlab.com/smart-pattern/valentina Vcs-Browser: https://gitlab.com/smart-pattern/valentina
Package: valentina Package: valentina

View File

@ -2,9 +2,9 @@ Format: 3.0 (native)
Source: valentina Source: valentina
Binary: valentina Binary: valentina
Architecture: i386 amd64 Architecture: i386 amd64
Version: 0.7.47 Version: 0.7.49
Maintainer: Roman Telezhynskyi <dismine@gmail.com> Maintainer: Roman Telezhynskyi <dismine@gmail.com>
Homepage: https://valentinaproject.bitbucket.io Homepage: https://smart-pattern.com.ua
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Vcs-Browser: https://gitlab.com/smart-pattern/valentina Vcs-Browser: https://gitlab.com/smart-pattern/valentina
Build-Depends: debhelper (>= 8.0.0), Build-Depends: debhelper (>= 8.0.0),
@ -14,8 +14,9 @@ Build-Depends: debhelper (>= 8.0.0),
qttools5-dev-tools (>= 5.4.0), qttools5-dev-tools (>= 5.4.0),
libqt5xmlpatterns5-dev (>= 5.4.0), libqt5xmlpatterns5-dev (>= 5.4.0),
libqt5opengl5-dev (>= 5.4.0) libqt5opengl5-dev (>= 5.4.0)
Debtransform-Tar: valentina-0.7.47.v0.7.47.tar.gz Debtransform-Tar: valentina-0.7.49.v0.7.49.tar.gz
Package-List: Package-List:
valentina deb graphics optional valentina deb graphics optional
Files: Files:
00000000000000000000000000000000 0 valentina-0.7.47.v0.7.47.tar.gz 00000000000000000000000000000000 0 valentina-0.7.49.v0.7.49.tar.gz

View File

@ -14,7 +14,7 @@ valentina: allows pattern creation, using either standard sizing tables or an
valentina: individuals set of measurements. It blends new technologies with valentina: individuals set of measurements. It blends new technologies with
valentina: traditional methods to create a unique pattern making tool. valentina: traditional methods to create a unique pattern making tool.
valentina: valentina:
valentina: Homepage: https://valentinaproject.bitbucket.io/ valentina: Homepage: https://smart-pattern.com.ua/
valentina: valentina:
valentina: valentina:
valentina: valentina:

View File

@ -1,6 +1,6 @@
PRGNAM="valentina" PRGNAM="valentina"
VERSION="0.5.0" VERSION="0.5.0"
HOMEPAGE="https://valentinaproject.bitbucket.io" HOMEPAGE="https://smart-pattern.com.ua"
DOWNLOAD="https://bitbucket.org/dismine/valentina/get/v0.5.0.tar.gz" DOWNLOAD="https://bitbucket.org/dismine/valentina/get/v0.5.0.tar.gz"
MD5SUM="f23019c92e3209dbfa7699a1c13bb98b" MD5SUM="f23019c92e3209dbfa7699a1c13bb98b"
DOWNLOAD_x86_64="" DOWNLOAD_x86_64=""

View File

@ -1,5 +1,5 @@
valentina (0.7.47) trusty; urgency=low valentina (0.7.49) trusty; urgency=low
* Auto build. * Auto build.
-- dismine <dismine@dismine-To-be-filled-by-O-E-M> Fri, 13 May 2021 14:17:00 +0300 -- dismine <dismine@dismine-To-be-filled-by-O-E-M> Tue, 1 July 2021 17:08:00 +0300

2
dist/debian/control vendored
View File

@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 8.0.0),
libqt5xmlpatterns5-dev (>= 5.4.0), libqt5xmlpatterns5-dev (>= 5.4.0),
libqt5opengl5-dev (>= 5.4.0) libqt5opengl5-dev (>= 5.4.0)
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Homepage: https://valentinaproject.bitbucket.io/ Homepage: https://smart-pattern.com.ua/
Vcs-Browser: https://gitlab.com/smart-pattern/valentina Vcs-Browser: https://gitlab.com/smart-pattern/valentina
Package: valentina Package: valentina

View File

@ -7,7 +7,7 @@ EAPI=5
inherit qmake-utils gnome2-utils fdo-mime inherit qmake-utils gnome2-utils fdo-mime
DESCRIPTION="Cloth patternmaking software" DESCRIPTION="Cloth patternmaking software"
HOMEPAGE="https://valentinaproject.bitbucket.io/" HOMEPAGE="https://smart-pattern.com.ua/"
SRC_URI="https://bitbucket.org/dismine/valentina/get/v0.0.0.zip -> ${P}.zip" SRC_URI="https://bitbucket.org/dismine/valentina/get/v0.0.0.zip -> ${P}.zip"
LICENSE="GPL-3" LICENSE="GPL-3"

View File

@ -7,7 +7,7 @@ EAPI=5
inherit mercurial qmake-utils gnome2-utils fdo-mime inherit mercurial qmake-utils gnome2-utils fdo-mime
DESCRIPTION="Cloth patternmaking software" DESCRIPTION="Cloth patternmaking software"
HOMEPAGE="https://valentinaproject.bitbucket.io/" HOMEPAGE="https://smart-pattern.com.ua/"
SRC_URI="" SRC_URI=""
EHG_REPO_URI="https://bitbucket.org/dismine/valentina" EHG_REPO_URI="https://bitbucket.org/dismine/valentina"
EHG_REVISION="develop" EHG_REVISION="develop"

View File

@ -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.47</string> <string>0.7.49</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.7.47.0</string> <string>0.7.49.0</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>

View File

@ -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.47</string> <string>0.7.49</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.7.47.0</string> <string>0.7.49.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.7.47</param> <param name="versionprefix">0.7.49</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

@ -95,7 +95,7 @@ Requires: poppler-tools
Requires: poppler-utils Requires: poppler-utils
%endif %endif
Version: 0.7.47 Version: 0.7.49
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+

8
dist/valentina.dsc vendored
View File

@ -2,9 +2,9 @@ Format: 3.0 (native)
Source: valentina Source: valentina
Binary: valentina Binary: valentina
Architecture: i386 amd64 Architecture: i386 amd64
Version: 0.7.47 Version: 0.7.49
Maintainer: Roman Telezhynskyi <dismine@gmail.com> Maintainer: Roman Telezhynskyi <dismine@gmail.com>
Homepage: https://valentinaproject.bitbucket.io Homepage: https://smart-pattern.com.ua
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Vcs-Browser: https://gitlab.com/smart-pattern/valentina Vcs-Browser: https://gitlab.com/smart-pattern/valentina
Build-Depends: debhelper (>= 8.0.0), Build-Depends: debhelper (>= 8.0.0),
@ -14,9 +14,9 @@ Build-Depends: debhelper (>= 8.0.0),
qttools5-dev-tools (>= 5.4.0), qttools5-dev-tools (>= 5.4.0),
libqt5xmlpatterns5-dev (>= 5.4.0), libqt5xmlpatterns5-dev (>= 5.4.0),
libqt5opengl5-dev (>= 5.4.0) libqt5opengl5-dev (>= 5.4.0)
Debtransform-Tar: valentina-0.7.47.v0.7.47.tar.gz Debtransform-Tar: valentina-0.7.49.v0.7.49.tar.gz
Package-List: Package-List:
valentina deb graphics optional valentina deb graphics optional
Files: Files:
00000000000000000000000000000000 0 valentina-0.7.47.v0.7.47.tar.gz 00000000000000000000000000000000 0 valentina-0.7.49.v0.7.49.tar.gz

View File

@ -4,9 +4,9 @@
#define MyAppName "Valentina" #define MyAppName "Valentina"
#define MyAppVersion GetFileVersion('valentina\valentina.exe') #define MyAppVersion GetFileVersion('valentina\valentina.exe')
#define MyAppPublisher "Roman Telezhynskyi" #define MyAppPublisher "Roman Telezhynskyi"
#define MyAppURL "https://valentinaproject.bitbucket.io/" #define MyAppURL "https://smart-pattern.com.ua/"
#define MyAppExeName "valentina.exe" #define MyAppExeName "valentina.exe"
#define MyAppCopyright "(C) 2013-2020 Valentina project" #define MyAppCopyright "(C) 2013-2021 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 ;-)

View File

@ -9627,6 +9627,22 @@ Do you want to save your changes?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -11217,7 +11233,7 @@ This option will take an affect after restart.</source>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -12094,6 +12110,10 @@ Do you want to save your changes?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>

View File

@ -9524,6 +9524,22 @@ Chcete uložit své změny?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -11088,7 +11104,7 @@ Tato volba se projeví po opětovném spuštění.</translation>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Vybrat nový pro vytvoření nového souboru s rozměry.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Vybrat nový pro vytvoření nového souboru s rozměry.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -12001,6 +12017,10 @@ Chcete uložit změny?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15693,15 +15713,15 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Délka</translation> <translation>Délka</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Úhel</translation> <translation>Úhel</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Popis</translation> <translation>Popis</translation>
</message> </message>
<message> <message>
<source>Segment 1</source> <source>Segment 1</source>
@ -16588,7 +16608,7 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Popis</translation> <translation>Popis</translation>
</message> </message>
<message> <message>
<source>Curve 1 segment 1</source> <source>Curve 1 segment 1</source>

View File

@ -9520,6 +9520,22 @@ Sollen die Änderungen gespeichert werden?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -11084,7 +11100,7 @@ Diese Option wird nach einem Neustart aktiv.</translation>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Neu auswählen, um eine neue Maßdatei zu erstellen.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Neu auswählen, um eine neue Maßdatei zu erstellen.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11996,6 +12012,10 @@ Do you want to save your changes?</source>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15674,15 +15694,15 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Länge</translation> <translation>Länge</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Winkel</translation> <translation>Winkel</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Bezeichnung</translation> <translation>Bezeichnung</translation>
</message> </message>
<message> <message>
<source>Segment 1</source> <source>Segment 1</source>
@ -16537,7 +16557,7 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Bezeichnung</translation> <translation>Bezeichnung</translation>
</message> </message>
<message> <message>
<source>Curve 1 segment 1</source> <source>Curve 1 segment 1</source>

View File

@ -9284,6 +9284,22 @@ Do you want to save your changes?</source>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -10718,7 +10734,7 @@ This option will take an affect after restart.</source>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Επιλέξτε Νέο για τη δημιουργία αρχείου μετρήσεων.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Επιλέξτε Νέο για τη δημιουργία αρχείου μετρήσεων.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11559,6 +11575,10 @@ Do you want to save your changes?</source>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15016,11 +15036,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Μήκος</translation> <translation>Μήκος</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Γωνία</translation> <translation>Γωνία</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -9451,6 +9451,22 @@ Do you want to save your changes?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -10990,7 +11006,7 @@ This option will take an affect after restart.</source>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11879,6 +11895,10 @@ Do you want to save your changes?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15555,11 +15575,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation>Length</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Angle</translation> <translation>Angle</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -9451,6 +9451,22 @@ Do you want to save your changes?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -10990,7 +11006,7 @@ This option will take an affect after restart.</source>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11879,6 +11895,10 @@ Do you want to save your changes?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15555,11 +15575,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation>Length</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Angle</translation> <translation>Angle</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -9451,6 +9451,22 @@ Do you want to save your changes?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -10990,7 +11006,7 @@ This option will take an affect after restart.</source>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11879,6 +11895,10 @@ Do you want to save your changes?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15555,11 +15575,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Length</translation> <translation>Length</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Angle</translation> <translation>Angle</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -9521,6 +9521,22 @@ el patrón.</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -11085,7 +11101,7 @@ Esta opción surtirá efecto después de reiniciar.</translation>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Seleccione Nuevo para crear un archivo de medidas.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Seleccione Nuevo para crear un archivo de medidas.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11998,6 +12014,10 @@ Quieres guardar los cambios?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15697,15 +15717,15 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Longitud</translation> <translation>Longitud</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished"></translation> <translation>Angulo</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Etiqueta</translation> <translation>Etiqueta</translation>
</message> </message>
<message> <message>
<source>Segment 1</source> <source>Segment 1</source>
@ -16592,7 +16612,7 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Etiqueta</translation> <translation>Etiqueta</translation>
</message> </message>
<message> <message>
<source>Curve 1 segment 1</source> <source>Curve 1 segment 1</source>

View File

@ -8423,6 +8423,22 @@ Haluatko tallentaa muutokset?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -9761,10 +9777,6 @@ This option will take an affect after restart.</source>
</context> </context>
<context> <context>
<name>TMainWindow</name> <name>TMainWindow</name>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Name</source> <source>Name</source>
<translation type="vanished">Nimi</translation> <translation type="vanished">Nimi</translation>
@ -10471,6 +10483,10 @@ Do you want to save your changes?</source>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -13898,11 +13914,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Pituus</translation> <translation>Pituus</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Kulma</translation> <translation>Kulma</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -7432,6 +7432,26 @@ Do you want to save your changes?</source>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -8680,10 +8700,6 @@ This option will take an affect after restart.</source>
</context> </context>
<context> <context>
<name>TMainWindow</name> <name>TMainWindow</name>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Calculated value</source> <source>Calculated value</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -9342,6 +9358,10 @@ Do you want to save your changes?</source>
<source>untitled</source> <source>untitled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>

View File

@ -7769,6 +7769,22 @@ Apakah anda ingin menyimpan perubahan anda?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -9017,10 +9033,6 @@ This option will take an affect after restart.</source>
</context> </context>
<context> <context>
<name>TMainWindow</name> <name>TMainWindow</name>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Name</source> <source>Name</source>
<translation type="vanished">Nama</translation> <translation type="vanished">Nama</translation>
@ -9679,6 +9691,10 @@ Do you want to save your changes?</source>
<source>untitled</source> <source>untitled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>

View File

@ -2699,11 +2699,11 @@
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Seleziona per creare un Gruppo di Visibilità degli oggetti iniziali</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Gruppo di Visibilità</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -2818,11 +2818,11 @@
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Seleziona per creare un Gruppo di Visibilità degli oggetti iniziali</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Gruppo di Visibilità</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -4374,11 +4374,11 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Seleziona per creare un Gruppo di Visibilità degli oggetti iniziali</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Gruppo di Visibilità</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -6268,11 +6268,11 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Seleziona per creare un Gruppo di Visibilità degli oggetti iniziali</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Gruppo di Visibilità</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -8943,7 +8943,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Contains all visibility groups</source> <source>Contains all visibility groups</source>
<translation type="unfinished"></translation> <translation>Contiene tutti i Gruppi di Visibilità</translation>
</message> </message>
<message> <message>
<source>Show which details will go in layout</source> <source>Show which details will go in layout</source>
@ -9319,7 +9319,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Groups of visibility</source> <source>Groups of visibility</source>
<translation type="unfinished"></translation> <translation>Gruppi di Visibilità</translation>
</message> </message>
<message> <message>
<source>Export recipe</source> <source>Export recipe</source>
@ -9497,6 +9497,22 @@ Vuoi salvare i cambiamenti?</translation>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -11041,7 +11057,7 @@ Questa opzione sarà effettiva dopo il riavvio del programma.</translation>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Seleziona nuovo per la creazione di un file delle misure.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Seleziona nuovo per la creazione di un file delle misure.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11926,6 +11942,10 @@ Vuoi salvare le tue modifiche?</translation>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -12098,11 +12118,11 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Options to control position a pattern label. &lt;b&gt;Not available if a pattern label template is empty&lt;/b&gt;.</source> <source>Options to control position a pattern label. &lt;b&gt;Not available if a pattern label template is empty&lt;/b&gt;.</source>
<translation type="unfinished"></translation> <translation>Opzione per regolare la visibilità e posizione dell&apos;etichetta. &lt;b&gt;Non disponibile se il modello etichetta non è stato caricato&lt;/b&gt;.</translation>
</message> </message>
<message> <message>
<source>Pattern label data</source> <source>Pattern label data</source>
<translation type="unfinished"></translation> <translation>Etichetta con dati del Modello</translation>
</message> </message>
<message> <message>
<source>Edit pattern label</source> <source>Edit pattern label</source>
@ -12162,7 +12182,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Piece label visible</source> <source>Piece label visible</source>
<translation type="unfinished"></translation> <translation>Attiva/Disattiva Etichetta del Pezzo</translation>
</message> </message>
</context> </context>
<context> <context>
@ -13079,7 +13099,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Visibility group</source> <source>Visibility group</source>
<translation type="unfinished"></translation> <translation>Gruppo di Visibilità</translation>
</message> </message>
<message> <message>
<source>default</source> <source>default</source>
@ -13991,7 +14011,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Restore label position</source> <source>Restore label position</source>
<translation type="unfinished"></translation> <translation>Ripristina posizione dell&apos;Etichetta</translation>
</message> </message>
</context> </context>
<context> <context>
@ -15523,15 +15543,15 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Lunghezza</translation> <translation>Lunghezza</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished"></translation> <translation>Angolo</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Etichetta</translation> <translation>Etichetta</translation>
</message> </message>
<message> <message>
<source>Segment 1</source> <source>Segment 1</source>
@ -16410,7 +16430,7 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>
<translation type="unfinished">Etichetta</translation> <translation>Etichetta</translation>
</message> </message>
<message> <message>
<source>Curve 1 segment 1</source> <source>Curve 1 segment 1</source>

View File

@ -8454,6 +8454,22 @@ Do you want to save your changes?</source>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -9717,10 +9733,6 @@ This option will take an affect after restart.</source>
</context> </context>
<context> <context>
<name>TMainWindow</name> <name>TMainWindow</name>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Name</source> <source>Name</source>
<translation type="vanished">Nume</translation> <translation type="vanished">Nume</translation>
@ -10427,6 +10439,10 @@ Do you want to save your changes?</source>
<source>untitled</source> <source>untitled</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -13750,11 +13766,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Lungime</translation> <translation>Lungime</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Unghi</translation> <translation>Unghi</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -9453,6 +9453,22 @@ Do you want to save your changes?</source>
<source>Could not create recipe file. %1</source> <source>Could not create recipe file. %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Shop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scalable Vector Graphics files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save draw</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Draw export</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindowsNoGUI</name> <name>MainWindowsNoGUI</name>
@ -10992,7 +11008,7 @@ This option will take an affect after restart.</source>
<name>TMainWindow</name> <name>TMainWindow</name>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New for creation measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Виберіть Новий для створення файлу мірок.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="vanished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Виберіть Новий для створення файлу мірок.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Name</source> <source>Name</source>
@ -11881,6 +11897,10 @@ Do you want to save your changes?</source>
<source>Restrict first dimension</source> <source>Restrict first dimension</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:18pt;&quot;&gt;Select New to create a measurement file.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>TabGrainline</name> <name>TabGrainline</name>
@ -15555,11 +15575,11 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion =
</message> </message>
<message> <message>
<source>Length</source> <source>Length</source>
<translation type="unfinished">Довжина</translation> <translation>Довжина</translation>
</message> </message>
<message> <message>
<source>Angle</source> <source>Angle</source>
<translation type="unfinished">Кут</translation> <translation>Кут</translation>
</message> </message>
<message> <message>
<source>Label</source> <source>Label</source>

View File

@ -852,6 +852,11 @@ bool TMainWindow::FileSaveAs()
usedNotExistedDir = directory.mkpath(QChar('.')); usedNotExistedDir = directory.mkpath(QChar('.'));
} }
if (not curFile.isEmpty())
{
fName = StrippedName(curFile);
}
QString fileName = QFileDialog::getSaveFileName(this, tr("Save as"), dir + QChar('/') + fName, filters, nullptr, QString fileName = QFileDialog::getSaveFileName(this, tr("Save as"), dir + QChar('/') + fName, filters, nullptr,
VAbstractApplication::VApp()->NativeFileDialog()); VAbstractApplication::VApp()->NativeFileDialog());
@ -4159,35 +4164,35 @@ void TMainWindow::SetDecimals()
switch (mUnit) switch (mUnit)
{ {
case Unit::Cm: case Unit::Cm:
ui->doubleSpinBoxBaseValue->setDecimals(1); ui->doubleSpinBoxBaseValue->setDecimals(2);
ui->doubleSpinBoxBaseValue->setSingleStep(0.1); ui->doubleSpinBoxBaseValue->setSingleStep(0.1);
ui->doubleSpinBoxCorrection->setDecimals(1); ui->doubleSpinBoxCorrection->setDecimals(2);
ui->doubleSpinBoxCorrection->setSingleStep(0.1); ui->doubleSpinBoxCorrection->setSingleStep(0.1);
ui->doubleSpinBoxShiftA->setDecimals(1); ui->doubleSpinBoxShiftA->setDecimals(2);
ui->doubleSpinBoxShiftA->setSingleStep(0.1); ui->doubleSpinBoxShiftA->setSingleStep(0.1);
ui->doubleSpinBoxShiftB->setDecimals(1); ui->doubleSpinBoxShiftB->setDecimals(2);
ui->doubleSpinBoxShiftB->setSingleStep(0.1); ui->doubleSpinBoxShiftB->setSingleStep(0.1);
ui->doubleSpinBoxShiftC->setDecimals(1); ui->doubleSpinBoxShiftC->setDecimals(2);
ui->doubleSpinBoxShiftC->setSingleStep(0.1); ui->doubleSpinBoxShiftC->setSingleStep(0.1);
break; break;
case Unit::Mm: case Unit::Mm:
ui->doubleSpinBoxBaseValue->setDecimals(0); ui->doubleSpinBoxBaseValue->setDecimals(1);
ui->doubleSpinBoxBaseValue->setSingleStep(1); ui->doubleSpinBoxBaseValue->setSingleStep(1);
ui->doubleSpinBoxCorrection->setDecimals(0); ui->doubleSpinBoxCorrection->setDecimals(1);
ui->doubleSpinBoxCorrection->setSingleStep(1); ui->doubleSpinBoxCorrection->setSingleStep(1);
ui->doubleSpinBoxShiftA->setDecimals(0); ui->doubleSpinBoxShiftA->setDecimals(1);
ui->doubleSpinBoxShiftA->setSingleStep(1); ui->doubleSpinBoxShiftA->setSingleStep(1);
ui->doubleSpinBoxShiftB->setDecimals(0); ui->doubleSpinBoxShiftB->setDecimals(1);
ui->doubleSpinBoxShiftB->setSingleStep(1); ui->doubleSpinBoxShiftB->setSingleStep(1);
ui->doubleSpinBoxShiftC->setDecimals(0); ui->doubleSpinBoxShiftC->setDecimals(1);
ui->doubleSpinBoxShiftC->setSingleStep(1); ui->doubleSpinBoxShiftC->setSingleStep(1);
break; break;
case Unit::Inch: case Unit::Inch:

View File

@ -183,15 +183,13 @@ void DialogSaveLayout::SelectFormat(LayoutExportFormats format)
{ {
if (static_cast<int>(format) < 0 || format >= LayoutExportFormats::COUNT) if (static_cast<int>(format) < 0 || format >= LayoutExportFormats::COUNT)
{ {
VException e(tr("Tried to use out of range format number.")); throw VException(tr("Tried to use out of range format number."));
throw e;
} }
const int i = ui->comboBoxFormat->findData(static_cast<int>(format)); const int i = ui->comboBoxFormat->findData(static_cast<int>(format));
if (i < 0) if (i < 0)
{ {
VException e(tr("Selected not present format.")); throw VException(tr("Selected not present format."));
throw e;
} }
ui->comboBoxFormat->setCurrentIndex(i); ui->comboBoxFormat->setCurrentIndex(i);
} }
@ -783,7 +781,14 @@ void DialogSaveLayout::ReadSettings()
ui->toolButtonLandscape->setChecked(true); ui->toolButtonLandscape->setChecked(true);
} }
SelectFormat(static_cast<LayoutExportFormats>(settings->GetLayoutExportFormat())); if (m_mode != Draw::Layout)
{
SelectFormat(static_cast<LayoutExportFormats>(settings->GetDetailExportFormat()));
}
else
{
SelectFormat(static_cast<LayoutExportFormats>(settings->GetLayoutExportFormat()));
}
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -827,6 +832,13 @@ void DialogSaveLayout::WriteSettings() const
settings->SetTiledPDFOrientation(PageOrientation::Landscape); settings->SetTiledPDFOrientation(PageOrientation::Landscape);
} }
settings->SetLayoutExportFormat(static_cast<qint8>(Format())); if (m_mode != Draw::Layout)
{
settings->SetDetailExportFormat(static_cast<qint8>(Format()));
}
else
{
settings->SetLayoutExportFormat(static_cast<qint8>(Format()));
}
} }

View File

@ -68,6 +68,7 @@
#include "watermarkwindow.h" #include "watermarkwindow.h"
#include "../vmisc/backport/qoverload.h" #include "../vmisc/backport/qoverload.h"
#include "../vlayout/vlayoutexporter.h" #include "../vlayout/vlayoutexporter.h"
#include "../vwidgets/vgraphicssimpletextitem.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 12, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
#include "../vmisc/backport/qscopeguard.h" #include "../vmisc/backport/qscopeguard.h"
@ -2245,6 +2246,62 @@ void MainWindow::StoreDimensions()
} }
} }
//---------------------------------------------------------------------------------------------------------------------
void MainWindow::ExportDraw(const QString &fileName)
{
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wnoexcept")
VLayoutExporter exporter;
QT_WARNING_POP
exporter.SetFileName(fileName);
int verticalScrollBarValue = ui->view->verticalScrollBar()->value();
int horizontalScrollBarValue = ui->view->horizontalScrollBar()->value();
QTransform viewTransform = ui->view->transform();
ui->view->ZoomFitBest(); // Resize all labels
ui->view->repaint();
ui->view->ZoomOriginal(); // Set to original scale
// Enable all items on scene
const QList<QGraphicsItem *> qItems = sceneDraw->items();
for (auto *item : qItems)
{
item->setEnabled(true);
if (item->type() == VGraphicsSimpleTextItem::Type)
{
auto *text = dynamic_cast<VGraphicsSimpleTextItem*>(item);
text->setBrush(text->BaseColor()); // Regular update doesn't work on labels
}
}
ui->view->repaint();
sceneDraw->SetOriginsVisible(false);
const QRectF rect = sceneDraw->VisibleItemsBoundingRect();
sceneDraw->update(rect);
exporter.SetImageRect(rect);
exporter.SetOffset(rect.topLeft()); // Correct positions to fit SVG view rect
exporter.ExportToSVG(sceneDraw);
sceneDraw->SetOriginsVisible(true);
// Restore scale, scrollbars and current active pattern piece
ui->view->setTransform(viewTransform);
VMainGraphicsView::NewSceneRect(ui->view->scene(), ui->view);
emit ScaleChanged(ui->view->transform().m11());
ui->view->verticalScrollBar()->setValue(verticalScrollBarValue);
ui->view->horizontalScrollBar()->setValue(horizontalScrollBarValue);
doc->ChangeActivPP(doc->GetNameActivPP(), Document::FullParse);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
#if defined(Q_OS_MAC) #if defined(Q_OS_MAC)
void MainWindow::OpenAt(QAction *where) void MainWindow::OpenAt(QAction *where)
@ -2518,6 +2575,7 @@ void MainWindow::InitToolButtons()
connect(ui->toolButtonFlippingByAxis, &QToolButton::clicked, this, &MainWindow::ToolFlippingByAxis); connect(ui->toolButtonFlippingByAxis, &QToolButton::clicked, this, &MainWindow::ToolFlippingByAxis);
connect(ui->toolButtonMove, &QToolButton::clicked, this, &MainWindow::ToolMove); connect(ui->toolButtonMove, &QToolButton::clicked, this, &MainWindow::ToolMove);
connect(ui->toolButtonMidpoint, &QToolButton::clicked, this, &MainWindow::ToolMidpoint); connect(ui->toolButtonMidpoint, &QToolButton::clicked, this, &MainWindow::ToolMidpoint);
connect(ui->toolButtonExportDraw, &QToolButton::clicked, this, &MainWindow::ExportDrawAs);
connect(ui->toolButtonLayoutExportAs, &QToolButton::clicked, this, &MainWindow::ExportLayoutAs); connect(ui->toolButtonLayoutExportAs, &QToolButton::clicked, this, &MainWindow::ExportLayoutAs);
connect(ui->toolButtonDetailExportAs, &QToolButton::clicked, this, &MainWindow::ExportDetailsAs); connect(ui->toolButtonDetailExportAs, &QToolButton::clicked, this, &MainWindow::ExportDetailsAs);
connect(ui->toolButtonEllipticalArc, &QToolButton::clicked, this, &MainWindow::ToolEllipticalArc); connect(ui->toolButtonEllipticalArc, &QToolButton::clicked, this, &MainWindow::ToolEllipticalArc);
@ -3138,8 +3196,15 @@ bool MainWindow::on_actionSaveAs_triggered()
usedNotExistedDir = directory.mkpath(QChar('.')); usedNotExistedDir = directory.mkpath(QChar('.'));
} }
QString newFileName = tr("pattern") + QLatin1String(".val");
if(not VAbstractValApplication::VApp()->GetPatternPath().isEmpty())
{
newFileName = StrippedName(VAbstractValApplication::VApp()->GetPatternPath());
}
QString fileName = QFileDialog::getSaveFileName(this, tr("Save as"), QString fileName = QFileDialog::getSaveFileName(this, tr("Save as"),
dir + QLatin1String("/") + tr("pattern") + QLatin1String(".val"), dir + QLatin1String("/") + newFileName,
filters, nullptr, VAbstractApplication::VApp()->NativeFileDialog()); filters, nullptr, VAbstractApplication::VApp()->NativeFileDialog());
auto RemoveTempDir = qScopeGuard([usedNotExistedDir, dir]() auto RemoveTempDir = qScopeGuard([usedNotExistedDir, dir]()
@ -4331,6 +4396,7 @@ QT_WARNING_POP
ui->toolButtonPin->setEnabled(drawTools); ui->toolButtonPin->setEnabled(drawTools);
ui->toolButtonInsertNode->setEnabled(drawTools); ui->toolButtonInsertNode->setEnabled(drawTools);
ui->toolButtonPlaceLabel->setEnabled(drawTools); ui->toolButtonPlaceLabel->setEnabled(drawTools);
ui->toolButtonExportDraw->setEnabled(drawTools);
ui->actionLast_tool->setEnabled(drawTools); ui->actionLast_tool->setEnabled(drawTools);
@ -4417,7 +4483,8 @@ bool MainWindow::SavePattern(const QString &fileName, QString &error)
*/ */
void MainWindow::AutoSavePattern() void MainWindow::AutoSavePattern()
{ {
if (not VAbstractValApplication::VApp()->GetPatternPath().isEmpty() && isWindowModified() && isNeedAutosave) if (VApplication::VApp()->IsGUIMode() && not VAbstractValApplication::VApp()->GetPatternPath().isEmpty()
&& isWindowModified() && isNeedAutosave)
{ {
qCDebug(vMainWindow, "Autosaving pattern."); qCDebug(vMainWindow, "Autosaving pattern.");
QString error; QString error;
@ -5029,6 +5096,11 @@ void MainWindow::CreateActions()
qCDebug(vMainWindow, "Reporting bug"); qCDebug(vMainWindow, "Reporting bug");
QDesktopServices::openUrl(QUrl(QStringLiteral("https://gitlab.com/smart-pattern/valentina/issues/new"))); QDesktopServices::openUrl(QUrl(QStringLiteral("https://gitlab.com/smart-pattern/valentina/issues/new")));
}); });
connect(ui->actionShop, &QAction::triggered, this, []()
{
qCDebug(vMainWindow, "Open shop");
QDesktopServices::openUrl(QUrl(QStringLiteral("https://smart-pattern.com.ua/catalogue/")));
});
connect(ui->actionLast_tool, &QAction::triggered, this, &MainWindow::LastUsedTool); connect(ui->actionLast_tool, &QAction::triggered, this, &MainWindow::LastUsedTool);
@ -5580,6 +5652,30 @@ void MainWindow::CreateMeasurements()
} }
#endif #endif
//---------------------------------------------------------------------------------------------------------------------
void MainWindow::ExportDrawAs()
{
auto Uncheck = qScopeGuard([this] {ui->toolButtonExportDraw->setChecked(false);});
QString filters(tr("Scalable Vector Graphics files") + QLatin1String("(*.svg)"));
QString dir = QDir::homePath() + QLatin1String("/") + FileName() + QLatin1String(".svg");
QString fileName = QFileDialog::getSaveFileName(this, tr("Save draw"), dir, filters, nullptr,
VAbstractApplication::VApp()->NativeFileDialog());
if (fileName.isEmpty())
{
return;
}
QFileInfo f( fileName );
if (f.suffix().isEmpty() || f.suffix() != QLatin1String("svg"))
{
fileName += QLatin1String(".svg");
}
ExportDraw(fileName);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void MainWindow::ExportLayoutAs() void MainWindow::ExportLayoutAs()
{ {

View File

@ -130,6 +130,7 @@ private slots:
#if defined(Q_OS_MAC) #if defined(Q_OS_MAC)
void CreateMeasurements(); void CreateMeasurements();
#endif #endif
void ExportDrawAs();
void ExportLayoutAs(); void ExportLayoutAs();
void ExportDetailsAs(); void ExportDetailsAs();
@ -417,6 +418,8 @@ private:
void SetDimensionBases(); void SetDimensionBases();
void StoreDimensions(); void StoreDimensions();
void ExportDraw(const QString &fileName);
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

View File

@ -1119,9 +1119,9 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>-53</y>
<width>126</width> <width>126</width>
<height>192</height> <height>237</height>
</rect> </rect>
</property> </property>
<attribute name="icon"> <attribute name="icon">
@ -1317,6 +1317,29 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0">
<widget class="QToolButton" name="toolButtonExportDraw">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Draw export</string>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../libs/vmisc/share/resources/icon.qrc">
<normaloff>:/icon/32x32/export_to_picture_document.png</normaloff>:/icon/32x32/export_to_picture_document.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="detailPage"> <widget class="QWidget" name="detailPage">
@ -1590,7 +1613,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>140</width> <width>140</width>
<height>170</height> <height>168</height>
</rect> </rect>
</property> </property>
<attribute name="icon"> <attribute name="icon">
@ -1728,6 +1751,7 @@
<string>&amp;Help</string> <string>&amp;Help</string>
</property> </property>
<addaction name="actionReportBug"/> <addaction name="actionReportBug"/>
<addaction name="actionShop"/>
<addaction name="actionAbout_Qt"/> <addaction name="actionAbout_Qt"/>
<addaction name="actionAbout_Valentina"/> <addaction name="actionAbout_Valentina"/>
</widget> </widget>
@ -3065,6 +3089,11 @@
<string>Update manual layout</string> <string>Update manual layout</string>
</property> </property>
</action> </action>
<action name="actionShop">
<property name="text">
<string>Shop</string>
</property>
</action>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets> <customwidgets>

View File

@ -661,7 +661,13 @@ void MainWindowsNoGUI::ExportApparelLayout(const QVector<VLayoutPiece> &details,
VAbstractValApplication::VApp()->ValentinaSettings()->SetPathLayout(path); VAbstractValApplication::VApp()->ValentinaSettings()->SetPathLayout(path);
const LayoutExportFormats format = m_dialogSaveLayout->Format(); const LayoutExportFormats format = m_dialogSaveLayout->Format();
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wnoexcept")
VLayoutExporter exporter; VLayoutExporter exporter;
QT_WARNING_POP
exporter.SetFileName(name); exporter.SetFileName(name);
exporter.SetImageRect(QRectF(0, 0, size.width(), size.height())); exporter.SetImageRect(QRectF(0, 0, size.width(), size.height()));
exporter.SetXScale(m_dialogSaveLayout->GetXScale()); exporter.SetXScale(m_dialogSaveLayout->GetXScale());
@ -1095,7 +1101,13 @@ void MainWindowsNoGUI::ExportScene(const QList<QGraphicsScene *> &scenes,
const QList<QList<QGraphicsItem *> > &details, bool ignorePrinterFields, const QList<QList<QGraphicsItem *> > &details, bool ignorePrinterFields,
const QMarginsF &margins) const const QMarginsF &margins) const
{ {
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wnoexcept")
VLayoutExporter exporter; VLayoutExporter exporter;
QT_WARNING_POP
exporter.SetMargins(margins); exporter.SetMargins(margins);
exporter.SetXScale(m_dialogSaveLayout->GetXScale()); exporter.SetXScale(m_dialogSaveLayout->GetXScale());
exporter.SetYScale(m_dialogSaveLayout->GetYScale()); exporter.SetYScale(m_dialogSaveLayout->GetYScale());

View File

@ -85,7 +85,7 @@ namespace
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString FileComment() QString FileComment()
{ {
return QStringLiteral("Pattern created with Valentina v%1 (https://valentinaproject.bitbucket.io/).") return QStringLiteral("Pattern created with Valentina v%1 (https://smart-pattern.com.ua/).")
.arg(APP_VERSION_STR); .arg(APP_VERSION_STR);
} }

View File

@ -59,7 +59,7 @@ auto VAbstractMConverter::Units() const -> Unit
void VAbstractMConverter::AddRootComment() void VAbstractMConverter::AddRootComment()
{ {
const QString rootComment = const QString rootComment =
QStringLiteral("Measurements created with Valentina (https://valentinaproject.bitbucket.io/)."); QStringLiteral("Measurements created with Valentina (https://smart-pattern.com.ua/).");
QDomElement rootElement = this->documentElement(); QDomElement rootElement = this->documentElement();
rootElement.insertBefore(createComment(rootComment), rootElement.firstChild()); rootElement.insertBefore(createComment(rootComment), rootElement.firstChild());

View File

@ -291,7 +291,7 @@ QStringList VAbstractPattern::ListMeasurements() const
void VAbstractPattern::ChangeActivPP(const QString &name, const Document &parse) void VAbstractPattern::ChangeActivPP(const QString &name, const Document &parse)
{ {
Q_ASSERT_X(not name.isEmpty(), Q_FUNC_INFO, "name pattern piece is empty"); Q_ASSERT_X(not name.isEmpty(), Q_FUNC_INFO, "name pattern piece is empty");
if (CheckExistNamePP(name) && this->nameActivPP != name) if (CheckExistNamePP(name))
{ {
this->nameActivPP = name; this->nameActivPP = name;
if (parse == Document::FullParse) if (parse == Document::FullParse)

View File

@ -114,7 +114,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, defBirthDate, (QLatin1String("1800-01-0
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString FileComment() QString FileComment()
{ {
return QString("Measurements created with Valentina v%1 (https://valentinaproject.bitbucket.io/).") return QString("Measurements created with Valentina v%1 (https://smart-pattern.com.ua/).")
.arg(APP_VERSION_STR); .arg(APP_VERSION_STR);
} }
} }

View File

@ -61,7 +61,7 @@ namespace
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
inline QString FileComment() inline QString FileComment()
{ {
return QStringLiteral("Recipe created with Valentina v%1 (https://valentinaproject.bitbucket.io/).") return QStringLiteral("Recipe created with Valentina v%1 (https://smart-pattern.com.ua/).")
.arg(APP_VERSION_STR); .arg(APP_VERSION_STR);
} }

View File

@ -45,7 +45,7 @@ namespace
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString FileComment() QString FileComment()
{ {
return QString("Watermark created with Valentina v%1 (https://valentinaproject.bitbucket.io/).") return QString("Watermark created with Valentina v%1 (https://smart-pattern.com.ua/).")
.arg(APP_VERSION_STR); .arg(APP_VERSION_STR);
} }
} }

View File

@ -39,6 +39,7 @@
#include "../vmisc/vmath.h" #include "../vmisc/vmath.h"
#include "../vgeometry/vpointf.h" #include "../vgeometry/vpointf.h"
#include "../vmisc/vabstractapplication.h" #include "../vmisc/vabstractapplication.h"
#include "../ifc/exception/vexception.h"
namespace namespace
{ {
@ -420,6 +421,11 @@ QPointF VAbstractCubicBezier::CutSpline(qreal length, QPointF &spl1p2, QPointF &
if (fullLength <= minLength) if (fullLength <= minLength)
{ {
spl1p2 = spl1p3 = spl2p2 = spl2p3 = QPointF(); spl1p2 = spl1p3 = spl2p2 = spl2p3 = QPointF();
const QString errorMsg = QObject::tr("Unable to cut curve '%1'. The curve is too short.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
return QPointF(); return QPointF();
} }
@ -428,10 +434,20 @@ QPointF VAbstractCubicBezier::CutSpline(qreal length, QPointF &spl1p2, QPointF &
if (length < minLength) if (length < minLength)
{ {
length = minLength; length = minLength;
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too small. Optimize it to minimal "
"value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
} }
else if (length > maxLength) else if (length > maxLength)
{ {
length = maxLength; length = maxLength;
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too big. Optimize it to maximal "
"value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
} }
const qreal parT = GetParmT(length); const qreal parT = GetParmT(length);

View File

@ -30,12 +30,14 @@
#include "vsplinepoint.h" #include "vsplinepoint.h"
#include <QPainterPath> #include <QPainterPath>
#include <QtDebug>
#include "../vmisc/def.h" #include "../vmisc/def.h"
#include "../ifc/ifcdef.h" #include "../ifc/ifcdef.h"
#include "../ifc/exception/vexception.h" #include "../ifc/exception/vexception.h"
#include "vpointf.h" #include "vpointf.h"
#include "vspline.h" #include "vspline.h"
#include "vabstractapplication.h"
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
VAbstractCubicBezierPath::VAbstractCubicBezierPath(const GOType &type, const quint32 &idObject, const Draw &mode) VAbstractCubicBezierPath::VAbstractCubicBezierPath(const GOType &type, const quint32 &idObject, const Draw &mode)
@ -180,6 +182,11 @@ QPointF VAbstractCubicBezierPath::CutSplinePath(qreal length, qint32 &p1, qint32
{ {
p1 = p2 = -1; p1 = p2 = -1;
spl1p2 = spl1p3 = spl2p2 = spl2p3 = QPointF(); spl1p2 = spl1p3 = spl2p2 = spl2p3 = QPointF();
const QString errorMsg = QObject::tr("Unable to cut curve '%1'. The curve is too short.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
return QPointF(); return QPointF();
} }
@ -188,10 +195,20 @@ QPointF VAbstractCubicBezierPath::CutSplinePath(qreal length, qint32 &p1, qint32
if (length < minLength) if (length < minLength)
{ {
length = minLength; length = minLength;
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too small. Optimize it to minimal "
"value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
} }
else if (length > maxLength) else if (length > maxLength)
{ {
length = maxLength; length = maxLength;
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too big. Optimize it to maximal "
"value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
} }
fullLength = 0; fullLength = 0;

View File

@ -481,7 +481,7 @@ bool VAbstractCurve::CurveIntersectAxis(const QPointF &point, qreal angle, const
axis = QLineF(point, VGObject::BuildRay(point, angle + 180, rec)); axis = QLineF(point, VGObject::BuildRay(point, angle + 180, rec));
points += VAbstractCurve::CurveIntersectLine(curvePoints, axis); points += VAbstractCurve::CurveIntersectLine(curvePoints, axis);
if (points.size() > 0) if (not points.isEmpty())
{ {
if (points.size() == 1) if (points.size() == 1)
{ {
@ -516,11 +516,26 @@ bool VAbstractCurve::CurveIntersectAxis(const QPointF &point, qreal angle, const
*intersectionPoint = points.at(forward.first()); *intersectionPoint = points.at(forward.first());
return true; return true;
} }
else if (not backward.isEmpty())
if (not backward.isEmpty())
{ {
*intersectionPoint = points.at(backward.first()); *intersectionPoint = points.at(backward.first());
return true; return true;
} }
if (VAbstractCurve::IsPointOnCurve(curvePoints, point))
{
*intersectionPoint = point;
return true;
}
}
else
{
if (VAbstractCurve::IsPointOnCurve(curvePoints, point))
{
*intersectionPoint = point;
return true;
}
} }
return false; return false;

View File

@ -30,6 +30,7 @@
#include <QLineF> #include <QLineF>
#include <QPointF> #include <QPointF>
#include <QtDebug>
#include "../vmisc/def.h" #include "../vmisc/def.h"
#include "../vmisc/vmath.h" #include "../vmisc/vmath.h"
@ -38,6 +39,7 @@
#include "vabstractcurve.h" #include "vabstractcurve.h"
#include "varc_p.h" #include "varc_p.h"
#include "vspline.h" #include "vspline.h"
#include "../ifc/exception/vexception.h"
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
/** /**
@ -351,6 +353,11 @@ QPointF VArc::CutArc(qreal length, VArc &arc1, VArc &arc2) const
{ {
arc1 = VArc(); arc1 = VArc();
arc2 = VArc(); arc2 = VArc();
const QString errorMsg = QObject::tr("Unable to cut curve '%1'. The curve is too short.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
return QPointF(); return QPointF();
} }
@ -362,7 +369,26 @@ QPointF VArc::CutArc(qreal length, VArc &arc1, VArc &arc2) const
{ {
length = fullLength + length; length = fullLength + length;
} }
length = qBound(ToPixel(1, Unit::Mm), length, fullLength - ToPixel(1, Unit::Mm));
const qreal minLength = ToPixel(1, Unit::Mm);
const qreal maxLength = fullLength - ToPixel(1, Unit::Mm);
if (length < minLength)
{
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too small. Optimize it to "
"minimal value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
}
else if (length > maxLength)
{
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too big. Optimize it to "
"maximal value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
}
length = qBound(minLength, length, maxLength);
line.setAngle(line.angle() + qRadiansToDegrees(length/d->radius)); line.setAngle(line.angle() + qRadiansToDegrees(length/d->radius));
} }
@ -372,7 +398,26 @@ QPointF VArc::CutArc(qreal length, VArc &arc1, VArc &arc2) const
{ {
length = fullLength + length; length = fullLength + length;
} }
length = qBound(fullLength + ToPixel(1, Unit::Mm), length, ToPixel(-1, Unit::Mm));
const qreal minLength = fullLength + ToPixel(1, Unit::Mm);
const qreal maxLength = ToPixel(-1, Unit::Mm);
if (length > minLength)
{
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too small. Optimize it to "
"minimal value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
}
else if (length < maxLength)
{
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too big. Optimize it to "
"maximal value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
}
length = qBound(minLength, length, maxLength);
line.setAngle(line.angle() - qRadiansToDegrees(qAbs(length)/d->radius)); line.setAngle(line.angle() - qRadiansToDegrees(qAbs(length)/d->radius));
} }

View File

@ -31,10 +31,12 @@
#include <QLineF> #include <QLineF>
#include <QPoint> #include <QPoint>
#include <QPainterPath> #include <QPainterPath>
#include <QtDebug>
#include "../vmisc/def.h" #include "../vmisc/def.h"
#include "../vmisc/vmath.h" #include "../vmisc/vmath.h"
#include "../ifc/ifcdef.h" #include "../ifc/ifcdef.h"
#include "../ifc/exception/vexception.h"
#include "../vmisc/vabstractapplication.h" #include "../vmisc/vabstractapplication.h"
#include "../vmisc/compatibility.h" #include "../vmisc/compatibility.h"
#include "vabstractcurve.h" #include "vabstractcurve.h"
@ -356,6 +358,11 @@ QPointF VEllipticalArc::CutArc(const qreal &length, VEllipticalArc &arc1, VEllip
{ {
arc1 = VEllipticalArc(); arc1 = VEllipticalArc();
arc2 = VEllipticalArc(); arc2 = VEllipticalArc();
const QString errorMsg = QObject::tr("Unable to cut curve '%1'. The curve is too short.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
return QPointF(); return QPointF();
} }
@ -364,10 +371,20 @@ QPointF VEllipticalArc::CutArc(const qreal &length, VEllipticalArc &arc1, VEllip
if (length < minLength) if (length < minLength)
{ {
len = minLength; len = minLength;
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too small. Optimize it to minimal "
"value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
} }
else if (length > maxLength) else if (length > maxLength)
{ {
len = maxLength; len = maxLength;
const QString errorMsg = QObject::tr("Curve '%1'. Length of a cut segment is too big. Optimize it to maximal "
"value.").arg(name());
VAbstractApplication::VApp()->IsPedantic() ? throw VException(errorMsg) :
qWarning() << VAbstractApplication::warningMessageSignature + errorMsg;
} }
else else
{ {

View File

@ -97,7 +97,7 @@ private:
}; };
Q_DECLARE_METATYPE(VLayoutPassmark) Q_DECLARE_METATYPE(VLayoutPassmark)
constexpr qreal accuracyPointOnLine = (0.138/*mm*/ / 25.4) * PrintDPI; constexpr qreal accuracyPointOnLine = (0.1555/*mm*/ / 25.4) * PrintDPI;
Q_REQUIRED_RESULT static inline bool VFuzzyComparePoints(const QPointF &p1, const QPointF &p2, Q_REQUIRED_RESULT static inline bool VFuzzyComparePoints(const QPointF &p1, const QPointF &p2,
qreal accuracy = accuracyPointOnLine); qreal accuracy = accuracyPointOnLine);

View File

@ -55,7 +55,7 @@ const qreal maxL = 3.5;
const qreal VSAPoint::passmarkFactor = 0.5; const qreal VSAPoint::passmarkFactor = 0.5;
const qreal VSAPoint::maxPassmarkLength = (10/*mm*/ / 25.4) * PrintDPI; const qreal VSAPoint::maxPassmarkLength = (10/*mm*/ / 25.4) * PrintDPI;
const qreal VSAPoint::minSAWidth = ToPixel(0.015, Unit::Cm); const qreal VSAPoint::minSAWidth = accuracyPointOnLine + accuracyPointOnLine*0.5;
namespace namespace
{ {
@ -1532,8 +1532,8 @@ bool VAbstractPiece::IsAllowanceValid(const QVector<QPointF> &base, const QVecto
return false; // Not enough data return false; // Not enough data
} }
// DumpVector(base); // Uncomment for dumping test data // DumpVector(base, QStringLiteral("base.json.XXXXXX")); // Uncomment for dumping test data
// DumpVector(allowance); // Uncomment for dumping test data // DumpVector(allowance, QStringLiteral("allowance.json.XXXXXX")); // Uncomment for dumping test data
// First check direction // First check direction
const qreal baseDirection = VPiece::SumTrapezoids(base); const qreal baseDirection = VPiece::SumTrapezoids(base);

View File

@ -142,6 +142,7 @@ void VLayoutExporter::ExportToSVG(QGraphicsScene *scene) const
QPainter painter; QPainter painter;
painter.begin(&generator); painter.begin(&generator);
painter.translate(-m_offset.x(), -m_offset.y());
painter.translate(m_margins.left(), m_margins.top()); painter.translate(m_margins.left(), m_margins.top());
painter.setRenderHint(QPainter::Antialiasing, true); painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(m_pen); painter.setPen(m_pen);
@ -396,6 +397,18 @@ auto VLayoutExporter::SupportPDFConversion() -> bool
return res; return res;
} }
//---------------------------------------------------------------------------------------------------------------------
QPointF VLayoutExporter::offset() const
{
return m_offset;
}
//---------------------------------------------------------------------------------------------------------------------
void VLayoutExporter::SetOffset(QPointF newOffset)
{
m_offset = newOffset;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
/** /**
* @brief PdfToPs use external tool "pdftops" for converting pdf too eps or ps format. * @brief PdfToPs use external tool "pdftops" for converting pdf too eps or ps format.

View File

@ -93,9 +93,13 @@ public:
static auto SupportPDFConversion() -> bool; static auto SupportPDFConversion() -> bool;
static QString ExportFormatDescription(LayoutExportFormats format); static QString ExportFormatDescription(LayoutExportFormats format);
static QString ExportFormatSuffix(LayoutExportFormats format); static QString ExportFormatSuffix(LayoutExportFormats format);
auto offset() const -> QPointF;
void SetOffset(QPointF newOffset);
private: private:
QString m_fileName{}; QString m_fileName{};
QMarginsF m_margins{}; QMarginsF m_margins{};
@ -108,6 +112,7 @@ private:
bool m_ignorePrinterMargins{false}; bool m_ignorePrinterMargins{false};
bool m_binaryDxfFormat{false}; bool m_binaryDxfFormat{false};
int m_dxfVersion{0}; int m_dxfVersion{0};
QPointF m_offset{};
static void PdfToPs(const QStringList &params); static void PdfToPs(const QStringList &params);
}; };

View File

@ -744,16 +744,21 @@ auto VPrintLayout::WatermarkData() const -> VWatermarkData
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
auto VPrintLayout::ContinueIfLayoutStale(QWidget *parent) -> int auto VPrintLayout::ContinueIfLayoutStale(QWidget *parent) -> int
{ {
QMessageBox msgBox(parent); if (VAbstractApplication::VApp()->IsAppInGUIMode())
msgBox.setIcon(QMessageBox::Question); {
msgBox.setWindowTitle(tr("The layout is stale.")); QMessageBox msgBox(parent);
msgBox.setText(tr("The layout was not updated since last pattern modification. Do you want to continue?")); msgBox.setIcon(QMessageBox::Question);
msgBox.setStandardButtons(QMessageBox::Yes|QMessageBox::No); msgBox.setWindowTitle(tr("The layout is stale."));
msgBox.setDefaultButton(QMessageBox::No); msgBox.setText(tr("The layout was not updated since last pattern modification. Do you want to continue?"));
const int width = 500; msgBox.setStandardButtons(QMessageBox::Yes|QMessageBox::No);
auto* horizontalSpacer = new QSpacerItem(width, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); msgBox.setDefaultButton(QMessageBox::No);
auto* layout = qobject_cast<QGridLayout*>(msgBox.layout()); const int width = 500;
SCASSERT(layout != nullptr) auto* horizontalSpacer = new QSpacerItem(width, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount()); auto* layout = qobject_cast<QGridLayout*>(msgBox.layout());
return msgBox.exec(); SCASSERT(layout != nullptr)
layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
return msgBox.exec();
}
return QMessageBox::Yes;
} }

View File

@ -138,7 +138,7 @@ private:
bool m_isAutoCropWidth{false}; bool m_isAutoCropWidth{false};
bool m_isUnitePages{false}; bool m_isUnitePages{false};
QString m_layoutPrinterName{}; QString m_layoutPrinterName{};
bool m_isLayoutStale{true}; bool m_isLayoutStale{false};
QMarginsF m_tiledMargins{}; QMarginsF m_tiledMargins{};
PageOrientation m_tiledPDFOrientation{PageOrientation::Portrait}; PageOrientation m_tiledPDFOrientation{PageOrientation::Portrait};
QSizeF m_tiledPDFPaperSize{}; QSizeF m_tiledPDFPaperSize{};

View File

@ -42,7 +42,7 @@
extern const int MAJOR_VERSION = 0; extern const int MAJOR_VERSION = 0;
extern const int MINOR_VERSION = 7; extern const int MINOR_VERSION = 7;
extern const int DEBUG_VERSION = 47; extern const int DEBUG_VERSION = 49;
extern const QString APP_VERSION_STR(QStringLiteral("%1.%2.%3.%4").arg(MAJOR_VERSION).arg(MINOR_VERSION) extern const QString APP_VERSION_STR(QStringLiteral("%1.%2.%3.%4").arg(MAJOR_VERSION).arg(MINOR_VERSION)
.arg(DEBUG_VERSION).arg(LATEST_TAG_DISTANCE)); .arg(DEBUG_VERSION).arg(LATEST_TAG_DISTANCE));

View File

@ -49,8 +49,8 @@ extern const QString APP_VERSION_STR;
// Change version number in projectversion.cpp too. // Change version number in projectversion.cpp too.
// Synchronize valentina.nsi // Synchronize valentina.nsi
#define VER_FILEVERSION 0,7,47 #define VER_FILEVERSION 0,7,49
#define VER_FILEVERSION_STR "0.7.47\0" #define VER_FILEVERSION_STR "0.7.49\0"
#define V_PRERELEASE // Mark prerelease builds #define V_PRERELEASE // Mark prerelease builds
@ -66,7 +66,7 @@ extern const QString APP_VERSION_STR;
//#define VER_ORIGINALFILENAME_STR "valentina.exe" // Defined in program //#define VER_ORIGINALFILENAME_STR "valentina.exe" // Defined in program
//#define VER_PRODUCTNAME_STR "Valentina" // Defined in program //#define VER_PRODUCTNAME_STR "Valentina" // Defined in program
#define VER_COMPANYDOMAIN_STR "valentinaproject.bitbucket.io" #define VER_COMPANYDOMAIN_STR "smart-pattern.com.ua"
QString compilerString(); QString compilerString();
QString buildCompatibilityString(); QString buildCompatibilityString();

View File

@ -195,17 +195,6 @@ void VAbstractApplication::WinAttachConsole()
} }
#endif #endif
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getSettings hide settings constructor.
* @return pointer to class for acssesing to settings in ini file.
*/
VCommonSettings *VAbstractApplication::Settings()
{
SCASSERT(settings != nullptr)
return settings;
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VAbstractApplication::LoadTranslation(const QString &locale) void VAbstractApplication::LoadTranslation(const QString &locale)
{ {
@ -324,9 +313,3 @@ QFileDialog::Options VAbstractApplication::NativeFileDialog(QFileDialog::Options
return options; return options;
} }
//---------------------------------------------------------------------------------------------------------------------
auto VAbstractApplication::VApp() -> VAbstractApplication *
{
return qobject_cast<VAbstractApplication*>(QCoreApplication::instance());
}

View File

@ -120,4 +120,21 @@ inline QString VAbstractApplication::LocaleToString(const T &value)
return loc.toString(value); return loc.toString(value);
} }
//---------------------------------------------------------------------------------------------------------------------
inline auto VAbstractApplication::VApp() -> VAbstractApplication *
{
return qobject_cast<VAbstractApplication*>(QCoreApplication::instance());
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getSettings hide settings constructor.
* @return pointer to class for acssesing to settings in ini file.
*/
inline VCommonSettings *VAbstractApplication::Settings()
{
SCASSERT(settings != nullptr)
return settings;
}
#endif // VABSTRACTAPPLICATION_H #endif // VABSTRACTAPPLICATION_H

View File

@ -82,6 +82,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingTextAsPaths, (QLatin1String("lay
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingNestingTime, (QLatin1String("layout/time"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingNestingTime, (QLatin1String("layout/time")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingEfficiencyCoefficient, (QLatin1String("layout/efficiencyCoefficient"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingEfficiencyCoefficient, (QLatin1String("layout/efficiencyCoefficient")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutExportFormat, (QLatin1String("layout/exportFormat"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingLayoutExportFormat, (QLatin1String("layout/exportFormat")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingDetailExportFormat, (QLatin1String("detail/exportFormat")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingTiledPDFPaperHeight, (QLatin1String("tiledPDF/paperHeight"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingTiledPDFPaperHeight, (QLatin1String("tiledPDF/paperHeight")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingTiledPDFPaperWidth, (QLatin1String("tiledPDF/paperWidth"))) Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingTiledPDFPaperWidth, (QLatin1String("tiledPDF/paperWidth")))
@ -653,3 +654,27 @@ void VValentinaSettings::SetLayoutExportFormat(qint8 format)
{ {
setValue(*settingLayoutExportFormat, format); setValue(*settingLayoutExportFormat, format);
} }
//---------------------------------------------------------------------------------------------------------------------
qint8 VValentinaSettings::GetDetailExportFormat() const
{
return qvariant_cast<qint8>(value(*settingDetailExportFormat, 0));
}
//---------------------------------------------------------------------------------------------------------------------
void VValentinaSettings::SetDetailExportFormat(qint8 format)
{
setValue(*settingDetailExportFormat, format);
}
//---------------------------------------------------------------------------------------------------------------------
template<typename T>
T VValentinaSettings::GetCachedValue(T &cache, const QString &setting, T defValue, T valueMin, T valueMax) const
{
if (cache < 0)
{
cache = qBound(valueMin, ValueOrDef(setting, defValue), valueMax);
}
return cache;
}

View File

@ -170,6 +170,9 @@ public:
auto GetLayoutExportFormat() const -> qint8; auto GetLayoutExportFormat() const -> qint8;
void SetLayoutExportFormat(qint8 format); void SetLayoutExportFormat(qint8 format);
auto GetDetailExportFormat() const -> qint8;
void SetDetailExportFormat(qint8 format);
private: private:
Q_DISABLE_COPY(VValentinaSettings) Q_DISABLE_COPY(VValentinaSettings)

View File

@ -128,10 +128,10 @@ bool VObjEngine::begin(QPaintDevice *pdev)
stream = QSharedPointer<QTextStream>(new QTextStream(outputDevice.data())); stream = QSharedPointer<QTextStream>(new QTextStream(outputDevice.data()));
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
*stream << "# Valentina OBJ File" << endl; *stream << "# Valentina OBJ File" << endl;
*stream << "# valentinaproject.bitbucket.io/" << endl; *stream << "# smart-pattern.com.ua/" << endl;
#else #else
*stream << "# Valentina OBJ File" << Qt::endl; *stream << "# Valentina OBJ File" << Qt::endl;
*stream << "# valentinaproject.bitbucket.io/" << Qt::endl; *stream << "# smart-pattern.com.ua/" << Qt::endl;
#endif #endif
return true; return true;
} }

View File

@ -241,12 +241,12 @@ void AbstractTest::PassmarkDataFromJson(const QString &json, VPiecePassmarkData
AbstractTest::ReadStringValue(passmarkData, QStringLiteral("pieceName"), pieceName); AbstractTest::ReadStringValue(passmarkData, QStringLiteral("pieceName"), pieceName);
data.pieceName = pieceName; data.pieceName = pieceName;
PassmarkLineType passmarkLineType; PassmarkLineType passmarkLineType = PassmarkLineType::OneLine;
AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("passmarkLineType"), passmarkLineType, AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("passmarkLineType"), passmarkLineType,
QString::number(static_cast<int>(PassmarkLineType::OneLine))); QString::number(static_cast<int>(PassmarkLineType::OneLine)));
data.passmarkLineType = passmarkLineType; data.passmarkLineType = passmarkLineType;
PassmarkAngleType passmarkAngleType; PassmarkAngleType passmarkAngleType = PassmarkAngleType::Straightforward;
AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("passmarkAngleType"), passmarkAngleType, AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("passmarkAngleType"), passmarkAngleType,
QString::number(static_cast<int>(PassmarkAngleType::Straightforward))); QString::number(static_cast<int>(PassmarkAngleType::Straightforward)));
data.passmarkAngleType = passmarkAngleType; data.passmarkAngleType = passmarkAngleType;
@ -259,11 +259,11 @@ void AbstractTest::PassmarkDataFromJson(const QString &json, VPiecePassmarkData
AbstractTest::ReadBooleanValue(passmarkData, QStringLiteral("isShowSecondPassmark"), isShowSecondPassmark); AbstractTest::ReadBooleanValue(passmarkData, QStringLiteral("isShowSecondPassmark"), isShowSecondPassmark);
data.isShowSecondPassmark = isShowSecondPassmark; data.isShowSecondPassmark = isShowSecondPassmark;
int passmarkIndex; int passmarkIndex = -1;
AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("passmarkIndex"), passmarkIndex, QStringLiteral("-1")); AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("passmarkIndex"), passmarkIndex, QStringLiteral("-1"));
data.passmarkIndex = passmarkIndex; data.passmarkIndex = passmarkIndex;
vidtype id; vidtype id = NULL_ID;
AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("id"), id, QString::number(NULL_ID)); AbstractTest::ReadDoubleValue(passmarkData, QStringLiteral("id"), id, QString::number(NULL_ID));
data.id = id; data.id = id;
@ -891,7 +891,7 @@ void AbstractTest::SAPointFromJson(const QJsonObject &itemObject, VSAPoint &poin
AbstractTest::ReadDoubleValue(itemObject, QStringLiteral("saAfter"), saAfter, QStringLiteral("-1")); AbstractTest::ReadDoubleValue(itemObject, QStringLiteral("saAfter"), saAfter, QStringLiteral("-1"));
point.SetSAAfter(saAfter); point.SetSAAfter(saAfter);
PieceNodeAngle angleType; PieceNodeAngle angleType = PieceNodeAngle::ByLength;
AbstractTest::ReadDoubleValue(itemObject, QStringLiteral("angle"), angleType, AbstractTest::ReadDoubleValue(itemObject, QStringLiteral("angle"), angleType,
QString::number(static_cast<int>(PieceNodeAngle::ByLength))); QString::number(static_cast<int>(PieceNodeAngle::ByLength)));
point.SetAngleType(angleType); point.SetAngleType(angleType);

View File

@ -132,9 +132,9 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, quint32 toolId,
m_tabPlaceLabels(new QWidget), m_tabPlaceLabels(new QWidget),
m_ftb(new FancyTabBar(FancyTabBar::Left, this)), m_ftb(new FancyTabBar(FancyTabBar::Left, this)),
applyAllowed(false),// By default disabled applyAllowed(false),// By default disabled
flagGPin(true), flagGPin(false),
flagDPin(true), flagDPin(false),
flagPPin(true), flagPPin(false),
flagGFormulas(true), flagGFormulas(true),
flagDLAngle(true), flagDLAngle(true),
flagDLFormulas(true), flagDLFormulas(true),
@ -172,6 +172,8 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, quint32 toolId,
{ {
ui->setupUi(this); ui->setupUi(this);
m_defLabelValue = QString().setNum(UnitConvertor(10, Unit::Cm, *data->GetPatternUnit()));
InitOkCancelApply(ui); InitOkCancelApply(ui);
InitFancyTabBar(); InitFancyTabBar();
EnableApply(applyAllowed); EnableApply(applyAllowed);
@ -2603,8 +2605,8 @@ VPiece DialogSeamAllowance::CreatePiece() const
} }
else else
{ {
piece.GetPatternPieceData().SetLabelWidth(QString::number(1)); piece.GetPatternPieceData().SetLabelWidth(m_defLabelValue);
piece.GetPatternPieceData().SetLabelHeight(QString::number(1)); piece.GetPatternPieceData().SetLabelHeight(m_defLabelValue);
piece.GetPatternPieceData().SetCenterPin(NULL_ID); piece.GetPatternPieceData().SetCenterPin(NULL_ID);
piece.GetPatternPieceData().SetTopLeftPin(getCurrentObjectId(uiTabLabels->comboBoxDLTopLeftPin)); piece.GetPatternPieceData().SetTopLeftPin(getCurrentObjectId(uiTabLabels->comboBoxDLTopLeftPin));
piece.GetPatternPieceData().SetBottomRightPin(getCurrentObjectId(uiTabLabels->comboBoxDLBottomRightPin)); piece.GetPatternPieceData().SetBottomRightPin(getCurrentObjectId(uiTabLabels->comboBoxDLBottomRightPin));
@ -2626,8 +2628,8 @@ VPiece DialogSeamAllowance::CreatePiece() const
piece.GetPatternInfo().SetCenterPin(NULL_ID); piece.GetPatternInfo().SetCenterPin(NULL_ID);
piece.GetPatternInfo().SetTopLeftPin(getCurrentObjectId(uiTabLabels->comboBoxPLTopLeftPin)); piece.GetPatternInfo().SetTopLeftPin(getCurrentObjectId(uiTabLabels->comboBoxPLTopLeftPin));
piece.GetPatternInfo().SetBottomRightPin(getCurrentObjectId(uiTabLabels->comboBoxPLBottomRightPin)); piece.GetPatternInfo().SetBottomRightPin(getCurrentObjectId(uiTabLabels->comboBoxPLBottomRightPin));
piece.GetPatternInfo().SetLabelWidth(QString::number(1)); piece.GetPatternInfo().SetLabelWidth(m_defLabelValue);
piece.GetPatternInfo().SetLabelHeight(QString::number(1)); piece.GetPatternInfo().SetLabelHeight(m_defLabelValue);
} }
piece.GetGrainlineGeometry().SetVisible(uiTabGrainline->groupBoxGrainline->isChecked()); piece.GetGrainlineGeometry().SetVisible(uiTabGrainline->groupBoxGrainline->isChecked());
@ -2645,7 +2647,7 @@ VPiece DialogSeamAllowance::CreatePiece() const
else else
{ {
piece.GetGrainlineGeometry().SetRotation(QString::number(90)); piece.GetGrainlineGeometry().SetRotation(QString::number(90));
piece.GetGrainlineGeometry().SetLength(QChar('1')); piece.GetGrainlineGeometry().SetLength(m_defLabelValue);
piece.GetGrainlineGeometry().SetCenterPin(NULL_ID); piece.GetGrainlineGeometry().SetCenterPin(NULL_ID);
piece.GetGrainlineGeometry().SetTopPin(getCurrentObjectId(uiTabGrainline->comboBoxGrainlineTopPin)); piece.GetGrainlineGeometry().SetTopPin(getCurrentObjectId(uiTabGrainline->comboBoxGrainlineTopPin));
piece.GetGrainlineGeometry().SetBottomPin(getCurrentObjectId(uiTabGrainline->comboBoxGrainlineBottomPin)); piece.GetGrainlineGeometry().SetBottomPin(getCurrentObjectId(uiTabGrainline->comboBoxGrainlineBottomPin));
@ -3210,11 +3212,10 @@ void DialogSeamAllowance::InitPatternPieceDataTab()
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogSeamAllowance::InitLabelsTab() void DialogSeamAllowance::InitLabelsTab()
{ {
QString labelValue = QString().setNum(UnitConvertor(10, Unit::Cm, *data->GetPatternUnit())); uiTabLabels->lineEditDLWidthFormula->setPlainText(m_defLabelValue);
uiTabLabels->lineEditDLWidthFormula->setPlainText(labelValue); uiTabLabels->lineEditDLHeightFormula->setPlainText(m_defLabelValue);
uiTabLabels->lineEditDLHeightFormula->setPlainText(labelValue); uiTabLabels->lineEditPLWidthFormula->setPlainText(m_defLabelValue);
uiTabLabels->lineEditPLWidthFormula->setPlainText(labelValue); uiTabLabels->lineEditPLHeightFormula->setPlainText(m_defLabelValue);
uiTabLabels->lineEditPLHeightFormula->setPlainText(labelValue);
m_DLWidthBaseHeight = uiTabLabels->lineEditDLWidthFormula->height(); m_DLWidthBaseHeight = uiTabLabels->lineEditDLWidthFormula->height();
m_DLHeightBaseHeight = uiTabLabels->lineEditDLHeightFormula->height(); m_DLHeightBaseHeight = uiTabLabels->lineEditDLHeightFormula->height();

View File

@ -240,6 +240,8 @@ private:
VAbstractPattern *m_doc{nullptr}; VAbstractPattern *m_doc{nullptr};
QString m_defLabelValue{};
VPiece CreatePiece() const; VPiece CreatePiece() const;
void NewMainPathItem(const VPieceNode &node); void NewMainPathItem(const VPieceNode &node);

View File

@ -356,6 +356,13 @@ QString VToolCurveIntersectAxis::MakeToolTip() const
return toolTip; return toolTip;
} }
//---------------------------------------------------------------------------------------------------------------------
void VToolCurveIntersectAxis::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
VToolLinePoint::hoverEnterEvent(event);
mainLine->SetBoldLine(false);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolCurveIntersectAxis::SetSegments(const QPair<QString, QString> &segments) void VToolCurveIntersectAxis::SetSegments(const QPair<QString, QString> &segments)
{ {

View File

@ -89,6 +89,7 @@ protected:
virtual void ReadToolAttributes(const QDomElement &domElement) override; virtual void ReadToolAttributes(const QDomElement &domElement) override;
virtual void SetVisualization() override; virtual void SetVisualization() override;
virtual auto MakeToolTip() const -> QString override; virtual auto MakeToolTip() const -> QString override;
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
void SetSegments(const QPair<QString, QString> &segments); void SetSegments(const QPair<QString, QString> &segments);
private: private:

View File

@ -358,3 +358,10 @@ QString VToolLineIntersectAxis::MakeToolTip() const
.arg(tr("Label"), current->name()); .arg(tr("Label"), current->name());
return toolTip; return toolTip;
} }
//---------------------------------------------------------------------------------------------------------------------
void VToolLineIntersectAxis::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
VToolLinePoint::hoverEnterEvent(event);
mainLine->SetBoldLine(false);
}

View File

@ -95,6 +95,7 @@ protected:
virtual void ReadToolAttributes(const QDomElement &domElement) override; virtual void ReadToolAttributes(const QDomElement &domElement) override;
virtual void SetVisualization() override; virtual void SetVisualization() override;
virtual QString MakeToolTip() const override; virtual QString MakeToolTip() const override;
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
private: private:
Q_DISABLE_COPY(VToolLineIntersectAxis) Q_DISABLE_COPY(VToolLineIntersectAxis)

View File

@ -99,7 +99,10 @@ void VisToolLineIntersectAxis::RefreshGeometry()
QPointF p; QPointF p;
VToolLineIntersectAxis::FindPoint(axis, base_line, &p); VToolLineIntersectAxis::FindPoint(axis, base_line, &p);
QLineF axis_line(static_cast<QPointF>(*third), p); QLineF axis_line(static_cast<QPointF>(*third), p);
DrawLine(this, axis_line, mainColor, lineStyle); if (not axis_line.isNull())
{
DrawLine(this, axis_line, mainColor, lineStyle);
}
DrawPoint(point, p, mainColor); DrawPoint(point, p, mainColor);
ShowIntersection(axis_line, base_line); ShowIntersection(axis_line, base_line);

View File

@ -125,14 +125,17 @@ void VGraphicsSimpleTextItem::paint(QPainter *painter, const QStyleOptionGraphic
void VGraphicsSimpleTextItem::setEnabled(bool enabled) void VGraphicsSimpleTextItem::setEnabled(bool enabled)
{ {
QGraphicsSimpleTextItem::setEnabled(enabled); QGraphicsSimpleTextItem::setEnabled(enabled);
const QPalette palet = this->scene()->palette(); if (this->scene())
if (enabled)
{ {
setBrush(palet.brush(QPalette::Active, QPalette::Text)); const QPalette palet = this->scene()->palette();
} if (enabled)
else {
{ setBrush(palet.brush(QPalette::Active, QPalette::Text));
setBrush(palet.brush(QPalette::Disabled, QPalette::Text)); }
else
{
setBrush(palet.brush(QPalette::Disabled, QPalette::Text));
}
} }
} }

View File

@ -221,9 +221,9 @@ void VMainGraphicsScene::InitOrigins()
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VMainGraphicsScene::SetOriginsVisible(bool visible) void VMainGraphicsScene::SetOriginsVisible(bool visible)
{ {
for (auto item : qAsConst(origins)) for (auto *item : qAsConst(origins))
{ {
if (item) if (item != nullptr)
{ {
item->setVisible(visible); item->setVisible(visible);
} }

View File

@ -170,11 +170,6 @@
"x": 2797.5081938293038, "x": 2797.5081938293038,
"y": 711.5320126236637 "y": 711.5320126236637
}, },
{
"type": "QPointF",
"x": 2797.565477459869,
"y": 778.332404004272
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 2798.0441679430687, "x": 2798.0441679430687,

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -147,13 +147,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -192,13 +187,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -147,13 +147,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -192,13 +187,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -152,13 +152,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,13 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -147,13 +147,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -192,13 +187,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -97,13 +97,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -142,13 +137,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -102,13 +102,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -147,13 +142,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -147,13 +147,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -375.5837936477569, "x": -394.4224543531813,
"y": 385.67430269319027 "y": 386.9889713429367
},
{
"type": "QPointF",
"x": -394.93507981176816,
"y": 387.02124656268006
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -192,13 +187,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -740.1638197010636, "x": -739.6019742862287,
"y": 383.4834023373132 "y": 383.5327301728105
},
{
"type": "QPointF",
"x": -756.9739837313467,
"y": 381.8746246893899
}, },
{ {
"type": "QPointF", "type": "QPointF",

View File

@ -110,11 +110,6 @@
"x": 330.9882848734929, "x": 330.9882848734929,
"y": 102.87077188278468 "y": 102.87077188278468
}, },
{
"type": "QPointF",
"x": 331.48273454480426,
"y": 104.45283583549359
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 332.2173315417802, "x": 332.2173315417802,

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": -214.69613672918854, "x": -216.6438440863518,
"y": 105.50483675932705 "y": 101.30502907435505
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -217.06541703221671, "x": -215.90873077439113,
"y": -20.396250591591283 "y": -22.890393162266093
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -292,8 +292,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -214.69613672918854, "x": -216.6438440863518,
"y": 105.50483675932705 "y": 101.30502907435505
} }
] ]
} }

View File

@ -17,18 +17,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -2083.1478929409827, "x": -2082.7202896908407,
"y": -1220.0868889606825 "y": -1220.2021340324343
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -2056.8141936259476, "x": -2057.1296527192585,
"y": -1225.6770902684877 "y": -1225.0231603699012
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": -2029.2249477701505, "x": -2030.268678428484,
"y": -1230.8064422813395 "y": -1230.6480813100734
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -120,11 +120,6 @@
"x": -1592.433553865018, "x": -1592.433553865018,
"y": -1150.9286376239052 "y": -1150.9286376239052
}, },
{
"type": "QPointF",
"x": -1581.1249477487709,
"y": -1139.9848040550612
},
{ {
"type": "QPointF", "type": "QPointF",
"x": -1574.7272893318411, "x": -1574.7272893318411,
@ -310,11 +305,6 @@
"x": -1984.5634596707787, "x": -1984.5634596707787,
"y": -98.8935172003726 "y": -98.8935172003726
}, },
{
"type": "QPointF",
"x": -1990.4276010223648,
"y": -91.09922907737571
},
{ {
"type": "QPointF", "type": "QPointF",
"x": -1997.2051328041664, "x": -1997.2051328041664,

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -67,13 +67,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 285.16939607807865, "x": 285.54316176628,
"y": -68.91025714339723 "y": -69.17631403269839
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 556.9804629248772, "x": 557.0289896899872,
"y": -31.407692230837753 "y": -31.71862328205888
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -82,13 +82,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.2174860962975 "y": -21.503347379130616
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530324, "x": 1117.8412466375905,
"y": 212.15307563552184 "y": 211.86982236967177
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -225,21 +225,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -262,18 +252,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
} }
] ]
} }

View File

@ -2,8 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530322, "x": 586.285424563237,
"y": 212.15307563552173 "y": -21.503347379130616
},
{
"type": "QPointF",
"x": 1117.8412466375905,
"y": 211.8698223696717
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -102,8 +107,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1020.6660121283516, "x": 1020.5214918560622,
"y": 644.7426504865729 "y": 644.8368304816686
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -140,21 +145,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -177,23 +172,23 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -252,13 +247,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 285.16939607807876, "x": 285.5431617662801,
"y": -68.9102571433973 "y": -69.17631403269846
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 556.9804629248772, "x": 557.0289896899872,
"y": -31.407692230837736 "y": -31.71862328205886
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -267,13 +262,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.217486096297492 "y": -21.503347379130616
},
{
"type": "QPointF",
"x": 1117.7037149530322,
"y": 212.15307563552173
} }
] ]
} }

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -77,18 +77,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 330.2597593313006, "x": 330.5479727319059,
"y": -109.8693765699337 "y": -110.14723735764198
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 335.08623255837216, "x": 335.3744459589775,
"y": -62.0230857634808 "y": -62.300946551189064
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 556.9804629248772, "x": 557.0289896899872,
"y": -31.407692230837753 "y": -31.71862328205888
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -97,13 +97,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.2174860962975 "y": -21.503347379130616
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530324, "x": 1117.8412466375905,
"y": 212.15307563552184 "y": 211.86982236967177
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -240,21 +240,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -277,18 +267,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
} }
] ]
} }

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -77,18 +77,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 308.85408734019427, "x": 309.14230074079956,
"y": -89.2325953918828 "y": -89.51045617959079
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 335.0862325583717, "x": 335.3744459589773,
"y": -62.023085763480815 "y": -62.30094655118904
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 556.9804629248772, "x": 557.0289896899872,
"y": -31.407692230837753 "y": -31.71862328205888
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -97,13 +97,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.2174860962975 "y": -21.503347379130616
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530324, "x": 1117.8412466375905,
"y": 212.15307563552184 "y": 211.86982236967177
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -240,21 +240,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -277,18 +267,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
} }
] ]
} }

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -72,13 +72,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 335.08623255837205, "x": 335.37444595897745,
"y": -62.023085763480815 "y": -62.300946551189064
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 556.9804629248772, "x": 557.0289896899872,
"y": -31.407692230837753 "y": -31.71862328205888
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -87,13 +87,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.2174860962975 "y": -21.503347379130616
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530324, "x": 1117.8412466375905,
"y": 212.15307563552184 "y": 211.86982236967177
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -230,21 +230,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -267,18 +257,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
} }
] ]
} }

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -72,13 +72,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 286.5647821037859, "x": 557.0289896899872,
"y": -68.71773166746928 "y": -31.71862328205888
},
{
"type": "QPointF",
"x": 556.9804629248772,
"y": -31.407692230837753
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -87,13 +82,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.2174860962975 "y": -21.503347379130616
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530324, "x": 1117.8412466375905,
"y": 212.15307563552184 "y": 211.86982236967177
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -230,21 +225,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -267,18 +252,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
} }
] ]
} }

View File

@ -2,13 +2,13 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141733, "x": 29.118425196850392,
"y": 2.2085234576982202 "y": 2.21193428424408
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -67,18 +67,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 284.4390076163077, "x": 284.4072000868026,
"y": -68.44485122652873 "y": -68.45268234011405
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 284.5734311894892, "x": 284.6164363645234,
"y": -68.99248415563486 "y": -69.30417703672788
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 556.9804629248772, "x": 557.0289896899872,
"y": -31.407692230837753 "y": -31.71862328205888
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -87,13 +87,13 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 586.153833178555, "x": 586.285424563237,
"y": -21.2174860962975 "y": -21.503347379130616
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1117.7037149530324, "x": 1117.8412466375905,
"y": 212.15307563552184 "y": 211.86982236967177
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -230,21 +230,11 @@
"x": 1074.3830151134664, "x": 1074.3830151134664,
"y": 697.7096649640414 "y": 697.7096649640414
}, },
{
"type": "QPointF",
"x": 1078.7265805419665,
"y": 699.565875909043
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1083.206554246492, "x": 1083.206554246492,
"y": 701.1878034134409 "y": 701.1878034134409
}, },
{
"type": "QPointF",
"x": 1087.891993301369,
"y": 702.5858632116882
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 1092.8646688655851, "x": 1092.8646688655851,
@ -267,18 +257,18 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1290.4028062852726, "x": 1290.475911190263,
"y": 707.5008815309488 "y": 707.5015785231967
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1302.4618765682826, "x": 1302.486882635022,
"y": 882.3181924346007 "y": 882.6858530210393
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 29.433070866141634, "x": 29.11842519685024,
"y": 970.4328156646322 "y": 970.4543384295728
} }
] ]
} }

View File

@ -260,11 +260,6 @@
"x": 954.9126743758827, "x": 954.9126743758827,
"y": 1599.02515094508 "y": 1599.02515094508
}, },
{
"type": "QPointF",
"x": 941.1480338176947,
"y": 1598.7097479128342
},
{ {
"type": "QPointF", "type": "QPointF",
"x": 929.6966471777685, "x": 929.6966471777685,

View File

@ -2,23 +2,18 @@
"vector": [ "vector": [
{ {
"type": "QPointF", "type": "QPointF",
"x": 692.3263132377243, "x": 692.3267996783844,
"y": 425.0598484090772 "y": 425.0547824881589
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 729.9485435174106, "x": 729.9490299580725,
"y": 428.6724161589221 "y": 428.66735023800396
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 902.8367306099547, "x": 1047.3703808444025,
"y": 438.0946986997068 "y": 444.96790138807927
},
{
"type": "QPointF",
"x": 1047.2274990256597,
"y": 444.9608350659975
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -47,8 +42,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1779.204057451268, "x": 1779.4842113185928,
"y": 460.15036806979015 "y": 460.1465274137461
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -117,8 +112,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 1986.4149731529892, "x": 1986.415017807355,
"y": 1450.5996057600491 "y": 1450.5995504284354
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -142,8 +137,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 2100.6375771334715, "x": 2101.0413693548594,
"y": 1515.7770650603459 "y": 1515.9306231177372
}, },
{ {
"type": "QPointF", "type": "QPointF",
@ -197,8 +192,8 @@
}, },
{ {
"type": "QPointF", "type": "QPointF",
"x": 692.3263132377243, "x": 692.3267996783844,
"y": 425.0598484090772 "y": 425.0547824881589
} }
] ]
} }

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