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
- [#438] Broken switching pattern pieces.
- 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.

View File

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

View File

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

2
dist/rpm/_service vendored
View File

@ -1,7 +1,7 @@
<services>
<service name="tar_scm">
<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="scm">git</param>
<param name="versionformat">%at</param>

View File

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

View File

@ -2459,7 +2459,7 @@ Apply settings anyway?</translation>
</message>
<message>
<source>New pattern</source>
<translation type="unfinished">New pattern</translation>
<translation>New pattern</translation>
</message>
</context>
<context>
@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message>
<message>
<source>Point of curve</source>
<translation>Point of curve</translation>
<translation type="vanished">Point of curve</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3385,11 +3385,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3397,11 +3397,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3427,6 +3427,18 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSplinePath</name>
@ -3436,23 +3448,23 @@ Apply settings anyway?</source>
</message>
<message>
<source>Point of curve</source>
<translation>Bod křivky</translation>
<translation type="vanished">Bod křivky</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3478,6 +3490,26 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogTool</name>
@ -4942,6 +4974,17 @@ Chcete uložit své změny?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3456,11 +3456,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3468,11 +3468,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3498,6 +3498,18 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation>Farbe:</translation>
</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>
<name>DialogSplinePath</name>
@ -3507,23 +3519,23 @@ Apply settings anyway?</source>
</message>
<message>
<source>Point of curve</source>
<translation>Punkt der Kurve</translation>
<translation type="vanished">Punkt der Kurve</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3549,6 +3561,26 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation>Farbe:</translation>
</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>
<name>DialogTool</name>
@ -5057,6 +5089,17 @@ Sollen die Änderungen gespeichert werden?</translation>
<translation>Schritte (0 - unbegrenzt):</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message>
<message>
<source>Point of curve</source>
<translation>Point of curve</translation>
<translation type="vanished">Point of curve</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message>
<message>
<source>Point of curve</source>
<translation>Point of curve</translation>
<translation type="vanished">Point of curve</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3473,11 +3473,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3485,11 +3485,11 @@ Apply settings anyway?</translation>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3515,6 +3515,18 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogSplinePath</name>
@ -3524,23 +3536,23 @@ Apply settings anyway?</translation>
</message>
<message>
<source>Point of curve</source>
<translation>Point of curve</translation>
<translation type="vanished">Point of curve</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3566,6 +3578,26 @@ Apply settings anyway?</translation>
<source>Color:</source>
<translation>Color:</translation>
</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>
<name>DialogTool</name>
@ -5074,6 +5106,17 @@ Do you want to save your changes?</translation>
<translation>Count steps (0 - no limit):</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

File diff suppressed because it is too large Load Diff

View File

@ -3385,11 +3385,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3397,11 +3397,11 @@ Apply settings anyway?</source>
</message>
<message>
<source>Length ratio of the second control point</source>
<translation>Toisen kontrollipisteen pituussuhde</translation>
<translation type="vanished">Toisen kontrollipisteen pituussuhde</translation>
</message>
<message>
<source>The angle of the second control point</source>
<translation>Toisen kontrollipisteen kulma</translation>
<translation type="vanished">Toisen kontrollipisteen kulma</translation>
</message>
<message>
<source>Coefficient of curvature of the curve</source>
@ -3427,6 +3427,18 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSplinePath</name>
@ -3436,23 +3448,23 @@ Apply settings anyway?</source>
</message>
<message>
<source>Point of curve</source>
<translation>Käyrän piste</translation>
<translation type="vanished">Käyrän piste</translation>
</message>
<message>
<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>
<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>
<source>Length ratio of the second control point</source>
<translation>Toisen kontrollipisteen pituussuhde</translation>
<translation type="vanished">Toisen kontrollipisteen pituussuhde</translation>
</message>
<message>
<source>The angle of the second control point</source>
<translation>Toisen kontrollipisteen kulma</translation>
<translation type="vanished">Toisen kontrollipisteen kulma</translation>
</message>
<message>
<source>List of points</source>
@ -3478,6 +3490,26 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogTool</name>
@ -4942,6 +4974,17 @@ Haluatko tallentaa muutokset?</translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3464,11 +3464,11 @@ Appliquer les réglages quand-même ?</translation>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3476,11 +3476,11 @@ Appliquer les réglages quand-même ?</translation>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3506,6 +3506,18 @@ Appliquer les réglages quand-même ?</translation>
<source>Color:</source>
<translation>Couleur:</translation>
</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>
<name>DialogSplinePath</name>
@ -3515,23 +3527,23 @@ Appliquer les réglages quand-même ?</translation>
</message>
<message>
<source>Point of curve</source>
<translation>Point de courbe</translation>
<translation type="vanished">Point de courbe</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3557,6 +3569,26 @@ Appliquer les réglages quand-même ?</translation>
<source>Color:</source>
<translation>Couleur:</translation>
</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>
<name>DialogTool</name>
@ -5062,6 +5094,17 @@ Voulez-vous sauvegarder les changements ? </translation>
<translation type="unfinished"></translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3095,26 +3095,10 @@ Apply settings anyway?</source>
<source>First point</source>
<translation>נקודה ראשונה</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>Second point</source>
<translation>נקודה שנייה</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>
<source>Select last point of curve</source>
<translation type="unfinished"></translation>
@ -3131,6 +3115,18 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSplinePath</name>
@ -3138,26 +3134,6 @@ Apply settings anyway?</source>
<source>Curved path</source>
<translation type="unfinished"></translation>
</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>
<source>List of points</source>
<translation type="unfinished"></translation>
@ -3174,6 +3150,26 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogTool</name>
@ -4593,6 +4589,17 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3637,26 +3637,10 @@ Apply settings anyway?</source>
<source>First point</source>
<translation type="unfinished">Titik pertama</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>Second point</source>
<translation type="unfinished">titik kedua</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>
<source>Select last point of curve</source>
<translation type="unfinished"></translation>
@ -3673,6 +3657,18 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSplinePath</name>
@ -3680,26 +3676,6 @@ Apply settings anyway?</source>
<source>Curved path</source>
<translation type="unfinished"></translation>
</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>
<source>List of points</source>
<translation type="unfinished"></translation>
@ -3716,6 +3692,26 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogStandardMeasurements</name>
@ -5258,6 +5254,17 @@ Apakah anda ingin menyimpan perubahan anda?</translation>
<translation type="obsolete">cm</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3474,11 +3474,11 @@ Applicare le impostazioni comunque?</translation>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3486,11 +3486,11 @@ Applicare le impostazioni comunque?</translation>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3516,6 +3516,18 @@ Applicare le impostazioni comunque?</translation>
<source>Color:</source>
<translation>Colore</translation>
</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>
<name>DialogSplinePath</name>
@ -3525,23 +3537,23 @@ Applicare le impostazioni comunque?</translation>
</message>
<message>
<source>Point of curve</source>
<translation>Punto della curva</translation>
<translation type="vanished">Punto della curva</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3567,6 +3579,26 @@ Applicare le impostazioni comunque?</translation>
<source>Color:</source>
<translation>Colore</translation>
</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>
<name>DialogTool</name>
@ -5075,6 +5107,17 @@ Vuoi salvare i cambiamenti?</translation>
<translation>Conto passi (0-infinito)</translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

View File

@ -3464,11 +3464,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Second point</source>
@ -3476,11 +3476,11 @@ Apply settings anyway?</source>
</message>
<message>
<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>
<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>
<source>Coefficient of curvature of the curve</source>
@ -3506,6 +3506,18 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogSplinePath</name>
@ -3515,23 +3527,23 @@ Apply settings anyway?</source>
</message>
<message>
<source>Point of curve</source>
<translation>Punt van kromming</translation>
<translation type="vanished">Punt van kromming</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<source>List of points</source>
@ -3557,6 +3569,26 @@ Apply settings anyway?</source>
<source>Color:</source>
<translation type="unfinished"></translation>
</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>
<name>DialogTool</name>
@ -5064,6 +5096,17 @@ Do you want to save your changes?</source>
<translation type="unfinished"></translation>
</message>
</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>
<name>QCommandLineParser</name>
<message>

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -231,7 +231,7 @@ unix{
# 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.
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.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));
QFileInfo tempInfo(fileName);
const QString mPath = doc->MPath();
const QString mPath = AbsoluteMPath(curFile, doc->MPath());
if (not mPath.isEmpty() && curFile != fileName)
{
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/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 += \
templates \
standard \

View File

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

View File

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

View File

@ -172,13 +172,16 @@ bool DL_Dxf::in(std::stringstream& stream,
*/
bool DL_Dxf::readDxfGroups(FILE *fp, DL_CreationInterface* creationInterface)
{
static int line = 1;
// Read one group of the DXF file and strip the lines:
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));
creationInterface->processCodeValuePair(groupCode, groupValue);
line+=2;
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,
DL_CreationInterface* creationInterface)
{
static int line = 1;
// Read one group of the DXF file and chop the lines:
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));
line+=2;
processDXFGroup(creationInterface, static_cast<int>(groupCode), groupValue);
}
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)?
* 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))
{
@ -240,7 +247,7 @@ bool DL_Dxf::getStrippedLine(std::string& s, quint32 size, FILE *fp)
// Both guaranteed to be NULL terminated.
// Strip leading whitespace and trailing CR/LF.
stripWhiteSpace(&line);
stripWhiteSpace(&line, stripSpace);
s = line;
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.
*/
bool DL_Dxf::getStrippedLine(std::string &s, quint32 size,
std::stringstream& stream)
std::stringstream& stream, bool stripSpace)
{
if (!stream.eof())
@ -272,7 +279,7 @@ bool DL_Dxf::getStrippedLine(std::string &s, quint32 size,
char* line = new char[size+1];
char* oriLine = line;
stream.getline(line, static_cast<int>(size));
stripWhiteSpace(&line);
stripWhiteSpace(&line, stripSpace);
s = line;
assert(size > s.length());
delete[] oriLine;
@ -297,33 +304,30 @@ bool DL_Dxf::getStrippedLine(std::string &s, quint32 size,
* @retval true if \p s is non-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:
int lastChar = static_cast<int>(strlen(*s) - 1);
// Is last character CR or LF?
while ( (lastChar >= 0) &&
(((*s)[lastChar] == 10) || ((*s)[lastChar] == 13) ||
((*s)[lastChar] == ' ' || ((*s)[lastChar] == '\t'))) )
(stripSpace && ((*s)[lastChar] == ' ' || ((*s)[lastChar] == '\t')))) )
{
(*s)[lastChar] = '\0';
lastChar--;
}
// 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:
if (groupCode<=9 ||
groupCode==100 || groupCode==102 || groupCode==105 ||
(groupCode>=300 && groupCode<=369) ||
(groupCode>=1000 && groupCode<=1009))
groupCode==100 || groupCode==102 || groupCode==105 ||
(groupCode>=300 && groupCode<=369) ||
(groupCode>=1000 && groupCode<=1009))
{
creationInterface->addXRecordString(static_cast<int>(groupCode), groupValue);
@ -1831,9 +1835,9 @@ void DL_Dxf::addText(DL_CreationInterface* creationInterface)
getRealValue(20, 0.0),
getRealValue(30, 0.0),
// alignment point
getRealValue(11, 0.0),
getRealValue(21, 0.0),
getRealValue(31, 0.0),
getRealValue(11, DL_NANDOUBLE),
getRealValue(21, DL_NANDOUBLE),
getRealValue(31, DL_NANDOUBLE),
// height
getRealValue(40, 2.5),
// x scale
@ -2244,7 +2248,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
}
return true;
default:
return false;
break;
}
}
else
@ -2268,7 +2272,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.defined = true;
return true;
default:
return false;
break;
}
}
@ -2297,7 +2301,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.defined = true;
return true;
default:
return false;
break;
}
}
@ -2332,7 +2336,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.defined = true;
return true;
default:
return false;
break;
}
}
@ -2414,7 +2418,7 @@ bool DL_Dxf::handleHatchData(DL_CreationInterface* creationInterface)
hatchEdge.endTangentY = toReal(groupValue);
return true;
default:
return false;
break;
}
}
}
@ -2577,6 +2581,9 @@ void DL_Dxf::writeHeader(DL_WriterA& dw) const
break;
case DL_Codes::AC1015:
dw.dxfString(1, "AC1015");
break;
case DL_Codes::AC1009_MIN:
// minimalistic DXF version is unidentified in file:
break;
default:
break;
@ -3043,7 +3050,14 @@ void DL_Dxf::writeInsert(DL_WriterA& dw,
if (version==DL_VERSION_2000)
{
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.dxfString(2, data.name);
@ -3070,7 +3084,6 @@ void DL_Dxf::writeInsert(DL_WriterA& dw,
dw.dxfReal(44, data.colSp);
dw.dxfReal(45, data.rowSp);
}
}
@ -3218,7 +3231,9 @@ void DL_Dxf::writeDimStyleOverrides(DL_WriterA& dw,
dw.dxfString(1000, "DSTYLE");
dw.dxfString(1002, "{");
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, "}");
}
}
@ -3977,9 +3992,10 @@ int DL_Dxf::writeImage(DL_WriterA& dw,
const DL_Attributes& attrib)
{
/*if (data.file.empty()) {
/*if (data.file.empty())
{
std::cerr << "DL_Dxf::writeImage: "
<< "Image file must not be empty\n";
<< "Image file must not be empty\n";
return;
}*/
@ -4039,9 +4055,10 @@ void DL_Dxf::writeImageDef(DL_WriterA& dw,
const DL_ImageData& data) const
{
/*if (data.file.empty()) {
/*if (data.file.empty())
{
std::cerr << "DL_Dxf::writeImage: "
<< "Image file must not be empty\n";
<< "Image file must not be empty\n";
return;
}*/

View File

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

View File

@ -847,18 +847,6 @@ struct DXFLIB_EXPORT 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. */
double ipx;
/*! Y Coordinate of insertion point. */
@ -966,7 +954,8 @@ struct DXFLIB_EXPORT DL_DimensionData
const std::string& text,
const std::string& style,
double angle,
double linearFactor = 1.0) :
double linearFactor = 1.0,
double dimScale = 1.0) :
dpx(dpx), dpy(dpy), dpz(dpz),
mpx(mpx), mpy(mpy), mpz(mpz),
type(type),
@ -976,7 +965,8 @@ struct DXFLIB_EXPORT DL_DimensionData
text(text),
style(style),
angle(angle),
linearFactor(linearFactor)
linearFactor(linearFactor),
dimScale(dimScale)
{
}
@ -1050,6 +1040,10 @@ struct DXFLIB_EXPORT DL_DimensionData
* Linear factor style override.
*/
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)
: 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)
{
@ -95,7 +100,12 @@ public:
return direction;
}
void getDirection(double dir[]) const
/**
* @return direction vector.
*/
void getDirection(double dir[]) const
{
dir[0]=direction[0];
dir[1]=direction[1];

View File

@ -64,8 +64,15 @@ bool DL_WriterA::openFailed() const
void DL_WriterA::dxfReal(int gc, double value) const
{
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:
strReplace(str, ',', '.');

View File

@ -41,17 +41,16 @@
/**
* Implements functions defined in DL_Writer for writing low
* 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
{
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)
: DL_Writer(version), m_ofile(fname) {}
virtual ~DL_WriterA() {}

View File

@ -95,7 +95,7 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
QByteArray fileNameArray = getFileName().toLocal8Bit();
dw = dxf->out(fileNameArray.data(), exportVersion);
if (dw==NULL)
if (dw==nullptr)
{
qWarning("VDxfEngine::begin(), can't open file");
return false;
@ -123,10 +123,37 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
dw->sectionTables();
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();
int numberOfLayers = 1;
dw->tableLayers(numberOfLayers);
dxf->writeLayer(*dw,
DL_LayerData("0", 0),
DL_Attributes(
@ -135,7 +162,46 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
100, // default width
"CONTINUOUS", // default line style
1.0)); // default line type scale
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->sectionEntities();
@ -146,6 +212,8 @@ bool VDxfEngine::begin(QPaintDevice *pdev)
bool VDxfEngine::end()
{
dw->sectionEnd();
dxf->writeObjects(*dw);
dxf->writeObjectsEnd(*dw);
dw->dxfEOF();
dw->close();
delete dw;
@ -172,14 +240,18 @@ void VDxfEngine::updateState(const QPaintEngineState &state)
//---------------------------------------------------------------------------------------------------------------------
void VDxfEngine::drawPath(const QPainterPath &path)
{
QPolygonF polygon = path.toFillPolygon(matrix);
if (polygon.size() < 3)
{
return;
}
const QList<QPolygonF> subpaths = path.toSubpathPolygons(matrix);
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(
*dw,
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
getSize().height() - polygon.at(i).y(),
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
getSize().height() - p2.y(),
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
getSize().height() - p2.y(),
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,
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
-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;
}
//---------------------------------------------------------------------------------------------------------------------
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)
{

View File

@ -68,6 +68,8 @@ public:
quint32 id() const;
virtual void setId(const quint32 &id);
quint32 getIdTool() const;
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 QLineF BuildAxis(const QPointF &p, const qreal &angle, const QRectF &scRect);

View File

@ -33,6 +33,7 @@
#include <QComboBox>
#include <QDir>
#include <QPrinterInfo>
#include <QDebug>
// Keep synchronize all names with initialization in VTranslateVars class!!!!!
//measurements
@ -1705,38 +1706,35 @@ QString StrippedName(const QString &fullFileName)
//---------------------------------------------------------------------------------------------------------------------
QString RelativeMPath(const QString &patternPath, const QString &absoluteMPath)
{
if (patternPath.isEmpty())
if (patternPath.isEmpty() || absoluteMPath.isEmpty())
{
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;
}
QDir dir(QFileInfo(patternPath).absoluteDir());
return dir.relativeFilePath(absoluteMPath);
return QFileInfo(patternPath).absoluteDir().relativeFilePath(absoluteMPath);
}
//---------------------------------------------------------------------------------------------------------------------
QString AbsoluteMPath(const QString &patternPath, const QString &relativeMPath)
{
if (patternPath.isEmpty())
if (patternPath.isEmpty() || relativeMPath.isEmpty())
{
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 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)
.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.
// Synchronize valentina.nsi
#define VER_FILEVERSION 0,4,1,0
#define VER_FILEVERSION_STR "0.4.1.0\0"
#define VER_FILEVERSION 0,4,2,0
#define VER_FILEVERSION_STR "0.4.2.0\0"
#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 QPointF begin = StartSegment(data, i);
const QPointF end = EndSegment(data, i);
const QPointF begin = StartSegment(data, i, at(i).getReverse());
const QPointF end = EndSegment(data, i, 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 QPointF begin = StartSegment(data, i);
const QPointF end = EndSegment(data, i);
const QPointF begin = StartSegment(data, i, at(i).getReverse());
const QPointF end = EndSegment(data, i, at(i).getReverse());
const QVector<QPointF> nodePoints = curve->GetSegmentPoints(begin, end, at(i).getReverse());
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)
{
@ -533,7 +533,13 @@ QPointF VDetail::StartSegment(const VContainer *data, const int &i) const
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 (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)
{
@ -564,7 +570,13 @@ QPointF VDetail::EndSegment(const VContainer *data, const int &i) const
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 (i == CountNode() - 1)

View File

@ -89,8 +89,8 @@ private:
static int indexOfNode(const QVector<VNodeDetail> &list, const quint32 &id);
QPointF StartSegment(const VContainer *data, const int &i) const;
QPointF EndSegment(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, bool reverse) const;
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);
}
//---------------------------------------------------------------------------------------------------------------------
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)
{

View File

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

View File

@ -387,6 +387,7 @@ void DialogDetail::ClickedReverse(bool checked)
VNodeDetail node = qvariant_cast<VNodeDetail>(item->data(Qt::UserRole));
node.setReverse(checked);
item->setData(Qt::UserRole, QVariant::fromValue(node));
ValidObjects(DetailIsValid());
}
//---------------------------------------------------------------------------------------------------------------------
@ -450,6 +451,7 @@ void DialogDetail::ScrollUp()
{
QListWidgetItem *item = ui.listWidget->takeItem(0);
ui.listWidget->addItem(item);
ValidObjects(DetailIsValid());
}
}
@ -460,6 +462,7 @@ void DialogDetail::ScrollDown()
{
QListWidgetItem *item = ui.listWidget->takeItem(ui.listWidget->count()-1);
ui.listWidget->insertItem(0, item);
ValidObjects(DetailIsValid());
}
}
@ -475,7 +478,7 @@ bool DialogDetail::DetailIsValid() const
pixmap.save(&buffer, "PNG");
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!");
ui.helpLabel->setText(url);
@ -538,17 +541,12 @@ bool DialogDetail::FirstPointEqualLast() const
//---------------------------------------------------------------------------------------------------------------------
bool DialogDetail::DetailIsClockwise() const
{
if(ui.listWidget->count() < 3)
const QVector<QPointF> points = CreateDetail().ContourPoints(data);
if(points.count() < 3)
{
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);
if (res < 0)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -88,7 +88,7 @@
</property>
<property name="minimumSize">
<size>
<width>80</width>
<width>0</width>
<height>0</height>
</size>
</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::DisableItem, toolArc, &VToolArc::Disable);
doc->AddTool(id, toolArc);
doc->IncrementReferens(center);
doc->IncrementReferens(c.getIdTool());
return toolArc;
}
return nullptr;
@ -310,8 +310,8 @@ void VToolArc::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolArc::RemoveReferens()
{
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
doc->DecrementReferens(arc->GetCenter().id());
const auto arc = VAbstractTool::data.GeometricObject<VArc>(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::DisableItem, toolArc, &VToolArcWithLength::Disable);
doc->AddTool(id, toolArc);
doc->IncrementReferens(center);
doc->IncrementReferens(c.getIdTool());
return toolArc;
}
return nullptr;
@ -269,8 +269,8 @@ void VToolArcWithLength::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
//---------------------------------------------------------------------------------------------------------------------
void VToolArcWithLength::RemoveReferens()
{
const QSharedPointer<VArc> arc = VAbstractTool::data.GeometricObject<VArc>(id);
doc->DecrementReferens(arc->GetCenter().id());
const auto arc = VAbstractTool::data.GeometricObject<VArc>(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::CurveDetailsMode, spl, &VToolSpline::DetailsMode);
doc->AddTool(id, spl);
doc->IncrementReferens(p1);
doc->IncrementReferens(p4);
doc->IncrementReferens(point1.getIdTool());
doc->IncrementReferens(point4.getIdTool());
return spl;
}
return nullptr;
@ -287,9 +287,9 @@ void VToolSpline::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolSpline::RemoveReferens()
{
const QSharedPointer<VSpline> spl = VAbstractTool::data.GeometricObject<VSpline>(id);
doc->DecrementReferens(spl->GetP1().id());
doc->DecrementReferens(spl->GetP4().id());
const auto spl = VAbstractTool::data.GeometricObject<VSpline>(id);
doc->DecrementReferens(spl->GetP1().getIdTool());
doc->DecrementReferens(spl->GetP4().getIdTool());
}
//---------------------------------------------------------------------------------------------------------------------

View File

@ -130,7 +130,7 @@ VToolSplinePath* VToolSplinePath::Create(DialogTool *dialog, VMainGraphicsScene
const QString color = dialogTool->GetColor();
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);
if (spl != nullptr)
@ -371,10 +371,10 @@ void VToolSplinePath::AddPathPoint(VAbstractPattern *doc, QDomElement &domElemen
*/
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)
{
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)
{
id = data->getNextId();//Just reserve id for tool
p1id = data->AddGObject(new VPointF(fPoint1, point1Name, mx1, my1));
p2id = data->AddGObject(new VPointF(fPoint2, point2Name, mx2, my2));
p1id = data->AddGObject(new VPointF(fPoint1, point1Name, mx1, my1, id));
p2id = data->AddGObject(new VPointF(fPoint2, point2Name, mx2, my2, id));
}
else
{
data->UpdateGObject(p1id, new VPointF(fPoint1, point1Name, mx1, my1));
data->UpdateGObject(p2id, new VPointF(fPoint2, point2Name, mx2, my2));
data->UpdateGObject(p1id, new VPointF(fPoint1, point1Name, mx1, my1, id));
data->UpdateGObject(p2id, new VPointF(fPoint2, point2Name, mx2, my2, id));
if (parse != Document::FullParse)
{
doc->UpdateToolData(id, data);
@ -182,11 +182,11 @@ VToolTrueDarts *VToolTrueDarts::Create(quint32 _id,
connect(scene, &VMainGraphicsScene::DisableItem, points, &VToolTrueDarts::Disable);
connect(scene, &VMainGraphicsScene::EnableToolMove, points, &VToolTrueDarts::EnableToolMove);
doc->AddTool(id, points);
doc->IncrementReferens(baseLineP1Id);
doc->IncrementReferens(baseLineP2Id);
doc->IncrementReferens(dartP1Id);
doc->IncrementReferens(dartP2Id);
doc->IncrementReferens(dartP3Id);
doc->IncrementReferens(baseLineP1->getIdTool());
doc->IncrementReferens(baseLineP2->getIdTool());
doc->IncrementReferens(dartP1->getIdTool());
doc->IncrementReferens(dartP2->getIdTool());
doc->IncrementReferens(dartP3->getIdTool());
return points;
}
return nullptr;
@ -305,11 +305,17 @@ void VToolTrueDarts::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
//---------------------------------------------------------------------------------------------------------------------
void VToolTrueDarts::RemoveReferens()
{
doc->DecrementReferens(baseLineP1Id);
doc->DecrementReferens(baseLineP2Id);
doc->DecrementReferens(dartP1Id);
doc->DecrementReferens(dartP2Id);
doc->DecrementReferens(dartP3Id);
const auto baseLineP1 = VAbstractTool::data.GetGObject(baseLineP1Id);
const auto baseLineP2 = VAbstractTool::data.GetGObject(baseLineP2Id);
const auto dartP1 = VAbstractTool::data.GetGObject(dartP1Id);
const auto dartP2 = VAbstractTool::data.GetGObject(dartP2Id);
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();
}

View File

@ -123,7 +123,9 @@ void VToolCut::RefreshGeometry()
*/
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(arc1id, point);
doc->AddTool(arc2id, point);
doc->IncrementReferens(arcId);
doc->IncrementReferens(arc->getIdTool());
return point;
}
return nullptr;

View File

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

View File

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

View File

@ -94,7 +94,8 @@ void VToolAlongLine::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolAlongLine::RemoveReferens()
{
doc->DecrementReferens(secondPointId);
const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(secondPoint->getIdTool());
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::EnableToolMove, point, &VToolAlongLine::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
return point;
}
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::EnableToolMove, point, &VToolBisector::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(thirdPointId);
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
doc->IncrementReferens(thirdPoint->getIdTool());
return point;
}
return nullptr;
@ -248,8 +248,11 @@ void VToolBisector::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolBisector::RemoveReferens()
{
doc->DecrementReferens(firstPointId);
doc->DecrementReferens(thirdPointId);
const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
const auto thirdPoint = VAbstractTool::data.GetGObject(thirdPointId);
doc->DecrementReferens(firstPoint->getIdTool());
doc->DecrementReferens(thirdPoint->getIdTool());
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::EnableToolMove, point, &VToolCurveIntersectAxis::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(basePointId);
doc->IncrementReferens(curveId);
doc->IncrementReferens(basePoint->getIdTool());
doc->IncrementReferens(curve->getIdTool());
return point;
}
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::EnableToolMove, point, &VToolEndLine::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(basePointId);
doc->IncrementReferens(basePoint->getIdTool());
return point;
}
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::EnableToolMove, point, &VToolHeight::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(basePointId);
doc->IncrementReferens(p1LineId);
doc->IncrementReferens(p2LineId);
doc->IncrementReferens(basePoint->getIdTool());
doc->IncrementReferens(p1Line->getIdTool());
doc->IncrementReferens(p2Line->getIdTool());
return point;
}
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::EnableToolMove, point, &VToolLineIntersectAxis::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(basePointId);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(basePoint->getIdTool());
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
return point;
}
return nullptr;

View File

@ -86,7 +86,8 @@ void VToolLinePoint::RefreshGeometry()
*/
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::EnableToolMove, point, &VToolNormal::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
return point;
}
return nullptr;
@ -226,7 +226,8 @@ void VToolNormal::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolNormal::RemoveReferens()
{
doc->DecrementReferens(secondPointId);
const auto secondPoint = VAbstractTool::data.GetGObject(secondPointId);
doc->DecrementReferens(secondPoint->getIdTool());
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::EnableToolMove, point, &VToolShoulderPoint::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(p1Line);
doc->IncrementReferens(p2Line);
doc->IncrementReferens(pShoulder);
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
doc->IncrementReferens(shoulderPoint->getIdTool());
return point;
}
return nullptr;
@ -252,8 +252,11 @@ void VToolShoulderPoint::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolShoulderPoint::RemoveReferens()
{
doc->DecrementReferens(p2Line);
doc->DecrementReferens(pShoulder);
const auto p2 = VAbstractTool::data.GetGObject(p2Line);
const auto pS = VAbstractTool::data.GetGObject(pShoulder);
doc->DecrementReferens(p2->getIdTool());
doc->DecrementReferens(pS->getIdTool());
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::EnableToolMove, point, &VToolLineIntersect::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(p1Line1Id);
doc->IncrementReferens(p2Line1Id);
doc->IncrementReferens(p1Line2Id);
doc->IncrementReferens(p2Line2Id);
doc->IncrementReferens(p1Line1->getIdTool());
doc->IncrementReferens(p2Line1->getIdTool());
doc->IncrementReferens(p1Line2->getIdTool());
doc->IncrementReferens(p2Line2->getIdTool());
return point;
}
}
@ -214,10 +214,15 @@ void VToolLineIntersect::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
*/
void VToolLineIntersect::RemoveReferens()
{
doc->DecrementReferens(p1Line1);
doc->DecrementReferens(p2Line1);
doc->DecrementReferens(p1Line2);
doc->DecrementReferens(p2Line2);
const auto p1L1 = VAbstractTool::data.GetGObject(p1Line1);
const auto p2L1 = VAbstractTool::data.GetGObject(p2Line1);
const auto p1L2 = VAbstractTool::data.GetGObject(p1Line2);
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::EnableToolMove, point, &VToolPointFromArcAndTangent::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(arcId);
doc->IncrementReferens(tangentPointId);
doc->IncrementReferens(arc.getIdTool());
doc->IncrementReferens(tPoint.getIdTool());
return point;
}
return nullptr;
@ -260,8 +260,11 @@ void VToolPointFromArcAndTangent::ShowVisualization(bool show)
//---------------------------------------------------------------------------------------------------------------------
void VToolPointFromArcAndTangent::RemoveReferens()
{
doc->DecrementReferens(arcId);
doc->DecrementReferens(tangentPointId);
const auto arc = VAbstractTool::data.GetGObject(arcId);
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::EnableToolMove, point, &VToolPointFromCircleAndTangent::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(circleCenterId);
doc->IncrementReferens(tangentPointId);
doc->IncrementReferens(cPoint.getIdTool());
doc->IncrementReferens(tPoint.getIdTool());
return point;
}
return nullptr;
@ -244,8 +244,11 @@ void VToolPointFromCircleAndTangent::ShowVisualization(bool show)
//---------------------------------------------------------------------------------------------------------------------
void VToolPointFromCircleAndTangent::RemoveReferens()
{
doc->DecrementReferens(circleCenterId);
doc->DecrementReferens(tangentPointId);
const auto circleCenter = VAbstractTool::data.GetGObject(circleCenterId);
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::EnableToolMove, point, &VToolPointOfContact::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(center);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(centerP->getIdTool());
doc->IncrementReferens(firstP->getIdTool());
doc->IncrementReferens(secondP->getIdTool());
return point;
}
return nullptr;
@ -268,9 +268,13 @@ void VToolPointOfContact::contextMenuEvent(QGraphicsSceneContextMenuEvent *event
*/
void VToolPointOfContact::RemoveReferens()
{
doc->DecrementReferens(center);
doc->DecrementReferens(firstPointId);
doc->DecrementReferens(secondPointId);
const auto c = VAbstractTool::data.GetGObject(center);
const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
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::EnableToolMove, point, &VToolPointOfIntersection::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
return point;
}
return nullptr;
@ -159,8 +159,11 @@ VToolPointOfIntersection *VToolPointOfIntersection::Create(const quint32 _id, co
*/
void VToolPointOfIntersection::RemoveReferens()
{
doc->DecrementReferens(firstPointId);
doc->DecrementReferens(secondPointId);
const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
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::EnableToolMove, point, &VToolPointOfIntersectionArcs::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(firstArcId);
doc->IncrementReferens(secondArcId);
doc->IncrementReferens(firstArc->getIdTool());
doc->IncrementReferens(secondArc->getIdTool());
return point;
}
return nullptr;
@ -267,8 +267,11 @@ void VToolPointOfIntersectionArcs::ShowVisualization(bool show)
//---------------------------------------------------------------------------------------------------------------------
void VToolPointOfIntersectionArcs::RemoveReferens()
{
doc->DecrementReferens(firstArcId);
doc->DecrementReferens(secondArcId);
const auto firstArc = VAbstractTool::data.GetGObject(firstArcId);
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::EnableToolMove, point, &VToolPointOfIntersectionCircles::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(firstCircleCenterId);
doc->IncrementReferens(secondCircleCenterId);
doc->IncrementReferens(c1Point.getIdTool());
doc->IncrementReferens(c2Point.getIdTool());
return point;
}
return nullptr;
@ -280,8 +280,11 @@ void VToolPointOfIntersectionCircles::ShowVisualization(bool show)
//---------------------------------------------------------------------------------------------------------------------
void VToolPointOfIntersectionCircles::RemoveReferens()
{
doc->DecrementReferens(firstCircleCenterId);
doc->DecrementReferens(secondCircleCenterId);
const auto firstCircleCenter = VAbstractTool::data.GetGObject(firstCircleCenterId);
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::EnableToolMove, point, &VToolTriangle::EnableToolMove);
doc->AddTool(id, point);
doc->IncrementReferens(axisP1Id);
doc->IncrementReferens(axisP2Id);
doc->IncrementReferens(firstPointId);
doc->IncrementReferens(secondPointId);
doc->IncrementReferens(axisP1->getIdTool());
doc->IncrementReferens(axisP2->getIdTool());
doc->IncrementReferens(firstPoint->getIdTool());
doc->IncrementReferens(secondPoint->getIdTool());
return point;
}
return nullptr;
@ -213,10 +213,15 @@ QPointF VToolTriangle::FindPoint(const QPointF &axisP1, const QPointF &axisP2, c
*/
void VToolTriangle::RemoveReferens()
{
doc->DecrementReferens(axisP1Id);
doc->DecrementReferens(axisP2Id);
doc->DecrementReferens(firstPointId);
doc->DecrementReferens(secondPointId);
const auto axisP1 = VAbstractTool::data.GetGObject(axisP1Id);
const auto axisP2 = VAbstractTool::data.GetGObject(axisP2Id);
const auto firstPoint = VAbstractTool::data.GetGObject(firstPointId);
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::DisableItem, line, &VToolLine::Disable);
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 nullptr;
@ -307,8 +311,11 @@ void VToolLine::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
*/
void VToolLine::RemoveReferens()
{
doc->DecrementReferens(firstPoint);
doc->DecrementReferens(secondPoint);
const auto p1 = VAbstractTool::data.GetGObject(firstPoint);
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),
arc1Path(nullptr), arc2Path(nullptr)
{
this->setPen(QPen(Qt::NoPen)); // don't use parent this time
arc1Path = InitItem<QGraphicsPathItem>(Qt::darkGreen, this);
arc1Path->setFlag(QGraphicsItem::ItemStacksBehindParent, false);
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),
c2Path(nullptr)
{
this->setPen(QPen(Qt::NoPen)); // don't use parent this time
c1Path = InitItem<QGraphicsEllipseItem>(Qt::darkGreen, this);
c2Path = InitItem<QGraphicsEllipseItem>(Qt::darkRed, this);
point = InitPoint(mainColor, this);