Release v0.4.2.

This commit is contained in:
Roman Telezhynskyi 2016-02-17 12:37:10 +02:00
commit 66a7f0a243
81 changed files with 2072 additions and 1103 deletions

View File

@ -1,3 +1,19 @@
# Version 0.4.2 February 17, 2016
- Measurement Diagram is not shown on Mac OS X.
- In dialog 'tool Spline Path' fixed broken selecting new point into the list of points.
- Regesign dialogs tool 'Spline' and 'Spline Path' for avoiding text squeeze.
- Fixed getting correct reversed segment for single in the list curve.
- Fixed triggering validation a detail. Two new cases: has been changed Reverse option and the list
has been scrolled. Fixed validation when the list conatains only curve.
- Fixed broken path to measurements after using Save As option.
- Tool line. Block selecting the same point twice.
- [#443] Not valid dxf file. libdxf updated to version 3.12.2.0. Fixed drawing subpaths.
- Fixed combobox width in Dialog "Tool True Dart point".
- [#441] Broken reference incrementation for tool "True Dart point".
- [#439] Widen Formula Dialog.
- Fixed broken tool dialogs "Intersection arcs" and "Point from arc and tangent".
- [#442] 'Broken Formula' error when using Intersect Circles tool.
# Version 0.4.1 January 29, 2016 # Version 0.4.1 January 29, 2016
- [#438] Broken switching pattern pieces. - [#438] Broken switching pattern pieces.
- Fixed wrong title for dialog "New pattern". - Fixed wrong title for dialog "New pattern".

View File

@ -1,4 +1,4 @@
valentina (0.4.1) trusty; urgency=low valentina (0.4.2) trusty; urgency=low
* Auto build. * Auto build.

View File

@ -11,7 +11,7 @@
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.6</string> <string>10.6</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>© 2013-2015, Valentina project</string> <string>© 2013-2016, Valentina project</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>@TYPEINFO@</string> <string>@TYPEINFO@</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -19,9 +19,9 @@
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>org.valentinaproject.@EXECUTABLE@</string> <string>org.valentinaproject.@EXECUTABLE@</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.4.1</string> <string>0.4.2</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.4.1.0</string> <string>0.4.2.0</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>

View File

@ -11,7 +11,7 @@
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.6</string> <string>10.6</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>© 2013-2015, Valentina project</string> <string>© 2013-2016, Valentina project</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>@TYPEINFO@</string> <string>@TYPEINFO@</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -19,9 +19,9 @@
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>org.valentinaproject.@EXECUTABLE@</string> <string>org.valentinaproject.@EXECUTABLE@</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.4.1</string> <string>0.4.2</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.4.1.0</string> <string>0.4.2.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">https://github.com/dismine/Valentina.git</param> <param name="url">https://github.com/dismine/Valentina.git</param>
<param name="versionprefix">0.4.1</param> <param name="versionprefix">0.4.2</param>
<param name="filename">valentina</param> <param name="filename">valentina</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="versionformat">%at</param> <param name="versionformat">%at</param>

View File

@ -45,7 +45,7 @@ BuildRequires: libqt5-qtxmlpatterns-devel
Requires: poppler-utils Requires: poppler-utils
Version: 0.4.1 Version: 0.4.2
Release: 0 Release: 0
URL: https://bitbucket.org/dismine/valentina URL: https://bitbucket.org/dismine/valentina
License: GPL-3.0+ License: GPL-3.0+

View File

@ -2459,7 +2459,7 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>New pattern</source> <source>New pattern</source>
<translation type="unfinished">New pattern</translation> <translation>New pattern</translation>
</message> </message>
</context> </context>
<context> <context>
@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Point of curve</translation> <translation type="vanished">Point of curve</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Point</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation> <translation>Count steps (0 - no limit):</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation>The path to the measurments is already relative.</translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation>The path to the measurments is already absolute.</translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3385,11 +3385,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Poměr délky prvního ovládacího bodu</translation> <translation type="vanished">Poměr délky prvního ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Úhel prvního ovládacího bodu</translation> <translation type="vanished">Úhel prvního ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3397,11 +3397,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Poměr délky druhého ovládacího bodu</translation> <translation type="vanished">Poměr délky druhého ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Úhel druhého ovládacího bodu</translation> <translation type="vanished">Úhel druhého ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3427,6 +3427,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Úhel</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3436,23 +3448,23 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Bod křivky</translation> <translation type="vanished">Bod křivky</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Poměr délky prvního ovládacího bodu</translation> <translation type="vanished">Poměr délky prvního ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Úhel prvního ovládacího bodu</translation> <translation type="vanished">Úhel prvního ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Poměr délky druhého ovládacího bodu</translation> <translation type="vanished">Poměr délky druhého ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Úhel druhého ovládacího bodu</translation> <translation type="vanished">Úhel druhého ovládacího bodu</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3478,6 +3490,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Bod</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Úhel</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -4942,6 +4974,17 @@ Chcete uložit své změny?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3456,11 +3456,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Längenverhältnis des ersten Kontrollpunktes</translation> <translation type="vanished">Längenverhältnis des ersten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Winkel des ersten Kontrollpunktes</translation> <translation type="vanished">Winkel des ersten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3468,11 +3468,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Längenverhältnis des zweiten Kontrollpunktes</translation> <translation type="vanished">Längenverhältnis des zweiten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Winkel des zweiten Kontrollpunktes</translation> <translation type="vanished">Winkel des zweiten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3498,6 +3498,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation>Farbe:</translation> <translation>Farbe:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Winkel</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3507,23 +3519,23 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Punkt der Kurve</translation> <translation type="vanished">Punkt der Kurve</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Längenverhältnis des ersten Kontrollpunktes</translation> <translation type="vanished">Längenverhältnis des ersten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Winkel des ersten Kontrollpunktes</translation> <translation type="vanished">Winkel des ersten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Längenverhältnis des zweiten Kontrollpunktes</translation> <translation type="vanished">Längenverhältnis des zweiten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Winkel des zweiten Kontrollpunktes</translation> <translation type="vanished">Winkel des zweiten Kontrollpunktes</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3549,6 +3561,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation>Farbe:</translation> <translation>Farbe:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Punkt</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Winkel</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5057,6 +5089,17 @@ Sollen die Änderungen gespeichert werden?</translation>
<translation>Schritte (0 - unbegrenzt):</translation> <translation>Schritte (0 - unbegrenzt):</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Point of curve</translation> <translation type="vanished">Point of curve</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Point</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation> <translation>Count steps (0 - no limit):</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Point of curve</translation> <translation type="vanished">Point of curve</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Point</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation> <translation>Count steps (0 - no limit):</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Point of curve</translation> <translation type="vanished">Point of curve</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Length ratio of the first control point</translation> <translation type="vanished">Length ratio of the first control point</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>The angle of the first control point</translation> <translation type="vanished">The angle of the first control point</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Length ratio of the second control point</translation> <translation type="vanished">Length ratio of the second control point</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>The angle of the second control point</translation> <translation type="vanished">The angle of the second control point</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Color:</translation> <translation>Color:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Point</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation> <translation>Count steps (0 - no limit):</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

File diff suppressed because it is too large Load Diff

View File

@ -3385,11 +3385,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Ensimmäisen kontrollipisteen pituussuhde</translation> <translation type="vanished">Ensimmäisen kontrollipisteen pituussuhde</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Ensimmäisen kontrollipisteen kulma</translation> <translation type="vanished">Ensimmäisen kontrollipisteen kulma</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3397,11 +3397,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Toisen kontrollipisteen pituussuhde</translation> <translation type="vanished">Toisen kontrollipisteen pituussuhde</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Toisen kontrollipisteen kulma</translation> <translation type="vanished">Toisen kontrollipisteen kulma</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3427,6 +3427,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Kulma</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3436,23 +3448,23 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Käyrän piste</translation> <translation type="vanished">Käyrän piste</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Ensimmäisen kontrollipisteen pituussuhde</translation> <translation type="vanished">Ensimmäisen kontrollipisteen pituussuhde</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Ensimmäisen kontrollipisteen kulma</translation> <translation type="vanished">Ensimmäisen kontrollipisteen kulma</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Toisen kontrollipisteen pituussuhde</translation> <translation type="vanished">Toisen kontrollipisteen pituussuhde</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Toisen kontrollipisteen kulma</translation> <translation type="vanished">Toisen kontrollipisteen kulma</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3478,6 +3490,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Piste</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Kulma</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -4942,6 +4974,17 @@ Haluatko tallentaa muutokset?</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3464,11 +3464,11 @@ Appliquer les réglages quand-même ?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Ratio de longueur du premier point de contrôle</translation> <translation type="vanished">Ratio de longueur du premier point de contrôle</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Angle du premier point de contrôle</translation> <translation type="vanished">Angle du premier point de contrôle</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3476,11 +3476,11 @@ Appliquer les réglages quand-même ?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Ratio de longueur du deuxième point de contrôle</translation> <translation type="vanished">Ratio de longueur du deuxième point de contrôle</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Angle du deuxième point de contrôle</translation> <translation type="vanished">Angle du deuxième point de contrôle</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3506,6 +3506,18 @@ Appliquer les réglages quand-même ?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Couleur:</translation> <translation>Couleur:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3515,23 +3527,23 @@ Appliquer les réglages quand-même ?</translation>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Point de courbe</translation> <translation type="vanished">Point de courbe</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Ratio de longueur du premier point de contrôle</translation> <translation type="vanished">Ratio de longueur du premier point de contrôle</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Angle du premier point de contrôle</translation> <translation type="vanished">Angle du premier point de contrôle</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Ratio de longueur du deuxième point de contrôle</translation> <translation type="vanished">Ratio de longueur du deuxième point de contrôle</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Angle du deuxième point de contrôle</translation> <translation type="vanished">Angle du deuxième point de contrôle</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3557,6 +3569,26 @@ Appliquer les réglages quand-même ?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Couleur:</translation> <translation>Couleur:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Point</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angle</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5062,6 +5094,17 @@ Voulez-vous sauvegarder les changements ? </translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3095,26 +3095,10 @@ Apply settings anyway?</source>
<source>First point</source> <source>First point</source>
<translation>נקודה ראשונה</translation> <translation>נקודה ראשונה</translation>
</message> </message>
<message>
<source>Length ratio of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Second point</source> <source>Second point</source>
<translation>נקודה שנייה</translation> <translation>נקודה שנייה</translation>
</message> </message>
<message>
<source>Length ratio of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Select last point of curve</source> <source>Select last point of curve</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3131,6 +3115,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3138,26 +3134,6 @@ Apply settings anyway?</source>
<source>Curved path</source> <source>Curved path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point of curve</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Length ratio of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Length ratio of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>List of points</source> <source>List of points</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3174,6 +3150,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">נקודה</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -4593,6 +4589,17 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3637,26 +3637,10 @@ Apply settings anyway?</source>
<source>First point</source> <source>First point</source>
<translation type="unfinished">Titik pertama</translation> <translation type="unfinished">Titik pertama</translation>
</message> </message>
<message>
<source>Length ratio of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Second point</source> <source>Second point</source>
<translation type="unfinished">titik kedua</translation> <translation type="unfinished">titik kedua</translation>
</message> </message>
<message>
<source>Length ratio of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Select last point of curve</source> <source>Select last point of curve</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3673,6 +3657,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">sudut</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3680,26 +3676,6 @@ Apply settings anyway?</source>
<source>Curved path</source> <source>Curved path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point of curve</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Length ratio of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the first control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Length ratio of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The angle of the second control point</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>List of points</source> <source>List of points</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3716,6 +3692,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">sudut</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogStandardMeasurements</name> <name>DialogStandardMeasurements</name>
@ -5258,6 +5254,17 @@ Apakah anda ingin menyimpan perubahan anda?</translation>
<translation type="obsolete">cm</translation> <translation type="obsolete">cm</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3474,11 +3474,11 @@ Applicare le impostazioni comunque?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Coefficiente di lunghezza del primo punto di controllo</translation> <translation type="vanished">Coefficiente di lunghezza del primo punto di controllo</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Angolo del primo punto di controllo</translation> <translation type="vanished">Angolo del primo punto di controllo</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3486,11 +3486,11 @@ Applicare le impostazioni comunque?</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Coefficiente di lunghezza del secondo punto di controllo</translation> <translation type="vanished">Coefficiente di lunghezza del secondo punto di controllo</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Angolo del secondo punto di controllo </translation> <translation type="vanished">Angolo del secondo punto di controllo </translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3516,6 +3516,18 @@ Applicare le impostazioni comunque?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Colore</translation> <translation>Colore</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angolo</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3525,23 +3537,23 @@ Applicare le impostazioni comunque?</translation>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Punto della curva</translation> <translation type="vanished">Punto della curva</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Coefficiente di lunghezza del primo punto di controllo</translation> <translation type="vanished">Coefficiente di lunghezza del primo punto di controllo</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Angolo del primo punto di controllo</translation> <translation type="vanished">Angolo del primo punto di controllo</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Coefficiente di lunghezza del secondo punto di controllo</translation> <translation type="vanished">Coefficiente di lunghezza del secondo punto di controllo</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Angolo del secondo punto di controllo </translation> <translation type="vanished">Angolo del secondo punto di controllo </translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3567,6 +3579,26 @@ Applicare le impostazioni comunque?</translation>
<source>Color:</source> <source>Color:</source>
<translation>Colore</translation> <translation>Colore</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Punto</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Angolo</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5075,6 +5107,17 @@ Vuoi salvare i cambiamenti?</translation>
<translation>Conto passi (0-infinito)</translation> <translation>Conto passi (0-infinito)</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3464,11 +3464,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Lengteverhouding van het eerste controlepunt</translation> <translation type="vanished">Lengteverhouding van het eerste controlepunt</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>De hoek van het eerste controlepunt</translation> <translation type="vanished">De hoek van het eerste controlepunt</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3476,11 +3476,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Lengteverhouding van het tweede controlepunt</translation> <translation type="vanished">Lengteverhouding van het tweede controlepunt</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>De hoek van het tweede controlepunt</translation> <translation type="vanished">De hoek van het tweede controlepunt</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3506,6 +3506,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Hoek</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3515,23 +3527,23 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Punt van kromming</translation> <translation type="vanished">Punt van kromming</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Lengteverhouding van het eerste controlepunt</translation> <translation type="vanished">Lengteverhouding van het eerste controlepunt</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>De hoek van het eerste controlepunt</translation> <translation type="vanished">De hoek van het eerste controlepunt</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Lengteverhouding van het tweede controlepunt</translation> <translation type="vanished">Lengteverhouding van het tweede controlepunt</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>De hoek van het tweede controlepunt</translation> <translation type="vanished">De hoek van het tweede controlepunt</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3557,6 +3569,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Punt</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Hoek</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5064,6 +5096,17 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

File diff suppressed because it is too large Load Diff

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Коэффициент длины первой контрольной точки</translation> <translation type="vanished">Коэффициент длины первой контрольной точки</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Угол первой контрольной точки</translation> <translation type="vanished">Угол первой контрольной точки</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Коэффициент длины второй контрольной точки</translation> <translation type="vanished">Коэффициент длины второй контрольной точки</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Угол второй контрольной точки</translation> <translation type="vanished">Угол второй контрольной точки</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation>Цвет:</translation> <translation>Цвет:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Угол</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Точка кривой</translation> <translation type="vanished">Точка кривой</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Коэффициент длины первой контрольной точки</translation> <translation type="vanished">Коэффициент длины первой контрольной точки</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Угол первой контрольной точки</translation> <translation type="vanished">Угол первой контрольной точки</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Коэффициент длины второй контрольной точки</translation> <translation type="vanished">Коэффициент длины второй контрольной точки</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Угол второй контрольной точки</translation> <translation type="vanished">Угол второй контрольной точки</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation>Цвет:</translation> <translation>Цвет:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Точка</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Угол</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</source>
<translation>Количество шагов (0 - без ограничений)</translation> <translation>Количество шагов (0 - без ограничений)</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -3475,11 +3475,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Коефіцієнт довжини першої контрольної точки</translation> <translation type="vanished">Коефіцієнт довжини першої контрольної точки</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Кут першої контрольної точки</translation> <translation type="vanished">Кут першої контрольної точки</translation>
</message> </message>
<message> <message>
<source>Second point</source> <source>Second point</source>
@ -3487,11 +3487,11 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Коефіцієнт довжини другої контрольної точки</translation> <translation type="vanished">Коефіцієнт довжини другої контрольної точки</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Кут другої контрольної точки</translation> <translation type="vanished">Кут другої контрольної точки</translation>
</message> </message>
<message> <message>
<source>Coefficient of curvature of the curve</source> <source>Coefficient of curvature of the curve</source>
@ -3517,6 +3517,18 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation>Колір:</translation> <translation>Колір:</translation>
</message> </message>
<message>
<source>Control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Кут</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSplinePath</name> <name>DialogSplinePath</name>
@ -3526,23 +3538,23 @@ Apply settings anyway?</source>
</message> </message>
<message> <message>
<source>Point of curve</source> <source>Point of curve</source>
<translation>Точка кривої</translation> <translation type="vanished">Точка кривої</translation>
</message> </message>
<message> <message>
<source>Length ratio of the first control point</source> <source>Length ratio of the first control point</source>
<translation>Коефіцієнт довжини першої контрольної точки</translation> <translation type="vanished">Коефіцієнт довжини першої контрольної точки</translation>
</message> </message>
<message> <message>
<source>The angle of the first control point</source> <source>The angle of the first control point</source>
<translation>Кут першої контрольної точки</translation> <translation type="vanished">Кут першої контрольної точки</translation>
</message> </message>
<message> <message>
<source>Length ratio of the second control point</source> <source>Length ratio of the second control point</source>
<translation>Коефіцієнт довжини другої контрольної точки</translation> <translation type="vanished">Коефіцієнт довжини другої контрольної точки</translation>
</message> </message>
<message> <message>
<source>The angle of the second control point</source> <source>The angle of the second control point</source>
<translation>Кут другої контрольної точки</translation> <translation type="vanished">Кут другої контрольної точки</translation>
</message> </message>
<message> <message>
<source>List of points</source> <source>List of points</source>
@ -3568,6 +3580,26 @@ Apply settings anyway?</source>
<source>Color:</source> <source>Color:</source>
<translation>Колір:</translation> <translation>Колір:</translation>
</message> </message>
<message>
<source>Point</source>
<translation type="unfinished">Точка</translation>
</message>
<message>
<source>First control point</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Angle</source>
<translation type="unfinished">Кут</translation>
</message>
<message>
<source>Length ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Second control point</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogTool</name> <name>DialogTool</name>
@ -5075,6 +5107,17 @@ Do you want to save your changes?</source>
<translation>Кількість кроків (0 - без обмежень):</translation> <translation>Кількість кроків (0 - без обмежень):</translation>
</message> </message>
</context> </context>
<context>
<name>QApplication</name>
<message>
<source>The path to the measurments is already relative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The path to the measurments is already absolute.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>QCommandLineParser</name> <name>QCommandLineParser</name>
<message> <message>

View File

@ -231,7 +231,7 @@ unix{
# Copy to bundle standard measurements files # Copy to bundle standard measurements files
# We cannot add none exist files to bundle through QMAKE_BUNDLE_DATA. That's why we must do this manually. # We cannot add none exist files to bundle through QMAKE_BUNDLE_DATA. That's why we must do this manually.
forceCopyToDestdir($${OUT_PWD}/$${DESTDIR}/diagrams.rcc, $$shell_path($${OUT_PWD}/$$DESTDIR/$${TARGET}.app/$$RESOURCES_DIR/)) QMAKE_POST_LINK += $$VCOPY $$quote($${OUT_PWD}/$${DESTDIR}/diagrams.rcc) $$quote($$shell_path($${OUT_PWD}/$$DESTDIR/$${TARGET}.app/$$RESOURCES_DIR/)) $$escape_expand(\\n\\t)
format.path = $$RESOURCES_DIR/ format.path = $$RESOURCES_DIR/
format.files = $$PWD/../../../dist/macx/measurements.icns format.files = $$PWD/../../../dist/macx/measurements.icns

View File

@ -2929,7 +2929,7 @@ bool MainWindow::SavePattern(const QString &fileName, QString &error)
qCDebug(vMainWindow, "Saving pattern file %s.", qUtf8Printable(fileName)); qCDebug(vMainWindow, "Saving pattern file %s.", qUtf8Printable(fileName));
QFileInfo tempInfo(fileName); QFileInfo tempInfo(fileName);
const QString mPath = doc->MPath(); const QString mPath = AbsoluteMPath(curFile, doc->MPath());
if (not mPath.isEmpty() && curFile != fileName) if (not mPath.isEmpty() && curFile != fileName)
{ {
doc->SetPath(RelativeMPath(fileName, mPath)); doc->SetPath(RelativeMPath(fileName, mPath));

View File

@ -293,6 +293,10 @@ unix{
icns_resources.files += $$PWD/../../../dist/macx/measurements.icns icns_resources.files += $$PWD/../../../dist/macx/measurements.icns
icns_resources.files += $$PWD/../../../dist/Tape.icns icns_resources.files += $$PWD/../../../dist/Tape.icns
# Copy to bundle standard measurements files
# We cannot add none exist files to bundle through QMAKE_BUNDLE_DATA. That's why we must do this manually.
QMAKE_POST_LINK += $$VCOPY $$quote($${OUT_PWD}/../tape/$${DESTDIR}/tape.app/$$RESOURCES_DIR/diagrams.rcc) $$quote($$shell_path($${OUT_PWD}/$$DESTDIR/$${TARGET}.app/$$RESOURCES_DIR/)) $$escape_expand(\\n\\t)
QMAKE_BUNDLE_DATA += \ QMAKE_BUNDLE_DATA += \
templates \ templates \
standard \ standard \

View File

@ -1871,7 +1871,7 @@ void VPattern::ParseToolSplinePath(VMainGraphicsScene *scene, const QDomElement
path->append(splPoint); path->append(splPoint);
if (parse == Document::FullParse) if (parse == Document::FullParse)
{ {
IncrementReferens(pSpline); IncrementReferens(p.getIdTool());
} }
} }
} }

View File

@ -101,6 +101,7 @@ public:
*/ */
enum version enum version
{ {
AC1009_MIN, // R12, minimalistic
AC1009, // R12 AC1009, // R12
AC1012, AC1012,
AC1014, AC1014,

View File

@ -172,13 +172,16 @@ bool DL_Dxf::in(std::stringstream& stream,
*/ */
bool DL_Dxf::readDxfGroups(FILE *fp, DL_CreationInterface* creationInterface) bool DL_Dxf::readDxfGroups(FILE *fp, DL_CreationInterface* creationInterface)
{ {
static int line = 1;
// Read one group of the DXF file and strip the lines: // Read one group of the DXF file and strip the lines:
if (DL_Dxf::getStrippedLine(groupCodeTmp, DL_DXF_MAXLINE, fp) && if (DL_Dxf::getStrippedLine(groupCodeTmp, DL_DXF_MAXLINE, fp) &&
DL_Dxf::getStrippedLine(groupValue, DL_DXF_MAXLINE, fp) ) DL_Dxf::getStrippedLine(groupValue, DL_DXF_MAXLINE, fp, false) )
{ {
groupCode = static_cast<quint32>(toInt(groupCodeTmp)); groupCode = static_cast<quint32>(toInt(groupCodeTmp));
creationInterface->processCodeValuePair(groupCode, groupValue); creationInterface->processCodeValuePair(groupCode, groupValue);
line+=2;
processDXFGroup(creationInterface, static_cast<int>(groupCode), groupValue); processDXFGroup(creationInterface, static_cast<int>(groupCode), groupValue);
} }
@ -193,12 +196,16 @@ bool DL_Dxf::readDxfGroups(FILE *fp, DL_CreationInterface* creationInterface)
bool DL_Dxf::readDxfGroups(std::stringstream& stream, bool DL_Dxf::readDxfGroups(std::stringstream& stream,
DL_CreationInterface* creationInterface) DL_CreationInterface* creationInterface)
{ {
static int line = 1;
// Read one group of the DXF file and chop the lines: // Read one group of the DXF file and chop the lines:
if (DL_Dxf::getStrippedLine(groupCodeTmp, DL_DXF_MAXLINE, stream) && if (DL_Dxf::getStrippedLine(groupCodeTmp, DL_DXF_MAXLINE, stream) &&
DL_Dxf::getStrippedLine(groupValue, DL_DXF_MAXLINE, stream) ) DL_Dxf::getStrippedLine(groupValue, DL_DXF_MAXLINE, stream, false) )
{ {
groupCode = static_cast<quint32>(toInt(groupCodeTmp)); groupCode = static_cast<quint32>(toInt(groupCodeTmp));
line+=2;
processDXFGroup(creationInterface, static_cast<int>(groupCode), groupValue); processDXFGroup(creationInterface, static_cast<int>(groupCode), groupValue);
} }
return !stream.eof(); return !stream.eof();
@ -223,7 +230,7 @@ bool DL_Dxf::readDxfGroups(std::stringstream& stream,
* @todo Is it a problem if line is blank (i.e., newline only)? * @todo Is it a problem if line is blank (i.e., newline only)?
* Then, when function returns, (s==NULL). * Then, when function returns, (s==NULL).
*/ */
bool DL_Dxf::getStrippedLine(std::string& s, quint32 size, FILE *fp) bool DL_Dxf::getStrippedLine(std::string& s, quint32 size, FILE *fp, bool stripSpace)
{ {
if (!feof(fp)) if (!feof(fp))
{ {
@ -240,7 +247,7 @@ bool DL_Dxf::getStrippedLine(std::string& s, quint32 size, FILE *fp)
// Both guaranteed to be NULL terminated. // Both guaranteed to be NULL terminated.
// Strip leading whitespace and trailing CR/LF. // Strip leading whitespace and trailing CR/LF.
stripWhiteSpace(&line); stripWhiteSpace(&line, stripSpace);
s = line; s = line;
assert(size > s.length()); assert(size > s.length());
@ -263,7 +270,7 @@ bool DL_Dxf::getStrippedLine(std::string& s, quint32 size, FILE *fp)
* Same as above but for stringstreams. * Same as above but for stringstreams.
*/ */
bool DL_Dxf::getStrippedLine(std::string &s, quint32 size, bool DL_Dxf::getStrippedLine(std::string &s, quint32 size,
std::stringstream& stream) std::stringstream& stream, bool stripSpace)
{ {
if (!stream.eof()) if (!stream.eof())
@ -272,7 +279,7 @@ bool DL_Dxf::getStrippedLine(std::string &s, quint32 size,
char* line = new char[size+1]; char* line = new char[size+1];
char* oriLine = line; char* oriLine = line;
stream.getline(line, static_cast<int>(size)); stream.getline(line, static_cast<int>(size));
stripWhiteSpace(&line); stripWhiteSpace(&line, stripSpace);
s = line; s = line;
assert(size > s.length()); assert(size > s.length());
delete[] oriLine; delete[] oriLine;
@ -297,33 +304,30 @@ bool DL_Dxf::getStrippedLine(std::string &s, quint32 size,
* @retval true if \p s is non-NULL * @retval true if \p s is non-NULL
* @retval false if \p s is NULL * @retval false if \p s is NULL
*/ */
bool DL_Dxf::stripWhiteSpace(char** s) bool DL_Dxf::stripWhiteSpace(char** s, bool stripSpace)
{ {
// No need to check if string is null
if (not (*s))
{
return false;
}
// last non-NULL char: // last non-NULL char:
int lastChar = static_cast<int>(strlen(*s) - 1); int lastChar = static_cast<int>(strlen(*s) - 1);
// Is last character CR or LF? // Is last character CR or LF?
while ( (lastChar >= 0) && while ( (lastChar >= 0) &&
(((*s)[lastChar] == 10) || ((*s)[lastChar] == 13) || (((*s)[lastChar] == 10) || ((*s)[lastChar] == 13) ||
((*s)[lastChar] == ' ' || ((*s)[lastChar] == '\t'))) ) (stripSpace && ((*s)[lastChar] == ' ' || ((*s)[lastChar] == '\t')))) )
{ {
(*s)[lastChar] = '\0'; (*s)[lastChar] = '\0';
lastChar--; lastChar--;
} }
// Skip whitespace, excluding \n, at beginning of line // Skip whitespace, excluding \n, at beginning of line
while ((*s)[0]==' ' || (*s)[0]=='\t') if (stripSpace)
{ {
++(*s); while ((*s)[0]==' ' || (*s)[0]=='\t')
{
++(*s);
}
} }
return true; return ((*s) ? true : false);
} }
@ -1475,9 +1479,9 @@ bool DL_Dxf::handleXRecordData(DL_CreationInterface* creationInterface)
// string: // string:
if (groupCode<=9 || if (groupCode<=9 ||
groupCode==100 || groupCode==102 || groupCode==105 || groupCode==100 || groupCode==102 || groupCode==105 ||
(groupCode>=300 && groupCode<=369) || (groupCode>=300 && groupCode<=369) ||
(groupCode>=1000 && groupCode<=1009)) (groupCode>=1000 && groupCode<=1009))
{ {
creationInterface->addXRecordString(static_cast<int>(groupCode), groupValue); creationInterface->addXRecordString(static_cast<int>(groupCode), groupValue);
@ -1831,9 +1835,9 @@ void DL_Dxf::addText(DL_CreationInterface* creationInterface)
getRealValue(20, 0.0), getRealValue(20, 0.0),
getRealValue(30, 0.0), getRealValue(30, 0.0),
// alignment point // alignment point
getRealValue(11, 0.0), getRealValue(11, DL_NANDOUBLE),
getRealValue(21, 0.0), getRealValue(21, DL_NANDOUBLE),
getRealValue(31, 0.0), getRealValue(31, DL_NANDOUBLE),
// height // height
getRealValue(40, 2.5), getRealValue(40, 2.5),
// x scale // x scale
@ -2244,7 +2248,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
} }
return true; return true;
default: default:
return false; break;
} }
} }
else else
@ -2268,7 +2272,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.defined = true; hatchEdge.defined = true;
return true; return true;
default: default:
return false; break;
} }
} }
@ -2297,7 +2301,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.defined = true; hatchEdge.defined = true;
return true; return true;
default: default:
return false; break;
} }
} }
@ -2332,7 +2336,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.defined = true; hatchEdge.defined = true;
return true; return true;
default: default:
return false; break;
} }
} }
@ -2414,7 +2418,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.endTangentY = toReal(groupValue); hatchEdge.endTangentY = toReal(groupValue);
return true; return true;
default: default:
return false; break;
} }
} }
} }
@ -2577,6 +2581,9 @@ void DL_Dxf::writeHeader(DL_WriterA& dw) const
break; break;
case DL_Codes::AC1015: case DL_Codes::AC1015:
dw.dxfString(1, "AC1015"); dw.dxfString(1, "AC1015");
break;
case DL_Codes::AC1009_MIN:
// minimalistic DXF version is unidentified in file:
break; break;
default: default:
break; break;
@ -3043,7 +3050,14 @@ void DL_Dxf::writeInsert(DL_WriterA& dw,
if (version==DL_VERSION_2000) if (version==DL_VERSION_2000)
{ {
dw.dxfString(100, "AcDbEntity"); dw.dxfString(100, "AcDbEntity");
dw.dxfString(100, "AcDbBlockReference"); if (data.cols!=1 || data.rows!=1)
{
dw.dxfString(100, "AcDbMInsertBlock");
}
else
{
dw.dxfString(100, "AcDbBlockReference");
}
} }
dw.entityAttributes(attrib); dw.entityAttributes(attrib);
dw.dxfString(2, data.name); dw.dxfString(2, data.name);
@ -3070,7 +3084,6 @@ void DL_Dxf::writeInsert(DL_WriterA& dw,
dw.dxfReal(44, data.colSp); dw.dxfReal(44, data.colSp);
dw.dxfReal(45, data.rowSp); dw.dxfReal(45, data.rowSp);
} }
} }
@ -3218,7 +3231,9 @@ void DL_Dxf::writeDimStyleOverrides(DL_WriterA& dw,
dw.dxfString(1000, "DSTYLE"); dw.dxfString(1000, "DSTYLE");
dw.dxfString(1002, "{"); dw.dxfString(1002, "{");
dw.dxfInt(1070, 144); dw.dxfInt(1070, 144);
dw.dxfInt(1040, static_cast<int>(data.linearFactor)); dw.dxfReal(1040, data.linearFactor);
dw.dxfInt(1070,40);
dw.dxfReal(1040, data.dimScale);
dw.dxfString(1002, "}"); dw.dxfString(1002, "}");
} }
} }
@ -3977,9 +3992,10 @@ int DL_Dxf::writeImage(DL_WriterA& dw,
const DL_Attributes& attrib) const DL_Attributes& attrib)
{ {
/*if (data.file.empty()) { /*if (data.file.empty())
{
std::cerr << "DL_Dxf::writeImage: " std::cerr << "DL_Dxf::writeImage: "
<< "Image file must not be empty\n"; << "Image file must not be empty\n";
return; return;
}*/ }*/
@ -4039,9 +4055,10 @@ void DL_Dxf::writeImageDef(DL_WriterA& dw,
const DL_ImageData& data) const const DL_ImageData& data) const
{ {
/*if (data.file.empty()) { /*if (data.file.empty())
{
std::cerr << "DL_Dxf::writeImage: " std::cerr << "DL_Dxf::writeImage: "
<< "Image file must not be empty\n"; << "Image file must not be empty\n";
return; return;
}*/ }*/

View File

@ -27,6 +27,7 @@
#include "dl_global.h" #include "dl_global.h"
#include <limits>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string> #include <string>
@ -50,15 +51,19 @@
#define M_PI 3.1415926535897932384626433832795 #define M_PI 3.1415926535897932384626433832795
#endif #endif
#ifndef DL_NANDOUBLE
#define DL_NANDOUBLE std::numeric_limits<double>::quiet_NaN()
#endif
class DL_CreationInterface; class DL_CreationInterface;
class DL_WriterA; class DL_WriterA;
#define DL_VERSION "3.7.5.0" #define DL_VERSION "3.12.2.0"
#define DL_VERSION_MAJOR 3 #define DL_VERSION_MAJOR 3
#define DL_VERSION_MINOR 7 #define DL_VERSION_MINOR 12
#define DL_VERSION_REV 5 #define DL_VERSION_REV 2
#define DL_VERSION_BUILD 0 #define DL_VERSION_BUILD 0
#define DL_UNKNOWN 0 #define DL_UNKNOWN 0
@ -126,16 +131,16 @@ public:
bool readDxfGroups(FILE* fp, bool readDxfGroups(FILE* fp,
DL_CreationInterface* creationInterface); DL_CreationInterface* creationInterface);
static bool getStrippedLine(std::string& s, quint32 size, static bool getStrippedLine(std::string& s, quint32 size,
FILE* stream); FILE* stream, bool stripSpace = true);
bool readDxfGroups(std::stringstream& stream, bool readDxfGroups(std::stringstream& stream,
DL_CreationInterface* creationInterface); DL_CreationInterface* creationInterface);
bool in(std::stringstream &stream, bool in(std::stringstream &stream,
DL_CreationInterface* creationInterface); DL_CreationInterface* creationInterface);
static bool getStrippedLine(std::string& s, quint32 size, static bool getStrippedLine(std::string& s, quint32 size,
std::stringstream& stream); std::stringstream& stream, bool stripSpace = true);
static bool stripWhiteSpace(char** s); static bool stripWhiteSpace(char** s, bool stripSpaces = true);
bool processDXFGroup(DL_CreationInterface* creationInterface, bool processDXFGroup(DL_CreationInterface* creationInterface,
int groupCode, const std::string& groupValue); int groupCode, const std::string& groupValue);

View File

@ -847,18 +847,6 @@ struct DXFLIB_EXPORT DL_TextData
virtual ~DL_TextData() virtual ~DL_TextData()
{} {}
DL_TextData(const DL_TextData &data)
:ipx(data.ipx), ipy(data.ipy), ipz(data.ipz),
apx(data.apx), apy(data.apy), apz(data.apz),
height(data.height), xScaleFactor(data.xScaleFactor),
textGenerationFlags(data.textGenerationFlags),
hJustification(data.hJustification),
vJustification(data.vJustification),
text(data.text),
style(data.style),
angle(data.angle)
{}
/*! X Coordinate of insertion point. */ /*! X Coordinate of insertion point. */
double ipx; double ipx;
/*! Y Coordinate of insertion point. */ /*! Y Coordinate of insertion point. */
@ -966,7 +954,8 @@ struct DXFLIB_EXPORT DL_DimensionData
const std::string& text, const std::string& text,
const std::string& style, const std::string& style,
double angle, double angle,
double linearFactor = 1.0) : double linearFactor = 1.0,
double dimScale = 1.0) :
dpx(dpx), dpy(dpy), dpz(dpz), dpx(dpx), dpy(dpy), dpz(dpz),
mpx(mpx), mpy(mpy), mpz(mpz), mpx(mpx), mpy(mpy), mpz(mpz),
type(type), type(type),
@ -976,7 +965,8 @@ struct DXFLIB_EXPORT DL_DimensionData
text(text), text(text),
style(style), style(style),
angle(angle), angle(angle),
linearFactor(linearFactor) linearFactor(linearFactor),
dimScale(dimScale)
{ {
} }
@ -1050,6 +1040,10 @@ struct DXFLIB_EXPORT DL_DimensionData
* Linear factor style override. * Linear factor style override.
*/ */
double linearFactor; double linearFactor;
/**
* Dimension scale (dimscale) style override.
*/
double dimScale;
}; };

View File

@ -65,7 +65,12 @@ public:
} }
/** /**
* @brief DL_Extrusion Constructor for DXF extrusion. * Constructor for DXF extrusion.
*
* @param direction Vector of axis along which the entity shall be extruded
* this is also the Z axis of the Entity coordinate system
* @param elevation Distance of the entities XY plane from the origin of the
* world coordinate system
*/ */
DL_Extrusion(double dx, double dy, double dz, double elevation) DL_Extrusion(double dx, double dy, double dz, double elevation)
: direction(new double[3]), elevation(elevation) : direction(new double[3]), elevation(elevation)
@ -76,7 +81,7 @@ public:
/** /**
* @brief setDirection Sets the direction vector. * Sets the direction vector.
*/ */
void setDirection(double dx, double dy, double dz) void setDirection(double dx, double dy, double dz)
{ {
@ -95,7 +100,12 @@ public:
return direction; return direction;
} }
void getDirection(double dir[]) const
/**
* @return direction vector.
*/
void getDirection(double dir[]) const
{ {
dir[0]=direction[0]; dir[0]=direction[0];
dir[1]=direction[1]; dir[1]=direction[1];

View File

@ -64,8 +64,15 @@ bool DL_WriterA::openFailed() const
void DL_WriterA::dxfReal(int gc, double value) const void DL_WriterA::dxfReal(int gc, double value) const
{ {
char str[256]; char str[256];
sprintf(str, "%.16lf", value); if (version==DL_Codes::AC1009_MIN)
{
sprintf(str, "%.6lf", value);
}
else
{
sprintf(str, "%.16lf", value);
}
// fix for german locale: // fix for german locale:
strReplace(str, ',', '.'); strReplace(str, ',', '.');

View File

@ -41,17 +41,16 @@
/** /**
* Implements functions defined in DL_Writer for writing low * Implements functions defined in DL_Writer for writing low
* level DXF constructs to an ASCII format DXF file. * level DXF constructs to an ASCII format DXF file.
*
* @para fname File name of the file to be created.
* @para version DXF version. Defaults to DL_VERSION_2002.
*
* @todo What if \c fname is NULL? Or \c fname can't be opened for
* another reason?
*/ */
class DXFLIB_EXPORT DL_WriterA : public DL_Writer class DXFLIB_EXPORT DL_WriterA : public DL_Writer
{ {
public: public:
/**
* @param fname fname File name of the file to be created.
* @param version version DXF version. Defaults to DL_VERSION_2002.
*
* @todo What if \c fname is NULL? Or \c fname can't be opened for
* another reason?
*/
explicit DL_WriterA(const char* fname, DL_Codes::version version=DL_VERSION_2000) explicit DL_WriterA(const char* fname, DL_Codes::version version=DL_VERSION_2000)
: DL_Writer(version), m_ofile(fname) {} : DL_Writer(version), m_ofile(fname) {}
virtual ~DL_WriterA() {} virtual ~DL_WriterA() {}

View File

@ -95,7 +95,7 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
QByteArray fileNameArray = getFileName().toLocal8Bit(); QByteArray fileNameArray = getFileName().toLocal8Bit();
dw = dxf->out(fileNameArray.data(), exportVersion); dw = dxf->out(fileNameArray.data(), exportVersion);
if (dw==NULL) if (dw==nullptr)
{ {
qWarning("VDxfEngine::begin(), can't open file"); qWarning("VDxfEngine::begin(), can't open file");
return false; return false;
@ -123,10 +123,37 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
dw->sectionTables(); dw->sectionTables();
dxf->writeVPort(*dw); dxf->writeVPort(*dw);
dw->tableLinetypes(25);
dxf->writeLinetype(*dw, DL_LinetypeData("BYBLOCK", "BYBLOCK", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("BYLAYER", "BYLAYER", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("CONTINUOUS", "Continuous", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("ACAD_ISO02W100", "ACAD_ISO02W100", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("ACAD_ISO03W100", "ACAD_ISO03W100", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("ACAD_ISO04W100", "ACAD_ISO04W100", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("ACAD_ISO05W100", "ACAD_ISO05W100", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("BORDER", "BORDER", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("BORDER2", "BORDER2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("BORDERX2", "BORDERX2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("CENTER", "CENTER", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("CENTER2", "CENTER2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("CENTERX2", "CENTERX2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DASHDOT", "DASHDOT", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DASHDOT2", "DASHDOT2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DASHDOTX2", "DASHDOTX2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DASHED", "DASHED", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DASHED2", "DASHED2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DASHEDX2", "DASHEDX2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DIVIDE", "DIVIDE", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DIVIDE2", "DIVIDE2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DIVIDEX2", "DIVIDEX2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DOT", "DOT", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DOT2", "DOT2", 0, 0, 0.0));
dxf->writeLinetype(*dw, DL_LinetypeData("DOTX2", "DOTX2", 0, 0, 0.0));
dw->tableEnd(); dw->tableEnd();
int numberOfLayers = 1; int numberOfLayers = 1;
dw->tableLayers(numberOfLayers); dw->tableLayers(numberOfLayers);
dxf->writeLayer(*dw, dxf->writeLayer(*dw,
DL_LayerData("0", 0), DL_LayerData("0", 0),
DL_Attributes( DL_Attributes(
@ -135,7 +162,46 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
100, // default width 100, // default width
"CONTINUOUS", // default line style "CONTINUOUS", // default line style
1.0)); // default line type scale 1.0)); // default line type scale
dw->tableEnd(); dw->tableEnd();
dw->tableStyle(1);
DL_StyleData style("Standard", 0, 0.0, 1.0, 0.0, 0, 2.5, "txt", "");
style.bold = false;
style.italic = false;
dxf->writeStyle(*dw, style);
dw->tableEnd();
dxf->writeView(*dw);
dxf->writeUcs(*dw);
dw->tableAppid(1);
dw->tableAppidEntry(0x12);
dw->dxfString(2, "ACAD");
dw->dxfInt(70, 0);
dw->tableEnd();
dxf->writeDimStyle(*dw, 1, 1, 1, 1, 1);
dxf->writeBlockRecord(*dw);
dxf->writeBlockRecord(*dw, "layout");
dw->tableEnd();
dw->sectionEnd();
dw->sectionBlocks();
dxf->writeBlock(*dw, DL_BlockData("*Model_Space", 0, 0.0, 0.0, 0.0));
dxf->writeEndBlock(*dw, "*Model_Space");
dxf->writeBlock(*dw, DL_BlockData("*Paper_Space", 0, 0.0, 0.0, 0.0));
dxf->writeEndBlock(*dw, "*Paper_Space");
dxf->writeBlock(*dw, DL_BlockData("*Paper_Space0", 0, 0.0, 0.0, 0.0));
dxf->writeEndBlock(*dw, "*Paper_Space0");
dxf->writeBlock(*dw, DL_BlockData("layout", 0, 0.0, 0.0, 0.0));
// ...
// write block entities e.g. with dxf->writeLine(), ..
// ...
dxf->writeEndBlock(*dw, "layout");
dw->sectionEnd(); dw->sectionEnd();
dw->sectionEntities(); dw->sectionEntities();
@ -146,6 +212,8 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
bool VDxfEngine::end() bool VDxfEngine::end()
{ {
dw->sectionEnd(); dw->sectionEnd();
dxf->writeObjects(*dw);
dxf->writeObjectsEnd(*dw);
dw->dxfEOF(); dw->dxfEOF();
dw->close(); dw->close();
delete dw; delete dw;
@ -172,14 +240,18 @@ void VDxfEngine::updateState(const QPaintEngineState &state)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::drawPath(const QPainterPath &path) void VDxfEngine::drawPath(const QPainterPath &path)
{ {
QPolygonF polygon = path.toFillPolygon(matrix); const QList<QPolygonF> subpaths = path.toSubpathPolygons(matrix);
if (polygon.size() < 3)
{
return;
}
for (int i=1; i < polygon.count(); i++) for (int j=0; j < subpaths.size(); ++j)
{ {
const QPolygonF polygon = subpaths.at(j);
if (polygon.size() < 3)
{
return;
}
for (int i=1; i < polygon.count(); i++)
{
dxf->writeLine( dxf->writeLine(
*dw, *dw,
DL_LineData(polygon.at(i-1).x(), // start point DL_LineData(polygon.at(i-1).x(), // start point
@ -188,7 +260,8 @@ void VDxfEngine::drawPath(const QPainterPath &path)
polygon.at(i).x(), // end point polygon.at(i).x(), // end point
getSize().height() - polygon.at(i).y(), getSize().height() - polygon.at(i).y(),
0.0), 0.0),
DL_Attributes("0", getPenColor(), state->pen().width(), getPenStyle(), 1.0)); DL_Attributes("0", getPenColor(), -1, getPenStyle(), 1.0));
}
} }
} }
@ -208,7 +281,7 @@ void VDxfEngine::drawLines(const QLineF * lines, int lineCount)
p2.x(), // end point p2.x(), // end point
getSize().height() - p2.y(), getSize().height() - p2.y(),
0.0), 0.0),
DL_Attributes("0", getPenColor(), state->pen().width(), getPenStyle(), 1.0)); DL_Attributes("0", getPenColor(), -1, getPenStyle(), 1.0));
} }
} }
@ -236,7 +309,7 @@ void VDxfEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawM
p2.x(), // end point p2.x(), // end point
getSize().height() - p2.y(), getSize().height() - p2.y(),
0.0), 0.0),
DL_Attributes("0", getPenColor(), state->pen().width(), getPenStyle(), 1.0)); DL_Attributes("0", getPenColor(), -1, getPenStyle(), 1.0));
} }
} }
@ -281,7 +354,7 @@ void VDxfEngine::drawEllipse(const QRectF & rect)
ratio, ratio,
0,6.28 // startangle and endangle of ellipse in rad 0,6.28 // startangle and endangle of ellipse in rad
), ),
DL_Attributes("0", getPenColor(), state->pen().width(), getPenStyle(), 1.0)); DL_Attributes("0", getPenColor(), -1, getPenStyle(), 1.0));
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -315,7 +388,7 @@ void VDxfEngine::drawTextItem(const QPointF & p, const QTextItem & textItem)
f.family().toUtf8().constData(), // font f.family().toUtf8().constData(), // font
-rotationAngle -rotationAngle
), ),
DL_Attributes("0", getPenColor(), state->pen().width(), getPenStyle(), 1.0)); DL_Attributes("0", getPenColor(), -1, getPenStyle(), 1.0));
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -180,6 +180,26 @@ void VGObject::setId(const quint32 &id)
d->_id = id; d->_id = id;
} }
//---------------------------------------------------------------------------------------------------------------------
quint32 VGObject::getIdTool() const
{
if (d->mode == Draw::Calculation)
{
if (d->idObject != NULL_ID)
{
return d->idObject;
}
else
{
return d->_id;
}
}
else
{
return d->_id;
}
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QLineF VGObject::BuildLine(const QPointF &p1, const qreal &length, const qreal &angle) QLineF VGObject::BuildLine(const QPointF &p1, const qreal &length, const qreal &angle)
{ {

View File

@ -68,6 +68,8 @@ public:
quint32 id() const; quint32 id() const;
virtual void setId(const quint32 &id); virtual void setId(const quint32 &id);
quint32 getIdTool() const;
static QLineF BuildLine(const QPointF &p1, const qreal& length, const qreal &angle); static QLineF BuildLine(const QPointF &p1, const qreal& length, const qreal &angle);
static QPointF BuildRay(const QPointF &firstPoint, const qreal &angle, const QRectF &scRect); static QPointF BuildRay(const QPointF &firstPoint, const qreal &angle, const QRectF &scRect);
static QLineF BuildAxis(const QPointF &p, const qreal &angle, const QRectF &scRect); static QLineF BuildAxis(const QPointF &p, const qreal &angle, const QRectF &scRect);

View File

@ -33,6 +33,7 @@
#include <QComboBox> #include <QComboBox>
#include <QDir> #include <QDir>
#include <QPrinterInfo> #include <QPrinterInfo>
#include <QDebug>
// Keep synchronize all names with initialization in VTranslateVars class!!!!! // Keep synchronize all names with initialization in VTranslateVars class!!!!!
//measurements //measurements
@ -1705,38 +1706,35 @@ QString StrippedName(const QString &fullFileName)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString RelativeMPath(const QString &patternPath, const QString &absoluteMPath) QString RelativeMPath(const QString &patternPath, const QString &absoluteMPath)
{ {
if (patternPath.isEmpty()) if (patternPath.isEmpty() || absoluteMPath.isEmpty())
{ {
return absoluteMPath; return absoluteMPath;
} }
if (absoluteMPath.isEmpty() || QFileInfo(absoluteMPath).isRelative()) if (QFileInfo(absoluteMPath).isRelative())
{ {
qWarning() << QApplication::tr("The path to the measurments is already relative.");
return absoluteMPath; return absoluteMPath;
} }
QDir dir(QFileInfo(patternPath).absoluteDir()); return QFileInfo(patternPath).absoluteDir().relativeFilePath(absoluteMPath);
return dir.relativeFilePath(absoluteMPath);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QString AbsoluteMPath(const QString &patternPath, const QString &relativeMPath) QString AbsoluteMPath(const QString &patternPath, const QString &relativeMPath)
{ {
if (patternPath.isEmpty()) if (patternPath.isEmpty() || relativeMPath.isEmpty())
{ {
return relativeMPath; return relativeMPath;
} }
else
{
if (relativeMPath.isEmpty() || QFileInfo(relativeMPath).isAbsolute())
{
return relativeMPath;
}
return QFileInfo(QFileInfo(patternPath).absoluteDir(), relativeMPath).absoluteFilePath(); if (QFileInfo(relativeMPath).isAbsolute())
{
qWarning() << QApplication::tr("The path to the measurments is already absolute.");
return relativeMPath;
} }
return QString();// should never reach return QFileInfo(QFileInfo(patternPath).absoluteDir(), relativeMPath).absoluteFilePath();
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -33,7 +33,7 @@
extern const int MAJOR_VERSION = 0; extern const int MAJOR_VERSION = 0;
extern const int MINOR_VERSION = 4; extern const int MINOR_VERSION = 4;
extern const int DEBUG_VERSION = 1; extern const int DEBUG_VERSION = 2;
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

@ -45,8 +45,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,4,1,0 #define VER_FILEVERSION 0,4,2,0
#define VER_FILEVERSION_STR "0.4.1.0\0" #define VER_FILEVERSION_STR "0.4.2.0\0"
#define V_PRERELEASE // Mark prerelease builds #define V_PRERELEASE // Mark prerelease builds

View File

@ -371,8 +371,8 @@ QVector<QPointF> VDetail::ContourPoints(const VContainer *data) const
{ {
const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId()); const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId());
const QPointF begin = StartSegment(data, i); const QPointF begin = StartSegment(data, i, at(i).getReverse());
const QPointF end = EndSegment(data, i); const QPointF end = EndSegment(data, i, at(i).getReverse());
points << curve->GetSegmentPoints(begin, end, at(i).getReverse()); points << curve->GetSegmentPoints(begin, end, at(i).getReverse());
} }
@ -415,8 +415,8 @@ QVector<QPointF> VDetail::SeamAllowancePoints(const VContainer *data) const
{ {
const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId()); const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId());
const QPointF begin = StartSegment(data, i); const QPointF begin = StartSegment(data, i, at(i).getReverse());
const QPointF end = EndSegment(data, i); const QPointF end = EndSegment(data, i, at(i).getReverse());
const QVector<QPointF> nodePoints = curve->GetSegmentPoints(begin, end, at(i).getReverse()); const QVector<QPointF> nodePoints = curve->GetSegmentPoints(begin, end, at(i).getReverse());
pointsEkv << biasPoints(nodePoints, at(i).getMx(), at(i).getMy()); pointsEkv << biasPoints(nodePoints, at(i).getMx(), at(i).getMy());
@ -524,7 +524,7 @@ int VDetail::indexOfNode(const QVector<VNodeDetail> &list, const quint32 &id)
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QPointF VDetail::StartSegment(const VContainer *data, const int &i) const QPointF VDetail::StartSegment(const VContainer *data, const int &i, bool reverse) const
{ {
if (i < 0 && i > CountNode()-1) if (i < 0 && i > CountNode()-1)
{ {
@ -533,7 +533,13 @@ QPointF VDetail::StartSegment(const VContainer *data, const int &i) const
const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId()); const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId());
QPointF begin = curve->GetPoints().first(); QVector<QPointF> points = curve->GetPoints();
if (reverse)
{
points = VGObject::GetReversePoints(points);
}
QPointF begin = points.first();
if (CountNode() > 1) if (CountNode() > 1)
{ {
if (i == 0) if (i == 0)
@ -555,7 +561,7 @@ QPointF VDetail::StartSegment(const VContainer *data, const int &i) const
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
QPointF VDetail::EndSegment(const VContainer *data, const int &i) const QPointF VDetail::EndSegment(const VContainer *data, const int &i, bool reverse) const
{ {
if (i < 0 && i > CountNode()-1) if (i < 0 && i > CountNode()-1)
{ {
@ -564,7 +570,13 @@ QPointF VDetail::EndSegment(const VContainer *data, const int &i) const
const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId()); const QSharedPointer<VAbstractCurve> curve = data->GeometricObject<VAbstractCurve>(at(i).getId());
QPointF end = curve->GetPoints().last(); QVector<QPointF> points = curve->GetPoints();
if (reverse)
{
points = VGObject::GetReversePoints(points);
}
QPointF end = points.last();
if (CountNode() > 2) if (CountNode() > 2)
{ {
if (i == CountNode() - 1) if (i == CountNode() - 1)

View File

@ -89,8 +89,8 @@ private:
static int indexOfNode(const QVector<VNodeDetail> &list, const quint32 &id); static int indexOfNode(const QVector<VNodeDetail> &list, const quint32 &id);
QPointF StartSegment(const VContainer *data, const int &i) const; QPointF StartSegment(const VContainer *data, const int &i, bool reverse) const;
QPointF EndSegment(const VContainer *data, const int &i) const; QPointF EndSegment(const VContainer *data, const int &i, bool reverse) const;
static QVector<QPointF> biasPoints(const QVector<QPointF> &points, const qreal &mx, const qreal &my); static QVector<QPointF> biasPoints(const QVector<QPointF> &points, const qreal &mx, const qreal &my);
}; };

View File

@ -307,6 +307,19 @@ void DialogEditWrongFormula::closeEvent(QCloseEvent *event)
DialogTool::closeEvent(event); DialogTool::closeEvent(event);
} }
//---------------------------------------------------------------------------------------------------------------------
void DialogEditWrongFormula::showEvent(QShowEvent *event)
{
DialogTool::showEvent( event );
if ( event->spontaneous() )
{
return;
}
setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
setMinimumSize(QSize(0, 0));
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogEditWrongFormula::SetFormula(const QString &value) void DialogEditWrongFormula::SetFormula(const QString &value)
{ {

View File

@ -79,6 +79,7 @@ public slots:
protected: protected:
virtual void CheckState() Q_DECL_OVERRIDE; virtual void CheckState() Q_DECL_OVERRIDE;
virtual void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; virtual void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
virtual void showEvent( QShowEvent *event ) Q_DECL_OVERRIDE;
private: private:
Q_DISABLE_COPY(DialogEditWrongFormula) Q_DISABLE_COPY(DialogEditWrongFormula)
Ui::DialogEditWrongFormula *ui; Ui::DialogEditWrongFormula *ui;

View File

@ -387,6 +387,7 @@ void DialogDetail::ClickedReverse(bool checked)
VNodeDetail node = qvariant_cast<VNodeDetail>(item->data(Qt::UserRole)); VNodeDetail node = qvariant_cast<VNodeDetail>(item->data(Qt::UserRole));
node.setReverse(checked); node.setReverse(checked);
item->setData(Qt::UserRole, QVariant::fromValue(node)); item->setData(Qt::UserRole, QVariant::fromValue(node));
ValidObjects(DetailIsValid());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -450,6 +451,7 @@ void DialogDetail::ScrollUp()
{ {
QListWidgetItem *item = ui.listWidget->takeItem(0); QListWidgetItem *item = ui.listWidget->takeItem(0);
ui.listWidget->addItem(item); ui.listWidget->addItem(item);
ValidObjects(DetailIsValid());
} }
} }
@ -460,6 +462,7 @@ void DialogDetail::ScrollDown()
{ {
QListWidgetItem *item = ui.listWidget->takeItem(ui.listWidget->count()-1); QListWidgetItem *item = ui.listWidget->takeItem(ui.listWidget->count()-1);
ui.listWidget->insertItem(0, item); ui.listWidget->insertItem(0, item);
ValidObjects(DetailIsValid());
} }
} }
@ -475,7 +478,7 @@ bool DialogDetail::DetailIsValid() const
pixmap.save(&buffer, "PNG"); pixmap.save(&buffer, "PNG");
QString url = QString("<img src=\"data:image/png;base64,") + byteArray.toBase64() + QLatin1Literal("\"/> "); QString url = QString("<img src=\"data:image/png;base64,") + byteArray.toBase64() + QLatin1Literal("\"/> ");
if (ui.listWidget->count() < 3) if(CreateDetail().ContourPoints(data).count() < 3)
{ {
url += tr("You need more points!"); url += tr("You need more points!");
ui.helpLabel->setText(url); ui.helpLabel->setText(url);
@ -538,17 +541,12 @@ bool DialogDetail::FirstPointEqualLast() const
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool DialogDetail::DetailIsClockwise() const bool DialogDetail::DetailIsClockwise() const
{ {
if(ui.listWidget->count() < 3) const QVector<QPointF> points = CreateDetail().ContourPoints(data);
if(points.count() < 3)
{ {
return false; return false;
} }
VDetail detail;
for (qint32 i = 0; i < ui.listWidget->count(); ++i)
{
QListWidgetItem *item = ui.listWidget->item(i);
detail.append( qvariant_cast<VNodeDetail>(item->data(Qt::UserRole)));
}
const QVector<QPointF> points = detail.ContourPoints(data);
const qreal res = VDetail::SumTrapezoids(points); const qreal res = VDetail::SumTrapezoids(points);
if (res < 0) if (res < 0)

View File

@ -182,13 +182,16 @@ void DialogLine::ChosenObject(quint32 id, const SceneObject &type)
} }
break; break;
case 1: case 1:
if (SetObject(id, ui->comboBoxSecondPoint, "")) if (getCurrentObjectId(ui->comboBoxFirstPoint) != id)
{ {
if (flagError) if (SetObject(id, ui->comboBoxSecondPoint, ""))
{ {
number = 0; if (flagError)
prepare = true; {
DialogAccepted(); number = 0;
prepare = true;
DialogAccepted();
}
} }
} }
break; break;

View File

@ -83,7 +83,7 @@ quint32 DialogPointFromArcAndTangent::GetArcId() const
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPointFromArcAndTangent::SetArcId(const quint32 &value) void DialogPointFromArcAndTangent::SetArcId(const quint32 &value)
{ {
setCurrentPointId(ui->comboBoxArc, value); setCurrentArcId(ui->comboBoxArc, value);
VisToolPointFromArcAndTangent *point = qobject_cast<VisToolPointFromArcAndTangent *>(vis); VisToolPointFromArcAndTangent *point = qobject_cast<VisToolPointFromArcAndTangent *>(vis);
SCASSERT(point != nullptr); SCASSERT(point != nullptr);

View File

@ -87,7 +87,7 @@ quint32 DialogPointOfIntersectionArcs::GetFirstArcId() const
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPointOfIntersectionArcs::SetFirstArcId(const quint32 &value) void DialogPointOfIntersectionArcs::SetFirstArcId(const quint32 &value)
{ {
setCurrentPointId(ui->comboBoxArc1, value); setCurrentArcId(ui->comboBoxArc1, value);
VisToolPointOfIntersectionArcs *point = qobject_cast<VisToolPointOfIntersectionArcs *>(vis); VisToolPointOfIntersectionArcs *point = qobject_cast<VisToolPointOfIntersectionArcs *>(vis);
SCASSERT(point != nullptr); SCASSERT(point != nullptr);
@ -103,7 +103,7 @@ quint32 DialogPointOfIntersectionArcs::GetSecondArcId() const
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void DialogPointOfIntersectionArcs::SetSecondArcId(const quint32 &value) void DialogPointOfIntersectionArcs::SetSecondArcId(const quint32 &value)
{ {
setCurrentPointId(ui->comboBoxArc2, value); setCurrentArcId(ui->comboBoxArc2, value);
VisToolPointOfIntersectionArcs *point = qobject_cast<VisToolPointOfIntersectionArcs *>(vis); VisToolPointOfIntersectionArcs *point = qobject_cast<VisToolPointOfIntersectionArcs *>(vis);
SCASSERT(point != nullptr); SCASSERT(point != nullptr);

View File

@ -245,7 +245,8 @@ void DialogPointOfIntersectionCircles::ChosenObject(quint32 id, const SceneObjec
point->setPoint2Id(id); point->setPoint2Id(id);
point->RefreshGeometry(); point->RefreshGeometry();
prepare = true; prepare = true;
DialogAccepted(); this->setModal(true);
this->show();
} }
} }
break; break;

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>540</width> <width>459</width>
<height>233</height> <height>256</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -20,76 +20,133 @@
<property name="locale"> <property name="locale">
<locale language="English" country="UnitedStates"/> <locale language="English" country="UnitedStates"/>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout_5">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout_8">
<property name="spacing">
<number>6</number>
</property>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QLabel" name="labelFirstPoint"> <widget class="QLabel" name="labelFirstPoint">
<property name="minimumSize">
<size>
<width>89</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string>First point</string> <string>First point</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="comboBoxP1"/> <widget class="QComboBox" name="comboBoxP1">
</item> <property name="sizePolicy">
</layout> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
</item> <horstretch>0</horstretch>
<item> <verstretch>0</verstretch>
<layout class="QHBoxLayout" name="horizontalLayout_3"> </sizepolicy>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Length ratio of the first control point</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBoxKasm1">
<property name="singleStep">
<double>0.010000000000000</double>
</property>
<property name="value">
<double>1.000000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <widget class="QGroupBox" name="groupBox">
<item> <property name="title">
<widget class="QLabel" name="label_3"> <string>Control point</string>
<property name="text"> </property>
<string>The angle of the first control point</string> <layout class="QVBoxLayout" name="verticalLayout_2">
</property> <item>
<property name="wordWrap"> <layout class="QFormLayout" name="formLayout_2">
<bool>true</bool> <item row="0" column="1">
</property> <widget class="QDoubleSpinBox" name="doubleSpinBoxKasm1">
</widget> <property name="sizePolicy">
</item> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<item> <horstretch>0</horstretch>
<widget class="QSpinBox" name="spinBoxAngle1"> <verstretch>0</verstretch>
<property name="maximum"> </sizepolicy>
<number>360</number> </property>
</property> <property name="singleStep">
</widget> <double>0.010000000000000</double>
</item> </property>
</layout> <property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Angle</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxAngle1">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>360</number>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Length ratio</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_5"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<widget class="QLabel" name="labelSecondPoint"> <widget class="QLabel" name="labelSecondPoint">
<property name="text"> <property name="text">
@ -98,54 +155,102 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="comboBoxP4"/> <widget class="QComboBox" name="comboBoxP4">
</item> <property name="sizePolicy">
</layout> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
</item> <horstretch>0</horstretch>
<item> <verstretch>0</verstretch>
<layout class="QHBoxLayout" name="horizontalLayout_6"> </sizepolicy>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Length ratio of the second control point</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBoxKasm2">
<property name="singleStep">
<double>0.010000000000000</double>
</property>
<property name="value">
<double>1.000000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_7"> <widget class="QGroupBox" name="groupBox_2">
<item> <property name="title">
<widget class="QLabel" name="label_7"> <string>Control point</string>
<property name="text"> </property>
<string>The angle of the second control point</string> <layout class="QVBoxLayout" name="verticalLayout_4">
</property> <item>
<property name="wordWrap"> <layout class="QFormLayout" name="formLayout_3">
<bool>true</bool> <item row="0" column="0">
</property> <widget class="QLabel" name="label_6">
</widget> <property name="sizePolicy">
</item> <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<item> <horstretch>0</horstretch>
<widget class="QSpinBox" name="spinBoxAngle2"> <verstretch>0</verstretch>
<property name="maximum"> </sizepolicy>
<number>360</number> </property>
</property> <property name="minimumSize">
</widget> <size>
</item> <width>0</width>
</layout> <height>0</height>
</size>
</property>
<property name="text">
<string>Length ratio</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxKasm2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="singleStep">
<double>0.010000000000000</double>
</property>
<property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Angle</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxAngle2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>360</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
@ -178,7 +283,7 @@
<item row="0" column="1"> <item row="0" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxKcurve"> <widget class="QDoubleSpinBox" name="doubleSpinBoxKcurve">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -205,7 +310,14 @@
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="QComboBox" name="comboBoxColor"/> <widget class="QComboBox" name="comboBoxColor">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
@ -228,6 +340,8 @@
<tabstop>comboBoxP4</tabstop> <tabstop>comboBoxP4</tabstop>
<tabstop>doubleSpinBoxKasm2</tabstop> <tabstop>doubleSpinBoxKasm2</tabstop>
<tabstop>spinBoxAngle2</tabstop> <tabstop>spinBoxAngle2</tabstop>
<tabstop>doubleSpinBoxKcurve</tabstop>
<tabstop>comboBoxColor</tabstop>
<tabstop>buttonBox</tabstop> <tabstop>buttonBox</tabstop>
</tabstops> </tabstops>
<resources> <resources>
@ -241,8 +355,8 @@
<slot>accept()</slot> <slot>accept()</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>248</x> <x>257</x>
<y>254</y> <y>246</y>
</hint> </hint>
<hint type="destinationlabel"> <hint type="destinationlabel">
<x>157</x> <x>157</x>
@ -257,8 +371,8 @@
<slot>reject()</slot> <slot>reject()</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>316</x> <x>325</x>
<y>260</y> <y>246</y>
</hint> </hint>
<hint type="destinationlabel"> <hint type="destinationlabel">
<x>286</x> <x>286</x>

View File

@ -187,6 +187,7 @@ void DialogSplinePath::currentPointChanged(int index)
DataPoint(p.P().id(), p.KAsm1(), p.Angle1(), p.KAsm2(), p.Angle2()); DataPoint(p.P().id(), p.KAsm1(), p.Angle1(), p.KAsm2(), p.Angle2());
EnableFields(); EnableFields();
item->setData(Qt::UserRole, QVariant::fromValue(p)); item->setData(Qt::UserRole, QVariant::fromValue(p));
item->setText(p.P().name());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>528</width> <width>519</width>
<height>322</height> <height>368</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -20,17 +20,17 @@
<property name="locale"> <property name="locale">
<locale language="English" country="UnitedStates"/> <locale language="English" country="UnitedStates"/>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout_2">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_5">
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>Point of curve</string> <string>Point</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -40,94 +40,99 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <widget class="QGroupBox" name="groupBox">
<item> <property name="title">
<widget class="QLabel" name="label_2"> <string>First control point</string>
<property name="text"> </property>
<string>Length ratio of the first control point</string> <layout class="QFormLayout" name="formLayout_2">
</property> <property name="fieldGrowthPolicy">
<property name="wordWrap"> <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
<bool>true</bool> </property>
</property> <item row="3" column="0">
</widget> <widget class="QLabel" name="label_3">
</item> <property name="text">
<item> <string>Angle</string>
<widget class="QDoubleSpinBox" name="doubleSpinBoxKasm1"> </property>
<property name="singleStep"> <property name="wordWrap">
<double>0.010000000000000</double> <bool>true</bool>
</property> </property>
<property name="value"> </widget>
<double>1.000000000000000</double> </item>
</property> <item row="3" column="1">
</widget> <widget class="QDoubleSpinBox" name="doubleSpinBoxAngle1">
</item> <property name="maximum">
</layout> <double>360.000000000000000</double>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBoxKasm1">
<property name="singleStep">
<double>0.010000000000000</double>
</property>
<property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Length ratio</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <widget class="QGroupBox" name="groupBox_2">
<item> <property name="title">
<widget class="QLabel" name="label_3"> <string>Second control point</string>
<property name="text"> </property>
<string>The angle of the first control point</string> <layout class="QFormLayout" name="formLayout_3">
</property> <item row="0" column="0">
<property name="wordWrap"> <widget class="QLabel" name="label_6">
<bool>true</bool> <property name="text">
</property> <string>Length ratio</string>
</widget> </property>
</item> <property name="wordWrap">
<item> <bool>true</bool>
<widget class="QDoubleSpinBox" name="doubleSpinBoxAngle1"> </property>
<property name="maximum"> </widget>
<double>360.000000000000000</double> </item>
</property> <item row="0" column="1">
</widget> <widget class="QDoubleSpinBox" name="doubleSpinBoxKasm2">
</item> <property name="singleStep">
</layout> <double>0.010000000000000</double>
</item> </property>
<item> <property name="value">
<layout class="QHBoxLayout" name="horizontalLayout_6"> <double>1.000000000000000</double>
<item> </property>
<widget class="QLabel" name="label_6"> </widget>
<property name="text"> </item>
<string>Length ratio of the second control point</string> <item row="1" column="0">
</property> <widget class="QLabel" name="label_7">
<property name="wordWrap"> <property name="text">
<bool>true</bool> <string>Angle</string>
</property> </property>
</widget> <property name="wordWrap">
</item> <bool>true</bool>
<item> </property>
<widget class="QDoubleSpinBox" name="doubleSpinBoxKasm2"> </widget>
<property name="singleStep"> </item>
<double>0.010000000000000</double> <item row="1" column="1">
</property> <widget class="QDoubleSpinBox" name="doubleSpinBoxAngle2">
<property name="value"> <property name="maximum">
<double>1.000000000000000</double> <double>360.000000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </widget>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>The angle of the second control point</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBoxAngle2">
<property name="maximum">
<double>360.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
@ -211,12 +216,6 @@
</layout> </layout>
</widget> </widget>
<tabstops> <tabstops>
<tabstop>comboBoxPoint</tabstop>
<tabstop>doubleSpinBoxKasm1</tabstop>
<tabstop>doubleSpinBoxAngle1</tabstop>
<tabstop>doubleSpinBoxKasm2</tabstop>
<tabstop>doubleSpinBoxAngle2</tabstop>
<tabstop>listWidget</tabstop>
<tabstop>buttonBox</tabstop> <tabstop>buttonBox</tabstop>
</tabstops> </tabstops>
<resources> <resources>

View File

@ -88,7 +88,7 @@
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>0</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>

View File

@ -160,7 +160,7 @@ VToolArc* VToolArc::Create(const quint32 _id, const quint32 &center, QString &ra
connect(scene, &VMainGraphicsScene::NewFactor, toolArc, &VToolArc::SetFactor); connect(scene, &VMainGraphicsScene::NewFactor, toolArc, &VToolArc::SetFactor);
connect(scene, &VMainGraphicsScene::DisableItem, toolArc, &VToolArc::Disable); connect(scene, &VMainGraphicsScene::DisableItem, toolArc, &VToolArc::Disable);
doc->AddTool(id, toolArc); doc->AddTool(id, toolArc);
doc->IncrementReferens(center); doc->IncrementReferens(c.getIdTool());
return toolArc; return toolArc;
} }
return nullptr; return nullptr;
@ -310,8 +310,8 @@ void VToolArc::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolArc::RemoveReferens() void VToolArc::RemoveReferens()
{ {
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id); const auto arc = VAbstractTool::data.GeometricObject<VArc>(id);
doc->DecrementReferens(arc->GetCenter().id()); doc->DecrementReferens(arc->GetCenter().getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -129,7 +129,7 @@ VToolArcWithLength *VToolArcWithLength::Create(const quint32 _id, const quint32
connect(scene, &VMainGraphicsScene::NewFactor, toolArc, &VToolArcWithLength::SetFactor); connect(scene, &VMainGraphicsScene::NewFactor, toolArc, &VToolArcWithLength::SetFactor);
connect(scene, &VMainGraphicsScene::DisableItem, toolArc, &VToolArcWithLength::Disable); connect(scene, &VMainGraphicsScene::DisableItem, toolArc, &VToolArcWithLength::Disable);
doc->AddTool(id, toolArc); doc->AddTool(id, toolArc);
doc->IncrementReferens(center); doc->IncrementReferens(c.getIdTool());
return toolArc; return toolArc;
} }
return nullptr; return nullptr;
@ -269,8 +269,8 @@ void VToolArcWithLength::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolArcWithLength::RemoveReferens() void VToolArcWithLength::RemoveReferens()
{ {
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id); const auto arc = VAbstractTool::data.GeometricObject<VArc>(id);
doc->DecrementReferens(arc->GetCenter().id()); doc->DecrementReferens(arc->GetCenter().getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -201,8 +201,8 @@ VToolSpline* VToolSpline::Create(const quint32 _id, const quint32 &p1, const qui
connect(scene, &VMainGraphicsScene::EnableToolMove, spl, &VToolSpline::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, spl, &VToolSpline::EnableToolMove);
connect(scene, &VMainGraphicsScene::CurveDetailsMode, spl, &VToolSpline::DetailsMode); connect(scene, &VMainGraphicsScene::CurveDetailsMode, spl, &VToolSpline::DetailsMode);
doc->AddTool(id, spl); doc->AddTool(id, spl);
doc->IncrementReferens(p1); doc->IncrementReferens(point1.getIdTool());
doc->IncrementReferens(p4); doc->IncrementReferens(point4.getIdTool());
return spl; return spl;
} }
return nullptr; return nullptr;
@ -287,9 +287,9 @@ void VToolSpline::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolSpline::RemoveReferens() void VToolSpline::RemoveReferens()
{ {
const QSharedPointer<VSpline> spl = VAbstractTool::data.GeometricObject<VSpline>(id); const auto spl = VAbstractTool::data.GeometricObject<VSpline>(id);
doc->DecrementReferens(spl->GetP1().id()); doc->DecrementReferens(spl->GetP1().getIdTool());
doc->DecrementReferens(spl->GetP4().id()); doc->DecrementReferens(spl->GetP4().getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -130,7 +130,7 @@ VToolSplinePath* VToolSplinePath::Create(DialogTool *dialog, VMainGraphicsScene
const QString color = dialogTool->GetColor(); const QString color = dialogTool->GetColor();
for (qint32 i = 0; i < path->CountPoint(); ++i) for (qint32 i = 0; i < path->CountPoint(); ++i)
{ {
doc->IncrementReferens((*path)[i].P().id()); doc->IncrementReferens((*path)[i].P().getIdTool());
} }
VToolSplinePath* spl = Create(0, path, color, scene, doc, data, Document::FullParse, Source::FromGui); VToolSplinePath* spl = Create(0, path, color, scene, doc, data, Document::FullParse, Source::FromGui);
if (spl != nullptr) if (spl != nullptr)
@ -371,10 +371,10 @@ void VToolSplinePath::AddPathPoint(VAbstractPattern *doc, QDomElement &domElemen
*/ */
void VToolSplinePath::RemoveReferens() void VToolSplinePath::RemoveReferens()
{ {
VSplinePath splPath = *VAbstractTool::data.GeometricObject<VSplinePath>(id); const VSplinePath splPath = *VAbstractTool::data.GeometricObject<VSplinePath>(id);
for (qint32 i = 0; i < splPath.Count(); ++i) for (qint32 i = 0; i < splPath.Count(); ++i)
{ {
doc->DecrementReferens(splPath.at(i).P().id()); doc->DecrementReferens(splPath.at(i).P().getIdTool());
} }
} }

View File

@ -159,13 +159,13 @@ VToolTrueDarts *VToolTrueDarts::Create(quint32 _id,
if (typeCreation == Source::FromGui) if (typeCreation == Source::FromGui)
{ {
id = data->getNextId();//Just reserve id for tool id = data->getNextId();//Just reserve id for tool
p1id = data->AddGObject(new VPointF(fPoint1, point1Name, mx1, my1)); p1id = data->AddGObject(new VPointF(fPoint1, point1Name, mx1, my1, id));
p2id = data->AddGObject(new VPointF(fPoint2, point2Name, mx2, my2)); p2id = data->AddGObject(new VPointF(fPoint2, point2Name, mx2, my2, id));
} }
else else
{ {
data->UpdateGObject(p1id, new VPointF(fPoint1, point1Name, mx1, my1)); data->UpdateGObject(p1id, new VPointF(fPoint1, point1Name, mx1, my1, id));
data->UpdateGObject(p2id, new VPointF(fPoint2, point2Name, mx2, my2)); data->UpdateGObject(p2id, new VPointF(fPoint2, point2Name, mx2, my2, id));
if (parse != Document::FullParse) if (parse != Document::FullParse)
{ {
doc->UpdateToolData(id, data); doc->UpdateToolData(id, data);
@ -182,11 +182,11 @@ VToolTrueDarts *VToolTrueDarts::Create(quint32 _id,
connect(scene, &VMainGraphicsScene::DisableItem, points, &VToolTrueDarts::Disable); connect(scene, &VMainGraphicsScene::DisableItem, points, &VToolTrueDarts::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, points, &VToolTrueDarts::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, points, &VToolTrueDarts::EnableToolMove);
doc->AddTool(id, points); doc->AddTool(id, points);
doc->IncrementReferens(baseLineP1Id); doc->IncrementReferens(baseLineP1->getIdTool());
doc->IncrementReferens(baseLineP2Id); doc->IncrementReferens(baseLineP2->getIdTool());
doc->IncrementReferens(dartP1Id); doc->IncrementReferens(dartP1->getIdTool());
doc->IncrementReferens(dartP2Id); doc->IncrementReferens(dartP2->getIdTool());
doc->IncrementReferens(dartP3Id); doc->IncrementReferens(dartP3->getIdTool());
return points; return points;
} }
return nullptr; return nullptr;
@ -305,11 +305,17 @@ void VToolTrueDarts::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolTrueDarts::RemoveReferens() void VToolTrueDarts::RemoveReferens()
{ {
doc->DecrementReferens(baseLineP1Id); const auto baseLineP1 = VAbstractTool::data.GetGObject(baseLineP1Id);
doc->DecrementReferens(baseLineP2Id); const auto baseLineP2 = VAbstractTool::data.GetGObject(baseLineP2Id);
doc->DecrementReferens(dartP1Id); const auto dartP1 = VAbstractTool::data.GetGObject(dartP1Id);
doc->DecrementReferens(dartP2Id); const auto dartP2 = VAbstractTool::data.GetGObject(dartP2Id);
doc->DecrementReferens(dartP3Id); const auto dartP3 = VAbstractTool::data.GetGObject(dartP3Id);
doc->DecrementReferens(baseLineP1->getIdTool());
doc->DecrementReferens(baseLineP2->getIdTool());
doc->DecrementReferens(dartP1->getIdTool());
doc->DecrementReferens(dartP2->getIdTool());
doc->DecrementReferens(dartP3->getIdTool());
VToolDoublePoint::RemoveReferens(); VToolDoublePoint::RemoveReferens();
} }

View File

@ -123,7 +123,9 @@ void VToolCut::RefreshGeometry()
*/ */
void VToolCut::RemoveReferens() void VToolCut::RemoveReferens()
{ {
doc->DecrementReferens(curveCutId); const auto curve = VAbstractTool::data.GetGObject(curveCutId);
doc->DecrementReferens(curve->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -170,7 +170,7 @@ VToolCutArc* VToolCutArc::Create(const quint32 _id, const QString &pointName, QS
doc->AddTool(id, point); doc->AddTool(id, point);
doc->AddTool(arc1id, point); doc->AddTool(arc1id, point);
doc->AddTool(arc2id, point); doc->AddTool(arc2id, point);
doc->IncrementReferens(arcId); doc->IncrementReferens(arc->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -178,7 +178,7 @@ VToolCutSpline* VToolCutSpline::Create(const quint32 _id, const QString &pointNa
doc->AddTool(id, point); doc->AddTool(id, point);
doc->AddTool(spl1id, point); doc->AddTool(spl1id, point);
doc->AddTool(spl2id, point); doc->AddTool(spl2id, point);
doc->IncrementReferens(splineId); doc->IncrementReferens(spl->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -222,7 +222,7 @@ VToolCutSplinePath* VToolCutSplinePath::Create(const quint32 _id, const QString
doc->AddTool(id, point); doc->AddTool(id, point);
doc->AddTool(splPath1id, point); doc->AddTool(splPath1id, point);
doc->AddTool(splPath2id, point); doc->AddTool(splPath2id, point);
doc->IncrementReferens(splinePathId); doc->IncrementReferens(splPath->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -94,7 +94,8 @@ void VToolAlongLine::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolAlongLine::RemoveReferens() void VToolAlongLine::RemoveReferens()
{ {
doc->DecrementReferens(secondPointId); const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(secondPoint->getIdTool());
VToolLinePoint::RemoveReferens(); VToolLinePoint::RemoveReferens();
} }
@ -279,8 +280,8 @@ VToolAlongLine* VToolAlongLine::Create(const quint32 _id, const QString &pointNa
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolAlongLine::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolAlongLine::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolAlongLine::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolAlongLine::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -205,9 +205,9 @@ VToolBisector* VToolBisector::Create(const quint32 _id, QString &formula, const
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolBisector::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolBisector::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolBisector::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolBisector::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondPoint->getIdTool());
doc->IncrementReferens(thirdPointId); doc->IncrementReferens(thirdPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -248,8 +248,11 @@ void VToolBisector::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolBisector::RemoveReferens() void VToolBisector::RemoveReferens()
{ {
doc->DecrementReferens(firstPointId); const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
doc->DecrementReferens(thirdPointId); const auto thirdPoint = VAbstractTool::data.GetGObject(thirdPointId);
doc->DecrementReferens(firstPoint->getIdTool());
doc->DecrementReferens(thirdPoint->getIdTool());
VToolLinePoint::RemoveReferens(); VToolLinePoint::RemoveReferens();
} }

View File

@ -134,8 +134,8 @@ VToolCurveIntersectAxis *VToolCurveIntersectAxis::Create(const quint32 _id, cons
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolCurveIntersectAxis::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolCurveIntersectAxis::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolCurveIntersectAxis::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolCurveIntersectAxis::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(basePointId); doc->IncrementReferens(basePoint->getIdTool());
doc->IncrementReferens(curveId); doc->IncrementReferens(curve->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -170,7 +170,7 @@ VToolEndLine* VToolEndLine::Create(const quint32 _id, const QString &pointName,
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolEndLine::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolEndLine::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolEndLine::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolEndLine::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(basePointId); doc->IncrementReferens(basePoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -162,9 +162,9 @@ VToolHeight* VToolHeight::Create(const quint32 _id, const QString &pointName, co
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolHeight::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolHeight::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolHeight::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolHeight::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(basePointId); doc->IncrementReferens(basePoint->getIdTool());
doc->IncrementReferens(p1LineId); doc->IncrementReferens(p1Line->getIdTool());
doc->IncrementReferens(p2LineId); doc->IncrementReferens(p2Line->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -145,9 +145,9 @@ VToolLineIntersectAxis *VToolLineIntersectAxis::Create(const quint32 _id, const
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolLineIntersectAxis::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolLineIntersectAxis::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolLineIntersectAxis::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolLineIntersectAxis::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(basePointId); doc->IncrementReferens(basePoint->getIdTool());
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;

View File

@ -86,7 +86,8 @@ void VToolLinePoint::RefreshGeometry()
*/ */
void VToolLinePoint::RemoveReferens() void VToolLinePoint::RemoveReferens()
{ {
doc->DecrementReferens(basePointId); const auto basePoint = VAbstractTool::data.GetGObject(basePointId);
doc->DecrementReferens(basePoint->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -165,8 +165,8 @@ VToolNormal* VToolNormal::Create(const quint32 _id, QString &formula, const quin
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolNormal::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolNormal::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolNormal::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolNormal::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -226,7 +226,8 @@ void VToolNormal::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolNormal::RemoveReferens() void VToolNormal::RemoveReferens()
{ {
doc->DecrementReferens(secondPointId); const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(secondPoint->getIdTool());
VToolLinePoint::RemoveReferens(); VToolLinePoint::RemoveReferens();
} }

View File

@ -209,9 +209,9 @@ VToolShoulderPoint* VToolShoulderPoint::Create(const quint32 _id, QString &formu
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolShoulderPoint::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolShoulderPoint::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolShoulderPoint::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolShoulderPoint::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(p1Line); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(p2Line); doc->IncrementReferens(secondPoint->getIdTool());
doc->IncrementReferens(pShoulder); doc->IncrementReferens(shoulderPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -252,8 +252,11 @@ void VToolShoulderPoint::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolShoulderPoint::RemoveReferens() void VToolShoulderPoint::RemoveReferens()
{ {
doc->DecrementReferens(p2Line); const auto p2 = VAbstractTool::data.GetGObject(p2Line);
doc->DecrementReferens(pShoulder); const auto pS = VAbstractTool::data.GetGObject(pShoulder);
doc->DecrementReferens(p2->getIdTool());
doc->DecrementReferens(pS->getIdTool());
VToolLinePoint::RemoveReferens(); VToolLinePoint::RemoveReferens();
} }

View File

@ -169,10 +169,10 @@ VToolLineIntersect* VToolLineIntersect::Create(const quint32 _id, const quint32
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolLineIntersect::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolLineIntersect::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolLineIntersect::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolLineIntersect::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(p1Line1Id); doc->IncrementReferens(p1Line1->getIdTool());
doc->IncrementReferens(p2Line1Id); doc->IncrementReferens(p2Line1->getIdTool());
doc->IncrementReferens(p1Line2Id); doc->IncrementReferens(p1Line2->getIdTool());
doc->IncrementReferens(p2Line2Id); doc->IncrementReferens(p2Line2->getIdTool());
return point; return point;
} }
} }
@ -214,10 +214,15 @@ void VToolLineIntersect::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/ */
void VToolLineIntersect::RemoveReferens() void VToolLineIntersect::RemoveReferens()
{ {
doc->DecrementReferens(p1Line1); const auto p1L1 = VAbstractTool::data.GetGObject(p1Line1);
doc->DecrementReferens(p2Line1); const auto p2L1 = VAbstractTool::data.GetGObject(p2Line1);
doc->DecrementReferens(p1Line2); const auto p1L2 = VAbstractTool::data.GetGObject(p1Line2);
doc->DecrementReferens(p2Line2); const auto p2L2 = VAbstractTool::data.GetGObject(p2Line2);
doc->DecrementReferens(p1L1->getIdTool());
doc->DecrementReferens(p2L1->getIdTool());
doc->DecrementReferens(p1L2->getIdTool());
doc->DecrementReferens(p2L2->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -113,8 +113,8 @@ VToolPointFromArcAndTangent *VToolPointFromArcAndTangent::Create(const quint32 _
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointFromArcAndTangent::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointFromArcAndTangent::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointFromArcAndTangent::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointFromArcAndTangent::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(arcId); doc->IncrementReferens(arc.getIdTool());
doc->IncrementReferens(tangentPointId); doc->IncrementReferens(tPoint.getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -260,8 +260,11 @@ void VToolPointFromArcAndTangent::ShowVisualization(bool show)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolPointFromArcAndTangent::RemoveReferens() void VToolPointFromArcAndTangent::RemoveReferens()
{ {
doc->DecrementReferens(arcId); const auto arc = VAbstractTool::data.GetGObject(arcId);
doc->DecrementReferens(tangentPointId); const auto tP = VAbstractTool::data.GetGObject(tangentPointId);
doc->DecrementReferens(arc->getIdTool());
doc->DecrementReferens(tP->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -123,8 +123,8 @@ VToolPointFromCircleAndTangent *VToolPointFromCircleAndTangent::Create(const qui
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointFromCircleAndTangent::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointFromCircleAndTangent::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointFromCircleAndTangent::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointFromCircleAndTangent::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(circleCenterId); doc->IncrementReferens(cPoint.getIdTool());
doc->IncrementReferens(tangentPointId); doc->IncrementReferens(tPoint.getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -244,8 +244,11 @@ void VToolPointFromCircleAndTangent::ShowVisualization(bool show)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolPointFromCircleAndTangent::RemoveReferens() void VToolPointFromCircleAndTangent::RemoveReferens()
{ {
doc->DecrementReferens(circleCenterId); const auto circleCenter = VAbstractTool::data.GetGObject(circleCenterId);
doc->DecrementReferens(tangentPointId); const auto tangentPoint = VAbstractTool::data.GetGObject(tangentPointId);
doc->DecrementReferens(circleCenter->getIdTool());
doc->DecrementReferens(tangentPoint->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -225,9 +225,9 @@ VToolPointOfContact* VToolPointOfContact::Create(const quint32 _id, QString &rad
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfContact::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfContact::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfContact::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfContact::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(center); doc->IncrementReferens(centerP->getIdTool());
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstP->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondP->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -268,9 +268,13 @@ void VToolPointOfContact::contextMenuEvent(QGraphicsSceneContextMenuEvent *event
*/ */
void VToolPointOfContact::RemoveReferens() void VToolPointOfContact::RemoveReferens()
{ {
doc->DecrementReferens(center); const auto c = VAbstractTool::data.GetGObject(center);
doc->DecrementReferens(firstPointId); const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
doc->DecrementReferens(secondPointId); const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(c->getIdTool());
doc->DecrementReferens(firstPoint->getIdTool());
doc->DecrementReferens(secondPoint->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -146,8 +146,8 @@ VToolPointOfIntersection *VToolPointOfIntersection::Create(const quint32 _id, co
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfIntersection::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfIntersection::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfIntersection::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfIntersection::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -159,8 +159,11 @@ VToolPointOfIntersection *VToolPointOfIntersection::Create(const quint32 _id, co
*/ */
void VToolPointOfIntersection::RemoveReferens() void VToolPointOfIntersection::RemoveReferens()
{ {
doc->DecrementReferens(firstPointId); const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
doc->DecrementReferens(secondPointId); const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(firstPoint->getIdTool());
doc->DecrementReferens(secondPoint->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -114,8 +114,8 @@ VToolPointOfIntersectionArcs *VToolPointOfIntersectionArcs::Create(const quint32
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfIntersectionArcs::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfIntersectionArcs::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfIntersectionArcs::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfIntersectionArcs::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(firstArcId); doc->IncrementReferens(firstArc->getIdTool());
doc->IncrementReferens(secondArcId); doc->IncrementReferens(secondArc->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -267,8 +267,11 @@ void VToolPointOfIntersectionArcs::ShowVisualization(bool show)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolPointOfIntersectionArcs::RemoveReferens() void VToolPointOfIntersectionArcs::RemoveReferens()
{ {
doc->DecrementReferens(firstArcId); const auto firstArc = VAbstractTool::data.GetGObject(firstArcId);
doc->DecrementReferens(secondArcId); const auto secondArc = VAbstractTool::data.GetGObject(secondArcId);
doc->DecrementReferens(firstArc->getIdTool());
doc->DecrementReferens(secondArc->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -135,8 +135,8 @@ VToolPointOfIntersectionCircles *VToolPointOfIntersectionCircles::Create(const q
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfIntersectionCircles::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolPointOfIntersectionCircles::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfIntersectionCircles::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolPointOfIntersectionCircles::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(firstCircleCenterId); doc->IncrementReferens(c1Point.getIdTool());
doc->IncrementReferens(secondCircleCenterId); doc->IncrementReferens(c2Point.getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -280,8 +280,11 @@ void VToolPointOfIntersectionCircles::ShowVisualization(bool show)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VToolPointOfIntersectionCircles::RemoveReferens() void VToolPointOfIntersectionCircles::RemoveReferens()
{ {
doc->DecrementReferens(firstCircleCenterId); const auto firstCircleCenter = VAbstractTool::data.GetGObject(firstCircleCenterId);
doc->DecrementReferens(secondCircleCenterId); const auto secondCircleCenter = VAbstractTool::data.GetGObject(secondCircleCenterId);
doc->DecrementReferens(firstCircleCenter->getIdTool());
doc->DecrementReferens(secondCircleCenter->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -156,10 +156,10 @@ VToolTriangle* VToolTriangle::Create(const quint32 _id, const QString &pointName
connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolTriangle::Disable); connect(scene, &VMainGraphicsScene::DisableItem, point, &VToolTriangle::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolTriangle::EnableToolMove); connect(scene, &VMainGraphicsScene::EnableToolMove, point, &VToolTriangle::EnableToolMove);
doc->AddTool(id, point); doc->AddTool(id, point);
doc->IncrementReferens(axisP1Id); doc->IncrementReferens(axisP1->getIdTool());
doc->IncrementReferens(axisP2Id); doc->IncrementReferens(axisP2->getIdTool());
doc->IncrementReferens(firstPointId); doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPointId); doc->IncrementReferens(secondPoint->getIdTool());
return point; return point;
} }
return nullptr; return nullptr;
@ -213,10 +213,15 @@ QPointF VToolTriangle::FindPoint(const QPointF &axisP1, const QPointF &axisP2, c
*/ */
void VToolTriangle::RemoveReferens() void VToolTriangle::RemoveReferens()
{ {
doc->DecrementReferens(axisP1Id); const auto axisP1 = VAbstractTool::data.GetGObject(axisP1Id);
doc->DecrementReferens(axisP2Id); const auto axisP2 = VAbstractTool::data.GetGObject(axisP2Id);
doc->DecrementReferens(firstPointId); const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
doc->DecrementReferens(secondPointId); const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(axisP1->getIdTool());
doc->DecrementReferens(axisP2->getIdTool());
doc->DecrementReferens(firstPoint->getIdTool());
doc->DecrementReferens(secondPoint->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -155,8 +155,12 @@ VToolLine * VToolLine::Create(const quint32 &_id, const quint32 &firstPoint, con
connect(scene, &VMainGraphicsScene::NewFactor, line, &VToolLine::SetFactor); connect(scene, &VMainGraphicsScene::NewFactor, line, &VToolLine::SetFactor);
connect(scene, &VMainGraphicsScene::DisableItem, line, &VToolLine::Disable); connect(scene, &VMainGraphicsScene::DisableItem, line, &VToolLine::Disable);
doc->AddTool(id, line); doc->AddTool(id, line);
doc->IncrementReferens(firstPoint);
doc->IncrementReferens(secondPoint); const QSharedPointer<VPointF> first = data->GeometricObject<VPointF>(firstPoint);
const QSharedPointer<VPointF> second = data->GeometricObject<VPointF>(secondPoint);
doc->IncrementReferens(first->getIdTool());
doc->IncrementReferens(second->getIdTool());
return line; return line;
} }
return nullptr; return nullptr;
@ -307,8 +311,11 @@ void VToolLine::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
*/ */
void VToolLine::RemoveReferens() void VToolLine::RemoveReferens()
{ {
doc->DecrementReferens(firstPoint); const auto p1 = VAbstractTool::data.GetGObject(firstPoint);
doc->DecrementReferens(secondPoint); const auto p2 = VAbstractTool::data.GetGObject(secondPoint);
doc->DecrementReferens(p1->getIdTool());
doc->DecrementReferens(p2->getIdTool());
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -37,6 +37,8 @@ VisToolPointOfIntersectionArcs::VisToolPointOfIntersectionArcs(const VContainer
point(nullptr), point(nullptr),
arc1Path(nullptr), arc2Path(nullptr) arc1Path(nullptr), arc2Path(nullptr)
{ {
this->setPen(QPen(Qt::NoPen)); // don't use parent this time
arc1Path = InitItem<QGraphicsPathItem>(Qt::darkGreen, this); arc1Path = InitItem<QGraphicsPathItem>(Qt::darkGreen, this);
arc1Path->setFlag(QGraphicsItem::ItemStacksBehindParent, false); arc1Path->setFlag(QGraphicsItem::ItemStacksBehindParent, false);
arc2Path = InitItem<QGraphicsPathItem>(Qt::darkRed, this); arc2Path = InitItem<QGraphicsPathItem>(Qt::darkRed, this);

View File

@ -37,6 +37,8 @@ VisToolPointOfIntersectionCircles::VisToolPointOfIntersectionCircles(const VCont
crossPoint(CrossCirclesPoint::FirstPoint), point(nullptr), c1Center(nullptr), c2Center(nullptr), c1Path(nullptr), crossPoint(CrossCirclesPoint::FirstPoint), point(nullptr), c1Center(nullptr), c2Center(nullptr), c1Path(nullptr),
c2Path(nullptr) c2Path(nullptr)
{ {
this->setPen(QPen(Qt::NoPen)); // don't use parent this time
c1Path = InitItem<QGraphicsEllipseItem>(Qt::darkGreen, this); c1Path = InitItem<QGraphicsEllipseItem>(Qt::darkGreen, this);
c2Path = InitItem<QGraphicsEllipseItem>(Qt::darkRed, this); c2Path = InitItem<QGraphicsEllipseItem>(Qt::darkRed, this);
point = InitPoint(mainColor, this); point = InitPoint(mainColor, this);